Unofficial GBA SDK Available for Free
BlackGriffen writes "Anyone who is interested in making their own Gameboy Advance ROMs can go get an unofficial GBA SDK . With this and a flash ROM kit from someplace like lan-kwei.com, we could see a flourishing indie game making community. Available for Linux and Mac OS X only (for now, it's open source)."
I hope we can see more open-source community support for Mac OS X in the future. It's projects like this that help to solidify its position as not only a great consumer OS, but as a great workhorse and development OS as well.
NES emu
Spectrum emu
Sega Master System Emu
DOOM is already available on the GBA.
Descent is probably beyond the GBA's capabilities, since it uses arbitrarily-angled perspective-correct textured polygons, which are a fair bit harder to render on a low-end CPU (the GBA has a 16MHz ARM7 CPU).
I guess you could just flat-shade the whole thing, but it wouldn't look anywhere near as good.
This sort of stuff has been around for a while.
here is one dev kit
here is some more stuff
that should give you plenty of links to play with.
The link in the article refers to the MacOS X port. Check out this for the "original" Unofficial Gameboy Advance SDK. It has been available for about a year or so. It has always worked on Win32 platforms too, so the submitter did a really bad job. The compiler in the SDK is actually GCC.
Check out www.gbadev.org and www.devrs.com/gba/ for some other GBA development stuff. (And while you're at it, check out my own GBA-page for some of the demos i've written for the GBA :)
This is not really news. Jason Wilkins, the creator if the Unofficial GBA DevKit, released it to the public at least a year ago. Also, there is a Win32 version (it came first).
This DevKit is basically just a port of GCC to the ARM with some AGB specific startup code for interrupt handling and whatnot. The official DevKit from Nintendo is the same thing (although using an older version of GCC), but you get some extra hardware and software also. Having done AGB development for a while, it is nice to have alternatives like this unofficial devkit available, but it is nothing revolutionary. The impressive thing is actually how good the emulators have gotten recently, they should begin to allow even official developers to rely less on the expensive Nintendo hardware for normal day-to-day development.
"Even when I say nothing it's a beautiful use of negative space." - Indelible, "Fire In Which You Burn"
Who says you have to program only games?
I used a homebrew SDK to design a digital voltage meter that plugged into a gameboy/gameboy colour when I was in college - It measured Vrms better than some commercial products we tested against.
I'd like to do a PDA setup - maybe I can hack a keyboard together to plug into my gba - someone did it for the gameboy - link - look about halfway down the page.
Besides, the GBA is a good medium to develop games for - you don't need a team of 3d modellers and designers and whatnot - you can do with a designer/programmer, artist, and musician.
Plus it's just fun to hack around with console games!
Robots are everywhere, and they eat old people's medicine for fuel.
At about $70 (Game Boy Advanced, Amazon price), you can create custom games, ports of other things, etc. This sounds to me like a much more practical thing to purchase to play around with the the PS2, which is in at least the $500 range to start hacking your own stuff for.
It would be interesting to know how many people will create practical, non-game applications. I know there are many non-game attachments, like a TV tuner and digital camera available for the unit.
I may actually get one of these myself to hack around with. The "other half" says I shouldn't waste money on the PS2, cuz I will may write one application, then never touch the $500 investment again. Same thing with the Sharp PDA. $70 is much more reasonable for this type of hobby.
-Pete
Soccer Goal Plans
>Actually, how low-level is the API?
well if you realyl want to consider assembler an API, that is your answer. ARM flavored assmebler.
This would totally rule.. I'd love to see Nethack for the GB. I'm currently working on a Palm version, and of course, it'll work on Windows CE, but honestly, wouldn't Nethack be an awesome alternative to bejeweled on the bus?
The Dopester
"Yes, I'm a Karma Whore, but I'm doing it to pay my way through school."
Sorry - should have clarified - the ones I listed are all emulators for the GBA. You can burn a flash cart containing 100's of old videogame classics, and play them on your GBA.
HAM
The SGADE
The original Unofficial GameBoy Advance Software Development Kit
UK users should buy their kit (Flash ROM kit and lighting kit from Craig Rothwell -- reliable feller.
http://www.blitzbasic.com/
Graphics3D 640, 480
The ability to program for the GameBoy Advance is *not* Linx or Mac only. The biggest group of developers centers around a partial build of GCC called "DevKit Advance", which has pre-made setups for Win32 and Linux. There are smaller communities each around "HAM", "SGADE", and "GCCGBA" - all Win32 prebuilt only. If you've ever built your own GCC, however, you can build to GBA, and that means you can build from damn near *anywhere*.
Good places to go to learn:
Compilers:
Some interesting stuff that's been done:
Miscellaneous news sites with links to code and tools:
Anyway, this is by no means an exhaustive list, but it's a start, and you can get to most of the good ones from there by linkage. If anyone needs a hand, my email address at slash should work.
StoneCyph on EfNet, johnisaheadcase / Fatty diZilla on mailing list
StoneCypher is Full of BS
Actually, how low-level is the API? Any chance someone could get Linux running on one of these babies?"The API" isn't. HAM has an engine, SGADE has an engine, there are others (I don't use them), and there are some commercial ones. But, here's the thing: the hardware does a lot of stuff. Sprites and backgrounds are supported in hardware, and do scaling and blending stuff, etc. It's just register tweakage. You don't really need an API.
Big N does send an API of some sort, but I'm not a licensed developer, so I know dick about it. I'm told it's not that much of a difference - mostly just wrapper functions.
There are other compilers which can target the platform. Commercial people often use the ARM ADS or SDT. Other tools, like the Metaware toolchain and the Green Hills Optimizing Compiler (it's part of the name, not a parroted description, settle down) are commonly used because of their purported performance. Far from being an expert myself, I'll just point you at the Dhrystone that David Welch graciously presented to the community.
Homebrew developers thrive on being told it can't be done. The more you tell them they can't do commercial stuff, the more you're going to see commercial stuff done. That's what got me started.
This is our world now...the world of the electron and the switch, the beauty of the baud. Pre-chewed pieces of pap! And shouldn't be teaching anyway!!@!3T1!! r00l!
cough Sorry. Old habits die hard.
StoneCypher is Full of BS
Descent is probably beyond the GBA's capabilities, since it uses arbitrarily-angled perspective-correct textured polygons, which are a fair bit harder to render on a low-end CPU (the GBA has a 16MHz ARM7 CPU).
You should see some of the stuff that's going on. There are a number of fully textured 3D engines out there, one of which actually uses Descent levels as its examples! (I linked to another in my previous post which uses the quake level 1) A good example is the Raylight [raylight.it] engine, though there are probably a dozen that I've seen (and a few proprietary, one of which I'm about halfway done writing
None of these engines do true perspective correct texturing. And yes, I'm fairly aware of the work that's going on out there - I am the author of FooN, and have also written a bunch of 3d engines for the GBA. My point was that, while DOOM/GBA is a more-or-less exact replica of the PC version, Descent/GBA is not going to look anywhere near as cool as the original.
Sorry - should have clarified - the ones I listed are all emulators for the GBA.
Sorry, but not even remotely close. You didn't even get the popular ones. There's a pretty decent list here [zophar.net], at Zophar's Domain (a pretty good dev site)
Read. Comprehend. Post.
"The ones I listed are all emulators for the GBA". Not "These are all the emulators for the GBA".
In other words, the emulators I listed are all emulators that run on the GBA, and emulate other machines.
Another thing - you mistakenly state that the GBA has a Z-buffer. WTF? As someone who claims to be developing a 3D engine for the GBA, you must be aware that the GBA most certainly doesn't have a Z buffer. It doesn't even have any polygon rendering hardware.
A couple of other things:
Yes, a linux distro would fit
Since RAM is limited to 256K(slow) + 32K(fast), it's unlikely you're going to fit a Linux distro that can do anything meaningful. Bear in mind that the ARM7 does not have a MMU, so you'd be limited to uCLinux or something of that ilk.
Yes. In fact, there's a port of an emulator which runs NES binaries
It's not a port. It was written from scratch.