10 ms·
Gameboy Advance development by example: Drawing and Moving Rectangles
- gallerdude 10y agoWoah, first ever video game system I could make games for. I'm not sure if that adds to or removes from the magic...
- Razengan 10y agoI really wish there was a modern, standardized handheld with an open-source OS and SDK for learning, tinkering, home-brew apps and indie games. The Switch form-factor with detachable controllers, but focusing on 2D graphics, would be perfect.
- mch82 10y agoHow about Unity for Switch? Not quite "open source" but reasonably accessible. https://developer.nintendo.com/tools https://developer.nintendo.com/tools
- Razengan 10y agoI was looking at the Switch SDK options right after posting that comment. :) Nintendo seems to have relaxed the entry barriers to developing for their systems.
- gambiting 10y agoWiiU devkit was very easy to get as well, all you had to do was to have a registered company(5 minutes of work in the UK) and a safe place to store the devkit(basically an approved lock on the door).
- klez 10y agoI doubt it satisfies your definition of "modern", but the GCW Zero[0] from some year ago was a Linux-based handheld with a MIPS CPU. You could make games in C + SDL or Python + PyGame. Too bad they seem to have stopped development, but I still have mine and mainly use it to emulate 8- and 16-bit era consoles. [0] http://www.gcw-zero.com http://www.gcw-zero.com
- pjmlp 10y agoPandora? https://pyra-handheld.com/boards/pages/pandora/ https://pyra-handheld.com/boards/pages/pandora/ Game kits sold by ic0nstrux? http://www.ic0nstrux.com/game-console-starter-kit-2.0-self-study-course#.WNtO53oXi6M http://www.ic0nstrux.com/game-console-starter-kit-2.0-self-s... Failing that, you can always just grab an Android phone and convert it into an handheld.
- frozenport 10y agoAndroid?
- milcron 10y agoYou're describing the PocketChip exactly: https://getchip.com/pages/pocketchip https://getchip.com/pages/pocketchip The harsh limitations of pico-8 are carefully chosen to be fun to work with, encourage small but expressive designs give pico-8 cartridges their own particular look and feel. It's entirely open-software and open-hardware, and it's focused on 2D indie gaming. It even has breakout pins.
- KVFinn 10y agoIt's a cool little device, and I love Pico8, but I find the keyboard they chose doesn't make for a great controller. If they make a version two I hope they find a way to integrate something better.
- sspiff 10y agoI have a PocketCHIP, and it's awesome, but the game controls are terrible unfortunately.
- mmjaa 10y agoI also have a few PocketCHIP's, and despised the keyboard until I 3d-printed my own. Now its a lot more usable. (But still not as great as my Pandora..)
- idle_zealot 10y agoWould you mind sharing how you improved the keyboard?
- mmjaa 10y agoStart here: http://www.thingiverse.com/search?q=pocketchip http://www.thingiverse.com/search?q=pocketchip Find one you like! :) I chose this: http://www.thingiverse.com/thing:1998427 http://www.thingiverse.com/thing:1998427 Read this amazing thread: https://bbs.nextthing.co/t/case-mod-customisation-decoration/4150/141 https://bbs.nextthing.co/t/case-mod-customisation-decoration... (It gets better towards the end..)
- aappleby 10y agoUzebox, though it's a tiny bit dated.
- aappleby 10y agoOops, it's not a handheld though...
- leni536 10y agoHuh, I just found Caanoo[1]. As for the uzebox, I don't see why it can't be built as a handheld. From a quick search I found this: https://www.youtube.com/watch?v=b8imNGf5L6A https://www.youtube.com/watch?v=b8imNGf5L6A [1] https://en.wikipedia.org/wiki/Caanoo https://en.wikipedia.org/wiki/Caanoo
- mmjaa 10y agoOpenPandora, Dragonbox-Pyra == the latest generation of what you're after. Before them, there was the GPH WIZ, the GP2X, and the GP32 .. So actually, such a thing has existed for a long time and has gone through a lot of iterations. Have a look at this amazing repository of apps for the Pandora, for example of how vibrant and alive this scene is: http://repo.openpandora.org/ http://repo.openpandora.org/ EDIT: And one more detail, the amazing scene behind the Pyra/Pandora handhelds: https://pyra-handheld.com/boards/ https://pyra-handheld.com/boards/
- BoorishBears 10y agoThis brings back memories, my GP2X-F200 died after an adapter mishap but I remember the SNES emulation was pretty great! For years I followed the Open Pandora without knowing what Pandora (music) was. I remember being a little annoyed I couldn't just search "Pandora" without getting a bunch of results for "some music thing". I still don't really get what happened with the Pandora, the release history was long and complicated iirc
- mmjaa 10y agoThe Pandora was indeed an incredible device, soaked in drama and intrigue. (Disclaimer: I have two.) The manufacturing delays, the issues with the case .. the volcano! (Seriously, the project was delayed by the Iceland volcano in 2010 ..) The issues with the original team splitting up, and so on .. well, it still bloody shipped! And its an excellent device! And the best part is that all those lessons were learned, and applied, to the new Pyra - which is the spiritual successor to the Pandora in many ways. I was lucky enough to have a Pyra prototype to play with a few months back, and its going to be a very special device for a lot of folks - open, accessible, hackable. A truly delightful Linux workstation! :)
- moftz 10y agoHow much was the Pandora when you got it new? I'm seeing the Pyra start from ~$600 USD to $750USD including tax. I think the form factor is really cool but I could buy a much more powerful laptop or even a Surface Pro 4 for nearly the same price. I fully understand how pricy custom hardware can get but that price is just totally unattractive compared to the competition.
- developer2 10y agoReally? You expect someone to invest thousands of hours of personal development time to give YOU a free platform to tinker on? And in 90's form factor of 2D? Open source has its place, but you're asking for someone to selflessly give their entire life so you can "play" in a sandbox - and in 2D instead of 3D, as if that's viable anymore. Give me a break. If it's so easy, do it yourself.
- to3m 10y agoI'm sorry you're having a bad day.
- developer2 10y agoIt's not that. Read my parent comment. They lament the fact that someone hasn't freely handed out an open source handheld gaming device... for 2D games. Not only would 2D gaming be outdated and a waste of a modern gaming device, but they wish some company or individual would hand them a hardware device and software platform, all for "tinkering". They're asking for a million dollars or more to be invested by someone else, simply to be able to fool around with it. The very concept screams not understanding how much time and money it takes to produce such hardware and matching software. We're not talking about $5,000 and one month of development time from some indie developer; we're talking about more than $1 million and 2-3 years of development time from a serious shop... all for free and as open source? Not going to happen.
- makapuf 10y agowell, I did (see my other bitbox project comment). I can accept a million dollars but I did it for free (in fact for a cost. Of course you can say it's bad, or not a really "modern" in the sense of "powerful" but in the sense of "available with somewhat current plugs" and I was happy to see the GP comment, as in : there are other interested people, fine ! As I'm not the only one, I don't understand your angry comment.
- mmjaa 10y ago>all for free and as open source? Not going to happen. Has happened: GP32, GP2X, GPH WIZ, CAANNOO, Open Pandora .. Pyra .. PocketCHIP. There is a lot for you to catch up on. These are open machines, made by people who are quite content with contributing a great deal to the Open Source ethos you seem to think has no place in this market ..
- makapuf 10y agoWell, others have been mentioning similar projects so let me plug in my own : Bitbox, Open hardware/software DIY 32bit console (you can buy it pre-made), 1MFlash/192k RAM/VGA/USB host/microSD , bare metal (no OS), 2d programming (some say racing the beam). Existing games, libraries, using gcc. See http://bitboxconsole.tk http://bitboxconsole.tk / https://github.com/makapuf/bitbox https://github.com/makapuf/bitbox Not handheld but plugging a SPI TFT screen would be simple.
- kruhft 10y agoAs an ex Gamebody (pre Advanced) developer that got a great job doing professional development after playing around with developing on an open source emulator, I have to say that I got into doing it because it was just great fun. These machines are small enough to fit in your head when you're developing, and you really learn to get 'down to the metal' when your builtin libraries are memory addresses and ranges. The development is fast and fun. I totally recommend checking it out and making a couple of games on something like the Gameboy or Gameboy advance. An excellent learning experience.
- alphonsegaston 10y agoI was tinkering with Gameboy Dev using a C library(even bought one of those flashable cartridges), but found the resources/documentation to be kind of all over the place. Do you know of any better resources for learning Gameboy dev?
- kruhft 10y agoUnfortunately I am not aware of the modern documentation resources and a quick search shows they're just as scattered as when I was looking them up, possibly more now. The hard part back then was finding examples generally, but that's also the fun part in that you read all the specs for the machine you can find and let your imagination run wild. Assembly is kind of like that and the machines are small enough that, with enough background knowledge, they can be made to do some pretty interesting things. Like learning anything, just read the every doc you can find and write code is the best advice to get started :)
- alphonsegaston 10y agoThanks so much!
- joshuamorton 10y agoA good place to start would be poking around github for "CS 2110 gatech gameboy". CS2110 is the intro-to-low-level course at Georgia Tech, and about the middle third of the course could be described as "getting comfortable with C syntax in the completely foreign environment of a gameboy advance by writing games". As a result, there are some provided libraries that are very extensive. For everything else, there's tonc. Most of the time the course doesn't cover the more advanced features (mode 0? or was it 4, or 6 that did sprites and textures) but it was a fun introduction to something, and I got to write flappy bird in C when flappy bird was still culturally relevant.
- jlebrech 10y agonot being able to get GBA to do 3d is probably a good thing, you can achieve a much better effect using billboarding and creating something like space harrier or outrun. I'd create something using raycasting and prerendered billboards if 3d was a mush.
- Insanity 10y agoThanks for this post, it really is quite interesting! Tonight I'll try to set up the gba simulator and try to make something small in it as well. It looks quite fun :-)
- swiley 10y agoThe Gameboy advance homebrew tutorials where my first introduction to C (before then I was using turbo Pascal.) Homebrew is great and devkitpro is really easy to mess with.
- symmetricsaurus 10y agoNice post about getting started with GBA dev. It is worth noting that to do anything serious on the GBA you need to use the tile+sprite modes for graphics. That is really the way to get decent performance. The way it done in the article is still a good way to start out but you would probably transistion quickly to some other video mode. Having a flashcart and running your homemade program on a real GBA is a really nice experience. I totally recommend it.
- coldpie 10y agoThis is a good start, but I really hope this guy figures out the hardware sprite system soon or he's going to be in for a world of performance hurt. There's really not very often a reason to draw directly to the framebuffer. I ran into that same problem with a few games I wrote for the PSP[1,2] in high school. I did all the rendering by drawing color values directly to the framebuffer. Quickly all of your CPU time per frame is taken up by drawing pixels and you have no time for game logic. This doomed my projects to small scale, and I didn't have the interest in learning actual PSP hardware programming and rewriting the rendering to use it. [1] http://brightnightgames.com/games.php?game=dyox http://brightnightgames.com/games.php?game=dyox [2] http://brightnightgames.com/games.php?game=abahd http://brightnightgames.com/games.php?game=abahd
- khalladay 10y agoHey, author of blog post here :) I know about the sprite system in abstract, but I haven't tinkered with it yet (nor do I know enough to start tinkering with it yet). I'm still trying to decide whether I want to go down that route or build a ray casting engine / do some 3D stuff, since most of my other work is 3D related. Regardless, this post was meant more to cater to the "I know nothing and want to feel like I'm making progress in 15 minutes" crowd.
- JonathonW 10y agoYou'll run into performance limitations very quickly doing 3D on the GBA; the few true 3D games on the GBA had to make some huge sacrifices to run at all (the hardware just isn't fast enough). Mario Kart-style faux 3D's much more doable on the platform; those games use sprites (for characters and objects that aren't flush with the ground) combined with a tilemapped background that's scaled and rotated per-scanline to look 3D. Alternatively, if you're more interested in 3D, you might switch over to the Nintendo DS-- it's essentially the same hardware and programming model as the GBA, but with hardware accelerated 3D.
- coldpie 10y agoOr you can go crazy and do something totally off-the-wall like the unreleased Banjo Pilot voxel racing game :) https://www.youtube.com/watch?v=3zVy-4CEFQU https://www.youtube.com/watch?v=3zVy-4CEFQU https://tcrf.net/Proto:Banjo-Pilot/Voxel_Engine_Build https://tcrf.net/Proto:Banjo-Pilot/Voxel_Engine_Build
- tomsmeding 10y agoTo the author: there's a standard header file <stdint.h> that might come in use for your various typedefs.