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.
This is great! Let's try to get some emulators for this thing.
:)
:)
How good is the processor? Good enough to emulate an NES? If not that, is it at least good enough to emulate a Colecovision? Failing that, can i at least run my TI-83 games? "Diamonds" is fun
Next question: How big is the maximum storage space of a GBA-compatible flashrom? Big enough we could fit in a super-stripped-down version of linux, if we were REALLY REALLY bored?
While this is Good Thing (TM) and will encourage some interesting games for the handheld system, I am a little worried about who might try and use this to convert their favorite SNES ROMS (Chrono Trigger, FFIV (II US), Super Metroid, etc) to their own ROM kit and play it.
Ah, screw it - I want to see this happen, just so I have a reason to take the train into work and play Super Mario RPG.
52 Weeks, 52 Religions with John Hummel
With sources out for games like Descent I (and II), and Doom/Heretic/Hexen, etc... I'm awaiting to see someone port these games to GBA...
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
Hey, maybe we'll see Tux Racer for the GBA? That'd be tight.
Actually, how low-level is the API? Any chance someone could get Linux running on one of these babies?
Karma: Good (despite my invention of the Karma: sig)
I can start those rumors about someone porting Mario 64 to it! With any luck, it'll be as big as the DooM 2600 project. ;o)
[PowerPoint] is a tool for capitalist presentation
I was planning on trying to develop something on my friends PS2 when he got the Linux kit. But since I actually own a GBA, this is a much more worthy project. I want to see someone do some good network games...I'm going to try and create something similar to Strategic Commander (PalmOS game from www.zindaware.com) that can actually communicate over the cables...maybe even allow disconnects and continuations. Wouldnt that be fun :-)
http://thechubbyferret.net - Ferret pictures and informative links.
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"
I think a better idea is to keep linux away from it, stop recycling old games with emulators, and make some new worthwhile 2d games. I'm sick of the navigate a 3-D space to collect imiginary trinkets games such as Jet Set Radio, and Luigi's Mansion. Emulators are fun because their games have story and fun, not just a massive 3-D space demo.
Some of the better games were the 2D scrollers such as Double Dragon II or Super Mario 3. They at least had replay value.
It's already been done by David A. Parkman productions (or something along those lines) and you can buy it for the affordable GBA cartridge price of $35. It's very true to the original game. The only problem is, of course, the dark screen which people will quickly remind you is not a problem with the GBA AfterBurner upgrade [Triton Labs]. I've really been getting into Doom again with this release (as much as sunlight allows anyways). As for other games, expect the most popular SNES games to appear on the GBA. Breath of Fire I and II (by Capcom, top-notch RPG games) have already been ported. I must admit that, lately, visiting all my old favorites on a portable system has been taking up more of my time than next-gen console games. You can't beat good gameplay, no matter the format.
This is nothing really new. I have been doing homebrewed GBA development for a while (bying a flash cart this summer). Here are some links of GCC cross compiled for ARM/THUMB.
:)
Linux and Windows
Also check out gbadev.org for all sorts of demos (source included), emulators and tools.
As a note, I am working on a full API for the GBA called GGAPI. I can do rotation backgrounds, 8-bit bitmaps, hardware sprites and more so far...so again...nothing new...hope you enjoy
Unstable Apps: Our Android Apps Don't Suck
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
the port couldn't have been that hard, i mean, with the foundation of the operating system being so close to it's native environment.....they could squeeze a LOT more usability out of it with just a little more work. i do applaud what they have done!
--fetch daddy's blue fright wig, i must be handsome when i release my rage
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."
I think that companies like Nintendo and Sony and such should sell stipped down dev kits for like, say $50... including software you'd need and maybe a transfer cable.
No disrespect to the great underground game hackers out there, but I don't think there is much of a risk of an uber fantastic game like Gran Tourismo 3 getting put out. If there is, maybe a deal can be struck to distribute the game to the masses. The gaming industry itself could see what's being turned out, and maybe find some new prospective talent.
I also think that the console manufacturers should make and sell (as well as install for a fee) mod chips to play IMPORT games (not burned games) because then they can make more $$$ selling the import games (as well as maybe an import fee, who knows)
There are only 10 kinds of people in this world... those who understand binary and those who don't
I dipped into lankwei.com (as mentioned in the original article), and found this page with info on various flash ROM products. Not exactly cheap...
-----
Apple hardware still too expensive for you? How about a raffle ticket?
Come to the University of Mars! Classes starting soon!
Why don't you just buy a 486 laptop? There are tons of them out there available for practically nothing. Then you don't have to putz around with some gameboy and a non-standard SDK.
So who's gonna get a kernel booting on the GBA? Then we can get mpg123 goin and flash the cartridge with our fav mp3's.
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
I've been running the unofficial gameboyadvance developmentkit mirror in the Netherlands for quite some time. Jason has a datalimit of some 500Mb. The packages have shown a consistend demand of about 400 downloads/month generating aprox. 8Gb/month ever since the first version in August of 2001. So it's nothing new. Bandwidth has been an issue for him espacialy since he had to make the full gcc sources available instead of only a patch. I've been waiting for it to get slashdotted, I'll be monitoring my traffic tonight!!! :)
I know that the Game Cube can use GBA as controllers. I am not sure what the interface protocol is like, though. Do you think that it might be possible to make custom GBA carts for Cube games, that provide enhancements (cheats, etc) to a game playing on the Cube?
Actually, the gameboy compiler I used, while missing a few features of the C language, was *very* strict when it compiled C - I don't use C much, but I learned how much non-standard C that textbooks are full of.
:) And if I actually hacked something together, it would be for fun. When I do things purely for fun, I don't care about standards.
In any case, I have a laptop I could haul around if I want too. I'm just more likely to have the gba in my backpack
Robots are everywhere, and they eat old people's medicine for fuel.
I've heard U.S. Customs is seizing things like this siting the DMCA and that it MIGHT be used for piracy.
--Won't that be grand? Computers and the programs will start thinking and the people will stop. - Dr. Walter Gibbs
You can get the GBA hardware carts/writers from: Lik Sang
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
So does this mean that with the ROMS that are for the SNES, we could somehow make our own port of say "Secret of Mana" (or some other SNES title) for the GBA? That would be awesome! Though probably not awesome enough for me to spare time to learn this.
The ROM writers that you can get from lan-kwei.com were being seized at US starting earlier this year as they arrived. Nintendor went on a big campaign to try to eliminate this type of thing. They feel that flash roms lead to pirating.
If your GB compiler is the one I think it is (the one I used, the one that comes with that IDE), then I don't think it does support standard ANSI C - it's bitched at me for not putting a \n after my closing brace before now - that's a K&R-ism unless I'm gravely mistaken...
:-)
However, the GBA compiler, like the N64 one, is a GCC port, so as always you can get away with murder
Nope that's not the one. THe one I am talking about bitched about something I did with a function that I was taught from a textbook that was not ANSI-C.
Honestly, I don't remember for sure, but it wasn't an escape character.
The things the compiler was missing were due to limitations of using 8 bit hardware - namely large datatypes.
Robots are everywhere, and they eat old people's medicine for fuel.
Emulation - Thus far, the GBA can emulate the following near perfectly:
NES - PocketNES
ZX Spectrum - Foon
Chip-8 - Various
Currently in development, and playable:
Sega Master System - PocketSMS
Amstrad CPC 6128 - PACO
Gameboy Classic - GBonGBA
In development, but unreleased:
Commodore 64 - SPLAM
Various Arcade - Arcade Advance
Atari 2600 - Unknown
The GBA does NOT have the power to emulate the SNES, or even the Megadrive. Porting a ROM would be impossible without the source-code, so that's out too. The GBA has a -really- paltry amount of RAM, so most ambitious projects aren't achievable.
Porting games simply by copying the design does work, however - I've spent the last week or so playing a port of the Gollop Bros ZX Spectrum classic, Chaos, so stuff like Nethack is feasible. I believe there's also a FROTZ interpreter, for Interactive Fiction fans.
Other interesting stuff has been done - there's an MP3 player, an MPG player, MOD and NSF players, and a complete shell system that integrates games launching with text files, music and other stuff. It's a good laugh, but not cheap.
One last thing - the ISDA is right to be worried, the flash carts can be used for software piracy. Just pop a ROM in there (some need patching) and it's go. One cart can hold up to eight or so commercial games. While they're marketed as amateur dev-kits, they're basically being designed with piracy in mind these days. US residents will have a bugger of a time trying to import them.
But a devkit would allow you to work on a SNES emulator wouldn't it?
The Super NES has two processors connected by a slow bus: a 3.6 MHz 65C816 and a 2 MHz SPC700 (both relatives of the 6502). The GBA barely manages to emulate the NES with a 1.8 MHz 6502 processor. Besides, most games actually use all 224 scanlines of the display, not the 160 the GBA gives you.
If you want Genesis or Super NES games on GBA, either port them yourself using Devkit Advance (creating new levels and characters to circumvent copyright law) or petition the original publisher.
Will I retire or break 10K?
Here's the link
GBDK
Robots are everywhere, and they eat old people's medicine for fuel.
SNES games were written in ASM, GBA games are mostly written in C.
The inner loops of the graphics transformation and sound mixing in most GBA games are written in ARM assembly language and stored in a special fast RAM on the same die as the CPU.
Will I retire or break 10K?
I'd love to see Nethack for the GB. I'm currently working on a Palm version
Doesn't nethack have more than 256 KB of state? The GBA has only about 288 KB of RAM on the console and 32 KB of RAM on the cartridge (for saved games).
Will I retire or break 10K?
we could somehow make our own port of say "Secret of Mana" (or some other SNES title) for the GBA?
No you couldn't, not at least until after December 31, 2088 (1993 SoM release + 95 year copyright term).
You'd have to make your own RPG, with your own characters and your own story. But if you want that, just go buy Golden Sun.
Will I retire or break 10K?
have you seen the graphics on the GBA? It could easily handle almost any SNES game natively (screen size issues aside, that might cause problems with some games). I guess it would be like trying to port an application without access to the original source code.
BlackGriffen
let's get ogg123 going.
You'd probably have to build the decoder hardware into the cartridge, as the GBA's processor is a 16 MHz ARM7TDMI.
Will I retire or break 10K?
The SNES was a 65816, the same chip used in the apple IIgs- except that it was running at 10mhz
No. The Super NES had a 3.6 MHz 65C816 and a 2.0 MHz SPC700.
maybe we should wait to see if a single game even gets created.
Here's such a game: Tetanus On Drugs. It's like playing Nintendo's The New Tetris® on LSD, except without the DEA breathing down your neck.
Will I retire or break 10K?
have you seen the graphics on the GBA?
More than that: I've written GBA games such as Tetanus On Drugs. The GBA's graphics hardware is very similar to the Super NES's, but its sound hardware more closely resembles a Sound Blaster Pro.
I guess it would be like trying to port an application without access to the original source code.
And without access to the graphics and sound for the next 90 years (no thank you Sonny Bono!) unless you petition the publisher to let you do a port.
Will I retire or break 10K?
The GBA has a 32-BIT ARM. The 6502 is GB-compatible. The GBA has a >16MHz 32-bit ARM. That is Infinitely more powerful than a 65C816. The GBA runs laps around the SNES.
Have you ever played a GBA? Let alone know anything about it?
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
Jon Barrett recently bought some Sun Microsystems stock, and let me tell you, it left him with a torn open anus.
The 6502 is GB-compatible.
NO. The 6502 architecture (used in the NES and Super NES) and the Sharp-Z80 architecture (used in the Game Boy and Game Boy Color) are mutually incompatible. Otherwise, the Wide Boy (play Game Boy games on the Famicom, the Japanese NES) wouldn't have been so d*mn expensive.
That is Infinitely more powerful than a 65C816. The GBA runs laps around the SNES.
I have a 75 MHz Mac and a 333 MHz Acer laptop, and the laptop runs laps around the Mac. However, I don't think Mac software would run in real time on the laptop. There is a LOT of overhead involved in emulation of binary code for a foreign processor. It's not like wine, which is just a PE loader and a re-implementation of the Windows DLLS. It's not like vmware, which runs the target OS on the native processor and emulates the rest of the motherboard. You actually have to interpret every single instruction.
Have you ever played a GBA?
Yes. I've developed for the GBA, and I know that its CPU is not fast enough to emulate the whole Super NES chipset (65C816 Plus, Super PPU, SPC700, DSP, and Super FX) in real time. In general, a port of a Super NES game to the GBA is straightforward (except for the smaller screen size, the lack of A and X buttons, the lack of a mouse, light gun, or other pointing device, and the completely different multiplayer paradigm), but it does require access to the original trade-secret source code. You can't just prepend SuperNESOnGBA.bin to the .smc file as you can with NES games.
Will I retire or break 10K?
I used to be a retro gamer only, till I tried out Tony Hawk Pro Skater on a friend's Playstation.
Pro Skater is one of the most amazing games I've ever played. I've clocked in literally hundreds of hours on the series, and even got Pro Skater 3 to say "Game Complete" after beating it (no cheats) with all 25 characters. I'm currently trying to beat THPS2 again, but on my dreamcast this time (different bonuses than the N64).
My Point: Tony Hawk Pro Skater convinced me that spending time with 3-D games was worthwhile.
For those who like RPGs/deep story games, the next gen consoles are perfect: Skies of Arcadia, Final Fantasy, etc... those are fun, though not my favorites.
But the thing is that there is a lot of AWFUL games out there and a lot of games that just look cool at first and have no replay value.
I am very sad to see 2D games getting more and more ignored, but when stuff like Ikaruga, Capcom vs SNK 2, and Castlevania GBA are still being made, there is at least some hope. I think some development team is going to make a mindblowing 2D game one of these days, with twice as much resolution and animation frames as anything done in the past and it will bring 2d games mainstream appeal again.
The 65c816 was more than a 6502 on roids. It was a fully functional 16bit cpu
The 65c816, used in the Apple IIGS computer and Super NES game console, was a 16-bit processor with an 8-bit data bus and only three integer registers (A, X, and Y).
at least as capable as some low end 32bit cpu's
The Motorola 68000, used in the Sega Genesis and SNK Neo-Geo game consoles and the original Apple Macintosh computer, was a 32-bit processor with a 16-bit data bus. So was the Intel 386SX processor, used in some PC clones.
Without looking at the specs, the GBA is certainly more powerful than the SNES
After becoming intimately familiar with the specs, I'd say twice as powerful overall, or about as powerful as the Super NES with Super FX.
but we're not talking orders of magnitudes.
Correct. In general, you need at least an order of magnitude speed difference to emulate a video game console. The 16 MHz ARM7TDMI in the GBA just barely squeezes by when emulating a 1.8 MHz 6502 and the rest of the original NES chipset.
Will I retire or break 10K?
devkitadv is a GCC port for the GBA which has been around for OVER TWO YEARS. Flash carts from www.visoly.com have been around for about the same.
Huh? The Game Boy Advance system itself has been available in the United States of America for only one year. (IIRC, the anniversary is about a week from today.)
Will I retire or break 10K?
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.
I just wish that the original Game Boy Development kit would have some progress made on it. Array support is still broken, and I can't get a response from the author by email.
~ Why is there no reason modifier for overrated posts?
Maybe not but games aren't the only software that will run on the GBA. Some of the best Palm software is open source: Weasel. Plucker, Diddle, Keyring, etc. Gameboy (the first) was popular with electronics hobbyists because it was so easy to hack and program. I can see the same thing happening all over again with GBA. A 16MHz ARM and a colour LCD all running off batteries is nothing to sneer at.
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.
Moderate this up, please.
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.
:) Same reason I didn't really grammar or html check; it's a minor miracle i didn't screw any of those links up.
(grins) Yet another reason not to post stoned.
StoneCypher is Full of BS
If you owned a copy of the game, would it be illegal for you to port it for yourself, and never release the port? Without distributing it, you shouldn't run afoul of copyright, should you?
First of all, 17 USC 106 prohibits merely preparing derivative works. Not distribute, prepare.
Second, it would be 100% wasted effort, as you would have no way to advance yourself in the world through something you keep entirely secret.
Will I retire or break 10K?