• Welcome to SCdev.org. Please log in.

Welcome to the new SCdev forums!

DS Quake

Started by DeVS, June 07, 2006, 11:03:22 AM

Previous topic - Next topic

DeVS

Sweet! Will be awsome once he is able to get online working!


QuoteJohn Gillote:

Hi and welcome everyone,

Back during the last two weeks of January I started working on a port of Quake for the Nintendo DS. Progress was slow at first because a lot of the code had to be reworked and from the inherent hardware limitations of the DS. However in the two weeks I worked on it I did get pretty far and it is playable. Unfortunately I have quite a bit on my plate and I had all of the intensions of getting back to work on DSQuake but I haven't yet and it has been sitting on my computer for months now.

So what is working? Well it’s playable like I said with decent frame rates 20-30fps. No sound and no net code yet. No textures yet either but I did manage to color the triangles appropriately by peeking into the textures and using that for a temporary basis. Also the controls are basically the same as the Metroid Prime Hunters game for the DS.

Initially I had wanted to finish the entire port my self and post it for everyone to play but today I changed my mind because the project is simply not progressing at the rate I wanted. So in the interest of playing one of the greatest games ever made on one of the greatest consoles ever made I'm looking for a few clever programmers to help the cause.

So if you have an intimate knowledge of the Quake engine and/or know how to program graphics, sound or net code for the Nintendo DS and you want to help out Email me at DSQuake@gmail.com . Sorry I’m not looking for amateurs as this project will take experienced people.


http://dsquake.blogspot.com/

Video of this port in action is on our newspage here: http://www.scdev.org/index.php
Laugh Hard, It's A Long Ways To The Bank

bitblt

Quote from: "DeVS"Sweet! Will be awsome once he is able to get online working!

This is awesome news indeed.  Just imagine homebrew DS Quake servers.  Also, many people don't realize that Half-Life and Hexen II are both built on the Quake engine, not the Quake II engine.  I hope texture mapping and sound doesn't slow things down too much.

socket

I agree... porting the Quake engine with net support will be a huge step in DS homebrew.

jamtaru

Quote from: "bitblt"

This is awesome news indeed.  Just imagine homebrew DS Quake servers.  Also, many people don't realize that Half-Life and Hexen II are both built on the Quake engine, not the Quake II engine.  I hope texture mapping and sound doesn't slow things down too much.

Half-Life actually did run on a modified Quake 2 engine


MasterMan

Net suport can be left for future versions, i'd love mods suport!
The Ascession of Vigil x)~
img]http://img510.imageshack.us/img510/3610/siggcncg7.jpg[/img]


[=[__]=] DS Black (JAP) : FlashMe v6 : PassMe 2
[+[__]::] SuperCard CF : 1 GB SanDisk CF + 128MB DaneElec CF

the_game

great news !!!!!!!

Tempest

Quake!?!  Netplay?!?  Oh how I look forward to playing Team Fortress on my DS.

onarum

I don't see it happening though, he was running without sound or textures and yet it seemed to slowdown some times(below 20fps imo) once you add textures then it will all go to hell hehe the ds just does not have enough memory.. only 4MB for textures is to low, if you think about the processors they should be more then enought, the main problem there is memory, I do think he'll get this to work but it will be to slow.
SC CF + 1GB Kingston CF + flashed NDS = a whole lot of fun.

Tempest

Quoteonly 4MB for textures is to low
I played quake beautifully with my 4mb 3dfx video card.  Ahhh those were the days.  I wonder if it even needed that much.

ratx

How much ram did you have in your PC though....

Payk

Hey HL wasnt canceled for Dreamcast...i have it with Blueshift on it...

754boy

Quote from: "Payk"Hey HL wasnt canceled for Dreamcast...i have it with Blueshift on it...

You got the backup version which was leaked onto the net. I have it too. The game was cancelled and NOT sold in stores.  8)

bitblt

Quote from: "onarum"I don't see it happening though, he was running without sound or textures and yet it seemed to slowdown some times(below 20fps imo) once you add textures then it will all go to hell hehe the ds just does not have enough memory.. only 4MB for textures is to low, if you think about the processors they should be more then enought, the main problem there is memory, I do think he'll get this to work but it will be to slow.

Perhaps they will reduce the original Quake textures with smaller less defined ones, like Doom for GBA.  Yes, don't expect DS Quake to look as good as GL Quake for PCs.  Still, it should look as good (or better) than Metroid Prime with some serious optimization.

Yackom

Hi,

I'm John, the one behind DSQuake. I'm trying to make my rounds but it's been a busy the last few days for me.

Quote from: "onarum"I don't see it happening though, he was running without sound or textures and yet it seemed to slowdown some times(below 20fps imo) once you add textures then it will all go to hell hehe the ds just does not have enough memory.. only 4MB for textures is to low, if you think about the processors they should be more then enought, the main problem there is memory, I do think he'll get this to work but it will be to slow.

