Add mapper 598.

This commit is contained in:
NewRisingSun
2026-02-06 14:56:06 +01:00
parent d74d4c18b6
commit ed6b26bb52
3 changed files with 14 additions and 14 deletions

View File

@@ -20,28 +20,27 @@
#include "mapinc.h" #include "mapinc.h"
static uint8 reg[4]; static uint8 reg[2];
static void sync () { static void sync () {
int prg = reg[3] <<3 | reg[1] &0x07; setprg16(0x8000, reg[0] &0x18 | reg[1] &0x07);
if (reg[3] &0x08) setprg16(0xC000, reg[0] &0x18 | 0x07);
setprg32(0x8000, prg >>1); setchr8(0);
else { switch(reg[0] &0x03) {
setprg16(0x8000, prg); case 0x00: setmirror(MI_0); break;
setprg16(0xC000, prg |7); case 0x01: setmirror(MI_V); break;
case 0x02: setmirror(MI_H); break;
case 0x03: setmirror(MI_1); break;
} }
setchr4(0x0000, reg[3] <<5 | reg[1] >>3 &0x1F);
setchr4(0x1000, reg[3] <<5 | reg[2] >>3 &0x1F);
setmirror(reg[3] &0x04? MI_H: MI_V);
} }
static DECLFW (writeReg) { static DECLFW (writeReg) {
reg[A >>13 &3] = V; reg[A >>14 &1] = V;
sync(); sync();
} }
static void reset () { static void reset () {
reg[0] = reg[1] = reg[2] = reg[3] = 0; reg[0] = reg[1] = 0;
sync(); sync();
} }
@@ -59,5 +58,5 @@ void Mapper598_Init (CartInfo *info) {
info->Power = power; info->Power = power;
info->Reset = reset; info->Reset = reset;
GameStateRestore = stateRestore; GameStateRestore = stateRestore;
AddExState(reg, 4, 0, "REGS"); AddExState(reg, 2, 0, "REGS");
} }

View File

@@ -1019,6 +1019,7 @@ INES_BOARD_BEGIN()
INES_BOARD( "4MROM-512", 595, Mapper595_Init ) INES_BOARD( "4MROM-512", 595, Mapper595_Init )
INES_BOARD( "FC-49", 596, Mapper596_Init ) INES_BOARD( "FC-49", 596, Mapper596_Init )
INES_BOARD( "GN-27", 597, Mapper597_Init ) INES_BOARD( "GN-27", 597, Mapper597_Init )
INES_BOARD( "3936", 598, Mapper598_Init )
INES_BOARD_END() INES_BOARD_END()
static uint32 iNES_get_mapper_id(void) static uint32 iNES_get_mapper_id(void)

View File

@@ -488,7 +488,7 @@ void Mapper594_Init(CartInfo *);
void Mapper595_Init(CartInfo *); void Mapper595_Init(CartInfo *);
void Mapper596_Init(CartInfo *); void Mapper596_Init(CartInfo *);
void Mapper597_Init(CartInfo *); void Mapper597_Init(CartInfo *);
void Mapper598_Init(CartInfo *);
void FFE_Init(CartInfo *); void FFE_Init(CartInfo *);
#endif #endif