A reversible binary patch for the native Linux sc3u.dynamic executable shipped with the LIFLG SimCity 3000 Unlimited installer.
You need the Loki version of this game.
The original Linux binary accepts only a small hardcoded set of startup resolutions and rewrites unsupported values to fallback modes. This patch bypasses those two validation routines, allowing widescreen and HD resolutions. Please take care that not all resolutions will work. It's trial and error on your part.
This was built on the shoulders of giants!
You must first apply the patch available in: https://github.com/tetration/Simcity_3000_Linux_Installer
Please check out the great work of Rafael Oliveira: https://github.com/tetration
The patcher currently supports exactly this build:
SHA-256: d2c94405b1fbfd2ddbf6ffbdefa255587f86d19420f751e64b78d34278fce6d5
File: sc3u.dynamic
The hash check is intentional. The script refuses to patch unknown binaries.
The patcher modifies copies of two functions in the executable:
FixStartupResolutionValuesIfNeeded(...): returns immediately, preventing resolution fallback rewriting.IsStartupResolutionOK(...): returns true, accepting the requested startup resolution.
It creates a new file named sc3u.dynamic.hd; the original executable is not modified.
Copy the original executable somewhere writable:
mkdir -p ~/Downloads/sc3u-hd-patch
cp /usr/local/games/simcity3000/sc3u.dynamic ~/Downloads/sc3u-hd-patch/
cd ~/Downloads/sc3u-hd-patchDownload patch_sc3u_dynamic_linux_hd.py into that directory and run:
chmod +x patch_sc3u_dynamic_linux_hd.py
./patch_sc3u_dynamic_linux_hd.py sc3u.dynamic sc3u.dynamic.hdInstall the patched executable alongside the original:
sudo cp sc3u.dynamic.hd /usr/local/games/simcity3000/Create a separate launcher script:
sudo cp /usr/local/games/simcity3000/sc3u.dynamic.sh \
/usr/local/games/simcity3000/sc3u.dynamic.hd.sh
sudo sed -i \
's/GAME_BINARY="sc3u.dynamic"/GAME_BINARY="sc3u.dynamic.hd"/' \
/usr/local/games/simcity3000/sc3u.dynamic.hd.shTest a 16:9 window:
/usr/local/games/simcity3000/sc3u.dynamic.hd.sh -w -r1360x768Full HD:
/usr/local/games/simcity3000/sc3u.dynamic.hd.sh -w -r1920x1080Create ~/.local/share/applications/liflg_org-simcity3000_hd.desktop:
[Desktop Entry]
Version=1.0
Type=Application
Name=Sim City 3000 Unlimited HD Widescreen
GenericName=Sim City 3000 Unlimited HD Widescreen
Comment=Play Sim City 3000 Unlimited in HD widescreen
Icon=/usr/local/games/simcity3000/icon.xpm
Exec=/usr/local/games/simcity3000/sc3u.dynamic.hd.sh -w -r1360x768
Categories=Game;Then refresh the desktop database if necessary:
update-desktop-database ~/.local/share/applicationsThe original files are untouched. Remove the additional files to revert:
sudo rm /usr/local/games/simcity3000/sc3u.dynamic.hd
sudo rm /usr/local/games/simcity3000/sc3u.dynamic.hd.shSome resolutions may be unstable because the game was not originally tested with modern display modes. Save frequently and test your chosen resolution before relying on it.
1360x768 windowed has been tested successfully on a 1920x1080 XFCE desktop.
This repository contains no game binaries or proprietary game assets. It only contains a patching utility that operates on a legally obtained local installation.
SimCity and related names are trademarks of their respective owners. This project is unofficial and unaffiliated with Electronic Arts, Maxis, Loki Entertainment Software, or LIFLG.
Inspired by Rafael/Tetration's SimCity 3000 HD patch for the Windows executable. The native Linux offsets and patch were independently identified from the LIFLG sc3u.dynamic executable.