PDA

View Full Version : QuakeDS release 3



simonjhall
October 27th, 2007, 13:07
Hi everybody

It's surprisingly one day short of a year ago now I messed around with the Quake source "just for a weekend" and decided to show my findings in this thread:
http://forum.gbadev.org/viewtopic.php?p=107263#107263
...however I didn't expect it to take this long to complete!

The game is now feature-complete, aside from ad-hoc wifi play (which is in the game but disabled) so I figure it's time to release it! I hope you enjoy it - it's taken an insane amount of work and the help of dozens of people to get here.

For full info, visit http://quake.drunkencoders.com

Notable changes:

* The game now supports the RAM available from certain slot-2 flash cards in order to obtain near-perfect compatibility with Quake mods and total conversions. Everything I've tried works correctly, however some mods overload the DS' GPU and stuff starts to disappear...
* Rendering performance has improved by ~30%
* In game performance has improved by ~20%
* All graphical effects are now drawn, included animated sprites (for explosions), and particles (eg for blood)
* 99% of texture maps are rendered correctly
* The sky box is now rendered correctly
* GUI corruption has been fixed
* Animated skins are now supported
* The on-screen keyboard has been improved
* Eight user-configurable quick-access touch buttons have been added
* Pen sensitivity has been fixed and view snap disabling a la GLQuake has been added
* QuakeC compatibility has been enhanced
* Command line (through qdsopts.txt) is now easier
* Sound corruption has been fixed
* Console corruption has been fixed
* Cut scenes and 'intervals' have been cleaned up
* 'freeing precaches' bugs have been fixed
* Improved support for the second Quake Mission Pack: Dissolution Of Eternity
...and too many other fixes to list

Downloads from here:
http://quake.drunkencoders.com/downloads_how_to_play.html

The slot-2 build (aka the EXRAM build) is not the silver bullet that many of you hoped it would be. The #1 issue is the poor performance of this memory - when overclocked, this memory seems to have 4-5x the latency of the already-slow internal DS memory and this will of course slow down the game. I've spent many months hiding this latency, but you can still see it on some heavy levels. Quake's random access patterns to memory don't help, neither does the size of the data cache.
Also when using this build I would *highly* recommend using a slot-1 card in conjunction with it where you keep your data files (make sure you patch it with your slot-1 DLDI driver). To know more about the EXRAM build please see http://quake.drunkencoders.com/exram.html
If you're too lazy to read it, don't forget that you can hold 'R' during startup to force detection of your flash card and overclock your RAM :-)

Anyway, a big thanks go out to all the people who have given me technical help, tested the game, donated money, donated hardware or just general support :-D

Legal: I take no credit for the development of Quake, that all goes to the guys at id Software. I also claim no copyright, trademark etc. Again, all work, copyrights, trademarks are owned by them.

Simon

BTW: A lot of my hardware disintegrated in the last month or so. Gonna need donations of new stuff if I'm gonna finish the ad-hoc build... :thumbup:

Example config file in the downloads section or at available at:
http://quake.drunkencoders.com/downloads/config.cfg

Download and Give Feedback Via Comments

slaanesh
October 27th, 2007, 14:27
Just tried it. Absolutely awesome! I'm amazed at how good this has turned out.

souLLy
October 27th, 2007, 15:44
Just tried it. Absolutely awesome! I'm amazed at how good this has turned out.

x2, this is awesome. Great, great stuff Simonjhall :D

XDelusion
October 27th, 2007, 16:18
So the RAM on the EZ 3 in 1 does infact work for games like this. I can't tell you how many people told me it would be impossible to use such devices to give extra RAM to games such as this. Yet here we are with a game that supports it no doubt...

...maybe not perfect, but it's working to a degree and should be effective on some less intensive games or apps I would think.

Great work! I'm still trying to find double jump, but outside of that I'm perfectly pleased!

Oh ya, Barrel explosions no longer explode, but that's no biggy. :)

iso jussi
October 27th, 2007, 18:33
Can anyone tell me if this works correctly on M3 CF?

