Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openspace-fs2

A retail-forward Linux port of the 1998 Volition FreeSpace 2 source — the 2002 CVS drop, ported as-is: non-networked, non-multiplayer, single-player, the retail campaign with the retail SEXP vocabulary and nothing more.

This is NOT a port or fork of fs2open, and deliberately so. The port starts from the pristine Volition import and moves forward one subsystem at a time, keeping retail's own code — including its complete 8bpp software rasterizer, which now runs at 1024x768 on an SDL2 surface, something retail itself never shipped. An OpenGL backend (revived from Volition's own abandoned gropengl.cpp skeleton) sits beside it. Playable: the campaign boots, briefs, flies, and talks, on OpenAL sound.

Mining the knowledge in the 1998 engine is a first-class goal, not just a means: the asm-to-C conversions are brute-force-verified against emulation, retail bugs are catalogued rather than silently fixed, and behavior decisions are recorded (shipped behavior wins over authorial intent). The port's running log lives in docs/notes.md; analysis notes with file:line anchors sit beside it (Emacs compilation-mode files).

Two projects, one lineage

The Linux port is complete, and it is not the end of the line — it is the end of a line. For a while (2026-07-22 to 2026-07-27) this repository hosted a second project beside it: a migration to Godot, the retail simulation meant to stay authoritative as a C++ library behind a modern engine boundary. That project is mothballed — the implementation had drifted into reimplementing the simulation in GDScript, whose endgame is a rewrite of what the port already owns in C++. It stopped deliberately at a gate-clean, playable milestone; the godot branch is preserved, and its README is the map: architecture, working recipes, and the revival route (GDExtension-first) if it ever comes back.

The port line is the live line: playtesting, wrinkle fixes, whatever serves the authentic retail game. The lineage runs retail 2002 → Linux port 2026, in one continuous history.

Branches

  • retail663b3471b, the 2002 Volition warpcore CVS import. Pristine, immutable.
  • master — the working branch; the port happens here.
  • godot — the mothballed Godot migration, frozen at its Training-1-playable milestone; see its own README.
  • fs2open — fs2open release_26_0_0, reference implementation and fix-mine source. Read, cherry-pick ideas, never build on.
  • reference/* — abandoned 2018/2023 fork lines; style reference only.

Building

Meson + ninja, C++17, Linux only:

meson setup build
ninja -C build

Dependencies: SDL2, OpenAL, zlib. The build deploys the game binary to a sibling ../rundir if one exists.

Game data

You need the retail FreeSpace 2 data (the .vp archives) from your own copy of the game — the GOG release works. No game data is included here or ever will be. Point a run directory at the archives and run fs2 from it.

Legal

The source is Volition's, under the terms of its 2002 release: it may not be sold or commercially exploited. FreeSpace 2 and its assets are the property of their respective owners. This repository contains no game data.

About

FreeSpace 2 retail engine: a retail-forward Linux port

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages