About this project
ra-port is an unofficial source port of Command & Conquer: Red Alert (1996) that runs natively on macOS, Linux, Android and iOS. It is based on the source code Electronic Arts released under GPLv3 with additional terms, and keeps the original code layout recognizable while adding a platform layer built on SDL2 for video, audio and input.
Platform support
- macOS on Apple Silicon: builds and runs with CMake/Ninja as a raw executable (no .app bundle yet).
- Linux on Ubuntu: builds and runs as a native SDL2 desktop executable, with an optional Xvfb/ImageMagick smoke test for headless validation.
- Android: builds a local arm64-v8a debug APK, locked to landscape, with touch-native input; assets are extracted into app storage on first launch.
- iOS: builds a landscape debug app for the simulator or a signed arm64 device build, copying bundled data into app-writable storage on first launch.
Gameplay status
Campaign (Allied and Soviet), local skirmish, and videos with sound are reported as working, along with keyboard/mouse controls on desktop and touch/audio on mobile. Online/network multiplayer, launcher/setup tools, expansion packs, release packaging for Android/iOS, and macOS .app packaging are not implemented.
Game data
No game assets, movies, music, disc images or installers are included. Players must supply legally obtained Red Alert files from their own discs or backups; a preparation script copies them into git-ignored directories under assets/redalert. Debug mobile builds intentionally bundle this local data and should not be distributed.
Build and run
Desktop builds use CMake with Ninja and require SDL2 development packages; helper scripts handle asset preparation, codesigning on macOS, and launching. Android requires JDK 17, Android SDK Platform 36, NDK 28.2.13676358 and the Android CMake package; iOS requires full Xcode. Fullscreen can be enabled via an environment variable or toggled with Command+Return on macOS and Alt+Return on Linux. Source-level tests and script checks are run through tests/run_script_tests.sh.
The project is intentionally conservative, preferring small platform-specific support files over broad rewrites. Suggested contribution areas include packaging, physical device validation, save/load hardening, expansion support and CI coverage. Network multiplayer is out of scope for the current milestone.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.