Automated Linux setup for SimCity 4 Deluxe Edition using Wine, Ansible, and shell scripting
  • Shell 91.4%
  • Makefile 5.3%
  • Jinja 3.3%
Find a file
Fredrick Amnehagen fa09bd758e Fix SimFox download: validate zip before extract, fall back to Gizmo
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.
2026-06-29 00:01:14 +02:00
inventory Initial commit: IaC repo for SimCity 4 Deluxe 2026-06-28 11:45:46 +02:00
mods Remove large mods from repo, add .gitignore, keep in S3 only 2026-06-28 23:50:38 +02:00
playbooks Restructure: commit mods in repo, rewrite Ansible playbook, add Makefile 2026-06-28 21:40:31 +02:00
scripts Fix SimFox download: validate zip before extract, fall back to Gizmo 2026-06-29 00:01:14 +02:00
.gitignore Remove large mods from repo, add .gitignore, keep in S3 only 2026-06-28 23:50:38 +02:00
AGENTS.md Fix SimFox download: validate zip before extract, fall back to Gizmo 2026-06-29 00:01:14 +02:00
Makefile Restructure: commit mods in repo, rewrite Ansible playbook, add Makefile 2026-06-28 21:40:31 +02:00
README.md Add S3 mod cache via Garage for fast LAN downloads 2026-06-28 23:50:11 +02:00

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.