[
  {
    "path": ".gitignore",
    "content": "*.c~\n*.un~\n*.lst\n*.o\n*.sym\n*.asm \n*.ihx \n*.map \n*.noi\n\n# Binaries\n*.gb"
  },
  {
    "path": "README.md",
    "content": "# GBDK Playground\n\nIt has 16 kB of RAM, man.\n\n## Build Requirements\n\nMake sure to set the `GBDKDIR` environment variable pointing to your GBDK installation directory. The Makefile relies on this variable to locate the GBDK compiler and tools.\n\n## Samples\n|           [Blank](blank)           |           [Hello World](hello_world)           |           [Small Sprite](small_sprite)           |\n| :--------------------------------: | :--------------------------------------------: | :----------------------------------------------: |\n| [![](blank/screenshot.png)](blank) | [![](hello_world/screenshot.png)](hello_world) | [![](small_sprite/screenshot.png)](small_sprite) |\n|       Minimum required code        |              Print `Hello World!`              |             Render small 8x8 sprite              |\n\n|           [Big Sprite](big_sprite)           |           [Big Sprite Animation](big_sprite_animation)           |           [Input State](input_state)           |\n| :------------------------------------------: | :--------------------------------------------------------------: | :--------------------------------------------: |\n| [![](big_sprite/screenshot.png)](big_sprite) | [![](big_sprite_animation/screenshot.gif)](big_sprite_animation) | [![](input_state/screenshot.png)](input_state) |\n|           Render big 16x16 sprite            |                     Animate big 16x16 sprite                     |               Read joypad state                |\n\n|           [Input Wait](input_wait)           |           [Move Sprite](move_sprite)           |           [Background](background)           |\n| :------------------------------------------: | :--------------------------------------------: | :------------------------------------------: |\n| [![](input_wait/screenshot.png)](input_wait) | [![](move_sprite/screenshot.gif)](move_sprite) | [![](background/screenshot.png)](background) |\n|            Wait for button input             |           Move a sprite using joypad           |       Render a full-screen background        |\n\n|           [Window](window)           |           [Beep](beep)           |           [Simple SHMUP](simple_shmup)           |\n| :----------------------------------: | :------------------------------: | :----------------------------------------------: |\n| [![](window/screenshot.png)](window) | [![](beep/screenshot.png)](beep) | [![](simple_shmup/screenshot.png)](simple_shmup) |\n|           Renders a window           |           Make a sound           |                Very simple SHMUP                 |\n\n|           [Huge Sprite](huge_sprite)           |           [Drawing](drawing)           |        [Detect GB Type](detect_gb)         |\n| :--------------------------------------------: | :------------------------------------: | :----------------------------------------: |\n| [![](huge_sprite/screenshot.png)](huge_sprite) | [![](drawing/screenshot.png)](drawing) | [![](detect_gb/screenshot.png)](detect_gb) |\n|          Renders a huge 40x64 sprite           |       Built-in drawing functions       |       Detect which GB is being used        |\n\n|           [Save RAM](save_ram)           |           [Font](font)           |            [Link](link)            |\n| :--------------------------------------: | :------------------------------: | :--------------------------------: |\n| [![](save_ram/screenshot.png)](save_ram) | [![](font/screenshot.png)](font) |  [![](link/screenshot.png)](link)  |\n|           Save/load variables            |         Load a new font          | Send/Receive data using link cable |\n\n|           [Color](color)           |                        More coming soon...                         |\n| :--------------------------------: | :----------------------------------------------------------------: |\n| [![](color/screenshot.png)](color) | [![](docs/res/more_coming_soon.png)](https://gbdev.io/list.html#c) |\n|  Use palettes for Game Boy Color   |                     Contributions are welcome!                     |\n"
  },
  {
    "path": "background/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN  = background.gb\nOBJS = background.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "background/README.md",
    "content": "\n\n\n\n# Background\n<div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n\nRenders a full-screen background image.\n\n## Source\n\n\n  \n\n```c\n\n#include <gb/gb.h>\n\n#include \"bg_data.c\"\n#include \"bg_data.map\"\n\nvoid main() {\n\n```\n\n\n\n\n\n\n\nFirst load the tile patterns in the Background Tile Pattern table. This\nmeans that we load all the 8x8 images that make up our picture (131 of them\nto be exact).\n\n\n  \n\n```c\n    set_bkg_data(0, 131, tiledata);\n\n    VBK_REG = 1;\n    VBK_REG = 0;\n\n\n```\n\n\n\n\n\n\n\nThen we set the tile pattern in the background tile table. The variable\n`tilemap` contains an array of tile numbers that reference to the the tiles\nwe loaded previously using `set_bkg_data`.\n\nOur image is `20` tiles wide and `18` tiles high, thus having a total of 360\ntiles. How is that possible when we only loaded `131` tiles?\n\nWell, that is because some in the image are identical. So instead the tile\nis only saved once in the `tiledata` variable and reused multiple times in\nthe `tilemap` variable.\n\n\n  \n\n```c\n    set_bkg_tiles(0, 0, 20, 18, tilemap);\n\n```\n\n\n\n\n\n\n\nIn order for the background to actually show up we call `SHOW_BKG`.\n\n\n  \n\n```c\n    SHOW_BKG;\n\n    DISPLAY_ON;\n}\n\n\n```\n\n\n\n"
  },
  {
    "path": "background/background.c",
    "content": "// # Background\n// <div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n//\n// Renders a full-screen background image.\n//\n// ## Source\n\n#include <gb/gb.h>\n\n#include \"bg_data.c\"\n#include \"bg_data_map.c\"\n\nvoid main() {\n// First load the tile patterns in the Background Tile Pattern table. This\n// means that we load all the 8x8 images that make up our picture (131 of them\n// to be exact).\n    set_bkg_data(0, 131, tiledata);\n\n    VBK_REG = 1;\n    VBK_REG = 0;\n\n// Then we set the tile pattern in the background tile table. The variable\n// `tilemap` contains an array of tile numbers that reference to the the tiles\n// we loaded previously using `set_bkg_data`.\n//\n// Our image is `20` tiles wide and `18` tiles high, thus having a total of 360\n// tiles. How is that possible when we only loaded `131` tiles?\n//\n// Well, that is because some in the image are identical. So instead the tile\n// is only saved once in the `tiledata` variable and reused multiple times in\n// the `tilemap` variable.\n    set_bkg_tiles(0, 0, 20, 18, tilemap);\n// In order for the background to actually show up we call `SHOW_BKG`.\n    SHOW_BKG;\n\n    DISPLAY_ON;\n}\n"
  },
  {
    "path": "background/bg_data.c",
    "content": "/* \n Advanced PCX to GameBoy converter v2.15\n\n Tiles data\n Original PCX File : \"BG_DATA.PCX\"\n\n Number of Tiles   : 131\n TileMap Size      : 20x18\n*/ \n\nunsigned const char tiledata[] = {\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xDF,0xDF,0xC1,0xC1,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x0F,0x0F,0x01,0x01,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x1F,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xF8,0xF8,\n0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F,\n0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,\n0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x0F,0x0F,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,\n0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,\n0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80,\n0xFF,0xFF,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x0C,0x0C,0x18,0x18,\n0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F,\n0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x20,0x20,\n0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04,\n0x30,0x30,0x20,0x20,0x60,0x60,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x06,0x06,\n0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0x01,0x01,0x02,0x02,0x06,0x06,0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40,\n0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,\n0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,\n0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,\n0x04,0x04,0x08,0x08,0x08,0x08,0x10,0x10,0x30,0x30,0x20,0x20,0x00,0x00,0x00,0x00,\n0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x06,0x06,0x04,0x04,0x08,0x08,0x18,0x18,\n0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x02,0x02,0x02,0x02,0x06,0x06,0x04,0x04,0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x18,0x18,\n0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,\n0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,\n0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,\n0x60,0x60,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0x0C,0x0C,0x02,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x60,0x60,0x18,0x18,0x04,0x04,0x03,0x03,\n0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,\n0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,\n0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x40,0x40,\n0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x10,0x10,0x10,0x10,0x20,0x20,\n0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x80,0x80,0x60,0x60,0x30,0x30,0x18,0x18,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x60,0x60,\n0x1F,0x1F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,\n0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,\n0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04,\n0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x40,0x40,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x1C,0x1C,0x06,0x06,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0xC0,0xC0,0x70,0x70,0x1C,0x1C,0x07,0x07,0x01,0x01,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x60,0x60,\n0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,\n0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x40,0x40,\n0x0C,0x0C,0x08,0x08,0x10,0x10,0x10,0x10,0x30,0x30,0x60,0x60,0x40,0x40,0x40,0x40,\n0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08,\n0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x10,\n0x00,0x00,0x00,0x00,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x40,0x30,0x30,0x08,0x08,\n0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,\n0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x02,0x02,\n0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,\n0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x80,0x80,0x60,0x60,0x38,0x38,0x0C,0x0C,0x07,0x07,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x30,0x30,\n0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,\n0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,\n0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x40,\n0x18,0x18,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x1C,0x1C,0x06,0x06,0x03,0x03,\n0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,\n0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04,0x08,0x08,0x08,0x08,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x78,0x78,0x07,0x07,\n0xC0,0xC0,0x60,0x60,0x30,0x30,0x08,0x08,0x0E,0x0E,0x03,0x03,0x01,0x01,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,\n0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,\n0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0xC0,0xC0,0x40,0x40,0x60,0x60,0x30,0x30,0x0C,0x0C,0x02,0x02,0x03,0x03,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,\n0x18,0x18,0x0E,0x0E,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x38,0x38,0x0E,0x0E,0x03,0x03,0x00,0x00,\n0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F,\n0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,\n0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,\n0x38,0x38,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x38,0x38,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,\n0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x00,0x00,\n0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x01,0x01,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x0F,0x0F,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFE,0xFE,\n0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,\n0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0xFD,0xFD,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x1F,0x1F,0x7F,0x7F,0xFF,0xFF,\n0x00,0x00,0x03,0x03,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x80,0x80,0xF8,0xF8,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x03,0x03,0x01,0x01,0xE1,0xE1,0xF8,0xF8};\n"
  },
  {
    "path": "background/bg_data_map.c",
    "content": "/*\n Advanced PCX to GameBoy converter v2.15\n\n TileMap data\n Original PCX File : \"BG_DATA.PCX\"\n\n Number of Tiles   : 131\n TileMap Size      : 20x18\n*/\n\nunsigned const char tilemap[] = {\n0x01,0x02,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x06,0x07,\n0x08,0x00,0x09,0x0A,0x0B,0x0C,0x0D,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0E,0x0F,0x10,0x11,0x12,0x13,\n0x14,0x00,0x00,0x12,0x15,0x00,0x00,0x16,0x17,0x17,0x18,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x04,\n0x1B,0x00,0x00,0x1C,0x00,0x00,0x00,0x1D,0x00,0x00,0x1E,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x04,\n0x04,0x21,0x22,0x23,0x00,0x00,0x24,0x00,0x00,0x12,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x04,0x04,\n0x04,0x27,0x28,0x00,0x00,0x29,0x2A,0x00,0x00,0x2B,0x2C,0x2D,0x00,0x00,0x00,0x00,0x00,0x2E,0x04,0x04,\n0x04,0x2F,0x00,0x00,0x30,0x31,0x00,0x00,0x32,0x33,0x00,0x34,0x35,0x00,0x00,0x00,0x00,0x36,0x04,0x04,\n0x04,0x37,0x00,0x00,0x38,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3A,0x3B,0x3C,0x00,0x00,0x3D,0x04,0x04,\n0x04,0x3E,0x00,0x3F,0x40,0x00,0x00,0x3F,0x41,0x00,0x00,0x00,0x00,0x00,0x42,0x43,0x44,0x45,0x04,0x04,\n0x04,0x3E,0x00,0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x04,0x04,\n0x04,0x3E,0x48,0x49,0x00,0x00,0x4A,0x49,0x4B,0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4D,0x04,0x04,\n0x04,0x3E,0x4E,0x00,0x00,0x4F,0x50,0x00,0x00,0x51,0x52,0x53,0x00,0x00,0x00,0x00,0x00,0x54,0x04,0x04,\n0x04,0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x57,0x58,0x00,0x00,0x00,0x00,0x59,0x04,0x04,\n0x04,0x2F,0x00,0x00,0x5A,0x2A,0x5B,0x5C,0x00,0x00,0x00,0x00,0x00,0x5D,0x44,0x00,0x00,0x00,0x5E,0x04,\n0x04,0x5F,0x00,0x32,0x60,0x00,0x00,0x3A,0x61,0x62,0x00,0x00,0x00,0x00,0x63,0x64,0x62,0x00,0x65,0x04,\n0x04,0x66,0x00,0x67,0x00,0x00,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0x6A,0x6B,0x04,\n0x04,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x00,0x00,0x7B,\n0x7C,0x7D,0x7E,0x7F,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x80,0x81,0x82};\n"
  },
  {
    "path": "background/docs.sh",
    "content": "docco -t ../docs/res/readme_c.jst -o ./ background.c\nmv background.html README.md\n"
  },
  {
    "path": "beep/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN  = beep.gb\nOBJS = beep.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "beep/README.md",
    "content": "# Beep\n\n![](screenshot.png)\n\nDemonstrates how to play a simple SFX sound.\n\n"
  },
  {
    "path": "beep/beep.c",
    "content": "#include <gb/gb.h>\n#include <gb/drawing.h>\n\nvoid main() {\n    NR50_REG = 0xFF;\n    NR51_REG = 0xFF;\n    NR52_REG = 0x80;\n    \n    gotogxy(1, 1);\n    gprintf(\"====== Beep ======\");\n    \n    gotogxy(2, 3);\n    gprintf(\"Press any button\");\n    \n    while(1) {\n        UBYTE joypad_state = joypad();\n        \n        if(joypad_state) {        \n            NR10_REG = 0x38U;\n            NR11_REG = 0x70U;\n            NR12_REG = 0xE0U;\n            NR13_REG = 0x0AU;\n            NR14_REG = 0xC6U;\n\n            NR51_REG |= 0x11;\n            \n            delay(200);\n        }\n    }\n}\n\n"
  },
  {
    "path": "big_sprite/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = big_sprite.gb\nOBJS = big_sprite.o sprite.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map\n\n"
  },
  {
    "path": "big_sprite/README.md",
    "content": "\n\n\n\n# Big Sprite\n<div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n\nRenders a big sprite of 16x16. Since the Game Boy hardware does not directly\nsupport sprites that large \n\n## Source\nStart by including `gb/gb.h` this file defines most important functions you\nare going to need when develop Game Boy games.\n\n\n  \n\n```c\n#include <gb/gb.h>\n\n```\n\n\n\n\n\n\n\nThe `sprite.c` file defines the sprite data in the form of an unsigned char\narray. Most of the time you want to generate this file using tools such as\nGBTD.\n\n\n  \n\n```c\n#include \"sprite.c\"\n\nvoid main() {\n\n```\n\n\n\n\n\n\n\nSet the sprite size to 8x16 pixels, two tiles one above the other. Internally\nsets bit 2 of the LCDC register to 1.\n\n\n  \n\n```c\n    SPRITES_8x16;\n\n```\n\n\n\n\n\n\n\nLoads the tile patterns stored in `sprite` into the Sprite Tile Pattern\ntable.\n\n* first parameter `0` determines at which position we should start loading.\n* second parameter `4` determines how many tiles we want to loading\n* third parameter `sprite` sets the variable to load from\n\nThis means that we are loading 4 tiles starting at 0 from the variable\nsprite.\n\n\n  \n\n```c\n    set_sprite_data(0, 4, sprite);\n\n```\n\n\n\n\n\n\n\nTell sprite `0` to display sprite `0`. Since we are loading 8x16 tiles this\nwill make sprite 0 show tile `0` and tile `1`.\n\n\n  \n\n```c\n    set_sprite_tile(0, 0);\n\n```\n\n\n\n\n\n\n\nFinally move a sprite to a position that we can see.\n\n\n  \n\n```c\n    move_sprite(0, 75, 75);\n\n\n```\n\n\n\n\n\n\n\nWe want to display a 16x16 sprite. Unfortunately the Game Boy hardware does\nnot directly support a sprite that large. So in order to have a sprite of\nthat size we are simply displaying two 8x16 tiles next to each other!\n\nSince we've already loaded our entire sprite in line 16 we can now simply\ntell sprite `1` to display our second sprite. Again, since we are displaying\n8x16 tiles this statement will display tile `2` and tile `3`.\n\n\n  \n\n```c\n    set_sprite_tile(1, 2);\n\n```\n\n\n\n\n\n\n\nIn order to form the illusion of a bigger sprite we display the second tile\ndirectly next to the other simply by offsetting the position 8 pixels to the\nright.\n\n\n  \n\n```c\n    move_sprite(1, 75 + 8, 75);\n\n```\n\n\n\n\n\n\n\nAs always, in order for the sprites to display we need to call\n`SHOW_SPRITES` once.\n\n\n  \n\n```c\n    SHOW_SPRITES;\n}\n\n\n```\n\n\n\n"
  },
  {
    "path": "big_sprite/big_sprite.c",
    "content": "// # Big Sprite\n// <div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n//\n// Renders a big sprite of 16x16. Since the Game Boy hardware does not directly\n// support sprites that large \n//\n// ## Source\n// Start by including `gb/gb.h` this file defines most important functions you\n// are going to need when develop Game Boy games.\n#include <gb/gb.h>\n// The `sprite.c` file defines the sprite data in the form of an unsigned char\n// array. Most of the time you want to generate this file using tools such as\n// GBTD.\n#include \"sprite.h\"\n\nvoid main() {\n// Set the sprite size to 8x16 pixels, two tiles one above the other. Internally\n// sets bit 2 of the LCDC register to 1.\n    SPRITES_8x16;\n// Loads the tile patterns stored in `sprite` into the Sprite Tile Pattern\n// table.\n//\n// * first parameter `0` determines at which position we should start loading.\n// * second parameter `4` determines how many tiles we want to loading\n// * third parameter `sprite` sets the variable to load from\n//\n// This means that we are loading 4 tiles starting at 0 from the variable\n// sprite.\n    set_sprite_data(0, 4, sprite);\n// Tell sprite `0` to display sprite `0`. Since we are loading 8x16 tiles this\n// will make sprite 0 show tile `0` and tile `1`.\n    set_sprite_tile(0, 0);\n// Finally move a sprite to a position that we can see.\n    move_sprite(0, 75, 75);\n\n// We want to display a 16x16 sprite. Unfortunately the Game Boy hardware does\n// not directly support a sprite that large. So in order to have a sprite of\n// that size we are simply displaying two 8x16 tiles next to each other!\n//\n// Since we've already loaded our entire sprite in line 16 we can now simply\n// tell sprite `1` to display our second sprite. Again, since we are displaying\n// 8x16 tiles this statement will display tile `2` and tile `3`.\n    set_sprite_tile(1, 2);\n// In order to form the illusion of a bigger sprite we display the second tile\n// directly next to the other simply by offsetting the position 8 pixels to the\n// right.\n    move_sprite(1, 75 + 8, 75);\n// As always, in order for the sprites to display we need to call\n// `SHOW_SPRITES` once.\n    SHOW_SPRITES;\n}\n"
  },
  {
    "path": "big_sprite/docs.sh",
    "content": "docco -t ../docs/res/readme_c.jst -o ./ big_sprite.c\nmv big_sprite.html README.md\n"
  },
  {
    "path": "big_sprite/sprite.c",
    "content": "/*\n\n SPRITE.C\n\n Tile Source File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 16 x 16\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n/* Start of tile array. */\nunsigned char sprite[] =\n{\n  0xFF,0xFF,0x80,0x80,0x80,0x80,0x81,0x81,\n  0x83,0x83,0x87,0x87,0x81,0x81,0x81,0x81,\n  0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,\n  0x83,0x83,0x87,0x87,0x80,0x80,0xFF,0xFF,\n  0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xC1,0xC1,\n  0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,\n  0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,\n  0xE1,0xE1,0xF1,0xF1,0x01,0x01,0xFF,0xFF\n};\n\n/* End of SPRITE.C */\n"
  },
  {
    "path": "big_sprite/sprite.h",
    "content": "/*\n\n SPRITE.H\n\n Include File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 16 x 16\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n\n/* Bank of tiles. */\n#define spriteBank 0\n/* Start of tile array. */\nextern unsigned char sprite[];\n\n/* End of SPRITE.H */\n"
  },
  {
    "path": "big_sprite_animation/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = big_sprite_animation.gb\nOBJS = big_sprite_animation.o cards.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "big_sprite_animation/README.md",
    "content": "# Big Sprite Animation\n\n![](screenshot.gif)\n\nRenders a big 16x16 animated sprite of 2 frames using a delay of 500.\n\n"
  },
  {
    "path": "big_sprite_animation/big_sprite_animation.c",
    "content": "#include <gb/gb.h>\n#include \"cards.h\"\n\nvoid main() {\n    SPRITES_8x16;\n    set_sprite_data(0, 8, cards);\n    set_sprite_tile(0, 0);\n    move_sprite(0, 75, 75);\n    set_sprite_tile(1, 2);\n    move_sprite(1, 75 + 8, 75);\n    SHOW_SPRITES;\n\n    while(1) {\n        set_sprite_tile(0, 4);\n        set_sprite_tile(1, 6);\n        delay(500);\n        set_sprite_tile(0, 0);\n        set_sprite_tile(1, 2);\n        delay(500);\n    }\n}\n"
  },
  {
    "path": "big_sprite_animation/cards.c",
    "content": "/*\n\n CARDS.C\n\n Tile Source File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 16 x 16\n  Tiles                : 0 to 1\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n/* Start of tile array. */\nunsigned char cards[] =\n{\n  0xFF,0xFF,0x80,0x80,0x80,0x80,0x81,0x81,\n  0x83,0x83,0x87,0x87,0x81,0x81,0x81,0x81,\n  0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,\n  0x83,0x83,0x87,0x87,0x80,0x80,0xFF,0xFF,\n  0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xC1,0xC1,\n  0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,\n  0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,\n  0xE1,0xE1,0xF1,0xF1,0x01,0x01,0xFF,0xFF,\n  0xFF,0xFF,0x80,0x80,0x83,0x83,0x87,0x87,\n  0x8E,0x8E,0x8C,0x8C,0x80,0x80,0x80,0x80,\n  0x80,0x80,0x80,0x80,0x81,0x81,0x83,0x83,\n  0x87,0x87,0x8F,0x8F,0x80,0x80,0xFF,0xFF,\n  0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xE1,0xE1,\n  0x71,0x71,0x31,0x31,0x31,0x31,0x31,0x31,\n  0x71,0x71,0xE1,0xE1,0xC1,0xC1,0x81,0x81,\n  0xF1,0xF1,0xF1,0xF1,0x01,0x01,0xFF,0xFF\n};\n\n/* End of CARDS.C */\n"
  },
  {
    "path": "big_sprite_animation/cards.h",
    "content": "/*\n\n CARDS.H\n\n Include File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 16 x 16\n  Tiles                : 0 to 1\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n\n/* Bank of tiles. */\n#define cardsBank 0\n/* Start of tile array. */\nextern unsigned char cards[];\n\n/* End of CARDS.H */\n"
  },
  {
    "path": "blank/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN  = blank.gb\nOBJS = blank.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "blank/README.md",
    "content": "\n\n\n\n# Blank\n<div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n\nThis example contains the minimal amount of code needed to create a working\nGame Boy game. Though not a very exciting one.\n\n## Source\n\n\n\n\n\n\n\n\nAll a GBDK game needs to compile and run (any C-program, in fact) is a main\nfunction. This is the entry point into your program.\n\n\n  \n\n```c\nvoid main() {\n\n}\n\n\n```\n\n\n\n"
  },
  {
    "path": "blank/blank.c",
    "content": "// # Blank\n// <div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n//\n// This example contains the minimal amount of code needed to create a working\n// Game Boy game. Though not a very exciting one.\n//\n// ## Source\n\n// All a GBDK game needs to compile and run (any C-program, in fact) is a main\n// function. This is the entry point into your program.\nvoid main() {\n\n}\n"
  },
  {
    "path": "blank/docs.sh",
    "content": "docco -t ../docs/res/readme_c.jst -o ./ blank.c\nmv blank.html README.md\n"
  },
  {
    "path": "color/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wm-yC\n\nBIN = color.gbc\nOBJS = color.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "color/README.md",
    "content": "# Color\n\n![](screenshot.png)\n\nDemonstrates how to use palettes and create a Game Boy Color ROM.\n\n"
  },
  {
    "path": "color/bg_data.c",
    "content": "/* \n Advanced PCX to GameBoy converter v2.15\n\n Tiles data\n Original PCX File : \"BG_DATA.PCX\"\n\n Number of Tiles   : 131\n TileMap Size      : 20x18\n*/ \n\nunsigned const char tiledata[] = {\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xDF,0xDF,0xC1,0xC1,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x0F,0x0F,0x01,0x01,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x1F,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xF8,0xF8,\n0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F,\n0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,\n0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x0F,0x0F,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,\n0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,\n0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80,\n0xFF,0xFF,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x0C,0x0C,0x18,0x18,\n0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F,\n0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x20,0x20,\n0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04,\n0x30,0x30,0x20,0x20,0x60,0x60,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x06,0x06,\n0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0x01,0x01,0x02,0x02,0x06,0x06,0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40,\n0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,\n0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,\n0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,\n0x04,0x04,0x08,0x08,0x08,0x08,0x10,0x10,0x30,0x30,0x20,0x20,0x00,0x00,0x00,0x00,\n0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x06,0x06,0x04,0x04,0x08,0x08,0x18,0x18,\n0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x02,0x02,0x02,0x02,0x06,0x06,0x04,0x04,0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x18,0x18,\n0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,\n0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,\n0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,\n0x60,0x60,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0x0C,0x0C,0x02,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x60,0x60,0x18,0x18,0x04,0x04,0x03,0x03,\n0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,\n0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,\n0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x40,0x40,\n0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x10,0x10,0x10,0x10,0x20,0x20,\n0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x80,0x80,0x60,0x60,0x30,0x30,0x18,0x18,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x60,0x60,\n0x1F,0x1F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,\n0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,\n0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04,\n0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x40,0x40,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x1C,0x1C,0x06,0x06,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0xC0,0xC0,0x70,0x70,0x1C,0x1C,0x07,0x07,0x01,0x01,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x60,0x60,\n0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,\n0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x40,0x40,\n0x0C,0x0C,0x08,0x08,0x10,0x10,0x10,0x10,0x30,0x30,0x60,0x60,0x40,0x40,0x40,0x40,\n0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08,\n0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x10,\n0x00,0x00,0x00,0x00,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x40,0x30,0x30,0x08,0x08,\n0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,\n0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x02,0x02,\n0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,\n0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x80,0x80,0x60,0x60,0x38,0x38,0x0C,0x0C,0x07,0x07,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x30,0x30,\n0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,\n0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,\n0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x40,\n0x18,0x18,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x1C,0x1C,0x06,0x06,0x03,0x03,\n0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,\n0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04,0x08,0x08,0x08,0x08,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x78,0x78,0x07,0x07,\n0xC0,0xC0,0x60,0x60,0x30,0x30,0x08,0x08,0x0E,0x0E,0x03,0x03,0x01,0x01,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,\n0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,\n0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,\n0xC0,0xC0,0x40,0x40,0x60,0x60,0x30,0x30,0x0C,0x0C,0x02,0x02,0x03,0x03,0x00,0x00,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,\n0x18,0x18,0x0E,0x0E,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x38,0x38,0x0E,0x0E,0x03,0x03,0x00,0x00,\n0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F,\n0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,\n0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,\n0x38,0x38,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x38,0x38,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,\n0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x00,0x00,\n0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x00,0x00,0x01,0x01,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x0F,0x0F,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFE,0xFE,\n0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,\n0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0xFD,0xFD,\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x1F,0x1F,0x7F,0x7F,0xFF,0xFF,\n0x00,0x00,0x03,0x03,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x80,0x80,0xF8,0xF8,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x03,0x03,0x01,0x01,0xE1,0xE1,0xF8,0xF8};\n"
  },
  {
    "path": "color/bg_data_map.c",
    "content": "/*\n Advanced PCX to GameBoy converter v2.15\n\n TileMap data\n Original PCX File : \"BG_DATA.PCX\"\n \n Number of Tiles   : 131\n TileMap Size      : 20x18\n*/\n\nunsigned const char tilemap[] = {\n0x01,0x02,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x06,0x07,\n0x08,0x00,0x09,0x0A,0x0B,0x0C,0x0D,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0E,0x0F,0x10,0x11,0x12,0x13,\n0x14,0x00,0x00,0x12,0x15,0x00,0x00,0x16,0x17,0x17,0x18,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x1A,0x04,\n0x1B,0x00,0x00,0x1C,0x00,0x00,0x00,0x1D,0x00,0x00,0x1E,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x04,\n0x04,0x21,0x22,0x23,0x00,0x00,0x24,0x00,0x00,0x12,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x04,0x04,\n0x04,0x27,0x28,0x00,0x00,0x29,0x2A,0x00,0x00,0x2B,0x2C,0x2D,0x00,0x00,0x00,0x00,0x00,0x2E,0x04,0x04,\n0x04,0x2F,0x00,0x00,0x30,0x31,0x00,0x00,0x32,0x33,0x00,0x34,0x35,0x00,0x00,0x00,0x00,0x36,0x04,0x04,\n0x04,0x37,0x00,0x00,0x38,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x3A,0x3B,0x3C,0x00,0x00,0x3D,0x04,0x04,\n0x04,0x3E,0x00,0x3F,0x40,0x00,0x00,0x3F,0x41,0x00,0x00,0x00,0x00,0x00,0x42,0x43,0x44,0x45,0x04,0x04,\n0x04,0x3E,0x00,0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x04,0x04,\n0x04,0x3E,0x48,0x49,0x00,0x00,0x4A,0x49,0x4B,0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4D,0x04,0x04,\n0x04,0x3E,0x4E,0x00,0x00,0x4F,0x50,0x00,0x00,0x51,0x52,0x53,0x00,0x00,0x00,0x00,0x00,0x54,0x04,0x04,\n0x04,0x55,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x57,0x58,0x00,0x00,0x00,0x00,0x59,0x04,0x04,\n0x04,0x2F,0x00,0x00,0x5A,0x2A,0x5B,0x5C,0x00,0x00,0x00,0x00,0x00,0x5D,0x44,0x00,0x00,0x00,0x5E,0x04,\n0x04,0x5F,0x00,0x32,0x60,0x00,0x00,0x3A,0x61,0x62,0x00,0x00,0x00,0x00,0x63,0x64,0x62,0x00,0x65,0x04,\n0x04,0x66,0x00,0x67,0x00,0x00,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0x6A,0x6B,0x04,\n0x04,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x00,0x00,0x7B,\n0x7C,0x7D,0x7E,0x7F,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x80,0x81,0x82};\n"
  },
  {
    "path": "color/color.c",
    "content": "#include <gb/gb.h>\n#include <gb/cgb.h> // Include cgb functions\n\n// Background taken from 'background' example\n#include \"bg_data.c\"\n#include \"bg_data_map.c\"\n\n// Sprite taken from 'small_sprite' example\nconst unsigned char sprite[] =\n{\n\t  0x7E,0x7E,0x99,0x99,0x81,0x81,0xA5,0xA5,\n\t  0x81,0x81,0xDB,0xDB,0xC3,0xC3,0x3C,0x3C\n};\n\n// These palettes replace the default palette with the appropriate colors. See cgb.h for more defined colors.\n\nUWORD bkgPalette[] = {\n\tRGB_PURPLE, RGB_BLACK, RGB_ORANGE, RGB_BROWN\n};\n\nUWORD sprPalette[] = {\n\tRGB_GREEN, RGB_BLUE, RGB_RED, RGB_YELLOW\n};\n\nvoid main(void){\n\n\tset_bkg_palette(0, 1, bkgPalette); // UBYTE first_palette, UBYTE nb_palettes, UWORD *rgb_data\n\tset_bkg_data(0, 131, tiledata);\n\tset_bkg_tiles(0, 0, 20, 18, tilemap);\n\tSHOW_BKG;\n\n\tset_sprite_palette(0, 1, sprPalette); // UBYTE first_palette, UBYTE nb_palettes, UWORD *rgb_data\n\tset_sprite_data(0, 1, sprite);\n\tset_sprite_tile(0, 0);\n\tmove_sprite(0, 50, 50);\n\tSHOW_SPRITES;\n\n\tDISPLAY_ON;\n}"
  },
  {
    "path": "detect_gb/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = detect_gb.gb\nOBJS = detect_gb.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "detect_gb/README.md",
    "content": "# Detect GB\n\n![](screenshot.png)\n\nDetect which GB is being used/emulated."
  },
  {
    "path": "detect_gb/detect_gb.c",
    "content": "#include <gb/gb.h>\n#include <stdio.h>\n\nextern UBYTE _cpu;\n\nvoid main() {\n\tswitch (_cpu) {\n\tcase 0x01:\n\t\tprintf(\"DMG or SGB\");\n\t\tbreak;\n\tcase 0xFF:\n\t\tprintf(\"POCKET or SGB2\");\n\t\tbreak;\n\tcase 0x11:\n\t\tprintf(\"COLOR\");\n\t\tbreak;\n\tdefault:\n\t\tprintf(\"OTHER\");\n\t\tbreak;\n\t}\n}"
  },
  {
    "path": "docs/res/readme_c.jst",
    "content": "<% for (var i = 0, l = sections.length; i<l; i++) { %>\n\n<% var section = sections[i]; %>\n\n<%= section.docsText %>\n\n<% if (!(/^\\s*$/).test(section.codeText)) { %>  \n\n```c\n<%= section.codeText %>\n```\n\n<% } %>\n\n<% } %>"
  },
  {
    "path": "drawing/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = drawing.gb\nOBJS = drawing.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "drawing/README.md",
    "content": "# Drawing\n\n![](screenshot.png)\n\nDemonstrates built-in GBDK drawing functions. Operate the D-Pad to use the plot function to draw on the screen. Press the A Button to change plot point colors (Black, White, Dark Gray, Light Gray). Press the B button to clear the screen."
  },
  {
    "path": "drawing/drawing.c",
    "content": "#include <gb/gb.h>\n#include <gb/drawing.h>\n\nuint8_t x = 1, y = 1, i = 3, j, f;\n\nvoid main() {\n\tcolor(BLACK, WHITE, SOLID); //  forecolor, backcolor, mode [Colors: WHITE (0), LTGREY (1), DKGREY(2), BLACK (3)]\n\tcircle(100, 60, 30, M_FILL); // x, y, radius, style (M_FILL or M_NOFILL)\n\tline(40, 40, 50, 50); // x1, y1, x2, y2\n\tbox(120, 125, 125, 135, M_NOFILL); // x1, y1, x2, y2, style (M_FILL or M_NOFILL)\n\tplot_point(3, 4); // Plot a single pixel on the screen\n\tgotogxy(18, 15); // Places you at these coordinates\n\tgprintf(\"Hi\"); // When using the drawing library you must use gprintf instead of printf\n\n\twhile (1) {\n\t\tif (joypad() == J_UP && y != 0)\n\t\t\ty--;\n\t\tif (joypad() == J_DOWN && y != 143)\n\t\t\ty++;\n\t\tif (joypad() == J_LEFT && x != 0)\n\t\t\tx--;\n\t\tif (joypad() == J_RIGHT && x != 159)\n\t\t\tx++;\n\t\tif (joypad() == J_A) { // Change colors\n\t\t\twaitpadup();\n\t\t\ti++;\n\t\t\tif (i > 3)\n\t\t\t\ti = 0;\n\t\t}\n\t\tif (joypad() == J_B) { // Function to 'clear' the screen\n\t\t\tfor (j = 0; j < 20; j++) { // GB screen is 20 columns wide and 18 columns tall\n\t\t\t\tfor (f = 0; f < 18; f++) { \n\t\t\t\t\tgotogxy(j, f);\n\t\t\t\t\twrtchr(' '); // Use wrtchr to place a character when using the drawing library\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tplot(x, y, i, SOLID); // Draws a pixel on the screen (x, y, color, mode)\n\t\tdelay(10);\n\t}\n}"
  },
  {
    "path": "font/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = font.gb\nOBJS = font.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "font/README.md",
    "content": "# Font\n\n![](screenshot.png)\n\nDemonstrates how to switch from the default font. Be careful when using/loading fonts as they are loaded into VRAM and may overwrite tiles you're using. Built-in fonts include: font_spect, font_italic, font_ibm, font_min."
  },
  {
    "path": "font/font.c",
    "content": "#include <stdio.h> \n#include <gb/gb.h>\n#include <gbdk/font.h>\n\nvoid main(void) {\n\tfont_init(); // Initialize font\n\tfont_set(font_load(font_spect)); // Set and load the font\n\tprintf(\"New font!\");\n}\n"
  },
  {
    "path": "hello_world/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = hello_world.gb\nOBJS = hello_world.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "hello_world/README.md",
    "content": "\n\n\n\n# Hello World\n<div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n\nPrints `Hello World!` to the screen using GBDK's `printf` function.\n\n## Source\nIncludes `<gb/gb.h>`. This file contains all Gameboy specific functions.\nIt's the one you're going to use the most.\n\n\n  \n\n```c\n#include <gb/gb.h>\n\n```\n\n\n\n\n\n\n\nIncludes `<stdio.h>` it contains funtions for basic file/console input and\noutput.\n\n\n  \n\n```c\n#include <stdio.h>\n\n```\n\n\n\n\n\n\n\nA C program always starts by calling the `main()` function. If you are\nunfamiliar with this I suggest reading up on C first.\n\n\n  \n\n```c\nvoid main() {\n\n```\n\n\n\n\n\n\n\nPrints the string `Hello World!` to the screen. Internally it uses the\nbackground layer to do so as you can see in the VRAM of your favorite\nemulator.\n\n\n  \n\n```c\n    printf(\"Hello World!\");\n\n```\n\n\n\n\n\n\n\nUsing `\\n` you can create a new line. In this case it is used to create some\nspace between the previous sentence and the next.\n\n\n  \n\n```c\n    printf(\"\\n\\nPress Start\");\n}\n\n\n\n```\n\n\n\n"
  },
  {
    "path": "hello_world/docs.sh",
    "content": "docco -t ../docs/res/readme_c.jst -o ./ hello_world.c\nmv hello_world.html README.md\n\n"
  },
  {
    "path": "hello_world/hello_world.c",
    "content": "// # Hello World\n// <div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n//\n// Prints `Hello World!` to the screen using GBDK's `printf` function.\n//\n// ## Source\n// Includes `<gb/gb.h>`. This file contains all Gameboy specific functions.\n// It's the one you're going to use the most.\n#include <gb/gb.h>\n// Includes `<stdio.h>` it contains funtions for basic file/console input and\n//output.\n#include <stdio.h>\n// A C program always starts by calling the `main()` function. If you are\n// unfamiliar with this I suggest reading up on C first.\nvoid main() {\n// Prints the string `Hello World!` to the screen. Internally it uses the\n// background layer to do so as you can see in the VRAM of your favorite\n// emulator.\n    printf(\"Hello World!\");\n// Using `\\n` you can create a new line. In this case it is used to create some\n// space between the previous sentence and the next.\n    printf(\"\\n\\nPress Start\");\n}\n\n"
  },
  {
    "path": "huge_sprite/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = huge_sprite.gb\nOBJS = huge_sprite.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "huge_sprite/README.md",
    "content": "\n\n\n\n# Huge Sprite\n<div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n\nRender a huge 40x64 sprite that can be moved around with the D-pad.\n\n## Source\n\n\n  \n\n```c\n\n#include <gb/gb.h>\n#include <types.h>\n\n#include \"sprite.h\"\n#include \"bg.h\"\n\n#define SPR_WIDTH 8\n#define SPR_HEIGHT 5\n#define TOTAL_SPR SPR_WIDTH * SPR_HEIGHT\n\nuint8_t x = 64;\nuint8_t y = 96;\n\nvoid render_huge_sprite() {\n\tuint8_t i, j;\n\tuint8_t sprite_index;\n\n\tset_sprite_tile(0, 1);\n\n\tfor(i = 0; i < SPR_WIDTH; ++i) {\n\t\tfor(j = 0; j < SPR_HEIGHT; ++j) {\n\t\t\tsprite_index = i * SPR_HEIGHT + j;\n\t\t\tset_sprite_tile(sprite_index, sprite_index);\n\t\t\tmove_sprite(sprite_index, x + (j * 8), y + (i * 8));\n\t\t}\n\t}\n}\n\nvoid load_background() {\n\tset_bkg_data(0, 2, bg_tile_data);\n\tset_bkg_tiles(0, 0, 20, 18, bg_map_data); \n}\n\nvoid move_huge_sprite(uint8_t nx, uint8_t ny) {\n\tuint8_t i, lx, ly;\n\tlx = 0;\n\tly = 0;\n\tfor(i = 0; i < 40; i++) {\n\t\tif(lx == 40) {\n\t\t\tlx = 0;\n\t\t\tly += 8;\n\t\t}\n\t\tmove_sprite(i, nx + lx, ny + ly);\n\t\tlx += 8;\n\t}\t\n\n}\n\nvoid move_right() {\n\tmove_huge_sprite(++x, y);\n}\n\nvoid move_left() {\n\tmove_huge_sprite(--x, y);\n}\n\nvoid main() {\n\tSPRITES_8x8;\n\tset_sprite_data(0, 40, sprite_tile_data);\n\n\trender_huge_sprite();\n\tload_background();\n\n\tSHOW_SPRITES;\n\tSHOW_BKG;\n\n\twhile(1) {\n\t\tif(joypad() & J_RIGHT) {\n\t\t\tmove_right();\n\t\t}\n\t\tif(joypad() & J_LEFT) {\n\t\t\tmove_left();\n\t\t}\n\t\tdelay(10);\n\t}\n}\n\n\n```\n\n\n\n\n"
  },
  {
    "path": "huge_sprite/bg.h",
    "content": "// ///////////////////////\r\n// //                   //\r\n// //  File Attributes  //\r\n// //                   //\r\n// ///////////////////////\r\n\r\n// Filename: bg.png\r\n// Pixel Width: 144px\r\n// Pixel Height: 160px\r\n\r\n// WARNING:  Width of input image padded 3px to 144px\r\n\r\n// /////////////////\r\n// //             //\r\n// //  Constants  //\r\n// //             //\r\n// /////////////////\r\n\r\nconst int bg_tile_map_size = 0x0168;\r\nconst int bg_tile_map_width = 0x12;\r\nconst int bg_tile_map_height = 0x14;\r\n\r\nconst int bg_tile_data_size = 0x20;\r\nconst int bg_tile_count = 0x0168;\r\n\r\n// ////////////////\r\n// //            //\r\n// //  Map Data  //\r\n// //            //\r\n// ////////////////\r\n\r\nconst unsigned char bg_map_data[] ={\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01\r\n};\r\n\r\n// /////////////////\r\n// //             //\r\n// //  Tile Data  //\r\n// //             //\r\n// /////////////////\r\n\r\nconst unsigned char bg_tile_data[] ={\r\n  0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x01,0x01,\r\n  0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00\r\n};\r\n"
  },
  {
    "path": "huge_sprite/docs.sh",
    "content": "docco -t ../docs/res/readme_c.jst -o ./ huge_sprite.c -c \"\"\nmv huge_sprite.html README.md\n"
  },
  {
    "path": "huge_sprite/huge_sprite.c",
    "content": "// # Huge Sprite\n// <div style=\"text-align: center\"><img src=\"screenshot.png\" alt=\"\" /></div>\n//\n// Render a huge 40x64 sprite that can be moved around with the D-pad.\n//\n// ## Source\n\n#include <gb/gb.h>\n#include <types.h>\n\n#include \"sprite.h\"\n#include \"bg.h\"\n\n#define SPR_WIDTH 8\n#define SPR_HEIGHT 5\n#define TOTAL_SPR SPR_WIDTH * SPR_HEIGHT\n\nuint8_t x = 64;\nuint8_t y = 96;\n\nvoid render_huge_sprite() {\n\tuint8_t i, j;\n\tuint8_t sprite_index;\n\n\tset_sprite_tile(0, 1);\n\n\tfor(i = 0; i < SPR_WIDTH; ++i) {\n\t\tfor(j = 0; j < SPR_HEIGHT; ++j) {\n\t\t\tsprite_index = i * SPR_HEIGHT + j;\n\t\t\tset_sprite_tile(sprite_index, sprite_index);\n\t\t\tmove_sprite(sprite_index, x + (j * 8), y + (i * 8));\n\t\t}\n\t}\n}\n\nvoid load_background() {\n\tset_bkg_data(0, 2, bg_tile_data);\n\tset_bkg_tiles(0, 0, 20, 18, bg_map_data); \n}\n\nvoid move_huge_sprite(uint8_t nx, uint8_t ny) {\n\tuint8_t i, lx, ly;\n\tlx = 0;\n\tly = 0;\n\tfor(i = 0; i < 40; i++) {\n\t\tif(lx == 40) {\n\t\t\tlx = 0;\n\t\t\tly += 8;\n\t\t}\n\t\tmove_sprite(i, nx + lx, ny + ly);\n\t\tlx += 8;\n\t}\t\n\n}\n\nvoid move_right() {\n\tmove_huge_sprite(++x, y);\n}\n\nvoid move_left() {\n\tmove_huge_sprite(--x, y);\n}\n\nvoid main() {\n\tSPRITES_8x8;\n\tset_sprite_data(0, 40, sprite_tile_data);\n\n\trender_huge_sprite();\n\tload_background();\n\n\tSHOW_SPRITES;\n\tSHOW_BKG;\n\n\twhile(1) {\n\t\twait_vbl_done();\n\t\tif(joypad() & J_RIGHT) {\n\t\t\tmove_right();\n\t\t}\n\t\tif(joypad() & J_LEFT) {\n\t\t\tmove_left();\n\t\t}\n\t\tdelay(10);\n\t}\n}\n"
  },
  {
    "path": "huge_sprite/sprite.h",
    "content": "// ///////////////////////\r\n// //                   //\r\n// //  File Attributes  //\r\n// //                   //\r\n// ///////////////////////\r\n\r\n// Filename: sprite.png\r\n// Pixel Width: 40px\r\n// Pixel Height: 64px\r\n\r\n// /////////////////\r\n// //             //\r\n// //  Constants  //\r\n// //             //\r\n// /////////////////\r\n\r\nconst int sprite_tile_map_size = 0x28;\r\nconst int sprite_tile_map_width = 0x05;\r\nconst int sprite_tile_map_height = 0x08;\r\n\r\nconst int sprite_tile_data_size = 0x0280;\r\nconst int sprite_tile_count = 0x28;\r\n\r\n// ////////////////\r\n// //            //\r\n// //  Map Data  //\r\n// //            //\r\n// ////////////////\r\n\r\nconst unsigned char sprite_map_data[] ={\r\n  0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,\r\n  0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,\r\n  0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27\r\n};\r\n\r\n// /////////////////\r\n// //             //\r\n// //  Tile Data  //\r\n// //             //\r\n// /////////////////\r\n\r\nconst unsigned char sprite_tile_data[] ={\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x1F,0x1F,\r\n  0x00,0x00,0x01,0x01,0x0F,0x0F,0x1F,0x1F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\r\n  0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\r\n  0x80,0x80,0xE0,0xE0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,\r\n  0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0E,0x0F,0x0E,0x0F,0x0F,0x0E,0x02,0x03,\r\n  0xFD,0xFF,0xDE,0xBD,0x75,0x9E,0xFF,0x0E,0xDA,0x27,0xC6,0x39,0xDB,0x74,0xBD,0x5A,\r\n  0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xDF,0x3F,0xCF,0x3F,0x1B,0xE7,0xBF,0x5F,0xCF,0x37,\r\n  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBD,0xFE,0xDE,0xB9,0xF7,0x9A,\r\n  0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0x78,0xF8,0xF8,0x78,0xF8,0x78,\r\n  0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x02,0x02,0x03,0x03,0x02,0x06,0x07,0x00,0x01,\r\n  0x7B,0x9C,0x3D,0xDE,0xB3,0x4C,0xC8,0x37,0xFB,0x04,0xFA,0x05,0xFF,0x00,0xFF,0x00,\r\n  0xDF,0x27,0xFD,0x03,0xF9,0x06,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,\r\n  0x92,0xFF,0xB2,0x5F,0xDC,0x33,0xDA,0x37,0xCA,0x35,0xFF,0x23,0x9F,0x6F,0xBF,0x5F,\r\n  0xF8,0x78,0xF0,0x70,0x70,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,\r\n  0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0xFF,0x00,0x7A,0x87,0xFF,0x83,0x7C,0x43,0x0F,0x10,0x04,0x07,0x00,0x01,0x00,0x01,\r\n  0xAF,0x50,0x9F,0xE0,0xBF,0xC0,0x7D,0x83,0xF7,0x0F,0x3E,0xFF,0x5C,0xBF,0xC5,0x3B,\r\n  0x5F,0xBF,0xAF,0x7F,0x7B,0xC7,0xAB,0xD7,0xD7,0x6F,0x17,0xFF,0x9F,0x6F,0x0F,0xFF,\r\n  0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE8,0xE8,\r\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\r\n  0x00,0x01,0x02,0x03,0x03,0x0C,0x0F,0x10,0x3E,0x21,0x15,0x2A,0x20,0x5F,0x8A,0xF5,\r\n  0x4D,0xB3,0x69,0xB6,0x39,0xE6,0x09,0xF6,0x53,0xAC,0x19,0xE6,0xBD,0x42,0xFC,0x03,\r\n  0xB7,0x4F,0x7B,0x87,0xFD,0x03,0xFE,0x01,0xFF,0x00,0xFF,0x00,0xFE,0x01,0xFB,0x04,\r\n  0xE8,0xE8,0xE4,0xE4,0xF4,0xF4,0x70,0xF0,0xB0,0x70,0xD8,0x38,0xD8,0x38,0xD8,0x38,\r\n  0x00,0x00,0x01,0x01,0x01,0x02,0x01,0x02,0x05,0x06,0x07,0x04,0x03,0x0C,0x1B,0x14,\r\n  0xB7,0xC8,0x77,0x88,0xFB,0x04,0xFB,0x04,0xFA,0x05,0xFB,0x04,0xF9,0x06,0xFB,0x04,\r\n  0xFA,0x05,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,\r\n  0xF7,0x08,0x6F,0x90,0xAF,0x50,0xBF,0x40,0xBF,0x40,0x3F,0xC0,0xAF,0x50,0x3F,0xC0,\r\n  0xDC,0x3C,0xFC,0x1C,0xFC,0x1C,0xFE,0x1E,0xFE,0x1E,0xFE,0x1E,0xFF,0x1F,0xFF,0x1F,\r\n  0x0F,0x10,0x19,0x26,0x10,0x2F,0x3F,0x40,0x3F,0x40,0xFF,0x80,0x7F,0x80,0x3E,0x41,\r\n  0xFD,0x02,0xFE,0x01,0xFF,0x00,0x4F,0xB0,0xC3,0x7C,0x08,0xF7,0x9F,0xE0,0xBE,0xC1,\r\n  0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFC,0x03,0x33,0xCC,0x4F,0xB0,0xBF,0xC0,\r\n  0xB7,0x48,0xB7,0x48,0xFF,0x00,0x9F,0x78,0x77,0xF8,0x17,0xE8,0x9F,0x60,0x4F,0xB0,\r\n  0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xEF,0x1F,0xFF,0x1F,0xEF,0x1F,0xFF,0x1F,0xFF,0x1F,\r\n  0x06,0x19,0x00,0x03,0x01,0x01,0x00,0x01,0x01,0x00,0x01,0x02,0x01,0x02,0x03,0x00,\r\n  0x3C,0xC3,0x3C,0xC3,0xBC,0xC3,0x1E,0xE1,0xA0,0x5F,0xFF,0x00,0xFF,0x00,0xFF,0x00,\r\n  0x7F,0x80,0xFF,0x00,0xFE,0x01,0xFF,0x00,0x04,0xFB,0xEF,0x10,0xFF,0x00,0xEF,0x10,\r\n  0xBF,0x40,0x3F,0xC0,0x9F,0x60,0x1F,0xE0,0x4F,0xB0,0x40,0xBF,0x5F,0xAF,0xDF,0x2F,\r\n  0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF};\r\n"
  },
  {
    "path": "input_state/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = input_state.gb\nOBJS = input_state.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "input_state/README.md",
    "content": "# Input State\n\n![](screenshot.png)\n\nPrints the pressed button every 100ms.\n\n"
  },
  {
    "path": "input_state/input_state.c",
    "content": "#include <stdio.h>\n#include <gb/gb.h>\n\nvoid main(void) {\n    while(1) {\n        switch(joypad()) {\n            case J_LEFT:\n                printf(\"Left!\\n\");\n                break;\n            case J_RIGHT:\n                printf(\"Right!\\n\");\n                break;\n            case J_UP:\n                printf(\"Up!\\n\");\n                break;\n            case J_DOWN:\n                printf(\"Down!\\n\");\n                break;\n            case J_START:\n                printf(\"Start!\\n\");\n                break;\n            case J_SELECT:\n                printf(\"Select!\\n\");\n                break;\n            case J_A:\n                printf(\"A!\\n\");\n                break;\n            case J_B:\n                printf(\"B!\\n\");\n                break;\n        }\n        delay(100);\n    }\n}\n"
  },
  {
    "path": "input_wait/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = input_wait.gb\nOBJS = input_wait.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "input_wait/README.md",
    "content": "# Input Wait\n\n![](screenshot.png)\n\nDemonstrates how to wait for key pressed and releases.\n\n"
  },
  {
    "path": "input_wait/input_wait.c",
    "content": "#include <stdio.h>\n#include <gb/gb.h>\n\nvoid main() {\n    while(1) {\n        printf(\"Press Start\\n\\n\");\n        waitpad(J_START);\n\n        printf(\"Please hold down A!\\n\\n\");\n        waitpad(J_A);\n        printf(\"Holding down A!\\n\\n\");\n        waitpadup();\n        printf(\"Tired already?\\n\\n\\n\");\n    }\n}\n"
  },
  {
    "path": "link/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = link.gb\nOBJS = link.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "link/README.md",
    "content": "# Link\n\n![](screenshot.png)\n\nDemonstrates how to use the Link Cable to send and receive bytes.\n\n"
  },
  {
    "path": "link/link.c",
    "content": "#include <stdio.h>\n#include <gb/gb.h>\n\nvoid main(void) {\n\tprintf(\"A: Send\\nB: Receive\\n\\n\");\n\t_io_out = 1;\n\twhile (1) {\n\t\tif (joypad() == J_A) {\n\t\t\twaitpadup();\n\t\t\tsend_byte(); // send _io_out\n\t\t\tprintf(\"Sending...\\n\");\n\t\t\twhile (_io_status == IO_SENDING); // Wait for Send\n\t\t\tif (_io_status == IO_IDLE) // If IO status returns to Idle then success\n\t\t\t\tprintf(\"Sent %d\\n\", (int)_io_out);\n\t\t\telse\n\t\t\t\tprintf(\"Error\\n\"); // Else print error code\n\t\t\t_io_out++;\n\t\t}\n\t\tif (joypad() == J_B) {\n\t\t\twaitpadup();\n\t\t\treceive_byte(); // receive _io_in\n\t\t\tprintf(\"Receiving...\\n\");\n\t\t\twhile (_io_status == IO_RECEIVING); // Wait for Receive\n\t\t\tif (_io_status == IO_IDLE) // If IO status returns to Idle then success\n\t\t\t\tprintf(\"Received %d\\n\", (int)_io_in);\n\t\t\telse\n\t\t\t\tprintf(\"Error\\n\"); // Else print error\n\t\t}\n\t}\n}"
  },
  {
    "path": "move_sprite/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = move_sprite.gb\nOBJS = move_sprite.o ufo.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "move_sprite/README.md",
    "content": "# Move Sprite\n\n![](screenshot.gif)\n\nDemonstrates how to move a sprite using the d-pad.\n\n"
  },
  {
    "path": "move_sprite/move_sprite.c",
    "content": "#include <gb/gb.h>\n#include \"ufo.h\"\n\nvoid main() {\n    int x = 55;\n    int y = 75;\n\n    SPRITES_8x8;\n    set_sprite_data(0, 0, ufo);\n    set_sprite_tile(0, 0);\n    move_sprite(0, x, y);\n\n    SHOW_SPRITES;\n\n    while(1) {\n        if(joypad() & J_RIGHT) {\n            x++;\n            move_sprite(0, x, y);\n            delay(10);\n        }\n        if(joypad() & J_LEFT) {\n            x--;\n            move_sprite(0, x, y);\n            delay(10);\n        }\n        if(joypad() & J_UP) {\n            y--;\n            move_sprite(0, x, y);\n            delay(10);\n        }\n        if(joypad() & J_DOWN) {\n            y++;\n            move_sprite(0, x, y);\n            delay(10);\n        }\n    }\n}\n"
  },
  {
    "path": "move_sprite/ufo.c",
    "content": "/*\n\n UFO.C\n\n Tile Source File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n/* Start of tile array. */\nunsigned char ufo[] =\n{\n  0x5A,0x3C,0xE3,0x42,0x7C,0x99,0xEB,0xA5,\n  0xFB,0xA5,0x66,0x99,0xE7,0x42,0x5A,0x3C\n};\n\n/* End of UFO.C */\n"
  },
  {
    "path": "move_sprite/ufo.h",
    "content": "/*\n\n UFO.H\n\n Include File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n\n/* Bank of tiles. */\n#define ufoBank 0\n/* Start of tile array. */\nextern unsigned char ufo[];\n\n/* End of UFO.H */\n"
  },
  {
    "path": "save_ram/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m -Wl-yt3 -Wl-yo4 -Wl-ya4\n\nBIN = save_ram.gb\nOBJS = save_ram.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "save_ram/README.md",
    "content": "# Save RAM\n\n![](screenshot.png)\n\nDemonstrates how to load and save variables. Using Save RAM requires additional compiler arguments."
  },
  {
    "path": "save_ram/save_ram.c",
    "content": "#include <stdio.h>\n#include <gb/gb.h>\n\nchar *saved = (char *)0xa000; // Pointer to memory address\nint *num = (int *)0xa001;\n\nvoid main()\n\n{\n\tENABLE_RAM_MBC1; // Enable RAM\n\n\tif (saved[0] != 's') { // Check to see if the variable's ever been saved before\n\t\tnum[0]=0; // Assign the variable an initial value\n\t\tsaved[0] = 's'; // Assign saved an 's' value so the if statement isn't executed on next load\n\t}\n\n\tprintf(\"The value of num is: %d\\n\", num[0]);\n\n\tnum[0]++; // Increment so on next load there's a new number\n\n\tDISABLE_RAM_MBC1; // Disable RAM\n}\n"
  },
  {
    "path": "simple_shmup/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m -Wl-j\nLDFLAGS= -Wl-yt0x01 -Wl-yo4\n\nBIN = simple_shmup.gb\nOBJS = simple_shmup.o bank2.o bank3.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^\n\nsimple_shmup.o: simple_shmup.c\n\t$(CC) $(CFLAGS) -c -o $@ $<\n\nbank2.o: bank2.c\n\t$(CC) $(CFLAGS) -Wf-bo2 -c -o $@ $<\n\nbank3.o: bank3.c\n\t$(CC) $(CFLAGS) -Wf-bo3 -c -o $@ $<\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "simple_shmup/README.md",
    "content": "# Simple SHMUP\n\n![](screenshot.png)\n\nA simple side-scrolling shoot 'em up game. This example uses several small\nsprites, a scrolling background and a full-screen image.\n\nTutorial: [How to write a simple side scrolling game in GBDK](https://pastebin.com/F3tHLj68) by Jason\n"
  },
  {
    "path": "simple_shmup/bank2.c",
    "content": "#include <gb/gb.h>\n#include <gb/drawing.h>\n#include <rand.h>\n\nconst UBYTE badguy_ai[] = {\n    32,  32,  33,  34,  35,  35,  36,  37,\n    38,  38,  39,  40,  41,  41,  42,  43,\n    44,  44,  45,  46,  46,  47,  48,  48,\n    49,  50,  50,  51,  51,  52,  53,  53,\n    54,  54,  55,  55,  56,  56,  57,  57,\n    58,  58,  58,  59,  59,  60,  60,  60,\n    61,  61,  61,  61,  62,  62,  62,  62,\n    62,  63,  63,  63,  63,  63,  63,  63,\n    63,  63,  63,  63,  63,  63,  63,  63,\n    62,  62,  62,  62,  62,  61,  61,  61,\n    61,  60,  60,  60,  59,  59,  59,  58,\n    58,  57,  57,  56,  56,  55,  55,  54,\n    54,  53,  53,  52,  52,  51,  50,  50,\n    49,  49,  48,  47,  47,  46,  45,  44,\n    44,  43,  42,  42,  41,  40,  39,  39,\n    38,  37,  36,  36,  35,  34,  33,  33,\n    32,  31,  30,  29,  29,  28,  27,  26,\n    26,  25,  24,  23,  23,  22,  21,  20,\n    20,  19,  18,  18,  17,  16,  16,  15,\n    14,  14,  13,  12,  12,  11,  11,  10,\n    9,  9,  8,  8,  7,  7,  6,  6,\n    6,  5,  5,  4,  4,  4,  3,  3,\n    3,  2,  2,  2,  1,  1,  1,  1,\n    1,  1,  0,  0,  0,  0,  0,  0,\n    0,  0,  0,  0,  0,  0,  0,  0,\n    1,  1,  1,  1,  1,  1,  2,  2,\n    2,  3,  3,  3,  4,  4,  4,  5,\n    5,  5,  6,  6,  7,  7,  8,  8,\n    9,  9,  10,  11,  11,  12,  12,  13,\n    14,  14,  15,  16,  16,  17,  18,  18,\n    19,  20,  20,  21,  22,  23,  23,  24,\n    25,  26,  26,  27,  28,  29,  29,  30\n};\n\nUBYTE playing, joypad_state;\n\nUBYTE player_x, player_y;\n\nUBYTE badguy_x, badguy_y, badguy_z, badguy_offset;\n\nUBYTE player_shot_x, player_shot_y, player_shot_z;\n\nvoid update_graphics(void) {\n    disable_interrupts();\n    \n    scroll_bkg(1, 0);\n\n    move_sprite(0, player_x, player_y);\n\n    move_sprite(1, badguy_x, badguy_y);\n\n    move_sprite(2, player_shot_x, player_shot_y);\n\n    enable_interrupts();\n}\n\nvoid update_joypad(void) {    \n    joypad_state = joypad();\n    \n    if(joypad_state & J_LEFT) {\n        if(player_x > 8)\n            player_x--;\n    }\n    if(joypad_state & J_RIGHT) {\n        if(player_x < 160)\n            player_x++;\n    }\n    if(joypad_state & J_UP) {\n        if(player_y > 16)\n            player_y--;\n    }\n    if(joypad_state & J_DOWN) {\n        if(player_y < 152)\n            player_y++;\n    }\n\n    if(joypad_state & J_A) {\n        if(player_shot_z == 0) {\n            player_shot_z = 1;\n            player_shot_x = player_x;\n            player_shot_y = player_y;\n        }\n    }\n    if(player_shot_z == 1) {\n        player_shot_x = player_shot_x + 2;\n        if(player_shot_x > 240) {\n            player_shot_x = 250;\n            player_shot_y = 250;\n            player_shot_z = 0;\n        }\n    }\n}\n\nvoid update_badguy(void) {\n    badguy_x = badguy_x - 1;\n    if(badguy_x > 240) {\n        badguy_offset = rand();\n        while(badguy_offset > 134) {\n            badguy_offset = rand();\n        }\n\n        badguy_x = 239;\n    }\n\n    badguy_y = badguy_offset + badguy_ai[badguy_z];\n\n    badguy_z++;\n}\n\n\nvoid collision_detection(void) {\n    if(player_shot_y > badguy_y - 4) {\n        if(player_shot_y < badguy_y + 4) {\n            if(player_shot_x > badguy_x - 4) {\n                if(player_shot_x < badguy_x + 4) {\n                    player_shot_z = 0;\n                    player_shot_x = 250;\n                    player_shot_y = 250;\n                    badguy_x = 255;\n                }\n            }\n        }\n    }\n\n    if(player_y > badguy_y - 4) {\n        if(player_y < badguy_y + 4) {\n            if(player_x > badguy_x - 4) {\n                if(player_x < badguy_x + 4) {\n                    playing = 0;\n                    delay(1000);\n                }\n            }\n        }\n    }\n}\n\nvoid do_gameplay(void) {\n    playing = 1;\n    \n    player_x = GRAPHICS_WIDTH / 2;\n    player_y = GRAPHICS_HEIGHT / 2;\n\n    while(playing == 1) {       \n        update_joypad();\n        update_badguy();\n        collision_detection();\n        delay(10);\n    }\n}\n"
  },
  {
    "path": "simple_shmup/bank3.c",
    "content": "#include <gb/gb.h>\n#include <gb/cgb.h>\n#include \"bg_title.c\"\n#include \"bg_title_map.c\"\n#include \"bg_tile.c\"\n#include \"spr_tiles.c\"\n\nconst UBYTE gamemap[] = {\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n};\n\nconst UWORD bgpal[] = {\n    RGB(0, 0, 0), RGB(10, 10, 10), RGB(20, 20, 20), RGB(30, 30, 30),\n};\nconst UWORD spritepal[] = {\n    RGB(0, 0, 0), RGB(10, 10, 10), RGB(20, 20, 20), RGB(30, 30, 30),\n};\n\nvoid draw_title_screen(void) {\n    wait_vbl_done();\n\n    DISPLAY_OFF;\n\n    set_bkg_data(0, 255, bg_title_tiledata);\n    set_bkg_tiles(0, 0, 20, 18, bg_title_tilemap);\n\n    SHOW_BKG;\n\n    HIDE_WIN;\n\n    HIDE_SPRITES;\n\n    wait_vbl_done();\n\n    DISPLAY_ON;\n\n    waitpad(255);\n}\n\nvoid load_game_tiles(void) {\n    wait_vbl_done();\n\n    DISPLAY_OFF;\n\n    set_bkg_data(0, 1, BGTile);\n    set_bkg_tiles(0, 0, 32, 32, gamemap);\n    set_bkg_palette(0, 1, &bgpal[0]);\n    set_sprite_data(0, 3, SpriteTiles);\n    set_sprite_tile(0, 0);\n    set_sprite_tile(1, 1);\n    set_sprite_tile(2, 2);\n\n    SPRITES_8x8;\n\n    SHOW_SPRITES;\n\n    SHOW_BKG;\n\n    DISPLAY_ON;\n}\n"
  },
  {
    "path": "simple_shmup/bg_tile.c",
    "content": "/*\n\n BG_TILE.C\n\n Tile Source File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n/* Start of tile array. */\nconst unsigned char BGTile[] =\n{\n  0xFF,0xFF,0xFB,0xFB,0xFF,0xFF,0xFF,0xFF,\n  0xFF,0xFF,0x7F,0x7F,0xF7,0xF7,0xFF,0xFF\n};\n\n/* End of BG_TILE.C */\n"
  },
  {
    "path": "simple_shmup/bg_tile.h",
    "content": "/*\n\n BG_TILE.H\n\n Include File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n\n/* Bank of tiles. */\n#define BGTileBank 0\n/* Start of tile array. */\nextern unsigned char BGTile[];\n\n/* End of BG_TILE.H */\n"
  },
  {
    "path": "simple_shmup/bg_title.c",
    "content": "/* \n Advanced PCX to GameBoy converter v2.15\n\n Tiles data\n Original PCX File : \"BG.PCX\"\n\n Number of Tiles   : 159\n TileMap Size      : 20x18\n*/ \n\nconst unsigned char bg_title_tiledata[] = {\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x30,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,\n0xFE,0xFF,0xFF,0xFC,0xF5,0xFB,0xFB,0xF7,0xE7,0xFF,0xFF,0xEF,0xDF,0xEF,0xDF,0xEF,\n0xFF,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,\n0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,\n0x87,0x30,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0x48,0xB7,\n0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,\n0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,\n0xFE,0x00,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x01,0xFE,\n0x77,0xF8,0x7B,0xF7,0x7F,0xF7,0x6F,0xF7,0x67,0xFF,0x7F,0xEF,0x7F,0xEF,0x4F,0xFF,\n0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,\n0xFB,0x07,0xF3,0xFF,0xFF,0xFB,0xFF,0xFB,0xF9,0xFF,0xF9,0xFF,0xFF,0xFD,0xFF,0xFD,\n0xFF,0xF8,0x7F,0x7B,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,\n0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFC,0xFE,\n0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFF,0xFE,0x01,\n0xF7,0x0F,0xEF,0xF3,0xFB,0xFD,0xFD,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0x7F,0x3F,0xFF,0x7F,0xBF,\n0xCF,0xFF,0xDF,0xEF,0xFF,0xEF,0xF7,0xEF,0xEF,0xF7,0xF7,0xFB,0xF8,0xFF,0xFE,0xFF,\n0xFF,0xFC,0xFE,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,\n0xFF,0x00,0xFF,0xFF,0x7F,0xFF,0x3F,0xFF,0xAF,0xDF,0xF7,0xEF,0xFB,0xF7,0xF7,0xFB,\n0xCF,0x30,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0x03,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,\n0xFF,0xFC,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,\n0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x4F,0xFF,0xFF,0xDF,0xFF,0xDF,0x9F,0xFF,0xDF,0xBF,0xFF,0xBF,0xFF,0xBF,0x3F,0xFF,\n0xF3,0xFF,0xFF,0xF3,0xFF,0xF3,0xE7,0xFB,0xE1,0xFF,0xFF,0xED,0xFF,0xED,0xCE,0xFD,\n0xFC,0xFF,0xFD,0xFE,0xFF,0xFE,0xFF,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0x7F,0xFB,0x7F,0xFB,0xFF,0x7B,0x3F,0xFB,\n0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFE,0xFF,0xFE,0x03,0xFC,0xF9,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFA,0xFD,\n0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0x3F,0xFF,0xBF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,\n0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x7F,0xBF,0xDF,0xBF,0xDF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFD,0xFB,0xFB,0xFD,0xFF,0xFD,0xFF,0xFD,0xFB,0xFD,0xFD,0xFB,0xF7,0xFB,0xEB,0xF7,\n0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,\n0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,\n0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFC,0xFF,0xFC,0xFF,\n0x3F,0xFF,0xFF,0x7F,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFE,0xC1,0xC1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0x40,0xBF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xBF,0x7F,\n0x3F,0xFB,0xFF,0xBB,0xFF,0xBB,0x9F,0xFB,0x9F,0xFB,0xFF,0xDB,0xFF,0xDB,0xCF,0xFB,\n0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFC,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,\n0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xBF,0x7F,0x5F,0xBF,0xAF,0xDF,0xD7,0xEF,0xEB,0xF7,\n0xED,0xF3,0xEB,0xF7,0xF7,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,\n0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0x7F,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xD7,0xEF,0x6F,0x9F,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF7,0xFB,0xF7,0xFB,0xF7,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFE,0xFD,0xFE,0xFD,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFD,0xFF,0xFD,0xFB,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFE,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0x7F,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x7F,0xBF,0xDF,0xBF,0xFF,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xCF,0xFB,0xDD,0xEB,0xF7,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFD,0xFE,0xFD,0xFE,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF5,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0x7F,0xFF,0x7F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xDF,0xEF,0xDF,0xEF,0xEF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFD,0xFD,0xFB,0xFB,0xF7,\n0xFF,0xFF,0xF9,0xFE,0xDC,0xE3,0x6F,0x9F,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xEF,0x1F,0x2F,0xDF,0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0xCE,0xFF,0xCF,0xFE,\n0xFF,0xFF,0xF6,0xF7,0xFB,0xFC,0xEB,0xF7,0xBF,0xCF,0x5F,0xBF,0xBF,0x7F,0x7F,0xFF,\n0xFF,0xFF,0x39,0xC7,0x03,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,0x6F,0x9F,0xD7,0xEF,0xEB,0xF7,0xFD,0xFB,0xFE,0xFD,\n0xFF,0xFF,0xFF,0xE0,0xF0,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,\n0xFE,0xFE,0xFE,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0x7F,0xFF,0xDF,0x3F,0xF7,0xCF,0xEB,0xF7,0xF7,0xFB,0xF9,0xFF,0xFF,0xFD,\n0xFF,0xFF,0xFE,0xFF,0xFB,0xFC,0xFF,0xF3,0xF7,0xEF,0xEF,0xDF,0xBF,0xDF,0xDF,0xBF,\n0xFF,0xFF,0x7F,0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFD,0xFD,0x7F,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,\n0xEF,0xF7,0xF7,0xEF,0xDF,0xEF,0xCF,0xFF,0xEF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,\n0xFF,0xFF,0xFD,0xFE,0xF6,0xF9,0xEB,0xF7,0xF7,0xEF,0xDF,0xEF,0xCF,0xFF,0xCF,0xFF,\n0xCD,0xFE,0xEF,0x1D,0x19,0xFF,0xFD,0xFB,0xFF,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,\n0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFF,0xFD,0xF9,0xFF,0xFD,0xFB,0xFD,0xFB,\n0xFF,0xFF,0xB3,0xCF,0xC5,0x3B,0x7F,0xFC,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFD,0xFE,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,\n0xFF,0xEF,0x7F,0xEF,0xFF,0x6F,0xFF,0x6F,0xBF,0x6F,0x3F,0xEF,0x7F,0xAF,0x7F,0xAF,\n0xF7,0xF8,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF3,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF7,0x0F,0xEF,0xF3,0xFF,0xFB,0xF7,0xFB,0xFB,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFE,0xFD,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFE,0xFD,0xFF,0xFD,0xFD,0xFB,\n0xDF,0xBF,0xFF,0xBF,0xFF,0xBF,0xDF,0xBF,0x9F,0xFF,0xFF,0xDF,0xDF,0xEF,0xE7,0xFF,\n0xFF,0xFF,0xFB,0xFC,0xF4,0xFB,0xFD,0xFB,0xFC,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xDF,0xBF,0xEF,0xDF,\n0xFF,0xDF,0xEF,0xDF,0xCF,0xFF,0xDF,0xEF,0xF7,0xEF,0xEF,0xF7,0xF7,0xFB,0xFD,0xFB,\n0xDF,0xEF,0xF7,0xEF,0xEB,0xF7,0xF6,0xF9,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFB,0xFF,0xFB,0xFD,0xFB,0x1B,0xFD,0x2F,0xDD,0xCD,0xFE,0xCF,0xFE,0xCF,0xFF,\n0xFB,0xFD,0xFE,0xFD,0xFD,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xBF,0x7F,\n0xFE,0xFF,0xFF,0xFE,0x7F,0xFC,0xCD,0x33,0x87,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFD,0xFE,0xFA,0xFD,0xF5,0xFB,\n0x3F,0xEF,0xBF,0x6F,0xFF,0x6F,0xFF,0x6F,0x7F,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xF4,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,\n0xF7,0xFB,0xEB,0xF7,0xBF,0xCF,0xDC,0x3F,0x7A,0xFD,0xFB,0xFD,0xFB,0xFD,0xFB,0xFD,\n0xF1,0xFF,0xFC,0xFF,0xFE,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF7,0xEF,0xEF,0xF7,0xFF,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xEF,0xF7,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0xFF,0xFF,\n0xFF,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xBF,0x7F,0x6F,0x9F,0xDC,0xE3,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0x2F,0xDF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x5F,0xBF,0xF7,0xCF,0xED,0xF3,0xFB,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0x78,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xEB,0xF7,0xD7,0xEF,0x7F,0x9F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xF0,0xEF,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0x0F,0xF3,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFB,0xFD,0xFB,0xFD,0xFB,0xFD,0xFA,0xFD,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xFC,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF7,0xEF,0xAF,0xDF,0x5F,0xBF,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x01,\n0xFD,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xFF,0xFF,\n0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,\n0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x01,0x01,0x01,0x01,0x7F,0x7F,0x7F,0x7F,\n0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,\n0xFF,0xFF,0xFF,0xFF,0x07,0x07,0x07,0x07,0xE3,0xE3,0xE3,0xE3,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xC7,0xC7,0xC7,0xC7,0xC0,0xC0,0xC7,0xC7,\n0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0x8F,0x8F,0x8F,0x8F,0x0F,0x0F,0xFF,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0x1F,0x1F,0x1F,0x1F,0xC0,0xC0,0xFE,0xFE,\n0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x3F,0x3F,0xFC,0xFC,0xFC,0xFC,0x7F,0x7F,0x3F,0x3F,\n0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x01,0x01,0xF8,0xF8,\n0xC7,0xC7,0xC7,0xC7,0xC7,0xC7,0xC7,0xC7,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xC7,0xC7,\n0x8F,0x8F,0x8F,0x8F,0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0x8F,0x8F,0x8F,0x8F,\n0xE1,0xE1,0xE1,0xE1,0x00,0x00,0x00,0x00,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,\n0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,\n0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x78,0x78,\n0xF8,0xF8,0xF8,0xF8,0xC0,0xC0,0xC0,0xC0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,\n0x7F,0x7F,0x7F,0x7F,0x0F,0x0F,0x0F,0x0F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,\n0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xC7,0xC7,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFE,0xFE,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x3F,0x3F,0x7C,0x7C,0x7C,0x7C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF8,0xF8,0x01,0x01,0x01,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x8F,0x8F,0x1F,0x1F,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xE1,0xE1,0xF8,0xF8,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFC,0xFC,0x3F,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x78,0x78,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xF8,0xF8,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0x7F,0x7F,0x0F,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};\n"
  },
  {
    "path": "simple_shmup/bg_title_map.c",
    "content": "/*\n Advanced PCX to GameBoy converter v2.15\n\n TileMap data\n Original PCX File : \"BG.PCX\"\n\n Number of Tiles   : 159\n TileMap Size      : 20x18\n*/\n\nconst unsigned char bg_title_tilemap[] = {\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x04,0x05,0x06,0x05,0x05,0x05,0x07,0x05,0x08,0x07,0x05,0x05,0x09,0x01,0x01,0x01,\n0x01,0x01,0x01,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x01,0x01,\n0x01,0x01,0x01,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x01,0x01,\n0x01,0x01,0x28,0x29,0x2A,0x2B,0x01,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x01,0x01,\n0x01,0x01,0x37,0x38,0x39,0x3A,0x01,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x01,0x01,\n0x01,0x01,0x01,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x48,0x4E,0x4F,0x50,0x51,0x48,0x52,0x01,0x01,\n0x01,0x01,0x01,0x53,0x54,0x48,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x3F,0x01,0x01,\n0x01,0x01,0x01,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x62,0x69,0x6A,0x6B,0x6C,0x01,0x01,0x01,\n0x01,0x6D,0x01,0x6E,0x6F,0x62,0x70,0x71,0x72,0x73,0x74,0x75,0x01,0x76,0x62,0x77,0x78,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x79,0x01,0x01,0x01,0x7A,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x7B,0x7C,0x01,0x01,0x01,0x01,0x01,0x7D,0x01,0x01,0x01,0x7E,0x7F,0x80,0x01,0x01,0x01,0x01,0x01,0x01,\n0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x01,0x01,0x8A,0x8B,0x8C,0x8D,0x8E,0x83,0x84,0x8F,0x90,\n0x91,0x92,0x93,0x01,0x94,0x95,0x96,0x97,0x98,0x01,0x01,0x94,0x99,0x9A,0x9B,0x9C,0x93,0x01,0x9D,0x9E};\n"
  },
  {
    "path": "simple_shmup/make.bat",
    "content": "echo off\n\nlcc -Wa-l -Wl-m -Wl-j -c -o simple_shmup.o simple_shmup.c\nlcc -Wa-l -Wl-m -Wl-j -Wf-bo2 -c -o bank2.o bank2.c\nlcc -Wa-l -Wl-m -Wl-j -Wf-bo3 -c -o bank3.o bank3.c\nlcc -Wa-l -Wl-m -Wl-j -Wl-yt0x01 -Wl-yo4 -o simple_shmup.gb simple_shmup.o bank2.o bank3.o\n\nrem -Wl-yp0x143=0x80\n"
  },
  {
    "path": "simple_shmup/simple_shmup.c",
    "content": "#include <gb/gb.h>\n#include <rand.h>\n#include <stdio.h>\n\n// bank 0\nvoid vblint(void);\n\n// bank 2\nvoid update_graphics(void);\n\nvoid do_gameplay(void);\n\nvoid update_joypad(void);\n\nvoid update_badguy(void);\n\nvoid collision_detection(void);\n\n// bank 3\nvoid draw_title_screen(void);\n\nvoid load_game_tiles(void);\n\nfixed seed;\n\n// main\nvoid main(void) {\n    seed.b.l = DIV_REG;\n\n    SWITCH_ROM_MBC1(3);\n\n    draw_title_screen();\n\n    seed.b.h = DIV_REG;\n\n    initrand(seed.w);\n\n    load_game_tiles();\n\n    disable_interrupts();\n\n    add_VBL(vblint);\n\n    SWITCH_ROM_MBC1(2);\n    \n    enable_interrupts();\n    \n    do_gameplay();\n\n    reset();\n}\n\nvoid vblint(void) {\n    SWITCH_ROM_MBC1(2);\n\n    update_graphics();\n}\n\n"
  },
  {
    "path": "simple_shmup/spr_tiles.c",
    "content": "/*\n\n SPR_TILES.C\n\n Tile Source File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 2\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n/* Start of tile array. */\nconst unsigned char SpriteTiles[] =\n{\n  0x40,0x40,0xE0,0xA0,0xFE,0x80,0xC8,0xB8,\n  0x8C,0xF4,0x96,0xEA,0xA9,0xD7,0xFF,0xFF,\n  0x02,0x40,0xC5,0xA3,0xE5,0xBB,0xF5,0xAB,\n  0xF5,0xAB,0xF5,0xAB,0xFD,0xBB,0x42,0x42,\n  0x00,0x00,0x00,0x18,0x18,0x3C,0x3C,0x66,\n  0x3C,0x66,0x18,0x3C,0x00,0x18,0x00,0x00\n};\n\n/* End of SPR_TILES.C */\n"
  },
  {
    "path": "simple_shmup/spr_tiles.h",
    "content": "/*\n\n SPR_TILES.H\n\n Include File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 2\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n\n/* Bank of tiles. */\n#define SpriteTilesBank 0\n/* Start of tile array. */\nextern unsigned char SpriteTiles[];\n\n/* End of SPR_TILES.H */\n"
  },
  {
    "path": "small_sprite/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nAS  = $(LCC) -c\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = small_sprite.gb\nOBJS = small_sprite.o sprite.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "small_sprite/README.md",
    "content": "# Small Sprite\n\n![](screenshot.png)\n\nRenders a small 8x8 sprite to the screen.\n\n"
  },
  {
    "path": "small_sprite/small_sprite.c",
    "content": "#include <gb/gb.h>\n#include \"sprite.h\"\n\nvoid main() {\n    SPRITES_8x8;\n    set_sprite_data(0, 8, sprite);\n    set_sprite_tile(0, 0);\n    move_sprite(0, 50, 50);\n    SHOW_SPRITES;\n}\n"
  },
  {
    "path": "small_sprite/sprite.c",
    "content": "/*\n\n SPRITE.C\n\n Tile Source File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n/* Start of tile array. */\nunsigned char sprite[] =\n{\n  0x7E,0x7E,0x99,0x99,0x81,0x81,0xA5,0xA5,\n  0x81,0x81,0xDB,0xDB,0xC3,0xC3,0x3C,0x3C\n};\n\n/* End of SPRITE.C */\n"
  },
  {
    "path": "small_sprite/sprite.h",
    "content": "/*\n\n SPRITE.H\n\n Include File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 0\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n\n/* Bank of tiles. */\n#define spriteBank 0\n/* Start of tile array. */\nextern unsigned char sprite[];\n\n/* End of SPRITE.H */\n"
  },
  {
    "path": "window/Makefile",
    "content": "LCC = $(GBDKDIR)bin/lcc\nCC  = $(LCC) -Wa-l -Wl-m\n\nBIN = window.gb\nOBJS = main.o\n\nall: $(BIN)\n\n$(BIN): $(OBJS)\n\t$(CC) -o $(BIN) $(OBJS)\n\nclean:\n\trm -f *.o *.lst *.sym *.asm *.gb *.ihx *.noi *.map"
  },
  {
    "path": "window/README.md",
    "content": "# Window\n\n![](screenshot.png)\n\nDemonstrates the use of the window layer along with the background layer. Both\nuse similar API.\n\n"
  },
  {
    "path": "window/bg.c",
    "content": "/* \n Advanced PCX to GameBoy converter v2.15\n\n Tiles data\n Original PCX File : \"BG.PCX\"\n\n Number of Tiles   : 152\n TileMap Size      : 20x18\n*/ \n\nconst unsigned char bg_tiledata[] = {\n0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF,\n0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3F,0xFF,0x1F,0xFF,0x3F,0xFF,\n0x3F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFD,0xFF,0xFA,0xFF,0xF9,0xFF,0xD4,0xFF,0xAA,0xFF,\n0x00,0xFF,0x80,0xFF,0x00,0xFF,0x80,0xFF,0x80,0xFF,0x20,0xFF,0x40,0xFF,0x20,0xFF,\n0x00,0xFF,0x00,0xFF,0x02,0xFF,0x00,0xFF,0x23,0xFF,0x01,0xFF,0x20,0xFF,0x15,0xFF,\n0x80,0xFF,0x00,0xFF,0x81,0xFF,0x81,0xFF,0x04,0xFF,0x84,0xFF,0x88,0xFF,0x40,0xFF,\n0x9E,0xFF,0x82,0xFF,0x3B,0xFE,0x12,0xFF,0x00,0xFF,0x04,0xFB,0x00,0xFF,0x40,0xFF,\n0xFC,0x03,0xED,0x12,0xBC,0x43,0xEE,0x11,0x38,0xC7,0x0E,0xF1,0x01,0xFE,0x00,0xFF,\n0x4A,0xB5,0x55,0xAA,0x2A,0xD5,0xAA,0x55,0x95,0x6A,0xCA,0xB5,0x2A,0xD5,0xAA,0x55,\n0xB6,0x49,0x5B,0xA4,0xD5,0x2A,0xAF,0x50,0x4B,0xB4,0xAA,0x55,0xB7,0x58,0xA1,0x5E,\n0x1F,0xE0,0xCD,0x32,0x5F,0xA0,0xED,0x12,0xBF,0x40,0x8F,0x70,0x16,0xE9,0xD7,0x28,\n0xFF,0x00,0xF7,0x08,0xBE,0x41,0xFF,0x00,0xDF,0x20,0xED,0x12,0xFF,0x00,0xFF,0x00,\n0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,\n0x78,0xFF,0xB8,0xFF,0x78,0xFF,0x78,0xFF,0x58,0xFF,0x58,0xFF,0x78,0xFF,0x58,0xFF,\n0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFC,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFE,0xFF,\n0x3F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1E,0xFF,0x1E,0xFF,0x1F,0xFF,\n0xD4,0xFF,0xC4,0xFF,0x90,0xFF,0x04,0xFF,0x08,0xFF,0x08,0xFF,0x00,0xFF,0x08,0xFF,\n0x01,0xFF,0x00,0xFF,0x01,0xFF,0x08,0xFF,0x01,0xFF,0x00,0xFF,0x02,0xFF,0x00,0xFF,\n0x20,0xFF,0xD0,0xFF,0x40,0xFF,0x48,0xF7,0x82,0xFF,0x88,0xF7,0x80,0xFF,0x0A,0xF7,\n0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x04,0xFB,0x01,0xFE,0x00,0xFF,\n0x01,0xFE,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x02,0xFD,0x40,0xBF,0x20,0xDF,0x10,0xEF,\n0x55,0xAA,0x55,0xAA,0xAD,0x5A,0x2A,0xD5,0x2A,0xD5,0x2D,0xD6,0x15,0xEA,0x15,0xEE,\n0x57,0xA8,0x48,0xB7,0x35,0xCA,0x95,0x6A,0xAA,0x5D,0x33,0xDC,0x8A,0xF5,0xB2,0xFD,\n0xB7,0x48,0x93,0x6C,0x6F,0xD0,0xB6,0x49,0x7B,0xC4,0x89,0x76,0xBE,0x61,0xC6,0x39,\n0xDB,0x24,0xFF,0x00,0xFD,0x02,0xDF,0x20,0xF5,0x0A,0x5F,0xA0,0xD5,0x2A,0xBD,0x42,\n0x78,0xFF,0x58,0xFF,0x78,0xFF,0xB8,0xFF,0x78,0xFF,0x38,0xFF,0x78,0xFF,0x28,0xFF,\n0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x06,0xF9,0x02,0xFD,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0xFD,0xFF,0xFF,0xFF,0x6F,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0xEC,0xFF,0xFE,0xFF,0xCC,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1F,0xFF,0x1E,0xFF,\n0x00,0xFF,0x00,0xFF,0x08,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0x01,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x01,0xFF,0x00,0xFF,0x00,0xFF,\n0x00,0xFF,0x84,0xFF,0x00,0xFF,0x00,0xFF,0x20,0xFF,0x00,0xFF,0x00,0xFF,0x80,0xFF,\n0x00,0xFF,0x3B,0xC4,0x3C,0xC3,0x3F,0xC0,0x70,0x8F,0x7C,0x83,0x7D,0x82,0xFF,0x00,\n0x10,0xEF,0x9F,0x60,0x51,0xAE,0x29,0xD6,0x60,0x9F,0x70,0x8F,0xFF,0x00,0xF7,0x08,\n0x0C,0xF7,0x0B,0xF6,0x06,0xFD,0xA2,0xDD,0x0C,0xFB,0x8D,0x7B,0x42,0xFF,0x15,0xEB,\n0x55,0xEA,0x78,0xFF,0x96,0xED,0xF4,0x6F,0x1B,0xFE,0xCB,0x7F,0xB5,0xFF,0xBD,0x6F,\n0x15,0xEA,0xB6,0x5B,0xAA,0x55,0xA7,0x5A,0x1C,0xEB,0xA6,0x5B,0x5A,0xAD,0x8A,0x75,\n0xC5,0x3A,0x25,0xDA,0xF5,0xAA,0x49,0xF6,0xB5,0xEA,0xF5,0x7E,0xBD,0xFA,0xBD,0x5E,\n0x78,0xFF,0x58,0xFF,0x70,0xFF,0x58,0xFF,0x78,0xFF,0x59,0xFE,0xFB,0xFC,0x5B,0xFC,\n0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0xFF,0x00,0xFF,0x00,0xFF,0x00,\n0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x40,0xBF,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,\n0x00,0xFF,0x00,0xFF,0x1F,0xFF,0x07,0xFF,0x30,0xFF,0x2B,0xFC,0x1A,0xF5,0x15,0xFA,\n0x1F,0xFF,0x1E,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,0xFF,0xF5,0x0A,0x11,0xEE,0xAD,0x52,\n0x00,0xFF,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0x2B,0xFF,0xA9,0x57,0x13,0xEF,0x45,0xBB,\n0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x80,0x7F,\n0x04,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0x22,0xDD,0x80,0xFF,0x01,0xFE,0x80,0xFF,0x10,0xFF,0x09,0xFE,0x00,0xFF,0x00,0xFF,\n0xFE,0x01,0xFE,0x01,0xFD,0x02,0xFF,0x00,0xFD,0x02,0xFE,0x01,0xFD,0x02,0xFF,0x00,\n0xD7,0x28,0x03,0xFC,0xDA,0x25,0xE9,0x16,0x04,0xFB,0x06,0xF9,0x00,0xFF,0x1E,0xFF,\n0x1A,0xF7,0x9A,0x77,0x17,0xED,0x15,0xEA,0x14,0xFF,0x87,0xFD,0x04,0xFB,0x05,0xFA,\n0xF5,0xFF,0xAA,0xFF,0xB5,0x5F,0xAD,0xD7,0x92,0x7F,0x5D,0xAB,0xB2,0x5D,0x1A,0xED,\n0x5B,0xAD,0x49,0xB6,0x92,0x6D,0x4B,0xB4,0xB2,0x6D,0x5D,0xA6,0xA2,0x5F,0x56,0xAB,\n0x55,0xFE,0x5D,0xAE,0xEB,0xBE,0x7D,0xAE,0x17,0xFC,0xFD,0xAE,0x95,0xFE,0xDD,0xFE,\n0x73,0xFC,0x5B,0xFC,0xF3,0x7C,0xBB,0xFC,0xDB,0x7C,0x5B,0xFC,0xDB,0x7C,0x5B,0xFC,\n0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,\n0x00,0xFF,0xD0,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0x80,0xFF,0x3F,0xC0,0xBF,0xC0,\n0x00,0xFF,0x02,0xFF,0xFF,0xFF,0xFF,0xFF,0x95,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0x00,\n0x00,0xFF,0x00,0xFF,0xF0,0xFF,0xF8,0xFF,0x30,0xFF,0x10,0xFF,0x98,0x7F,0xB0,0x5F,\n0x1A,0xF5,0x13,0xFC,0x2A,0xF5,0x1A,0xF5,0x0E,0xF9,0x12,0xFD,0x26,0xF9,0x3A,0xFD,\n0xA2,0x5D,0x48,0xB7,0xB5,0x4E,0xA9,0x56,0x94,0x6B,0xAB,0x55,0x8A,0x7F,0xAB,0x57,\n0x21,0xDF,0xA9,0x57,0x0B,0xF5,0x40,0xBF,0x56,0xEB,0x11,0xFF,0xCB,0x75,0x50,0xFF,\n0x00,0xFF,0x80,0xFF,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x80,0xFF,\n0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x1F,0xFF,0x3B,0xC7,\n0x80,0xFF,0x01,0xFE,0x03,0xFC,0x87,0xF8,0xBF,0xC0,0xBF,0xC0,0xBF,0xC0,0xDF,0xE0,\n0xBF,0x7F,0xBF,0x7F,0xBF,0x7F,0x3F,0xFF,0x6D,0x97,0x6F,0x97,0xDE,0x27,0xF7,0x08,\n0x35,0xEA,0x05,0xFA,0x39,0xEF,0x8C,0x7B,0x6A,0xD5,0x17,0xED,0xA8,0x57,0xCF,0x35,\n0x4A,0xB5,0x3B,0xD5,0x92,0x6D,0xAA,0x55,0x6A,0xB5,0x52,0xBD,0x2B,0xD5,0x42,0xFD,\n0x95,0x6F,0x56,0xAB,0xAB,0x5F,0x9D,0x6B,0xA7,0x5B,0x35,0xEF,0xDF,0x6B,0x8D,0x7B,\n0xB5,0xFE,0xDF,0xFE,0x75,0xFE,0xBF,0xFE,0xF5,0xFE,0x7D,0xBE,0x6D,0xFA,0x7B,0xDC,\n0x7B,0xFC,0x9B,0xFC,0x7B,0xFC,0x5B,0xFC,0x7B,0xFC,0x5B,0xFC,0x7B,0xFC,0x5B,0xFC,\n0xE0,0x1F,0xE0,0x1F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,\n0xBF,0xC0,0xBF,0xC0,0xBE,0xC1,0x8F,0xF0,0xB5,0xCA,0xAA,0xD5,0xAA,0xD5,0xAA,0xD7,\n0x7F,0x80,0xBF,0xC0,0x9F,0xE0,0xEF,0xB0,0x37,0xD8,0x27,0xD8,0xAF,0x50,0xAF,0xD0,\n0xA8,0x5F,0x88,0x7F,0xD0,0x3F,0xA8,0x5F,0xB8,0x5F,0xC8,0x3F,0xB8,0x5F,0x88,0x7F,\n0x0A,0xF5,0x2B,0xFC,0x12,0xFD,0x1B,0xFC,0x12,0xFD,0x2B,0xFC,0x12,0xFD,0x2B,0xFC,\n0x45,0xFF,0x26,0xFD,0xA9,0xDE,0xA5,0xDF,0x4D,0xBE,0x54,0xEF,0x55,0xFF,0x4E,0xBB,\n0x2B,0xF5,0xB2,0xFD,0xA9,0xF7,0x7B,0xF5,0x81,0xFF,0xFA,0x75,0x51,0xFF,0xBA,0xF5,\n0x00,0xFF,0x80,0xFF,0x01,0xFE,0x81,0xFE,0x03,0xFC,0x83,0xFC,0x83,0xFC,0x83,0xFC,\n0xFF,0x03,0xFD,0x03,0x7E,0x81,0x5E,0xA1,0xFF,0x00,0xBC,0x43,0x79,0x86,0xFD,0x02,\n0xEF,0xF0,0xF7,0xF8,0xFF,0xF8,0xFB,0xFC,0xF9,0x7E,0x3D,0xFE,0x7F,0xBE,0x3E,0xFF,\n0x61,0x9F,0x15,0xFB,0xF1,0x1E,0xFC,0x1F,0xF5,0x1A,0xED,0x1E,0xDA,0x3D,0xFC,0x1F,\n0xA8,0x57,0x6D,0xDA,0x49,0xBF,0xD6,0xAD,0x34,0xEF,0x57,0xAD,0xC8,0x77,0xDE,0x75,\n0x5B,0xEF,0x57,0xED,0x1F,0xFB,0xA5,0xDF,0x1D,0xFA,0xD6,0x6D,0x5A,0xB5,0xDF,0xAA,\n0x69,0xF6,0x75,0xDA,0x93,0xEC,0xDB,0x74,0x55,0xAA,0x77,0xA8,0xAB,0x54,0x6F,0xB0,\n0x7B,0xFC,0x9B,0xFC,0x7B,0xFC,0x58,0xFF,0xD8,0xFF,0x70,0xFF,0xB8,0xFF,0xD8,0xFF,\n0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0xF0,0x0F,0xF0,0x0F,0xC0,0x3F,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0x97,0xEC,0xA2,0xDF,0x94,0xEF,0xAB,0xD4,0x9A,0xEF,0xAA,0xD7,0x9A,0xED,0xD6,0xEF,\n0x57,0xA8,0xA7,0x58,0x7B,0xAC,0x23,0xFC,0xFB,0x74,0x51,0xFE,0xAB,0x54,0x89,0x76,\n0xC8,0x3F,0xC8,0x3F,0x98,0x7F,0xC8,0x3F,0xA8,0x5F,0xC8,0x3F,0x98,0x7F,0xE8,0x1F,\n0x12,0xFD,0x2B,0xFC,0x12,0xFD,0x1B,0xFC,0x15,0xFA,0x39,0xFE,0x16,0xF9,0x1B,0xFC,\n0x31,0xEF,0xD5,0x3A,0xA8,0x57,0x4B,0xB4,0xF4,0x0B,0x55,0xAA,0xB5,0x4A,0xDA,0x25,\n0xA1,0xFF,0xBB,0xF5,0xA0,0xFF,0x4A,0xB5,0xAB,0x55,0x50,0xAF,0x53,0xAD,0xA8,0x57,\n0x07,0xF8,0x83,0xFC,0x86,0xF9,0x83,0xFC,0x85,0xFA,0x87,0xF8,0x83,0xFC,0x85,0xFA,\n0x72,0x8D,0xF2,0x0D,0xF8,0x07,0xD4,0x2B,0xEF,0x19,0xF6,0x09,0xFF,0x00,0xFD,0x02,\n0x3F,0xFF,0xBF,0x7F,0x9F,0x7F,0x3F,0xFF,0xDF,0x7F,0xDF,0x7F,0x8F,0xFF,0xAF,0x7F,\n0x7F,0x80,0x7F,0x80,0xBF,0xC0,0xBF,0xC0,0xDF,0xE0,0x6F,0xF0,0xE7,0xF8,0x7F,0xF8,\n0xFF,0x00,0xFE,0x01,0xFD,0x02,0xFD,0x02,0xFA,0x05,0xF9,0x06,0xF1,0x0E,0xF3,0x0C,\n0xDA,0x3D,0x9D,0x7E,0x7F,0xBC,0x7D,0xBE,0x7D,0xBE,0x5D,0xFE,0x6F,0xFC,0xE9,0x7E,\n0xA2,0x5F,0xFF,0x03,0x7A,0x85,0xFD,0x02,0xFF,0x00,0xFF,0x00,0x7F,0x80,0xFF,0x00,\n0x54,0xEB,0xFF,0x00,0xFF,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,\n0x78,0xFF,0x58,0xFF,0xF0,0xFF,0x38,0xFF,0xF8,0xFF,0x38,0xFF,0xF8,0xFF,0x98,0xFF,\n0x93,0xEE,0xEE,0xD3,0x8B,0xF4,0xD0,0xEF,0xAA,0xD5,0xCA,0xF5,0x92,0xED,0x8A,0xF5,\n0x65,0xDA,0x35,0xFA,0xAB,0x74,0xD5,0x2A,0x55,0xAA,0x94,0x6B,0xAA,0x55,0x95,0x6A,\n0x88,0x7F,0xC8,0x3F,0xC8,0x3F,0x48,0xBF,0x88,0x7F,0xE8,0x1F,0x88,0x7F,0x48,0xBF,\n0x12,0xFD,0x12,0xFD,0x1B,0xFC,0x0B,0xFF,0x2F,0xFF,0x16,0xFF,0x00,0xFF,0x00,0xFF,\n0xAA,0x55,0xEA,0x15,0x10,0xEF,0x7F,0xFF,0xFF,0xFF,0xBA,0xFF,0x00,0xFF,0x00,0xFF,\n0x52,0xAD,0xAA,0x55,0x57,0xFF,0xFF,0xFF,0xFE,0xFF,0xA8,0xFF,0x04,0xFF,0x00,0xFF,\n0x83,0xFC,0x81,0xFE,0x41,0xFE,0x83,0xFC,0x83,0xFC,0x01,0xFE,0x01,0xFE,0x01,0xFE,\n0x4F,0xBF,0xC7,0x3E,0xCF,0x3F,0xE6,0x1F,0xD7,0x2F,0xD6,0x2F,0xE7,0x1F,0xA6,0x5F,\n0xD7,0xF8,0xFF,0xF0,0xEF,0xB0,0xEF,0xF0,0x7F,0xD0,0xBF,0xC8,0x7F,0x82,0xFF,0x00,\n0xE7,0x18,0xE1,0x1F,0xEF,0x1F,0xAD,0x5F,0xD7,0x3F,0x9B,0x7F,0x3F,0xFB,0x3F,0xFF,\n0x7F,0xFC,0xD9,0xFE,0xFB,0xEC,0xF9,0xFE,0xBA,0xED,0xE9,0xFE,0xF5,0x7E,0xF9,0xFE,\n0x7F,0x80,0xFF,0x00,0x4A,0xB5,0xFF,0x3F,0xBF,0x7F,0xFF,0x3F,0x7F,0xBF,0x80,0x7F,\n0xFF,0x00,0xFF,0x00,0x5F,0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,\n0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x10,0xFF,\n0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF,\n0x70,0xFF,0xF8,0xFF,0xB8,0xFF,0xF8,0xFF,0xD8,0xFF,0xF0,0xFF,0xF8,0xFF,0x50,0xFF,\n0x00,0xFF,0x00,0xFF,0x04,0xFF,0x00,0xFF,0x04,0xFF,0x00,0xFF,0x2A,0xFF,0x00,0xFF,\n0xB2,0xDD,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,\n0x44,0xBB,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x6A,0xFF,0x01,0xFF,\n0x18,0xFF,0x18,0xFF,0xF8,0xFF,0xF8,0xFF,0xF8,0xFF,0xC0,0xFF,0x00,0xFF,0x00,0xFF,\n0x08,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,\n0xFF,0x00,0xFF,0x00,0xFF,0x00,0x3F,0xC0,0x7F,0x80,0x7F,0x80,0x3F,0xC0,0x3F,0xC0,\n0xD5,0x2E,0xC3,0x3C,0x87,0x78,0x9F,0x60,0x7F,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x00,\n0xF8,0x07,0xFF,0x00,0xFA,0x05,0xFF,0x01,0xE9,0x17,0xFD,0x03,0xAB,0x57,0xDB,0x27,\n0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\n0xBD,0xFE,0xF5,0xFE,0xFD,0xBE,0xFD,0xFE,0xFC,0xFF,0xFD,0xFE,0xF9,0xFE,0xF0,0xFF,\n0x40,0xBF,0x40,0xBF,0x80,0x7F,0x80,0x7F,0xC0,0x3F,0x40,0xBF,0x80,0x7F,0xC2,0x3F,\n0x10,0xFF,0x14,0xFF,0x80,0xFF,0x28,0xFF,0x10,0xFF,0x88,0xFF,0x00,0xFF,0x00,0xFF,\n0x1F,0xE0,0x1F,0xE0,0x1F,0xE0,0x0F,0xF0,0x0E,0xF1,0x07,0xF8,0x07,0xF8,0x03,0xFC,\n0xFF,0x00,0xFF,0x00,0xFE,0x01,0xFE,0x01,0xF5,0x0A,0xF5,0x0A,0xD8,0x27,0xEA,0x15,\n0x6F,0x97,0xA7,0x5F,0xAF,0x5F,0x9F,0x7F,0x5F,0xBF,0x3F,0xFF,0xBF,0x7F,0x7F,0xFF,\n0xF3,0xFC,0xF0,0xFF,0xE9,0xFE,0xF0,0xFF,0xE1,0xFE,0xF8,0xFF,0xF1,0xFE,0xF8,0xFF,\n0x94,0x7F,0xDF,0x3F,0x9F,0x7F,0xDF,0x3F,0x5F,0xBF,0x5F,0xBF,0x7F,0x9F,0x4F,0xBF,\n0x07,0xF8,0x01,0xFE,0x04,0xFF,0x06,0xFF,0x07,0xFF,0x07,0xFF,0x07,0xFF,0x03,0xFF,\n0x84,0x7B,0x45,0xBB,0x13,0xEF,0x07,0xFF,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,\n0xF9,0xFE,0xFC,0xFF,0xF9,0xFE,0xFE,0xFF,0xFC,0xFF,0xFF,0xFF,0xFD,0xFF,0xFD,0xFF,\n0x6F,0x9F,0x2F,0xDF,0x57,0xAF,0x57,0xAF,0x17,0xEF,0x17,0xEF,0x2B,0xD7,0x8B,0xF7,\n0x0F,0xFF,0x07,0xFF,0x0F,0xFF,0x07,0xFF,0x0F,0xFF,0x0F,0xFF,0x5F,0xFF,0x0F,0xF7,\n0xAB,0xD7,0xCB,0xF7,0xDB,0xE7,0x4B,0xF7,0xCD,0xF3,0xC5,0xFB,0xC9,0x77,0xED,0xF3,\n0x1F,0xFE,0x0F,0xFF,0x1B,0xFF,0x0F,0xFF,0x1F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1F,0xEF,\n0xE5,0xFB,0xF5,0xFB,0xF5,0xFB,0xF5,0xFB,0xE4,0xFB,0xF2,0xFD,0xF2,0xFD,0xF0,0xFF,\n0x3F,0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xFF,0x5F,0xFF,0x3F,0xFF,0x3F,0xFF,0x1F,0xFF,\n0xF2,0xFD,0xF8,0xFF,0xF8,0xFF,0xFA,0xFD,0xF8,0xFF,0xF8,0xFF,0xF9,0xFE,0xFC,0xFF,\n0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF};\n"
  },
  {
    "path": "window/bg_map.c",
    "content": "/*\n Advanced PCX to GameBoy converter v2.15\n\n TileMap data\n Original PCX File : \"BG.PCX\"\n\n Number of Tiles   : 152\n TileMap Size      : 20x18\n*/\n\nconst unsigned char bg_tilemap[] = {\n0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x03,0x03,\n0x01,0x01,0x11,0x03,0x03,0x12,0x13,0x03,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x0F,0x1C,0x1D,0x03,\n0x1E,0x1F,0x20,0x03,0x03,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x0F,0x2C,0x2D,0x2E,\n0x03,0x03,0x03,0x03,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x0F,0x3B,0x0F,0x3C,\n0x3D,0x3E,0x3F,0x03,0x40,0x41,0x42,0x43,0x44,0x45,0x0F,0x46,0x47,0x48,0x49,0x4A,0x0F,0x4B,0x0F,0x4C,\n0x4D,0x4E,0x4F,0x03,0x50,0x51,0x52,0x53,0x54,0x55,0x0F,0x0F,0x56,0x57,0x58,0x59,0x0F,0x5A,0x5B,0x5C,\n0x5D,0x5E,0x5F,0x03,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x0F,0x0F,0x6B,0x03,0x03,\n0x6C,0x6D,0x6E,0x03,0x6F,0x70,0x71,0x72,0x0F,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x03,0x7C,\n0x7D,0x7E,0x7F,0x03,0x03,0x03,0x80,0x03,0x81,0x82,0x83,0x84,0x85,0x86,0x03,0x03,0x03,0x03,0x03,0x87,\n0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x88,0x89,0x8A,0x01,0x8B,0x8C,0x01,0x01,0x01,0x01,0x01,0x01,\n0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x8D,0x8E,0x01,0x01,0x8F,0x90,0x01,0x01,0x01,0x01,0x01,0x01,\n0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x91,0x01,0x01,0x01,0x01,0x92,0x01,0x01,0x01,0x01,0x01,0x01,\n0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x93,0x01,0x01,0x01,0x01,0x94,0x01,0x01,0x01,0x01,0x01,0x01,\n0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x95,0x01,0x01,0x01,0x01,0x96,0x97,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\n0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};\n"
  },
  {
    "path": "window/border.c",
    "content": "/*\n\n BORDER.C\n\n Tile Source File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 8\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n/* Start of tile array. */\nconst unsigned char border[] =\n{\n  0x00,0x00,0x1F,0x1F,0x20,0x20,0x4F,0x4F,\n  0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,\n  0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,\n  0x4F,0x4F,0x20,0x20,0x1F,0x1F,0x00,0x00,\n  0x00,0x00,0xF8,0xF8,0x04,0x04,0xF2,0xF2,\n  0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,\n  0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,\n  0xF2,0xF2,0x04,0x04,0xF8,0xF8,0x00,0x00,\n  0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n  0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,\n  0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,\n  0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,\n  0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,\n  0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\n  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00\n};\n\n/* End of BORDER.C */\n"
  },
  {
    "path": "window/border.h",
    "content": "/*\n\n BORDER.H\n\n Include File.\n\n Info:\n  Form                 : All tiles as one unit.\n  Format               : Gameboy 4 color.\n  Compression          : None.\n  Counter              : None.\n  Tile size            : 8 x 8\n  Tiles                : 0 to 8\n\n  Palette colors       : None.\n  SGB Palette          : None.\n  CGB Palette          : None.\n\n  Convert to metatiles : No.\n\n This file was generated by GBTD v2.2\n\n*/\n\n\n/* Bank of tiles. */\n#define borderBank 0\n/* Start of tile array. */\nextern unsigned char border[];\n\n/* End of BORDER.H */\n"
  },
  {
    "path": "window/main.c",
    "content": "#include <gb/gb.h>\n\n#include \"bg.c\"\n#include \"bg_map.c\"\n#include \"border.c\"\n#include \"window.c\"\n\nvoid main() {\n    set_bkg_data(0, 152, bg_tiledata);\n    set_bkg_tiles(0, 0, 20, 18, bg_tilemap);\n    \n    SHOW_BKG;\n    \n    set_win_data(152, 9, border);\n    set_win_tiles(0, 0, 20, 4, window);\n    move_win(7, 112);\n\n    SHOW_WIN;\n}"
  },
  {
    "path": "window/window.c",
    "content": "/*\n\n WINDOW.C\n\n Map Source File.\n\n Info:\n   Section       : \n   Bank          : 0\n   Map size      : 20 x 4\n   Tile set      : P:\\Homebrew\\GB\\gbdk_playground\\window\\border.gbr\n   Plane count   : 1 plane (8 bits)\n   Plane order   : Tiles are continues\n   Tile offset   : 152\n   Split data    : No\n\n This file was generated by GBMB v1.8\n\n*/\n\n#define windowWidth 20\n#define windowHeight 4\n#define windowBank 0\n\nconst unsigned char window[] =\n{\n  0x98,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,\n  0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9A,\n  0x9E,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,\n  0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0x9F,\n  0x9E,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,\n  0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0x9F,\n  0x99,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,\n  0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9B\n};\n\n/* End of WINDOW.C */\n"
  },
  {
    "path": "window/window.h",
    "content": "/*\n\n WINDOW.H\n\n Map Include File.\n\n Info:\n   Section       : \n   Bank          : 0\n   Map size      : 20 x 4\n   Tile set      : P:\\Homebrew\\GB\\gbdk_playground\\window\\border.gbr\n   Plane count   : 1 plane (8 bits)\n   Plane order   : Tiles are continues\n   Tile offset   : 152\n   Split data    : No\n\n This file was generated by GBMB v1.8\n\n*/\n\n#define windowWidth 20\n#define windowHeight 4\n#define windowBank 0\n\nextern unsigned char window[];\n\n/* End of WINDOW.H */\n"
  }
]