mirror of
https://github.com/holub/mame
synced 2025-07-05 01:48:29 +03:00
tnzs.c: reduce tagmap lookups (nw)
This commit is contained in:
parent
9434c3cb10
commit
b31469df44
@ -164,6 +164,12 @@ static INPUT_PORTS_START( cchance )
|
|||||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
|
// These ports are required in tnzs_state
|
||||||
|
PORT_START("IN1")
|
||||||
|
PORT_START("IN2")
|
||||||
|
PORT_START("DSWA")
|
||||||
|
PORT_START("DSWB")
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static const gfx_layout cchance_layout =
|
static const gfx_layout cchance_layout =
|
||||||
|
@ -675,8 +675,8 @@ READ8_MEMBER(tnzs_state::kageki_csport_r)
|
|||||||
{
|
{
|
||||||
int dsw, dsw1, dsw2;
|
int dsw, dsw1, dsw2;
|
||||||
|
|
||||||
dsw1 = ioport("DSWA")->read();
|
dsw1 = m_dswa->read();
|
||||||
dsw2 = ioport("DSWB")->read();
|
dsw2 = m_dswb->read();
|
||||||
|
|
||||||
switch (m_kageki_csport_sel)
|
switch (m_kageki_csport_sel)
|
||||||
{
|
{
|
||||||
@ -731,7 +731,7 @@ WRITE8_MEMBER(tnzs_state::kabukiz_sound_bank_w)
|
|||||||
{
|
{
|
||||||
// to avoid the write when the sound chip is initialized
|
// to avoid the write when the sound chip is initialized
|
||||||
if (data != 0xff)
|
if (data != 0xff)
|
||||||
membank("audiobank")->set_entry(data & 0x07);
|
m_audiobank->set_entry(data & 0x07);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(tnzs_state::kabukiz_sample_w)
|
WRITE8_MEMBER(tnzs_state::kabukiz_sample_w)
|
||||||
@ -877,7 +877,7 @@ ADDRESS_MAP_END
|
|||||||
WRITE8_MEMBER(tnzs_state::jpopnics_subbankswitch_w)
|
WRITE8_MEMBER(tnzs_state::jpopnics_subbankswitch_w)
|
||||||
{
|
{
|
||||||
/* bits 0-1 select ROM bank */
|
/* bits 0-1 select ROM bank */
|
||||||
membank("subbank")->set_entry(data & 0x03);
|
m_subbank->set_entry(data & 0x03);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8, tnzs_state )
|
static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8, tnzs_state )
|
||||||
|
@ -35,7 +35,18 @@ public:
|
|||||||
m_dac(*this, "dac"),
|
m_dac(*this, "dac"),
|
||||||
m_samples(*this, "samples"),
|
m_samples(*this, "samples"),
|
||||||
m_palette(*this, "palette"),
|
m_palette(*this, "palette"),
|
||||||
m_mainbank(*this, "mainbank")
|
m_mainbank(*this, "mainbank"),
|
||||||
|
m_subbank(*this, "subbank"),
|
||||||
|
m_audiobank(*this, "audiobank"),
|
||||||
|
m_dswa(*this, "DSWA"),
|
||||||
|
m_dswb(*this, "DSWB"),
|
||||||
|
m_in0(*this, "IN0"),
|
||||||
|
m_in1(*this, "IN1"),
|
||||||
|
m_in2(*this, "IN2"),
|
||||||
|
m_coin1(*this, "COIN1"),
|
||||||
|
m_coin2(*this, "COIN2"),
|
||||||
|
m_an1(*this, "AN1"),
|
||||||
|
m_an2(*this, "AN2")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
@ -48,6 +59,17 @@ public:
|
|||||||
optional_device<samples_device> m_samples;
|
optional_device<samples_device> m_samples;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
optional_device<address_map_bank_device> m_mainbank;
|
optional_device<address_map_bank_device> m_mainbank;
|
||||||
|
optional_memory_bank m_subbank; /* optional because of reuse from cchance.c */
|
||||||
|
optional_memory_bank m_audiobank;
|
||||||
|
required_ioport m_dswa;
|
||||||
|
required_ioport m_dswb;
|
||||||
|
required_ioport m_in0;
|
||||||
|
required_ioport m_in1;
|
||||||
|
required_ioport m_in2;
|
||||||
|
optional_ioport m_coin1;
|
||||||
|
optional_ioport m_coin2;
|
||||||
|
optional_ioport m_an1;
|
||||||
|
optional_ioport m_an2;
|
||||||
|
|
||||||
/* sound-related */
|
/* sound-related */
|
||||||
INT16 *m_sampledata[MAX_SAMPLES];
|
INT16 *m_sampledata[MAX_SAMPLES];
|
||||||
|
@ -46,9 +46,9 @@ READ8_MEMBER(tnzs_state::tnzs_port1_r)
|
|||||||
|
|
||||||
switch (m_input_select & 0x0f)
|
switch (m_input_select & 0x0f)
|
||||||
{
|
{
|
||||||
case 0x0a: data = ioport("IN2")->read(); break;
|
case 0x0a: data = m_in2->read(); break;
|
||||||
case 0x0c: data = ioport("IN0")->read(); break;
|
case 0x0c: data = m_in0->read(); break;
|
||||||
case 0x0d: data = ioport("IN1")->read(); break;
|
case 0x0d: data = m_in1->read(); break;
|
||||||
default: data = 0xff; break;
|
default: data = 0xff; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ READ8_MEMBER(tnzs_state::tnzs_port1_r)
|
|||||||
|
|
||||||
READ8_MEMBER(tnzs_state::tnzs_port2_r)
|
READ8_MEMBER(tnzs_state::tnzs_port2_r)
|
||||||
{
|
{
|
||||||
int data = ioport("IN2")->read();
|
int data = m_in2->read();
|
||||||
|
|
||||||
// logerror("I8742:%04x Read %02x from port 2\n", space.device().safe_pcbase(), data);
|
// logerror("I8742:%04x Read %02x from port 2\n", space.device().safe_pcbase(), data);
|
||||||
|
|
||||||
@ -82,11 +82,11 @@ WRITE8_MEMBER(tnzs_state::tnzs_port2_w)
|
|||||||
|
|
||||||
READ8_MEMBER(tnzs_state::arknoid2_sh_f000_r)
|
READ8_MEMBER(tnzs_state::arknoid2_sh_f000_r)
|
||||||
{
|
{
|
||||||
int val;
|
|
||||||
|
|
||||||
// logerror("PC %04x: read input %04x\n", space.device().safe_pc(), 0xf000 + offset);
|
// logerror("PC %04x: read input %04x\n", space.device().safe_pc(), 0xf000 + offset);
|
||||||
|
|
||||||
val = ioport((offset / 2) ? "AN2" : "AN1")->read_safe(0);
|
ioport_port *port = (offset / 2) ? m_an2 : m_an1;
|
||||||
|
int val = port ? port->read() : 0;
|
||||||
|
|
||||||
if (offset & 1)
|
if (offset & 1)
|
||||||
return ((val >> 8) & 0xff);
|
return ((val >> 8) & 0xff);
|
||||||
else
|
else
|
||||||
@ -213,7 +213,7 @@ READ8_MEMBER(tnzs_state::mcu_arknoid2_r)
|
|||||||
}
|
}
|
||||||
else return m_mcu_credits;
|
else return m_mcu_credits;
|
||||||
}
|
}
|
||||||
else return ioport("IN0")->read(); /* buttons */
|
else return m_in0->read(); /* buttons */
|
||||||
|
|
||||||
default:
|
default:
|
||||||
logerror("error, unknown mcu command\n");
|
logerror("error, unknown mcu command\n");
|
||||||
@ -305,16 +305,16 @@ READ8_MEMBER(tnzs_state::mcu_extrmatn_r)
|
|||||||
switch (m_mcu_command)
|
switch (m_mcu_command)
|
||||||
{
|
{
|
||||||
case 0x01:
|
case 0x01:
|
||||||
return ioport("IN0")->read() ^ 0xff; /* player 1 joystick + buttons */
|
return m_in0->read() ^ 0xff; /* player 1 joystick + buttons */
|
||||||
|
|
||||||
case 0x02:
|
case 0x02:
|
||||||
return ioport("IN1")->read() ^ 0xff; /* player 2 joystick + buttons */
|
return m_in1->read() ^ 0xff; /* player 2 joystick + buttons */
|
||||||
|
|
||||||
case 0x1a:
|
case 0x1a:
|
||||||
return (ioport("COIN1")->read() | (ioport("COIN2")->read() << 1));
|
return (m_coin1->read() | (m_coin2->read() << 1));
|
||||||
|
|
||||||
case 0x21:
|
case 0x21:
|
||||||
return ioport("IN2")->read() & 0x0f;
|
return m_in2->read() & 0x0f;
|
||||||
|
|
||||||
case 0x41:
|
case 0x41:
|
||||||
return m_mcu_credits;
|
return m_mcu_credits;
|
||||||
@ -342,7 +342,7 @@ READ8_MEMBER(tnzs_state::mcu_extrmatn_r)
|
|||||||
else return m_mcu_credits;
|
else return m_mcu_credits;
|
||||||
}
|
}
|
||||||
/* buttons */
|
/* buttons */
|
||||||
else return ((ioport("IN0")->read() & 0xf0) | (ioport("IN1")->read() >> 4)) ^ 0xff;
|
else return ((m_in0->read() & 0xf0) | (m_in1->read() >> 4)) ^ 0xff;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
logerror("error, unknown mcu command\n");
|
logerror("error, unknown mcu command\n");
|
||||||
@ -529,7 +529,7 @@ DRIVER_INIT_MEMBER(tnzs_state,kabukiz)
|
|||||||
UINT8 *SOUND = memregion("audiocpu")->base();
|
UINT8 *SOUND = memregion("audiocpu")->base();
|
||||||
m_mcu_type = MCU_NONE_KABUKIZ;
|
m_mcu_type = MCU_NONE_KABUKIZ;
|
||||||
|
|
||||||
membank("audiobank")->configure_entries(0, 8, &SOUND[0x00000], 0x4000);
|
m_audiobank->configure_entries(0, 8, &SOUND[0x00000], 0x4000);
|
||||||
}
|
}
|
||||||
|
|
||||||
DRIVER_INIT_MEMBER(tnzs_state,insectx)
|
DRIVER_INIT_MEMBER(tnzs_state,insectx)
|
||||||
@ -598,9 +598,9 @@ INTERRUPT_GEN_MEMBER(tnzs_state::arknoid2_interrupt)
|
|||||||
case MCU_DRTOPPEL:
|
case MCU_DRTOPPEL:
|
||||||
case MCU_PLUMPOP:
|
case MCU_PLUMPOP:
|
||||||
coin = 0;
|
coin = 0;
|
||||||
coin |= ((ioport("COIN1")->read() & 1) << 0);
|
coin |= ((m_coin1->read() & 1) << 0);
|
||||||
coin |= ((ioport("COIN2")->read() & 1) << 1);
|
coin |= ((m_coin2->read() & 1) << 1);
|
||||||
coin |= ((ioport("IN2")->read() & 3) << 2);
|
coin |= ((m_in2->read() & 3) << 2);
|
||||||
coin ^= 0x0c;
|
coin ^= 0x0c;
|
||||||
mcu_handle_coins(coin);
|
mcu_handle_coins(coin);
|
||||||
break;
|
break;
|
||||||
@ -642,8 +642,8 @@ MACHINE_START_MEMBER(tnzs_state,tnzs_common)
|
|||||||
{
|
{
|
||||||
UINT8 *SUB = memregion("sub")->base();
|
UINT8 *SUB = memregion("sub")->base();
|
||||||
|
|
||||||
membank("subbank")->configure_entries(0, 4, &SUB[0x08000], 0x2000);
|
m_subbank->configure_entries(0, 4, &SUB[0x08000], 0x2000);
|
||||||
membank("subbank")->set_entry(m_bank2);
|
m_subbank->set_entry(m_bank2);
|
||||||
|
|
||||||
m_bank2 = 0;
|
m_bank2 = 0;
|
||||||
m_mainbank->set_bank(2);
|
m_mainbank->set_bank(2);
|
||||||
@ -733,5 +733,5 @@ WRITE8_MEMBER(tnzs_state::tnzs_bankswitch1_w)
|
|||||||
|
|
||||||
/* bits 0-1 select ROM bank */
|
/* bits 0-1 select ROM bank */
|
||||||
m_bank2 = data & 0x03;
|
m_bank2 = data & 0x03;
|
||||||
membank("subbank")->set_entry(m_bank2);
|
m_subbank->set_entry(m_bank2);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user