RUN_GAME: added retroarch cores

This commit is contained in:
XargonWan 2024-09-08 13:52:05 +09:00
parent 2818362e30
commit b2a59be611

View file

@ -918,6 +918,19 @@ run_game() {
(.value.system[]? == $system) (.value.system[]? == $system)
) | .key' "$features") ) | .key' "$features")
# Check if the system is handled by RetroArch cores
local retroarch_cores=$(jq -r --arg system "$system" '
.emulator.retroarch.cores | to_entries[] |
select(
.value.system == $system or
(.value.system[]? == $system)
) | .key' "$features")
# If the system is handled by RetroArch cores, add them to the list of emulators
if [[ -n "$retroarch_cores" ]]; then
emulators=$(echo -e "$emulators\n$retroarch_cores")
fi
local pretty_system=$(jq -r --arg system "$system" '.system[$system].name' "$features") local pretty_system=$(jq -r --arg system "$system" '.system[$system].name' "$features")
# Check if multiple emulators are found and prompt the user to select one with zenity # Check if multiple emulators are found and prompt the user to select one with zenity
@ -935,13 +948,20 @@ run_game() {
log d "Run game: selected emulator $emulator" log d "Run game: selected emulator $emulator"
# Parse emulator launch command and arguments from the JSON file # Handle RetroArch core separately
local launch_command=$(jq -r ".emulator.$emulator.launch" "$features") if [[ "$emulator" == *"_libretro" ]]; then
local launch_args=$(jq -r ".emulator.$emulator.\"launch-args\"" "$features") local core_path="/var/config/retroarch/cores/$emulator.so"
log d "Running RetroArch core: $core_path"
eval "retroarch -L $core_path \"$game\""
else
# Parse emulator launch command and arguments from the JSON file
local launch_command=$(jq -r ".emulator.$emulator.launch" "$features")
local launch_args=$(jq -r ".emulator.$emulator.\"launch-args\"" "$features")
# Replace $game in launch_args with the actual game path, quoting it to handle spaces # Replace $game in launch_args with the actual game path, quoting it to handle spaces
launch_args=${launch_args//\$game/\"$game\"} launch_args=${launch_args//\$game/\"$game\"}
# Form and execute the command # Form and execute the command
eval "$launch_command $launch_args" eval "$launch_command $launch_args"
} fi
}