gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS homebrew announcements > QuakeDS pre-release 1

#118963 - simonjhall - Sun Feb 18, 2007 5:42 pm

I'm *finally* nearing the end of this project!
The game isn't yet feature-complete, so I'm not calling this a proper release. As a result, I don't want to get messages like "OMG, teh m0nsterz are p!nk" etc. I'd just like to know what everybody thinks of where's it's at.
This would be a good time to discuss where it's also going - how do you find the controls? What would you like to see on the bottom screen? And again, I don't want to hear about the framerate - I'm still working on the VM and model rendering performance.

So, enough chat: http://quake.drunkencoders.com/

And to reiterate: I haven't developed this game, I've just wiggled the code just enough to make it run on the Nintendo DS. I don't work for either id or Nintendo, and id owns all the IP etc.

Please go easy on my baby :-)
_________________
Big thanks to everyone who donated for Quake2

#118965 - Mr. Picklesworth - Sun Feb 18, 2007 6:14 pm

The monsters are pink?

Just kidding. Downloading now, will edit this with anything I find. (Just had to get first post :p)

It's really generous that you're letting us know what is going on with your heroic port here.

(Finding Quake now... I should have prepared for this!)
_________________
Thanks!
MKDS Friend Code: 511165-679586
MP:H Friend Code: 2105 2377 6896


Last edited by Mr. Picklesworth on Sun Feb 18, 2007 6:44 pm; edited 4 times in total

#118966 - Optihut - Sun Feb 18, 2007 6:16 pm

Cool, thanks.

simonjhall wrote:
As a result, I don't want to get messages like "OMG, teh m0nsterz are p!nk" etc. I'd just like to know what everybody thinks of where's it's at.


Oh, with a disclaimer like that, this is exactly what you will get, though :P

#118968 - Miika - Sun Feb 18, 2007 6:42 pm

Oh yes!!! What a wonderful feeling seeing actual *QUAKE* running on
my very DS lite! Although it's quite buggy, it is totally enjoyable, you have done SO fantastic work simonjhall! Miika salutes you.
I will record a video of this and put on Youtube later ;)
P.S. jumping was quite hell hard while doing other stuff.
EDIT: Here is the video: http://www.youtube.com/watch?v=nNIKneo11o4


Last edited by Miika on Tue Feb 20, 2007 11:45 pm; edited 2 times in total

#118973 - Spike - Sun Feb 18, 2007 7:30 pm

Well Done Simon. Serious speed increase from the last build I tested.
DLDI patching works well on Supercard SD.
load times are pretty swift.
Nice to the see the textures up and running :)
Sound is clean, great to hear them dogs howl
Superb work.

I agree with Miika regarding jumping. The Metroid Prime Hunters jump mechanic was a double tap on the touch pad. I don't whether this is "do-able"?

#118974 - basilb - Sun Feb 18, 2007 7:33 pm

thank you for releasing this publicly
_________________
-
BOOm BOOm

#118975 - dada971 - Sun Feb 18, 2007 7:48 pm

I tested it on my CycloDS / Ewin2 Lite / M3 Lite Pro and my G6 Lite .
It no run in my CycloDS and my Ewin2 Lite !

#118976 - Lazy1 - Sun Feb 18, 2007 8:37 pm

Amazing work!
I wasn't expecting it to play that smoothly, very surprised.

What I noticed:

Gameplay seems faster than normal quake, like jumping for example.
DPAD does not strafe left and right.

Other than that, good release :)

#118980 - Mr. Picklesworth - Sun Feb 18, 2007 8:54 pm

It's better than I thought!

I haven't found any bugs so far (besides the obvious missing textures at the moment, but those aren't really bugs).
It's running beautifully without any crashing whatsoever on my Supercard CF :)

The frame rate sometimes goes down noticeably when I first bump into a large cluster of enemies, but it goes back up later on. There was one chunk where the framerate did die to the point of unplayability, and I'm thinking it was because of piles of enemies; the actual level was running fine beforehand, but once the enemies were spawned (I'm assuming they were spawned after me entering the level) it never seemed to return because I couldn't kill them due to slaughtered frame rates.

I, for one, don't mind the lack of music, by the way. The game has enough sound as is, so unless you yourself really want it, may as well leave it until last.

I guess I can get lefty controls by editing config.cfg. You could probably record a double stylus tap just like the other button presses to appeal to those Metroid players.

I've noticed that guns held by the player will poke through objects. Doesn't Quake have some kind of z-order stuff to deal with that?

One other thing: This is loading faster than DoomDS :b


Edit:
Err... some weird castle place killed my frame rate as well.
_________________
Thanks!
MKDS Friend Code: 511165-679586
MP:H Friend Code: 2105 2377 6896

#118981 - simonjhall - Sun Feb 18, 2007 9:04 pm

Lazy1 wrote:
DPAD does not strafe left and right
Err...what?!
What does left and right do then? Or doesn't it do anything at all?
What card do you have? I've had some IPC issues with my M3 Simply - what card do you have?

Quote:
It no run in my CycloDS and my Ewin2 Lite !
Does libfat/DLDI homebrew normally work on this hardware for you?

Quote:
DLDI patching works well on Supercard SD.
Yeah, we had a lot of trouble with your Supercard, didn't we? :-)
Jumping by tapping shouldn't be too hard. I've just not coded it yet as the framerate isn't consistent, so tapping might be unresponsive.

Oh and this was gonna be a demo-only release but Dood77 managed to convince me otherwise :-)

I also realise that some single levels or combinations of levels don't load (and you get something like MAX_MOD_KNOWN). Basically I've rarely played through more than a few levels per sitting so I hardly ever see these errors!

Quote:
I guess I can get lefty controls by editing config.cfg.
Maybe... The best way to do this would be to adjust the source though. I'll put a lefty (I'm a lefty) switch in a later version if you like.

Quote:
I've noticed that guns held by the player will poke through objects. Doesn't Quake have some kind of z-order stuff to deal with that?
It does fancy Z-sorting with the BSP trees, but the actual model rendering requires you to get the Z right yourself. As you can see clipping gets completely messed when models are close to the camera - esp the weapon. It'll get fixed :-)
You're also right about the spawning of the bad guys. They can really make it churn... If you pause the game when it gets to one of these really slow bits you'll see how much impact the VM has because the framerate will suddenly shoot right up!
_________________
Big thanks to everyone who donated for Quake2

#118985 - yackom - Sun Feb 18, 2007 9:57 pm

Hi Simon, I thought we were going to do a simultaneous release today and announce a merging a projects?

I'm quite puzzled by all of this.

#118987 - ChuckMcB - Sun Feb 18, 2007 11:17 pm

Working well on my DS-Xtreme as well.

Chuck
_________________
http://www.ds-xtra.com
DS Homebrew Videos


Last edited by ChuckMcB on Sun Feb 18, 2007 11:49 pm; edited 1 time in total

#118988 - simonjhall - Sun Feb 18, 2007 11:42 pm

yackom wrote:
Hi Simon, I thought we were going to do a simultaneous release today and announce a merging a projects?
I've been basically waiting for you to do yours before mentioning the real reason as to why this game's been opened up! (still in two minds about it though)
_________________
Big thanks to everyone who donated for Quake2

#118989 - bear - Sun Feb 18, 2007 11:42 pm

Just tested on my supercard CF, worked fine without dldi patching!

Seems like the near clipping plane being to far away or something else causing parts of the geometry not getting rendered if you get your view too close (for example standing next to a wall looking sideway, or up/down). I experienced some problems walking up the slope from the water early in e1m2. Walking straightforward did nothing but if I wiggled around a little I could walk up. Also got some screeching noise in e1m2 byt the spike shooters along with some really weird texture behavior on the wall and fllor in the same area.

