Merge pull request #422 from outis1one/claude/wolf-pair-port-conflict-7nz8qg

Claude/wolf pair port conflict 7nz8qg
This commit is contained in:
Outis
2026-09-02 15:17:36 -04:00
committed by GitHub
+71 -16
View File
@@ -976,7 +976,7 @@ UDEV
<fullname>Texas Instruments TI-99/4A</fullname>
<path>%ROMPATH%/ti994a</path>
<extension>.ctg .rpk .bin</extension>
<command>%INJECT%=%BASENAME%.esprefix /home/retro/Applications/ti99sim-sdl --joystick1=1 %ROM%</command>
<command>%INJECT%=%BASENAME%.esprefix /bin/bash -c "cd /home/retro/Applications && ./ti99sim-sdl --joystick1=1 '%ROM%'"</command>
<platform>ti99</platform>
<theme>ti99</theme>
</system>
@@ -1044,9 +1044,33 @@ XMLEOF
else
log_info "ti99sim-sdl already present — skipping build."
fi
log_info "The one thing this can't do for you: your own TI-99/4A console ROM + GROM dump"
log_info "(real console firmware, same legal situation as any other BIOS) — ti99sim-sdl's"
log_info "own README covers exactly where it expects that once you have it."
# The one thing that can't be automated: the console ROM+GROM dump
# itself (real copyrighted firmware). Per RetroPie's own
# configure_ti99sim() — it symlinks this into the emulator's own
# install dir, then cd's there before launching — ti99sim-sdl looks
# for it as a plain relative file named TI-994A.ctg in the same
# directory the binary itself runs from, i.e. emulators/ here (the
# command line above now cd's into that directory first, matching
# RetroPie's own pushd + relative-launch pattern exactly).
local _TI99_BIOS_DST="$GAME_STORAGE_DIR/emulators/TI-994A.ctg"
if [ ! -f "$_TI99_BIOS_DST" ]; then
echo ""
log_info "TI-99/4A needs your own console ROM+GROM dump, named exactly TI-994A.ctg"
log_info "(case-sensitive), placed at: $_TI99_BIOS_DST"
if [ "$UNATTENDED" != true ]; then
local _TI99_BIOS_SRC=""
read -e -r -p " If you already have that file somewhere, enter its path now to copy it into place (Tab completes, Enter to skip): " -i "$GAME_STORAGE_DIR/" _TI99_BIOS_SRC
if [ -n "$_TI99_BIOS_SRC" ] && [ -f "$_TI99_BIOS_SRC" ]; then
cp "$_TI99_BIOS_SRC" "$_TI99_BIOS_DST"
chown "$ACTUAL_USER:$ACTUAL_USER" "$_TI99_BIOS_DST"
log_success "Copied to $_TI99_BIOS_DST"
elif [ -n "$_TI99_BIOS_SRC" ]; then
log_warning "No file found at that path — skipped. Copy it to $_TI99_BIOS_DST whenever you have it."
else
log_info "Skipped — copy it to $_TI99_BIOS_DST whenever you have it."
fi
fi
fi
log_info "Then just drop .ctg/.rpk/.bin cartridge files into roms/ti994a/"
fi
@@ -1850,7 +1874,28 @@ fuse scummvm"
# own repo (Data/Sys), so fetch it here too instead of requiring that
# GUI step. Sparse+shallow checkout — the full repo is large, this
# folder isn't.
SYS_DIR="$GAME_DIR/retroarch/system/dolphin-emu/Sys"
#
# Confirmed live: RetroArch's own docs say this goes under
# system_directory/dolphin-emu/Sys, and GoW's own shipped
# retroarch.cfg sets system_directory = "~/bioses" — NOT RetroArch's
# usual default of ~/.config/retroarch/system. An earlier version of
# this script assumed the default and wrote to the wrong place
# (retroarch/system/dolphin-emu/Sys on the host, which the real
# config never reads). Read the actual configured value instead of
# assuming, and self-heal by moving a Sys folder that's already
# sitting in that old wrong location.
_RA_SYS_CFG=$(grep -i '^system_directory' "$GAME_DIR/retroarch/retroarch.cfg" 2>/dev/null \
| sed -E 's/^system_directory[[:space:]]*=[[:space:]]*"([^"]*)".*/\1/')
case "$_RA_SYS_CFG" in
"~/.config/retroarch/system") SYS_DIR="$GAME_DIR/retroarch/system/dolphin-emu/Sys" ;;
*) SYS_DIR="$GAME_DIR/bios/dolphin-emu/Sys" ;;
esac
OLD_SYS_DIR="$GAME_DIR/retroarch/system/dolphin-emu/Sys"
if [ "$OLD_SYS_DIR" != "$SYS_DIR" ] && [ -d "$OLD_SYS_DIR" ] && [ ! -d "$SYS_DIR" ]; then
mkdir -p "$(dirname "$SYS_DIR")"
mv "$OLD_SYS_DIR" "$SYS_DIR"
echo "Moved Dolphin's Sys folder to the location RetroArch's own config actually reads: $SYS_DIR"
fi
if [ -f "$CORES_DIR/dolphin_libretro.so" ] && [ ! -d "$SYS_DIR" ]; then
echo "Fetching Dolphin's Sys folder (needed for GameCube/Wii to boot)..."
SYS_TMP=$(mktemp -d)
@@ -3538,10 +3583,16 @@ if the binary's already there.
The one thing this can't do for you: your own TI-99/4A console ROM + GROM
dump — same legal situation as any other console BIOS, and not something
any installer can supply. Per RetroPie's own documentation for this exact
emulator, it expects that combined into a single cartridge file named
\`TI-994A.ctg\` (case-sensitive). Then just drop \`.ctg\`/\`.rpk\`/\`.bin\`
cartridge files into \`roms/ti994a/\`.
any installer can supply. It needs to be named exactly \`TI-994A.ctg\`
(case-sensitive) and placed at \`emulators/TI-994A.ctg\` — the same
directory as the \`ti99sim-sdl\` binary itself, confirmed against
RetroPie's own \`ti99sim.sh\` (it symlinks the console ROM into the
emulator's install dir, then \`cd\`s there before launching; this repo's
own ES-DE command line does the same \`cd\`-first-then-relative-launch
before running \`ti99sim-sdl\`). If you already had the file somewhere
when the TI-99/4A prompt ran, the installer offered to copy it there for
you (tab-completing path prompt); otherwise copy it there by hand. Then
just drop \`.ctg\`/\`.rpk\`/\`.bin\` cartridge files into \`roms/ti994a/\`.
## MAME: sample packs showing up as games
MAME sample packs (audio for a handful of older analog-sound games) use the
@@ -3549,13 +3600,17 @@ exact same \`.zip\`-per-game naming as real ROMs, so if they're sitting in
\`roms/mame/\` alongside your actual ROM set, ES-DE/RetroArch's MAME core
lists them as if they were games too — there's no reliable filename-only
way to tell them apart (a samples zip and a ROM zip for the same game can
share the identical name). They belong in RetroArch's system directory
instead, under a MAME-core-specific \`samples/\` subfolder (e.g.
\`retroarch/system/mame2003-plus/samples/\` for MAME2003-Plus — the exact
subfolder name depends on which MAME core variant you're using), never in
\`roms/mame/\` itself. A samples zip's contents are almost entirely \`.wav\`
files where a real ROM zip's aren't, which is the practical way to tell
them apart if you're not sure which of your files are which.
share the identical name). They belong in RetroArch's \`system_directory\`
instead, under a MAME-core-specific \`samples/\` subfolder — check
\`retroarch/retroarch.cfg\`'s own \`system_directory\` value before assuming
a path (confirmed live: on this repo's Wolf setup it's actually \`bios/\`,
not RetroArch's usual default of \`retroarch/system/\` — the same thing
that bit Dolphin's \`Sys\` folder earlier), so most likely
\`bios/mame2003-plus/samples/\` for MAME2003-Plus (the exact subfolder name
depends on which MAME core variant you're using), never in \`roms/mame/\`
itself. A samples zip's contents are almost entirely \`.wav\` files where a
real ROM zip's aren't, which is the practical way to tell them apart if
you're not sure which of your files are which.
## Troubleshooting: app exits immediately ("Permission denied")
If a launcher (Steam, etc.) closes the moment it opens, its Wolf-managed home