X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=boards%2Fkaraoke.c;h=e089cda179ca7ab10a22912e4a544962a8259d52;hp=eccf9c2df89a6ec8ae070f85f059d75cad5155d8;hb=e2d0dd92bfad989cce4270fc0ac5a712476c7c50;hpb=971a1d07d2f5b5a6f991ed5712275c04b933734f diff --git a/boards/karaoke.c b/boards/karaoke.c index eccf9c2..e089cda 100644 --- a/boards/karaoke.c +++ b/boards/karaoke.c @@ -20,59 +20,52 @@ #include "mapinc.h" -static uint8 DReg; -static SFORMAT StateRegs[]= -{ - {&DReg, 1, "DREG"}, - {0} -}; +extern uint32 ROM_size; +static uint8 latche; static void Sync(void) { - if(DReg) + if(latche) { - if(DReg & 0x10) - setprg16(0x8000,(DReg&7)); + if(latche&0x10) + setprg16(0x8000,(latche&7)); else - setprg16(0x8000,(DReg&7)|8); + setprg16(0x8000,(latche&7)|8); } else - setprg16(0x8000,7); -} - -static void StateRestore(int version) -{ - Sync(); + setprg16(0x8000,7+(ROM_size>>4)); } static DECLFW(M188Write) { - DReg=V; + latche=V; Sync(); } -static DECLFR(testr) +static DECLFR(ExtDev) { return(3); } - static void Power(void) { - setchr8(0); - setprg8(0xc000,0xE); - setprg8(0xe000,0xF); - DReg = 0; + latche=0; Sync(); - SetReadHandler(0x6000,0x7FFF,testr); + setchr8(0); + setprg16(0xc000,0x7); + SetReadHandler(0x6000,0x7FFF,ExtDev); SetReadHandler(0x8000,0xFFFF,CartBR); SetWriteHandler(0x8000,0xFFFF,M188Write); } +static void StateRestore(int version) +{ + Sync(); +} void Mapper188_Init(CartInfo *info) { info->Power=Power; GameStateRestore=StateRestore; - AddExState(&StateRegs, ~0, 0, 0); + AddExState(&latche, 1, 0, "LATCH"); }