It's really great to see Quake on the DS in any case and I just hope you have a go at fixing most of the remaining problems before moving on to q2.

Great job!

#118991 - simonjhall - Sun Feb 18, 2007 11:50 pm

I forgot to mention that stuck-on-a-slope thing (thanks bear).
That's a by-product of me moving large chunks of the physics code from slow floating-point to (32-bit) fixed-point arithmetic. As it happens quite infrequently I decided to take the occasional stickiness route (heh) over the going-to-64-bit route.
Changing the size of one of many of the fundamental datatypes in the game is a bit of an issue, but I'll try and see what I can do about this problem (but still stay in 32-bits).

In the meantime, if you get stuck when slowly walking up a slope, jump a bit!
_________________
Big thanks to everyone who donated for Quake2

#118992 - xtoc - Sun Feb 18, 2007 11:54 pm

Nice work!
dit not do the DLDI patching, just copy you binary with my pak0 file


Everything works fine , even strafen works without any problem

The only thing as comment : the game runs to fast

i use a supercard sd

greetz

#118993 - Tockit - Sun Feb 18, 2007 11:58 pm

well done, sir. I commend you.

I got this to work nicely with my ds-x, but I haven't yet checked on my m3. I'm sure it's fine. :)

so what about the extra RAM built into the m3? couldn't that be of any use for making the game run without the limitations of the DS's ram?

though it certainly dosn't seem to have hindered the project thus far.
in fact, it almost seems as though it runs TOO fast. I find myself missing doorways and overstepping buttons and such.
I've been watching this project for a while now (especialy once the other project stopped being updated) and I'm looking greatly forward to a final build!
you're doing awesome!

how does one go about using a partial conversion? I'm aching for the swingy tarzan grappling hook mod. ooooooo..
_________________
-01011101001010101010 (frank)

#118994 - simonjhall - Mon Feb 19, 2007 12:11 am

I'm glad to hear that it works on the majority of the cards available. Some of the problems sound fat related, but I'm unsure as to why there are these bizarre control problems. I'll speak to people later in the week who have these issues and hopefully they can be fixed nice 'n' easily...

Tockit wrote:
(especialy once the other project stopped being updated)
We were hoping to have both projects pre-released on the same day! I wasn't planning on any kind of release until April, y'know :-)

Love all the comments about too fast - ha! I think I can dig out a software-rendered build/slideshow if you like! But I know what you mean. As I've spent a good deal of time on the performance, repeatability is important. As a result, no time base is used by the game engine (it is used by the sound engine though). At the end of the frame the 'game time' is incremented by exactly the same value, meaning that if the framerate increases then so does the game speed.
It is still a debug build :-p

And I don't think extra RAM would really help at this state. It only runs out of RAM a handful of times in the game, and that's when the framerate hits rock bottom. That extra RAM is also slower than regular RAM so it won't be 'free' to use it.

Partial conversions - they should work. Just not in this build (unless you wanna play with the source code).
_________________
Big thanks to everyone who donated for Quake2

#118995 - ChuckMcB - Mon Feb 19, 2007 12:12 am

Lazy1 wrote:
DPAD does not strafe left and right.
Didn't work for me either, 'til I noticed that I hadn't copied the config.cfg to the id1 folder. Try it and see.

Also I've managed to get stuck twice on the light at the very first room of E1M1, where you jump across to get the armour. You use stick to it, jump button doesn't 'work' either when stuck. Press and hold the D-pad moves you very slowly but I had to restart to escape the light.

Chuck
_________________
http://www.ds-xtra.com
DS Homebrew Videos

#118997 - alzberto - Mon Feb 19, 2007 12:31 am

Hi, it works perfectly with the sc lite patched with the DLDI extension

I just wanted to show you my truly admiration, i'm quite excited with this project. I've only found minor bugs (and huge surprises, like sound), just keep the good work!

P.D. I've also got stuck at the same place that ChuckMcB, but it isn't important at all
_________________
-There's no spoon, Neo-

#118998 - Tockit - Mon Feb 19, 2007 12:52 am

hey it's chuck. ;-D

so the control is perfect in this game. I'm really happy with the response of the touch screen. I was hoping it WASN'T going to be anything like the goldeneye game for DS. (the touch screen suppord in that game sucked for days)
Is there any way to put in a crosshair? I know the crosshair 1 console command, but with no console I'm not sure what to do. perhaps in the .cgf file?

and that brings me to another curiosity: will there be a functional console in the final build? maybe with a keyboard for in-game key binding and impulse codes and stuff..?

oh, and I'm sure you're going to, so I feel like it's pointless to bring it up, but a reverse on the axis that looks up and down on the touch screen would be lovely.

I'm having allot of fun with this, even though it's not done! QUAKE ON MY DS! THE TIME IS NIGH! word.
_________________
-01011101001010101010 (frank)

#118999 - ChuckMcB - Mon Feb 19, 2007 1:01 am

Tockit wrote:
hey it's chuck. ;-D

Is there any way to put in a crosshair? I know the crosshair 1 console command, but with no console I'm not sure what to do. perhaps in the .cgf file?
Lo T!

crosshair "1" is already set in SJH's .cfg file, so no crosshair looks like a feature for now.
_________________
http://www.ds-xtra.com
DS Homebrew Videos

#119000 - Tockit - Mon Feb 19, 2007 1:11 am

oi Simon, I have an idea to submit for your consideration:

I'm no programmer, so I'm not sure how difficult it would be to implicate, but what if certain areas of the touch screen were allocated as sort of "buttons" to be bound for any extra things one might want? sort of like the morph-ball mode in MP:H. it'd make for a nice way to change weapons, or to use for mods with wierd extra impulse command bindings.

for example, as I had mentioned the swinging grappling hook mod, which allows for you to shrink and lengthen your hook's chain with the key bindings +shrink and +grow. to have a button allocated on the touch screen for those two commands would be really great!!

I can't wait to play CTF all over the place.
who's down to start a QuakeDS Clan??
_________________
-01011101001010101010 (frank)

#119003 - Miika - Mon Feb 19, 2007 1:39 am

I have uploaded a video of QuakeDS on Youtube:
http://www.youtube.com/watch?v=LsPP4cfNLOs

It works great, but the control is rather stiff and the guns
fire speed depends on how fast the game runs I think :P
like in the level selecting map the shotgun fires like crazy :P
When there is a lot of enemies and lag the gun shoots as fast as
a manually loadable rifle from 1st world war.

#119010 - stampede_dude - Mon Feb 19, 2007 2:51 am

These ports of old games are really great. I can't wait for a full release. Doom, Quake, now someone needs to do Descent...lol.

#119011 - Dood77 - Mon Feb 19, 2007 2:59 am

Yay! Glad to see you made your target pre-release! Congratulations on all the praise and such, such is the reward for hard work. Also thanks for the mention in the site credits ;) I think this is my first internet credit :)
I look forward to future releases (especially one with the right timing :P)

#119012 - HtheB - Mon Feb 19, 2007 3:03 am

Great work :)
Like I said before ^^


Keep it up! :)

#119013 - daninski - Mon Feb 19, 2007 3:10 am

alzberto wrote:
Hi, it works perfectly with the sc lite patched with the DLDI extension

I just wanted to show you my truly admiration, i'm quite excited with this project. I've only found minor bugs (and huge surprises, like sound), just keep the good work!

P.D. I've also got stuck at the same place that ChuckMcB, but it isn't important at all
ditto, no trouble to get up and running. really impressive performance at this stage...
_________________
www.holbrooksfilms.com

www.tdotodotm.com

#119014 - HyperHacker - Mon Feb 19, 2007 3:14 am

