As video game systems pass into antiquity, some of them turn out to make excellent platforms for homebrew gaming. Not only does modern technology make it easier to interact with systems that are now comparatively underpowered and simpler, but the documentation available for older systems is often readily available as well, giving the community lots of options for exploration and creativity. The Game Boy Advance is becoming a popular platform for these sorts of independent game development, and this video shows exactly how you can get started too.
This tutorial starts with some explanation of how the GBA works. It offered developers several modes for the display, so this is the first choice a programmer must make when designing the game. From there it has a brief explanation of how to compile programs for the GBA and execute them, then it dives into actually writing the games themselves. There are a few examples that [3DSage] demonstrates here including examples for checking the operation of the code and hardware, some simple games, and also a detailed explanation the framebuffers and other hardware and software available when developing games for this console.
While the video is only 10 minutes long, we recommend watching it at three-quarters or half speed. It’s incredibly information-dense and anyone following along will likely need to pause several times. That being said, it’s an excellent primer for developing games for this platform and in general, especially since emulators are readily available so the original hardware isn’t needed. If you’d like to build something from an even more bygone era than the early 2000s, though, take a look at this tutorial for developing games on arcade cabinets.
I’ll just leave that here:
https://felixjones.github.io/gba-tutorial/
This seems 200% more useful than the video.
Sort of on par for Hackaday, article is hype/fluff for a video someone found, plus callback to old article; comment section provides the real content.
And I see you’re choosing to continue the rich tradition of shamelessly being an A-hole in the comments, providing nothing to the conversation :)
+1
The video looks like it is following the approach people used 20 years ago for this stuff. Things have moved on in that time in terms of setting up a build system: https://devkitpro.org/wiki/Getting_Started
Yep, I do prefer the setup proposed by felix jones, using gba-toolchain & cmake + Visual studio code with GDB, but there’s definitely more modern approach than the one presented, also going straight for mode5 and ignoring the tile modes seems like it’s missing much of what the HW offers. definitelky a really nice video introduction for sure.
Yeah this tutorial uses only the bitmap modes, which is where you draw only pixels to the screen. You’re missing out on the charm of the hardware, like several background layers, sprites, rotating palette colors, rotating and zooming of sprites, and of course mode 7 (which is just rotating up to 2 background layers).
The video hardware does a lot for you. Rather that drawing the entire screen pixel by pixel, then having to redraw the entire screen when you want it to move, you simply upload the tiles and the map to video ram once, then change an X and Y value, and the entire map is moved immediately. The different video modes help with different situations that you may come across. A background map and sprites are easy to move or even rotate, but they won’t have as many colors as a bitmap mode. So maybe use a bitmap mode for your title screen, and other modes during a platformer style game.
https://itch.io/jam/gbajam22 GBA Jam 2022 link with more resources
https://www.coranac.com/tonc/text/ Tonc, an excellent guide, explains everything
Skip the GBA and go for the DS platform. More memory, more CPU power, touch screen and a second screen make it more useful and interesting to write for. And it’s just as easy.. in fact, most of the techniques and concepts are used on all Nintendo platforms.
Actually if you really want to toy with the hardware and not just use brute force and bitmaps I would recommand going for GBA. it’s simlier to use and once you understand the hardware you can easily transpose that to NDS…
That’s me! 😎👍
Thank you for sharing! There is a GBA competition going on right now so I hope you enter a fun game!