Files
ci-libretro-fceumm/src/boards/468_nanjing.h
NewRisingSun 07284ca4af Add mapper 468
2022-12-30 23:56:50 +01:00

30 lines
864 B
C

#define NANJING_reg regByte
static void NANJING_sync () {
setprg32(0x8000, NANJING_reg[2] <<4 &0x30 | NANJING_reg[0] &0x0F | (NANJING_reg[3] &4? 0x00: 0x03) | prgOR >>2);
setchr8(0);
setmirror(mapperFlags &4? MI_H: MI_V);
}
static DECLFW(NANJING_writeReg) {
NANJING_reg[A >>8 &3] =V;
sync();
}
static void NANJING_horizontalBlanking(void) {
if (NANJING_reg[0] &0x80 && scanline <239) { /* Actual hardware cannot look at the current scanline number, but instead latches PA09 on PA13 rises. This does not seem possible with the current PPU emulation however. */
setchr4(0x0000, scanline >=127? 1: 0);
setchr4(0x1000, scanline >=127? 1: 0);
} else
setchr8(0);
}
void NANJING_reset(uint8 clearRegs) {
sync =NANJING_sync;
GameHBIRQHook = NANJING_horizontalBlanking;
SetWriteHandler(0x5000, 0x53FF, NANJING_writeReg);
sync();
}
#undef NANJING_reg