summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/segaorun.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/segaorun.cpp')
-rw-r--r--src/mame/drivers/segaorun.cpp71
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));
+}