diff options
author | arbee <rb6502@users.noreply.github.com> | 2018-01-08 21:20:54 -0500 |
---|---|---|
committer | arbee <rb6502@users.noreply.github.com> | 2018-01-08 21:20:54 -0500 |
commit | dbaa54425107baa28982c978bc267aaae00acfe6 (patch) | |
tree | 0774702dad1e4b2f339bbdbdfb7d7f1282c86556 /src/mame/drivers/konmedal.cpp | |
parent | 2a31d476e6e2019bbcb1d78a8604325d513b3718 (diff) |
konmedal: program ROM banking for shuriboy (nw)
Diffstat (limited to 'src/mame/drivers/konmedal.cpp')
-rw-r--r-- | src/mame/drivers/konmedal.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp index 9b5430e3edb..e8449a2f1da 100644 --- a/src/mame/drivers/konmedal.cpp +++ b/src/mame/drivers/konmedal.cpp @@ -52,11 +52,11 @@ public: DECLARE_PALETTE_INIT(konmedal); DECLARE_MACHINE_START(shuriboy); - READ8_MEMBER(vram_r); - WRITE8_MEMBER(vram_w); - READ8_MEMBER(magic_r); - WRITE8_MEMBER(bankswitch_w); - WRITE8_MEMBER(control2_w); + DECLARE_READ8_MEMBER(vram_r); + DECLARE_WRITE8_MEMBER(vram_w); + DECLARE_READ8_MEMBER(magic_r); + DECLARE_WRITE8_MEMBER(bankswitch_w); + DECLARE_WRITE8_MEMBER(control2_w); READ8_MEMBER(inputs_r) { return 0xff; @@ -69,6 +69,7 @@ public: K052109_CB_MEMBER(shuriboy_tile_callback); INTERRUPT_GEN_MEMBER(shuriboy_interrupt); + DECLARE_WRITE8_MEMBER(shuri_bank_w); protected: virtual void machine_start() override; @@ -247,12 +248,13 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( shuriboy_main, AS_PROGRAM, 8, konmedal_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0) AM_RANGE(0x8000, 0x87ff) AM_RAM + AM_RANGE(0x8c00, 0x8c00) AM_WRITE(shuri_bank_w) AM_RANGE(0x9800, 0x987f) AM_DEVREADWRITE("k051649", k051649_device, k051649_waveform_r, k051649_waveform_w) AM_RANGE(0x9880, 0x9889) AM_DEVWRITE("k051649", k051649_device, k051649_frequency_w) AM_RANGE(0x988a, 0x988e) AM_DEVWRITE("k051649", k051649_device, k051649_volume_w) AM_RANGE(0x988f, 0x988f) AM_DEVWRITE("k051649", k051649_device, k051649_keyonoff_w) AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE("k051649", k051649_device, k051649_test_r, k051649_test_w) - AM_RANGE(0xa000, 0xbfff) AM_RAM // readback window for ROM? + AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xffff) AM_DEVREADWRITE("k052109", k052109_device, read, write) ADDRESS_MAP_END @@ -341,7 +343,8 @@ void konmedal_state::machine_start() MACHINE_START_MEMBER(konmedal_state, shuriboy) { - + membank("bank1")->configure_entries(0, 0x8, memregion("maincpu")->base()+0x8000, 0x2000); + membank("bank1")->set_entry(0); } void konmedal_state::machine_reset() @@ -441,6 +444,12 @@ INTERRUPT_GEN_MEMBER(konmedal_state::shuriboy_interrupt) device.execute().set_input_line(0, HOLD_LINE); } +WRITE8_MEMBER(konmedal_state::shuri_bank_w) +{ + //printf("ROM bank %x (full %02x)\n", data>>4, data); + membank("bank1")->set_entry(data&0x3); +} + static MACHINE_CONFIG_START( shuriboy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 3) // divisor unknown |