Need help with omnispeak?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

232 Stars 19 Forks GNU General Public License v2.0 738 Commits 4 Opened issues


An open-source re-implementation of "Commander Keen in Goodbye Galaxy"

Services available


Need anything else?

Contributors list

# 336,249
301 commits
# 446,571
168 commits
# 456,882
82 commits
# 385,156
41 commits
# 144,633
6 commits
# 6,021
3 commits

Omnispeak: An reimplementation of "Commander Keen in Goodbye Galaxy!"

Omnispeak is an open-source reimplementation of Commander Keen episodes 4, 5, and 6. It aims to be a pixel-perfect, bug-for-bug clone of the original games, and is compatible with savegames from the DOS version.

Omnispeak's homepage, including binary downloads, is available at:

== INSTALLATION == To play, you'll need to include files from the original game.

Omnispeak supports: - Keen 4 v1.4 EGA - Keen 5 v1.4 EGA - Keen 6 v1.4 EGA - Keen 6 v1.5 EGA

These should be the easiest versions to get. For example, the Steam version and the 3DRealms version are both version 1.4. Keen 6 is not easily available, but you should be able to find patches which convert one version of the game to another. Keen 6 v1.5 fixes a few bugs, so it's probably best to use it if you can.

The shareware release of Keen 4 v1.4 is available here:

You'll need to take the following files from your version of Keen, and place them in the same directory as the 'omnispeak' binary: * GAMEMAPS.CK? * EGAGRAPH.CK? * AUDIO.CK?

You'll also need the files from the 'data' directory corresponding to your version of Keen.

To run the game, simply switch to the directory with the data files, and run: ./omnispeak

You can provide Omnispeak the following command-line arguments: /EPISODE <4,5,6,6v14,6v15> - Runs the given episode/version of Commander Keen /GAMEPATH - Sets the path to the game data files. /USERPATH - Sets the path to the savegame and config files. /FULLSCREEN - Starts the game in fullscreen mode /FILLED - Starts the game with aspect-ratio correction off. /NOBORDER - Starts the game with EGA overscan border emulation off. /INTEGER - Starts the game with integer scaling enabled. /NOJOYS - Disables Joystick detection. /NOCOPY - Bypasses the "Creature Question" screen in Keen 6. /NOAUDIOSYNC - When using SDL-based sound backends, use the system clock rather than the audio clock. Available as the 'sdsdlnoAudioSync' config option. (Works around issues with some SDL audio backends under wine) /DEMOFILE - Plays the demo recorded with Keen's F10+D cheat in filename.


Omnispeak can read settings from the 'OMNISPK.CFG' file in the "user path". This is a simple key/value file which looks something like this:


Graphics settings

fullscreen = 1 border = 1 integer = 0

The OPL emulator used by the SDL audio backend

Valid values: "dbopl" (DOSBox), "nukedopl3" (NukedOPL3)

oplEmulator = "dbopl" --8<--

Modifying settings from the ComputerWrist interface will update this config file with the new settings.

Note that this file is not episode-specific. The settings are shared between all episodes.


The source code for Omnispeak is available on GitHub:

You'll find it in the src/ directory and built with make.

Omnispeak should build fine on most Linux distributions.

You'll need to have the Simple Directmedia Layer 2.0 installed, with the sdl2-config program somewhere in your path.

When compiled, an 'omnispeak' binary will appear in 'bin/', along with the files from the 'data' directories.

Cross-compilation for 32-bit and 64-bit Windows targets using MinGW32-Win64 is also supported.

Cross-compilation for GCW Zero possible using the GCW Zero toolchain.

On Linux, real OPL2 compatible soundcards can be used in place of the Adlib emulation by building with either the WITHALSA=1 option (for most soundcards), or the WITHIEEE1284=1 option (for the OPL2LPT). These require libasound and libieee1284 respectively, and must be enabled at runtime by setting the "sdbackend" option to "alsa" or "opl2lpt". (The ALSA device can be configured with the "sdalsadevice" option, and the parallel port for the OPL2LPT can be set with "sdopl2lpt_port".)

Packagers should note that it's possible to change the default KEEN and USER paths with the make KEENPATH= and make USERPATH= options. Similarly, savegames can be stored in the $XDGDATAHOME directory with the make XDGUSERPATH=1 option. Additional options can be found in the

file. For example, you could build with: make KEENPATH=/usr/share/omnispeak XDGUSERPATH=1

To see a full list of build options, just run

make help


  • Modding support is not implemented.
  • Mouse support is not implemented.
  • Some debug cheats are not supported.
  • Some chunks are not cached properly at load time (doors, especially)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.