diff options
Diffstat (limited to 'src/mame/drivers/bnstars.cpp')
-rw-r--r-- | src/mame/drivers/bnstars.cpp | 98 |
1 files changed, 50 insertions, 48 deletions
diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp index 4589b4aa8b7..e255fc48c47 100644 --- a/src/mame/drivers/bnstars.cpp +++ b/src/mame/drivers/bnstars.cpp @@ -742,63 +742,65 @@ WRITE32_MEMBER(bnstars_state::bnstars1_mahjong_select_w) } -ADDRESS_MAP_START(bnstars_state::bnstars_map) - AM_RANGE(0x00000000, 0x001fffff) AM_ROM +void bnstars_state::bnstars_map(address_map &map) +{ + map(0x00000000, 0x001fffff).rom(); - AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(ms32_sound_w) + map(0xfc800000, 0xfc800003).w(this, FUNC(bnstars_state::ms32_sound_w)); - AM_RANGE(0xfcc00004, 0xfcc00007) AM_READ_PORT("P1") - AM_RANGE(0xfcc00008, 0xfcc0000b) AM_READ_PORT("P2") - AM_RANGE(0xfcc00010, 0xfcc00013) AM_READ_PORT("DSW") + map(0xfcc00004, 0xfcc00007).portr("P1"); + map(0xfcc00008, 0xfcc0000b).portr("P2"); + map(0xfcc00010, 0xfcc00013).portr("DSW"); - AM_RANGE(0xfce00034, 0xfce00037) AM_WRITENOP - AM_RANGE(0xfce00038, 0xfce0003b) AM_WRITE(reset_sub_w) + map(0xfce00034, 0xfce00037).nopw(); + map(0xfce00038, 0xfce0003b).w(this, FUNC(bnstars_state::reset_sub_w)); - AM_RANGE(0xfce00050, 0xfce00053) AM_WRITENOP - AM_RANGE(0xfce00058, 0xfce0005b) AM_WRITENOP - AM_RANGE(0xfce0005c, 0xfce0005f) AM_WRITENOP - AM_RANGE(0xfce00300, 0xfce00303) AM_WRITENOP + map(0xfce00050, 0xfce00053).nopw(); + map(0xfce00058, 0xfce0005b).nopw(); + map(0xfce0005c, 0xfce0005f).nopw(); + map(0xfce00300, 0xfce00303).nopw(); - AM_RANGE(0xfce00400, 0xfce0045f) AM_WRITEONLY AM_SHARE("roz_ctrl.0") - AM_RANGE(0xfce00700, 0xfce0075f) AM_WRITEONLY AM_SHARE("roz_ctrl.1") // guess - AM_RANGE(0xfce00a00, 0xfce00a17) AM_WRITEONLY AM_SHARE("tx0_scroll") - AM_RANGE(0xfce00a20, 0xfce00a37) AM_WRITEONLY AM_SHARE("bg0_scroll") - AM_RANGE(0xfce00c00, 0xfce00c17) AM_WRITEONLY AM_SHARE("tx1_scroll") - AM_RANGE(0xfce00c20, 0xfce00c37) AM_WRITEONLY AM_SHARE("bg1_scroll") + map(0xfce00400, 0xfce0045f).writeonly().share("roz_ctrl.0"); + map(0xfce00700, 0xfce0075f).writeonly().share("roz_ctrl.1"); // guess + map(0xfce00a00, 0xfce00a17).writeonly().share("tx0_scroll"); + map(0xfce00a20, 0xfce00a37).writeonly().share("bg0_scroll"); + map(0xfce00c00, 0xfce00c17).writeonly().share("tx1_scroll"); + map(0xfce00c20, 0xfce00c37).writeonly().share("bg1_scroll"); - AM_RANGE(0xfce00e00, 0xfce00e03) AM_WRITE(bnstars1_mahjong_select_w) // ? + map(0xfce00e00, 0xfce00e03).w(this, FUNC(bnstars_state::bnstars1_mahjong_select_w)); // ? - AM_RANGE(0xfd000000, 0xfd000003) AM_READ(ms32_sound_r) + map(0xfd000000, 0xfd000003).r(this, FUNC(bnstars_state::ms32_sound_r)); /* wrote together */ - AM_RANGE(0xfd040000, 0xfd047fff) AM_RAM // priority ram - AM_RANGE(0xfd080000, 0xfd087fff) AM_RAM - AM_RANGE(0xfd200000, 0xfd237fff) AM_DEVREADWRITE16("palette2", palette_device, read16, write16, 0x0000ffff) AM_SHARE("palette2") - AM_RANGE(0xfd400000, 0xfd437fff) AM_DEVREADWRITE16("palette", palette_device, read16, write16, 0x0000ffff) AM_SHARE("palette") - AM_RANGE(0xfe000000, 0xfe01ffff) AM_RAM_WRITE(ms32_roz1_ram_w) AM_SHARE("roz1_ram") - AM_RANGE(0xfe400000, 0xfe41ffff) AM_RAM_WRITE(ms32_roz0_ram_w) AM_SHARE("roz0_ram") - AM_RANGE(0xfe800000, 0xfe83ffff) AM_RAM AM_SHARE("spram") - AM_RANGE(0xfea00000, 0xfea07fff) AM_RAM_WRITE(ms32_tx1_ram_w) AM_SHARE("tx1_ram") - AM_RANGE(0xfea08000, 0xfea0ffff) AM_RAM_WRITE(ms32_bg1_ram_w) AM_SHARE("bg1_ram") - AM_RANGE(0xfec00000, 0xfec07fff) AM_RAM_WRITE(ms32_tx0_ram_w) AM_SHARE("tx0_ram") - AM_RANGE(0xfec08000, 0xfec0ffff) AM_RAM_WRITE(ms32_bg0_ram_w) AM_SHARE("bg0_ram") - - AM_RANGE(0xfee00000, 0xfee1ffff) AM_RAM - AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) -ADDRESS_MAP_END - -ADDRESS_MAP_START(bnstars_state::bnstars_sound_map) - AM_RANGE(0x0000, 0x3eff) AM_ROM - AM_RANGE(0x3f00, 0x3f0f) AM_DEVREADWRITE("ymf2", ymf271_device, read, write) - AM_RANGE(0x3f10, 0x3f10) AM_READWRITE(latch_r,to_main_w) - AM_RANGE(0x3f20, 0x3f2f) AM_DEVREADWRITE("ymf1", ymf271_device, read, write) - AM_RANGE(0x3f40, 0x3f40) AM_WRITENOP /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */ - AM_RANGE(0x3f70, 0x3f70) AM_WRITENOP // watchdog? banking? very noisy - AM_RANGE(0x3f80, 0x3f80) AM_WRITE(ms32_snd_bank_w) - AM_RANGE(0x4000, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("z80bank1") - AM_RANGE(0xc000, 0xffff) AM_ROMBANK("z80bank2") -ADDRESS_MAP_END + map(0xfd040000, 0xfd047fff).ram(); // priority ram + map(0xfd080000, 0xfd087fff).ram(); + map(0xfd200000, 0xfd237fff).rw("palette2", FUNC(palette_device::read16), FUNC(palette_device::write16)).umask32(0x0000ffff).share("palette2"); + map(0xfd400000, 0xfd437fff).rw(m_palette, FUNC(palette_device::read16), FUNC(palette_device::write16)).umask32(0x0000ffff).share("palette"); + map(0xfe000000, 0xfe01ffff).ram().w(this, FUNC(bnstars_state::ms32_roz1_ram_w)).share("roz1_ram"); + map(0xfe400000, 0xfe41ffff).ram().w(this, FUNC(bnstars_state::ms32_roz0_ram_w)).share("roz0_ram"); + map(0xfe800000, 0xfe83ffff).ram().share("spram"); + map(0xfea00000, 0xfea07fff).ram().w(this, FUNC(bnstars_state::ms32_tx1_ram_w)).share("tx1_ram"); + map(0xfea08000, 0xfea0ffff).ram().w(this, FUNC(bnstars_state::ms32_bg1_ram_w)).share("bg1_ram"); + map(0xfec00000, 0xfec07fff).ram().w(this, FUNC(bnstars_state::ms32_tx0_ram_w)).share("tx0_ram"); + map(0xfec08000, 0xfec0ffff).ram().w(this, FUNC(bnstars_state::ms32_bg0_ram_w)).share("bg0_ram"); + + map(0xfee00000, 0xfee1ffff).ram(); + map(0xffe00000, 0xffffffff).rom().region("maincpu", 0); +} + +void bnstars_state::bnstars_sound_map(address_map &map) +{ + map(0x0000, 0x3eff).rom(); + map(0x3f00, 0x3f0f).rw("ymf2", FUNC(ymf271_device::read), FUNC(ymf271_device::write)); + map(0x3f10, 0x3f10).rw(this, FUNC(bnstars_state::latch_r), FUNC(bnstars_state::to_main_w)); + map(0x3f20, 0x3f2f).rw("ymf1", FUNC(ymf271_device::read), FUNC(ymf271_device::write)); + map(0x3f40, 0x3f40).nopw(); /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */ + map(0x3f70, 0x3f70).nopw(); // watchdog? banking? very noisy + map(0x3f80, 0x3f80).w(this, FUNC(bnstars_state::ms32_snd_bank_w)); + map(0x4000, 0x7fff).ram(); + map(0x8000, 0xbfff).bankr("z80bank1"); + map(0xc000, 0xffff).bankr("z80bank2"); +} MACHINE_CONFIG_START(bnstars_state::bnstars) |