- --
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 [?] | Direction Needed | 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. |