summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Wilbert Pol <wilbertpol@users.noreply.github.com>2015-08-14 14:37:25 +0200
committer Wilbert Pol <wilbertpol@users.noreply.github.com>2015-08-18 20:12:39 +0200
commit304ab3bbacf0c3f8382ed815c22eaa2071f0b38a (patch)
tree3fa89b64fbd896fe92e975dff09d1b464631dd38 /src
parentc9d255b26f295343ed577eda97f485959c9d2e06 (diff)
wgp.c: reduce tagmap lookups (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/wgp.c10
-rw-r--r--src/mame/includes/wgp.h11
2 files changed, 15 insertions, 6 deletions
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index 5727594dee5..e8ce89b5983 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -516,12 +516,12 @@ WRITE16_MEMBER(wgp_state::rotate_port_w)
READ16_MEMBER(wgp_state::wgp_adinput_r)
{
int steer = 0x40;
- int fake = ioport(FAKE_PORT_TAG)->read_safe(0x00);
+ int fake = m_fake ? m_fake->read() : 0;
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
/* Reduce span to 0x80 */
- steer = (ioport(STEER_PORT_TAG)->read_safe(0x00) * 0x80) / 0x100;
+ steer = ((m_steer ? m_steer->read() : 0) * 0x80) / 0x100;
}
else /* Digital steer */
{
@@ -566,7 +566,7 @@ READ16_MEMBER(wgp_state::wgp_adinput_r)
}
case 0x05:
- return ioport(UNKNOWN_PORT_TAG)->read_safe(0x00); /* unknown */
+ return m_unknown ? m_unknown->read() : 0; /* unknown */
}
logerror("CPU #0 PC %06x: warning - read unmapped a/d input offset %06x\n",space.device().safe_pc(),offset);
@@ -590,7 +590,7 @@ WRITE16_MEMBER(wgp_state::wgp_adinput_w)
WRITE8_MEMBER(wgp_state::sound_bankswitch_w)
{
- membank("z80bank")->set_entry(data & 3);
+ m_z80bank->set_entry(data & 3);
}
WRITE16_MEMBER(wgp_state::wgp_sound_w)
@@ -909,7 +909,7 @@ void wgp_state::machine_reset()
void wgp_state::machine_start()
{
- membank("z80bank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
+ m_z80bank->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
save_item(NAME(m_cpua_ctrl));
save_item(NAME(m_port_sel));
diff --git a/src/mame/includes/wgp.h b/src/mame/includes/wgp.h
index 6f2416a4326..c306b52ba2d 100644
--- a/src/mame/includes/wgp.h
+++ b/src/mame/includes/wgp.h
@@ -34,7 +34,12 @@ public:
m_tc0140syt(*this, "tc0140syt"),
m_tc0220ioc(*this, "tc0220ioc"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_z80bank(*this, "z80bank"),
+ m_steer(*this, "STEER"),
+ m_unknown(*this, "UNKNOWN"),
+ m_fake(*this, "FAKE")
+ { }
/* memory pointers */
required_shared_ptr<UINT16> m_spritemap;
@@ -66,6 +71,10 @@ public:
required_device<tc0220ioc_device> m_tc0220ioc;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_memory_bank m_z80bank;
+ optional_ioport m_steer;
+ optional_ioport m_unknown;
+ optional_ioport m_fake;
DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
DECLARE_READ16_MEMBER(lan_status_r);