My god, I've become one of the herd. I don't approve of blogs or the blogging culture, so let's keep this DS-related! You'll see no poems here nor tales of teenage angst.
So as the "Quake, yeah" thread on gbadev.net is becoming kinda large I'm gonna try and see if I can move some of the status update-like stuff here and keep the (development) requests for help in that thread.
For those who don't know I'm in the middle of porting Id Software's Quake to the Nintendo DS hand-held system. I've also started testing the technical viability of doing Quake 2, but that's still at the early stages. And yeah, there's another guy doing a port of Quake 1 (John Gillotte) and no, I'm not him. Development of that version seems to have been quiet for some time (and so people seem to have given up waiting) but I've been assured by him that work still progresses... I however intend to get a version out within just a couple of months for you people to play with!
Quake 1
I've been doing the port for this on-and-off since late October and the game looks quite doable on the DS, even though it was never geared for this sort of hardware!
The situation:
- the original game required somewhere between ten and twelve megabytes of RAM, including the loading the program into memory. The DS has four megabytes of general-purpose memory - not cool.
- the original game was software-rendered, something which requires a decent amount of computational power, something the DS doesn't have. It also required a math co-processor. Something the DS doesn't have :-)
- the DS does however have special hardware which can do 3D graphics with a low overhead, so that's definitely a good thing!
- the DS has a wireles interface built right into it, so this game would be awesome to play on the go against fellow DS owners.
The score, so far:
- the game runs like a flat slug when using the software renderer, partly due to the lack of the FPU. It is however still playable. Hell I played through it at this speed when it came out on the Amiga! Ah, what a Christmas that was...
- the game sorta fits into memory, although I could really do with just one more megabyte of RAM... Some levels are currently too big to load with texture and light maps, so have to be plain shaded.
- networking works, although I recently removed it to free up some RAM. It will be back though. Compatibility with stock PC versions isn't guaranteed though. A custom build may be necessary.
- there's no sound. Might be quite easy to do though. Although I've never ever programmed sound before... Low on the list of things to do.
- works with either the shareware or registered pak files. Well I'm guessing here anyway! At the moment you can use the same pak files as normal PC-versions (I'm using the files from the Amiga version), but I may later post-process the the textures to make them more DS-friendly. I can either have the console do this every time you load a level or just once, on the PC. I'll have to write a tool if I choose to do that.
- I recently started to use the 3D hardware in order to render the brush models (the world, ammo boxes etc) and the alias models (the enemies, weapons etc) and I'm stunned at just how fast it is. I've not yet done *any* optimisation but it really does fly! Plugging in hardware-accelerated polygon rendering was a breeze. I was seriously expecting a fight! Everything else has been so far :-s
- I've not yet decided how to do the lighting as the hardware doesn't support multi-texturing as far as I know. Got some ideas in the works though :-)
Quake 2:
The 'sequel' to Quake 1 requires a whole lot more of the system than the first version did, but I'm still determined to bring this to the DS homebrew crowd!
RAM usage for this title is simply cringe-worthy - I can't believe that it runs on the N64! After building the basic version of the source the executable required over nine megs of RAM (I had to change the linker script just to get it to link!). And that's before loading any of the 30+ MB of models, maps, textures, sounds, lightmaps!
So I took this source ran it on the PC, slowly reducing the memory usage but still ensuring that all the demos played ok until the executable was small enough to fit into the DS' 4MB. So yeah, Quake 2 runs (ok) on the DS, as long as you're looking at the menu screen! The good thing to know is that if the model data were there there'd be no problem rendering it - I wouldn't have to find yet more memory for the framebuffer, Z-buffer, rendering surfaces etc.
What's gonna have to happen if you wanna see Q2 for the DS is for someone to get me a card for the DS which has extra memory! I'm talking about something like a Supercard or an M3. With one of these I'm very confident that I'll be able to bring Quake 2 to the DS, but I'll also bet money that Q2 *will not run* without extra memory.
In order to buy one of these cards I'm taking DONATIONS.
Come on folks, I can't do it without you!
To summarise:
You'll be seeing Quake 1 on your Nintendo DS within a couple of short months.
You'll be seeing Quake 2 on your Nintendo DS (and memory extension) a number of months after that.
I'll be posting some new pictures and videos (ie not the ones from the gbadev thread) once my DS gets repaired...
Quadword to yo mamma
PS: I don't work for Id Software and all of the credit for these two games should go to them. I'm just doing these ports for fun and no commerical gain. You'll also require a homebrew-capable DS, ie an off-the-shelf DS won't run this without modification.
Subscribe to:
Post Comments (Atom)
1 comment:
Hey there Simon ;),
I was wondering, can't you also use the RAM on carts like the supercard. This would be a lot of work probably but it might help you a lot (or give you more problems then it's worth). Anyhow, great job on picking up such a cool project!
Scorpei
Post a Comment