The game
* the program, working state and game data have been squeezed into the four megabytes of main memory
* it requires either shareware or commercial pak files, Amiga and PC paks have been successfully used
* total conversions and mods should work, assuming they respect the tiny memory size (extended RAM to be supported in a couple of weeks)
* infrastructure-based wifi network gaming is supported (build to be released in a few days, after more testing)
* ad-hoc DS/DS gaming will be supported at a later date
* there is now full control configuration
* game saves now work, although there may be some corruption using certain DLDI drivers
* there's a crosshair
* there is a proper timebase, so the speed won't be inconsistent any more!
Graphics
* the majority of the software renderering has been moved over to using the 3D hardware
* world textures are display nearly-correctly, there are however non-power-of-two textures still aren't rendered correcly; Alias models are fully textured
* the game uses faux vertex lighting, derived from the original lightmaps; light animations also work correctly. Full lightmapping may be included at a later date
* there's no dynamic lighting yet
* Alias models are not lit
* sprites and particles are hacked in (as of 17/02/07) and are only partially hardware-accelerated, and have no textures
* there are sky, water, sludge, lava and teleporter animations (the sky is now rendered mostly-correctly, too)
* the console now uses the Quake font from the chosen pak files
* the game uses hardware fogging for a light depth cue above ground, thick fog for below water
* there's a HUD
* GUI elements are transparent
Sound
* sound effects support is about 95% finished, with the whole sound system running on the ARM7
* the sound system uses proper spatial positioning (it is stereo though...) - plug it into your speakers and subwoofer to hear all the effort I put into this!
* CD music is currently being investigated
o the existing solution requires the CD soundtrack to be ripped to your flash card
o uses an MP3 decoder, running on the second processor
o ...but the file streaming slows down the primary processor a bit too much
Tech info
* uses the libfat DLDI interface, so should hopefully work on all supported flash cards
* built using the latest toolchain, devkitARM r20
* textures and sounds are loaded from disk on demand - you will notice slow loading if you have certain types of cards, or low quality flash cards
* sound and texture memory is defragged in the background
* in-game performance is still not hot, but is being actively worked on - expect to see it run twice as fast in the finished build
* Alias rendering performance has been improved by 300%, brush model rendering 30%
* performance is timed using a custom function-instrumenting profiler (a bit like gprof) and another system is used for recording the exact pad and screen input for later replaying
* the DS is put to sleep when the lid closes (disabled in this build)
* there is no texturing on brush or Alias models or images loaded from individual files - you must use pak files
Networking
QuakeDS supports infrastructure-mode wifi networking for UDP/IP PC-DS, DS-DS, etc-DS gaming. This means that you need an access point to play.
There is currently no support for ad-hoc DS-DS gaming.
As the DS networking code takes up a large amount of memory, be aware that you are unlikely to be able to play all standard Quake levels in a co-op match. Wait for the combined EXRAM and networking build to play everything smoothly. Also, the server code in QuakeDS is (still!) unoptimised and this will slow down the other client. So if you can, put the server on a computer which has oodles of processing time
To set up wifi play, you need to configure an access point. To do this, fire up a copy of Mario Kart and configure an AP in the first settings slot. You'll have more luck if you manually set IP addresses, rather than let DHCP do it for you. Once you have done this (and have checked that the settings work), fire up the networking build of QDS (will be available in a few days, after further testing). Go to the multiplayer menu and select join game. Then go to 'SEARCH FOR LOCAL GAMES' and choose the relavent server! Note that this requires the server to be on the same subnet as you, and UDP broadcast packets need to be supported by your network. If you'd like to manually enter an IP address, use the OSK to enter the address.
Using mods and total conversions
QuakeDS supports mods and total conversions. However, due to the low amount of free memory available on a stock DS, many of them cannot be run. Remember, QuakeDS has a ~3 megabyte game heap - many TCs (eg Malice) require a 16 meg heap. Be realistic when you're trying to get something to run. However, if you're convinced something should run but it just won't, get in contact with me and I'll try and help you get it running.
To fully support these TCs, QuakeDS will use the extra memory provided by some flash cards (eg the Supercard, M3, Opera memory expansion) - a build support this will be available within a few weeks. In the meanwhile, you're gonna have to make do with the 3 meg heap!
To use mods/TCs, you need access to the Quake command line. The command line for QuakeDS is available in a file in the root of your flash card named 'qdsopts.txt'. To handle spaces in filenames etc, each option (of argv) must be separated by a newline character (both UNIX and MS-DOS newlines are supported).
So for example, to start the Malice TC with no sound, and no networking, qdsopts.txt would look like this:
-game
malice
-nosound
-notcp
not like:
-game malice -nosound -notcp
If you make a mistake and it won't start you'll be able to see the processed command line options printed to the subscreen as the game starts.