markus-zzz / myc64-pocket

A Commodore 64 core for the Analogue Pocket
33 stars 2 forks source link

Using arrow keys is too hard #14

Open dfilskov opened 5 months ago

dfilskov commented 5 months ago

It's really hard to move the cursor up and left.

markus-zzz commented 5 months ago

It is the shift modifier + DN/RT just like on a real C64.

See the following snippet from the README

For the virtual keyboard the face-x button toggles sticky keys (useful for modifiers such as shift) and the face-y button clears any sticky key. Normal key press is accomplished with the face-a button.

I.e. first press the SHFT as sticky and then go for the DN/RT keys.

Or did I misunderstand the problem?

dfilskov commented 5 months ago

Oh - that helps. And that's why you didn't respond to using X or Y to type RUN RETURN :)

Perhaps using R (shoulder) for Shift instead is simpler? - like it was a key so you simply hold it to hold Shift.

And holding L could make the D-pad turn into the cursor buttons (up and left using Shift automatically, I guess).

Then X and Y could be used for Space and RUN RETURN perhaps. :) or Reset + RUN RETURN could simply be a feature in the MISC menu below the PRG file.

markus-zzz commented 5 months ago

Hmm, originally I used L1 for shift modifier (the left shift key). The problem with this approach is that there are several modifier keys on a C64 keyboard (left shift, right shift, ctrl). Also looking at the hardware https://www.c64-wiki.com/wiki/Keyboard I cannot really see what hinders any other key from possibly being treated as a modifier by C64 software. So that said I think the current solution with 'sticky keys' is the most generic, though a bit inconvenient.

For mapping the cursor keys to the d-pad I have though about that too and agree that it could be useful.

dfilskov commented 5 months ago

Ah I see. Thanks for explaining!

Glad you've thought about possible cursor keys :)

I do understand why you want the keyboard to be "fully" functional for all keys. That certainly makes sense - though I don't think it's more important than making the most used actions easy and fast.

However - there might be a way to do both.

dfilskov commented 5 months ago

Which buttons are free for other purposes when the OSD isn't shown?

Which buttons are free when the OSD is visible? - none?

markus-zzz commented 5 months ago

Without OSD all but dpad and fire are available. During OSD currently only right-of-analogue and one of the fire buttons.

If you want to help out and experiment with various options here it is not very difficult to modify the bios code for this purpose. Should I write a short guide on how to setup the build environment?

dfilskov commented 5 months ago

Thanks a lot for the suggestion. I'm no programmer and this would probably be too much of a task for me to get done.

Without the OSD it seems we have lots of buttons availble for a macro that writes RUN RETURN :)