I played Halo: Fireteam Raven again today at a friend of my kid’s birthday party (Chuck E Cheese). Got me looking into the game again and found out that it was just dumped a couple months ago!
But it’s only playable via the “TeknoParrot” emulator that’s paywalled behind a Patreon. I would not mind this, but I’ve read some shady stuff about the creator and the project.
Digging into the files that I found searching some archives of the internet, it seems the game is just launched via a “run_game.sh” file! Yay Linux native!
I tweaked directories and cleaned the file up so that it looks like this:
#!/bin/sh
export DISPLAY=:0
PATH=/usr/local/bin:/bin:/usr/X11R6/bin:/usr/sbin:/sbin:/usr/bin;
XRANDR=`which xrandr`
GAMEDIR="/mnt/games/halo/"
UTILSDIR="/mnt/games/halo/utils"
USERDIR="/mnt/games/halo/pmuser"
# Give X just a few more seconds to finish loading
sleep 2
# Run pulseaudio and setup other required audio settings
${UTILSDIR}/pulseaudio_set_default.sh
# determine resolution based on dongle
SCREEN_RES="1920x1080"
# now run game in desired resolution
#cd /pm/g7/halo
#LD_PRELOAD=/pm/g7/halo/halo.so /mnt/games/halo/game2 -f${SCREEN_RES} -n
LD_PRELOAD=/mnt/games/halo/halo.so /mnt/games/halo/game -f${SCREEN_RES} -n
ERR="$?"
# kill pulseaudio after game exits
sleep 1
pulseaudio --kill
sleep 1
# check what the game wants to do after exiting. (codes are defined in g7engine/src/sys.h)
case "$ERR" in
222) # game requested a simple restart, just let loop continue
true;;
223) # game wants to reboot pc
sync;
reboot -f;
sleep 3600;;
224) # game wants to patch
true;;
225) # game wants to do factory reset
rm -rf ${USERDIR};
sync;
sleep 1;;
226) # game wants to power-cycle entire cabinet
sync;
sleep 1200; #this should cause watchdog to kick in
reboot -f; #if for some reason watchdog didn't happen, at least reboot pc
sleep 3600;;
*) true;;
esac
Then chown-ing the folder & contents and running the script, I start running errors about dependencies. The first was “libiw.so” so I installed wireless utilities via pacman (I’m on CachyOS/Arch Linux).
There’s a PulseAudio error, but I’m ignoring that for now.
Now I’m getting the error:
/mnt/games/halo/game: error while loading shared libraries: libfmod.so.10: cannot open shared object file: No such file or directory
But I appear to be stuck here, as the AUR setup for libfmod is completely broken. AUR (en) - libfmod
Any ideas for how I might proceed? Or if this is a fool’s errand and I’ll just be chasing endless missing dependencies?