dirkwhoffmann / virtualc64

VirtualC64 is a cycle-accurate C64 emulator for macOS
https://dirkwhoffmann.github.io/virtualc64
Other
342 stars 33 forks source link

Clowns is broken in v5.0b1 #792

Closed dirkwhoffmann closed 1 month ago

dirkwhoffmann commented 1 month ago
Bildschirmfoto 2024-06-02 um 08 28 11
dirkwhoffmann commented 1 month ago

This turned out to be an easy one. The cartridge's reset routine correctly enabled ultimax mode. However, VICII's reset routine (which happens to execute later) set the memory map back to normal. In the new code, the memory map is updated in C64::_reset(), which executes after all subcomponents have processed their individual reset routines.

Bildschirmfoto 2024-06-02 um 09 00 21
dirkwhoffmann commented 1 month ago

The game requires paddles which are not supported yet. When I bought an Atari 2600 on eBay a couple of years ago, I got this controller:

AtariPaddle

Originally, I thought it was a combined joystick/paddle controller because the knob can be rotated. However, it's most likely a CX24, which seems to be a standard joystick. Anyway, I don't think my USB retro adapters have paddle support, so it might be best to use an analog joystick as a paddle replacement.

dirkwhoffmann commented 1 month ago

Update: I've implemented experimental support for using analog joysticks as paddles. The implementation is straightforward, as it is sufficient to feed the analog joystick value directly into the (new) paddle object. However, this feature is almost useless in practice because it's too difficult to control the paddle with accurate precision. E.g., when playing Clowns with the Xbox controller, tiny movements of the analog stick move the clown's launch pad by a decent distance.

In my opinion, there are only two reasonable scenarios:

  1. Emulate paddles via the mouse
  2. Connect a real paddle

Does anybody know about a decent USB paddle? There are some paddles on the market for the new Atari 2600+ remake, but to my knowledge, they feature the standard retro Atari port (no USB).