mist-devel / MSX_MiST

OneChipMSX for MiST
5 stars 8 forks source link

Keyboard issue: cursors remain pressed #3

Closed AxelStone closed 1 year ago

AxelStone commented 2 years ago

Good evening,

After testing with several different keyboards I have found that using the keyboard to play produces that some keys remain pressed down and you can only unlock it by repeatedly pressing on it. The effect remains persistent even after resetting the core: if you don't unlock the key and reset the core, the key remains pressed.

It's very easy to test: load any space shooter (Gradius, Space Manbow, etc) and play normally but press the cursors very quickly to force the failure sooner. At any moment one of them will be pressed.

Thank you very much for your support.

AxelStone commented 2 years ago

Hello @gyurco , one guy in the FPGA group has developed a ROM to help to test keyboard in MSX core, I attach the rom and a video where you can see how keys get pressed.

https://1drv.ms/u/s!AiSrlgNg-MKZhNZ8-3ESj4SXUQtPMQ?e=4Gc2Wp ROM file

https://1drv.ms/v/s!AiSrlgNg-MKZhNZ7nHwRDdkvUABo6g?e=WmV2UX Video demo

Thanks for your support.

gyurco commented 2 years ago

Can you try the attached core? msx_mist-211123.zip

AxelStone commented 2 years ago

Hello gyurco, still happens. If it can help you, this error also happens in MSX1 and Coleco cores, probably some common component has some bug.

Thanks.

gyurco commented 2 years ago

Maybe it happens because of keyboard ghosting and handling this in the firmware.

gyurco commented 2 years ago

Next try attached. msx_mist-211124.zip

AxelStone commented 2 years ago

Good morning gyurco, this version seems very promising, I tried to force the error playing space manbow and after finish stage 1, it didn't appear. With the old core the problem appeared very soon. Today I'll try an intensive session (I'll finish the game completely) and I'll update you.

Thanks so much!

AxelStone commented 2 years ago

Good morning @gyurco , all tests passed. I've performed intensive tests using the rom tester and also playing games and problem didn't appear. Great job!!!

One question, what was the problem? I comment this because as I said MSX1 and Coleco cores has the same problem (I didn't tested them it has been reported by some pals) so with this fix these cores could be fixed also.

Thanks so much, now the core works perfect!

gyurco commented 2 years ago

The fix was simple, but costs a small amount of logic: https://github.com/mist-devel/mist-modules/commit/71fda236e3df25be90d12289bf92f99fd9e476a1