made pbillian plunger more authentic: just hold CTRL for an amount of time and let go
This commit is contained in:
parent
bf52cb2551
commit
5a19d33ee9
@ -33,11 +33,6 @@ Notes:
|
|||||||
- pullout plunger for shot power (there's no on-screen power indicator in the game)
|
- pullout plunger for shot power (there's no on-screen power indicator in the game)
|
||||||
- dial for aiming
|
- dial for aiming
|
||||||
- button (fire M powerup, high score initials)
|
- button (fire M powerup, high score initials)
|
||||||
They are mapped a bit differently in MAME. BUTTON1 simlates pulling out the
|
|
||||||
plunger and releasing it. The plunger strength is controlled by an analog input
|
|
||||||
(by default mapped to up/down arrows) and shown on screen. The dial is mapped
|
|
||||||
as expected. The button is mapped on BUTTON2. BUTTON3 is also recognized by the
|
|
||||||
game when entering initials, but was probably not present in the cabinet.
|
|
||||||
|
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
@ -180,14 +175,14 @@ The MCU acts this way:
|
|||||||
static READ8_DEVICE_HANDLER( in4_mcu_r )
|
static READ8_DEVICE_HANDLER( in4_mcu_r )
|
||||||
{
|
{
|
||||||
superqix_state *state = device->machine().driver_data<superqix_state>();
|
superqix_state *state = device->machine().driver_data<superqix_state>();
|
||||||
// logerror("%04x: in4_mcu_r\n",cpu_get_pc(&space->device()));
|
// logerror("%04x: in4_mcu_r\n",cpu_get_pc(&space->device()));
|
||||||
return input_port_read(device->machine(), "P2") | (state->m_from_mcu_pending << 6) | (state->m_from_z80_pending << 7);
|
return input_port_read(device->machine(), "P2") | (state->m_from_mcu_pending << 6) | (state->m_from_z80_pending << 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
static READ8_DEVICE_HANDLER( sqix_from_mcu_r )
|
static READ8_DEVICE_HANDLER( sqix_from_mcu_r )
|
||||||
{
|
{
|
||||||
superqix_state *state = device->machine().driver_data<superqix_state>();
|
superqix_state *state = device->machine().driver_data<superqix_state>();
|
||||||
// logerror("%04x: read mcu answer (%02x)\n",cpu_get_pc(&space->device()),state->m_from_mcu);
|
// logerror("%04x: read mcu answer (%02x)\n",cpu_get_pc(&space->device()),state->m_from_mcu);
|
||||||
return state->m_from_mcu;
|
return state->m_from_mcu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +191,7 @@ static TIMER_CALLBACK( mcu_acknowledge_callback )
|
|||||||
superqix_state *state = machine.driver_data<superqix_state>();
|
superqix_state *state = machine.driver_data<superqix_state>();
|
||||||
state->m_from_z80_pending = 1;
|
state->m_from_z80_pending = 1;
|
||||||
state->m_from_z80 = state->m_portb;
|
state->m_from_z80 = state->m_portb;
|
||||||
// logerror("Z80->MCU %02x\n",state->m_from_z80);
|
// logerror("Z80->MCU %02x\n",state->m_from_z80);
|
||||||
}
|
}
|
||||||
|
|
||||||
static READ8_HANDLER( mcu_acknowledge_r )
|
static READ8_HANDLER( mcu_acknowledge_r )
|
||||||
@ -208,7 +203,7 @@ static READ8_HANDLER( mcu_acknowledge_r )
|
|||||||
static WRITE8_DEVICE_HANDLER( sqix_z80_mcu_w )
|
static WRITE8_DEVICE_HANDLER( sqix_z80_mcu_w )
|
||||||
{
|
{
|
||||||
superqix_state *state = device->machine().driver_data<superqix_state>();
|
superqix_state *state = device->machine().driver_data<superqix_state>();
|
||||||
// logerror("%04x: sqix_z80_mcu_w %02x\n",cpu_get_pc(&space->device()),data);
|
// logerror("%04x: sqix_z80_mcu_w %02x\n",cpu_get_pc(&space->device()),data);
|
||||||
state->m_portb = data;
|
state->m_portb = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,7 +240,7 @@ static WRITE8_HANDLER( bootleg_mcu_p1_w )
|
|||||||
case 7:
|
case 7:
|
||||||
if ((data & 1) == 0)
|
if ((data & 1) == 0)
|
||||||
{
|
{
|
||||||
// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space->device()),state->m_port3);
|
// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space->device()),state->m_port3);
|
||||||
state->m_from_mcu = state->m_port3_latch;
|
state->m_from_mcu = state->m_port3_latch;
|
||||||
state->m_from_mcu_pending = 1;
|
state->m_from_mcu_pending = 1;
|
||||||
state->m_from_z80_pending = 0; // ????
|
state->m_from_z80_pending = 0; // ????
|
||||||
@ -273,7 +268,7 @@ static READ8_HANDLER( bootleg_mcu_p3_r )
|
|||||||
}
|
}
|
||||||
else if ((state->m_port1 & 0x40) == 0)
|
else if ((state->m_port1 & 0x40) == 0)
|
||||||
{
|
{
|
||||||
// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
|
// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
|
||||||
state->m_from_z80_pending = 0;
|
state->m_from_z80_pending = 0;
|
||||||
return state->m_from_z80;
|
return state->m_from_z80;
|
||||||
}
|
}
|
||||||
@ -312,7 +307,7 @@ static WRITE8_HANDLER( sqixu_mcu_p2_w )
|
|||||||
// bit 7 = clock latch from port 3 to Z80
|
// bit 7 = clock latch from port 3 to Z80
|
||||||
if ((state->m_port2 & 0x80) != 0 && (data & 0x80) == 0)
|
if ((state->m_port2 & 0x80) != 0 && (data & 0x80) == 0)
|
||||||
{
|
{
|
||||||
// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space->device()),state->m_port3);
|
// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space->device()),state->m_port3);
|
||||||
state->m_from_mcu = state->m_port3;
|
state->m_from_mcu = state->m_port3;
|
||||||
state->m_from_mcu_pending = 1;
|
state->m_from_mcu_pending = 1;
|
||||||
state->m_from_z80_pending = 0; // ????
|
state->m_from_z80_pending = 0; // ????
|
||||||
@ -324,7 +319,7 @@ static WRITE8_HANDLER( sqixu_mcu_p2_w )
|
|||||||
static READ8_HANDLER( sqixu_mcu_p3_r )
|
static READ8_HANDLER( sqixu_mcu_p3_r )
|
||||||
{
|
{
|
||||||
superqix_state *state = space->machine().driver_data<superqix_state>();
|
superqix_state *state = space->machine().driver_data<superqix_state>();
|
||||||
// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
|
// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
|
||||||
state->m_from_z80_pending = 0;
|
state->m_from_z80_pending = 0;
|
||||||
return state->m_from_z80;
|
return state->m_from_z80;
|
||||||
}
|
}
|
||||||
@ -383,7 +378,7 @@ static int read_dial(running_machine &machine, int player)
|
|||||||
static TIMER_CALLBACK( delayed_z80_mcu_w )
|
static TIMER_CALLBACK( delayed_z80_mcu_w )
|
||||||
{
|
{
|
||||||
superqix_state *state = machine.driver_data<superqix_state>();
|
superqix_state *state = machine.driver_data<superqix_state>();
|
||||||
logerror("Z80 sends command %02x\n",param);
|
// logerror("Z80 sends command %02x\n",param);
|
||||||
state->m_from_z80 = param;
|
state->m_from_z80 = param;
|
||||||
state->m_from_mcu_pending = 0;
|
state->m_from_mcu_pending = 0;
|
||||||
cputag_set_input_line(machine, "mcu", 0, HOLD_LINE);
|
cputag_set_input_line(machine, "mcu", 0, HOLD_LINE);
|
||||||
@ -393,7 +388,7 @@ logerror("Z80 sends command %02x\n",param);
|
|||||||
static TIMER_CALLBACK( delayed_mcu_z80_w )
|
static TIMER_CALLBACK( delayed_mcu_z80_w )
|
||||||
{
|
{
|
||||||
superqix_state *state = machine.driver_data<superqix_state>();
|
superqix_state *state = machine.driver_data<superqix_state>();
|
||||||
logerror("68705 sends answer %02x\n",param);
|
// logerror("68705 sends answer %02x\n",param);
|
||||||
state->m_from_mcu = param;
|
state->m_from_mcu = param;
|
||||||
state->m_from_mcu_pending = 1;
|
state->m_from_mcu_pending = 1;
|
||||||
}
|
}
|
||||||
@ -420,7 +415,7 @@ logerror("68705 sends answer %02x\n",param);
|
|||||||
static READ8_HANDLER( hotsmash_68705_portA_r )
|
static READ8_HANDLER( hotsmash_68705_portA_r )
|
||||||
{
|
{
|
||||||
superqix_state *state = space->machine().driver_data<superqix_state>();
|
superqix_state *state = space->machine().driver_data<superqix_state>();
|
||||||
//logerror("%04x: 68705 reads port A = %02x\n",cpu_get_pc(&space->device()),state->m_portA_in);
|
// logerror("%04x: 68705 reads port A = %02x\n",cpu_get_pc(&space->device()),state->m_portA_in);
|
||||||
return state->m_portA_in;
|
return state->m_portA_in;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -458,7 +453,7 @@ static WRITE8_HANDLER( hotsmash_68705_portC_w )
|
|||||||
|
|
||||||
case 0x3: // command from Z80
|
case 0x3: // command from Z80
|
||||||
state->m_portA_in = state->m_from_z80;
|
state->m_portA_in = state->m_from_z80;
|
||||||
logerror("%04x: z80 reads command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
|
// logerror("%04x: z80 reads command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x4:
|
case 0x4:
|
||||||
@ -487,7 +482,7 @@ static WRITE8_HANDLER( hotsmash_z80_mcu_w )
|
|||||||
static READ8_HANDLER(hotsmash_from_mcu_r)
|
static READ8_HANDLER(hotsmash_from_mcu_r)
|
||||||
{
|
{
|
||||||
superqix_state *state = space->machine().driver_data<superqix_state>();
|
superqix_state *state = space->machine().driver_data<superqix_state>();
|
||||||
logerror("%04x: z80 reads answer %02x\n",cpu_get_pc(&space->device()),state->m_from_mcu);
|
// logerror("%04x: z80 reads answer %02x\n",cpu_get_pc(&space->device()),state->m_from_mcu);
|
||||||
state->m_from_mcu_pending = 0;
|
state->m_from_mcu_pending = 0;
|
||||||
return state->m_from_mcu;
|
return state->m_from_mcu;
|
||||||
}
|
}
|
||||||
@ -495,7 +490,7 @@ logerror("%04x: z80 reads answer %02x\n",cpu_get_pc(&space->device()),state->m_f
|
|||||||
static READ8_DEVICE_HANDLER(hotsmash_ay_port_a_r)
|
static READ8_DEVICE_HANDLER(hotsmash_ay_port_a_r)
|
||||||
{
|
{
|
||||||
superqix_state *state = device->machine().driver_data<superqix_state>();
|
superqix_state *state = device->machine().driver_data<superqix_state>();
|
||||||
//logerror("%04x: ay_port_a_r and mcu_pending is %d\n",cpu_get_pc(&space->device()),state->m_from_mcu_pending);
|
// logerror("%04x: ay_port_a_r and mcu_pending is %d\n",cpu_get_pc(&space->device()),state->m_from_mcu_pending);
|
||||||
return input_port_read(device->machine(), "SYSTEM") | ((state->m_from_mcu_pending^1) << 7);
|
return input_port_read(device->machine(), "SYSTEM") | ((state->m_from_mcu_pending^1) << 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -517,22 +512,30 @@ static READ8_HANDLER(pbillian_from_mcu_r)
|
|||||||
|
|
||||||
switch (state->m_from_z80)
|
switch (state->m_from_z80)
|
||||||
{
|
{
|
||||||
case 0x01: return input_port_read(space->machine(), state->m_curr_player ? "PADDLE2" : "PADDLE1");
|
case 0x01:
|
||||||
|
{
|
||||||
|
UINT8 p = input_port_read(space->machine(), state->m_curr_player ? "PLUNGER2" : "PLUNGER1") & 0xbf;
|
||||||
|
if ((p & 0x3f) == 0) p |= 0x40;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
case 0x02: return input_port_read(space->machine(), state->m_curr_player ? "DIAL2" : "DIAL1");
|
case 0x02: return input_port_read(space->machine(), state->m_curr_player ? "DIAL2" : "DIAL1");
|
||||||
|
|
||||||
case 0x04: return input_port_read(space->machine(), "DSW1");
|
case 0x04: return input_port_read(space->machine(), "DSW1");
|
||||||
case 0x08: return input_port_read(space->machine(), "DSW2");
|
case 0x08: return input_port_read(space->machine(), "DSW2");
|
||||||
|
|
||||||
case 0x80: state->m_curr_player = 0; return 0;
|
case 0x80: state->m_curr_player = 0; return 0;
|
||||||
case 0x81: state->m_curr_player = 1; return 0;
|
case 0x81: state->m_curr_player = 1; return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
logerror("408[%x] r at %x\n",state->m_from_z80,cpu_get_pc(&space->device()));
|
// logerror("408[%x] r at %x\n",state->m_from_z80,cpu_get_pc(&space->device()));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static READ8_DEVICE_HANDLER(pbillian_ay_port_a_r)
|
static READ8_DEVICE_HANDLER(pbillian_ay_port_a_r)
|
||||||
{
|
{
|
||||||
// logerror("%04x: ay_port_a_r\n",cpu_get_pc(&space->device()));
|
// logerror("%04x: ay_port_a_r\n",cpu_get_pc(&space->device()));
|
||||||
/* bits 76------ MCU status bits */
|
/* bits 76------ MCU status bits */
|
||||||
return (device->machine().rand() & 0xc0) | input_port_read(device->machine(), "BUTTONS");
|
return (device->machine().rand() & 0xc0) | input_port_read(device->machine(), "BUTTONS");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -732,19 +735,19 @@ static INPUT_PORTS_START( pbillian )
|
|||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) // mcu status (pending mcu->z80)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) // mcu status (pending mcu->z80)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) // mcu status (pending z80->mcu)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) // mcu status (pending z80->mcu)
|
||||||
|
|
||||||
PORT_START("PADDLE1") // pullout plunger
|
PORT_START("PLUNGER1") // plunger mechanism for shot (BUTTON1 and PEDAL mapped to the same key in MAME)
|
||||||
PORT_BIT( 0x3f, 0x00, IPT_PADDLE_V ) PORT_MINMAX(0,0x3f) PORT_SENSITIVITY(30) PORT_KEYDELTA(3) PORT_CENTERDELTA(0) PORT_REVERSE
|
PORT_BIT( 0x3f, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0x3f) PORT_SENSITIVITY(100) PORT_KEYDELTA(1)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||||
|
|
||||||
PORT_START("DIAL1")
|
PORT_START("DIAL1")
|
||||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(20) PORT_KEYDELTA(10)
|
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(20) PORT_KEYDELTA(8)
|
||||||
|
|
||||||
PORT_START("PADDLE2")
|
PORT_START("PLUNGER2")
|
||||||
PORT_BIT( 0x3f, 0x00, IPT_PADDLE_V ) PORT_MINMAX(0,0x3f) PORT_SENSITIVITY(30) PORT_KEYDELTA(3) PORT_CENTERDELTA(0) PORT_REVERSE PORT_COCKTAIL
|
PORT_BIT( 0x3f, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0x3f) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||||
|
|
||||||
PORT_START("DIAL2")
|
PORT_START("DIAL2")
|
||||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_COCKTAIL
|
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(20) PORT_KEYDELTA(8) PORT_COCKTAIL
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( hotsmash )
|
static INPUT_PORTS_START( hotsmash )
|
||||||
@ -955,7 +958,7 @@ static const ay8910_interface pbillian_ay8910_interface =
|
|||||||
{
|
{
|
||||||
AY8910_LEGACY_OUTPUT,
|
AY8910_LEGACY_OUTPUT,
|
||||||
AY8910_DEFAULT_LOADS,
|
AY8910_DEFAULT_LOADS,
|
||||||
DEVCB_HANDLER(pbillian_ay_port_a_r), /* port Aread */
|
DEVCB_HANDLER(pbillian_ay_port_a_r), /* port Aread */
|
||||||
DEVCB_INPUT_PORT("SYSTEM"),
|
DEVCB_INPUT_PORT("SYSTEM"),
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL
|
DEVCB_NULL
|
||||||
@ -965,7 +968,7 @@ static const ay8910_interface hotsmash_ay8910_interface =
|
|||||||
{
|
{
|
||||||
AY8910_LEGACY_OUTPUT,
|
AY8910_LEGACY_OUTPUT,
|
||||||
AY8910_DEFAULT_LOADS,
|
AY8910_DEFAULT_LOADS,
|
||||||
DEVCB_HANDLER(hotsmash_ay_port_a_r), /* port Aread */
|
DEVCB_HANDLER(hotsmash_ay_port_a_r), /* port Aread */
|
||||||
DEVCB_INPUT_PORT("SYSTEM"),
|
DEVCB_INPUT_PORT("SYSTEM"),
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL
|
DEVCB_NULL
|
||||||
@ -987,8 +990,8 @@ static const ay8910_interface sqix_ay8910_interface_2 =
|
|||||||
AY8910_DEFAULT_LOADS,
|
AY8910_DEFAULT_LOADS,
|
||||||
DEVCB_INPUT_PORT("DSW2"),
|
DEVCB_INPUT_PORT("DSW2"),
|
||||||
DEVCB_HANDLER(sqix_from_mcu_r), /* port Bread */
|
DEVCB_HANDLER(sqix_from_mcu_r), /* port Bread */
|
||||||
DEVCB_NULL, /* port Awrite */
|
DEVCB_NULL, /* port Awrite */
|
||||||
DEVCB_HANDLER(sqix_z80_mcu_w) /* port Bwrite */
|
DEVCB_HANDLER(sqix_z80_mcu_w) /* port Bwrite */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const ay8910_interface bootleg_ay8910_interface_1 =
|
static const ay8910_interface bootleg_ay8910_interface_1 =
|
||||||
@ -1006,7 +1009,7 @@ static const ay8910_interface bootleg_ay8910_interface_2 =
|
|||||||
AY8910_LEGACY_OUTPUT,
|
AY8910_LEGACY_OUTPUT,
|
||||||
AY8910_DEFAULT_LOADS,
|
AY8910_DEFAULT_LOADS,
|
||||||
DEVCB_INPUT_PORT("DSW2"),
|
DEVCB_INPUT_PORT("DSW2"),
|
||||||
DEVCB_HANDLER(bootleg_in0_r), /* port Bread */
|
DEVCB_HANDLER(bootleg_in0_r), /* port Bread */
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL
|
DEVCB_NULL
|
||||||
};
|
};
|
||||||
@ -1349,18 +1352,6 @@ ROM_END
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static DRIVER_INIT( pbillian )
|
|
||||||
{
|
|
||||||
superqix_state *state = machine.driver_data<superqix_state>();
|
|
||||||
state->m_pbillian_show_power = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static DRIVER_INIT( hotsmash )
|
|
||||||
{
|
|
||||||
superqix_state *state = machine.driver_data<superqix_state>();
|
|
||||||
state->m_pbillian_show_power = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static DRIVER_INIT( sqix )
|
static DRIVER_INIT( sqix )
|
||||||
{
|
{
|
||||||
superqix_state *state = machine.driver_data<superqix_state>();
|
superqix_state *state = machine.driver_data<superqix_state>();
|
||||||
@ -1437,8 +1428,8 @@ static DRIVER_INIT( perestro )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
GAME( 1986, pbillian, 0, pbillian, pbillian, pbillian, ROT0, "Kaneko / Taito", "Prebillian", GAME_SUPPORTS_SAVE )
|
GAME( 1986, pbillian, 0, pbillian, pbillian, 0, ROT0, "Kaneko / Taito", "Prebillian", GAME_SUPPORTS_SAVE )
|
||||||
GAME( 1987, hotsmash, 0, hotsmash, hotsmash, hotsmash, ROT90, "Kaneko / Taito", "Vs. Hot Smash", GAME_SUPPORTS_SAVE )
|
GAME( 1987, hotsmash, 0, hotsmash, hotsmash, 0, ROT90, "Kaneko / Taito", "Vs. Hot Smash", GAME_SUPPORTS_SAVE )
|
||||||
GAME( 1987, sqix, 0, sqix, superqix, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 2)", GAME_SUPPORTS_SAVE )
|
GAME( 1987, sqix, 0, sqix, superqix, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 2)", GAME_SUPPORTS_SAVE )
|
||||||
GAME( 1987, sqixr1, sqix, sqix, superqix, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 1)", GAME_SUPPORTS_SAVE )
|
GAME( 1987, sqixr1, sqix, sqix, superqix, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 1)", GAME_SUPPORTS_SAVE )
|
||||||
GAME( 1987, sqixu, sqix, sqixu, superqix, 0, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", GAME_SUPPORTS_SAVE )
|
GAME( 1987, sqixu, sqix, sqixu, superqix, 0, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", GAME_SUPPORTS_SAVE )
|
||||||
|
@ -24,12 +24,10 @@ public:
|
|||||||
UINT8 *m_videoram;
|
UINT8 *m_videoram;
|
||||||
UINT8 *m_bitmapram;
|
UINT8 *m_bitmapram;
|
||||||
UINT8 *m_bitmapram2;
|
UINT8 *m_bitmapram2;
|
||||||
int m_pbillian_show_power;
|
|
||||||
int m_gfxbank;
|
int m_gfxbank;
|
||||||
bitmap_t *m_fg_bitmap[2];
|
bitmap_t *m_fg_bitmap[2];
|
||||||
int m_show_bitmap;
|
int m_show_bitmap;
|
||||||
tilemap_t *m_bg_tilemap;
|
tilemap_t *m_bg_tilemap;
|
||||||
int m_last_power[2];
|
|
||||||
UINT8 *m_spriteram;
|
UINT8 *m_spriteram;
|
||||||
size_t m_spriteram_size;
|
size_t m_spriteram_size;
|
||||||
};
|
};
|
||||||
|
@ -53,11 +53,6 @@ VIDEO_START( pbillian )
|
|||||||
{
|
{
|
||||||
superqix_state *state = machine.driver_data<superqix_state>();
|
superqix_state *state = machine.driver_data<superqix_state>();
|
||||||
state->m_bg_tilemap = tilemap_create(machine, pb_get_bg_tile_info, tilemap_scan_rows, 8, 8,32,32);
|
state->m_bg_tilemap = tilemap_create(machine, pb_get_bg_tile_info, tilemap_scan_rows, 8, 8,32,32);
|
||||||
|
|
||||||
/* Need to do save state here */
|
|
||||||
state->save_item(NAME(state->m_last_power[0]));
|
|
||||||
state->save_item(NAME(state->m_last_power[1]));
|
|
||||||
state->save_item(NAME(state->m_pbillian_show_power));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VIDEO_START( superqix )
|
VIDEO_START( superqix )
|
||||||
@ -235,24 +230,6 @@ SCREEN_UPDATE( pbillian )
|
|||||||
tilemap_draw(bitmap, cliprect, state->m_bg_tilemap, 0, 0);
|
tilemap_draw(bitmap, cliprect, state->m_bg_tilemap, 0, 0);
|
||||||
pbillian_draw_sprites(screen->machine(), bitmap,cliprect);
|
pbillian_draw_sprites(screen->machine(), bitmap,cliprect);
|
||||||
|
|
||||||
if (state->m_pbillian_show_power)
|
|
||||||
{
|
|
||||||
int curr_power;
|
|
||||||
|
|
||||||
curr_power = ((input_port_read(screen->machine(), "PADDLE1") & 0x3f) * 100) / 0x3f;
|
|
||||||
if (state->m_last_power[0] != curr_power)
|
|
||||||
{
|
|
||||||
popmessage ("Power %d%%", curr_power);
|
|
||||||
state->m_last_power[0] = curr_power;
|
|
||||||
}
|
|
||||||
|
|
||||||
curr_power = ((input_port_read(screen->machine(), "PADDLE2") & 0x3f) * 100) / 0x3f;
|
|
||||||
if (state->m_last_power[1] != curr_power)
|
|
||||||
{
|
|
||||||
popmessage ("Power %d%%", curr_power);
|
|
||||||
state->m_last_power[1] = curr_power;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user