#164812 - Samurai Games - Sat Nov 22, 2008 1:27 pm
I've been told that DS is a nothing but a GBA hardware with two screen (from C Programming prespective). Is that correct? Seeing that DS have the same memory mapping (Graphic modes, background and sprites memory...)
Is GBA knowledge enough to start developing for DS?
Thanks.
#164813 - Kyoufu Kawa - Sat Nov 22, 2008 4:20 pm
I speak from experience when I say you'd be surprised. Though maybe that's just me.
#164814 - zzo38computer - Sat Nov 22, 2008 4:39 pm
Some of the memory mapping in NDS is different. Also, you need to do sound on ARM7 and video on ARM9 so that is another difference. But there are many similarities of GBA/NDS.
_________________
Important: Please send messages about FWNITRO to the public forum, not privately to me.
#164815 - eKid - Sat Nov 22, 2008 5:47 pm
GBA knowledge will make DS programming a lot easier. A lot of the graphics/other stuff is the same, maybe with some extended ability.
#164816 - Samurai Games - Sat Nov 22, 2008 7:53 pm
Thanks for the comments.
I've done some GBA programming a long time ago and I intend to getting started on DS. I've done some searching on the net, I just found some incomplete DS tutorials.
I would apreciate if someone point me to some good DS tutorials and resources (C/C++ & ASM).
Also, do you think the DS have some time before it goes dead (like the GBA did). I'll be very disapointed if I spent time on DS before I realize that is dead.
Thank you.
#164817 - Dwedit - Sat Nov 22, 2008 8:03 pm
Some stuff is not exactly identical, such as DMA. So code that writes values directly to the DMA registers must be updated.
Of course, sound is completely different as well.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."
#164820 - Cydrak - Sat Nov 22, 2008 9:21 pm
Mm. Yes and no... yeah, basically what people said.
Both screens match the GBA features and then some. However, there are some new registers and modesets. Bitmap and affine modes aren't crippled anymore, there are direct color sprites, and even palettes get extra love: you can opt for 16 x 256 colors per BG, instead of sharing. The "main" GPU has a larger address space and other extras, like 3D and render-to-framebuffer.
To feed that beast, VRAM is larger--and bankswitched. GBA sorta handled this for you... but now you have to assign them yourself, trading off between BG, OBJ, texture and palette space. Note that the screens are separate, and share almost no memory or registers. All this aside, GBA concepts like sprites and tilemaps, as well as many of the data formats, are exactly the same. Register naming may vary, but that's just an issue of looking everything up.
As for the rest, DMA, IRQs and timers do have close equivalents... but other things, like the audio mixer, are different. ...And then there's the dual processors. As said, the ARM9 and ARM7 talk to different hardware.
The default ARM7 binary provided with dkARM/libnds is fine to start with, but it's not comprehensive; if you want wifi, sleep mode, or music you'll need to make special arrangements. For simple apps, it's not too hard. But multiprocessing is a subtle beast, and may lead to hair loss in a serious project. libnds *is* slated to get a proper API for this eventually. Or you can look for one of the FIFO libraries which have been posted around here.
I started with DS myself, so I say if you're feeling brave, go for it! GBA experience certainly won't hurt, and it's a fun little system to code for; absolutely startling things are possible if you've got the skills and motivation.
Samurai Games wrote: |
I just found some incomplete DS tutorials. |
Yeah... I don't know anything that comes close to TONC and, of the more complete tutorials that do exist, some are not so accurate or outdated. GBATEK is really the best reference at the moment, and there are a lot of valuable threads on these forums. Emulators are still hit or miss for testing, so you'll need to drag out the hardware and not be afraid to experiment. If you can find or write a wireless testing solution, it'll really pay off. I highly recommend it.
Samurai Games wrote: |
Also, do you think the DS have some time before it goes dead? |
Been wondering about that... I do expect I'll pick up a DSi if they come out here (and seem hackable, of course :-).
#164821 - gauauu - Sat Nov 22, 2008 10:11 pm
Regarding tutorials:
Like Cydrak said, there's nothing as good as TONC. My recommendation: use TONC to learn concepts, then cross reference it with the libnds examples and GBATEK. For DS-only features, read the libnds examples and ask lots of questions. And agreeing with Cydrak: although no$gba is your best emulator, it's not as accurate for DS as VBA was for GBA. I've had all sorts of things that work great on the emulator but fail on hardware.
But like everyone else said: if you've been doing GBA dev, DS is a pretty straightforward step.
#164850 - Samurai Games - Tue Nov 25, 2008 4:09 pm
Thanks a lot for the info! Now I've got it... the GBA is nothing than a mini DS! :D
#164854 - sverx - Wed Nov 26, 2008 12:35 pm
Samurai Games wrote: |
the GBA is nothing than a mini DS! |
or "a DS is like two GBA" ;)
#164887 - sgeos - Sat Nov 29, 2008 10:45 pm
sverx wrote: |
Samurai Games wrote: | the GBA is nothing than a mini DS! |
or "a DS is like two GBA" ;) |
Plus 3D, a touchscreen, and a mic, minus the GB/GBC support.
#164894 - M3d10n - Sun Nov 30, 2008 4:14 am
You could say the PS2 is nothing more than a PS1 with extra stuff added around it as well.
#164902 - Samurai Games - Sun Nov 30, 2008 4:21 pm
BTW, are there any chances for a homebrew DS game to generate some money (selling it to licensed developers perhaps...)?
#164910 - silent_code - Sun Nov 30, 2008 8:24 pm
M3d10n wrote: |
You could say the PS2 is nothing more than a PS1 with extra stuff added around it as well. |
Well, saying that the NDS is a GBA with "extra stuff" is more accurate than that statement and you know it. ;^)
If you (the OP) plan to "go NDS" at some point anyway, then don't bother working with the GBA. You could learn some valuable lessons on the GBA and apply that to the NDS, but you could as well just learn the stuff directly on the NDS.
I'm just saying, that the NDS scene is mature enough to actually allow people to jump directly into NDS development.
Just wait with serious projects until the new libnds and devkitARM are out.
GBA knowledge and some basic idea of 3D concepts is usually enough to start with, if you have the programming skills. :^)
_________________
July 5th 08: "Volumetric Shadow Demo" 1.6.0 (final) source released
June 5th 08: "Zombie NDS" WIP released!
It's all on my page, just click WWW below.
#164917 - sgeos - Mon Dec 01, 2008 5:15 am
Samurai Games wrote: |
BTW, are there any chances for a homebrew DS game to generate some money (selling it to licensed developers perhaps...)? |
The short answer is no. You will know if this answer does not apply to you. If you need to ask, the answer is no.
Now, homebrew may get you hired by someone.
#165108 - tepples - Wed Dec 10, 2008 3:37 am
So you've been developing a homebrew game for one of the closed systems, either because you think it would work best in the quick-play scenarios typical of handhelds or because it needs a big screen to fit multiple players around. Now you want to sell copies through the legitimate channel. Try this: First port it to run on Windows, and then try to get a publisher's attention. The Windows port will help you learn to separate the game rules from the presentation, so that you can more easily port the game to whatever platform the publisher wants.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.