Mapper 414: Add menu cycling.
This commit is contained in:
committed by
LibretroAdmin
parent
225ce34420
commit
bf72633444
@@ -22,14 +22,20 @@
|
||||
|
||||
static uint8 latch_data;
|
||||
static uint32 latch_addr;
|
||||
static uint8 dipswitch;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &latch_addr, 4, "ADDR" },
|
||||
{ &latch_data, 1, "DATA" },
|
||||
{ &dipswitch, 1, "DIPS" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static DECLFR(Mapper414_ReadOB) {
|
||||
return X.DB;
|
||||
}
|
||||
|
||||
static void Sync(void) {
|
||||
if (latch_addr & 0x2000) { /* NROM-256 */
|
||||
setprg32(0x8000, latch_addr >> 2);
|
||||
@@ -37,6 +43,7 @@ static void Sync(void) {
|
||||
setprg16(0x8000, latch_addr >> 1);
|
||||
setprg16(0xC000, latch_addr >> 1);
|
||||
}
|
||||
SetReadHandler(0xC000, 0xFFFF, ~latch_addr &0x100 && latch_addr &dipswitch? Mapper414_ReadOB: CartBR);
|
||||
setchr8(latch_data);
|
||||
setmirror((latch_addr & 1) ^ 1);
|
||||
}
|
||||
@@ -48,17 +55,23 @@ static DECLFW(M414Write) {
|
||||
}
|
||||
|
||||
static void M414Power(void) {
|
||||
dipswitch =0;
|
||||
Sync();
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M414Write);
|
||||
}
|
||||
|
||||
static void M414Reset(void) {
|
||||
dipswitch =dipswitch ==0xF0? 0x00: (dipswitch <<1 | 0x10);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper414_Init(CartInfo *info) {
|
||||
info->Power = M414Power;
|
||||
info->Reset = M414Reset;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user