Giter VIP home page Giter VIP logo

Comments (17)

randyrossi avatar randyrossi commented on September 16, 2024

from bmc64.

lroby74 avatar lroby74 commented on September 16, 2024

I saw that same .CRT files works perfectly with only a classic USB keyboard connected (and pressing F12 for show up menú) and don't works if i use Keyrah instead.. Maybe there is a bug in code when using Keyrah?

from bmc64.

mcgurk avatar mcgurk commented on September 16, 2024

I tested Commando and Simpsons Arcade crt and if I go to menu with C= + F7 (Ctrl + F7 from my normal USB-keyboard or C= + F7 from my Arduino Pro Micro C64 keyboard) those doesn't work.
I couldn't get GPIO16+GND to work (menu flashes but doesn't stay put) so I couldn't test with that.
When F12 is used to open menu, those crt works.

from bmc64.

randyrossi avatar randyrossi commented on September 16, 2024

I saw that same .CRT files works perfectly with only a classic USB keyboard connected

Very interesting. I will try the same cartridge with my keyrah. I have a v2, same for you?

from bmc64.

randyrossi avatar randyrossi commented on September 16, 2024

I couldn't get GPIO16+GND to work (menu flashes but doesn't stay put)

Yah, I have to de-bounce that input. You can usually get it to stay on the menu if you try long enough.

So you saw that the menu keys don't work only after attaching that CRT? Or do they just never work?

from bmc64.

mcgurk avatar mcgurk commented on September 16, 2024

I couldn't get GPIO16+GND to work (menu flashes but doesn't stay put)

Yah, I have to de-bounce that input. You can usually get it to stay on the menu if you try long enough.

So you saw that the menu keys don't work only after attaching that CRT? Or do they just never work?

I tried press long and short and many times and it only flickers. GPIO16+GND doesn't work for me in any circumstances.

If you go to menu with normal USB-keyboard with CTRL+F7 and select Attach cartridge and select .crt, emulator goes to some strange state. It doesn't boot to cart, but does normal reset. After that, cartridge cannot be attached successfully even with going menu with F12.

One detail: I tested same thing with Jiffydos (d1541II/kernal) installed and after CTRL+F7 -> Attach cartridge -> Select .crt -> boot to normal startup screen (not crt), screen have some text "@ S:".
If you don't use CTRL+F7 at all, everything works. Maybe CTRL+F7 -keypress goes to some keyboard buffer and makes this annoyance?

from bmc64.

mcgurk avatar mcgurk commented on September 16, 2024

Problem is C= (LCTRL). Even if C= (or LCTRL) is pressed with F12, .crt's don't work. So if C= (or LCTRL) is pressed when going to menu, .crt's don't work.
I changed C= to SHIFT in my C64-keyboard-controller and now SHIFT+F7 works as menu button and now .crt-files work.

https://github.com/mcgurk/Arduino-USB-HID-RetroJoystickAdapter/blob/master/C64_keyboard/C64_matrix.sc

from bmc64.

randyrossi avatar randyrossi commented on September 16, 2024

Thanks!
Problem might be here:

if (key == KEYCODE_LeftControl) {

There's probably a case where I'm sending an up event to the emulator when there was no down (or vice versa). I've noticed the emulator is very picky about key up/down events. I'll try to reproduce here.

from bmc64.

lroby74 avatar lroby74 commented on September 16, 2024

Problem is C= (LCTRL). Even if C= (or LCTRL) is pressed with F12, .crt's don't work. So if C= (or LCTRL) is pressed when going to menu, .crt's don't work.
I changed C= to SHIFT in my C64-keyboard-controller and now SHIFT+F7 works as menu button and now .crt-files work.

https://github.com/mcgurk/Arduino-USB-HID-RetroJoystickAdapter/blob/master/C64_keyboard/C64_matrix.sc

Nice!
Is possible to map "CONTROL" or "RUN/STOP" or "RESTORE" key of C64 real to press together "F7" key for showing up menú?

If so, which file should be edited?

Thank you

from bmc64.

lroby74 avatar lroby74 commented on September 16, 2024

from bmc64.

randyrossi avatar randyrossi commented on September 16, 2024

This is a strange one. Still trying to determine the cause of this....

from bmc64.

usadav72 avatar usadav72 commented on September 16, 2024

Thank you !!!

from bmc64.

lroby74 avatar lroby74 commented on September 16, 2024

This is a strange one. Still trying to determine the cause of this....

I believe that i could found that!
On real C64 if you turn on it with C= pressed, it will ignore any cartridges inserted (i saw in this moment on my real C64 while was testing some CRT games).
If for some strange reason emulator thinks that C= is still pressed when you choose a CRT file, then emulated C64 will ignore CRT file..
This may be reason because using only a USB keyboard with F12 key for opening menù, this issue not happen.
It's needed to change C= key to another one for opening menù (i hope near F7 so we can use one hand for opening it)

from bmc64.

randyrossi avatar randyrossi commented on September 16, 2024

Ah, yes. That's exactly what's going on. The problem is the code submits the up event to the emulator key queue but transitions to the ui immediately. Then the cartridge is attached while the emulator thinks the commodore key is still down and only after the emulator gets control back does it process the up event, which is too late.

I'll bet if you put things back and press F7 then Commodore, then lift Commodore then lift F7, it will work.

35 years, and I never knew the Commodore key could be used to ignore cartridge at boot!

I'll have a fix for this in the next release. Thanks!

from bmc64.

randyrossi avatar randyrossi commented on September 16, 2024

Actually, reversing them with the code as it is doesn't work. But I just verified that's what's happening. Have a fix already.

from bmc64.

mcgurk avatar mcgurk commented on September 16, 2024

I thought same thing when I noticed C= -button was involved. Then I tested with real C64 and Ultima II+ and couldn't reproduce. But I made mistake and didn't test same games. Now I tested with more games and more real original cartridges and noticed that C= -button disabled only EasyFlash crt's and it doesn't appear to be hardware/kernal feature. So at the moment I came to conlusion that maybe it is EasyFlash feature and affects only EasyFlash crt's. That would be good explanation why I haven't either never heard about it :).

from bmc64.

lroby74 avatar lroby74 commented on September 16, 2024

Ah, yes. That's exactly what's going on. The problem is the code submits the up event to the emulator key queue but transitions to the ui immediately. Then the cartridge is attached while the emulator thinks the commodore key is still down and only after the emulator gets control back does it process the up event, which is too late.

I'll bet if you put things back and press F7 then Commodore, then lift Commodore then lift F7, it will work.

35 years, and I never knew the Commodore key could be used to ignore cartridge at boot!

I'll have a fix for this in the next release. Thanks!

This issue of C= seen as pressed from BMC64 may be same thing that disturbs GPIO16 and GND from opening menú , flashing it instead of keep it open.
When you test new fixed version, please check it too..
I forgot to specify that i am trying only Easy Flash cartridges, sorry :)

from bmc64.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.