release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Search | Go
Wiki > Main > PluginDuke3D

Duke3D

This is a port of Duke Nukem 3D, derived from Fabien Sanglard's Chocolate Duke. It is available for most ARM devices with a color screen.

Installation

Manual

The .GRP and .CON files from an original installation of the game must be placed in the /.rockbox/duke3d/ on your device. The demo version works as well, and is available here.

Automatic (via Rockbox Utility)

RockboxUtility after November 2019 will automatically install the shareware episode when "Install Game Files" is selected.

Music

In-game music will not work by default. For it to work, you must install a modified Timidity patchset in the /.rockbox/timidity/ directory on your device. There should be a /.rockbox/timidity/timidity.cfg file located in this directory, along with the instrument files. You must edit the .cfg file so that all the path names are absolute (i.e. in the form /.rockbox/timidity/instruments/*.cfg).

There is a patchset available (limited to non-commercial use) available here. Download and extract to /.rockbox/ (not /.rockbox/duke3d or /.rockbox/timidity/!). Music should then work.

Video

Rotation of the video output is possible by choosing the correct video option in the in-game menu. If your device's display is normally 320x240, for example, choosing the 240x320 option will rotate the screen 90 degrees. The keymap will be updated as well to reflect the rotation.

Caveats

Sound effects, enabled by default, could have a detrimental effect on playability on some devices. If you notice excessive lag, try disabling sound.

The default button mapping may not be optimal for gameplay. Set a different mapping in the Keyboard'' section of the game setup. Note that not all keys are mappable on all devices.

Some devices will low memory or large GRP files will prevent the game from completely caching the GRP file in RAM, which could lead to disk reads during gameplay. This might cause the game to lag slightly when it happens, which is normal. The game should resume in a second or so.

Gory Technical Details

SDL

The game runs on a port of the Simple DirectMedia Library (SDL), version 1.2. The sources for both SDL and Duke3D are located in the source tree under rockbox/apps/plugins/sdl/.

The SDL port is not specific to Duke3D. Other games, namely Wolfenstein: 3-D and Quake, have been ported and run using the Rockbox SDL runtime with varying degrees of success. However, the only game currently in the main tree is Duke3D.

See SdlPluginPort for more technical details of the port.

Building for simulator

The original source code has some pretty nasty hacks, including assuming that all pointers are 32 bit. This causes a crash when built for the x86_64 simulator. To fix this, pass --32-bit to tools/configure.

Also, the threading code in the SDL runtime causes the simulator to lock up when using the default sigaltstack threads. Pass --sdl-threads to tools/configure to fix this problem.

So, in summary, to build Duke3D for the simulator, use tools/configure --sdl-threads --32-bit. -- FranklinWei - 24 Dec 2017

CategoryPlugin: Duke Nukem 3D []

  • Duke Nukem 3D on ipod6g:
    wmzntvx90dmz.jpg

I Attachment Action Size Date Who Comment
shareware.zipzip shareware.zip manage 4794.3 K 30 Oct 2019 - 03:36 FranklinWei  
wmzntvx90dmz.jpgjpg wmzntvx90dmz.jpg manage 40.1 K 21 Jan 2019 - 23:03 FranklinWei Duke Nukem 3D on ipod6g
r11 - 02 Apr 2021 - 20:46:07 - UnknownUser

Copyright © by the contributing authors.