CatacombSDL 1.03

@Blzut3 Blzut3 released this Jul 8, 2014

First release of SDL port of The Catacomb. This release is basically a drop in replacement for the DOS binary and should be fully compatible with demos, saves, and configuration files. The latter comes with it's set of limitations as your keyboard scan code must be translatable to a DOS key. It also means that joysticks are limited to the first 2 axes and 2 buttons.

Otherwise this version should be functionally complete including support for both CGA and EGA modes. Due to the way modern computers work, the bug that caused the help screen to not properly show in CGA mode was fixed. Other than some minor things like that, the goal for this release was to just port the game and provide a code base for people to work on without having to deal with DOS.

Outside of limitations the only known issue with the release is mouse capture in windowed mode is a little weird. On Linux an issue with SDL was worked around so the window wouldn't jump when attempting to move its position, on Windows refocusing sometimes causing all mouse input to be ignores (can be fixed by alt tabbing away and back), and on OS X there seems to be occasional problems with the mouse leaving the window.

Binaries are compiled for OS X 10.5+ (64-bit Intel), Windows XP+, and Ubuntu 10.04+.

Some ideas for future work:

  • Port to C++11. This would make some code nicer since inheritance could be used for objtype. Could also take advantage of C++11 enum features to restore stronger typing to that structure as well.
  • Controls improvement. If configuration compatibility is removed, there are a number of ways that the controls could be improved. Including having strafing on by default and maybe separate fire buttons for each direction.
  • Add support for the original Catacomb. This should be fairly simple as The Catacomb is more or less a C port of the original game. There are some differences.
  • Restore the editor from the original game. cated.c includes the code in some pseudo Pascal/C hybrid. This would be a bit of work, not so much as far as porting goes, but because the editor was fairly primitive. Ideally it shouldn't require decompressing the game data first.
  • Support for alternative high resolution tile sets. Could possibly try to salvage the left over VGA code for just higher color depth.
  • Support for alternative higher quality, non-PC speaker, sounds.
  • Full save states. Currently only the inventory, score, and level you are on is saved.