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.

Beginners > Beginner--a few questions

#65084 - Grays - Fri Dec 30, 2005 1:03 am

Yes, before you ask, I have read most of both the beginners' FAQ and the DS FAQ. I'm a computer science student, and I would like to develop my own applications for GBA and DS. I have not yet gotten into the technical code-level details; I wanted to get some hardware in the mail before I start playing around with emulators.

1. I want to be able to distribute my code in a cartridge (DS or GBA) for others to use without having to softmod anything or use adapters. Is this possible on the GBA? Is this possible on the DS? Cheaply, I mean.

2. Is it possible for a GBA cartridge, inserted into a DS or GBA, to distinguish which machine it's in and display dual-screen or single-screen functionality (as coded by me) depending on which machine it's in? Is it possible to do this without adapters?

3. As a significant addendum to the last question, is it possible for a GBA cartridge to be interpreted with dual screen functionality on a DS without softmod or adapters? With softmod, but no adapters? With both?

4. What is the CHEAPEST way to get code from a computer to a GBA cartridge? A DS cartridge? How about the cheapest rewritable cartridges for each system?

5. Could someone point me toward a good 3D graphics development library I could use for GBA or DS? Sorry if this was in the FAQ, I didn't see it.

Thanks in advance. (Please don't flame me if I missed something!) I tried to be as specific as possible and don't want to waste your time.

Grays

#65092 - tepples - Fri Dec 30, 2005 1:50 am

Grays wrote:
1. I want to be able to distribute my code in a cartridge (DS or GBA) for others to use without having to softmod anything or use adapters. Is this possible on the GBA? Is this possible on the DS? Cheaply, I mean.

GBA? Yes. (Ask SimonB, who coordinated replicating the compo cartridges.) Nintendo DS? You'll currently have to pitch your product to licensed publishers.

Quote:
2. Is it possible for a GBA cartridge, inserted into a DS or GBA, to distinguish which machine it's in and display dual-screen or single-screen functionality (as coded by me) depending on which machine it's in? Is it possible to do this without adapters?
[...]
3. As a significant addendum to the last question, is it possible for a GBA cartridge to be interpreted with dual screen functionality on a DS without softmod or adapters? With softmod, but no adapters? With both?

With PassMe, WiFiMe, or FlashMe, you can make a special NDS loader that sits in the GBA program's CRT0, detects whether it's being run in GBA mode or DS mode, and then runs the GBA program if it detects that it's being run in GBA mode. The SuperCard and M3 firmware use this, as does Chishm's GBAMP firmware. Without *Me, you get GBA mode from a GBA Game Pak or DS mode from a DS Game Card, and only licensed publishers have access to rewritable DS Game Cards.

Quote:
4. What is the CHEAPEST way to get code from a computer to a GBA cartridge?

"Code"? MBV2. You'll have to structure your code as a multiboot program

"Code that can boot away from a computer?" GBAMP CF. You'll have to structure your code as a multiboot program, but you can load further code and data from a CompactFlash card at any time.

"Code in ROM"? SuperCard CF or EFA-Linker (tie).

Quote:
A DS cartridge?

PassMe2 + SuperCard CF is the generally recommended setup until somebody gets some sort of WiFiMe2 working.

Quote:
5. Could someone point me toward a good 3D graphics development library I could use for GBA or DS? Sorry if this was in the FAQ, I didn't see it.

The full devkitARM distribution includes libnds, which implements a subset of the OpenGL spec.

Quote:
Thanks in advance.

Did people say "thanks in color" before mid-2001? :)
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#65098 - ScottLininger - Fri Dec 30, 2005 2:15 am

I'm a GBA guy... only dabbled in DS, so I can answer *some* of your questions... (or exand on Tepple's post.)

Grays wrote:
1. I want to be able to distribute my code in a cartridge (DS or GBA) for others to use without having to softmod anything or use adapters. Is this possible on the GBA? Is this possible on the DS? Cheaply, I mean.


It is possible to run "burned" GBA carts with GBA code on both the GBA and DS without any mods. The DS will run your GBA app in a single 240x160 screen (GBA mode), just like a commercial GBA game cart.

For actual DS code (3d, dual screen, etc.) only "firmware flashed" (softmod) DS's can run homebrew code, so for now you're stuck distributing DS apps to other homebrewers. (Eventually it might be possible to run small DS apps that are downloaded over wireless without changing the firmware, but I don't think anyone's done that yet, AFAIK.)

It is not yet possible to run homebrew code from a DS card, and my impression is that the hardware experts don't expect this to ever be possible.


Grays wrote:
4. What is the CHEAPEST way to get code from a computer to a GBA cartridge? A DS cartridge? How about the cheapest rewritable cartridges for each system?


For GBA cartridge, you're looking at $100 or so to get going with a cart and burner. Folow Tepple's advice for where to start.

The GBA carts themselves are expensive ($30 or more), so distributing them can be prohibitive. Now, there are folks on this forum who have gotten their hands on large quantities of carts for cheaper, ($5-$10) but these sources are well-guarded. If you're serious, you might try a post asking for people to PM (private message) you.

I've also had decent results just emailing retailers and asking them if they'll cut you a deal for larger quantities.


Quote:
5. Could someone point me toward a good 3D graphics development library I could use for GBA or DS? Sorry if this was in the FAQ, I didn't see it.


GBA is a very challenging environment to run 3D on, and I'm not aware of any dev library. All of the 3D posts I see about these are people building their own engines. Do a search on "3d" and you should get some good threads.

On the DS, it's part of the devkit.

:) Tried to be clear, but feel free to ask questions so I can clarify my ramblings.

Scott

#65104 - Grays - Fri Dec 30, 2005 4:02 am

Wow, guys, your answers were exactly what I was after. Thanks a bunch for the help!

#65109 - Grays - Fri Dec 30, 2005 5:27 am

Okay, then:

What I really want right now is to play around and get it working. I can buy real stuff later. I've been looking around, and will probably go with a SuperCard CF. When you say "EFA-Linker (tie)", I assume you mean that I can't go anywhere when I've got it in (which would explain the 46' cord in the package), right?

Thanks again.

[Edit:] Renewed question. Assume that I have a DS and a GBA, and a friend has a GBA. Is it possible to create software on a single CF card (with SuperCard adapter) that will recognize whether it's on a DS or a GBA, then properly run on all three machines? Assuming that my DS is softmodded to accept the GBA card, that is. Can I then plug that same CF into a friend's GBA with no strings and have it properly execute?

#65139 - tepples - Fri Dec 30, 2005 4:25 pm

Grays wrote:
I've been looking around, and will probably go with a SuperCard CF. When you say "EFA-Linker (tie)", I assume you mean that I can't go anywhere when I've got it in (which would explain the 46' cord in the package), right?

Nope. EFA-Linker is a NOR flash card; it can go anywhere your GBA or Nintendo DS goes. By "tie" I meant a draw (they cost roughly the same), not a tether.

Quote:
Assume that I have a DS and a GBA, and a friend has a GBA. Is it possible to create software on a single CF card (with SuperCard adapter) that will recognize whether it's on a DS or a GBA, then properly run on all three machines?

SuperCard CF expects GBA and DS code to have different file name suffixes (.gba or .nds). If you have a SuperCard, then it's probably best to make separate .nds and .gba binaries that read their assets from the same folder.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#65573 - Grays - Wed Jan 04, 2006 1:03 am

Well, thanks again everyone. I appreciate the feedback. Your answers have been incredibly helpful!