カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
DIP/入力最小仮承認未処理2020-09-15 20:292020-09-18 21:08
 
テスターcuavas担当者 ソースintellec4.cpp
バージョン0.224発生バージョン修正バージョン
フラグ
セット intlc440
セット詳細
intlc440 - INTELLEC 4/MOD 40
 
概 要警告と情報画面のキー入力がエミュレーション側に渡されている。
詳 細

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.

再現手順

Remove the CFG file if present:


rm cfg/intlc440.cfg

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.

追加情報 
 
添付ファイル