User:Tueidj/Duke3D

From WiiBrew
Jump to navigation Jump to search

This page is a dumping location for an unfinished project - EDuke32, a port of the original Duke Nukem 3D by Apogee/3D Realms. This wii port is based on the original EDuke32 project, using the software renderer only (via SDL).

The unfinished (but playable) source is available here. It includes source for both EDuke32 and SDL-Wii (which has substantial improvements). Build and install SDL-Wii first, then build EDuke32 using "make PLATFORM=WII". mapster will fail to build but who cares - I wasn't planning to create levels using my wii.

The game needs duke3d.grp from the original game (at the time of writing this, it is available from GOG.com for half price - $2.99) to be located in /apps/eduke32. It is easily playable using a USB keyboard and mouse but not so much with the wii controllers. I have played through the entire first episode without any major hiccups. Since the game uses SDL to handle the midi music (which in turn uses timidity) a midi patchset is required if you want to hear music.

Things that need fixing:

  • The build process, the makefiles took a bit of a beating to work with libogc.
  • IO device management; only the required device should be mounted, then unmount the other unused device to free up memory. Also find good values for the cache sizes, the game freezes slightly when new sounds/graphics have to be loaded.
  • Optimization; it should be able to run at a constant 60fps
  • CONTROLS. The main reason I'm abandoning this project is because I can't be bothered adding all the missing joystick support, or messing around with the joystick code to make it behave properly. SDL joysticks have well defined interfaces and input ranges, which the EDuke32 code either ignores or manages to screw up one way or another. It also assumes you will always have a keyboard attached, which obviously isn't the case here. Ideally aimed shooting would be implemented using the wiimote rather than just mouselooking.
  • Probably other stuff. I wouldn't be surprised if it runs out of memory at some point, there are a lot of stupidly large global arrays that barely even seem to get used (or are for features that aren't enabled) and just take up space.

So there it is. Take it, finish it and move this page out of my userspace.

Merging

The changes to the EDuke32 tree have been merged into the mainline SVN, and further development will happen from this point forward. Once certain goals are met in the future I will make a proper app page and download. -Hendricks266 03:00, 2 May 2012 (CEST)

Release

EDuke32 Wii has been released. As of this writing, the first of the points listed above (build process) has been fixed as the code is contained within the mainline and only used when PLATFORM=WII is invoked. Performance improvements are also seen as an effect of work that EDuke32 developer Helixhorned has done to optimize the C conversions of the ASM code for the classic renderer beyond just the Wii port. -Hendricks266 10:35, 20 May 2012 (CEST)