I found the problem. Mame seems to define a controller + a keyboard as possible inputs. Since my controller is a device that is mapped through RetroPad the event gets fired twice: once through the keyboard emulation and once through RetroPad. If the mapping is even different in the retroarch.cfg in can cause some strange events overlapping each other.
Solution: I changed the MAME input configuration to only receive one input (RetroPad). That solved it :)
I think I have zeroed-in on the issue (but not solved it yet). The missing puzzle piece was SDL.
Emulationstation is built on top of SDL, which has its own keyboard library. Something is not accounting for modifier keys: either the SDL the way emulationstation is written.
I think there is still hope as the debug log (see end) can see that both Arrow key and Shift and it even shows that my keys are mapped to both down and up in es_input.cfg. Just need to find a way to access that second option in some way.
Anyone has an idea how I can access the second value of my key, or knows their way around emulationstation source so I can add the function myself?
I found where F4 is hardcoded for emulation station, which makes me think I can hardcode arrows + shifted arrows in a similar manner. It is not a great solution, but it is something...
The only problem I have is that I don't know how to build my own version of emulation station with the changes if I made a copy to my own github.
Also, I don't know SDL well enough to code it myself. Anyone able to translate my pseudocode into actual SDL and cpp?
IF keydown(shift) AND keydown(down) THEN
@edmaul69 Hello! Well I've got Boulderdash running with vice (not lr). But Im going to re-install Lr-vice again. But heres what works for me. in case anyone has the same difficulty.
[All from the ViceMenu GUI]
1- Restore defaults from 'settings management' (this is a different pref set than the package, you can tell as it changes the display filter to emu crt display)
2 - Set Machine settings / Joystick settings / Joystick device 1 -> Joystick
3 - Set Machine settings / Joystick settings / Joystick 1 mapping -> !Go set this!
4 - Save your settings in 'settings managment'
I think my naviety was !assuming! that because I've configured controllers for retropie that the mapping would naturally carry over to the emulator. Not for vice it seems. Lesson learned.
On the keyboard front, I loaded up the mac version of Vice, found the symbolic and positional keyboards for mac. I then loaded those into the C64 rom section. Then loaded those keyboard layouts in vice. However this made no difference. Unless you have to save the keyboards .kvm's in a specific location I think keyboard mapping is broken in vice
The problem I had was that I didn't know what the "Insert Coin" mapped to. I discovered (from Google) that it's the SELECT button. Once I knew this, I could edit the retroarch.cfg in the configs/FBA folder and added the following line: input_player1_select = "num5"
PS: I also tried adding input_player2_select = "num6", but it looks like it only accepts P1 setting.
Thanks for that, I've tried the standalone and they work fine with no tinkering. I'm trying the high resolution one as default but it looks like I'll probably need to set alternatives for some roms, as they're a bit sluggish. Mario Kart 64 looks and plays really well though!