simonjhall wrote:
At the end of the frame the 'game time' is incremented by exactly the same value, meaning that if the framerate increases then so does the game speed.

Would it break the game to use a timer interrupt for this?
_________________
I'm a PSP hacker now, but I still <3 DS.

#119025 - Joe_Sextus - Mon Feb 19, 2007 4:21 am

Great improvement over the last build I played with. I have to agree that it does seem to play to fast. Keep up the good work.

-Joe

#119029 - Mota - Mon Feb 19, 2007 5:08 am

Impressive work, Simon, and much appreciated :) It was great to see Quake running on my DS!

The framerate seemed fine for me, though I didn't play very far. At first the game seemed a little fast, but I guess that's the friction issue you were having a while back?

DLDI patching didn't work for DS-Link, I really hope that can be sorted someday. It just gave me errors (unable to load gfx.wad etc....), presumably some kinda FAT issue?

It did however work on SCSD.

Great idea having buttons to cycle weapons *both ways* - the weapon selection system pretty much killed DSDoom for me.

Looking forward to future builds :)

Oh, and D-Pad strafing worked fine for me. I vaguely remember some other homebrew title having d-pad issues on certain flashcarts, though.

#119034 - TheChuckster - Mon Feb 19, 2007 5:37 am

Wow, that's extremely impressive... my jaw dropped when I saw the 3-D world of Quake come to life on my DS! Go easy on your baby? That's just a little modest... :D I noticed the screenshot on your web page has textures working on the models, along with a first person weapon model and on-screen text rendering. Is that a Photoshop mock up or is it part of an unreleased version?

Good luck with that texture coordinate bug. As far as lightmaps go, has multitexturing on the DS been reversed yet? I haven't done much 3D coding on DS...

Oh, and by the way... How much luck are you having with the net code? Did you try compiling it in with the wifi library? Multiplayer Quake would be pretty NICE, especially if there's already a built-in server browser in Quakeworld.

I just hope it doesn't suffer from the spontaneous Guru Meditation crashes that I've had to deal with in DS Doom. It would definitely lag less, though, since there's lag prediction. In Doom, if one person has a bad ping, everybody notices so four player deathmatches aren't really playable.

#119049 - simonjhall - Mon Feb 19, 2007 11:04 am

Thanks again for all the comments :-)
Having seen the Necropolis demo hundreds (thousands?) of times now I think seeing the coolness of Quake on DS has gone out the window. So I'd forgotten that people might be impressed when they see it run for the first time!
Y'know I blew TWO DS' getting it this far?!

Ok, networking - I've been running the game with wifi for ages (the debugger) so the game's already set up for wireless fun. I've already figured out what needs to be done for networking (as I did a prototype Q port) so that shouldn't be too hard to do.
I'm still not too sure about doing it though, as adding networking means removing other features. So I'm thinking about doing several builds, each with different features. What do people think of this?

The crosshair: this isn't as trivial as you'd think. Yeah, I could knock up a cross in the middle of the screen easy enough, but I doubt it would then be compatible with total conversions which supplied their own crosshair.
Basically the crosshair is (sort of) part of the console, but it doesn't get hidden when you hide the console. I've got the proper Quake console running on the subscreen (not in this build) and sure enough there it is being drawn! Except the graphics are on one screen an the crosshair's on the other! I'm still trying to decide what to do with the menu and console.

The picture with proper textures and the gun etc: this is not a mockup, this is the software renderer. It looks absolutely fantastic running on the DS, and due to the framerate you really get to appreciate who pretty it is :-)
If you look in that picture (the top left one) you'll see the number '2.1'. That's the framerate! Now if you look two pictures down there's almost the same picture (I didn't intend to take a picture of the same scene!) and it's so much faster that four frames got captured by my camera! I could try and get the software renderer running again if enough people want to have a play.

DS-link and other cards which don't work - does DLDI fat homebrew normally work on these cards?

Getting stuck in that light on e1m1 - I can replicate that, but it only seems to happen on that light. At first I thought that the BSP generation could have gone a bit wrong there, but I don't get stuck in the light in GLQuake so it must be a fixed-point problem.

Touch buttons and control configuration - shouldn't be too hard to knock up. And yeah, I'll set them up as configurable buttons, so you'll be able to bind commands and actions to them.

So (can't believe I'm gonna ask this) - what do people want fixing first? :-D

EDIT: what happened to that YouTube video?
_________________
Big thanks to everyone who donated for Quake2

#119053 - MelGibson - Mon Feb 19, 2007 11:28 am

First I have to say its absolutely awesome to see this game working on the DS. And I am really impressed how smooth and fast (nearly to fast :P ) it runs. on that tiny hardware. I have no problems running it on my M3 MiniSD at at all.

Personaly I would like to see texture coordinates fixed first. But everything else is fine,too :)

Again. Awesome work.


Last edited by MelGibson on Mon Feb 19, 2007 4:06 pm; edited 1 time in total

#119061 - Spike - Mon Feb 19, 2007 12:17 pm

here's a few suggestions regarding fixes.

texture alignment for environment.
textures for models
some kind of status bar showing health-armour-bullets-weapon-selected ( bottom screen?)
cross-hair

that's pretty much it for a solid single player experience.

Things like a proper skybox and water animation don't really bother me at all.

keep up the good work.

#119070 - Miika - Mon Feb 19, 2007 1:12 pm

simonjhall wrote:
EDIT: what happened to that YouTube video?

I don't know. It says:
The video you have requested is not available.
If you have recently uploaded this video, you may need to wait a few minutes for the video to process.

It worked a few times for me, but it is most time giving that message...
Maybe I should try to reupload it. You can download it here:
http://www.sendspace.com/file/iq9eyt
_________________
My DSQuake video: http://www.youtube.com/watch?v=03wz7nmaXa8
My QuakeDS video: http://www.youtube.com/watch?v=nNIKneo11o4

#119074 - ChuckMcB - Mon Feb 19, 2007 2:15 pm

I mirrored the video here, still working for me, perhaps youtube's taken offense to your IP range/location?

Chuck
_________________
http://www.ds-xtra.com
DS Homebrew Videos

#119075 - Miika - Mon Feb 19, 2007 2:22 pm

ChuckMcB wrote:
I mirrored the video here, still working for me, perhaps youtube's taken offense to your IP range/location?

Chuck

I reuploaded the video on Youtube and it works for me now, at least at the moment.
http://www.youtube.com/watch?v=nNIKneo11o4
Strange, I deleted the old video but it still loads on the page you mirrored it from. If it stops working, you can update it with the new video ID.
_________________
My DSQuake video: http://www.youtube.com/watch?v=03wz7nmaXa8
My QuakeDS video: http://www.youtube.com/watch?v=nNIKneo11o4

#119078 - simonjhall - Mon Feb 19, 2007 2:32 pm

Sweet! It is just awesome seeing your work being played by someone else. Also, I notice that you go into the config menu and change the brightness - I didn't even know that that worked!

<cough>Still taking donations for Quake 2...</cough>
_________________
Big thanks to everyone who donated for Quake2

#119079 - TheChuckster - Mon Feb 19, 2007 2:33 pm

I second Spike's fix priority list. What kind of sacrifices will be necessary to support wifi?

"The video you have requested is not available."
I have no idea what's going on there with the Youtube video...

#119080 - Tockit - Mon Feb 19, 2007 2:38 pm

simonjhall wrote:

So (can't believe I'm gonna ask this) - what do people want fixing first? :-D


I'd have to say textures and lighting. with those two done, the rest would just be tweaks and such.

it's awesome to hear that you're considering the touch screen buttons. :-) things like that can make the difference between a really good, and sub-par game-port.

