diff --git a/src/boards/addrlatch.c b/src/boards/addrlatch.c index 01c1360..e9bf8b4 100644 --- a/src/boards/addrlatch.c +++ b/src/boards/addrlatch.c @@ -730,3 +730,31 @@ static void M409Sync(void) { void Mapper409_Init(CartInfo *info) { Latch_Init(info, M409Sync, NULL, 0x0000, 0xC000, 0xCFFF, 0); } + +/*------------------ Map 435 ---------------------------*/ +static void M435Sync(void) { + int p =latche >>2 &0x1F | latche >>3 &0x20 | latche >>4 &0x40; + if (latche &0x200) { + if (latche &0x001) { + setprg16(0x8000, p); + setprg16(0xC000, p); + } else { + setprg32(0x8000, p >> 1); + } + } else { + setprg16(0x8000, p); + setprg16(0xC000, p | 7); + } + + if (latche &0x800) + SetupCartCHRMapping(0, CHRptr[0], 0x2000, 0); + else + SetupCartCHRMapping(0, CHRptr[0], 0x2000, 1); + + setmirror(latche &0x002? MI_H: MI_V); + setchr8(0); +} + +void Mapper435_Init(CartInfo *info) { + Latch_Init(info, M435Sync, NULL, 0x0000, 0x8000, 0xFFFF, 1); +} diff --git a/src/ines.c b/src/ines.c index 41c3b8b..4e9baa5 100644 --- a/src/ines.c +++ b/src/ines.c @@ -808,6 +808,7 @@ INES_BOARD_BEGIN() INES_BOARD( "Realtec 8090", 432, Mapper432_Init ) INES_BOARD( "NC-20MB", 433, Mapper433_Init ) INES_BOARD( "S-009", 434, Mapper434_Init ) + INES_BOARD( "F-1002", 435, Mapper435_Init ) INES_BOARD( "820401/T-217", 436, Mapper436_Init ) INES_BOARD( "NTDEC TH2348", 437, Mapper437_Init ) INES_BOARD( "K-3071", 438, Mapper438_Init ) diff --git a/src/ines.h b/src/ines.h index 1f38801..bdb41a6 100644 --- a/src/ines.h +++ b/src/ines.h @@ -317,6 +317,7 @@ void Mapper431_Init(CartInfo *); void Mapper432_Init(CartInfo *); void Mapper433_Init(CartInfo *); void Mapper434_Init(CartInfo *); +void Mapper435_Init(CartInfo *); void Mapper436_Init(CartInfo *); void Mapper437_Init(CartInfo *); void Mapper438_Init(CartInfo *);