mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +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
|
||||
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.
|
||||
|
||||
|
||||
- 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
|
||||
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
|
||||
x0000000 eeprom out data */
|
||||
|
||||
set_led_status(space->machine, 0, data & 1);
|
||||
set_led_status(space->machine, 1, data & 2);
|
||||
/* Recoil Piston Motor Status */
|
||||
output_set_value("Player1_Recoil_Piston", data & 0x1 );
|
||||
output_set_value("Player2_Recoil_Piston", (data & 0x2) >>1 );
|
||||
|
||||
if (data & 4)
|
||||
popmessage("OBPRI SET!");
|
||||
|
@ -1887,6 +1887,11 @@ static WRITE16_HANDLER( zombraid_gun_w )
|
||||
gun_input_src = (gun_input_src&1) | (data&2);
|
||||
break;
|
||||
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 = 8 - gun_input_bit; // Reverse order
|
||||
break;
|
||||
|
@ -149,6 +149,16 @@ WRITE16_HANDLER( midxunit_io_w )
|
||||
break;
|
||||
|
||||
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:Unknown I/O write to %d = %04X\n", cpu_get_pc(space->cpu), offset, data);
|
||||
break;
|
||||
|
@ -172,6 +172,30 @@ static READ16_HANDLER( term2_input_r )
|
||||
|
||||
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)
|
||||
term2_analog_select = (data >> 12) & 3;
|
||||
|
||||
|
@ -75,6 +75,16 @@ WRITE16_HANDLER( opwolf_spritectrl_w )
|
||||
/* other bits unknown */
|
||||
|
||||
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