void S9xSoftReset (void) { S9xResetSaveTimer (FALSE); if (Settings.BS) S9xResetBSX(); if (Settings.SuperFX) S9xResetSuperFX (); #ifdef ZSNES_FX WinterGold = Settings.WinterGold; #endif ZeroMemory (Memory.FillRAM, 0x8000); memset (Memory.VRAM, 0x00, 0x10000); // memset (Memory.RAM, 0x55, 0x20000); if(Settings.SPC7110) S9xSpc7110Reset(); S9xSoftResetCPU (); S9xSoftResetPPU (); S9xResetSRTC (); if (Settings.SDD1) S9xResetSDD1 (); S9xResetDMA (); S9xResetAPU (); S9xResetDSP1 (); if(Settings.OBC1) ResetOBC1(); S9xSA1Init (); if (Settings.C4) S9xInitC4 (); S9xInitCheatData (); // Settings.Paused = FALSE; }
void SNES9X_Quit (void) { DeinitGameWindow(); if (cartOpen) { SNES9X_SaveSRAM(); S9xResetSaveTimer(false); S9xSaveCheatFile(S9xGetFilename(".cht", CHEAT_DIR)); } finished = true; }
void S9xReset (void) { #ifdef SNSF9X_REMOVED S9xResetSaveTimer(FALSE); S9xResetLogger(); #endif memset(Memory.RAM, 0x55, 0x20000); memset(Memory.VRAM, 0x00, 0x10000); ZeroMemory(Memory.FillRAM, 0x8000); #ifdef SNSF9X_REMOVED if (Settings.BS) S9xResetBSX(); #endif S9xResetCPU(); S9xResetPPU(); S9xResetDMA(); S9xResetAPU(); #ifdef SNSF9X_REMOVED if (Settings.DSP) S9xResetDSP(); if (Settings.SuperFX) S9xResetSuperFX(); #endif #ifndef SNSF9X_REMOVED_SA1 if (Settings.SA1) S9xSA1Init(); #endif #ifndef SNSF9X_REMOVED_SDD1 if (Settings.SDD1) S9xResetSDD1(); #endif #ifdef SNSF9X_REMOVED if (Settings.SPC7110) S9xResetSPC7110(); if (Settings.C4) S9xInitC4(); if (Settings.OBC1) S9xResetOBC1(); if (Settings.SRTC) S9xResetSRTC(); S9xInitCheatData(); #endif }
static bool8 NPClientEndOpenROMImage (void) { OSStatus err; FSRef cartRef; char filename[PATH_MAX + 1]; bool8 r; r = NavEndOpenROMImageSheet(&cartRef); if (!r) { cartOpen = false; return (false); } CheckSaveFolder(&cartRef); Settings.ForceLoROM = (romDetect == kLoROMForce ); Settings.ForceHiROM = (romDetect == kHiROMForce ); Settings.ForceHeader = (headerDetect == kHeaderForce ); Settings.ForceNoHeader = (headerDetect == kNoHeaderForce ); Settings.ForceInterleaved = (interleaveDetect == kInterleaveForce ); Settings.ForceInterleaved2 = (interleaveDetect == kInterleave2Force ); Settings.ForceInterleaveGD24 = (interleaveDetect == kInterleaveGD24 ); Settings.ForceNotInterleaved = (interleaveDetect == kNoInterleaveForce); Settings.ForcePAL = (videoDetect == kPALForce ); Settings.ForceNTSC = (videoDetect == kNTSCForce ); GFX.InfoString = NULL; GFX.InfoStringTimeout = 0; S9xResetSaveTimer(true); err = FSRefMakePath(&cartRef, (unsigned char *) filename, PATH_MAX); SNES9X_InitSound(); if (Memory.LoadROM(filename) /*&& (Memory.ROMCRC32 == nprominfo.crc32)*/) { ChangeTypeAndCreator(filename, 'CART', '~9X~'); cartOpen = true; return (true); } else { cartOpen = false; return (false); } }
void S9xReset (void) { S9xResetSaveTimer(FALSE); S9xResetLogger(); memset(Memory.RAM, 0x55, 0x20000); memset(Memory.VRAM, 0x00, 0x10000); memset(Memory.FillRAM, 0, 0x8000); if (Settings.BS) S9xResetBSX(); S9xResetCPU(); S9xResetPPU(); S9xResetDMA(); S9xResetAPU(); S9xResetMSU(); if (Settings.DSP) S9xResetDSP(); if (Settings.SuperFX) S9xResetSuperFX(); if (Settings.SA1) S9xSA1Init(); if (Settings.SDD1) S9xResetSDD1(); if (Settings.SPC7110) S9xResetSPC7110(); if (Settings.C4) S9xInitC4(); if (Settings.OBC1) S9xResetOBC1(); if (Settings.SRTC) S9xResetSRTC(); if (Settings.MSU1) S9xMSU1Init(); S9xInitCheatData(); }
static bool8 NPClientBeginOpenROMImage (WindowRef window) { CFStringRef numRef, romRef, baseRef; CFMutableStringRef mesRef; SInt32 replaceAt; bool8 r; DeinitGameWindow(); if (cartOpen) { SNES9X_SaveSRAM(); S9xResetSaveTimer(false); S9xSaveCheatFile(S9xGetFilename(".cht", CHEAT_DIR)); } cartOpen = false; ResetCheatFinder(); romRef = CFStringCreateWithCString(kCFAllocatorDefault, nprominfo.fname, kCFStringEncodingUTF8); numRef = CFCopyLocalizedString(CFSTR("NPROMNamePos"), "1"); baseRef = CFCopyLocalizedString(CFSTR("NPROMNameMes"), "NPROM"); mesRef = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, baseRef); replaceAt = CFStringGetIntValue(numRef); CFStringReplace(mesRef, CFRangeMake(replaceAt - 1, 1), romRef); r = NavBeginOpenROMImageSheet(window, mesRef); CFRelease(mesRef); CFRelease(baseRef); CFRelease(numRef); CFRelease(romRef); return (r); }
bool8 SNES9X_OpenCart (FSRef *inRef) { OSStatus err; FSRef cartRef; char filename[PATH_MAX + 1]; DeinitGameWindow(); if (cartOpen) { SNES9X_SaveSRAM(); S9xResetSaveTimer(false); S9xSaveCheatFile(S9xGetFilename(".cht", CHEAT_DIR)); } ResetCheatFinder(); if (!inRef) { if (!NavOpenROMImage(&cartRef)) { cartOpen = false; return (false); } } else cartRef = *inRef; spcFileCount = pngFileCount = 0; CheckSaveFolder(&cartRef); Settings.ForceLoROM = (romDetect == kLoROMForce ); Settings.ForceHiROM = (romDetect == kHiROMForce ); Settings.ForceHeader = (headerDetect == kHeaderForce ); Settings.ForceNoHeader = (headerDetect == kNoHeaderForce ); Settings.ForceInterleaved = (interleaveDetect == kInterleaveForce ); Settings.ForceInterleaved2 = (interleaveDetect == kInterleave2Force ); Settings.ForceInterleaveGD24 = (interleaveDetect == kInterleaveGD24 ); Settings.ForceNotInterleaved = (interleaveDetect == kNoInterleaveForce); Settings.ForcePAL = (videoDetect == kPALForce ); Settings.ForceNTSC = (videoDetect == kNTSCForce ); GFX.InfoString = NULL; GFX.InfoStringTimeout = 0; S9xResetSaveTimer(true); err = FSRefMakePath(&cartRef, (unsigned char *) filename, PATH_MAX); SNES9X_InitSound(); if (Memory.LoadROM(filename)) { cartOpen = true; SNES9X_LoadSRAM(); ChangeTypeAndCreator(filename, 'CART', '~9X~'); AddRecentItem(&cartRef); BuildRecentMenu(); ApplyNSRTHeaderControllers(); for (int a = 0; a < MAC_MAX_PLAYERS; a++) for (int b = 0; b < 12; b++) autofireRec[a].nextTime[b] = 0; return (true); } else { cartOpen = false; return (false); } }
bool8 SNES9X_OpenMultiCart (void) { Boolean r; char cart[2][PATH_MAX + 1]; DeinitGameWindow(); if (cartOpen) { SNES9X_SaveSRAM(); S9xResetSaveTimer(false); S9xSaveCheatFile(S9xGetFilename(".cht", CHEAT_DIR)); } ResetCheatFinder(); if (!MultiCartDialog()) { cartOpen = false; return (false); } spcFileCount = pngFileCount = 0; Settings.ForceHeader = (headerDetect == kHeaderForce ); Settings.ForceNoHeader = (headerDetect == kNoHeaderForce); Settings.ForcePAL = (videoDetect == kPALForce ); Settings.ForceNTSC = (videoDetect == kNTSCForce ); GFX.InfoString = NULL; GFX.InfoStringTimeout = 0; S9xResetSaveTimer(true); for (int i = 0; i < 2; i++) { cart[i][0] = 0; if (multiCartPath[i]) r = CFStringGetCString(multiCartPath[i], cart[i], PATH_MAX, kCFStringEncodingUTF8); } SNES9X_InitSound(); if (Memory.LoadMultiCart(cart[0], cart[1])) { cartOpen = true; SNES9X_LoadSRAM(); for (int i = 0; i < 2; i++) { if (cart[i][0]) ChangeTypeAndCreator(cart[i], 'CART', '~9X~'); } ApplyNSRTHeaderControllers(); for (int a = 0; a < MAC_MAX_PLAYERS; a++) for (int b = 0; b < 12; b++) autofireRec[a].nextTime[b] = 0; return (true); } else { cartOpen = false; return (false); } }