mirror of
https://github.com/holub/mame
synced 2025-05-22 21:58:57 +03:00
Gun output cleanups/hookups [Howard Casto]:
* drivers\othunder.c: Changed Operation Thunderbolt output names to something more appropriate. (They were routed to LEDs.) * video\rastan.c: Hooked up output for Operation Wolf. * machine\midwunit.c: Hooked up outputs for Revolution X. * machine\midyunit.c: Hooked up outputs for Terminator 2. * drivers\seta.c: Hooked up outputs for Zombie Raid.
This commit is contained in:
parent
10b9b81ca0
commit
cf2b600756
@ -155,9 +155,11 @@ Notes:
|
|||||||
Possible values are: 111 (max) 011 (high) -01 (med) --0 (low). It's a
|
Possible values are: 111 (max) 011 (high) -01 (med) --0 (low). It's a
|
||||||
rotary control so only one bit is supposed to be low.
|
rotary control so only one bit is supposed to be low.
|
||||||
|
|
||||||
- The keyboard leds I'm turning on are actually the gun solenoid outputs, which
|
(Changed set led output to proper output port. --HowardC)
|
||||||
|
- The outputs I'm turning on are actually the gun solenoid outputs, which
|
||||||
would rattle the gun while firing.
|
would rattle the gun while firing.
|
||||||
|
|
||||||
|
|
||||||
- BM, 060108 - The original flyer for this game has screenshots which clearly
|
- BM, 060108 - The original flyer for this game has screenshots which clearly
|
||||||
show the background is 4 pixels to the left on several game stages (you can
|
show the background is 4 pixels to the left on several game stages (you can
|
||||||
see the edge of sprites overlapping past the right edge). Therefore I
|
see the edge of sprites overlapping past the right edge). Therefore I
|
||||||
@ -327,8 +329,9 @@ static WRITE16_HANDLER( othunder_tc0220ioc_w )
|
|||||||
0x000000 eeprom in data
|
0x000000 eeprom in data
|
||||||
x0000000 eeprom out data */
|
x0000000 eeprom out data */
|
||||||
|
|
||||||
set_led_status(space->machine, 0, data & 1);
|
/* Recoil Piston Motor Status */
|
||||||
set_led_status(space->machine, 1, data & 2);
|
output_set_value("Player1_Recoil_Piston", data & 0x1 );
|
||||||
|
output_set_value("Player2_Recoil_Piston", (data & 0x2) >>1 );
|
||||||
|
|
||||||
if (data & 4)
|
if (data & 4)
|
||||||
popmessage("OBPRI SET!");
|
popmessage("OBPRI SET!");
|
||||||
|
@ -1887,6 +1887,11 @@ static WRITE16_HANDLER( zombraid_gun_w )
|
|||||||
gun_input_src = (gun_input_src&1) | (data&2);
|
gun_input_src = (gun_input_src&1) | (data&2);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
/* Gun Recoils */
|
||||||
|
/* Note: In debug menu recoil solenoids strobe when held down. Is this correct?? */
|
||||||
|
output_set_value("Player1_Gun_Recoil", (data & 0x10)>>4 );
|
||||||
|
output_set_value("Player2_Gun_Recoil", (data & 0x8)>>3 );
|
||||||
|
|
||||||
gun_input_bit = bit_count - 4;
|
gun_input_bit = bit_count - 4;
|
||||||
gun_input_bit = 8 - gun_input_bit; // Reverse order
|
gun_input_bit = 8 - gun_input_bit; // Reverse order
|
||||||
break;
|
break;
|
||||||
|
@ -149,6 +149,16 @@ WRITE16_HANDLER( midxunit_io_w )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
/* Gun Outputs for RevX */
|
||||||
|
/* Note: The Gun for the Coin slot you use is supposed to rumble when you insert coins, and it doesn't for P3 */
|
||||||
|
/* Perhaps an Input is hooked up wrong??? */
|
||||||
|
output_set_value("Player1_Gun_Recoil", data & 0x1 );
|
||||||
|
output_set_value("Player2_Gun_Recoil", (data & 0x2) >> 1 );
|
||||||
|
output_set_value("Player3_Gun_Recoil", (data & 0x4) >> 2 );
|
||||||
|
output_set_value("Player1_Gun_LED", (~data & 0x10) >> 4 );
|
||||||
|
output_set_value("Player2_Gun_LED", (~data & 0x20) >> 5 );
|
||||||
|
output_set_value("Player3_Gun_LED", (~data & 0x40) >> 6 );
|
||||||
|
|
||||||
logerror("%08X:I/O write to %d = %04X\n", cpu_get_pc(space->cpu), offset, data);
|
logerror("%08X:I/O write to %d = %04X\n", cpu_get_pc(space->cpu), offset, data);
|
||||||
// logerror("%08X:Unknown I/O write to %d = %04X\n", cpu_get_pc(space->cpu), offset, data);
|
// logerror("%08X:Unknown I/O write to %d = %04X\n", cpu_get_pc(space->cpu), offset, data);
|
||||||
break;
|
break;
|
||||||
|
@ -172,6 +172,30 @@ static READ16_HANDLER( term2_input_r )
|
|||||||
|
|
||||||
static WRITE16_HANDLER( term2_sound_w )
|
static WRITE16_HANDLER( term2_sound_w )
|
||||||
{
|
{
|
||||||
|
/* Flash Lamp Output Data */
|
||||||
|
if ( ((data & 0x800) != 0x800) and ((data & 0x400) == 0x400 ) )
|
||||||
|
{
|
||||||
|
output_set_value("Left_Flash_1", data & 0x1);
|
||||||
|
output_set_value("Left_Flash_2", (data & 0x2) >> 1);
|
||||||
|
output_set_value("Left_Flash_3", (data & 0x4) >> 2);
|
||||||
|
output_set_value("Left_Flash_4", (data & 0x8) >> 3);
|
||||||
|
output_set_value("Right_Flash_1", (data & 0x10) >> 4);
|
||||||
|
output_set_value("Right_Flash_2", (data & 0x20) >> 5);
|
||||||
|
output_set_value("Right_Flash_3", (data & 0x40) >> 6);
|
||||||
|
output_set_value("Right_Flash_4", (data & 0x80) >> 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Gun Output Data */
|
||||||
|
if ( ((data & 0x800) == 0x800) and ((data & 0x400) != 0x400 ) )
|
||||||
|
{
|
||||||
|
output_set_value("Left_Gun_Recoil", data & 0x1);
|
||||||
|
output_set_value("Right_Gun_Recoil", (data & 0x2) >> 1);
|
||||||
|
output_set_value("Left_Gun_Green_Led", (~data & 0x20) >> 5);
|
||||||
|
output_set_value("Left_Gun_Red_Led", (~data & 0x10) >> 4);
|
||||||
|
output_set_value("Right_Gun_Green_Led", (~data & 0x80) >> 7);
|
||||||
|
output_set_value("Right_Gun_Red_Led", (~data & 0x40) >> 6);
|
||||||
|
}
|
||||||
|
|
||||||
if (offset == 0)
|
if (offset == 0)
|
||||||
term2_analog_select = (data >> 12) & 3;
|
term2_analog_select = (data >> 12) & 3;
|
||||||
|
|
||||||
|
@ -75,6 +75,16 @@ WRITE16_HANDLER( opwolf_spritectrl_w )
|
|||||||
/* other bits unknown */
|
/* other bits unknown */
|
||||||
|
|
||||||
pc090oj_set_sprite_ctrl(state->pc090oj, (data & 0xe0) >> 5);
|
pc090oj_set_sprite_ctrl(state->pc090oj, (data & 0xe0) >> 5);
|
||||||
|
|
||||||
|
/* If data = 4, the Piston Motor is off, otherwise it's on. */
|
||||||
|
if (data == 4)
|
||||||
|
{
|
||||||
|
output_set_value("Player1_Recoil_Piston", 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
output_set_value("Player1_Recoil_Piston", 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user