diff options
author | 2018-11-29 00:03:18 -0500 | |
---|---|---|
committer | 2018-11-29 00:03:30 -0500 | |
commit | 07c6c3e2ab76336c9de68a3656356450c1c70b2c (patch) | |
tree | 0de9373b94e8eff54c0aebd53444e40e3e7934ac | |
parent | c2dc4316bdfb59972c2d1b204f46f059f898ea0f (diff) |
namcostr: Not a very workable fix, but perhaps better than nothing (nw)
-rw-r--r-- | src/mame/drivers/seta2.cpp | 29 | ||||
-rw-r--r-- | src/mame/includes/seta2.h | 2 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp index 34c3fd92849..7995dc7dc72 100644 --- a/src/mame/drivers/seta2.cpp +++ b/src/mame/drivers/seta2.cpp @@ -3604,6 +3604,33 @@ ROM_START( namcostr ) ROM_LOAD( "ns1voi0.u40", 0x000000, 0x400000, BAD_DUMP CRC(fe5c2b16) SHA1(21e4423cc91e8833297d4588343237b8b3155196) ) // FIXED BITS (xxxxx1xxxxxxxxxx) ROM_END +void seta2_state::init_namcostr() +{ + // attempt to patch a few of the stuck bits + uint16_t *cpurom = &memregion("maincpu")->as_u16(0); + for (offs_t addr = 0x00000; addr < 0x00100; addr += 2) + cpurom[addr / 2] &= 0xfbff; + for (offs_t addr = 0x00100; addr < 0x00180; addr += 2) + if (!BIT(cpurom[addr / 2], 9)) + cpurom[addr / 2] &= 0xfbff; + cpurom[0x00184 / 2] &= 0xfbff; + for (offs_t addr = 0x00204; addr < 0x002ae; addr += 2) + cpurom[addr / 2] &= 0xfbff; + for (offs_t addr = 0x002b0; addr < 0x0032c; addr += 2) + cpurom[addr / 2] &= 0xfbff; + cpurom[0x00332 / 2] &= 0xfbff; + for (offs_t addr = 0x00336; addr < 0x00344; addr += 2) + cpurom[addr / 2] &= 0xfbff; + for (offs_t addr = 0x00348; addr < 0x00364; addr += 2) + cpurom[addr / 2] &= 0xfbff; + for (offs_t addr = 0x00368; addr < 0x00370; addr += 2) + cpurom[addr / 2] &= 0xfbff; + for (offs_t addr = 0x00374; addr < 0x003ae; addr += 2) + cpurom[addr / 2] &= 0xfbff; + for (offs_t addr = 0x003b0; addr < 0x00400; addr += 2) + cpurom[addr / 2] &= 0xfbff; +} + /*************************************************************************** Puzzle De Bowling (Japan) @@ -4621,7 +4648,7 @@ GAME( 1999, pzlbowl, 0, pzlbowl, pzlbowl, seta2_state, empty_init, GAME( 2000, penbros, 0, penbros, penbros, seta2_state, empty_init, ROT0, "Subsino", "Penguin Brothers (Japan)", MACHINE_NO_COCKTAIL ) GAME( 2000, ablast, penbros, penbros, penbros, seta2_state, empty_init, ROT0, "Subsino", "Hong Tian Lei (A-Blast) (Japan)", MACHINE_NO_COCKTAIL ) // 轟天雷/Hōng tiān léi GAME( 2000, ablastb, penbros, ablastb, penbros, seta2_state, empty_init, ROT0, "bootleg", "Hong Tian Lei (A-Blast) (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // at least "tilemap sprite" scrolly flag differs, FPGA instead of x1-010 -GAME( 2000, namcostr, 0, namcostr, funcube, seta2_state, empty_init, ROT0, "Namco", "Namco Stars", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING ) +GAME( 2000, namcostr, 0, namcostr, funcube, seta2_state, init_namcostr, ROT0, "Namco", "Namco Stars", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING ) GAME( 2000, deerhunt, 0, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) GAME( 2000, deerhunta, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) GAME( 2000, deerhuntb, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/includes/seta2.h b/src/mame/includes/seta2.h index c1ebfe4940d..d1856ea2ef5 100644 --- a/src/mame/includes/seta2.h +++ b/src/mame/includes/seta2.h @@ -67,6 +67,8 @@ public: DECLARE_WRITE32_MEMBER(oki_write); DECLARE_WRITE8_MEMBER(sound_bank_w); + void init_namcostr(); + protected: DECLARE_WRITE16_MEMBER(grdians_lockout_w); |