a wip, currently untitled game boy advance game. https://tilde.team/~nytpu/blog/tag_gbagame.html
Go to file
Alex Gentilucci f422c42cc1
added notice to readme
2020-08-20 13:06:47 -06:00
art Updated Schnoz 2020-06-03 19:52:24 -06:00
graphics Updated Schnoz 2020-06-03 19:52:24 -06:00
include Merge branch 'art' into video 2020-06-02 20:39:06 -06:00
src Squashed commit of the following: 2020-06-03 15:32:57 -06:00
.gitignore Added vim session file to gitignore 2020-06-02 15:52:03 -06:00
COPYING lowercasify, grammar corrections, and minor license fixes. 2020-05-27 15:15:37 -06:00
LICENSE_MIT modified licenses, updated README, and added wip art. 2020-05-27 14:51:15 -06:00
Makefile Updated makefiles to create and integrate GBFS 2020-06-02 18:15:34 -06:00
README.md added notice to readme 2020-08-20 13:06:47 -06:00
TODO.md Squashed commit of the following: 2020-06-03 15:32:57 -06:00
UNLICENSE modified licenses, updated README, and added wip art. 2020-05-27 14:51:15 -06:00
gba_rules.mak Fixed typo 2020-06-02 18:36:59 -06:00


game — a game boy advance game

update: i reached a point where it's getting tiresome and irritating to continue this in c so i'm going to be rewriting it in c++ with proper classes and stuff, but i have other stuff i've been working on so it probably won't happen for a while


I'm preparing for the future here, by writing everything I know now, but this may change later as I work on the code


You can follow the instructions to install DevKitARM and that should provide you with all of the unusual or nonstandard tools you need. However, I'll enumerate the specific tools you need if you want to install them individually:

  • Proper environment variables set up for $DEVKITPRO and $DEVKITARM pointing towards the correct install locations
  • grit — for converting exported maps or tilesets to .h and .c files for use in the game
  • gbfs — for building the GBFS filesystem
  • portlibs installed to $DEVKITPRO/portlibs
  • libtonc installed to $DEVKITPRO/libtonc
  • Working installations of all arm-none-eabi- tools
  • ...seriously, just install DevKitARM because everything weird is installed, and I'm not sure if I even listed everything needed here
  • sed — used in the makefiles
  • make — used to make the darn thing
  • Aseprite — optional, for editing the sprites
  • mgba — optional, used for debugging and testing

Note: the instructions don't really work yet because I have literally no code for the game, but right now it will range from not working to displaying 3 beautifully colored RGB pixels

Clone the repo and checkout the most recent release:

git clone https://tildegit.org/nytpu/game.git
cd game
git checkout $(git describe --tags --abbrev=0)

You should get game.gba spat out in the project root. You can then run that on your flashcart or in an emulator and it should just work™.

If you modified graphics at all, you must regenerate the bin files manually (using grit <file>.png -ff or grit <file>.png -ff<file>_f<frame>.grit for animations) and place the bins in the graphics folder. make will take care of creating the GBFS file and adding it to the finished ROM for you though.

repo layout

I don't expect anyone else to work on this, so it's more for my reference than anyone else's.

master is reserved for currently working code. It should never be directly committed to, and release commits should be tagged with their version number.
next is used for staging changes to be merged into master, and can have minor fixes directly committed, but major features or additions should be in their own project branch.
Project branches should be created for each feature or component addition, for example art is used to work on art without conflicting on existing exported artwork when working on code. Should only be merged when the current implementation of a feature is complete, and other branches should not be merged into project branches unless their additions are necessary.
Basically, follow the recommended git workflows.

Current branches:

  • art — for working on artwork
  • video — for working on displaying stuff
  • input — moving the stuff displayed in video around
  • next — for changes waiting to be tested/merged
  • master — main branch

special thanks to

  • DevKitPro for their amazing DevKitARM toolchain, complete with a custom libc and gcc, without which I wouldn't have even thought of attempting anything with the GBA.
  • cearn for his wonderful tonclib as well as his very in-depth and useful tonc tutorial. Without these tools and references, I would have been totally unable to make anything like this.
  • Damian Yerrick for GBFS, which makes it so much easier for
  • Squirm, Hollow Knight, Celeste, PICO-8 & its entire community, and an unenumerable number of other places for inspiring this game.

I'm not worried about Nintendo doing anything because they only bring action against people who pirate their games or who make fan games with their IP, like Pokémon fan games (I'll leave my defense of fair use for another time), not homebrew devs making original games. However, if Nintendo sees any legal issues with this game, please contact me at nytpu@tilde.team before contacting tildegit and I will take down this repository or take any other action requested.

This project, including artwork, sound, etc. is dual-licensed under the Unlicense and the MIT License, and you can use the project under the terms of either license. For more details, see COPYING.