INT32 CpsRunInit() { SekInit(0, 0x68000); // Allocate 68000 if (CpsMemInit()) { // Memory init return 1; } if (Cps == 2 || PangEEP) { EEPROMInit(&cps2_eeprom_interface); } else { if (Cps1Qs == 1 || CpsBootlegEEPROM) { EEPROMInit(&qsound_eeprom_interface); } } CpsRwInit(); // Registers setup if (CpsPalInit()) { // Palette init return 1; } if (CpsObjInit()) { // Sprite init return 1; } if ((Cps & 1) && Cps1Qs == 0 && Cps1DisablePSnd == 0) { // Sound init (MSM6295 + YM2151) if (PsndInit()) { return 1; } } if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) { // Sound init (QSound) if (QsndInit()) { return 1; } QsndSetRoute(BURN_SND_QSND_OUTPUT_1, 1.00, BURN_SND_ROUTE_LEFT); QsndSetRoute(BURN_SND_QSND_OUTPUT_2, 1.00, BURN_SND_ROUTE_RIGHT); } if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMReset(); if (CpsRunInitCallbackFunction) { CpsRunInitCallbackFunction(); } DrvReset(); //Init Draw Function DrawFnInit(); pBurnDrvPalette = CpsPal; if (Cps == 2 || Cps1Qs == 1) { CheatSearchInitCallbackFunction = CpsQSoundCheatSearchCallback; } return 0; }
static INT32 DrvReset() { // Reset machine if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMReset(); //HACK if (glob_ffingeron&&virtual_stick_on) { wait_control=60; glob_framecpt=0; glob_replay_last_dx16=glob_replay_last_dy16=0; glob_delta_dy16=0; glob_replay_last_fingerOn=0; } // SekOpen(0); SekReset(); SekClose(); if (((Cps & 1) && !Cps1DisablePSnd) || ((Cps == 2) && !Cps2DisableQSnd)) { ZetOpen(0); ZetReset(); ZetClose(); } if (Cps == 2) { // Disable beam-synchronized interrupts *((UINT16*)(CpsReg + 0x4E)) = BURN_ENDIAN_SWAP_INT16(0x0200); *((UINT16*)(CpsReg + 0x50)) = BURN_ENDIAN_SWAP_INT16(nCpsNumScanlines); *((UINT16*)(CpsReg + 0x52)) = BURN_ENDIAN_SWAP_INT16(nCpsNumScanlines); } SekOpen(0); CpsMapObjectBanks(0); SekClose(); nCpsCyclesExtra = 0; if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) { // Sound init (QSound) QsndReset(); } if (CpsRunResetCallbackFunction) { CpsRunResetCallbackFunction(); } HiscoreReset(); return 0; }
static int DrvDoReset() { SekOpen(0); SekReset(); SekClose(); EEPROMReset(); nVideoIRQ = 1; nSoundIRQ = 1; nUnknownIRQ = 1; nIRQPending = 0; MSM6295Reset(0); return 0; }
static INT32 DrvDoReset() { SekOpen(0); SekReset(); SekClose(); EEPROMReset(); YMZ280BReset(); nVideoIRQ = 1; nSoundIRQ = 1; nUnknownIRQ = 1; nIRQPending = 0; return 0; }
static INT32 DrvReset() { // Reset machine if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMReset(); SekOpen(0); SekReset(); SekClose(); if (((Cps & 1) && !Cps1DisablePSnd) || ((Cps == 2) && !Cps2DisableQSnd)) { ZetOpen(0); ZetReset(); ZetClose(); } if (Cps == 2) { // Disable beam-synchronized interrupts *((UINT16*)(CpsReg + 0x4E)) = BURN_ENDIAN_SWAP_INT16(0x0200); *((UINT16*)(CpsReg + 0x50)) = BURN_ENDIAN_SWAP_INT16(nCpsNumScanlines); *((UINT16*)(CpsReg + 0x52)) = BURN_ENDIAN_SWAP_INT16(nCpsNumScanlines); } SekOpen(0); CpsMapObjectBanks(0); SekClose(); nCpsCyclesExtra = 0; if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) { // Sound init (QSound) QsndReset(); } if (CpsRunResetCallbackFunction) { CpsRunResetCallbackFunction(); } HiscoreReset(); return 0; }
INT32 TaitoDoReset() { INT32 i; for (i = 0; i < TaitoNum68Ks; i++) { SekOpen(i); SekReset(); SekClose(); } for (i = 0; i < TaitoNumZ80s; i++) { ZetOpen(i); ZetReset(); ZetClose(); } if (TaitoNumYM2610) BurnYM2610Reset(); if (TaitoNumYM2151) BurnYM2151Reset(); if (TaitoNumYM2203) BurnYM2203Reset(); if (TaitoNumMSM5205) MSM5205Reset(); for (i = 0; i < TaitoNumMSM6295; i++) { MSM6295Reset(i); } if (TaitoNumEEPROM) EEPROMReset(); TaitoICReset(); TaitoZ80Bank = 0; TaitoSoundLatch = 0; TaitoRoadPalBank = 0; TaitoCpuACtrl = 0xff; memset (TaitoCoinLockout, 0, 4); return 0; }