I was able to get freeintv working with direct button mapping, so you do not need the virtual numberpad. This is for people with retronic design (https://www.retronicdesign.com) joystick adapters for the real/flashback intv controllers or people with the “ultimate pc interface”. These directions are for the retronic design adapter, but should basically work for other controllers. Limitations: Cannot hit more than one button at a time and need to compile the core yourself. Still trying to get jzintv working in batocera (as supports the controllers and multiple buttons), but it segfaults when starting a game. However, the binary runs. I did not run this tutorial end-to-end, but should be able to get you close.
Directions:
Get the forked freeintv libretro code by @msheehan79 from: https://github.com/msheehan79/FreeIntv/tree/dev2
compile the core with make. If you have batocera x86_64 you can use “windows subsystem for linux” to compile and it will work. Nice! Not sure how to cross-compile for other systems. Hopefully the freeintv devs will put this in the baseline core or batocera devs can add this as an alternate core to select.
Copy the core to /usr/lib/libretro/ (need to do this every reboot, or put the copy command in custom.sh, or use batocera-save-overlay)
Configure your controller in emulation station as:
A: Right Action Button
B: Left Action Button
Y: Top Action Button
X: Skip
Start: 1
Select: 3
Up: Disk Up
Down: Disk Down
Left: Disk Left
Right: Disk Right
L: 7
R: 9
Left Analog Up: Skip
Left Analog Left: Skip
Right Analog Up: 2
Right Analog Left: 4
L2: Clear
R2: Enter
L3: 0
R3: 5
Hotkey: Skip
In emulation station, force your controller as controller 3 (you want a regular controller for hotkeys since cannot hit two buttons at once). I have two other controllers, so I use player3 for my intv controller, but change if you only have 1 other controller. In emulation station: Select->Controller & Bluetooth -> P1’s , P2’s, P3’s etc
Emulation station thinks analog controllers use the same axis for up/down and left/right, but they are distinct buttons in our case. Note to devs: it would be good if could add option for analog axes be configured as 4 distinct buttons in emulation station to avoid this! So we need to force retroarch freeintv to see the buttons as the axis: (we want to make 2, 8, 4, 6 the up, down, left, right buttons for the right analog axis).
Put this in your batocera.conf: (these are for retronic design, if have another adapter could be different. Use player2 if only have one other controller)
intellivision.retroarch.input_player3_r_x_plus_btn = "8"
intellivision.retroarch.input_player3_r_x_minus_btn = "6"
intellivision.retroarch.input_player3_r_y_plus_btn = "10"
intellivision.retroarch.input_player3_r_y_minus_btn = "4"
Finally, load a intv game and go to:
Quick Menu (Via a hotkey on another controller) -> Controls -> Port3 Controls
Device Type: Intellivision Controller (Direct Keypad Buttons)
Mapped Port: 1
This makes our 3rd emulation station controller (the intv one) act as player 1 and configures as a direct keypad
Quick Menu (Via a hotkey on another controller) -> Controls -> Port1 Controls
Mapped Port: 3
This makes our 1st emulation station controller act as player 3
Quick Menu (Via a hotkey on another controller) -> Controls -> Port3 Controls
Select Button (should say 5 next to it): Keypad 3
Start Button (should say 3 next to it): Keypad 1
L Button (Shoulder) should say 9 next to it: Keypad 7
R Button (Shoulder) should say 11 next to it: Keypad 9
Note to devs: Wish you could set controller order per emulator in emulationstation, but I couldn’t figure out how.
Everything else should be setup correctly if mapped the controller in emulation station as stated above.
Hit B
Save Core Remap File
this will put a remap file in
\\batocera\share\system\.config\retroarch\config\remaps\FreeIntv\FreeIntv.rmp (batocera v33)
\\batocera\share\system\configs\retroarch\config\remaps\FreeIntv\FreeIntv.rmp (batocera v34)
(note, my controllers were messed up until I deleted the v33 remap when upgraded to v34)
This is required to switch the ports just for intv and keep the new mapping. It should load automatically. This info cannot be saved in the batocera.conf, wish it could!
Enjoy playing!