dxx-rebirth/d2x-rebirth
Kp 111f6f2f0d Remove obsolete d2x-rebirth/iff/archive/ programs
These were never converted to C++ and cannot be built directly from
SConstruct.  Two of them were broken by a global search&replace in
398596c468 (May 2016), and never reported.
Aside from other global transformations, they have not been touched
since unification moved them to this path in
7cda97cc74 (February 2013).  Based on
their content, these are all test programs specific to the game's
graphics files.

iff15bpp.c depends on an undefined type BITMAP15, which seemingly was never
defined in the project's git history.  The only reference to it is in the
addition of iff15bpp.c in 9bd1ba7c47
(January 2001).

Likewise, iff8bpp.c depends on an undefined type BITMAP8, which was never
defined and only occurs in 9bd1ba7c47.

ifftest.c depends on an external function `rle_span`, which does not declare a
return type, and therefore triggers a warning for declaring data with no type.

iffmike.c depends on a modifier `huge` which is not recognized in gcc.
By its usage, it was likely used on DOS systems with limited memory, to
enable a special memory mode.

ifftestv.c declares a function without a return type, which triggers a warning
in C99.
2023-06-17 23:13:42 +00:00
..
English.lproj Merge branch d2x-rebirth/master into unification/master 2013-08-09 22:53:45 +00:00
debian Switch most in-tree http:// links to https:// 2018-09-02 00:57:29 +00:00
libmve Prevent narrowing in movie data copying 2023-06-11 21:35:16 +00:00
main Use ranges::subrange instead of custom make_range 2023-06-11 21:35:16 +00:00
utilities Switch most in-tree http:// links to https:// 2018-09-02 00:57:29 +00:00
CHANGELOG.txt Fix capitalization of PHYSFS_File 2016-01-09 16:38:14 +00:00
INSTALL.txt Align capitalization of Data directory in instructions with the code 2019-08-25 17:06:34 +00:00
MVEPlayer-Info.plist Add App Category entries to the plists. 2021-04-30 14:43:15 -06:00
README.RPi Remove references to DXX forum 2020-03-25 02:31:10 +00:00
RELEASE-NOTES.txt Add release note about savegame format change 2020-04-26 17:26:23 +00:00
d2x-Info.plist Add App Category entries to the plists. 2021-04-30 14:43:15 -06:00
d2x-rebirth.bmp Move d2x-rebirth source into subdirectory d2x-rebirth 2013-02-19 00:34:46 +00:00
d2x-rebirth.desktop Move d2x-rebirth source into subdirectory d2x-rebirth 2013-02-19 00:34:46 +00:00
d2x-rebirth.png Packages for Windows, Linux, and macOS. Uses Github's Actions 2022-08-01 09:39:41 -06:00
d2x-rebirth.xpm Move d2x-rebirth source into subdirectory d2x-rebirth 2013-02-19 00:34:46 +00:00
d2x.ini Changed default tracker host address from dxxtracker.hopto.org to tracker.dxx-rebirth.com as requested by A Future Pilot 2019-05-17 15:36:58 +02:00
d2xgl-Info.plist Add App Category entries to the plists. 2021-04-30 14:43:15 -06:00

README.RPi

DXX-Rebirth for the Raspberry Pi

BUILDING:
=========
Make sure you have installed (the development packages of) all of the required
libraries (libsdl, libphysfs, ...). For building, you will also need scons (and
for that, python).  Most linux distributions should contain all the required
packages, debain/raspbian do so for sure. Using a distribution with hardfp ABI
is recommended for optimal performance. I developed/tested this on a raspbian
wheezy. 

Multiple build configurations are possible for the Pi, depending on whether you
wish to use the legacy vendor graphics driver or experimental Mesa VC4 driver.

To build against the legacy vendor graphics driver (recommended for most users):

scons raspberrypi=1

If you're using a firmware release older than 1.20160921-1, it's highly
recommended that you upgrade, but if that's not an option, you must manually
specify the original GLES/EGL library names:

scons raspberrypi=1 egl_lib=EGL opengles_lib=GLESv2

This assumes that the development files (libs/headers) for the VideoCore APIs 
are located in /opt/vc. You can use rpi_vc_path to specify another location.

If you wish to build for Raspberry Pi 4B or the experimental Mesa VC4 driver:

scons raspberrypi=mesa

This will select the GL interface with SDL2 by default, but you can select
GLES & SDL1 by adding "opengles=1 sdl2=0". Keep in mind that as of Raspbian buster,
the Mesa packages no longer ship with GLESv1 headers, making GLES builds impossible.
Additionally, SDL2 is highly recommended, as its KMSDRM video driver is the only
way to run DXX-Rebirth on a Raspberry Pi 4B outside of an Xorg session.

For all other options, check "scons -h".

Currently, there is no direct support for crosscompiling.

RUNNING:
========
The game should run with X11 or directly on the console (libsdl with fbcon/
directfb driver). 

NOTE: *** PLEASE USE THE 128/128MB MEMORY SPLIT *** 

The game might completely freeze or diplay messed up graphics in
out-of-(GPU)-memory situations. If you want to run it with the 192/64MB memory
split, you might be able to do so by setting the texture filter to "NONE" in
the graphics options. (This disables mip mapping and reduces the memory
requirements of the textures. Note that the "BILINEAR" filter still uses
mipmapping). 

If the game freezes during the "Prepare for Descent" phase when loading a
level, you probably do not have enough GPU memory.

RUNNING ON X11:
===============
Recommendation is to use fullscreen mode. However, you can run in "windowed"
mode, too. The game will open an X11 window in that case, and the actual game
output will be an overlay of the same size, but not at the same position, and
always on top (and completely out of control of the X Server). Game input is
still handled via the X11 window, so make sure it has the focus.

RUNNING ON THE CONSOLE:
=======================
libsdl supports running directly on the Linux console. While the SDL Video mode
is technically not required on the RPi, we still have to use it to get all the
input events we need. libsdl seems to have problems on the RPi, I always get a
crash in libsdl when trying to change the resolution. To avoid such crashes,
the code will try to detect if it is running on the console and activate a hack
to prevent switching the resolution. Note that the in-game framebuffer
resolution can still be changed, the RPi will just scale the output to the
initial resolution (in "fullscreen" mode). "Windowed" mode will just result in
unscaled output. As libsdl creates a black screen, you will not be able to have
the "Window" on top of the linux console output :(

NOTE: You might need root privileges to use the libsdl fbcon/directfb drivers.

BUGS, SUGGESTIONS AND FEEDBACK:
===============================

The RPi patch was written by:
	Marcel Heinz <derhass@arcor.de>

Send bug reports, suggestions and other feedback regarding the operation
on the RPi to me via email.

						-- derhass, 2012-08-09