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)
I ran into odd issue while curating. Games would randomly work or not work.
INFO [22:17:41] Game Launcher: Launch Game "TAG DER ARBEIT" (PID: 26876) [
applicationPath: "FPSoftware\Flash\flashplayer_32_sa.exe",
launchCommand: "http://tag-der-arbeit.extrajetzt.de/swf/preloader.swf",
command: "wine start /wait /unix "/home/rolf/Games/flashpoint/FPSoftware/Flash/flashplayer_32_sa.exe" http://tag-der-arbeit.extrajetzt.de/swf/preloader.swf" ]
INFO [22:17:42] TAG DER ARBEIT: 00f4:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
INFO [22:17:42] Server: [Wed Mar 22 22:17:42 2023] 127.0.0.1:38264 Accepted
INFO [22:17:42] Serving File From HTDOCS: htdocs/content/tag-der-arbeit.extrajetzt.de/swf/preloader.swf
INFO [22:17:42] File Locked With Only Readers
INFO [22:17:42] Serving File From Base URLs: /tag-der-arbeit.extrajetzt.de/swf/preloader.swf
INFO [22:17:42] Using Base: Dri0m
INFO [22:17:42] Creating File Pointer Resource From URL: http://infinity.unstable.life/Flashpoint/Legacy/htdocs/tag-der-arbeit.extrajetzt.de/swf/preloader.swf
INFO [22:17:42] Failed to Open File
INFO [22:17:42] Using Base: Archive.org
INFO [22:17:42] Creating File Pointer Resource From URL: http://archive.org/download/FP90Data/FP90Data.zip/htdocs/tag-der-arbeit.extrajetzt.de/swf/preloader.swf
INFO [22:17:43] Empty File
INFO [22:17:43] [Wed Mar 22 22:17:43 2023] 127.0.0.1:38264 Closing
INFO [22:17:43] QEMU GameZip: 404 GET http://tag-der-arbeit.extrajetzt.de:80/swf/preloader.swf HTTP/1.1
INFO [22:17:44] TAG DER ARBEIT: 0138:err:d3d:wined3d_context_gl_reacquire Acquired context 0x259dd28 instead of 0x25a53b0.
INFO [22:17:44] TAG DER ARBEIT exited with signal null