it seems like you're intended finished product will turn out to be better than a commercial project of this nature. I was always a wee bit more into quake 2 and I'm thuroughly stoked that you're doing that project too.
I could name a million other games I'd love to see - especialy this well.
half life and duke nukem 3d to name a few.

keep up the truckulent ass-kickefication..!
_________________
-01011101001010101010 (frank)

#119081 - Miika - Mon Feb 19, 2007 2:41 pm

simonjhall wrote:
Sweet! It is just awesome seeing your work being played by someone else. Also, I notice that you go into the config menu and change the brightness - I didn't even know that that worked!

Yeah, I just noticed it when I went crazy and pushed lots of random stuff.
Once again thanks for the pre-release, I enjoy it.

TheChuckster wrote:

"The video you have requested is not available."
I have no idea what's going on there with the Youtube video...

Damn! Something is really wrong with either Youtube or my video. It's strange the page sometime loads the video flash. At least I provided the .wmv version to download:
http://www.sendspace.com/file/iq9eyt
_________________
My DSQuake video: http://www.youtube.com/watch?v=03wz7nmaXa8
My QuakeDS video: http://www.youtube.com/watch?v=nNIKneo11o4

#119085 - simonjhall - Mon Feb 19, 2007 2:48 pm

Ooh, Spike sent me a few links to some DLDIs for people who are having trouble with their cards:
Quote:
Supercard SD Moonhsell DLDI patch.
http://mdxonlinemirror.dyndns.org/resources/20070101_dldi_scsd_ver10_20070101.zip

DS LInk Moonhsell DLDI patch.
http://mdxonlinemirror.dyndns.org/resources/20061230_dldi_dlms_ver10_20061230.zip

there's also an ewin patch though i've not had any feedback regarding that one.

here's the link if anyone needs it.
http://mdxonlinemirror.dyndns.org/resources/20061229_dldi_ewsd_ver10_20061229.zip
Thanks for that! (never got round to replying to your mail)

Wifi: here's the memory breakdown. You obv wanna maximise the amount available to the game.
The build you have uses a 3.1-3.2 meg game heap. It includes sound code (which costs 50k), sound files (150k), textures (which cost 50-200k), no lighting (100k) no MP3 playback (which would cost 50k), no networking (100-200k), file system support (50-60k).
Mix and match them as you see fit :-)

The good thing however is in deathmatch games, the Quake progs are very small, leaving you more RAM for the actual levels and things like wifi, sound, lightmaps etc. But if you want to host a co-op game it'll take as much as a single player game but also will require the wifi code + net code, so something will need to be sacrificed. If you're playing a co-op game but aren't hosting it will be roughly equivalent to a regular single player game (as you won't need progs but you'll need wifi code).

Does any of the above make any sense? :-D

So I reckon I'll make a few builds, one configured for single player, one configured for deathmatch, one for co-op.
Once I fix the textures and lighting that is!
_________________
Big thanks to everyone who donated for Quake2

#119086 - xtoc - Mon Feb 19, 2007 2:54 pm

Hi, is it possible to load your own maps in the console build?

i like to seeon the first place speedfix, then : texture for enemy's, console, and crosshair


but it's up to you what you do deside :)


and thx again!

#119088 - OOPMan - Mon Feb 19, 2007 3:30 pm

Nice work simon, I downloaded it last night and did some testing this morning...

Runs find on my SC:mSD with the standard SCSD DLDI driver, no surprises there...

It's certainly a lot faster than the old software build I tested a while back, although not as pretty just yet. Still, I'm assuming that will get fixed sometime before release :-)

I played about on e3m1 for a bit and noticed few issues:

  • mis-aligned textures.
  • some sound glitching. Certain sounds get cut out when other ones play.
  • slowdowns when enemies appear


I think these have all been mentioned before, though, so no surprises :-)
_________________
"My boot, your face..." - Attributed to OOPMan, Emperor of Eroticon VI

You can find my NDS homebrew projects here...

#119089 - Spike - Mon Feb 19, 2007 3:35 pm

simonjhall wrote:

The good thing however is in deathmatch games, the Quake progs are very small, leaving you more RAM for the actual levels and things like wifi, sound, lightmaps etc. But if you want to host a co-op game it'll take as much as a single player game but also will require the wifi code + net code, so something will need to be sacrificed. If you're playing a co-op game but aren't hosting it will be roughly equivalent to a regular single player game (as you won't need progs but you'll need wifi code).

Does any of the above make any sense? :-D

So I reckon I'll make a few builds, one configured for single player, one configured for deathmatch, one for co-op.
Once I fix the textures and lighting that is!


Different builds for single/multiplayer would be sweet. It makes sense to make best use of the DS's limited memory to suit the relevant game mode.

Duking it out on the abandoned base deathmatch map over wifi would be awesome.
aah the quakeworld memories come flooding back...

#119097 - Mrshlee - Mon Feb 19, 2007 5:33 pm

Are you planning to use un-modified base files or converting them to DS-friendly formats??
_________________
MrShlee.com
Projects
Dev-Scene
MyTechpedia

#119098 - Spike - Mon Feb 19, 2007 5:36 pm

Been fiddling with the config.cfg file.

Noticed the gamma was set to 0.6. If like me you want a darker display just set it to 1.0

Also if you are sick of the Necropolis demo ( I bet simon is :) ) you can edit the config.cfg to start quake with any map you want.

Simply add the following add the end of the .cfg

map e1m1

Here's a list of the maps from the retail version.

start - Introduction
e1m1 - Slipgate Complex
e1m2 - Castle of the Damned
e1m3 - The Necropolis
e1m4 - The Grisly Grotto
e1m5 - Gloom Keep
e1m6 - The Door To Chthon
e1m7 - The House of Chthon
e1m8 - Ziggurat Vertigo
e2m1 - The Installation
e2m2 - Ogre Citadel
e2m3 - Crypt of Decay
e2m4 - The Ebon Fortress
e2m5 - The Wizard's Manse
e2m6 - The Dismal Oubliette
e2m7 - Underearth
e3m1 - Termination Central
e3m2 - The Vaults of Zin
e3m3 - The Tomb of Terror
e3m4 - Satan's Dark Delight
e3m5 - Wind Tunnels
e3m6 - Chambers of Torment
e3m7 - The Haunted Halls
e4m1 - The Sewage System
e4m2 - The Tower of Despair
e4m3 - The Elder God Shrine
e4m4 - The Palace of Hate
e4m5 - Hell's Atrium
e4m6 - The Pain Maze
e4m7 - Azure Agony
e4m8 - The Nameless City
end - Shub-Niggurath's Pit
dm1 - Place of Two Deaths
dm2 - Claustrophobopolis
dm3 - The Abandoned Base
dm4 - The Bad Place
dm5 - The Cistern
dm6 - The Dark Zone

To dig deeper into the quake console here's some more info.

http://console.planetquake.gamespy.com/commands/quake.html

#119099 - simonjhall - Mon Feb 19, 2007 5:41 pm

I've not tried every single level to see if they work. I've played all the way through ep1 and ep2 (for some reason after completing ep1 I can't load e2m1) but I don't think e3m2 or e4m3 load (I've not allocated enough memory) so you won't be able to play past there without skipping levels with the map command.

Ooh - I just saw something online where they control Quake with a tilt sensor: who'd like to see DS Motion-controlled Quake?!
_________________
Big thanks to everyone who donated for Quake2

#119100 - TheChuckster - Mon Feb 19, 2007 5:43 pm

That would be neat. Instead of having separate builds, would it be possible to have extra fields in the configuration file (i.e. lightmap=0 sound=1 multiplayer=1)? Hmm, that probably wouldn't work because a one size fits all binary would consume too much memory.

#119116 - bear - Mon Feb 19, 2007 9:37 pm

My suggestion for the console is to have it available on one button (select might be a good one?) that brings the text up on the upper screen and a stylus controlled keyboard on the lower one. Having access to the console would be nice so that you can start custom maps and mess with settings from inside the game.

For a network build mp3 playback would be one easy throw-away, and I guess if there's not enough resources for everything you could sacrifice some graphics features for playability.

As for general fixes priority I think the game speed issues rather important so it would be really nice if that could be resolved. World texture coord problems and alias model texturing would also be nice.

#119136 - fuzby - Tue Feb 20, 2007 1:16 am

Quote:
I guess I can get lefty controls by editing config.cfg.

Quote:
Maybe... The best way to do this would be to adjust the source though. I'll put a lefty (I'm a lefty) switch in a later version if you like.


A lefty switch would be very good if you could include please :)

