BlueMaxima's Flashpoint is a webgame preservation project with the likes of Flash, Shockwave, HTML5, and many more technologies under its belt.
https://bluemaxima.org/flashpoint/
Steam Deck ships with an immutable rootfs and we like to keep it that way. Following is a guide on getting Flashpoint up and running on your Deck!
This will require your sudo password for the setup
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local
Add these two lines to ~/.bashrc
and reload your terminal
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/podman/bin:$PATH
distrobox create -i docker.io/library/archlinux -n fp-arch
distrobox enter fp-arch
sudo pacman -Syu qemu-full php
distrobox-export --bin /usr/bin/qemu-system-i386 --export-path ~/.local/bin
distrobox-export --bin /usr/bin/php --export-path ~/.local/bin
exit
Choose where you want to put Flashpoint and change to directory. I will use ~/Games
in my example.
mkdir ~/Games
cd ~/Games
wget https://bluemaxima.org/flashpoint/Flashpoint%2011.1%20Infinity.exe
7z x Flashpoint\ 11.1\ Infinity.exe
cd Flashpoint\ 11.1\ Infinity
rm -rf Launcher/
Download this file and place in that Flashpoint 11.1 Infinity folder
https://bluepload.unstable.life/flashpoint.tar.gz
tar xvf flashpoint.tar.gz
rm flashpoint.tar.gz
And because I forgot to include the launcher script in the download...
Save these contents to start-flashpoint.sh
#!/bin/bash
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
export PATH+=":$SCRIPT_DIR/FPSoftware/FPWine-8.0/bin"
cd $SCRIPT_DIR/Launcher
./flashpoint-launcher
killall php
killall qemu-system-i386
Now run start-flashpoint.sh
and you should be good to go!
chmod +x start-flashpoint.sh
./start-flashpoint.sh
Some Shockwave titles fail to render 3D because lib32-libxcomposite
is not installed on Valve's read only root fs.
Here are the steps to include this locally
Edit start-flashpoint.sh
and change the PATH line to match the follwing
export PATH="$SCRIPT_DIR/FPSoftware/FPWine-8.0:$PATH"
Go to FPSoftware/FPWine-8.0
cd FPSoftware/FPWine-8.0
And create a file named wine
with the follwing contents
#!/bin/bash
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
LD_PRELOAD=$SCRIPT_DIR/libXcomposite.so.1.0.0 $SCRIPT_DIR/bin/wine "$@"
Then make it executable
chmod +x wine
Download this file and place next to the wine
file you just created
https://anonfiles.com/Tbf9g7V0ye/libXcomposite.so.1.0_0
Now you should have 3D in Shockwave games if it was missing (Supersonic RC is a good test. Get in game and see if it renders past the menu)
This and the game mode can be solved by adding the .local/bin and .local/podman/bin to the path export in the main script. Game mode especially apparently does not source bash at all when loading so the path export there does not take effect.
The bundled xcomposite should work as that is the same exact file that lib32-xcomposite installs. Not sure what's going on there.