I have heard that the DLDi file of M3 CF on DLDIwiki "fails read aligment test". Could I play this not even patching the file? Or would it work by patching it with eg. Gba Movie Player's DLDI file?

Sir_Voe
October 27th, 2007, 19:45
Yay, bloody giblets! :thumbup:
This is a shining example of great DS development IMO. Thanks for sticking with it Simon:D .

mr game porter
October 27th, 2007, 22:53
WTF?? the last version worked perfectly on my g6real 2 gb, but this one doesent, it starts, then i shows the black screen with white text. but it just say: fat_initialasing....and that's it nothing more!

XDelusion
October 27th, 2007, 23:43
Aghh, got touch screen going thanks to the info on the Quake DS page! Wonderful!

RamZee
October 27th, 2007, 23:50
First the good news, nice inprovements and it's good to see this 3rd release (adhoc is what I'm still waiting for).

Now the bad.
The plain quakeds_271007 build can't run on my M3 Simply (should be the fastest version?) with my M3 Lite plugged in even though it shouldn't be using it?

...
Init ARM7...done
ARM7 is initialised
Host_Init, memory base at 0x021050c0
2.9 megs of memory available 15.66 kb free, 21.00 kb needed not enough memory for info section!
If I unplug the M3 Lite it runs fine as does quakeds_exram_271007 with it in (using the shareware pak file).

It's a worthy update, I'm just disappointed that it didn't work first time for me like the previous versions.

Edit: I've found that if I hold L (bypasses qdsopts.txt) as quakeDS loads the plain build will run with the M3 Lite plugged in. The chance to press L happens so quickly you need to know what's coming next when you load the game. Is there anyway round this?

sethsez
October 28th, 2007, 00:52
view snap disabling a la GLQuake has been added

This is the one feature I was hoping would be added, and sure enough, here it is!

This is a fantastic port and you've done an amazing job getting it to this point. Thanks so much for this! :)

Sigma83
October 28th, 2007, 01:35
This is absolutely amazing! I dunno how u managed to make this work with such a small amount of ram available but major props on the job well done. IDSoftware should hire u :). I'm running it on my Supercard DS One and so far no bugs. I didn't even realize you incorporated the touch screen till I read the gameplay instructions...double wow!. I plugged my ds audio out into surround system to appreciate the quality work on the sound as well, sounds fantastic.

This is one lucky ds community to have such quality coders working on these quality apps :).

simonjhall
October 28th, 2007, 12:14
@RamZee, you say that holding down L makes the game not give you a RAM warning. What exactly is in the qdsopts.txt file?

iso jussi
October 28th, 2007, 13:17
Simon, Can you tell me if this works correctly on M3 CF?

I have heard that the DLDi file of M3 CF on DLDIwiki "fails read aligment test". Could I play this not even patching the file? Or would it work by patching it with eg. Gba Movie Player's DLDI file?

simonjhall
October 28th, 2007, 13:32
I have no idea about the CF but it works fine on the SD :-)
Does your card support auto-patching? If not, you must patch it with something which you know works. Does homebrew work for you on this card? It should hopefully just be fine!
Dunno if it will work with the gbamp dldi. However I did develop large chunks of the game with both the gbamp and m3 simply, so they're the best cards to have :-)

mikeb
October 28th, 2007, 16:32
Nice i been waiting but i think level 2 or level 3 has slow down during the end is this normal?BTW im using a r4ds and ez flash 3in1.

simonjhall
October 28th, 2007, 16:39
Are you using the exram build? Don't use it unless you need it. And yes, there's plenty of slowdown in the game!
One of the disadvantages of not being able to get designers to make levels that fit the hardware...

mikeb
October 28th, 2007, 17:32
what do you mean unless i need to?

simonjhall
October 28th, 2007, 19:22
Have you had a read of http://quake.drunkencoders.com/exram.html
It tells you all about the differences. Basically if you're just going to play regular Quake, use the normal build. That build has been finely tuned to play it as best as possible and the exram one is just for when you wanna play big mods and total conversions.
The RAM in your slot-2 card is very slow, and this is what's killing your framerate.