#119138 - Nintendo Maniac 64 - Tue Feb 20, 2007 1:25 am

this might be a bit out of left field, but would it be possible to have ogg vorbis as a choice of audio instead of MP3? I would like to keep the size to a minimum, though I heard somewhere that vorbis takes more processing power to decode.

#119139 - Firon - Tue Feb 20, 2007 1:34 am

Tremor needs too much memory to make Vorbis viable.

#119140 - Nintendo Maniac 64 - Tue Feb 20, 2007 1:47 am

Yeah, I figured. :P Just wanted to make sure though.

#119145 - Dood77 - Tue Feb 20, 2007 2:48 am

simonjhall wrote:
Ooh - I just saw something online where they control Quake with a tilt sensor: who'd like to see DS Motion-controlled Quake?!


Seems kinda gimmicky to me, but interesting nonetheless. Lets work on that after Quake 2 is running ;)

EDIT: oh, and for anyone having trouble with the strafe keys, im 90% sure its because they didnt download/copy the config.cfg file

Also i went into the config.cfg to look for what keyboard key R was assigned to, so i could change that to jump, but i noticed its not bound to a key... i guess the L and R buttons just send the command straight to the console without a key?

Priority:
Timing
double-tap jump or R button jump
Texture alignment
working console and on-screen keyboard
button customizablility (assign DS keys to keyboard keys, not ds keys to quake commands) keys could later be customized with a working menu
Textured models
fully working menu
the rest of the sound (i had trouble hearing the double barrel shotgun sound sometimes, and i believe you said it was 80% done at an earlier post)
the rest of the graphics bugs
wifi
music

What i see the game like in its completed state:
of course at least 1 single player build and 1 multiplayer, maybe even 2 multiplayer, 1 for dm and the other coop
The bottom screen should have a few buttons in the corners and sides and stuff, you could assign those to keyboard keys using the above, then assign commands using a working console:
a button brings down the console on the top screen (solving the cross-hair issue, as well as the center-screen text messages im guessing) and also brings up an onscreen keyboard, and same button puts console up yadda yadda.
maybe even using a small external editable .bmp file for the picture/text on the custom buttons.
there could be options for which screen to use the ammo/health/armor for, but me personally would prefer the top screen. the unused space could still be used for console messages (chat, weapon/ammo pickup)

If i think of anything more i will post, although im sure this is enough for now ;)

#119147 - Ant6n - Tue Feb 20, 2007 3:48 am

as far as these memory problems go, would it be possible to dynamicly load certain parts of the program (sound, wifi, fat)?

#119160 - simonjhall - Tue Feb 20, 2007 10:20 am

Ant6n wrote:
as far as these memory problems go, would it be possible to dynamicly load certain parts of the program (sound, wifi, fat)?
Maybe. Sounds like a quite a bit of effort though! It'll be easier to make separate builds!

Quote:
a button brings down the console on the top screen (solving the cross-hair issue, as well as the center-screen text messages im guessing) and also brings up an onscreen keyboard, and same button puts console up yadda yadda.
Thanks for 'solving' that problem! Y'don't reckon I would have put the console on the top screen if I could?!
And I don't really wanna write an OSK.

People with the timing problems - how much of an issue is this? I've never really thought it was a problem... As a result I'm gonna have a hard time telling if I've got it right :-)

