diff options
Diffstat (limited to 'src/mame/drivers/psikyo4.cpp')
-rw-r--r-- | src/mame/drivers/psikyo4.cpp | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/src/mame/drivers/psikyo4.cpp b/src/mame/drivers/psikyo4.cpp index 9f9e48a1887..b224907621a 100644 --- a/src/mame/drivers/psikyo4.cpp +++ b/src/mame/drivers/psikyo4.cpp @@ -321,34 +321,36 @@ WRITE32_MEMBER(psikyo4_state::io_select_w) logerror("Unk ioselect write %x mask %x\n", data, mem_mask); } -ADDRESS_MAP_START(psikyo4_state::ps4_map) - AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg) - AM_RANGE(0x02000000, 0x021fffff) AM_ROM AM_REGION("maincpu", 0x100000) // data ROM - AM_RANGE(0x03000000, 0x030037ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x03003fe0, 0x03003fe3) AM_READWRITE(ps4_eeprom_r,ps4_eeprom_w) - AM_RANGE(0x03003fe4, 0x03003fef) AM_RAM_WRITE(ps4_vidregs_w) AM_SHARE("vidregs") // vid regs? - AM_RANGE(0x03003fe4, 0x03003fe7) AM_READNOP // also writes to this address - might be vblank? +void psikyo4_state::ps4_map(address_map &map) +{ + map(0x00000000, 0x000fffff).rom(); // program ROM (1 meg) + map(0x02000000, 0x021fffff).rom().region("maincpu", 0x100000); // data ROM + map(0x03000000, 0x030037ff).ram().share("spriteram"); + map(0x03003fe0, 0x03003fe3).rw(this, FUNC(psikyo4_state::ps4_eeprom_r), FUNC(psikyo4_state::ps4_eeprom_w)); + map(0x03003fe4, 0x03003fef).ram().w(this, FUNC(psikyo4_state::ps4_vidregs_w)).share("vidregs"); // vid regs? + map(0x03003fe4, 0x03003fe7).nopr(); // also writes to this address - might be vblank? // AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITENOP // might be vblank? - AM_RANGE(0x03003ff0, 0x03003ff3) AM_WRITE(ps4_screen1_brt_w) // screen 1 brightness - AM_RANGE(0x03003ff4, 0x03003ff7) AM_WRITE(ps4_bgpen_1_dword_w) AM_SHARE("bgpen_1") // screen 1 clear colour - AM_RANGE(0x03003ff8, 0x03003ffb) AM_WRITE(ps4_screen2_brt_w) // screen 2 brightness - AM_RANGE(0x03003ffc, 0x03003fff) AM_WRITE(ps4_bgpen_2_dword_w) AM_SHARE("bgpen_2") // screen 2 clear colour - AM_RANGE(0x03004000, 0x03005fff) AM_RAM_WRITE(ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_SHARE("paletteram") // palette - AM_RANGE(0x03006000, 0x03007fff) AM_ROMBANK("gfxbank") // data for rom tests (gfx), data is controlled by vidreg - AM_RANGE(0x05000000, 0x05000007) AM_DEVREADWRITE8("ymf", ymf278b_device, read, write, 0xffffffff) - AM_RANGE(0x05800000, 0x05800003) AM_READ_PORT("P1_P2") - AM_RANGE(0x05800004, 0x05800007) AM_READ_PORT("P3_P4") - AM_RANGE(0x05800008, 0x0580000b) AM_WRITE(io_select_w) // Used by Mahjong games to choose input (also maps normal loderndf inputs to offsets) - - AM_RANGE(0x06000000, 0x060fffff) AM_RAM AM_SHARE("ram") // main RAM (1 meg) -ADDRESS_MAP_END - -ADDRESS_MAP_START(psikyo4_state::ps4_ymf_map) - AM_RANGE(0x000000, 0x0fffff) AM_ROMBANK("ymfbank0") - AM_RANGE(0x100000, 0x1fffff) AM_ROMBANK("ymfbank1") - AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK("ymfbank2") - AM_RANGE(0x300000, 0x3fffff) AM_ROMBANK("ymfbank3") -ADDRESS_MAP_END + map(0x03003ff0, 0x03003ff3).w(this, FUNC(psikyo4_state::ps4_screen1_brt_w)); // screen 1 brightness + map(0x03003ff4, 0x03003ff7).w(this, FUNC(psikyo4_state::ps4_bgpen_1_dword_w)).share("bgpen_1"); // screen 1 clear colour + map(0x03003ff8, 0x03003ffb).w(this, FUNC(psikyo4_state::ps4_screen2_brt_w)); // screen 2 brightness + map(0x03003ffc, 0x03003fff).w(this, FUNC(psikyo4_state::ps4_bgpen_2_dword_w)).share("bgpen_2"); // screen 2 clear colour + map(0x03004000, 0x03005fff).ram().w(this, FUNC(psikyo4_state::ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w)).share("paletteram"); // palette + map(0x03006000, 0x03007fff).bankr("gfxbank"); // data for rom tests (gfx), data is controlled by vidreg + map(0x05000000, 0x05000007).rw("ymf", FUNC(ymf278b_device::read), FUNC(ymf278b_device::write)); + map(0x05800000, 0x05800003).portr("P1_P2"); + map(0x05800004, 0x05800007).portr("P3_P4"); + map(0x05800008, 0x0580000b).w(this, FUNC(psikyo4_state::io_select_w)); // Used by Mahjong games to choose input (also maps normal loderndf inputs to offsets) + + map(0x06000000, 0x060fffff).ram().share("ram"); // main RAM (1 meg) +} + +void psikyo4_state::ps4_ymf_map(address_map &map) +{ + map(0x000000, 0x0fffff).bankr("ymfbank0"); + map(0x100000, 0x1fffff).bankr("ymfbank1"); + map(0x200000, 0x2fffff).bankr("ymfbank2"); + map(0x300000, 0x3fffff).bankr("ymfbank3"); +} static INPUT_PORTS_START( hotgmck ) |