diff --git a/src/boards/datalatch.cpp b/src/boards/datalatch.cpp index 8016ceed..0c75067f 100644 --- a/src/boards/datalatch.cpp +++ b/src/boards/datalatch.cpp @@ -20,8 +20,7 @@ #include "mapinc.h" -static uint8 bus_conflict = 0; -static uint8 latche, latcheinit; +static uint8 latche, latcheinit, bus_conflict; static uint16 addrreg0, addrreg1; static uint8 *WRAM=NULL; static uint32 WRAMSIZE; @@ -58,8 +57,9 @@ static void StateRestore(int version) WSync(); } -static void Latch_Init(CartInfo *info, void (*proc)(void), uint8 init, uint16 adr0, uint16 adr1, uint8 wram) +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; @@ -80,7 +80,6 @@ static void Latch_Init(CartInfo *info, void (*proc)(void), uint8 init, uint16 ad AddExState(WRAM, WRAMSIZE, 0, "WRAM"); } AddExState(&latche, 1, 0, "LATC"); - AddExState(&bus_conflict, 1, 0, "BUSC"); } //------------------ CPROM --------------------------- @@ -95,7 +94,7 @@ static void CPROMSync(void) void CPROM_Init(CartInfo *info) { - Latch_Init(info, CPROMSync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, CPROMSync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 184 --------------------------- @@ -110,7 +109,7 @@ static void M184Sync(void) void Mapper184_Init(CartInfo *info) { - Latch_Init(info, M184Sync, 0, 0x6000, 0x7FFF, 0); + Latch_Init(info, M184Sync, 0, 0x6000, 0x7FFF, 0, 0); } //------------------ CNROM --------------------------- @@ -127,8 +126,7 @@ static void CNROMSync(void) void CNROM_Init(CartInfo *info) { - bus_conflict = 1; - Latch_Init(info, CNROMSync, 0, 0x8000, 0xFFFF, 1); + Latch_Init(info, CNROMSync, 0, 0x8000, 0xFFFF, 1, 1); } //------------------ ANROM --------------------------- @@ -142,7 +140,7 @@ static void ANROMSync() void ANROM_Init(CartInfo *info) { - Latch_Init(info, ANROMSync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, ANROMSync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 70 --------------------------- @@ -156,7 +154,7 @@ static void M70Sync() void Mapper70_Init(CartInfo *info) { - Latch_Init(info, M70Sync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, M70Sync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 152 --------------------------- @@ -171,7 +169,7 @@ static void M152Sync() void Mapper152_Init(CartInfo *info) { - Latch_Init(info, M152Sync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, M152Sync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 78 --------------------------- @@ -186,7 +184,7 @@ static void M78Sync() void Mapper78_Init(CartInfo *info) { - Latch_Init(info, M78Sync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, M78Sync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ MHROM --------------------------- @@ -199,17 +197,17 @@ static void MHROMSync(void) void MHROM_Init(CartInfo *info) { - Latch_Init(info, MHROMSync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, MHROMSync, 0, 0x8000, 0xFFFF, 0, 0); } void Mapper140_Init(CartInfo *info) { - Latch_Init(info, MHROMSync, 0, 0x6000, 0x7FFF, 0); + Latch_Init(info, MHROMSync, 0, 0x6000, 0x7FFF, 0, 0); } void Mapper240_Init(CartInfo *info) { - Latch_Init(info, MHROMSync, 0, 0x4020, 0x5FFF, 0); + Latch_Init(info, MHROMSync, 0, 0x4020, 0x5FFF, 0, 0); // need SRAM. } @@ -225,7 +223,7 @@ static void M87Sync(void) void Mapper87_Init(CartInfo *info) { - Latch_Init(info, M87Sync, ~0, 0x6000, 0xFFFF, 0); + Latch_Init(info, M87Sync, ~0, 0x6000, 0xFFFF, 0, 0); } //------------------ Map 101 --------------------------- @@ -239,7 +237,7 @@ static void M101Sync(void) void Mapper101_Init(CartInfo *info) { - Latch_Init(info, M101Sync, ~0, 0x6000, 0x7FFF, 0); + Latch_Init(info, M101Sync, ~0, 0x6000, 0x7FFF, 0, 0); } //------------------ Map 11 --------------------------- @@ -252,12 +250,12 @@ static void M11Sync(void) void Mapper11_Init(CartInfo *info) { - Latch_Init(info, M11Sync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, M11Sync, 0, 0x8000, 0xFFFF, 0, 0); } void Mapper144_Init(CartInfo *info) { - Latch_Init(info, M11Sync, 0, 0x8001, 0xFFFF, 0); + Latch_Init(info, M11Sync, 0, 0x8001, 0xFFFF, 0, 0); } //------------------ Map 38 --------------------------- @@ -270,7 +268,7 @@ static void M38Sync(void) void Mapper38_Init(CartInfo *info) { - Latch_Init(info, M38Sync, 0, 0x7000, 0x7FFF, 0); + Latch_Init(info, M38Sync, 0, 0x7000, 0x7FFF, 0, 0); } //------------------ Map 36 --------------------------- @@ -283,7 +281,7 @@ static void M36Sync(void) void Mapper36_Init(CartInfo *info) { - Latch_Init(info, M36Sync, 0, 0x8400, 0xfffe, 0); + Latch_Init(info, M36Sync, 0, 0x8400, 0xfffe, 0, 0); } //------------------ UNROM --------------------------- @@ -296,8 +294,7 @@ static void UNROMSync(void) void UNROM_Init(CartInfo *info) { - bus_conflict = 1; - Latch_Init(info, UNROMSync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, UNROMSync, 0, 0x8000, 0xFFFF, 0, 1); } //------------------ Map 93 --------------------------- @@ -311,7 +308,7 @@ static void SSUNROMSync(void) void SUNSOFT_UNROM_Init(CartInfo *info) { - Latch_Init(info, SSUNROMSync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, SSUNROMSync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 94 --------------------------- @@ -325,7 +322,7 @@ static void M94Sync(void) void Mapper94_Init(CartInfo *info) { - Latch_Init(info, M94Sync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, M94Sync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 180 --------------------------- @@ -339,7 +336,7 @@ static void M180Sync(void) void Mapper180_Init(CartInfo *info) { - Latch_Init(info, M180Sync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, M180Sync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 107 --------------------------- @@ -352,7 +349,7 @@ static void M107Sync(void) void Mapper107_Init(CartInfo *info) { - Latch_Init(info, M107Sync, ~0, 0x8000, 0xFFFF, 0); + Latch_Init(info, M107Sync, ~0, 0x8000, 0xFFFF, 0, 0); } //------------------ Map 113 --------------------------- @@ -366,7 +363,7 @@ static void M113Sync(void) void Mapper113_Init(CartInfo *info) { - Latch_Init(info, M113Sync, 0, 0x4100, 0x7FFF, 0); + Latch_Init(info, M113Sync, 0, 0x4100, 0x7FFF, 0, 0); } //------------------ A65AS --------------------------- @@ -394,7 +391,7 @@ static void BMCA65ASSync(void) void BMCA65AS_Init(CartInfo *info) { - Latch_Init(info, BMCA65ASSync, 0, 0x8000, 0xFFFF, 0); + Latch_Init(info, BMCA65ASSync, 0, 0x8000, 0xFFFF, 0, 0); } //------------------ NROM --------------------------- @@ -414,8 +411,8 @@ static void NROMPower(void) setprg16(0xC000,~0); setchr8(0); - SetReadHandler(0x6000,0x6FFF,CartBR); - SetWriteHandler(0x6000,0x6FFF,CartBW); + SetReadHandler(0x6000,0x7FFF,CartBR); + SetWriteHandler(0x6000,0x7FFF,CartBW); SetReadHandler(0x8000,0xFFFF,CartBR); #ifdef DEBUG_MAPPER @@ -437,5 +434,4 @@ void NROM_Init(CartInfo *info) info->SaveGameLen[0]=WRAMSIZE; } AddExState(WRAM, WRAMSIZE, 0, "WRAM"); - }