iso jussi
October 28th, 2007, 21:05
Simon, with the dldi file of m3 cf I have had problems (eg. lameboy doesn't work), but that's cause it's known to have problems (which you might already know) but the prerelease 2 worked on my card even though the file was patched to GBAMP.
I remember someone on this same forum, with the same card, M3 CF, had "freeing precaches" error but someone (might have been you) sent a fixed QuakeDS file on the thread, which was the file I used, the GBAMP-patched one.

It worked/works as good as it's supposed to, so I wonder if I can just patch it to GBAMP again to make it work.


I hope you won't misunderstand this question as it's not very clear.



After all, maybe I should just give it a try before coming here to ask this kind of things, but I'm pretty careful with my M3 after I broke my GBAMP caused by my own stupidity.

mikeb
October 28th, 2007, 22:52
oh ok thanks :) can u name some good mods (not links to them)

Hyrule_boy
October 28th, 2007, 23:22
This is just beyond awesome! you sir, did a job ID Software can be amazed off!

RamZee
October 28th, 2007, 23:46
@RamZee, you say that holding down L makes the game not give you a RAM warning. What exactly is in the qdsopts.txt file?
There wasn't one and creating an empty qdsopts.txt (using notepad) in the root of the M3 Simply didn't change anything.

My hardware:
European DS Lite (Flashme_noauto v8a)
M3 Simply (Firmware 1.07)
M3 Lite (Firmware e35)
both with 2GB (FAT32) Kingston micro SDs)

Software:
QuakeDS.nds, 536KB, 27-10-07, 11:11 (quakeds_271007_r3.zip)
DLDI: R4tf.dldi (patched using dlditool32.exe)

I'm going to format my microSD (also trying FAT16) just to make sure the file system hasn't become corrupted in someway and update this post if I find any change (but it would be strange if that was it as it works with the M3 Lite unplugged).

Echo1
October 29th, 2007, 01:31
I'm impressed with both builds. Excellent work.:)

