randyrossi / bmc64

A bare metal Commodore 64 emulator for the Raspberry Pi with true 50hz/60hz smooth scrolling, low input latency and better audio/video sync.
GNU General Public License v3.0
482 stars 55 forks source link

bmc64 does not work with Arduino ATmega32u4 joystick #211

Open mistepien opened 2 years ago

mistepien commented 2 years ago

bmc64 does not work with Arduino ATmega32u4 joystick based on that library: https://github.com/MHeironimus/ArduinoJoystickLibrary

That is very handy library and such joystick works with VICE in linux and windows without any problems

rhester72 commented 2 years ago

If it isn’t supported by the Circle library, it won’t be supported in BMC, as that is what provides bare metal controller support. It indeed supports fewer devices than a full fledged operating system.

mistepien commented 2 years ago

it's a pity, Arduino is a good way to make your own diy C64-like usb joystick.

mcgurk commented 2 years ago

ATmega32u4 or that Joystick-library is not problem. Problem is Arduino IDE board-files. If you do adapter with default Arduino IDE, it makes it multiple usb-devices and first device is serial-device. You can check this in windows device manager when you plug and unplug atmega32u4. Without serial-device 32u4 is not programmable automatically and for Arduino IDE users it is importat that everything is easy. But serial device is problem with any device that searches only joysticks, like Circle library (BMC).

There is ways to not to use default Arduino IDE board-files:

My github pages:

mistepien commented 2 years ago

I used that https://github.com/arduino/ArduinoCore-avr/commit/8e823d276f939d79b2d323fad675fb8442a718c2. And now there is no CDC device. But joystick still does not work. Just like before down/up and left/right are respectively -129/384 and 384/-129. These values are shown in "Monitor Raw USB 1 data" if I move the stick. Fire1 and Fire2 work fine. Fire1 is fire for C64 soft and Fire2 swaps joysticks. USB1 is detected as "0 hats, 2 axes". What should I do next?