diff --git a/trunk/src/boards/datalatch.cpp b/trunk/src/boards/datalatch.cpp index 716e101e..0665eeb6 100644 --- a/trunk/src/boards/datalatch.cpp +++ b/trunk/src/boards/datalatch.cpp @@ -201,6 +201,20 @@ void CPROM_Init(CartInfo *info) { Latch_Init(info, CPROMSync, 0, 0x8000, 0xFFFF, 0, 0); } +//------------------ Map 29 --------------------------- //Used by Glider, http://www.retrousb.com/product_info.php?cPath=30&products_id=58 + +static void M29Sync() { + setprg16(0x8000, (latche & 0x1C) >> 2); + setprg16(0xc000, ~0); + setchr8r(0, latche & 3); + setprg8r(0x10, 0x6000, 0); +} + +void Mapper29_Init(CartInfo *info) { + Latch_Init(info, M29Sync, 0, 0x8000, 0xFFFF, 1, 0); +} + + //------------------ Map 38 --------------------------- static void M38Sync(void) { diff --git a/trunk/src/ines.cpp b/trunk/src/ines.cpp index 61a51913..8b7629c4 100644 --- a/trunk/src/ines.cpp +++ b/trunk/src/ines.cpp @@ -473,7 +473,7 @@ static BMAPPINGLocal bmap[] = { {"Konami VRC6 Rev. B", 26, Mapper26_Init}, {"CC-21 MI HUN CHE", 27, UNLCC21_Init}, // Former dupe for VRC2/VRC4 mapper, redefined with crc to mihunche boards {"", 28, Mapper28_Init}, -// {"", 29, Mapper29_Init}, + {"", 29, Mapper29_Init}, // {"", 30, Mapper30_Init}, // {"", 31, Mapper31_Init}, {"IREM G-101", 32, Mapper32_Init}, @@ -972,6 +972,7 @@ static int iNES_Init(int num) { switch (num) { // FIXME, mapper or game data base with the board parameters and ROM/RAM sizes case 13: CHRRAMSize = 16 * 1024; break; case 6: + case 29: case 96: CHRRAMSize = 32 * 1024; break; case 176: CHRRAMSize = 128 * 1024; break; default: CHRRAMSize = 8 * 1024; break; diff --git a/trunk/src/ines.h b/trunk/src/ines.h index 2913b00b..ec27df87 100644 --- a/trunk/src/ines.h +++ b/trunk/src/ines.h @@ -108,6 +108,7 @@ void Mapper24_Init(CartInfo *); void Mapper25_Init(CartInfo *); void Mapper26_Init(CartInfo *); void Mapper28_Init(CartInfo *); +void Mapper29_Init(CartInfo *); void Mapper32_Init(CartInfo *); void Mapper33_Init(CartInfo *); void Mapper34_Init(CartInfo *);