summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commita829064e83f711588a6c261af0e6d07573da3a10 (patch)
tree3cdd9a44c00855b9374386c844b99908757a70f3
parent1440dd0f11d5af4ecddaf68aed2b1826450dfbfc (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.cpp15
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;