Mappers 44,174,331,333,335: Reset to menu.

This commit is contained in:
NewRisingSun
2025-04-01 21:03:03 +02:00
committed by LibretroAdmin
parent 4438d28d1b
commit 7194d208d9
5 changed files with 35 additions and 0 deletions

View File

@@ -61,12 +61,18 @@ static void BMC12IN1Power(void) {
SetWriteHandler(0x8000, 0xFFFF, BMC12IN1Write); SetWriteHandler(0x8000, 0xFFFF, BMC12IN1Write);
} }
static void BMC12IN1Reset(void) {
prgchr[0] = prgchr[1] = ctrl = 0;
Sync();
}
static void StateRestore(int version) { static void StateRestore(int version) {
Sync(); Sync();
} }
void BMC12IN1_Init(CartInfo *info) { void BMC12IN1_Init(CartInfo *info) {
info->Power = BMC12IN1Power; info->Power = BMC12IN1Power;
info->Reset = BMC12IN1Reset;
GameStateRestore = StateRestore; GameStateRestore = StateRestore;
AddExState(&StateRegs, ~0, 0, 0); AddExState(&StateRegs, ~0, 0, 0);
} }

View File

@@ -32,6 +32,12 @@ static void Sync(void) {
setmirror((latch.addr & 1) ^ 1); setmirror((latch.addr & 1) ^ 1);
} }
static void M174Reset(void) {
latch.addr =0;
Sync();
}
void Mapper174_Init(CartInfo *info) { void Mapper174_Init(CartInfo *info) {
Latch_Init(info, Sync, NULL, 0, 0); Latch_Init(info, Sync, NULL, 0, 0);
info->Reset = M174Reset;
} }

View File

@@ -58,10 +58,17 @@ static void BMC8IN1Power(void) {
SetWriteHandler(0x8000, 0xFFFF, BMC8IN1Write); SetWriteHandler(0x8000, 0xFFFF, BMC8IN1Write);
} }
static void BMC8IN1Reset(void) {
EXPREGS[0] = 0;
FixMMC3PRG(0);
FixMMC3CHR(0);
}
void BMC8IN1_Init(CartInfo *info) { void BMC8IN1_Init(CartInfo *info) {
GenMMC3_Init(info, 128, 128, 0, 0); GenMMC3_Init(info, 128, 128, 0, 0);
cwrap = BMC8IN1CW; cwrap = BMC8IN1CW;
pwrap = BMC8IN1PW; pwrap = BMC8IN1PW;
info->Power = BMC8IN1Power; info->Power = BMC8IN1Power;
info->Reset = BMC8IN1Reset;
AddExState(EXPREGS, 1, 0, "EXPR"); AddExState(EXPREGS, 1, 0, "EXPR");
} }

View File

@@ -57,18 +57,25 @@ static DECLFW(WriteCHR) {
} }
static void BMCCTC09Power(void) { static void BMCCTC09Power(void) {
regs[0] =regs[1] =0;
Sync(); Sync();
SetReadHandler(0x8000, 0xFFFF, CartBR); SetReadHandler(0x8000, 0xFFFF, CartBR);
SetWriteHandler(0x8000, 0xBFFF, WriteCHR); SetWriteHandler(0x8000, 0xBFFF, WriteCHR);
SetWriteHandler(0xC000, 0xFFFF, WritePRG); SetWriteHandler(0xC000, 0xFFFF, WritePRG);
} }
static void BMCCTC09Reset(void) {
regs[0] =regs[1] =0;
Sync();
}
static void StateRestore(int version) { static void StateRestore(int version) {
Sync(); Sync();
} }
void BMCCTC09_Init(CartInfo *info) { void BMCCTC09_Init(CartInfo *info) {
info->Power = BMCCTC09Power; info->Power = BMCCTC09Power;
info->Reset = BMCCTC09Reset;
GameStateRestore = StateRestore; GameStateRestore = StateRestore;
AddExState(&StateRegs, ~0, 0, 0); AddExState(&StateRegs, ~0, 0, 0);
} }

View File

@@ -466,6 +466,14 @@ static void M44Power(void) {
EXPREGS[0] = 0; EXPREGS[0] = 0;
GenMMC3Power(); GenMMC3Power();
SetWriteHandler(0xA000, 0xBFFF, M44Write); SetWriteHandler(0xA000, 0xBFFF, M44Write);
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
static void M44Reset(void) {
EXPREGS[0] =0;
FixMMC3PRG(0);
FixMMC3CHR(0);
} }
void Mapper44_Init(CartInfo *info) { void Mapper44_Init(CartInfo *info) {
@@ -473,6 +481,7 @@ void Mapper44_Init(CartInfo *info) {
cwrap = M44CW; cwrap = M44CW;
pwrap = M44PW; pwrap = M44PW;
info->Power = M44Power; info->Power = M44Power;
info->Reset = M44Reset;
AddExState(EXPREGS, 1, 0, "EXPR"); AddExState(EXPREGS, 1, 0, "EXPR");
} }