Slashdot Mirror


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)."

42 of 143 comments (clear)

  1. Bravo for Mac OS X support! by PrimeWaveZ · · Score: 3, Interesting

    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.

  2. Hm...Rom conversion, anyone? by Dark+Paladin · · Score: 2

    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.

    1. Re:Hm...Rom conversion, anyone? by edwdig · · Score: 2

      The GBA and the SNES are nothing alike. They have about the same processing power, which is why a lot of games get ported. But the SNES is a 16 bit version of the 6502 (Nintendo tried for NES back compatibility, but it didn't work out), whereas the GBA is a 32 bit ARM processor.

      You have to compeletely rewrite an SNES game to get it on GBA. A GBA devkit won't help with that.

    2. Re:Hm...Rom conversion, anyone? by benwb · · Score: 2

      The SNES was a 65816, the same chip used in the apple IIgs- except that it was running at 10mhz if my memory serves correctly, and a stock gs only runs at 2.7. It had a whole lot of funky things going on (like a 24bit address space and 16bit registers) but it was almost completely compatible with the 65c02. It was also probably the last general purpose microprocessor designed by hand.

    3. Re:Hm...Rom conversion, anyone? by tzanger · · Score: 2

      They have about the same processing power, which is why a lot of games get ported. But the SNES is a 16 bit version of the 6502 (Nintendo tried for NES back compatibility, but it didn't work out), whereas the GBA is a 32 bit ARM processor.

      Let me get this straight. A 10MHz steroid-addled 6502 could keep pace with a 32-bit ARM processor? Did I read that right? Or does the GBA really have a lot more processing power that isn't being tapped?

    4. Re:Hm...Rom conversion, anyone? by NoMoreNicksLeft · · Score: 2

      The 65c816 was more than a 6502 on roids. It was a fully functional 16bit cpu, at least as capable as some low end 32bit cpu's *COUGH*386sx*COUGH*. The ARM is a decent 32bitter, but hardly the top of the food chain. Without looking at the specs, the GBA is certainly more powerful than the SNES, but we're not talking orders of magnitudes.

  3. Finally! by Rayonic · · Score: 2

    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)

  4. Re:EMULATORS! by strags · · Score: 3, Interesting
  5. Forget the PS2... by pogle · · Score: 2

    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.
  6. Re:I wonder... by strags · · Score: 3, Informative

    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.

  7. gba development has been around for a while by bberg · · Score: 3, Informative

    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.

  8. Old news by neonstz · · Score: 5, Informative

    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 :)

  9. Unofficial AGB development by totalnubee · · Score: 4, Informative

    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"
  10. Bring back 2D by imta11 · · Score: 2, Insightful

    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.

  11. Re:because... by IIRCAFAIKIANAL · · Score: 4, Interesting

    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.
  12. Practical Toy Hacking Device by peterdaly · · Score: 5, Interesting

    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

  13. Re:awesome by cwebster · · Score: 4, Insightful

    >Actually, how low-level is the API?

    well if you realyl want to consider assembler an API, that is your answer. ARM flavored assmebler.

  14. indie games for Gameboy.. by ldopa1 · · Score: 3, Interesting

    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."
    1. Re:indie games for Gameboy.. by colmore · · Score: 2

      If you do this, you will be my god. (and by god, I mean Molloch)

      --
      In Capitalist America, bank robs you!
    2. Re:indie games for Gameboy.. by Junks+Jerzey · · Score: 2

      This would totally rule.. I'd love to see Nethack for the GB.

      So you want indie games...that are really just ports of old games? Isn't that like worshipping a cover band?

    3. Re:indie games for Gameboy.. by Junks+Jerzey · · Score: 2

      Porters should be as respected as other programers.

      I've done ports; they're at least an order of magnitude easier than writing original code. Porting a game is usually done in one to six months. New games take 1 to 3 years. If you cover a song, you at least have to learn how to play it. When you port code, you just diddle around with select parts of it on the backend until it works.

      The spirit of the indie game scene is *design*. Ports of Nethack and emulators are boooring.

  15. Dev kits by Alizarin+Erythrosin · · Score: 2, Insightful

    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
    1. Re:Dev kits by TheAwfulTruth · · Score: 2

      Heh, :) well even as jest, maybe we should wait to see if a single game even gets created. (And not another F'ing port of nethack!)

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
  16. Re:EMULATORS! by strags · · Score: 3, Interesting

    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.

  17. Keep up, Slashdot. Here are a couple more... by thesurfaces.net · · Score: 4, Informative
    Some existing GBA dev kits...

    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

  18. If you can get a flash cart... by Arcturax · · Score: 2

    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
  19. Better details by stonecypher · · Score: 5, Informative
    I've submitted this maybe a half dozen times with more linkage. Oh, well. :)

    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:

    • IRC: #gbadev on EfNet - fairly active channel full of developers, mostly amateur but a few commercial. DO NOT ASK FOR ROMS OR COMPILER DOCS HERE! You would be summarily banned. This is a legit ONLY channel.
    • Yahoo! Groups "GbaDev". Many of the same crowd as above, but a larger populace, and by email, not realtime chat. Also, there are archives. :) Many of your problems - even surprisingly difficult ones - can be answered just by digging through the archives. Moderated.
    • There are more tutorials than just The Pern Project, but I can only ever remember that one. :) I got started before that tutorial, so I have no idea of its quality (many people seem to have started with it)


    Compilers:
    • SGADE - The Socrates GameBoy Advance Development Environment - Good, complete, fairly easy to install, completely unrestricted open source. Developer is tireds and overbusy, and wants someone to take over the development. (Yahoo group also available
    • HAMFree for non-commercial development. Has an installer; fairly painless for Win32 people. There are requirements about using is commercially which I personally do not dig.
    • DevKitAdvance - The modified distro of GCC that the bulk of us use. You'll see Jason's name on GCC mailing lists from time to time. Thanks, Fenix. (This is the kit I use, though rather heavily modified)
    • Someone whined and GCCGBA was taken away from us, because it wasn't a whole GCC distro or something (the discussion was never made public, and I'm going by rumor); the remaining packages don't seem to have trouble, but I'm a little will happen to other compilers over time.


    Some interesting stuff that's been done:


    Miscellaneous news sites with links to code and tools:
    • GbaDev.org - The canonical news source, especially since AGBDEV.NET died. Most things are covered here. Those that aren't can be found at
    • Jeff Froweihn's Devrs.Com. Jeff Froweihn wrote the lnkscript and various other stuff that you're likely using if use use the homebrew community's stuff. Thank him. Also, he maintains an aswesome, if difficult to take in at once, news site.
    • GameBoy Land


    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
    1. Re:Better details by phobialab · · Score: 3, Informative

      Thanks for the kind words on the SGADE, but your information is a little out of date.

      Development of the SGADE has changed hands (to me), and is now continuing full force. The new release should be up sometime this week, with additional releases following roughly every three weeks for the next few months -- each adding even more functionality.

      The website has also changed, and is currently undergoing an overhaul.

      -- MTP

  20. Re:because... by Snootch · · Score: 2

    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 :-)

  21. Re:I wonder... by timster · · Score: 2

    The idsoftware screenshots are really lame. Check out the better shots at Gamespot. There's plenty of different heights and I don't recall Doom having a very engaging lighting model in the first place.

    --
    I have seen the future, and it is inconvenient.
  22. GBA not powerful enough to emulate Super NES by yerricde · · Score: 2

    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?
  23. Asm vs. C on the GBA by yerricde · · Score: 2, Insightful

    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?
  24. Not powerful enough to *emulate*, but... by BlackGriffen · · Score: 2

    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

  25. Here's such a game by yerricde · · Score: 2

    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?
  26. Right. Following through. by stonecypher · · Score: 5, Informative
    Okay. Some stuff I missed, after reading through the questions.

    • The hardware supports carts up to 256 megabit (32mb) in size. There are flash carts which have more space, however, through software bank switching. No commercial ROM currently even hits the hardware size limit (manufactureing costs, it is widely believed, are to blame; it may be the case that Big N limits the available size of carts to both themselves and third parties)
    • Yes, a linux distro would fit. No, it wouldn't be any fun without a keyboard. Yes, TCP/IP has already been done (a working webserver, which IIRC was even on SlashDot already. That's what caused me to try to post the homebrew dev scene the first time.)
    • Emulators: there are about a dozen good ones around; many stick to VisualBoy Advance and Mappy Virtual Machine for development. VBA is often regarded as the best and fastest emulation, and Mappy is usually seen as having the best debugging tools (source-level breakpoints, register viewing, disassembly, viewers for most of the important chunks of RAM, etc). VBA interfaces with GNU debuggers, but I'm lazy, and haven't tried it.
    • How good is the processor? Good enough to emulate an NES? Yes. In fact, there's a port of an emulator which runs NES binaries which were stapled onto the end of the emu binary out there already (it uses scaling and rotation to fit the otherwise too-large pictures; some detail is lost, so text often looks funny, etc). I have no linkage; sorry.
    • To be specific, the processor is an ARM7 TDMI running at approx 16 mhz. Also, the screen does 60hz refreshes, is 240x160, and has a bitmapped 15bpp color mode (among other modes, including z-buffered modes). The programmer is afforded extreme memory mapping flexability by the hardware; it's more fun than a Rubix' Cube.
    • 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, at Zophar's Domain (a pretty good dev site)
    • 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 engine, though there are probably a dozen that I've seen (and a few proprietary, one of which I'm about halfway done writing :) )
    • Hey, maybe we'll see Tux Racer for the GBA? That'd be tight. Quite possible. A racer wouldn't be difficult - the floor is a mode 7 S/R background, the sprites are prerendered, and there's enough VRAM that they don't need to be DMAed into place or anything (though people do that anyway, often enough [grins])

      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.
    • well if you realyl want to consider assembler an API, that is your answer. ARM flavored assmebler. We're not stuck to Assembly. Though there are about six assemblers in common use (the one that gets most use as not just part of a toolchain seems to be GoldRoad, but because I don't use assembly except in-line, I have a biased perspective), there are also a buttload of C and C++ and so forth compilers. Because Gnu's Compiler Collection (GCC does not mean gnu's c compiler) works and is the common compiler for the homebrew platform, you also have access to *compiled* java, pascal, and I think Objective C and Forth, or Fortran, or something that starts with an F. Too lazy to go check. :)

      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.
    • 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. More worthy, but more difficult. You'll want a flash cart and linker - the hardware is still the only perfect binary executor, though VBA is pretty impressive. All told, the PS2 Linux kit isn't more expensive, and it's hella more fun in the long run (Tux Racer on a console anyway, doncha know!)
    • At about $70 (Game Boy Advanced, Amazon price [amazon.com]), 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. You're counting just the hardware in one, but the hardware and the mod stuff in the other. $200 (ps2) + $200 (Linux kit) is $400. There was a recent price drop. $70 (AGB) + $40 (USB Flasher) + $15 (Power cable for flasher) + $10 (Parallel cord) + ~$100 (Average flash cart - price varies by size) = $235. Granted, a $175 price difference, but not what you implied. Also, a lot of us already have both. Then, the price of a homebrew kit actually weighs in the other direction, and the AGB is small and limiting enough that unless you really want to, it's a pain of a challenge.
    • 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. There are already music sequencers, methods of connecting it (realtime!) to a PC for chatter, MIDI sequencers, connections to serve as visualizers for various kinds of data collectors (think forest service), and a host of weird homebrew things that aren't exactly games. I expect quite a few more over time; I'm working on one in a half-assed way right now. Moreover, over time I expect level editors for at least homebrew games, and possibly for commercial games; would you call those applications?
    • 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?Shhh... Shen Mansell already has Moshpit put together, and there are three or four people already rumbling about alternatives on the list. Also, note that I'm on alt.games.roguelike.development making an ass of myself all the time... (For those who may be Ccurious, a BooFly is a creature which looks like Will Riker and which doesn't meet me for coffee at E3. Thpppbbt.)
    • 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. This gets kicked around a lot in the chatrooms and on the dev lists. The consensus seems to be that yeah, it'd be nice, but though a lot of people would really use it for what it was for, a whole lot of people would use it to pirate games, and besides, Big N's licensing fees per cart and hegemony on software support their business model, so they'd be hurting themselves anyway. In conclusion: not bloody likely.
    • 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. Whereas art and sound resources usually make this true, with time, they actually often do. Take a look into the very mature NES or 2600 development scenes; you'll see things you'd never imagine possible (for instance, someone ported the Z-Machine interpreter Frotz to the GameBoy Advance as GBA Frotz, which seems impressive until you realize that the no$gmb guy, who I think is Martin Korth or something, and who really needs to put his damn name in his bio page, did it for the gameboy(!) in *8* *K* of RAM (far smaller than the real Z-Machine was supposed to be), and it works fine! Linkage

      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. :)
    • Yes, Craig Rothwell is reliable (someone else's post). Also, though Lik-Sang is reliable (that's where I got mine), right now cyustoms is banning the import of these, and so you won't get one even if lik-sang mails it to you. Craig Rothwell currently goes under their radar, but don't try him if you're seeing this post a month or so old - things may have changed (they often do, unfortunately). The best thing to do is to go to the Yahoo! Group and ask; you'll get a lot of replies in 48 hours.
    • 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? No. The GC uses half-size DVD discs which are difficult to burn and which have not yet had their protections cracked or circumvented. Things may change later.
    • 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. If you're dedicated. you need to scale a lot of graphics down; the sound hardware is completely different, so the audio stuff will need to be wholly rewritten. There are odd considerations due to the different CPUs. But, yeah, many people have been porting SNES and Genesis games commercially; I don't see why a team of amateurs with lots of time and skill couldn't do the same. It's not easy, though, mind you.

      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
  27. Re:I wonder... by Anonymous Coward · · Score: 2, Interesting

    I played one or two ray-casted video games on my TI-85 and TI-86 calculators. These had, I think, 6MHz Zilog Z80 microprocessors. These are old processors from the late '70s or early '80s, and they don't have a lot of registers, so complex stuff runs kind of slow on them. They also don't know how to divide, so you have to do that in code, and naturally they didn't have numeric coprocessors to make up for that deficiency.

    The TI-85 had about 24K available RAM, and the '86 had something like 60K available RAM.

    Considering the claustrophobic amount of RAM and CPU power, especially the limited number of registers (and the small width of them), and the lack of ability to do division or anything floating-point in the hardware, these ray-casted games ran fairly well.

    Ray-casting is very different from *real* 3D, however. Real 3D involves things like rotating and translating potentially thousands of nodes, culling unseen polygons, searching large binary space partition arrays (BSPs), calculating whether or not (and where) to display objects not in the BSP (like health vials and other players), etc. And all of the above has to be done for every single frame.

    Raycasting is loads easier. You cast out a ray for every pixel that your viewport is wide. If the ray collides with an object on a 2-D map, the engine grabs a vertical slice from a texture map, scales it according to distance, and drops the results into the framebuffer. If the engine supports transparent pixels and any were copied, the ray continues. Otherwise it's on to the next column.

    There is some other work involved, such as drawing sprites and ammo/health/etc. bars. And there are a few other tricks, such as having variable-height floors and ceilings, like in Doom. Raycasting is very fast compared to real 3D, since there is a lot less floating-point math (and math in general) involved. However, you lose flexibility in order to gain speed. In Doom, you could only have one place for the player to stand at any grid location, so you couldn't have one room above another, or a bridge that could be gone over and also under. It is also tricky to get raycasting engines to do "looking up and down" without it looking distorted, so in most raycasted games, the player always looked straight forward.

    If my old TI-85 with 32K of RAM and a 6MHz Z80 can handle a raycasting engine, then so can a GBA with 256K of RAM and a modern ARM processor with a lot more registers and almost 3x the clock speed. (Not to mention DMAs and hardware sprites and layers!)

    Finally, the GBA has scaling and rotation, and the ability to draw primitive 3-D fields... all in hardware.

    If texture usage is kept VERY conservative, it is reasonable to believe that a ray-casting engine with texture-mapping capabilities is reasonable.

    What would be even more reasonable would be to write a ray-casting engine that didn't bother with textures at all, using solid colors instead. You could get some reasonable framerate out of a game like that, and it would still be fun to play. You might even be able to get away with some "dirty" shading.

    I have also seen GBA ROMs containing "real" 3-D engines, but the only things in them were objects in space. This is reasonable for a 3-D version of Asteroids, or something like Wing Commander.

  28. Emulate != port by yerricde · · Score: 2

    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?
  29. Re:Bring back 2D (I used to feel this way) by AtaruMoroboshi · · Score: 2


    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.

  30. Emulation needs an OOM difference by yerricde · · Score: 2

    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?
  31. Re:Right. Following through. by strags · · Score: 3, Informative


    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.

  32. Re:because... by nathanh · · Score: 2
    open source developers have been so good at developing games in the past?

    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.

  33. While we're at it... by strags · · Score: 3, Insightful

    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.