A cooking game for the 1989 Nintendo Game Boy (DMG-01). Should run on later models, too. Forever free and open source.
Play undercooked now in your browser, or download the ROM to play in an emulator or burn onto a Gameboy cartridge!
Rachel did the amazing pixel art
Quint wrote the code and music
prerequisite packages:
package | purpose |
---|---|
rgbds | toolchain for cross-compiling for the gameboy architecture |
imagemagick | image correction tasks for sprites and tiles |
ninja | build system |
python3 | build system |
- run
./configure
to prepare build system (you only have to do this once) - run
ninja
to compile - run gameboy ROM at
obj/main.gb
- you can run on real hardware with a flash cart like the GB USB 64M
- you can run on your regular emulator of choice,
zboy
is fine - you can run on
bgb
, a very good emulator with a debugger, using wine (see this AUR package)
- if you run with
bgb -nobatt -watch obj/main.gb
, bgb will reload the newly built ROM whenever you runninja
to compile - if you add (or remove) a source file and want to link it into the built ROM (or remove the link), edit the
build obj/main.gb
line inmeta/build.ninja.j2
- run
./configure
again if you ever need to rebuild the build system
addresses:
.jump_label ; jump labels within subroutines
;convenience_label ; label for a section of code that's currently entered by fallthrough
.label_in_macro\@ ; jump labels within macros
SomeFunction: ; a non-exported subroutine
SomeFunction__abcdehl: ; a non-exported subroutine reading registers a, b, c, d, e, h, and l as arguments
SomeData ; exported data, probably array/string
_GBHW_ADDR or _GBHWADDR ; gameboy hardware address defined in gbhw.inc
some_value ; ram address or compiler variable
values:
as3_freq ; music frequency (16-bit)
as3 ; music note (8-bit index into NoteFreqs)
SOME_CONSTANT ; equ-defined constant
- create and push a new tag
vX.Y.Z
- edit and publish the draft github release that was just created for you