menu: fix crash in video settings menu
[d2df-sdl.git] / README
blobb776de837308315f5094422a4cfaf271fa06dd33
1 D2DF-SDL
2 ---------
4 Doom 2D Forever ( http://repo.or.cz/d2df-sdl.git ) adapted for use with the
5 FreePascal Compiler and ported to SDL 2.0.
7 Building
8 ---------
10 Requirements:
11 * FPC >= 3.0.4;
12 * libenet >= 1.3.13;
14 Create the "tmp" and "bin" directories and then run:
16   cd src/game
17   fpc -g -gl -O3 -FE../../bin -FU../../tmp Doom2DF.lpr
19 Additionally you can add following options:
20   System driver:
21     * -dUSE_SDL         Build with SDL 1.2.x
22     * -dUSE_SDL2        Build with SDL 2.0.x
23     * -dUSE_SYSSTUB     Disable I/O management
24   Render driver:
25     * -dUSE_OPENGL      Build with desktop OpenGL 2.x
26     * -dUSE_GLES1       Build with mobile OpenGLES 1.1
27     * -dUSE_GLSTUB      Disable rendering
28   Sound driver:
29     * -dUSE_FMOD        Build with FMODEx 4.26.x
30     * -dUSE_SDLMIXER    Build with SDL_mixer
31     * -dUSE_OPENAL      Build with OpenAL 1.1
32     * -dUSE_SOUNDSTUB   Disable sound management
33   Sound file drivers (OpenAL only):
34     * -dUSE_SDL         Build with SDL 1.2.x for WAV support
35     * -dUSE_SDL2        Build with SDL 2.0.x for WAV support
36     * -dUSE_VORBIS      Build with libvorbis
37     * -dUSE_FLUIDSYNTH  Build with libfluidsynth
38     * -dUSE_MODPLUG     Build with libmodplug
39     * -dUSE_XMP         Build with linxmp
40     * -dUSE_MPG123      Build with libmpg123
41     * -dUSE_OPUS        Build with libopus
42     * -dUSE_GME         Build with libgme
43   Other:
44     * -dSDL2_NODPI      Build for old libSDL2
45     * -dUSE_MINIUPNPC   Build with libminiupnpc for automatic server port
46                         forwarding via UPNP
47     * -dENABLE_HOLMES   Build with ingame map debugger
48     * -dHEADLESS        Build a headless executable for dedicated servers
50 Run the game with --gdb when using a debugger to prevent it from eating
51 exceptions.
53 Windows binaries will require the appropriate DLLs (SDL2.dll, SDL2_mixer.dll or
54 FMODEx.dll, ENet.dll, miniupnpc.dll), unless you choose to static link them.
57 Static Linking
58 --------------
60 See ( http://repo.or.cz/d2df-binlib.git ) repo for prebuilt dynamic and static
61 libraries.
63 It is now possible to link windoze LibJIT and ENet as static libs.
65 First, you need to clone ( http://repo.or.cz/d2df-binlib.git ).
66 Then, you can use:
67   -dLIBJIT_WINDOZE_STATIC       -- static LibJIT
68   -dLIBENET_WINDOZE_STATIC      -- static ENet
69   -dLIBMINIUPNPC_WINDOZE_STATIC -- static MiniUPNPC
70   -dVORBIS_WINDOZE_STATIC       -- static libogg/libvorbis (only in AL builds)
71   -dOPUS_WINDOZE_STATIC         -- static libogg/libopus (only in AL builds)
73 Don't forget to specify lib*.a location with -Fi<...>
75 I (ketmar) used mingw-gcc 7.1.0 to build static libs; some other .a libs were
76 taken directly from mingw. building libs is easy: just fire msys, install all
77 dependencies, and do:
79   ./configure --enable-static --disable-shared && make
81 This should produce working .a library suitable for static linking.