summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author peterferrie <peter.ferrie@gmail.com>2015-01-08 22:49:12 -0800
committer peterferrie <peter.ferrie@gmail.com>2015-01-08 22:49:12 -0800
commit15a5ab001ca0779667f25d8efe59551d81f669b1 (patch)
treeafc52f6f8bc4466065fcaf8864258135d6c06317
parentb60ada63a53e0a720f33193c2985df234b24adfd (diff)
zn: implement (incomplete?) ROM banking in nbajamex, shows some graphics now [Peter Ferrie]
-rw-r--r--src/mame/drivers/zn.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index ca9c5d56c0f..af0ac51738c 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -106,6 +106,7 @@ public:
DECLARE_MACHINE_RESET(coh1002tb);
DECLARE_MACHINE_RESET(coh1002e);
DECLARE_MACHINE_RESET(bam2);
+ DECLARE_MACHINE_RESET(nbajamex);
DECLARE_MACHINE_RESET(coh1001l);
DECLARE_MACHINE_RESET(coh1002v);
DECLARE_MACHINE_RESET(coh1002m);
@@ -2043,6 +2044,7 @@ WRITE16_MEMBER(zn_state::nbajamex_80_w)
verboselog(0, "nbajamex_80_w( %08x, %08x, %08x )\n", offset, data, mem_mask );
psxirq_device *psxirq = (psxirq_device *) machine().device("maincpu:irq");
psxirq->intin10(1);
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + (data ? 0xe00000 : 0));
}
READ16_MEMBER(zn_state::nbajamex_08_r)
@@ -2060,7 +2062,6 @@ READ16_MEMBER(zn_state::nbajamex_80_r)
}
static ADDRESS_MAP_START(coh1000a_map, AS_PROGRAM, 32, zn_state)
- AM_RANGE(0x1f000000, 0x1f1fffff) AM_ROM AM_REGION("roms", 0)
AM_RANGE(0x1fbfff00, 0x1fbfff03) AM_WRITE16(acpsx_00_w, 0xffffffff)
AM_RANGE(0x1fbfff10, 0x1fbfff13) AM_WRITE16(acpsx_10_w, 0xffff0000)
@@ -2068,6 +2069,7 @@ static ADDRESS_MAP_START(coh1000a_map, AS_PROGRAM, 32, zn_state)
ADDRESS_MAP_END
static ADDRESS_MAP_START(nbajamex_map, AS_PROGRAM, 32, zn_state)
+ AM_RANGE(0x1f000000, 0x1f1fffff) AM_ROMBANK("bankedroms")
AM_RANGE(0x1f200000, 0x1f207fff) AM_RAM AM_SHARE("eeprom")
AM_RANGE(0x1fbfff08, 0x1fbfff0b) AM_READ16(nbajamex_08_r, 0xffff)
AM_RANGE(0x1fbfff80, 0x1fbfff83) AM_READWRITE16(nbajamex_80_r, nbajamex_80_w, 0xffff)
@@ -2075,7 +2077,13 @@ static ADDRESS_MAP_START(nbajamex_map, AS_PROGRAM, 32, zn_state)
AM_IMPORT_FROM(coh1000a_map)
ADDRESS_MAP_END
+MACHINE_RESET_MEMBER(zn_state,nbajamex)
+{
+ membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() );
+}
+
static ADDRESS_MAP_START(jdredd_map, AS_PROGRAM, 32, zn_state)
+ AM_RANGE(0x1f000000, 0x1f1fffff) AM_ROM AM_REGION("roms", 0)
AM_RANGE(0x1fbfff80, 0x1fbfff8f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs1, write_cs1, 0xffffffff)
AM_RANGE(0x1fbfff90, 0x1fbfff9f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs0, write_cs0, 0xffffffff)
@@ -2091,6 +2099,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( nbajamex, zn1_2mb_vram )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(nbajamex_map)
+ MCFG_MACHINE_RESET_OVERRIDE(zn_state, nbajamex)
MACHINE_CONFIG_END
@@ -4663,7 +4672,7 @@ ROM_END
ROM_START( nbajamex )
AC_BIOS
- ROM_REGION32_LE( 0x2000000, "roms", 0 )
+ ROM_REGION32_LE( 0x2000000, "bankedroms", 0 )
ROM_LOAD16_BYTE( "360mpa1o.u36", 0x0000001, 0x100000, CRC(c433e827) SHA1(1d2a5a6990a1b1864e63ce3ba7306d48ebbd4775) )
ROM_LOAD16_BYTE( "360mpa1e.u35", 0x0000000, 0x100000, CRC(d8f5b2f7) SHA1(e38609d314721b8b612e047406e2888395917b0d) )
ROM_LOAD16_BYTE( "nbax0o.u28", 0x0200001, 0x200000, CRC(be13c5af) SHA1(eee5c9d985384ecfe4f00fae27d66fbefc15b28e) )