From 5c4a659b4953776f7732c6b8b241a58bf7bc9e7f Mon Sep 17 00:00:00 2001 From: retro-wertz Date: Fri, 31 May 2019 19:45:45 +0800 Subject: [PATCH 1/3] mapper63: try fixing openbus reads again --- src/boards/addrlatch.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/boards/addrlatch.c b/src/boards/addrlatch.c index 86a2e72..7bda0c1 100644 --- a/src/boards/addrlatch.c +++ b/src/boards/addrlatch.c @@ -202,9 +202,12 @@ void Mapper61_Init(CartInfo *info) { * - Powerful 250-in-1 * - Hello Kitty 255-in-1 */ +static uint16 openBus; + static DECLFR(M63Read) { - if (latche & 0x0300) - return X.DB; + if (A < 0xC000) + if (openBus) + return X.DB; return CartBR(A); } @@ -213,6 +216,7 @@ static void M63Sync(void) { uint16 prg_bank = (latche & 0x3F8) >> 1; uint16 prg16 = (latche & 4) >> 1; + openBus = ((latche & 0x300) == 0x300); setprg8(0x8000, (prg_bank | (mode ? 0 : prg16 | 0))); setprg8(0xA000, (prg_bank | (mode ? 1 : prg16 | 1))); setprg8(0xC000, (prg_bank | (mode ? 2 : prg16 | 0))); From 950479cc7a4b5b9a51857316754925d2743f7f4c Mon Sep 17 00:00:00 2001 From: retro-wertz Date: Fri, 31 May 2019 20:18:48 +0800 Subject: [PATCH 2/3] NROM: update prg mapping --- src/boards/datalatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/boards/datalatch.c b/src/boards/datalatch.c index c13454b..be7bd9b 100644 --- a/src/boards/datalatch.c +++ b/src/boards/datalatch.c @@ -94,7 +94,7 @@ static DECLFW(NROMWrite) { static void NROMPower(void) { setprg8r(0x10, 0x6000, 0); /* Famili BASIC (v3.0) need it (uses only 4KB), FP-BASIC uses 8KB */ setprg16(0x8000, 0); - setprg16(0xC000, ~0); + setprg16(0xC000, 1); setchr8(0); SetReadHandler(0x6000, 0x7FFF, CartBR); From 74513dd8e4e11f329327ed143518ef60b51f4a2d Mon Sep 17 00:00:00 2001 From: retro-wertz Date: Sat, 1 Jun 2019 01:35:19 +0800 Subject: [PATCH 3/3] Update bus conflict for some games using mapper 3, add some games to ines-correct.h --- src/boards/datalatch.c | 3 +++ src/ines-correct.h | 14 +++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/boards/datalatch.c b/src/boards/datalatch.c index be7bd9b..4a563f3 100644 --- a/src/boards/datalatch.c +++ b/src/boards/datalatch.c @@ -168,6 +168,9 @@ void CNROM_Init(CartInfo *info) { case 0xebd0644d: /* Dao Shuai (Asia) (Unl).nes */ case 0x8f154a0d: /* Pu Ke Jing Ling (China) (Unl).nes */ case 0xd04a40e6: /* Bingo 75 (Asia) (Unl).nes */ + case 0xe41b440f: /* Sidewinder (Joy Van) */ + case 0xb0c871c5: /* Wei Lai Xiao Zi (Joy Van) */ + case 0xb3be2f71: /* Yanshan Chess (Unl) */ _busc = 0; break; } diff --git a/src/ines-correct.h b/src/ines-correct.h index 77c041f..1a0c89d 100644 --- a/src/ines-correct.h +++ b/src/ines-correct.h @@ -318,12 +318,24 @@ {0x345ee51a, 245, -1}, /* DQ4c */ {0x57514c6c, 245, -1}, /* Yong Zhe Dou E Long - Dragon Quest VI (Ch) */ {0xdb9d71b7, 114, -1}, /* Super Donkey Kong (Unl) [o1] */ - {0x61fc4d20, 224, 0}, /* Pokemon HeartGold (KT-008 PCB)(Ch)[!] */ {0x4d735cb1, 224, 0}, /* Pokemon Platinum (KT-008 PCB)(Ch)[!] */ {0x4f427110, 224, 0}, /* Pokemon Platinum Alt title 1 (KT-008 PCB)(Ch)[!] */ {0xe001de16, 224, 0}, /* Pokemon Platinum Alt title 2 (KT-008 PCB)(Ch)[!] */ + {0xbdbe3c96, 238, 1}, /* Contra Fighter (Unl) */ + {0xcfe02ada, 1, -1}, /* Darkman (E) [!] */ + {0xcb53c523, 1, -1}, /* King Neptune's Adventure (Color Dreams) [!] */ + {0x6e149729, 189, -1}, /* Master Fighter II (Unl) [a1] */ + {0x60bfeb0c, 90, -1}, /* Mortal Kombat 2 (Unl) [!] */ + {0x247cc73d, 150, -1}, /* Poker II (Sachen) [!] */ + {0xe41b440f, 3, 0}, /* Sidewinder (Joy Van) */ + {0x1f1326d4, 121, 0}, /* Super Sonic 5 (1997) (Unl) [!] */ + {0xb0c871c5, 3, 1}, /* Wei Lai Xiao Zi (Joy Van) */ + {0xb3be2f71, 3, 0}, /* Yanshan Chess (Unl) */ + {0x8dedea07, 3, 1}, /* Shui Guo Li (Ch) [a1] */ + {0x1a71fd06, 1, 1}, /* Kujaku Ou (J) [T+Eng1.1_Snark] */ + {0x00000000, -1, -1} #endif