|ID||Category [?]||Severity [?]||Reproducibility||Date Submitted||Last Update|
|07751||DIP/Input||Trivial||Always||Sep 15, 2020, 11:29||Sep 18, 2020, 12:08|
|Tester||cuavas||View Status||Public||Platform||MAME (Official Binary)|
|Assigned To||Resolution||Open||OS||Windows 10 (64-bit)|
|Version||0.224||Fixed in Version||Build||64-bit|
|Fixed in Git Commit||Github Pull Request #|
|Summary||07751: intlc440: Keys used to dismiss the info/warning screens are passed to emulated machine|
This was a side effect of using a key assigned to a toggle switch by default to dismiss info screens. Somewhere between MAME 0.222 and MAME 0.223, the delay between pressing a key to dismiss an info screen and MAME being ready to pass inputs to the emulated machine became shorter. This means you have less time to release a key used to dismiss these screens before it gets passed to the emulated machine. You can see the same thing happen in an older MAME version if you hold the key for longer.
The intlc440 has a STOP switch which is active low and should default off. Here’s the relevant port bit definition:
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_TOGGLE PORT_NAME("STOP") PORT_CODE(KEYCODE_LEFT) PORT_CHANGED_MEMBER(DEVICE_SELF, mod40_state, sw_stop, 0)
However, if you start MAME with no configuration file, the STOP switch will be on initially. Furthermore, each time MAME is started, the state of the switch will toggle. The state of the switch seems to be saved correctly when it’s on, however MAME inverts the value when loading the CFG file.
It works in 0.220 but doesn’t work in 0.224, I haven’t tested intermediate versions. I’m marking this as major because the driver hasn’t changed since 0.220 so it’s likely to be something that can potentially affect any system with toggle inputs. I’d appreciate it if someone could track down the commit where this started happening.
|Steps To Reproduce||
Remove the CFG file if present:
Start intlc440, it’s a bit easier to see the switch labels without a terminal:
mame64 intlc440 -tty ""
Note that the STOP switch (tenth switch on the bottom row) is in the on position (up).
Exit MAME. Check cfg/intlc440.cfg and note that the state of the STOP switch is saved as being on (tag=":MODE" type="KEYPAD" mask="1" defvalue="1" value="0").
Start intlc440 again, and note that the STOP switch is now in the off position (down), the opposite to the saved state.
|Affected Sets / Systems||intlc440|
|There are no relationship linked to this issue.|
Sep 15, 2020, 20:24
|This appears to be happening if LEFT is used when confirming Information Screen as emulation can pick this up depending on how solidly the LEFT is held therefore changing the STOP state. Not sure what can be done about this longterm but a remapping of default could help the situation.|
Sep 18, 2020, 12:08
Unable to confirm anything in this report.
I did >clean intlc440 (it's a batch file which deletes the cfg, ini, and nvram for the nominated game).
Started the machine - Stop is in the run position. No warning screen. Clicked on X to exit. Restarted - nothing has changed.
Tried with -tty "" option. Now we have a warning screen. Pressed return to proceed. But Stop is still in run.