Add Realtec 8099 PCB support to mapper 236

This commit is contained in:
NewRisingSun
2021-11-13 21:26:59 +01:00
parent d99e6e563c
commit b72007fa62

View File

@@ -22,6 +22,7 @@
static uint8 reg[2]; static uint8 reg[2];
static uint8 dip; static uint8 dip;
static uint8 chrramvariant;
static SFORMAT StateRegs[] = static SFORMAT StateRegs[] =
{ {
{ reg, 2, "REG " }, { reg, 2, "REG " },
@@ -31,7 +32,15 @@ static SFORMAT StateRegs[] =
static void Sync(void) static void Sync(void)
{ {
int prg = reg[1] &7 | reg[0] <<3; int prg;
if (chrramvariant)
{
prg = reg[1] &7 | reg[0] <<3;
}
else
{
prg = reg[1] &15;
}
switch (reg[1] >>4 &3) switch (reg[1] >>4 &3)
{ {
case 0: case 0:
@@ -47,7 +56,7 @@ static void Sync(void)
setprg16(0xC000, prg); setprg16(0xC000, prg);
break; break;
} }
setchr8(reg[0] &7); setchr8(reg[0] &15);
setmirror((reg[0] >>5 &1) ^1); setmirror((reg[0] >>5 &1) ^1);
} }
@@ -55,7 +64,7 @@ static void Sync(void)
static DECLFR(M236Read) static DECLFR(M236Read)
{ {
if ((reg[1] >>4 &3) ==1) if ((reg[1] >>4 &3) ==1)
return CartBR(A &~0xF | dip); return CartBR(A &~0xF | dip &0xF);
else else
return CartBR(A); return CartBR(A);
} }
@@ -96,4 +105,5 @@ void Mapper236_Init(CartInfo *info)
info->Reset = M236Reset; info->Reset = M236Reset;
AddExState(&StateRegs, ~0, 0, 0); AddExState(&StateRegs, ~0, 0, 0);
GameStateRestore = StateRestore; GameStateRestore = StateRestore;
chrramvariant = info->CHRRomSize == 0;
} }