diff --git a/src/boards/datalatch.c b/src/boards/datalatch.c index f547344..08e0c01 100644 --- a/src/boards/datalatch.c +++ b/src/boards/datalatch.c @@ -587,3 +587,22 @@ void Mapper429_Init(CartInfo *info) { info->Reset = Mapper429_Reset; Latch_Init(info, Mapper429_Sync, 0, 0x8000, 0xFFFF, 0, 0); } + +/*------------------ Mapper 415 ---------------------------*/ + +static void Mapper415_Sync(void) { + setprg8(0x6000, latche & 0x0F); + setprg32(0x8000, ~0); + setchr8(0); + setmirror(((latche >> 4) & 1) ^ 1); +} + +static void M415Power(void) { + LatchPower(); + SetReadHandler(0x6000, 0x7FFF, CartBR); +} + +void Mapper415_Init(CartInfo *info) { + Latch_Init(info, Mapper415_Sync, 0, 0x8000, 0xFFFF, 0, 0); + info->Power = M415Power; +} diff --git a/src/ines.c b/src/ines.c index 5a1c8ae..a4465c5 100644 --- a/src/ines.c +++ b/src/ines.c @@ -709,6 +709,7 @@ INES_BOARD_BEGIN() INES_BOARD( "BMC Super 19-in-1 (VIP19)", 401, Mapper401_Init ) INES_BOARD( "89433", 403, Mapper403_Init ) INES_BOARD( "A88S-1", 411, Mapper411_Init ) + INES_BOARD( "0353", 415, Mapper415_Init ) INES_BOARD( "4-in-1/N-32", 416, Mapper416_Init ) INES_BOARD( "BS-400R/BS-4040", 422, Mapper422_Init ) INES_BOARD( "Brilliant Com Cocoma Pack", 516, Mapper516_Init ) diff --git a/src/ines.h b/src/ines.h index b17abd5..daac2ee 100644 --- a/src/ines.h +++ b/src/ines.h @@ -293,6 +293,7 @@ void Mapper403_Init(CartInfo *); void Mapper404_Init(CartInfo *); void Mapper410_Init(CartInfo *); void Mapper411_Init(CartInfo *); +void Mapper415_Init(CartInfo *); void Mapper416_Init(CartInfo *); void Mapper421_Init(CartInfo *); void Mapper422_Init(CartInfo *);