diff options
author | 2015-08-14 12:14:52 -0400 | |
---|---|---|
committer | 2015-08-14 12:15:10 -0400 | |
commit | 01f8532c81e3c6574dba5924123f2f2519b85c0d (patch) | |
tree | 9f0b796ad9684bd641b1d845426f0e0e6464f0b6 /src | |
parent | 43f506316feac0ccaa75534097a5959688d1d0ea (diff) |
crimfght.c: bankdev (nw)
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/aliens.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/crimfght.c | 50 | ||||
-rw-r--r-- | src/mame/includes/aliens.h | 6 | ||||
-rw-r--r-- | src/mame/includes/crimfght.h | 13 | ||||
-rw-r--r-- | src/mame/video/crimfght.c | 16 |
5 files changed, 39 insertions, 54 deletions
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c index 83731fc67d0..aaea54de090 100644 --- a/src/mame/drivers/aliens.c +++ b/src/mame/drivers/aliens.c @@ -90,7 +90,7 @@ WRITE8_MEMBER(aliens_state::k052109_051960_w) static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state ) AM_RANGE(0x0000, 0x03ff) AM_DEVICE("bank0000", address_map_bank_device, amap8) AM_RANGE(0x0400, 0x1fff) AM_RAM - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") /* banked ROM */ + AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") /* banked ROM */ AM_RANGE(0x5f80, 0x5f80) AM_READ_PORT("DSW3") AM_RANGE(0x5f81, 0x5f81) AM_READ_PORT("P1") AM_RANGE(0x5f82, 0x5f82) AM_READ_PORT("P2") @@ -179,8 +179,8 @@ WRITE8_MEMBER(aliens_state::volume_callback) void aliens_state::machine_start() { - membank("bank1")->configure_entries(0, 24, memregion("maincpu")->base(), 0x2000); - membank("bank1")->set_entry(0); + m_rombank->configure_entries(0, 24, memregion("maincpu")->base(), 0x2000); + m_rombank->set_entry(0); } void aliens_state::machine_reset() @@ -190,7 +190,7 @@ void aliens_state::machine_reset() WRITE8_MEMBER( aliens_state::banking_callback ) { - membank("bank1")->set_entry(data & 0x1f); + m_rombank->set_entry(data & 0x1f); } static MACHINE_CONFIG_START( aliens, aliens_state ) diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c index 458d70b7173..2b8895f7742 100644 --- a/src/mame/drivers/crimfght.c +++ b/src/mame/drivers/crimfght.c @@ -85,7 +85,7 @@ WRITE8_MEMBER(crimfght_state::ym2151_ct_w) } static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state ) - AM_RANGE(0x0000, 0x03ff) AM_RAMBANK("bank1") /* banked RAM */ + AM_RANGE(0x0000, 0x03ff) AM_DEVICE("bank0000", address_map_bank_device, amap8) AM_RANGE(0x0400, 0x1fff) AM_RAM AM_RANGE(0x3f80, 0x3f80) AM_READ_PORT("SYSTEM") AM_RANGE(0x3f81, 0x3f81) AM_READ_PORT("P1") @@ -98,8 +98,13 @@ static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state ) AM_RANGE(0x3f88, 0x3f88) AM_MIRROR(0x03) AM_READ(watchdog_reset_r) AM_WRITE(crimfght_coin_w) // 051550 AM_RANGE(0x3f8c, 0x3f8c) AM_MIRROR(0x03) AM_WRITE(sound_w) AM_RANGE(0x2000, 0x5fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */ - AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank2") /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_ROM + AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank") /* banked ROM */ + AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x18000) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( bank0000_map, AS_PROGRAM, 8, crimfght_state ) + AM_RANGE(0x0000, 0x03ff) AM_RAM + AM_RANGE(0x0400, 0x07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END // full memory map derived from schematics @@ -250,26 +255,17 @@ WRITE8_MEMBER(crimfght_state::volume_callback) void crimfght_state::machine_start() { - UINT8 *ROM = memregion("maincpu")->base(); - - membank("bank2")->configure_entries(0, 12, &ROM[0x10000], 0x2000); - membank("bank2")->set_entry(0); + m_rombank->configure_entries(0, 16, memregion("maincpu")->base(), 0x2000); + m_rombank->set_entry(0); } WRITE8_MEMBER( crimfght_state::banking_callback ) { - membank("bank2")->set_entry(data & 0x0f); + m_rombank->set_entry(data & 0x0f); /* bit 5 = select work RAM or palette */ m_woco = BIT(data, 5); - if (m_woco) - { - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank3"); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(palette_device::write), m_palette.target())); - membank("bank3")->set_base(&m_paletteram[0]); - } - else - m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x0000, 0x03ff, "bank1"); /* RAM */ + m_bank0000->set_bank(m_woco); /* bit 6 = enable char ROM reading through the video RAM */ m_rmrd = BIT(data, 6); @@ -301,6 +297,13 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state ) MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(crimfght_sound_map) + MCFG_DEVICE_ADD("bank0000", ADDRESS_MAP_BANK, 0) + MCFG_DEVICE_PROGRAM_MAP(bank0000_map) + MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG) + MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8) + MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(11) + MCFG_ADDRESS_MAP_BANK_STRIDE(0x400) + /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ @@ -345,9 +348,8 @@ MACHINE_CONFIG_END ***************************************************************************/ ROM_START( crimfght ) - ROM_REGION( 0x28000, "maincpu", 0 ) /* code + banked roms */ - ROM_LOAD( "821l02.f24", 0x10000, 0x18000, CRC(588e7da6) SHA1(285febb3bcca31f82b34af3695a59eafae01cd30) ) - ROM_CONTINUE( 0x08000, 0x08000 ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* code + banked roms */ + ROM_LOAD( "821l02.f24", 0x00000, 0x20000, CRC(588e7da6) SHA1(285febb3bcca31f82b34af3695a59eafae01cd30) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */ ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) ) @@ -368,9 +370,8 @@ ROM_START( crimfght ) ROM_END ROM_START( crimfghtj ) - ROM_REGION( 0x28000, "maincpu", 0 ) /* code + banked roms */ - ROM_LOAD( "821p02.f24", 0x10000, 0x18000, CRC(f33fa2e1) SHA1(00fc9e8250fa51386f3af2fca0f137bec9e1c220) ) - ROM_CONTINUE( 0x08000, 0x08000 ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* code + banked roms */ + ROM_LOAD( "821p02.f24", 0x00000, 0x20000, CRC(f33fa2e1) SHA1(00fc9e8250fa51386f3af2fca0f137bec9e1c220) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */ ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) ) @@ -391,9 +392,8 @@ ROM_START( crimfghtj ) ROM_END ROM_START( crimfght2 ) -ROM_REGION( 0x28000, "maincpu", 0 ) /* code + banked roms */ - ROM_LOAD( "821r02.f24", 0x10000, 0x18000, CRC(4ecdd923) SHA1(78e5260c4bb9b18d7818fb6300d7e1d3a577fb63) ) - ROM_CONTINUE( 0x08000, 0x08000 ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* code + banked roms */ + ROM_LOAD( "821r02.f24", 0x00000, 0x20000, CRC(4ecdd923) SHA1(78e5260c4bb9b18d7818fb6300d7e1d3a577fb63) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */ ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) ) diff --git a/src/mame/includes/aliens.h b/src/mame/includes/aliens.h index e39479cc67e..b54f427f87c 100644 --- a/src/mame/includes/aliens.h +++ b/src/mame/includes/aliens.h @@ -10,7 +10,6 @@ #include "sound/k007232.h" #include "video/k052109.h" #include "video/k051960.h" -#include "video/konami_helper.h" class aliens_state : public driver_device { @@ -22,7 +21,8 @@ public: m_bank0000(*this, "bank0000"), m_k007232(*this, "k007232"), m_k052109(*this, "k052109"), - m_k051960(*this, "k051960") { } + m_k051960(*this, "k051960"), + m_rombank(*this, "rombank") { } /* devices */ required_device<cpu_device> m_maincpu; @@ -31,6 +31,8 @@ public: required_device<k007232_device> m_k007232; required_device<k052109_device> m_k052109; required_device<k051960_device> m_k051960; + required_memory_bank m_rombank; + DECLARE_WRITE8_MEMBER(aliens_coin_counter_w); DECLARE_WRITE8_MEMBER(aliens_sh_irqtrigger_w); DECLARE_READ8_MEMBER(k052109_051960_r); diff --git a/src/mame/includes/crimfght.h b/src/mame/includes/crimfght.h index a8880921129..52856d281d7 100644 --- a/src/mame/includes/crimfght.h +++ b/src/mame/includes/crimfght.h @@ -5,11 +5,10 @@ Crime Fighters *************************************************************************/ -#include "cpu/m6809/konami.h" +#include "machine/bankdev.h" #include "sound/k007232.h" #include "video/k052109.h" #include "video/k051960.h" -#include "video/konami_helper.h" class crimfght_state : public driver_device { @@ -18,21 +17,22 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), + m_bank0000(*this, "bank0000"), m_k007232(*this, "k007232"), m_k052109(*this, "k052109"), m_k051960(*this, "k051960"), - m_palette(*this, "palette") { } - - /* memory pointers */ - std::vector<UINT8> m_paletteram; + m_palette(*this, "palette"), + m_rombank(*this, "rombank") { } /* devices */ required_device<cpu_device> m_maincpu; required_device<cpu_device> m_audiocpu; + required_device<address_map_bank_device> m_bank0000; required_device<k007232_device> m_k007232; required_device<k052109_device> m_k052109; required_device<k051960_device> m_k051960; required_device<palette_device> m_palette; + required_memory_bank m_rombank; DECLARE_WRITE8_MEMBER(crimfght_coin_w); DECLARE_WRITE8_MEMBER(sound_w); @@ -41,7 +41,6 @@ public: DECLARE_READ8_MEMBER(datain_r); DECLARE_WRITE8_MEMBER(ym2151_ct_w); virtual void machine_start(); - virtual void video_start(); UINT32 screen_update_crimfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(crimfght_interrupt); DECLARE_WRITE8_MEMBER(volume_callback); diff --git a/src/mame/video/crimfght.c b/src/mame/video/crimfght.c index abc6ecdb55e..8b37bb03313 100644 --- a/src/mame/video/crimfght.c +++ b/src/mame/video/crimfght.c @@ -47,22 +47,6 @@ K051960_CB_MEMBER(crimfght_state::sprite_callback) /*************************************************************************** - Start the video hardware emulation. - -***************************************************************************/ - -void crimfght_state::video_start() -{ - m_paletteram.resize(0x400); - m_palette->basemem().set(m_paletteram, ENDIANNESS_BIG, 2); - - save_item(NAME(m_paletteram)); -} - - - -/*************************************************************************** - Display refresh ***************************************************************************/ |