|Alex Gentilucci f422c42cc1|
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
$DEVKITARMpointing towards the correct install locations
grit— for converting exported maps or tilesets to
.cfiles for use in the game
gbfs— for building the GBFS filesystem
- Working installations of all
- ...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) make
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
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.
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.
art— for working on artwork
video— for working on displaying stuff
input— moving the stuff displayed in
next— for changes waiting to be tested/merged
master— main branch
special thanks to
- DevKitPro for their amazing DevKitARM toolchain, complete
with a custom
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 firstname.lastname@example.org 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.