description | a port of Doom2D Forever to FPC/SDL |
homepage URL | https://doom2d.org |
owner | figgisfiddis@proton.me |
last change | Thu, 26 Sep 2024 12:43:12 +0000 (26 22:43 +1000) |
URL | git:https://repo.or.cz/d2df-sdl.git |
| https://repo.or.cz/d2df-sdl.git |
push URL | ssh:https://repo.or.cz/d2df-sdl.git |
| https://repo.or.cz/d2df-sdl.git (learn more) |
bundle info | d2df-sdl.git downloadable bundles |
content tags
|
|
README
D2DF-SDL
---------
Doom2D Forever ( https://repo.or.cz/d2df-sdl.git ) adapted for use with the
FreePascal Compiler and ported to SDL (SDL2).
Building
---------
Requirements:
* FPC >= 3.1.1;
* libenet >= 1.3.13;
Create the "tmp" and "bin" directories and then run:
cd src/game
fpc -g -gl -O3 -FE../../bin -FU../../tmp Doom2DF.lpr
Additionally you can add following options:
System driver:
* -dUSE_SDL2 Build with SDL 2.0.x
* -dUSE_SDL Build with SDL 1.2.x
* -dUSE_SYSSTUB Disable I/O management
Render driver:
* -dUSE_OPENGL Build with desktop OpenGL 2.x
* -dUSE_GLES1 Build with mobile OpenGLES 1.1
* -dUSE_GLSTUB Disable rendering
Sound driver:
* -dUSE_FMOD Build with FMODEx 4.26.x
* -dUSE_SDLMIXER Build with SDL_mixer
* -dUSE_OPENAL Build with OpenAL 1.1
* -dUSE_SOUNDSTUB Disable sound management
Sound file drivers (OpenAL only):
* -dUSE_SDL2 Build with SDL 2.0.x for WAV support
* -dUSE_SDL Build with SDL 1.2.x for WAV support
* -dUSE_VORBIS Build with libvorbis
* -dUSE_FLUIDSYNTH Build with libfluidsynth
* -dUSE_MODPLUG Build with libmodplug
* -dUSE_XMP Build with linxmp
* -dUSE_MPG123 Build with libmpg123
* -dUSE_OPUS Build with libopus
* -dUSE_GME Build with libgme
Other:
* -dSDL2_NODPI Build for old libSDL2
* -dUSE_MINIUPNPC Build with libminiupnpc for automatic server port
forwarding via UPNP
* -dENABLE_HOLMES Build with ingame map debugger
* -dHEADLESS Build a headless executable for dedicated servers
Run the game with --gdb when using a debugger to prevent it from eating
exceptions.
Windows binaries will require the appropriate DLLs (SDL2.dll, SDL2_mixer.dll or
FMODEx.dll, ENet.dll, miniupnpc.dll), unless you choose to static link them.
Static Linking
--------------
See ( https://repo.or.cz/d2df-binlib.git ) repo for prebuilt dynamic and static
libraries.
It is now possible to link windoze LibJIT and ENet as static libs.
First, you need to clone ( https://repo.or.cz/d2df-binlib.git ).
Then, you can use:
-dLIBJIT_WINDOZE_STATIC -- static LibJIT
-dLIBENET_WINDOZE_STATIC -- static ENet
-dLIBMINIUPNPC_WINDOZE_STATIC -- static MiniUPNPC
-dVORBIS_WINDOZE_STATIC -- static libogg/libvorbis (only in AL builds)
-dOPUS_WINDOZE_STATIC -- static libogg/libopus (only in AL builds)
Don't forget to specify lib*.a location with -Fi<...>
I (ketmar) used mingw-gcc 7.1.0 to build static libs; some other .a libs were
taken directly from mingw. building libs is easy: just fire msys, install all
dependencies, and do:
./configure --enable-static --disable-shared && make
This should produce working .a library suitable for static linking.