marcel303 / keen

Keen Dreams port using SDL
GNU General Public License v2.0
28 stars 2 forks source link

Patreon
:heart:

Commander Keen in Keen Dreams

This repository contains the source for Commander Keen in Keen Dreams. It is released under the GNU GPLv2+. See LICENSE for more details.

The release of the source code does not affect the licensing of the game data files, which you must still legally acquire. This includes the static data included in this repository for your convenience. However, you are permitted to link and distribute that data for the purposes of compatibility with the original game.

Compiling

This port requires SDL 1.x to compile. If you're on Linux, use apt-get or whatever package manager you use. On MacOS, I'd recommend getting SDL through brew (brew install sdl). Once you got your dependencies sorted, run cmake to generate a makefile or project files for your favorite IDE.

The code was converted from the original code targeting Borland C++ 2.0, to modern C++ compilers. The code has been demonstrated to compile and work on Windows using Visual Studio 2013, Linux using Ubuntu and MacOS High Sierra.

There is some data that must be compiled into the binary. This data is located in the static directory. The CMake file provided will automatically take care of this through a custom pre-build step.

Running

Make sure to get a copy of the game somewhere. I've tested it with the 1.13 shareware version of the game and it runs fine. Extract the game files to a folder named 'game'. The makefile will automatically try to run the generated executable, and look for data files inside the 'game' folder, so be sure to use this name. Otherwise, copy the compile executable to the data folder and run it from there.

Credits

This release was made possible by a crowdfunding effort. It is brought to you by Javier M. Chavez and Chuck Naaden with additional support from:

EGA/CGA Version

Version 1.00 can be built for either EGA or CGA by changing a constant. All later versions are specific to one mode. The constant is GRMODE in ID_HEADS.H and ID_ASM.EQU. Finally ensure that the proper static data files are being linked. KDREDICT.OBJ/KDREHEAD.OBJ for EGA and KDRCDICT.OBJ/KDRCHEAD.OBJ for CGA.

Revision History

A little confusing because revisions have proceeded in three different sequences, the regular (EGA) version, the CGA version, and the shareware version. At present, 1.05 is the latest CGA version, 1.93 is the latest EGA version, and 1.20 is the latest shareware version. Also, some versions with suffixed letters have been used when text and other items changed without recompilation of the program itself.

New CGA versions should be numbered 1.06 through 1.12

New shareware versions should be numbered 1.21 through 1.90

New EGA versions should be numbered 1.94 and up.