void Mapper111_Init(CartInfo *info) { info->Power = M111Power; info->Close = M111Close; CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE); SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1); GameStateRestore = StateRestore; AddExState(&StateRegs, ~0, 0, 0); AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM"); flash = (info->battery != 0); if (flash) { FLASHROM = (uint8*)FCEU_gmalloc(FLASHROMSIZE); info->SaveGame[0] = FLASHROM; info->SaveGameLen[0] = FLASHROMSIZE; AddExState(FLASHROM, FLASHROMSIZE, 0, "FROM"); AddExState(&FlashRegs, ~0, 0, 0); // copy PRG ROM into FLASHROM, use it instead of PRG ROM const uint32 PRGSIZE = ROM_size * 16 * 1024; for (uint32 w=0, r=0; w<FLASHROMSIZE; ++w) { FLASHROM[w] = ROM[r]; ++r; if (r >= PRGSIZE) r = 0; } SetupCartPRGMapping(0x10, FLASHROM, FLASHROMSIZE, 0); } }
void UNLSB2000_Init(CartInfo *info) { info->Reset = UNLSB2000Reset; info->Power = UNLSB2000Power; info->Close = UNLSB2000Close; // GameHBIRQHook = UNLSB2000IRQHook; GameStateRestore = StateRestore; /* CHRRAMSIZE = 8192; CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE); SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1); AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM"); */ // SetupCartCHRMapping(0, PRGptr[0], PRGsize[0], 0); WRAMSIZE = 512 * 1024; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); if (info->battery) { info->SaveGame[0] = WRAM; info->SaveGameLen[0] = WRAMSIZE; } AddExState(&StateRegs, ~0, 0, 0); }
static void Latch_Init(CartInfo *info, void (*proc)(void), readfunc func, uint16 linit, uint16 adr0, uint16 adr1, uint8 wram) { latcheinit = linit; addrreg0 = adr0; addrreg1 = adr1; WSync = proc; if (func != NULL) defread = func; else defread = CartBROB; info->Power = LatchPower; info->Reset = LatchReset; info->Close = LatchClose; if (wram) { WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); if (info->battery) { info->SaveGame[0] = WRAM; info->SaveGameLen[0] = WRAMSIZE; } AddExState(WRAM, WRAMSIZE, 0, "WRAM"); } GameStateRestore = StateRestore; AddExState(&latche, 2, 0, "LATC"); }
void Mapper112_Init(CartInfo *info) { info->Power=M112Power; info->Close=M112Close; GameStateRestore=StateRestore; WRAM=(uint8*)FCEU_gmalloc(8192); SetupCartPRGMapping(0x10,WRAM,8192,1); AddExState(WRAM, 8192, 0, "WRAM"); AddExState(&StateRegs, ~0, 0, 0); }
void UNLSHeroes_Init(CartInfo *info) { GenMMC3_Init(info, 256, 512, 0, 0); cwrap = MSHCW; info->Power = MSHPower; info->Reset = MSHReset; info->Close = MSHClose; CHRRAM = (uint8*)FCEU_gmalloc(8192); SetupCartCHRMapping(0x10, CHRRAM, 8192, 1); AddExState(EXPREGS, 4, 0, "EXPR"); AddExState(&tekker, 1, 0, "DIPSW"); }
void UNLKS7030_Init(CartInfo *info) { info->Power = UNLKS7030Power; info->Close = UNLKS7030Close; GameStateRestore = StateRestore; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); AddExState(&StateRegs, ~0, 0, 0); }
void Mapper168_Init(CartInfo *info) { info->Power = M168Power; info->Close = MNNNClose; GameStateRestore = StateRestore; AddExState(&StateRegs, ~0, 0, 0); CHRRAMSIZE = 8192 * 8; CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE); SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1); AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM"); }
void Mapper181_Init(CartInfo *info) { Sync = Sync181; info->Power = MPower; info->Close = MClose; GameStateRestore = MRestore; DummyCHR = (uint8*)FCEU_gmalloc(8192); int x; for (x = 0; x < 8192; x++) DummyCHR[x] = 0xff; SetupCartCHRMapping(0x10, DummyCHR, 8192, 0); AddExState(StateRegs, ~0, 0, 0); }
void UNLSC127_Init(CartInfo *info) { info->Reset = UNLSC127Reset; info->Power = UNLSC127Power; info->Close = UNLSC127Close; GameHBIRQHook = UNLSC127IRQ; GameStateRestore = StateRestore; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); AddExState(&StateRegs, ~0, 0, 0); }
void LH32_Init(CartInfo *info) { info->Power = LH32Power; info->Close = LH32Close; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); GameStateRestore = StateRestore; AddExState(&StateRegs, ~0, 0, 0); }
void Mapper73_Init(CartInfo *info) { info->Power = M73Power; info->Close = M73Close; MapIRQHook = M73IRQHook; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); AddExState(&StateRegs, ~0, 0, 0); GameStateRestore = StateRestore; }
void NROM_Init(CartInfo *info) { info->Power = NROMPower; info->Close = LatchClose; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); if (info->battery) { info->SaveGame[0] = WRAM; info->SaveGameLen[0] = WRAMSIZE; } AddExState(WRAM, WRAMSIZE, 0, "WRAM"); }
void Mapper199_Init(CartInfo *info) { int CHRRAMSize=1024*8; GenMMC3_Init(info, 512, 256, 8, info->battery); cwrap=M199CW; pwrap=M199PW; mwrap=M199MW; info->Power=M199Power; CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSize); SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSize, 1); AddExState(CHRRAM, CHRRAMSize, 0, "CHRR"); AddExState(EXPREGS, 4, 0, "EXPR"); }
void Mapper34_Init(CartInfo *info) { info->Power = M34Power; info->Close = M34Close; GameStateRestore = StateRestore; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); FCEU_CheatAddRAM(WRAMSIZE >> 10, 0x6000, WRAM); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); AddExState(&StateRegs, ~0, 0, 0); }
void Super24_Init(CartInfo *info) { GenMMC3_Init(info, 128, 256, 0, 0); info->Power=Super24Power; info->Reset=Super24Reset; info->Close=Super24Close; cwrap=Super24CW; pwrap=Super24PW; CHRRAM=(uint8*)FCEU_gmalloc(8192); SetupCartCHRMapping(0x10, CHRRAM, 8192, 1); AddExState(CHRRAM, 8192, 0, "CHRR"); AddExState(EXPREGS, 3, 0, "BIG2"); }
void SSSNROM_Init(CartInfo *info) { info->Reset = SSSNROMReset; info->Power = SSSNROMPower; info->Close = SSSNROMClose; GameHBIRQHook = SSSNROMIRQHook; GameStateRestore = StateRestore; WRAMSIZE = 16384; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); AddExState(&StateRegs, ~0, 0, 0); }
void GenMMC3_Init(CartInfo *info, int prg, int chr, int wram, int battery) { pwrap=GENPWRAP; cwrap=GENCWRAP; mwrap=GENMWRAP; wrams=wram<<10; PRGmask8[0]&=(prg>>13)-1; CHRmask1[0]&=(chr>>10)-1; CHRmask2[0]&=(chr>>11)-1; if(wram) { mmc3opts|=1; WRAM=(uint8*)FCEU_gmalloc(wrams); AddExState(WRAM, wrams, 0, "WRAM"); } if(battery) { mmc3opts|=2; info->SaveGame[0]=WRAM; info->SaveGameLen[0]=wrams; } // if(!chr) // duplicated CHR RAM set up // { // CHRRAM=(uint8*)FCEU_gmalloc(8192); // CHRRAMSize=8192; // SetupCartCHRMapping(0, CHRRAM, 8192, 1); // AddExState(CHRRAM, 8192, 0, "CHRR"); // } AddExState(MMC3_StateRegs, ~0, 0, 0); info->Power=GenMMC3Power; info->Reset=MMC3RegReset; info->Close=GenMMC3Close; if(info->CRC32 == 0x5104833e) // Kick Master GameHBIRQHook = MMC3_hb_KickMasterHack; else if(info->CRC32 == 0x5a6860f1 || info->CRC32 == 0xae280e20) // Shougi Meikan '92/'93 GameHBIRQHook = MMC3_hb_KickMasterHack; else if(info->CRC32 == 0xfcd772eb) // PAL Star Wars, similar problem as Kick Master. GameHBIRQHook = MMC3_hb_PALStarWarsHack; else GameHBIRQHook=MMC3_hb; // PPU_hook=MMC3_PPU; GameStateRestore=GenMMC3Restore; }
void UNLKS7037_Init(CartInfo *info) { info->Power = UNLKS7037Power; info->Close = Close; WSync = SyncKS7037; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); GameStateRestore = StateRestore; AddExState(&StateRegs, ~0, 0, 0); }
void Mapper199_Init(CartInfo *info) { GenMMC3_Init(info, 512, 256, 8, info->battery); cwrap = M199CW; pwrap = M199PW; mwrap = M199MW; info->Power = M199Power; info->Close = M199Close; CHRRAMSIZE = 8192; CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE); SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1); AddExState(CHRRAM, CHRRAMSIZE, 0, "CHRR"); AddExState(EXPREGS, 4, 0, "EXPR"); }
void UNLEDU2000_Init(CartInfo *info) { info->Power=UNLEDU2000Power; info->Close=UNLEDU2000Close; GameStateRestore=UNLEDU2000Restore; WRAM=(uint8*)FCEU_gmalloc(32768); SetupCartPRGMapping(0x10,WRAM,32768,1); if(info->battery) { info->SaveGame[0]=WRAM; info->SaveGameLen[0]=32768; } AddExState(WRAM, 32768, 0, "WRAM"); AddExState(StateRegs, ~0, 0, 0); }
void Mapper82_Init(CartInfo *info) { info->Power = M82Power; info->Close = M82Close; WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); if (info->battery) { info->SaveGame[0] = WRAM; info->SaveGameLen[0] = WRAMSIZE; } GameStateRestore = StateRestore; AddExState(&StateRegs, ~0, 0, 0); }
void BMCFK23CA_Init(CartInfo *info) { GenMMC3_Init(info, 512, 256, 128, 0); cwrap=BMCFK23CCW; pwrap=BMCFK23CPW; info->Power=BMCFK23CAPower; info->Reset=BMCFK23CReset; info->Close=BMCFK23CAClose; CHRRAMSize=8192; CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSize); SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSize, 1); AddExState(CHRRAM, CHRRAMSize, 0, "CHRRAM"); AddExState(EXPREGS, 8, 0, "EXPR"); AddExState(&unromchr, 1, 0, "UNCHR"); AddExState(&dipswitch, 1, 0, "DIPSW"); }
void UNLDSOUNDV1_Init(CartInfo *info) { info->Power = UNLDSOUNDV1Power; info->Close = UNLDSOUNDV1Close; GameStateRestore = StateRestore; MapIRQHook = UNLDSOUNDV1SndClk; jedi_table_init(); WRAMSIZE = 32768; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); if (info->battery) { info->SaveGame[0] = WRAM; info->SaveGameLen[0] = WRAMSIZE; } AddExState(&StateRegs, ~0, 0, 0); }
void GenMMC3_Init(CartInfo *info, int prg, int chr, int wram, int battery) { pwrap=GENPWRAP; cwrap=GENCWRAP; mwrap=GENMWRAP; wrams=wram<<10; PRGmask8[0]&=(prg>>13)-1; CHRmask1[0]&=(chr>>10)-1; CHRmask2[0]&=(chr>>11)-1; if(wram) { mmc3opts|=1; WRAM=(uint8*)FCEU_gmalloc(wrams); SetupCartPRGMapping(0x10,WRAM,wrams,1); AddExState(WRAM, wrams, 0, "MMC3WRAM"); } if(battery) { mmc3opts|=2; info->SaveGame[0]=WRAM; info->SaveGameLen[0]=wrams; } AddExState(MMC3_StateRegs, ~0, 0, 0); info->Power=GenMMC3Power; info->Reset=MMC3RegReset; info->Close=GenMMC3Close; if(info->CRC32 == 0x5104833e) /* Kick Master*/ GameHBIRQHook = MMC3_hb_KickMasterHack; else if(info->CRC32 == 0x5a6860f1 || info->CRC32 == 0xae280e20) /* Shougi Meikan '92/'93*/ GameHBIRQHook = MMC3_hb_KickMasterHack; else if(info->CRC32 == 0xfcd772eb) /* PAL Star Wars, similar problem as Kick Master.*/ GameHBIRQHook = MMC3_hb_PALStarWarsHack; else GameHBIRQHook=MMC3_hb; GameStateRestore=GenMMC3Restore; }
void GenMMC3_Init(CartInfo *info, int prg, int chr, int wram, int battery) { pwrap = GENPWRAP; cwrap = GENCWRAP; mwrap = GENMWRAP; WRAMSIZE = wram << 10; PRGmask8[0] &= (prg >> 13) - 1; CHRmask1[0] &= (chr >> 10) - 1; CHRmask2[0] &= (chr >> 11) - 1; if (wram) { mmc3opts |= 1; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); AddExState(WRAM, WRAMSIZE, 0, "WRAM"); } if (battery) { mmc3opts |= 2; info->SaveGame[0] = WRAM; info->SaveGameLen[0] = WRAMSIZE; } // KT-008 boards hack 2-in-1, TODO assign to new ines mapper, most dump of KT-boards on the net are mapper 4, so need database or goodnes fix support AddExState(&kt_extra, 1, 0, "KTEX"); AddExState(MMC3_StateRegs, ~0, 0, 0); info->Power = GenMMC3Power; info->Reset = MMC3RegReset; info->Close = GenMMC3Close; if (info->CRC32 == 0x5104833e) // Kick Master GameHBIRQHook = MMC3_hb_KickMasterHack; else if (info->CRC32 == 0x5a6860f1 || info->CRC32 == 0xae280e20)// Shougi Meikan '92/'93 GameHBIRQHook = MMC3_hb_KickMasterHack; else if (info->CRC32 == 0xfcd772eb) // PAL Star Wars, similar problem as Kick Master. GameHBIRQHook = MMC3_hb_PALStarWarsHack; else GameHBIRQHook = MMC3_hb; GameStateRestore = GenMMC3Restore; }
static void Latch_Init(CartInfo *info, void (*proc)(void), uint8 init, uint16 adr0, uint16 adr1, uint8 wram, uint8 busc) { bus_conflict = busc; latcheinit = init; addrreg0 = adr0; addrreg1 = adr1; WSync = proc; info->Power = LatchPower; info->Close = LatchClose; GameStateRestore = StateRestore; if (wram) { WRAMSIZE = 8192; WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1); if (info->battery) { info->SaveGame[0] = WRAM; info->SaveGameLen[0] = WRAMSIZE; } AddExState(WRAM, WRAMSIZE, 0, "WRAM"); } AddExState(&latche, 1, 0, "LATC"); AddExState(&bus_conflict, 1, 0, "BUSC"); }