diff options
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 |
commit | 15a5ab001ca0779667f25d8efe59551d81f669b1 (patch) | |
tree | afc52f6f8bc4466065fcaf8864258135d6c06317 | |
parent | b60ada63a53e0a720f33193c2985df234b24adfd (diff) |
zn: implement (incomplete?) ROM banking in nbajamex, shows some graphics now [Peter Ferrie]
-rw-r--r-- | src/mame/drivers/zn.c | 13 |
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) ) |