diff options
| author | 2023-04-29 15:38:18 +0200 | |
|---|---|---|
| committer | 2023-04-29 15:38:18 +0200 | |
| commit | b49f26e7fa61f182ed3ba2c06beae96242fd2238 (patch) | |
| tree | 13f013e41ef1048cf36b1f72085aaa8a2cf91800 | |
| parent | 2602ef1687e9ed1644108ad7ed69ac93b3592b80 (diff) | |
seta/seta.cpp: workaround extdwnhl ending crash (#11160)
| -rw-r--r-- | src/mame/seta/seta.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mame/seta/seta.cpp b/src/mame/seta/seta.cpp index 14af5808a95..8fb2a1aba19 100644 --- a/src/mame/seta/seta.cpp +++ b/src/mame/seta/seta.cpp @@ -2652,6 +2652,11 @@ void setaroul_state::setaroul_map(address_map &map) Extreme Downhill / Sokonuke ***************************************************************************/ +// TODO: open bus for unmapped I/O areas? +// extdwnhl wants to read non-zero at POST for watchdog (?) otherwise will mangle RAM boundaries +// and fails booting. +// It also perform a blantantly invalid access during ending, expecting anything that isn't a 0xffff +// to skip it. (A0=0x20434f56, https://mametesters.org/view.php?id=8614) void seta_state::extdwnhl_map(address_map &map) { map.unmap_value_high(); @@ -2664,6 +2669,7 @@ void seta_state::extdwnhl_map(address_map &map) map(0x400004, 0x400005).portr("COINS"); // Coins map(0x400008, 0x40000b).r(FUNC(seta_state::seta_dsw_r)); // DSW map(0x40000c, 0x40000d).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); // Watchdog (extdwnhl (R) & sokonuke (W) MUST RETURN $FFFF) + map(0x434f56, 0x434f57).lr16(NAME([]() { return 0; })); map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_counter_w)); // Coin Counter (no lockout) map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers map(0x500004, 0x500007).noprw(); // IRQ Ack (extdwnhl (R) & sokonuke (W)) |
