Automated Linux setup for SimCity 4 Deluxe Edition using Wine, Ansible, and shell scripting
- Shell 91.4%
- Makefile 5.3%
- Jinja 3.3%
Simtropolis cf_clearance cookie is expired — downloads return Cloudflare HTML pages. Added file type validation so the script recognizes fake zips and falls back to Gizmo Day-Night Mod from SC4Evermore. |
||
|---|---|---|
| inventory | ||
| mods | ||
| playbooks | ||
| scripts | ||
| .gitignore | ||
| AGENTS.md | ||
| Makefile | ||
| README.md | ||
SimCity 4 Deluxe — Linux Install & Modding
Automated installation of SimCity 4 Deluxe Edition on Linux (Debian/Ubuntu) using Ansible, Wine, and a curated mod collection.
Quick Start
# Full install (system deps → Wine → game → mods)
sudo make deps # install Wine + 32-bit support
make prefix # create Wine prefix + registry tweaks
make game # install GOG game (place setup_*.exe in installer/)
make optimize # GPU database + 4GB patch
make mods # install all mods
make launch # play!
Project Structure
├── mods/ # Committed mod files (~16MB, no re-download)
│ ├── sc4fix/SC4Fix.dll
│ ├── sc4cpuoptions/…
│ ├── sc4autosave/…
│ ├── sc4dbpfloading/…
│ ├── sc4graphics/…
│ ├── sc4fullscreen32/…
│ ├── sc4soundfix/…
│ ├── gizmo-night/…
│ ├── gizmo-fog/…
│ ├── gizmo-weather/…
│ ├── gizmo-effects/…
│ └── fantozzi-audio/…
├── playbooks/
│ ├── install.yml # Ansible: system + game + mods
│ └── templates/ # Launcher, desktop, registry
├── scripts/
│ ├── fetch-mods.sh # Download mods (use --repo to update mods/)
│ ├── launch.sh # Game launcher
│ └── simtropolis-cookies.txt
├── installer/ # Place GOG setup_*.exe here
├── Makefile # Convenience targets
├── AGENTS.md # Agent instructions
└── README.md
Prerequisites
- Debian 12+ or Ubuntu 22.04+
- NVIDIA GPU with proprietary driver (recommended)
- GOG installer:
setup_simcity_4_deluxe_*.exe
Mods
| Mod | Source | Type |
|---|---|---|
| SC4Fix | GitHub | Bug fixes, crash prevention |
| SC4CPUOptions | GitHub | Single-core, priority tweaks |
| SC4AutoSave | GitHub | Auto-save every 10 min |
| SC4DBPFLoading | GitHub | 90% faster startup |
| SC4GraphicsOptions | GitHub | DirectX, custom resolution |
| SC4FullScreen32Bit | GitHub | 32-bit color fullscreen |
| SC4DisableNetworkConstructionSounds | GitHub | Removes jackhammer loop |
| Gizmo Day-Night Mod v2.0 | SC4Evermore | Dark realistic nights |
| Gizmo Ground Fog | SC4Evermore | Atmospheric ground fog |
| Gizmo Weather | SC4Evermore | Rain/cloud effects |
| Gizmo Effect Props | SC4Evermore | 50+ LE effects |
| Fantozzi Audio Essentials | SC4Evermore | Custom query sounds |
| NAM 49 | SC4Evermore | Transportation overhaul |
| Sudden Valley Terrain | SC4Evermore | HD ground textures |
| Gobias HD Water | SC4Evermore | HD water colors |
| CycledoGG Trees | SC4Evermore | Tree controllers |
| SPAM | Simtropolis | Agricultural overhaul |
Mod Targets
# Individual mods
make mod-sc4fix
make mod-fog
make mod-weather
# Groups (via fetch-mods.sh)
./scripts/fetch-mods.sh essential # DLL fixes only
./scripts/fetch-mods.sh polish # Audio/visual (sound, fog, weather, effects)
./scripts/fetch-mods.sh beautiful # Terrain + water + trees + SPAM
./scripts/fetch-mods.sh all # Everything
# Download mods to repo for committing
./scripts/fetch-mods.sh essential --repo
./scripts/fetch-mods.sh polish --repo
S3 Mod Cache
Large mods are served from LoopAware's Garage S3 (10.32.70.16:3900).
The fetch-mods.sh script checks this local cache first, falling back to SC4Evermore.
Set env vars to customize: S3_ENDPOINT, S3_BUCKET, S3_PREFIX, S3_KEY_ID, S3_SECRET_KEY.
Reproducibility
Small mod DLLs are committed in mods/ — no re-download needed for essentials.
Large mods (NAM, terrain, water, trees) are fetched on demand by the playbook.
Run ./scripts/fetch-mods.sh <target> --repo to update the repo cache.