Oh has anyone found any show-stopping bugs (that aren't related to fat/DLDI etc)? I've found one on e2m2 when it just freezes.
_________________
Big thanks to everyone who donated for Quake2

#119179 - elhobbs - Tue Feb 20, 2007 3:11 pm

not sure if you are already using these timers but here is some code to make Sys_FloatTime work.

//enable timers during startup
TIMER0_CR = TIMER_ENABLE|TIMER_DIV_1024;
TIMER1_CR = TIMER_ENABLE|TIMER_CASCADE;

double Sys_FloatTime (void)
{
return ((TIMER1_DATA*(1<<16))+TIMER0_DATA)/32728.5;
}

#119191 - elhobbs - Tue Feb 20, 2007 5:55 pm

fixing the timing will also help level out the frame rate. using 0.1 for the frametime is causing the the thinktime on each entity to be reached almost every frame - I think the thinktime is generally set to 0.1

#119192 - Mrshlee - Tue Feb 20, 2007 5:56 pm

I'm using the pre-release + demo files on a DSLite AU.
A supercard CF patched with/without DLDI and the included config

Everything seems to play ok but the left/right doesn't straife and the "controls" seem to jump the controls directly up at random whenever I press the D-PAD and try to control with the touch.

Anyone else having this issue?
_________________
MrShlee.com
Projects
Dev-Scene
MyTechpedia

#119194 - simonjhall - Tue Feb 20, 2007 6:14 pm

Sounds weird... You've put the config file into the id1 directory, right? If so, have a look in the file and see what 'w' and 's' are bound to.
The pen thing does jump occasionally, but not in the way you describe!

Next release won't have this config hoo-ha btw, it'll be built right into the program.
_________________
Big thanks to everyone who donated for Quake2

#119196 - bear - Tue Feb 20, 2007 6:35 pm

Quote:
i had trouble hearing the double barrel shotgun sound sometimes


I have no idea about how sound is done in this version now but this might be related to whatever the maximum number of channels is set to - if enough sounds are played at the same time some sounds will be dropped by quake on the PC also.

#119238 - Dood77 - Wed Feb 21, 2007 2:19 am

bear wrote:
Quote:
i had trouble hearing the double barrel shotgun sound sometimes


I have no idea about how sound is done in this version now but this might be related to whatever the maximum number of channels is set to - if enough sounds are played at the same time some sounds will be dropped by quake on the PC also.

yeah thats what i figured but it didnt happen as-much/at-all with other guns, even in different environments.

#119287 - simonjhall - Wed Feb 21, 2007 3:42 pm

Right, not too related to Quake (well...) but it just struck me - that fp operator overloading thing that I think Kusma suggested a few weeks ago - could that be used to fix that 8-bit write problem?
eg If you overloaded the char/byte '=' operator would this do the trick? I have a macro to replace 8-bit writes with 16-bit ones but it's a bit time-consuming!

For those who are worried, no Quake will not need extra RAM to run.

EDIT: I meant to put this in the Quake, yeah thread, not the pre thread...
_________________
Big thanks to everyone who donated for Quake2

#119289 - kusma - Wed Feb 21, 2007 3:58 pm

simonjhall wrote:
Right, not too related to Quake (well...) but it just struck me - that fp operator overloading thing that I think Kusma suggested a few weeks ago - could that be used to fix that 8-bit write problem?
eg If you overloaded the char/byte '=' operator would this do the trick? I have a macro to replace 8-bit writes with 16-bit ones but it's a bit time-consuming!

For those who are worried, no Quake will not need extra RAM to run.

EDIT: I meant to put this in the Quake, yeah thread, not the pre thread...


I guess you could overload some assignment-operator and keep a small cache in IWRAM or something, yes...

edit: ofcourse you meant to replace it with read-modify-write operations, silly me.

#119468 - deltro - Fri Feb 23, 2007 8:13 am

:( White screen of death on my GBAMPv2.
DLDI patch or not, tried formatting, and the latest version of moonshell works.

appreciate it if anyone has any ideas- the older releases worked for me

#119489 - Miika - Fri Feb 23, 2007 3:00 pm

deltro wrote:
:( White screen of death on my GBAMPv2.
DLDI patch or not, tried formatting, and the latest version of moonshell works.

appreciate it if anyone has any ideas- the older releases worked for me

Sure you got at least the pak0.pak and config.cfg in your /id1 folder?
_________________
My DSQuake video: http://www.youtube.com/watch?v=03wz7nmaXa8
My QuakeDS video: http://www.youtube.com/watch?v=nNIKneo11o4

#119491 - simonjhall - Fri Feb 23, 2007 3:06 pm

Sounds like a corrupt executable to me. Either that or a dodgy CF card.
_________________
Big thanks to everyone who donated for Quake2

#119846 - phanboy_iv - Mon Feb 26, 2007 9:49 pm

Works for me on a M3 Lite. I'm shocked at how much progress has been made already.
This is quite possibly the most ambitious homebrew project I've seen so far.
Good work, and don't let yourself get burned out!

#120005 - Nintendo Maniac 64 - Wed Feb 28, 2007 7:05 am

BTW, here's an idea for the jumping: why not have both R and double-tapping the screen make you jump? And I'm also gonna assume there will be an option to mirror the button layout for lefty controls (d-pad to a,b,x,y; L to R, etc)

#120006 - Firon - Wed Feb 28, 2007 7:13 am

I like double tapping for jumping ? la MPH.

#120095 - dg10050 - Thu Mar 01, 2007 12:43 am

OMG, teh m0nsterz are wh!te!!1!

Heh, just had to post that since I'm color-blind.

#120102 - simonjhall - Thu Mar 01, 2007 1:31 am

dg10050 wrote:
OMG, teh m0nsterz are wh!te!!1!

Heh, just had to post that since I'm color-blind.
Nice :D

Deltro, did you ever get your gbamp to work with the game?

Tapping to jump - I'm finding it surprisingly hard to get right. Can't you just press a button? :-p

Key config - yeah, you'll be able to bind every button to anything. I've just got to get round to coding it... And if you want a lefty build just shout as I've got one kicking around in my sent items.

Quote:
Works for me on a M3 Lite. I'm shocked at how much progress has been made already.
This is quite possibly the most ambitious homebrew project I've seen so far.
Good work, and don't let yourself get burned out!
Thanks! And yeah, I've noticed I've not been getting too much sleep for like the last month... I'm just working double time on the game so I can be rid of it sooner! Really.

Tomorrow should be ace though when we do our first PSP<->DS game. Off the top of my head, I can't think of any game which can be played on both the PSP and DS which supports network play. Will this be a world-first?
_________________
Big thanks to everyone who donated for Quake2

#120114 - dantheman - Thu Mar 01, 2007 2:41 am

Someone on another forum asked about the possibility of netplay between GBC emulators on the DS and PSP, and somehow it got mentioned that a tic-tac-toe game was made that featured 2-player between the DS and PSP.

If you don't count that though, you're the first I've heard of.

#120125 - Dood77 - Thu Mar 01, 2007 4:53 am

Quake 1 out 1337z tic-tac-toe 6.02x10^23 times. If double tapping is too much trouble, let us bind our own keys to L and R ;)

#120126 - Lazy1 - Thu Mar 01, 2007 5:19 am

simonjhall wrote:
Right, not too related to Quake (well...) but it just struck me - that fp operator overloading thing that I think Kusma suggested a few weeks ago - could that be used to fix that 8-bit write problem?
eg If you overloaded the char/byte '=' operator would this do the trick? I have a macro to replace 8-bit writes with 16-bit ones but it's a bit time-consuming!

For those who are worried, no Quake will not need extra RAM to run.

EDIT: I meant to put this in the Quake, yeah thread, not the pre thread...


I don't know if it will help you any, but to track down the 8bit gba slot writes in Mini vMac I modified desmume to write the address of an 8bit write and exit.

Then all that was needed was to look the address up using addr2line and make the changes.

It's fairly easy to modify desmume to do this, but I can send my modifications if needed.

#120135 - OOPMan - Thu Mar 01, 2007 7:45 am

Clever work lazy1 :-)
_________________
"My boot, your face..." - Attributed to OOPMan, Emperor of Eroticon VI

You can find my NDS homebrew projects here...

#120191 - Tockit - Thu Mar 01, 2007 6:32 pm

simonjhall wrote:

Tapping to jump - I'm finding it surprisingly hard to get right. Can't you just press a button? :-p


what about the designated touch-screen "buttons"? is that seeming possible? likely just in the corners. perhaps a 1/2 inch of each corner as a touchable button, one of which could easily be bound to jump. they'd be perfect for grappling hooks, or any other wierd conversions or bindings anyone would like..
sorry if I'm a wee bit ambitious on your behalf..
_________________
-01011101001010101010 (frank)

#120228 - simonjhall - Thu Mar 01, 2007 10:17 pm

Yeah, I'm still thinking about buttons on the subscreen. I'm still happy with what I've got going on that screen though, esp since there's so little free VRAM to do anything fancy.

And the 8-bit write thing, yeah using an emulator sounds pretty bonze - I might get back to you on that! Sounds a bit more robust than disassembling the file, grepping for strb and then finding the function it happened in!
Then there's the conditional strbs, so I'd have to look for them too...yeah some automatic process would be a bit better!
_________________
Big thanks to everyone who donated for Quake2

#120823 - Link_of_Hyrule - Tue Mar 06, 2007 9:04 am

hey im running quake ds on my ds lite with a passcard and g6 with dldi and the weapon and some of the other graphics are just pink is this a common issue and am i able to fix it some how?

#120827 - MelGibson - Tue Mar 06, 2007 10:26 am

@Link_of_Hyrule

1st Post wrote:
I don't want to get messages like "OMG, teh m0nsterz are p!nk" etc.


Weapons and Monsters are not textured yet. As it is an aplha-pre-release

#120839 - simonjhall - Tue Mar 06, 2007 1:30 pm

@MelGibson, thanks - nice to know that at least some people read the web page before diving from the download link!
_________________
Big thanks to everyone who donated for Quake2

#120844 - MelGibson - Tue Mar 06, 2007 3:20 pm

Ah well up to now the "OMG-Monsters-are-Pink-Posters" are really a minority I'd say compared to the number of people having downloaded and tested DS-Quake. :)

So I wouldn't bother.. :D

#120845 - simonjhall - Tue Mar 06, 2007 4:16 pm

Yeah true, normally it's 'do I need to DLDI it?'
RTFM :-)
_________________
Big thanks to everyone who donated for Quake2

#120848 - PeterM - Tue Mar 06, 2007 6:56 pm

We got the same on the PSP version, always "does this work on 2.70+", "how do I install it?" or "it gives me a 'quake data files not found' error on start".

*shakes fist* Damn you internet, damn you!
_________________
http://aaiiee.wordpress.com/

#120869 - simonjhall - Tue Mar 06, 2007 10:50 pm

Yo fixed point question, anyone.