kevintrooper
October 29th, 2007, 02:36
How exactly do i make it work on R4? i cant get it to work:confused: :confused: :confused: :( :( :(

ekolimits
October 29th, 2007, 03:06
hey, great app!!!
anyone up for a game online? I tried to do local play and it worked, i want to try online.

Tripsk8er333
October 29th, 2007, 06:34
Hey Simon,


Great work man! This is a "Must Have for the DS"

Also I like the WIFI It is GREAT

People From Other Sites Are Praising You Man!

KEEP IT UP MAN :thumbup:

Sin-07
October 29th, 2007, 09:56
Great work Simon! :thumbup:

....but Malice wont work for me. I´m to stupid, and my english is not so good. Can you upload a quake malice booter, pleaase.

Or a step by step instruction for dummies:)

simonjhall
October 29th, 2007, 10:14
Here's one I made earlier :-)
http://forum.gbadev.org/viewtopic.php?p=144042#144042
You'll need the exram build for this. I can do it even more step-by-steppy if you like...

kevintrooper
October 29th, 2007, 15:59
someone help me plz! i patched the file but it still says slot one FAT something!

Sigma83
October 30th, 2007, 01:17
heh, this was amazing to play on the bus today. Finished up part 1 of quake. Made my day :).

simonjhall
October 30th, 2007, 08:54
@kevin, you read the instructions, right? I even have a youtube video on the page showing you how to do it.
http://quake.drunkencoders.com/downloads_how_to_play.html#How_to_play

@sigma, LOL: I'm glad people are playing it! That's awesome.

iso jussi
October 30th, 2007, 14:17
Simon, with the dldi file of m3 cf I have had problems (eg. lameboy doesn't work), but that's cause it's known to have problems (which you might already know) but the prerelease 2 worked on my card even though the file was patched to GBAMP.
I remember someone on this same forum, with the same card, M3 CF, had "freeing precaches" error but someone (might have been you) sent a fixed QuakeDS file on the thread, which was the file I used, the GBAMP-patched one.

It worked/works as good as it's supposed to, so I wonder if I can just patch it to GBAMP again to make it work.


I hope you won't misunderstand this question as it's not very clear.



After all, maybe I should just give it a try before coming here to ask this kind of things, but I'm pretty careful with my M3 after I broke my GBAMP caused by my own stupidity.

simonjhall
October 30th, 2007, 14:22
Oops, sorry - I completely forgot to reply to you!
Yes I'd imagine that if the game played before with the gbamp one then I'm 95% sure that it'll work again with whatever you did. There's nothing that's changed with respect to how files are done. Although saving and loading are now more compatible (so even if you do have a dldi driver that doesn't do unaligned data it should still be kewl).

Let me know how you get on!

EDIT: freeing precache problems should have gone now. That was a pretty weird bug which struck only a handful of DS', for no good reason. Although there does seem to be a problem with file access on a few people's kits which is causing some kind of out-of-RAM problem. I'll be looking at that hopefully this weekend.

kevintrooper
October 30th, 2007, 15:40
wat? i need to own quake? :( were can i buy it? ebay!

SweetFA
October 30th, 2007, 20:55
wat? i need to own quake? :( were can i buy it? ebay!

Download the shareware version from the fella's website.

Once you've finished that you can buy the full one off ebay.

kevintrooper
October 30th, 2007, 22:49
hey i dont need both right?!?!

EDIT: because its quake, so will you make a 1 player game? plz :|

iso jussi
October 31st, 2007, 20:30
I'm about to give it a shot, but I would like to know if my old save & config file work with this new build?

MasterMan
October 31st, 2007, 22:32
I'm about to give it a shot, but I would like to know if my old save & config file work with this new build?

My pre2 save works like a charm with pre3.
SCCF here.

simonjhall
October 31st, 2007, 22:36
Yep. If you've not used the pre2a wifi build before then you won't have the osk set up.
To set this up (so you can enter text in the console and use the touch buttons), either add a line binding it in the config file (the command is listed on the web page) or just go to the control customisation section of the game menu and bind the button.

Sigma83
November 1st, 2007, 01:08
Just thought I'd make a quick comment about the gameplay in world 2 of quake 1. There's a couple points in the game which chug at a rate of roughly 1 frame every 3-4 seconds. Not sure if it can be avoided but just thought I'd mention it. This is using the slot1 build which doesn't use the extra ram pack.

Most of the time you can wait it out by just holding run and waiting to get past the bad spot on the map. Takes a while though.

Cheers!

iso jussi
November 1st, 2007, 08:51
It worked well, if we do not count a little lagg.
Thanks. It was patched for GBAMP.

iso jussi
November 16th, 2007, 17:48
Is it possible to set the backround music to play some mp3 songs of my own? I `would be cool.

And if it is, I would like to know how.

sukhi-2006
November 20th, 2007, 04:06
This game rocks on ds and it became superb great work.

sukhi-2006
November 20th, 2007, 04:14
does it only use quake 1 pak files, can it play any other pak files if yes which ones.

Da_ALC
November 20th, 2007, 10:26
Ah fro gods sake read back a bit.

superduffman2
April 14th, 2008, 18:31
Hoping someone can point me in the right direction..

Im trying to compile the QuakeDS source v271007. have devkitPro installed & devkitARM v21 (I using v21 because of another proj) & am getting this error when trying to build from a dos prompt.



D:\Temp\quakeds_source_271007>make
arm-eabi-g++ -o /squake/ds_main.o -c ds_main.c -mthumb -fno-instrument-functions
make: arm-eabi-g++: Command not found
make: *** [/squake/ds_main.o] Error 127

D:\Temp\quakeds_source_271007>make build_debug
#@-mkdir debugarm \
# debugarm/bin \
# debugarm/glquake \
# debugarm/squake \
# debugarm/unixded \
# debugarm/x11
make targets BUILDDIR=debugarm CFLAGS="-Dstricmp=strcasecmp -I
"c:/devkitPro/libnds/include" -I "c:/devkitPro/libnds/include/nds"
-DARM9 -mthumb-interwork -fno-rtti -fno-exceptions -Os -g
-mtune=arm9 -finline-functions -fweb -frename-registers "
make[1]: Entering directory `/d/Temp/quakeds_source_271007'
arm-eabi-g++ -Dstricmp=strcasecmp -I c:/devkitPro/libnds/include -I c:/devkitPr
o/libnds/include/nds -DARM9
-mthumb-interwork -fno-rtti
-fno-exceptions -Os -g -
mtune=arm9 -finline-functions -fweb -frename-registers -o debugarm/squake/ds_ma
in.o -c ds_main.c -mthumb -fno-instrument-functions
make[1]: arm-eabi-g++: Command not found
make[1]: *** [debugarm/squake/ds_main.o] Error 127
make[1]: Leaving directory `/d/Temp/quakeds_source_271007'
make: *** [build_debug] Error 2



Im guessing, how would I make the object file "ds_main.o"?

simonjhall
April 14th, 2008, 19:31
Problems you may encounter
a) the makefile's geared for cygwin, so you'll get better results building it with that
b) you need the DKA compilers and tools etc in your path, hence you getting the error about arm-eabi-g++ not being found
c) that version doesn't build with r21 of libnds, it needs r20. My WIP stuff works with r21, though.

Why are you trying to compile it, anyway?

superduffman2
April 14th, 2008, 20:21
Im doing some university research into DS Wifi.. ad-hoc & so on.
So just wanting to see what your code is like(really good port)

a)Check!(got)
b)DKA/tools?
c)Can I install the two versions on one machine?.. WIP?

Big Thanks.

simonjhall
April 14th, 2008, 20:28
You wanna use my code cos you think it's an example of good code?!! You picked the wrong project my friend :rofl:
Seriously, the original code is not nice code plus my hackery to make it work is bad code. Finally all the original code that I added was written using the above two 'styles'. Avoid like the plague! Why do you think I've not touched the game in months?

Anyway :p

DKA = devkitarm. The tools are things like ndstool and dlditool. Nothing too extravagant.

different libnds: sure, just modify the makefile where you see references to -I and the includes for the libnds stuff to point at where you've got the r20 includes. Never tried this myself, but it should work.

Apologies for the build system btw, it's basically a hacked SVGA Linux Quake makefile (hence the target being named squake.elf). With Q2 I wrote it from scratch because I hated the makefile for the original game!

superduffman2
April 14th, 2008, 20:37
I said good port... I'll still have to see about the code ;)

Ok, I know bit about make file/devkitarm stuff.

Going to give it a blast now :D

simonjhall
April 14th, 2008, 20:39
I said good port... I'll still have to see about the code ;)Whew, that's a relief!

Pandonetho
April 15th, 2008, 01:33
Where do I get the wad for this?

simonjhall
April 15th, 2008, 08:49
Ugh. Buy the game. Download the demo from the id site. It's all on the web page - make sure you read it!

PS: Quake doesn't take wads, it takes paks.

thedicemaster
April 21st, 2008, 19:58
works great, but i have a small problem with the exram version(problem in both versions AND Q2DS, but most problematic in Q2DS and QDS exram)

i have an M3 real with rumble-ram pack
it DOES work, however only if i do the following:
remove the rumble-ram before starting the game, and putting it back between the game actually starting with loading, and the ram being checked.

if i don't do this the game will try to use the rumble part of the card as ram or something.

it freezes the loading, and will cause a constant rumbling.(loading freezes with as last the "fat init" text in the display)


if i do the removing/reinserting like mentioned above it works, but that really makes a game out of loading.

note that this is not the only homebrew that creates uncontrollable rumbling with my rumble-ram

simonjhall
April 21st, 2008, 21:12
What happens if you force detection to a certain type of RAM card?
The M3 Real RAM pack is unsupported, so YMMV with this card. I can only support it once someone buys me one! Slot-2 RAM is a seriously fine art...

thedicemaster
April 21st, 2008, 21:29
i just checked.
it appears the problem occurs when the game is checking on what storage device it's data is located.

it asks the rumble/ram if it got files on it's file storage space(which it doesn't have) so it responds with rumbling, which the game reads as "no response" so it keeps waiting.

the RAM is 100% supported in auto-detect.

i'll just have to startup without ram, and use R to enter the ram selection screen, where i insert the rampack.

it works fine that way, but it's annoying if i forget to do it.

EDIT:just checked quake2DS and there i get a guru error(with the debugging version i found in a different topic i see a DS_abort() error)

simonjhall
April 21st, 2008, 23:05
Ok, let me get this straight
a) regular Q1 works fine?
b) exram Q1 hangs up on the fat init?
c) Q2...does what on fat init?
d) other homebrew does this too?

This is very odd!

thedicemaster
April 22nd, 2008, 09:58
like this:
1 all quakeDS versions(1 and 2) hang at fat init and cause constant rumbling if i have the rumble-ram inserted on the "fat init" stage of loading.

2 if i insert the rumble-ram after fat init all work fine, except quake2DS which generates a guru error.

3 some other homebrews have the rumble bug too.

a good homebrew to look at if you wish to fix the rumble bug is probably DSlinux www.dslinux.org which has good RAM support, file management, and no rumble bug.

but i think the only way to fix it is by making a version without slot2 filestorage support.

simonjhall
April 22nd, 2008, 11:01
I'm gonna bet money that it's a dldi problem. That line where it has problems at the "fat init" line is literally where I start up the dldi system - nothing fancy. RAM has no been initialised by the point so I'm gonna point my finger squarely at dldi!

Danief
April 26th, 2008, 19:30
sorry to bump this post... but i just have to tell you how awesome this is! i just barely got around to doing it, and you ARE THE MAN!

thedicemaster
April 26th, 2008, 19:46
ram/rumble problems will no longer be an issue for me.

my rumble-ram died.
going to replace it with an ez-flash 3 in 1.
i believe with that one it's impossible to get this problem, since from what i understand at any given time it's either ram, gba-storage or rumble depending on your settings.
and not like the M3 rumble-ram which is rumble and ram at the same time

Danief
April 26th, 2008, 21:07
any chance of wifi ever hitting this game? :D

souLLy
April 27th, 2008, 00:17
I've said it a few times before but this is an awesome port and it's definitely the smoothest version so far, well done mate :)
That said... I have found a problem and it's almost certainly a ram issue- on the wind tunnels level on the standard ram version there are parts that grind to a couple of fps at certain parts (just noticed trying to load the level again from a save that it won't load from that save now too, it hangs when loading)

simonjhall
April 27th, 2008, 01:59
Yeah RAM problems accidently crept back into this version - something that I should be able to address with devkitARM r22 if I get the time.
And a wifi build is available from the web page...look for it! No adhoc though. If someone writes a sound adhoc library I'll use it.

masterchief929
April 27th, 2008, 03:45
lol, still posting in an old, but very good thread.

evilzippy
April 28th, 2008, 01:16
hey has anyone managed to mess around and get a bot to work either DM or co op ive tryed a few but no previal issue with editing cfg file to execute the bot 8((( any help would make me quakey happy while on lunch at work 8) also help me stop smoking again lol

Danief
April 28th, 2008, 02:53
Yeah RAM problems accidently crept back into this version - something that I should be able to address with devkitARM r22 if I get the time.
And a wifi build is available from the web page...look for it! No adhoc though. If someone writes a sound adhoc library I'll use it.

how would i install it?

and, in the next version your controls should be saved. when you hit save. i have to re apply them every time.

simonjhall
April 28th, 2008, 10:20
If it doesn't save when you press save then there's something wrong with the dldi driver, not my code I'm afraid!

evilzippy
April 28th, 2008, 14:31
simon have you been able to get any bots to work with your work

simonjhall
April 28th, 2008, 15:01
Yes it was designed to be able to play mods and total conversions and someone even released a DS-specific pack that included bots. Rocket arena or something?

evilzippy
April 29th, 2008, 00:51
will look it up thanks

Danief
April 29th, 2008, 06:52
is there a guide anywhere to help me set up the online mode?

simonjhall
April 29th, 2008, 08:50
There's a bit about it on the web page.
http://quake.drunkencoders.com/net_mods_tcs.html#Networking

Danief
April 29th, 2008, 14:14
holy smokes i wish i knew what any of that meant.