FPC Doom

3 hours ago 2

In this repository i try to port DOOM to Free-Pascal using OpenGL and therefore beeing platform indipendant.

!! Attention !!

This is a work in progress, the game is already playable, but not everything is ported. Its highly recommended to play with debugger and Lazarus-IDE. If you get a "Port me." exception, you reached the end of the actual porting progress.

The original code was released by id-Software unfortunatunelly i was not able to get the code compiled, so i decided to use the crispy-doom version as base (as this one directly compiled and was able to start and play the .wad files i have had laying around).

Also i found some usefull documentations that try to explain the code:

There is already a FPC Doom on the List of ports, but that version only supports DirectX and therefore only supports Windows platform.

What needs to be done to compile the code

  • install Lazarus-IDE

  • install package LazOpenGLContext (is shipped with lazarus)

  • download dglOpenGL.pas and store it in the units folder

  • download bass and store bass.pas in the units folder

    o Windows users:

    • copy bass.dll into root folder

    o Linux users:

    • copy libbass.so to /usr/lib
    • chmod o+r it

What needs to be done to play the game

As this section is not interesting for everyone i extracted this into a separate section lessons learned. Furthermore there are some special points when porting a "old" DOS application to a modern "Linux/Windows" application, which i handle in the section DOOM vs. LCL.

Difference to other source ports and key mappings

As i am not doing a 100% source port but more a port for me and my education (or personal needs), FPC DOOM will not be like Vanilla DOOM and even not like Crispy DOOM. To See the differences look here.

  • Replaying of demo's does not work because the time is "glichting" away during simulation
  • not really a bug, but savegames are not onderstood, thus atm not available.
Read Entire Article