This time, we’re going to use the
decompilation of the N64 game Perfect Dark
to install the game, which will allow us to enjoy the title at 60FPS.
We can find the
project on GitHub.
Installation:
There is a precompiled version of the binary for Linux, but in my case it was necessary to recompile it from source since the provided binary was compiled against library versions not present on my system.
PaperStreet # ~> lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
When running the binary, the following error appeared:
PaperStreet $ ~/PerfectDark/pd-x86_64-linux> ./pd.x86_64
./pd.x86_64: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ./pd.x86_64)
./pd.x86_64: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by ./pd.x86_64)
To compile it, we need to install the required dependencies:
apt install build-essential cmake libsdl2-dev
Download the source code:
mkdir PerfectDark
cd PerfectDark
git clone --recursive https://github.com/fgsfdsfgs/perfect_dark.git
cd perfect_dark
The only requirement for this port is a specific version of the ROM
for it to work properly (yes, even though it’s a port, it still requires the game’s ROM
).
The correct ROM
version is
the following
:
ntsc-final/US V1.1/US Rev 1
md5 e03b088b6ac9e0080440efed07c1e40f
Indeed, the MD5 of the ROM
I have matches:
md5sum ~/Perfect\ Dark\ \(U\)\ \(V1.1\)\ \[\!].z64
e03b088b6ac9e0080440efed07c1e40f /home/kr0m/Perfect Dark (U) (V1.1) [!].z64
I compile the NTSC
version since the compatible ROM
is the NTSC
version:
cmake -G"Unix Makefiles" -Bbuild -DROMID=ntsc-final
cmake --build build -j8
cp build/pd.x86_64 ~/PerfectDark/
Copy the ROM
:
mkdir ~/PerfectDark/data
cp ~/Perfect\ Dark\ \(U\)\ \(V1.1\)\ \[\!].z64 ~/PerfectDark/data/pd.ntsc-final.z64
cd ~/PerfectDark
Run the binary:
./pd.x86_64
In this screenshot you can see the game — of course, it can be played in full screen.