summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/fuukifg3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/fuukifg3.cpp')
-rw-r--r--src/mame/drivers/fuukifg3.cpp77
1 files changed, 40 insertions, 37 deletions
diff --git a/src/mame/drivers/fuukifg3.cpp b/src/mame/drivers/fuukifg3.cpp
index aae67918876..32a45ac4995 100644
--- a/src/mame/drivers/fuukifg3.cpp
+++ b/src/mame/drivers/fuukifg3.cpp
@@ -206,30 +206,31 @@ WRITE32_MEMBER(fuuki32_state::vregs_w)
}
}
-ADDRESS_MAP_START(fuuki32_state::fuuki32_map)
- AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
- AM_RANGE(0x400000, 0x40ffff) AM_RAM // Work RAM
- AM_RANGE(0x410000, 0x41ffff) AM_RAM // Work RAM (used by asurabus)
-
- AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram.0") // Tilemap 1
- AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram.1") // Tilemap 2
- AM_RANGE(0x504000, 0x505fff) AM_RAM_WRITE(vram_2_w) AM_SHARE("vram.2") // Tilemap bg
- AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE(vram_3_w) AM_SHARE("vram.3") // Tilemap bg2
- AM_RANGE(0x508000, 0x517fff) AM_RAM // More tilemap, or linescroll? Seems to be empty all of the time
- AM_RANGE(0x600000, 0x601fff) AM_RAM AM_DEVREADWRITE16("fuukivid", fuukivid_device, fuuki_sprram_r, fuuki_sprram_w, 0xffffffff) // Sprites
- AM_RANGE(0x700000, 0x703fff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette") // Palette
-
- AM_RANGE(0x800000, 0x800003) AM_READ_PORT("800000") AM_WRITENOP // Coin
- AM_RANGE(0x810000, 0x810003) AM_READ_PORT("810000") AM_WRITENOP // Player Inputs
- AM_RANGE(0x880000, 0x880003) AM_READ_PORT("880000") // Service + DIPS
- AM_RANGE(0x890000, 0x890003) AM_READ_PORT("890000") // More DIPS
-
- AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE(vregs_w) AM_SHARE("vregs") // Video Registers
- AM_RANGE(0x8d0000, 0x8d0003) AM_RAM // Flipscreen Related
- AM_RANGE(0x8e0000, 0x8e0003) AM_RAM AM_SHARE("priority") // Controls layer order
- AM_RANGE(0x903fe0, 0x903fff) AM_READWRITE(snd_020_r, snd_020_w) // Shared with Z80
- AM_RANGE(0xa00000, 0xa00003) AM_WRITEONLY AM_SHARE("tilebank") // Tilebank
-ADDRESS_MAP_END
+void fuuki32_state::fuuki32_map(address_map &map)
+{
+ map(0x000000, 0x1fffff).rom(); // ROM
+ map(0x400000, 0x40ffff).ram(); // Work RAM
+ map(0x410000, 0x41ffff).ram(); // Work RAM (used by asurabus)
+
+ map(0x500000, 0x501fff).ram().w(this, FUNC(fuuki32_state::vram_0_w)).share("vram.0"); // Tilemap 1
+ map(0x502000, 0x503fff).ram().w(this, FUNC(fuuki32_state::vram_1_w)).share("vram.1"); // Tilemap 2
+ map(0x504000, 0x505fff).ram().w(this, FUNC(fuuki32_state::vram_2_w)).share("vram.2"); // Tilemap bg
+ map(0x506000, 0x507fff).ram().w(this, FUNC(fuuki32_state::vram_3_w)).share("vram.3"); // Tilemap bg2
+ map(0x508000, 0x517fff).ram(); // More tilemap, or linescroll? Seems to be empty all of the time
+ map(0x600000, 0x601fff).ram().rw(m_fuukivid, FUNC(fuukivid_device::fuuki_sprram_r), FUNC(fuukivid_device::fuuki_sprram_w)); // Sprites
+ map(0x700000, 0x703fff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette"); // Palette
+
+ map(0x800000, 0x800003).portr("800000").nopw(); // Coin
+ map(0x810000, 0x810003).portr("810000").nopw(); // Player Inputs
+ map(0x880000, 0x880003).portr("880000"); // Service + DIPS
+ map(0x890000, 0x890003).portr("890000"); // More DIPS
+
+ map(0x8c0000, 0x8c001f).ram().w(this, FUNC(fuuki32_state::vregs_w)).share("vregs"); // Video Registers
+ map(0x8d0000, 0x8d0003).ram(); // Flipscreen Related
+ map(0x8e0000, 0x8e0003).ram().share("priority"); // Controls layer order
+ map(0x903fe0, 0x903fff).rw(this, FUNC(fuuki32_state::snd_020_r), FUNC(fuuki32_state::snd_020_w)); // Shared with Z80
+ map(0xa00000, 0xa00003).writeonly().share("tilebank"); // Tilebank
+}
/***************************************************************************
@@ -259,19 +260,21 @@ WRITE8_MEMBER(fuuki32_state::snd_ymf278b_w)
machine().device<ymf278b_device>("ymf1")->write(space, offset, data);
}
-ADDRESS_MAP_START(fuuki32_state::fuuki32_sound_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7ff0, 0x7fff) AM_READWRITE(snd_z80_r, snd_z80_w)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fuuki32_state::fuuki32_sound_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(sound_bw_w)
- AM_RANGE(0x30, 0x30) AM_WRITENOP // leftover/unused nmi handler related
- AM_RANGE(0x40, 0x45) AM_DEVREAD("ymf1", ymf278b_device, read) AM_WRITE(snd_ymf278b_w)
-ADDRESS_MAP_END
+void fuuki32_state::fuuki32_sound_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7ff0, 0x7fff).rw(this, FUNC(fuuki32_state::snd_z80_r), FUNC(fuuki32_state::snd_z80_w));
+ map(0x8000, 0xffff).bankr("bank1"); // ROM
+}
+
+void fuuki32_state::fuuki32_sound_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).w(this, FUNC(fuuki32_state::sound_bw_w));
+ map(0x30, 0x30).nopw(); // leftover/unused nmi handler related
+ map(0x40, 0x45).r("ymf1", FUNC(ymf278b_device::read)).w(this, FUNC(fuuki32_state::snd_ymf278b_w));
+}
/***************************************************************************