Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | pmbaty | 1 | DXX-Rebirth for the Raspberry Pi |
2 | |||
3 | BUILDING: |
||
4 | ========= |
||
5 | Make sure you have installed (the development packages of) all of the required |
||
6 | libraries (libsdl, libphysfs, ...). For building, you will also need scons (and |
||
7 | for that, python). Most linux distributions should contain all the required |
||
8 | packages, debain/raspbian do so for sure. Using a distribution with hardfp ABI |
||
9 | is recommended for optimal performance. I developed/tested this on a raspbian |
||
10 | wheezy. |
||
11 | |||
12 | Multiple build configurations are possible for the Pi, depending on whether you |
||
13 | wish to use the legacy vendor graphics driver or experimental Mesa VC4 driver. |
||
14 | |||
15 | To build against the legacy vendor graphics driver (recommended for most users): |
||
16 | |||
17 | scons raspberrypi=1 |
||
18 | |||
19 | If you're using a firmware release older than 1.20160921-1, it's highly |
||
20 | recommended that you upgrade, but if that's not an option, you must manually |
||
21 | specify the original GLES/EGL library names: |
||
22 | |||
23 | scons raspberrypi=1 egl_lib=EGL opengles_lib=GLESv2 |
||
24 | |||
25 | This assumes that the development files (libs/headers) for the VideoCore APIs |
||
26 | are located in /opt/vc. You can use rpi_vc_path to specify another location. |
||
27 | |||
28 | If you wish to build for Raspberry Pi 4B or the experimental Mesa VC4 driver: |
||
29 | |||
30 | scons raspberrypi=mesa |
||
31 | |||
32 | This will select the GL interface with SDL2 by default, but you can select |
||
33 | GLES & SDL1 by adding "opengles=1 sdl2=0". Keep in mind that as of Raspbian buster, |
||
34 | the Mesa packages no longer ship with GLESv1 headers, making GLES builds impossible. |
||
35 | Additionally, SDL2 is highly recommended, as its KMSDRM video driver is the only |
||
36 | way to run DXX-Rebirth on a Raspberry Pi 4B outside of an Xorg session. |
||
37 | |||
38 | For all other options, check "scons -h". |
||
39 | |||
40 | Currently, there is no direct support for crosscompiling. |
||
41 | |||
42 | RUNNING: |
||
43 | ======== |
||
44 | The game should run with X11 or directly on the console (libsdl with fbcon/ |
||
45 | directfb driver). |
||
46 | |||
47 | NOTE: *** PLEASE USE THE 128/128MB MEMORY SPLIT *** |
||
48 | |||
49 | The game might completely freeze or diplay messed up graphics in |
||
50 | out-of-(GPU)-memory situations. If you want to run it with the 192/64MB memory |
||
51 | split, you might be able to do so by setting the texture filter to "NONE" in |
||
52 | the graphics options. (This disables mip mapping and reduces the memory |
||
53 | requirements of the textures. Note that the "BILINEAR" filter still uses |
||
54 | mipmapping). |
||
55 | |||
56 | If the game freezes during the "Prepare for Descent" phase when loading a |
||
57 | level, you probably do not have enough GPU memory. |
||
58 | |||
59 | RUNNING ON X11: |
||
60 | =============== |
||
61 | Recommendation is to use fullscreen mode. However, you can run in "windowed" |
||
62 | mode, too. The game will open an X11 window in that case, and the actual game |
||
63 | output will be an overlay of the same size, but not at the same position, and |
||
64 | always on top (and completely out of control of the X Server). Game input is |
||
65 | still handled via the X11 window, so make sure it has the focus. |
||
66 | |||
67 | RUNNING ON THE CONSOLE: |
||
68 | ======================= |
||
69 | libsdl supports running directly on the Linux console. While the SDL Video mode |
||
70 | is technically not required on the RPi, we still have to use it to get all the |
||
71 | input events we need. libsdl seems to have problems on the RPi, I always get a |
||
72 | crash in libsdl when trying to change the resolution. To avoid such crashes, |
||
73 | the code will try to detect if it is running on the console and activate a hack |
||
74 | to prevent switching the resolution. Note that the in-game framebuffer |
||
75 | resolution can still be changed, the RPi will just scale the output to the |
||
76 | initial resolution (in "fullscreen" mode). "Windowed" mode will just result in |
||
77 | unscaled output. As libsdl creates a black screen, you will not be able to have |
||
78 | the "Window" on top of the linux console output :( |
||
79 | |||
80 | NOTE: You might need root privileges to use the libsdl fbcon/directfb drivers. |
||
81 | |||
82 | BUGS, SUGGESTIONS AND FEEDBACK: |
||
83 | =============================== |
||
84 | |||
85 | The RPi patch was written by: |
||
86 | Marcel Heinz <derhass@arcor.de> |
||
87 | |||
88 | Send bug reports, suggestions and other feedback regarding the operation |
||
89 | on the RPi to me via email. |
||
90 | |||
91 | -- derhass, 2012-08-09 |
||
92 |