So a floating-point number is stored as the sign, exponent and the mantissa. To convert a number to my fixed-point format I multiply the number by 8192 (2^13) and then do everything with those bigger numbers (before converting them back when required.

So...can I avoid the floating-point mutliply followed by a fp->int conversion by adding 13 to the exponent and then somehow extracting the number myself?
Or isn't it that simple? :-)

EDIT: meant to put this in the development thread, not the pre thread.
_________________
Big thanks to everyone who donated for Quake2


Last edited by simonjhall on Tue Mar 06, 2007 10:50 pm; edited 1 time in total

#120870 - Link_of_Hyrule - Tue Mar 06, 2007 10:50 pm

oh ok thanks i hope this project will turn out as good as ds doom did it seems to be getting along smoothly other then those things

#120873 - Ant6n - Tue Mar 06, 2007 11:08 pm

simonjhall wrote:
Yo fixed point question, anyone.

So a floating-point number is stored as the sign, exponent and the mantissa. To convert a number to my fixed-point format I multiply the number by 8192 (2^13) and then do everything with those bigger numbers (before converting them back when required.

So...can I avoid the floating-point mutliply followed by a fp->int conversion by adding 13 to the exponent and then somehow extracting the number myself?
Or isn't it that simple? :-)

EDIT: meant to put this in the development thread, not the pre thread.


you can do math on floats yourself AFAIK. its possible to add to the exponent or subtract it to shift. the first bit is the sign, the next 8 bits is the exponent. the remaining 23 bits are the mantissa, but to extract it you have to add a one at the beginning (the one gets truncated because a binary floating point number always looks like 1.xxx * 2^exp).

#120879 - kusma - Wed Mar 07, 2007 12:22 am

simonjhall wrote:

So a floating-point number is stored as the sign, exponent and the mantissa. To convert a number to my fixed-point format I multiply the number by 8192 (2^13) and then do everything with those bigger numbers (before converting them back when required.

So...can I avoid the floating-point mutliply followed by a fp->int conversion by adding 13 to the exponent and then somehow extracting the number myself?
Or isn't it that simple? :-)

Look at the floating-point number as an unsigned 1.23 fixed point number with a correctional shift. If you're going to convert a floating-point number to signed 19.13 fixedpoint, you can just do something like this:
Code:

int float_to_fixed_19_13(float f)
{
   union
   {
      float f;
      int   i;
   } u;
   u.f = f;

   /* convert mantissa to two's compliment */
   int mantissa = u.i & ((1 << 24) - 1);
   mantissa |= 1 << 24;
   if (0 != (u.i & (1 << 31))) mantissa = -mantissa;

   int exponent = (u.i >> 23) & 255; /* pick bits */
   exponent -= 128; /* correct for the FP32 bias */
   exponent -= (23 - 13); /* correct for the moved sign */

   if (exponent > 0) mantissa <<= exponent;
   if (exponent < 0) mantissa >>= -exponent;
   return mantissa;
}


No floating point multiply needed.

I may have mis-understood your question, though.

edit: I've just tested the code. It is inaccurate, but it shouldn't be. I must have a bug somewhere...

#120883 - kusma - Wed Mar 07, 2007 12:43 am

Here you go:
Code:

int float_to_fixed_19_13(float f)
{
   union
   {
      float f;
      int   i;
   } u;
   u.f = f;
   
   /* convert mantissa to two's compliment */
   int mantissa = u.i & ((1 << 23) - 1);             /* pick bits */
   mantissa |= 1 << 23;                              /* set implicit one bit */
   
   int exponent = (u.i >> 23) & 255; /* pick bits */
   exponent -= 127;                  /* correct for the FP32 bias */
   exponent -= (23 - 13);            /* correct for the moved sign */
   
   if (exponent >= 0) mantissa <<=  exponent;
   else               mantissa >>= -exponent;

   if (0 != (u.i & (1 << 31))) mantissa = -mantissa; /* add sign */

   return mantissa;
}


Too much wine and too late at night leads to some off-by one errors ;)

Another fix I've done, is moving the sign-fix to the end, to make the rounding consistent with the float-version I've written for test-reference.

#120885 - simonjhall - Wed Mar 07, 2007 12:48 am

Ah, somehow I knew it'd be you who's chime in and tell me how to do it! :-D
Thank you very much, I'll figure out exactly what that code does tomorrow!
_________________
Big thanks to everyone who donated for Quake2

#120887 - kusma - Wed Mar 07, 2007 1:07 am

simonjhall wrote:
Ah, somehow I knew it'd be you who's chime in and tell me how to do it! :-D
Thank you very much, I'll figure out exactly what that code does tomorrow!


Just in case, here's a quick outline:
- decode float into an exponent and a mantissa
- subtract exponent to adjust for the scale
- recompose in your new format, 19.13 fixed point

if there's something that remains unclear tomorrow, feel free to drop me a privmsg and I'll try my best to explain ;)

#120926 - kusma - Wed Mar 07, 2007 10:26 am

kusma wrote:

Code:

   ...
   if (exponent >= 0) mantissa <<=  exponent;
   else               mantissa >>= -exponent;
   ...


One potential gotcha to keep in mind - IIRC if the shift amount is bigger than the datatype, the result is undefined (by the C standard). This should be OK for overflowing values, since it can't be represented in your format. But for the underflow it might be an issue, since very small values might turn very big.

A fix should be something like:
Code:

   ...
   if (exponent >= 0) mantissa <<=  exponent;
   else
   {
      int shift = -exponent;
      if (shift > 31) return 0;
      mantissa >>= shift;
   }
   ...


Edit: After checking the Architecture Reference Guide, it seems that ARM-cpus use the lower 8bits of the shift-register. Since the the un-biased shift count is in the 0-128 range (we already halved the range due to negative/positive exponents), and the bias not being outside the +/-127 range, this fix shouldn't be needed on ARMs. An ifdef might be in order, just to prevent yourself from adding the code back in by mistake when testing on x86 or something.

#121313 - iainprice - Sun Mar 11, 2007 1:44 pm

When is pre-release v2 likely to be released to the hugry homebrew community? :)

#121320 - simonjhall - Sun Mar 11, 2007 3:10 pm

I haven't decided yet :-)
I'm still not sure of whether I should do another pre-release or just wait a little bit longer and go for a proper feature-complete release. What I really want is to make a worthwhile version, rather than putting out something which just doesn't have any visible improvements.

Things which would be in a pre-release (April?)
- better framerate
- proper timebase
- non-crackling sound
- aligned *power of two* textures on brush models (eg the world)
- every level should load
- properly working menus
- network gaming
- game loading and saving
- key configuration
- maybe music...

Things which would only be in a May/June release:
- both lightmap and dynamic lighting
- non-power of two textures properly rendered
- properly rendered models
- buttons on the subscreen
- proper support (within reason) for mods and total conversions

Wanna vote? :-p
_________________
Big thanks to everyone who donated for Quake2

#121322 - Spike - Sun Mar 11, 2007 4:12 pm

The April pre-release feature set looks very cool.
A network game of quake <-> pc would rock the bells.

#121348 - Dood77 - Sun Mar 11, 2007 8:28 pm

My votes in for april.... maybe you should make a poll? You could copy those lists and make them your post on the poll.

So you wanna describe to us 3D programming illiterate people what power of two textures are?

#121352 - Lick - Sun Mar 11, 2007 8:39 pm

1x1, 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512, 1024x1024, 2048x2048.. etc. are all power-of-two.
Logically, non-power-of-two do not fit in that row. It's a hardware restriction anyway.
_________________
http://licklick.wordpress.com

#121358 - tepples - Sun Mar 11, 2007 8:56 pm

Is 128x32 power-of-two? Or is it unacceptable for other reasons?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#121360 - simonjhall - Sun Mar 11, 2007 9:18 pm

Yeah, that's a legit texture size.
There are a few textures in the game which aren't power of two, eg 256x96, which I resize into the next size up (eg 256x128). That's why there are many mis-aligned textures in the game which have big black bars on them.

