Giter VIP home page Giter VIP logo

undercooked's Introduction

undercooked

build status

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!

credits

Rachel did the amazing pixel art

Quint wrote the code and music

building

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
  1. run ./configure to prepare build system (you only have to do this once)
  2. run ninja to compile
  3. run gameboy ROM at obj/main.gb

playing

  • 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)

developing

  • if you run with bgb -nobatt -watch obj/main.gb, bgb will reload the newly built ROM whenever you run ninja 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 in meta/build.ninja.j2
  • run ./configure again if you ever need to rebuild the build system

naming conventions

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

releasing

  1. create and push a new tag vX.Y.Z
  2. edit and publish the draft github release that was just created for you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.