Skip to content
Trapped in a hostile computer system, you must make a way out - RTS/coding game
C C++ HTML Objective-C Shell AutoHotkey
Branch: master
Clone or download
linleyh Merge pull request #46 from suve/fix-out-of-bounds-array-access
Fix potential out-of-bounds array access in c_prepr.c
Latest commit 29bc0ce Aug 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
CMake And again Feb 24, 2017
src Merge pull request #46 from suve/fix-out-of-bounds-array-access Aug 24, 2019
.gitignore Add .gitignore file to ignore generated files. Mar 17, 2017
CMakeLists.txt Update Nov 6, 2016
Makefile rename binary built by Makefile from lc to libcirc so that launcher.s… Aug 16, 2019 Updated do scripts Mar 10, 2017
do Make “do” script executable Mar 14, 2017

Liberation Circuit

This is the release version of Liberation Circuit, an RTS/programming game.

To play the prebuilt binaries on Windows, download the latest release and run LibCirc.exe.

Vanilla has set up a Discord server to discuss strategy and things.


a screenshot another screenshot


It should compile on any OS supported by Allegro 5 - to build, compile the c files in the source directory and link with Allegro 5. More detailed instructions are below. More detail about the source file structure is at the start of m_main.c.

The executable should go in the "bin" subdirectory (the same directory as the "init.txt" file). The game requires write access to this directory to save mission progress. If this isn't okay, you can specify a path in the fopen calls at about lines 2808 and 2860 of h_story.c.

Don't try to compile the .c files in the /proc or /story subdirectories! They are code used by the game itself.

  • Manual.html has extensive detail about the game, including documentation for the in-game API.
  • Edit init.txt to set screen resolution and other options (fullscreen, sound volume, key rebinding, colourblind mode etc).

To build using do/redo (using the .do scripts by Nils Dagsson Moskopp):

To build Liberation Circuit on any Unix-like OS like GNU/Linux, execute the “do” script. Note that “do” always compiles all source files; if you want to rebuild targets only when relevant source files have changed, you should use “redo” instead. A version of “redo” can be obtained from (written in Bourne shell) or (written in C++).

Compiling on Linux

Packages needed for Liberation Circuit on Debian GNU/Linux or Ubuntu:

  • liballegro-acodec5-dev
  • liballegro-audio5-dev
  • liballegro-dialog5-dev
  • liballegro-image5-dev
  • liballegro5-dev

To build using cmake (using the cmake scripts by Kyle Findlay; The following instructions are from u/JCanseco on reddit)

I did compile it with ccmake ncurses frontend on Antergos (based on Arch Linux).

mkdir build, cd build, cmake ..

Adding this line to CMAKE_EXE_LINKER_FLAGS was enough:

-lallegro_image -lallegro_primitives -lallegro_color -lallegro_acodec -lallegro_audio -lallegro_dialog -lallegro_font -lallegro_main -lallegro -lm

make -j4 and it compiled fine with Allegro 5.2.2. Extracted zip data on bin folder and it did run fine.

Compiling on macOS

To build on macOS (Sierra (10.12) with latest Homebrew and Xcode)

git clone
cd liberation-circuit
brew install allegro
cd bin

If you are using a Retina screen, you may want to set the double_fonts option to make the text larger (edit init.txt to do this).

Thanks to:

  • Nils Dagsson Moskopp for very useful feedback on the alpha and beta versions.
  • zugz (from the tigsource forum) for very useful feedback on the beta.
  • Serge Zaitsev's cucu for a very clear explanation of how to write a simple C compiler.
  • Batuhan Bozkurt's otomata for the basis of the cellular automata-based procedural music generation.
You can’t perform that action at this time.