Atari The issue is: \\batocera\share\saves\fpinball\dosdevices\CQFO6Q~M\users\root\Documents and \\BATOCERA\share\saves\fpinball\drive_c\users\root\Documents point to \userdata\system\ . When I deleted in windows, windows followed the symlink and deleted by system directory!
Still hoping someone else figures out why the games don’t launch from the command line. Tried both btrfs and ext4, no difference. Just need to accept the fact that some tables will not load from command line.
edit: It seems some tables just need to be their original name. For instance “Aerosmith (Mark1)(1.0).fpt” loads fine, but same file called “Aerosmith.fpt” does not. Weird. To figure out the table name, load the config utility. Load the game manually, go to Menu Bar->Table->Table Info . Rename the file the same as the Table Name: field, adding the .fpt. Now tables should load. Tried on a few problem tables, and seems to work consistently. If that doesn’t work, add some text in parathesis, like Game.fpt -> Game (My Game).fpt . Not sure why this helps, but it did on a table I couldn’t load. After more testing, seems like naming files “Game (some text).fpt” solved my problems, no need to match the table name. I have been using the game year as ’some text"
I’m so happy with this system now, it is alot of fun.
Edit:
If you have too many controllers (or maybe two names the same) not sure, future pinball will crash after the loading screen. The way I fixed this was to unbind any unneeded controller. Unbind a controller when using fpinball and rebind it when done.
in \\BATOCERA\share\system\configs\emulationstation\scripts\game-start\
create a file 03-controller.sh and chmod 755 it
#!/bin/bash
string=$1
tmp=${string#*roms/}
system=${tmp%/*}
system=${system%/*}
if [ "$system" = "fpinball" ]; then
echo '3-5.4' > /sys/bus/usb/drivers/usb/unbind
exit 0
fi
then make below file and chmod 755 it.
\\BATOCERA\share\system\configs\emulationstation\scripts\game-end\
just have the unbind line (as this does get system name passed it)
#!/bin/bash
# check if /sys/bus/usb/devices/3-5.4/driver does not exist, rebind if does not exist
FILE=/sys/bus/usb/devices/3-5.4/driver
if [ ! -f "$FILE" ]; then
echo '3-5.4' > /sys/bus/usb/drivers/usb/bind
fi
you need to replace the ‘3-5.4’ with the ID of the controller you don’t want. You can find this by running
for device in $(ls /sys/bus/usb/devices/*/product); do echo $device;cat $device;done