Let me set a few things straight... I got quake to run by not taking the necessarily most optimized way for everything, in fact quite the contrary. It's quite the hack job at the moment. I did whatever it took to get it running, you know a proof of concept. People take the fact that it runs at 20-30fps to be a bad thing… No in fact it’s a great thing... None of the media was formatted to be friendly to the DS so there are a lot of converters in line to tie things together, most of which isn’t cached because there isn’t enough room to do it. To be honest I’m very impressed with the DS’s speed. To put things into perspective I was very happy with my earlier versions of DSQuake, with just game entities (monsters, guns, nails in the air ect) being drawn no brush models (walls, buttons, and most powerups) at about 5 frames per second. I easily quadrupled the speed with little optimization work. There are tons of things that can be done to speed things along.

Will the textures slow things down? Certainly not. The DS has dedicated texture memory which I have yet to touch. 384k of usable texture memory I believe is all I have to work with. That isn’t much at all, it’s going to take a decent amount of work to get things done right texture wise. I understand it’s a priority to have textures working, but I’m not worried about the ‘can it be done’ and all of the other negative takes on it. Metroid Hunters has much more sophisticated graphics, multitextures, tons of transparencies and probably a higher average poly count. Metroid runs great! The DS is more than capable of achieving 40+ average fps, and probably 50+ fps.

Will sound slow things down? No, only the arm7 processor has access to the sound. Which is currently running 0 code, just sitting there idling. I’ve read that it is a 33mhz processor, I’m not entirely sure about that number but it seems reasonable. I know the GBA had a 16.7mhz or there abouts processor which was more than capable of handing these things. So that will be dedicated to do the sound, probably the console, and draw any touch screen weapon selection that will be put in place.

How will I get the dynamic lighting working? I don’t know and at this point I don’t care how either, there are only a few ways to do it. Try them all and see which one works best and that’s that.

So what am I concerned with now? Well there are a lot of yet unanswered design questions. My main concern is the ram. 4 megs of ram is tough. In fact some levels still wont load because I need a few more 100k of ram or so, in particular the necropolis if I remember right that’s one of the heavier levels. Some people might find this contradictory as the necropolis is clearly in the demos video I posted, well that’s because when a demo is playing the quake virtual machine isn’t running, therefore freeing up on the order of 400k of ram, allowing for the level to load and the demo to play.  Using the supercards ram as external ram is very tempting but that too has limitations, not to mention am I going to want to impose that sort of hardware restrictions on people? Not really, what about the people of the other ramless solutions. I when first starting the project extracted all of the pak files and tried reading them in via the fat libs for the supercard sd. There were bugs in that somehow and I kept getting small errors in my read-ins, failed crcs and so on. So I had to move away from that early on, those might be fixed now but back in January it wasn’t working 100% to my satisfaction. I would be happy for someone to say that’s no longer the case.

Also to what extent do I want to change the media files, initially I wanted to leave it untouched. Currently I’m using an unmodified shareware pak file that I append to the bin. But its looking like that isn’t much of an option anymore. There are too much on the fly translations of the media is required. It’s a sizeable performance hit, so I’m probably going to have to make a sort of converter utility to make the models friendlier to the DS at the very least. The textures I want to have a few options, both unscaled and scaled depending on what’s on screen and how much free texture memory is available. The wall textures are pretty tiny so those won’t be too much of a problem I would think. However the character textures are pretty large and if there are a lot on screen at once I think it’s inevitable that they would need to be scaled down. But that’s not all incredibly bad news, take a look at this for example:



Here is an image file I made a while back when I was trying to test out how much scaling I could get away with. The ones on the left are the Shambler in all of its original majesty, with the original texture of 308x115 rendered with unfiltered texture options to simulate what it looked like in software rendering Quake and also what it would look like on the DS. On the right are the scaled down textures to 128x64. So the texture memory requirements for the one on the right are 4x less than that of the left. The ones on the left would require 32k and the ones on the right only 8k. So when you’re only working with 384k of texture ram 24k is a huge difference. I couldn’t imagine needing to scale it down any more than that and it doesn’t look too bad. I think in general it would be the size of the ones on the bottom and at that size you couldn’t tell much of a difference.

A little bit on the networking of it, well I haven’t done anything with the wifi on the ds yet. From what I can tell the people did an excellent job of making a lib for it, it shouldn’t be too hard to get networking working in Quake. For those who don’t know to play single player Quake the game connects its game client to its self with a loop back driver (which I had to rewrite) to the game server. So getting it to network with another server would be a very similar process. Also since this is a real port of Quake with its virtual machine and all you could connect to a PC game server and play people who are on pcs and DSes alike. Worth mentioning too is that game mods will run without any more modification to the Quake engine though like I said the media assets might need to run though a converter of some sorts.

I’ll probably post a very similar writeup on http://dsquake.blogspot.com/ soon.