I'm not too sure of how I'm gonna fix this as it's not just a case of scaling the texture co-ordiantes, as I dynamically generate the tex co-ords per poly at render time and this extra complication could slow it down...
_________________
Big thanks to everyone who donated for Quake2

#121361 - Lick - Sun Mar 11, 2007 9:23 pm

Yeah I forgot, most of the older hardware also had a restriction on the form of the texture, they had to be square.
_________________
http://licklick.wordpress.com

#121362 - elhobbs - Sun Mar 11, 2007 9:32 pm

you do not need to do anything special to adjust for scaling the textures to powers of 2 when generating the texture coords. Just use the original width and height (unscaled) for the divide - or as an inverse for a multiply.

#121422 - kusma - Mon Mar 12, 2007 10:03 am

simonjhall: how about re-sampling the textures, then? It wouldn't give the best quality, but maybe not that bad either? Another solution could be to use the texture matrices to rescale the textures, but this doesn't work with repeating textures...

#121751 - InGeNus - Wed Mar 14, 2007 2:47 pm

I just tried it and what to say ... just amazing job :) !

#121756 - simonjhall - Wed Mar 14, 2007 4:10 pm

Ta man! I'm glad you like it.
I noticed I had pre1 on one of my SD cards last night and had a go with it - it plays so poorly compared to more recent builds! Those pink/non-transparent menus are pretty annoying, and you are all right - it does run far too fast!

Still can't decide whether to do a pre2 (in a few weeks or so) or just hang on for a further month or two until the final ver. Don't wanna oversaturate the market, y'know!

Epicenter - I KEEP meaning to send you a build that you can profile with!
_________________
Big thanks to everyone who donated for Quake2

#121763 - Miika - Wed Mar 14, 2007 5:31 pm

Aw please dont make us live so long in pain, release pre2 soon to feed our homebrew stomaches so we don't die before the final release!
Eh heh. But please that'd be so great. And can you reply on Quake, yeah thread?
_________________
My DSQuake video: http://www.youtube.com/watch?v=03wz7nmaXa8
My QuakeDS video: http://www.youtube.com/watch?v=nNIKneo11o4

#121775 - Lord Graga - Wed Mar 14, 2007 8:25 pm

Could you maybe add a bit more contrast to the quake palette? I'm using an ol' fatty DS, and I can't see that much :P

#121848 - Dood77 - Thu Mar 15, 2007 8:02 am

Gamma is easily configurable in later builds, I think its even possible in the current public build, although it you cant see the text in the config menu so you have to either edit the config.cfg or count down how ever many times it is and push left...

#121855 - xtoc - Thu Mar 15, 2007 8:44 am

is this you?

http://dsquake.blogspot.com/

#121865 - Miika - Thu Mar 15, 2007 11:08 am

xtoc wrote:
is this you?

http://dsquake.blogspot.com/

Whoa! Cool! Pre-release of the other DSQuake!
Looks amazing! :D Works fine with my EZ4.
No, that is not simon's. Simon's version at:
http://quake.drunkencoders.com
_________________
My DSQuake video: http://www.youtube.com/watch?v=03wz7nmaXa8
My QuakeDS video: http://www.youtube.com/watch?v=nNIKneo11o4

#121870 - simonjhall - Thu Mar 15, 2007 11:23 am

Y'know this means that I'm gonna have to totally step up production of this game in order to stay in the running. Maybe I should call in sick for a week to get some coding done... :-P
_________________
Big thanks to everyone who donated for Quake2

#121872 - xtoc - Thu Mar 15, 2007 11:37 am

ok thx :)

#121991 - Tockit - Fri Mar 16, 2007 7:28 am

simonjhall wrote:
Y'know this means that I'm gonna have to totally step up production of this game in order to stay in the running. Maybe I should call in sick for a week to get some coding done... :-P


be that as it may, it'll still be fun to have 2 different builds of the game.

the way things are going, it looks like your version will be more adaptable, and modifiable for conversions and so forth.

plus, it sounds like you have the jump on quake 2..
any status report on that one?

keep up the awesome work!!!!
_________________
-01011101001010101010 (frank)

#122004 - simonjhall - Fri Mar 16, 2007 10:41 am

Q2:
Quake2 isn't getting the time it really deserves, what with the massive drive to finish Q1! It's coming along though and I should really show some screenshots of the game running :-)
It's pretty depressing though as (to me) it's a brand new source tree and none of the code is tuned towards running nicely on the DS. As the first game has stolen my soul I'm kinda worried about developing Q2. Plus people want QuakeWorld too...

Anyway, I'm still not confident that Q2 can be made to run as well as Q1 does, due to the memory requirement and the much larger textures.

Q1:
The total conversion and mod selection interface is coming along (and now pretty easy to use). At the very beginning of the game, if you hold down a key-combination it'll let you select how you want to start the game. I think I'll do something similar for the network setup...

I finished the new texture manager last night, so now I can properly texture the alias models (as they take lots of VRAM). This also means I can now comfortably fit in all the full-quality brush model textures, alias textures, lightmaps, hud textures, and gui textures that I need! No more mip level 1 :-D

Things left to do:
- finish lightmapping
- plug in dynamic lighting (via hardware lights)
- fix the sound attentuation
- optimise the model renderer
- optimise the collision detection
_________________
Big thanks to everyone who donated for Quake2

#122007 - Diddl - Fri Mar 16, 2007 11:23 am

simonjhall wrote:
Anyway, I'm still not confident that Q2 can be made to run as well as Q1 does, due to the memory requirement and the much larger textures.


is it doable with a RAM expansion to 32MB? some slot 2 cards has it (M3, SC, EZ5 expansion)

#122008 - simonjhall - Fri Mar 16, 2007 11:27 am

Diddl wrote:
simonjhall wrote:
Anyway, I'm still not confident that Q2 can be made to run as well as Q1 does, due to the memory requirement and the much larger textures.


is it doable with a RAM expansion to 32MB? some slot 2 cards has it (M3, SC, EZ5 expansion)
I am using the extra RAM already, and you will require it in order to play. The amount of memory isn't the problem - it's the speed on the memory compared to the size of the memory. I've gone from 4 megs at ~15 meg/second to 32 megs at ~7 meg/second. This means that I've got eight times as much memory that runs twice as slow.

The amount of VRAM also hasn't increased.
_________________
Big thanks to everyone who donated for Quake2

#122010 - MelGibson - Fri Mar 16, 2007 11:40 am

Maybe for Q2 one should seriously considering resizing / pre-processing the textures on a Computer before putting the whole stuff on the DS?

#122011 - Mrshlee - Fri Mar 16, 2007 11:46 am

in short.
Cards that should work
*Official DS RAM for Opera Brwoser
*M3 Slot 2
*Supercard Slot2

Nothing else?
_________________
MrShlee.com
Projects
Dev-Scene
MyTechpedia

#122013 - Diddl - Fri Mar 16, 2007 12:25 pm

EZ5 expansion!

#122015 - OOPMan - Fri Mar 16, 2007 12:26 pm

Erm, The G6, which also has RAM which people know how to use...

I would rank Opert cart support as a secondary priority for now, although I suppose it should be an eventual option...
_________________
"My boot, your face..." - Attributed to OOPMan, Emperor of Eroticon VI

You can find my NDS homebrew projects here...

#122049 - Doom5 - Fri Mar 16, 2007 7:24 pm

EZ5 expansion should clearly be supported before the Opera expansion. It has at least 4x the memory and is cheaper.

#122426 - OOPMan - Mon Mar 19, 2007 7:52 am

And even less available I think...

Sorry, I think priority should be given to devices the people actually use :-)
_________________
"My boot, your face..." - Attributed to OOPMan, Emperor of Eroticon VI

You can find my NDS homebrew projects here...