Retroarch configuration is so convoluted, it really is no fun at all. For example, Retroarch now has three different screens where buttons can be remapped, and they all mean different things.
So, configuration of this core, like any core is quite a nightmare.
- in quick menu options, set retro joy0 to on and controller0 type to joystick.
leave the mapping here alone. The mapping here is set so you can bring up the (horrible) virtual keyboard with square, the options menu with start, you can press B for C64 run/stop key, etc.
- in quick menu controls, set user 1 and user 2 to retropad. This is where you should re-map buttons, e.g. if you don't like that circle (retropad A) is the C64 fire-button, and cross (retropad B) is C64 run/stop, then remap "user 1 A" to B, and "user 1 B" to A. With this mapping, cross will now be C64 fire, and circle will now be C64 run/stop. As this example shows, if you remap buttons here, you still get all the special key functionality set in the options mapping (virtual keyboard etc.), only mapped to different buttons.
- in games, press square (or whatever you mapped to "user1 Y") to bring up the virtual keyboard. Press select to turn on mouse pointer control with dpad. Select items with X. Exit the virtual keyboard with another press of square.
- in games, press start to bring up an additional options menu, press select to turn on mouse pointer control with dpad. Select items with X. Exit the options menu by clicking resume. This options menu is useful to switch joystick ports, by selecting either joy1 or joy2. Make sure retrojoy is turned on here for controls to work.
Some options on this screen are an exact duplicate of the quick menu - options settings, but this is the only menu I know of that allows swapping joystick ports.
If your .d64 games work without "True Drive Emulation", then turn it off. Having this option off greatly shortens loading times. But some games (like Sam's Journey) require it.