Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08854 Misc. Major Always 17 days ago 16 days ago
Tester Headrush69 View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows 10/11 (64-bit)
Status [?] Driver
Version 0.258 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 08854: term2: Outputs stopped working
Description This is using the "windows" output style as needed by MAMEHooker and LEDBlinky.

Starting with version 0.258 outputs from rom term2 do not appear to work.
Version 0.257 works as expected.

Other roms (not variants of term2) with output support still work as expected.
Steps To Reproduce Start MAMEHooker or LEDBlinky to monitor the outputs from MAME. (Using windows outputs, not newer network method)
With a clean install of MAME 0.258 start term2 enabling windows outputs (mame.exe -output windows -window -v term2)
Additional Information Looking at the changelog for 0.258 I don't see any mention of changes to the midyunit driver, but comparing the source code of 0.257 and 0.258 there appears to be some significant changes (all related to outputs):

0.257 code (midyunit_m.cpp):

void midyunit_state::term2_sound_w(offs_t offset, uint16_t data)
{
/* Flash Lamp Output Data */
if ( ((data & 0x800) != 0x800) && ((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) && ((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);
}

=============================================
0.258 code (midyunit_m.cpp):

void midyunit_state::term2_sound_w(offs_t offset, uint16_t data)
{
/* Flash Lamp Output Data */
if ( ((data & 0x800) != 0x800) && ((data & 0x400) == 0x400 ) )
{
for (int i = 0; i < 4; i++)
m_left_flash[i] = BIT(data, i);
for (int i = 0; i < 4; i++)
m_right_flash[i] = BIT(data, i + 4);
}

/* Gun Output Data */
if ( ((data & 0x800) == 0x800) && ((data & 0x400) != 0x400 ) )
{
m_left_gun_recoil = BIT(data, 0);
m_right_gun_recoil = BIT(data, 1);
m_left_gun_green_led = BIT(~data, 5);
m_left_gun_red_led = BIT(~data, 4);
m_right_gun_green_led = BIT(~data, 7);
m_right_gun_red_led = BIT(~data, 6);
         }
...
void midyunit_state::machine_start()
{
m_left_flash.resolve();
m_right_flash.resolve();
m_left_gun_recoil.resolve();
m_right_gun_recoil.resolve();
m_left_gun_green_led.resolve();
m_left_gun_red_led.resolve();
m_right_gun_green_led.resolve();
m_right_gun_red_led.resolve();
}
Github Commit
Flags
Regression Version
Affected Sets / Systems term2
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
0
There are no notes attached to this issue.