descriptiona port of Doom 2D Forever to FPC/SDL
homepage URLhttp://doom2d.org
ownerpvt.fgsfds@gmail.com
last changeSun, 7 Oct 2018 20:27:27 +0000 (7 23:27 +0300)
content tags
add:
README
D2DF-SDL
---------

Doom 2D Forever ( http://repo.or.cz/d2df-sdl.git ) adapted for use with the FreePascal Compiler
and ported to SDL 2.0.

Building
---------

Requirements:
* FPC >= 3.0.2;
* FMODEx >= 4.26.xx or SDL_mixer >= 2.0;
* libenet >= 1.3.13;
* SDL >= 2.0.

Create the "tmp" and "bin" directories beforehand if they don't exist already. Then run

cd src/game
fpc -O3 -Fi../lib/vampimg -Fi../lib/vampimg/JpegLib -Fi../lib/vampimg/ZLib -Fu../lib/vampimg -Fu../lib/vampimg/JpegLib -Fu../lib/vampimg/ZLib -FE../../bin -FU../../tmp Doom2DF.lpr

If you want SDL_mixer instead of FMOD, add -dUSE_SDLMIXER.
If you want the server to be able to forward ports via UPNP, add -dUSE_MINIUPNPC.
If you want to debug game with Holmes, add -dENABLE_HOLMES (not supported in GLES mode).
If you want to render graphics using OpenGL ES, add -dUSE_GLES1.
To build a headless (no video/audio, for dedicated servers) executable, add -dHEADLESS.
Replace -O3 with -g -gl to enable debugging features. 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 (see below).


Static Linking
--------------

See ( http://repo.or.cz/d2df-binlib.git ) repo for prebuild dynamic and static libraries.

It is now possible to link windoze LibJIT and ENet as static libs.

First, you need to clone ( http://repo.or.cz/d2df-binlib.git ) (repo with prebuilt windoze libs).
Then, you can use:
  -dLIBJIT_WINDOZE_STATIC       -- static LibJIT
  -dLIBENET_WINDOZE_STATIC      -- static ENet
  -dLIBMINIUPNPC_WINDOZE_STATIC -- static MiniUPNPC

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.
shortlog
9 days ago DeaDDooMERAndroid: improved data unpackingmaster
10 days ago Ketmar Darknetwork: changed weapon forcing logic; should be more... mob
11 days ago DeaDDooMERSystem username used as player's nickname by default
2018-10-02 Ketmar Darknetwork: server is weapon authority!
2018-10-01 Ketmar Darkproperly reset weapon states, so player will be able...
2018-10-01 Ketmar Darkoops; gTime fwp sync timeout was too small
2018-10-01 Ketmar Darkreset weapon switch timer in various places; just in...
2018-10-01 Ketmar Darknetwork: it seems that something is wrong with `gTime...
2018-10-01 Ketmar Darknetwork: oops; server player was unable to switch weapons
2018-10-01 Ketmar Darknetwork: code uglification; fixed bug with weapon switc...
2018-10-01 Ketmar Darknetwork: do not send weapon switch keys over the networ...
2018-10-01 Ketmar Darknetwork: packed some player state bools into bytes
2018-10-01 Ketmar DarkRevert "Revert "fixed flawed "weapon switch key release...
2018-10-01 Ketmar DarkRevert "Revert "no more delay between weapon switching...
2018-10-01 Ketmar DarkRevert "Revert "fixed weapon switching over the network...
2018-09-30 Ketmar DarkRevert "fixed weapon switching over the network; bumped...
...
heads
9 days ago master
10 days ago mob
14 months ago buffers
14 months ago scripts