static uint8 cmd;
static uint8 DRegs[8];
-
static SFORMAT StateRegs[]=
{
{&cmd, 1, "CMD"},
static void Sync(void)
{
setprg32(0x8000,(DRegs[0]<<4)|(DRegs[1]&0xF));
+ setchr8(0);
}
static void StateRestore(int version)
{
memset(DRegs,0,8);
DRegs[1]=0xFF;
- setchr8(0);
cmd=0;
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x4020,0xFFFF,Write);
Sync();
}
+static void M163HB(void)
+{
+ if(scanline==127&&DRegs[1]&0x80)
+ setchr4(0x0000,1);
+}
+
+
static void Power2(void)
{
memset(DRegs,0,8);
DRegs[1]=0xFF;
- setchr8(0);
cmd=0;
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x4020,0xFFFF,Write2);
void Mapper163_Init(CartInfo *info)
{
info->Power=Power2;
+ GameHBIRQHook=M163HB;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}