diff options
Diffstat (limited to 'src/mame/drivers/segaorun.cpp')
-rw-r--r-- | src/mame/drivers/segaorun.cpp | 71 |
1 files changed, 38 insertions, 33 deletions
diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp index 33536e51c3a..0f7741bd6e4 100644 --- a/src/mame/drivers/segaorun.cpp +++ b/src/mame/drivers/segaorun.cpp @@ -839,35 +839,38 @@ WRITE_LINE_MEMBER(segaorun_state::m68k_reset_callback) // MAIN CPU MEMORY MAP //************************************************************************** -ADDRESS_MAP_START(segaorun_state::outrun_map) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x000000, 0xffffff) AM_DEVREADWRITE8("mapper", sega_315_5195_mapper_device, read, write, 0x00ff) +void segaorun_state::outrun_map(address_map &map) +{ + map.unmap_value_high(); + map(0x000000, 0xffffff).rw(m_mapper, FUNC(sega_315_5195_mapper_device::read), FUNC(sega_315_5195_mapper_device::write)).umask16(0x00ff); // these get overwritten by the memory mapper above, but we put them here // so they are properly allocated and tracked for saving - AM_RANGE(0x100000, 0x100fff) AM_RAM AM_SHARE("sprites") - AM_RANGE(0x200000, 0x201fff) AM_RAM AM_SHARE("paletteram") - AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_SHARE("tileram") - AM_RANGE(0x400000, 0x400fff) AM_RAM AM_SHARE("textram") - AM_RANGE(0x500000, 0x507fff) AM_RAM AM_SHARE("workram") -ADDRESS_MAP_END + map(0x100000, 0x100fff).ram().share("sprites"); + map(0x200000, 0x201fff).ram().share("paletteram"); + map(0x300000, 0x30ffff).ram().share("tileram"); + map(0x400000, 0x400fff).ram().share("textram"); + map(0x500000, 0x507fff).ram().share("workram"); +} -ADDRESS_MAP_START(segaorun_state::decrypted_opcodes_map) - AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") -ADDRESS_MAP_END +void segaorun_state::decrypted_opcodes_map(address_map &map) +{ + map(0x00000, 0xfffff).bankr("fd1094_decrypted_opcodes"); +} //************************************************************************** // SECOND CPU MEMORY MAP //************************************************************************** -ADDRESS_MAP_START(segaorun_state::sub_map) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xfffff) - AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_SHARE("cpu1rom") - AM_RANGE(0x060000, 0x067fff) AM_MIRROR(0x018000) AM_RAM AM_SHARE("cpu1ram") - AM_RANGE(0x080000, 0x080fff) AM_MIRROR(0x00f000) AM_RAM AM_SHARE("roadram") - AM_RANGE(0x090000, 0x09ffff) AM_DEVREADWRITE("segaic16road", segaic16_road_device, segaic16_road_control_0_r, segaic16_road_control_0_w) -ADDRESS_MAP_END +void segaorun_state::sub_map(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xfffff); + map(0x000000, 0x05ffff).rom().share("cpu1rom"); + map(0x060000, 0x067fff).mirror(0x018000).ram().share("cpu1ram"); + map(0x080000, 0x080fff).mirror(0x00f000).ram().share("roadram"); + map(0x090000, 0x09ffff).rw(m_segaic16road, FUNC(segaic16_road_device::segaic16_road_control_0_r), FUNC(segaic16_road_device::segaic16_road_control_0_w)); +} @@ -875,19 +878,21 @@ ADDRESS_MAP_END // SOUND CPU MEMORY MAP //************************************************************************** -ADDRESS_MAP_START(segaorun_state::sound_map) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_DEVREADWRITE("pcm", segapcm_device, sega_pcm_r, sega_pcm_w) - AM_RANGE(0xf800, 0xffff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(segaorun_state::sound_portmap) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) - AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_DEVREAD("mapper", sega_315_5195_mapper_device, pread) -ADDRESS_MAP_END +void segaorun_state::sound_map(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0xefff).rom(); + map(0xf000, 0xf0ff).mirror(0x0700).rw("pcm", FUNC(segapcm_device::sega_pcm_r), FUNC(segapcm_device::sega_pcm_w)); + map(0xf800, 0xffff).ram(); +} + +void segaorun_state::sound_portmap(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); + map(0x00, 0x01).mirror(0x3e).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); + map(0x40, 0x40).mirror(0x3f).r(m_mapper, FUNC(sega_315_5195_mapper_device::pread)); +} |