diff options
author | arbee <rb6502@users.noreply.github.com> | 2019-11-17 23:36:58 -0500 |
---|---|---|
committer | arbee <rb6502@users.noreply.github.com> | 2019-11-17 23:36:58 -0500 |
commit | a829064e83f711588a6c261af0e6d07573da3a10 (patch) | |
tree | 3cdd9a44c00855b9374386c844b99908757a70f3 | |
parent | 1440dd0f11d5af4ecddaf68aed2b1826450dfbfc (diff) |
apple2gs: Music Construction Set depends on an implementation detail of LC inhibit in bank 01 [Peter Ferrie, R. Belmont]
-rw-r--r-- | src/mame/drivers/apple2gs.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 1a91c65e713..8895c45825c 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -2570,6 +2570,7 @@ WRITE8_MEMBER(apple2gs_state::c000_w) { m_bank0_atc->set_bank(1); m_bank1_atc->set_bank(1); + } break; @@ -3443,6 +3444,11 @@ WRITE8_MEMBER(apple2gs_state::b1ram4000_w) READ8_MEMBER(apple2gs_state::bank0_c000_r) { + if (offset & 0x2000) + { + offset ^= 0x1000; + } + if (m_ramrd) { return m_ram_ptr[offset + 0x3c000]; @@ -3453,6 +3459,11 @@ READ8_MEMBER(apple2gs_state::bank0_c000_r) WRITE8_MEMBER(apple2gs_state::bank0_c000_w) { + if (offset & 0x2000) + { + offset ^= 0x1000; + } + if (m_ramwrt) { m_ram_ptr[offset + 0x3c000] = data; @@ -3464,8 +3475,8 @@ WRITE8_MEMBER(apple2gs_state::bank0_c000_w) READ8_MEMBER(apple2gs_state::bank1_0000_r) { return m_ram_ptr[offset + 0x30000]; } WRITE8_MEMBER(apple2gs_state::bank1_0000_w) { m_ram_ptr[offset + 0x30000] = data; } -READ8_MEMBER(apple2gs_state::bank1_c000_r) { return m_ram_ptr[offset + 0x3c000]; } -WRITE8_MEMBER(apple2gs_state::bank1_c000_w) { m_ram_ptr[offset + 0x3c000] = data; } +READ8_MEMBER(apple2gs_state::bank1_c000_r) { if (offset & 0x2000) offset ^= 0x1000; return m_ram_ptr[offset + 0x3c000]; } +WRITE8_MEMBER(apple2gs_state::bank1_c000_w) { if (offset & 0x2000) offset ^= 0x1000; m_ram_ptr[offset + 0x3c000] = data; } WRITE8_MEMBER(apple2gs_state::bank1_0000_sh_w) { m_ram_ptr[offset + 0x30000] = data; |