Zalo DS Blog

Monday, June 18, 2007

3D More and More!!

Here I am again. I am starting to realize how I hate writing into my blogs XDDD. Well, for some of you that may be wandering what I have been doing I am going to post it as brief as I can.

My engine did't work in some supercards
And I say didn't because now it works perfectly (well, I hope so). The day after I posted the previous entry in my blog, Olaia (one of the many girls we have at work :D) told me that the app I upload didn't work in her DS. First I thought it was because it was pink but after searching a little in some forums I realized that there was a problem with the SC Lite Rumble (or SC Rumble Lite, I never remember the name) that was also pink. It took me two weeks to realize what was goin on, but then I found a post saying that this kind of cards doesn't have an extra memory space where I used to store my application resources. Luckily there is another way to store resources using the bin2s application (whose developer mustn't be very proud of his application, I think, because there is almost no documentatin about how to use it >:/ )
Also there was a problem with the latest devkitARM version (r20) that makes any of your application not to work on that Rumble cards, so I am using r19 instead.

Problem with vertex boundaries
Yes, I wrote about this in the previous post. Vertices in DS must be in 4:12 fixed point format. That means any coordinate of your vertices must be between [-8, 7]. If you have a mesh in your 3d studio max and reescale it so that it fits into a big cube of that dimensions (16, 16, 16 and centered) you basically are doing nothing, because reescaling in max affects meshes's matrices but not vertices. So I changed my exporter to export normalized matrices and reescale vertices (well, in fact it was a little more complicated than that ^_^ but basically that's the idea).
With these changes in my exporter I also fixed a problem with normals (yeah, use always normalized matrices, my friend; you will never regret it XD)

Keyboard implementation
Sorry Ds but this is your fault. Keys interrupts in DS only work with key-pressed but not with key-released!! That made me change the class I implemented for the keyboard. I have also improve it so that it can tell me some screen touch coordinates info. And, of course all these things work in Symbian too :P (well, my n-gage doesn't have a touch screen... so there was nothing to do with that ^^U)

And... something new to show you

This weekend I was bored and tired so I have spent the whole two days at home basically doing nothing XDD. But I have compiled a DS application that will show you something very familiar from a N64 game :D
The application has two cameras you can change using "Select" in DS or "0" in Symbian. The first has been recorded in 3d max (by me, and that's why it looks so weird) and the other one is a new special one that I have developed for DS, you can move it with the touch screen and the control pad (like in the Metroid game)

Download it from here:
Symbian
Nintendo DS

Well, and now everything is ready to make a game. So I think it is about time :)

PD: don't think that I am working on a n64 emulator or somethimk like that. The scene has been exported from one of the n64 emulators using a plugging and then converted to my own format from 3d studio max.

6 Comments:

  • para cuando el emulador de n64??? juaaaaazs. muy bien gonzalo, te estás dejando la vida con la ds :P.

    ahora es cuando pablo dice. PERO USA SOFTWARE LIBRE Y HAZTELO PARA LA GP2X.

    By Blogger flipper83, at June 18, 2007 8:13 PM  

  • I checked the demo and it is amazing. About keys, in the old chris_double _tut, was mentioned the function keysUp(), that after a call to scanKeys() should give you the keys released, but i don't know if it works correct. In the TONC tutorial this issues are discussed for GBA but may be they apply for DS too.
    Man, great work, you make me want to try it...

    By Blogger chinovader, at June 21, 2007 9:36 PM  

  • Yes, I have used those functions. But I have read the code in libnds and basically what it does is a comparation between the current keys state and the previous one. If a key was down and now it isn't then libnds tells you that there is a KeyReleased. That's work althought it was not exactly what I wanted. But I think that in a game runnin at 60hz that is more than enought

    Btw, you have to try it!! I am into this because of you :P

    By Blogger Zalo, at June 21, 2007 11:25 PM  

  • i see i am supposed to write my comments in english .
    Ok , let´s go : i´m muzzy , i´m hungry ... ups sorry ! .
    good work , zalo , congrats !! i think we´re all waiting your ds game , don´t give up , it worths it .
    what´s the "chris_double _tut" ? . jaja .
    who is the mysterious btw ? .

    So , jorge , you´re the only one writting in spanish ... uffff badbadbad . :)

    By Blogger platinio, at June 22, 2007 12:09 PM  

  • what tool did you use to extract models from N64 games?

    good work :)

    By Blogger javi, at March 04, 2008 2:47 PM  

  • There is a tutorial here http://www.emutalk.net/showthread.php?t=25503

    It tells you how to extract scenes in wrml format. What I do then is loading these scenes in 3d max and then export them with the pluggin I developped for ZEngine. :D

    By Blogger Zalo, at March 05, 2008 11:53 AM  

Post a Comment

<< Home