Emulations (running on Linux/Unix/Windows/macOS, utilizing SDL2) of some - mainly - 8 bit machines, including the Commodore LCD, Commodore 65, and the MEGA65 as well.
It seems current Xemu implementation is wrong: indeed, trigger being set in disabled mode as well and 'played back' when enabled again. However new change in the core, that you can clear possible pending trigger with re-write zero to hotreg enable bit ($D05D bit 7) when it was zero again, so the 0->0 case.
Also the $D031 behaviour must be checked in Xemu as well. The $D018 (recent change in Xemu) behaviour should be-checked again now: #381
UPDATE
Actually the behaviour of hotregs is much more easy than I thought. No previous value or transition need to be changed.
Setting hotregs to disabled always disable hotregs and clear possible pending triggers. Enabling hotregs always take trigger (if it's not clear of course). No need to check any "transition" or things like that.
It seems current Xemu implementation is wrong: indeed, trigger being set in disabled mode as well and 'played back' when enabled again. However new change in the core, that you can clear possible pending trigger with re-write zero to hotreg enable bit ($D05D bit 7) when it was zero again, so the
0->0
case.Also the $D031 behaviour must be checked in Xemu as well. The $D018 (recent change in Xemu) behaviour should be-checked again now: #381
UPDATE
Actually the behaviour of hotregs is much more easy than I thought. No previous value or transition need to be changed.
Setting hotregs to disabled always disable hotregs and clear possible pending triggers. Enabling hotregs always take trigger (if it's not clear of course). No need to check any "transition" or things like that.