gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit 29fa3c2abd619ecf90d2552ec655ed3a4f3e46cd parent a5c1a78ea86c06d95e6a991b465321cb9508be92 Author: Toxa <untoxa@mail.ru> Date: Thu, 24 Aug 2023 00:09:21 +0300 EXAMPLES: remove ap examples, since they are simply the copy of gb examples Diffstat:
| D | gbdk-lib/examples/ap/Makefile | 18 | ------------------ |
| D | gbdk-lib/examples/ap/bcd/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/bcd/bcd.c | 37 | ------------------------------------- |
| D | gbdk-lib/examples/ap/colorbar/Makefile | 30 | ------------------------------ |
| D | gbdk-lib/examples/ap/colorbar/bar_c.c | 102 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/colorbar/bar_c.gbr | 0 | |
| D | gbdk-lib/examples/ap/colorbar/bar_c.h | 105 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/colorbar/bar_m.c | 62 | -------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/colorbar/bar_m.gbm | 0 | |
| D | gbdk-lib/examples/ap/colorbar/bar_m.h | 24 | ------------------------ |
| D | gbdk-lib/examples/ap/colorbar/colorbar.c | 73 | ------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/comm/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/comm/comm.c | 90 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/compile.bat | 9 | --------- |
| D | gbdk-lib/examples/ap/crash/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/crash/crash.c | 8 | -------- |
| D | gbdk-lib/examples/ap/dscan/Makefile | 24 | ------------------------ |
| D | gbdk-lib/examples/ap/dscan/bkg.c | 238 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/dscan/bkg.gbr | 0 | |
| D | gbdk-lib/examples/ap/dscan/bkg.h | 105 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/dscan/bkg_c.c | 62 | -------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/dscan/bkg_c.gbm | 0 | |
| D | gbdk-lib/examples/ap/dscan/bkg_m.c | 62 | -------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/dscan/bkg_m.gbm | 0 | |
| D | gbdk-lib/examples/ap/dscan/dscan.c | 751 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/dscan/fore.c | 306 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/dscan/fore.gbr | 0 | |
| D | gbdk-lib/examples/ap/dscan/fore.h | 105 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/emu_debug/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/emu_debug/emu_debug.c | 147 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/filltest/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/filltest/filltest.c | 60 | ------------------------------------------------------------ |
| D | gbdk-lib/examples/ap/galaxy/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/galaxy/galaxy.c | 632 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/Makefile | 24 | ------------------------ |
| D | gbdk-lib/examples/ap/gb-dtmf/brk_btn.c | 41 | ----------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/brk_btn.gbr | 0 | |
| D | gbdk-lib/examples/ap/gb-dtmf/cursor.c | 39 | --------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/cursor.gbr | 0 | |
| D | gbdk-lib/examples/ap/gb-dtmf/dtmf_lcd.c | 123 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/dtmf_lcd.gbr | 0 | |
| D | gbdk-lib/examples/ap/gb-dtmf/frm_lcd.c | 41 | ----------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/frm_lcd.gbr | 0 | |
| D | gbdk-lib/examples/ap/gb-dtmf/gb-dtmf.c | 715 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/key_num.c | 69 | --------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/key_num.gbr | 0 | |
| D | gbdk-lib/examples/ap/gb-dtmf/prs_btn.c | 41 | ----------------------------------------- |
| D | gbdk-lib/examples/ap/gb-dtmf/prs_btn.gbr | 0 | |
| D | gbdk-lib/examples/ap/gbdecompress/Makefile | 33 | --------------------------------- |
| D | gbdk-lib/examples/ap/gbdecompress/Readme.md | 8 | -------- |
| D | gbdk-lib/examples/ap/gbdecompress/main.c | 41 | ----------------------------------------- |
| D | gbdk-lib/examples/ap/gbdecompress/monalisa.gbm | 0 | |
| D | gbdk-lib/examples/ap/gbdecompress/monalisa_map.c | 66 | ------------------------------------------------------------------ |
| D | gbdk-lib/examples/ap/gbdecompress/monalisa_map.h | 32 | -------------------------------- |
| D | gbdk-lib/examples/ap/gbdecompress/monalisa_tiles.gbr | 0 | |
| D | gbdk-lib/examples/ap/gbdecompress/monalisa_tiles_comp.c | 467 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/gbdecompress/monalisa_tiles_comp.h | 107 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/irq/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/irq/irq.c | 62 | -------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/large_map/Makefile | 11 | ----------- |
| D | gbdk-lib/examples/ap/large_map/Readme.md | 14 | -------------- |
| D | gbdk-lib/examples/ap/large_map/bigmap_map.c | 1661 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/large_map/bigmap_map.h | 32 | -------------------------------- |
| D | gbdk-lib/examples/ap/large_map/bigmap_tiles.c | 512 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/large_map/bigmap_tiles.h | 107 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/large_map/large_map.c | 97 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/lcd_isr_wobble/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/lcd_isr_wobble/lcd_isr_wobble.c | 30 | ------------------------------ |
| D | gbdk-lib/examples/ap/linkerfile/Makefile | 70 | ---------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/linkerfile/Readme.md | 18 | ------------------ |
| D | gbdk-lib/examples/ap/linkerfile/src/main.c | 15 | --------------- |
| D | gbdk-lib/examples/ap/paint/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/paint/paint.c | 528 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/ram_function/Makefile | 32 | -------------------------------- |
| D | gbdk-lib/examples/ap/ram_function/ram_fn.c | 71 | ----------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/rand/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/rand/rand.c | 59 | ----------------------------------------------------------- |
| D | gbdk-lib/examples/ap/rpn/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/rpn/rpn.c | 102 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/scroller/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/scroller/text_scroller.c | 73 | ------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/sgb_border/Makefile | 11 | ----------- |
| D | gbdk-lib/examples/ap/sgb_border/border.c | 19 | ------------------- |
| D | gbdk-lib/examples/ap/sgb_border/border_data.c | 192 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/sgb_border/border_data.h | 15 | --------------- |
| D | gbdk-lib/examples/ap/sgb_border/sgb_border.c | 69 | --------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/sgb_border/sgb_border.h | 25 | ------------------------- |
| D | gbdk-lib/examples/ap/sgb_multiplayer/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/sgb_multiplayer/sgb_multiplayer.c | 44 | -------------------------------------------- |
| D | gbdk-lib/examples/ap/sound/Makefile | 17 | ----------------- |
| D | gbdk-lib/examples/ap/sound/readme.md | 13 | ------------- |
| D | gbdk-lib/examples/ap/sound/sound.c | 1067 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/space/Makefile | 18 | ------------------ |
| D | gbdk-lib/examples/ap/space/space.s | 1296 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/template_minimal/Makefile | 33 | --------------------------------- |
| D | gbdk-lib/examples/ap/template_minimal/Readme.md | 7 | ------- |
| D | gbdk-lib/examples/ap/template_minimal/main.c | 17 | ----------------- |
| D | gbdk-lib/examples/ap/template_subfolders/Makefile | 61 | ------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/template_subfolders/Readme.md | 18 | ------------------ |
| D | gbdk-lib/examples/ap/template_subfolders/res/dungeon_32x32.gbm | 0 | |
| D | gbdk-lib/examples/ap/template_subfolders/res/dungeon_32x32.gbr | 0 | |
| D | gbdk-lib/examples/ap/template_subfolders/res/dungeon_map.c | 133 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/template_subfolders/res/dungeon_map.h | 28 | ---------------------------- |
| D | gbdk-lib/examples/ap/template_subfolders/res/dungeon_tiles.c | 188 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/template_subfolders/res/dungeon_tiles.h | 103 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/ap/template_subfolders/src/main.c | 31 | ------------------------------- |
| D | gbdk-lib/examples/gg/Makefile | 18 | ------------------ |
| D | gbdk-lib/examples/gg/compile.bat | 9 | --------- |
| D | gbdk-lib/examples/gg/smoke/Makefile | 30 | ------------------------------ |
| D | gbdk-lib/examples/gg/smoke/assets.c | 46 | ---------------------------------------------- |
| D | gbdk-lib/examples/gg/smoke/banked.c | 8 | -------- |
| D | gbdk-lib/examples/gg/smoke/smoketest.c | 90 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/sms/smoke/Makefile | 30 | ------------------------------ |
| D | gbdk-lib/examples/sms/smoke/assets.c | 46 | ---------------------------------------------- |
| D | gbdk-lib/examples/sms/smoke/banked.c | 8 | -------- |
| D | gbdk-lib/examples/sms/smoke/ram_bank0.s | 7 | ------- |
| D | gbdk-lib/examples/sms/smoke/ram_bank1.s | 7 | ------- |
| D | gbdk-lib/examples/sms/smoke/smoketest.c | 90 | ------------------------------------------------------------------------------- |
| D | gbdk-lib/examples/sms/test/Makefile | 30 | ------------------------------ |
| D | gbdk-lib/examples/sms/test/test.c | 11 | ----------- |
120 files changed, 0 insertions(+), 12447 deletions(-)
diff --git a/gbdk-lib/examples/ap/Makefile b/gbdk-lib/examples/ap/Makefile @@ -1,17 +0,0 @@ -# Register all subdirectories in the project's root directory. -SUBDIRS := $(wildcard */.) - -# Top-level phony targets. -all clean compile.bat: $(SUBDIRS) FORCE -# Similar to: -# .PHONY: all clean -# all clean: $(SUBDIRS) -# GNU's .PHONY target is more efficient in that it explicitly declares non-files. - -# Recurse `make` into each subdirectory -# Pass along targets specified at command-line (if any). -$(SUBDIRS): FORCE - $(MAKE) -C $@ $(MAKECMDGOALS) - -# Force targets. -FORCE: - diff --git a/gbdk-lib/examples/ap/bcd/Makefile b/gbdk-lib/examples/ap/bcd/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = bcd.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/bcd/bcd.c b/gbdk-lib/examples/ap/bcd/bcd.c @@ -1,36 +0,0 @@ -#include <stdint.h> -#include <stdio.h> - -#include <gbdk/platform.h> -#include <gbdk/font.h> -#include <gbdk/bcd.h> - -BCD bcd = MAKE_BCD(10203040); -BCD bcd2 = MAKE_BCD(05060708); -BCD bcd3 = MAKE_BCD(11111111); - -uint8_t len = 0; -unsigned char buf[10]; - -void main(void) { - font_init(); - font_set(font_load(font_spect)); - - len = bcd2text(&bcd, 0x10, buf); - set_bkg_tiles(5, 5, len, 1, buf); - - bcd_add(&bcd, &bcd2); - - len = bcd2text(&bcd, 0x10, buf); - set_bkg_tiles(5, 6, len, 1, buf); - - bcd_sub(&bcd, &bcd3); - - len = bcd2text(&bcd, 0x10, buf); - set_bkg_tiles(5, 7, len, 1, buf); - - uint2bcd(12345, &bcd); - - len = bcd2text(&bcd, 0x10, buf); - set_bkg_tiles(5, 8, len, 1, buf); -} - diff --git a/gbdk-lib/examples/ap/colorbar/Makefile b/gbdk-lib/examples/ap/colorbar/Makefile @@ -1,30 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -# CFLAGS = - -BINS = colorbar.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.o: %.s - $(CC) $(CFLAGS) -c -o $@ $< - -%.s: %.c - $(CC) $(CFLAGS) -S -o $@ $< - -%.pocket: %.o - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *.ihx *.sym *.cdb *.adb *.asm - -# Link file, and write 0x80 at position 0x143 in header -colorbar.pocket: colorbar.o - $(CC) $(CFLAGS) -Wm-yC -o colorbar.pocket colorbar.o diff --git a/gbdk-lib/examples/ap/colorbar/bar_c.c b/gbdk-lib/examples/ap/colorbar/bar_c.c @@ -1,102 +0,0 @@ -/* - - BAR_C.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 31 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : 1 Byte per entry. - - Convert to metatiles : No. - - This file was generated by GBTD v1.6 - -*/ - -/* CGBpalette entries. */ -const unsigned char bar_cCGB[] = -{ - 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, - 0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03, - 0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05, - 0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07 -}; -/* Start of tile array. */ -const unsigned char bar_c[] = -{ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF -}; - -/* End of BAR_C.C */ diff --git a/gbdk-lib/examples/ap/colorbar/bar_c.gbr b/gbdk-lib/examples/ap/colorbar/bar_c.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/colorbar/bar_c.h b/gbdk-lib/examples/ap/colorbar/bar_c.h @@ -1,105 +0,0 @@ -/* - - BAR_C.H - - Include File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 31 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : 1 Byte per entry. - - Convert to metatiles : No. - - This file was generated by GBTD v1.6 - -*/ - - -/* Bank of tiles. */ -#define bar_cBank 0 - -/* Super Gameboy palette 0 */ -#define bar_cSGBPal0c0 0 -#define bar_cSGBPal0c1 0 -#define bar_cSGBPal0c2 0 -#define bar_cSGBPal0c3 0 - -/* Super Gameboy palette 1 */ -#define bar_cSGBPal1c0 25368 -#define bar_cSGBPal1c1 0 -#define bar_cSGBPal1c2 4104 -#define bar_cSGBPal1c3 6 - -/* Super Gameboy palette 2 */ -#define bar_cSGBPal2c0 0 -#define bar_cSGBPal2c1 0 -#define bar_cSGBPal2c2 4104 -#define bar_cSGBPal2c3 6 - -/* Super Gameboy palette 3 */ -#define bar_cSGBPal3c0 0 -#define bar_cSGBPal3c1 0 -#define bar_cSGBPal3c2 4104 -#define bar_cSGBPal3c3 6 - -/* Gameboy Color palette 0 */ -#define bar_cCGBPal0c0 32767 -#define bar_cCGBPal0c1 25368 -#define bar_cCGBPal0c2 19026 -#define bar_cCGBPal0c3 0 - -/* Gameboy Color palette 1 */ -#define bar_cCGBPal1c0 18 -#define bar_cCGBPal1c1 24 -#define bar_cCGBPal1c2 31 -#define bar_cCGBPal1c3 12 - -/* Gameboy Color palette 2 */ -#define bar_cCGBPal2c0 384 -#define bar_cCGBPal2c1 576 -#define bar_cCGBPal2c2 768 -#define bar_cCGBPal2c3 992 - -/* Gameboy Color palette 3 */ -#define bar_cCGBPal3c0 12288 -#define bar_cCGBPal3c1 18432 -#define bar_cCGBPal3c2 24576 -#define bar_cCGBPal3c3 31744 - -/* Gameboy Color palette 4 */ -#define bar_cCGBPal4c0 792 -#define bar_cCGBPal4c1 1023 -#define bar_cCGBPal4c2 396 -#define bar_cCGBPal4c3 594 - -/* Gameboy Color palette 5 */ -#define bar_cCGBPal5c0 24600 -#define bar_cCGBPal5c1 31775 -#define bar_cCGBPal5c2 12300 -#define bar_cCGBPal5c3 18450 - -/* Gameboy Color palette 6 */ -#define bar_cCGBPal6c0 19008 -#define bar_cCGBPal6c1 25344 -#define bar_cCGBPal6c2 32736 -#define bar_cCGBPal6c3 12672 - -/* Gameboy Color palette 7 */ -#define bar_cCGBPal7c0 32767 -#define bar_cCGBPal7c1 25368 -#define bar_cCGBPal7c2 19026 -#define bar_cCGBPal7c3 12684 -/* CGBpalette entries. */ -extern const unsigned char bar_cCGB[]; -/* Start of tile array. */ -extern const unsigned char bar_c[]; - -/* End of BAR_C.H */ diff --git a/gbdk-lib/examples/ap/colorbar/bar_m.c b/gbdk-lib/examples/ap/colorbar/bar_m.c @@ -1,62 +0,0 @@ -/* - - BAR_M.C - - Map Source File. - - Info: - Section : - Bank : 0 - Map size : 20 x 18 - Tile set : C:\SDK\gb-gb\tmp\bar_c.gbr - Plane count : 1 plane (8 bits) - Plane order : Tiles are continues - - This file was generated by GBMB v0.8 - -*/ - -#define bar_mWidth 20 -#define bar_mHeight 18 - -const unsigned char bar_m[] = -{ - 0x1F,0x1F,0x12,0x12,0x12,0x1B,0x1B,0x1B,0x08,0x08, - 0x08,0x16,0x16,0x16,0x07,0x07,0x07,0x0C,0x0C,0x0C, - 0x1E,0x1E,0x13,0x13,0x13,0x18,0x18,0x18,0x09,0x09, - 0x09,0x17,0x17,0x17,0x04,0x04,0x04,0x0D,0x0D,0x0D, - 0x1D,0x1D,0x10,0x10,0x10,0x19,0x19,0x19,0x0A,0x0A, - 0x0A,0x14,0x14,0x14,0x05,0x05,0x05,0x0E,0x0E,0x0E, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x1C,0x1C,0x11,0x11,0x11,0x1A,0x1A,0x1A,0x0B,0x0B, - 0x0B,0x15,0x15,0x15,0x06,0x06,0x06,0x0F,0x0F,0x0F, - 0x0F,0x0F,0x03,0x03,0x03,0x15,0x15,0x15,0x03,0x03, - 0x03,0x1A,0x1A,0x1A,0x03,0x03,0x03,0x1C,0x1C,0x1C, - 0x0D,0x0D,0x0D,0x0D,0x00,0x00,0x00,0x00,0x16,0x16, - 0x16,0x16,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x0D,0x0D,0x0D,0x0D,0x00,0x00,0x00,0x00,0x16,0x16, - 0x16,0x16,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x0D,0x0D,0x0D,0x0D,0x00,0x00,0x00,0x00,0x16,0x16, - 0x16,0x16,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, -}; - -/* End of BAR_M.C */ diff --git a/gbdk-lib/examples/ap/colorbar/bar_m.gbm b/gbdk-lib/examples/ap/colorbar/bar_m.gbm Binary files differ. diff --git a/gbdk-lib/examples/ap/colorbar/bar_m.h b/gbdk-lib/examples/ap/colorbar/bar_m.h @@ -1,24 +0,0 @@ -/* - - BAR_M.H - - Map Include File. - - Info: - Section : - Bank : 0 - Map size : 20 x 18 - Tile set : C:\SDK\gb-gb\tmp\bar_c.gbr - Plane count : 1 plane (8 bits) - Plane order : Tiles are continues - - This file was generated by GBMB v0.8 - -*/ - -#define bar_mWidth 20 -#define bar_mHeight 18 - -extern const unsigned char bar_m[]; - -/* End of BAR_M.H */ diff --git a/gbdk-lib/examples/ap/colorbar/colorbar.c b/gbdk-lib/examples/ap/colorbar/colorbar.c @@ -1,73 +0,0 @@ -#include <gb/gb.h> -#include <gb/cgb.h> -#include <stdint.h> - -#include "bar_c.h" -#include "bar_c.c" -#include "bar_m.c" - -const uint16_t bar_p[] = -{ - bar_cCGBPal0c0,bar_cCGBPal0c1,bar_cCGBPal0c2,bar_cCGBPal0c3, - bar_cCGBPal1c0,bar_cCGBPal1c1,bar_cCGBPal1c2,bar_cCGBPal1c3, - bar_cCGBPal2c0,bar_cCGBPal2c1,bar_cCGBPal2c2,bar_cCGBPal2c3, - bar_cCGBPal3c0,bar_cCGBPal3c1,bar_cCGBPal3c2,bar_cCGBPal3c3, - bar_cCGBPal4c0,bar_cCGBPal4c1,bar_cCGBPal4c2,bar_cCGBPal4c3, - bar_cCGBPal5c0,bar_cCGBPal5c1,bar_cCGBPal5c2,bar_cCGBPal5c3, - bar_cCGBPal6c0,bar_cCGBPal6c1,bar_cCGBPal6c2,bar_cCGBPal6c3, - bar_cCGBPal7c0,bar_cCGBPal7c1,bar_cCGBPal7c2,bar_cCGBPal7c3 -}; - -const unsigned char bar_a[] = -{ - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 7,7,4,4,4,6,6,6,2,2,2,5,5,5,1,1,1,3,3,3, - 3,3,0,0,0,5,5,5,0,0,0,6,6,6,0,0,0,7,7,7, - 3,3,3,3,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0, - 3,3,3,3,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0, - 3,3,3,3,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0 -}; - -int main(void) -{ - /* Transfer color palettes */ - set_bkg_palette( BKGF_CGB_PAL7, 1, &bar_p[0] ); - set_bkg_palette( BKGF_CGB_PAL6, 1, &bar_p[4] ); - set_bkg_palette( BKGF_CGB_PAL5, 1, &bar_p[8] ); - set_bkg_palette( BKGF_CGB_PAL4, 1, &bar_p[12] ); - set_bkg_palette( BKGF_CGB_PAL3, 1, &bar_p[16] ); - set_bkg_palette( BKGF_CGB_PAL2, 1, &bar_p[20] ); - set_bkg_palette( BKGF_CGB_PAL1, 1, &bar_p[24] ); - set_bkg_palette( BKGF_CGB_PAL0, 1, &bar_p[28] ); - - /* CHR code transfer */ - set_bkg_data( 0x0, 32, bar_c ); - - /* Select VRAM bank 1 */ - VBK_REG = VBK_ATTRIBUTES; - /* Set attributes */ - set_bkg_tiles( 0, 0, bar_mWidth, bar_mHeight, bar_a ); - - /* Select VRAM bank 0 */ - VBK_REG = VBK_TILES; - /* Set data */ - set_bkg_tiles( 0, 0, bar_mWidth, bar_mHeight, bar_m ); - - SHOW_BKG; - enable_interrupts(); - DISPLAY_ON; - - return 0; -} diff --git a/gbdk-lib/examples/ap/comm/Makefile b/gbdk-lib/examples/ap/comm/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = comm.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/comm/comm.c b/gbdk-lib/examples/ap/comm/comm.c @@ -1,90 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <stdio.h> - -unsigned char str[] = "Hello World!"; -unsigned char buffer[32]; - -void main(void) -{ - uint8_t i, n = 0; - unsigned char *s; - - puts("Byte"); - puts(" A : Send"); - puts(" B : Receive"); - puts("String"); - puts(" START : Send"); - puts(" SELECT : Receive"); - - CRITICAL { - add_SIO(nowait_int_handler); // disable waiting VRAM state before return - } - set_interrupts(SIO_IFLAG); // disable other interrupts. note: this disables sprite movement - - while(1) { - i = waitpad(J_A | J_B | J_START | J_SELECT); - waitpadup(); - - if (i == J_A) { - /* Send 1 byte */ - printf("Sending b... "); - _io_out = n++; - send_byte(); - /* Wait for IO completion... */ - while((_io_status == IO_SENDING) && (joypad() == 0)); - if(_io_status == IO_IDLE) - printf("OK\n"); - else - printf("#%d\n", _io_status); - } else if (i == J_B) { - /* Receive 1 byte */ - printf("Receiving b... "); - receive_byte(); - /* Wait for IO completion... */ - while((_io_status == IO_RECEIVING) && (joypad() == 0)); - if(_io_status == IO_IDLE) - printf("OK\n%d\n", _io_in); - else - printf("#%d\n", _io_status); - } else if (i == J_START) { - /* Send a string */ - printf("Sending s... "); - s = str; - while(1) { - _io_out = *s; - do { - send_byte(); - /* Wait for IO completion... */ - while((_io_status == IO_SENDING) && (joypad() == 0)); - } while((_io_status != IO_IDLE) && (joypad() == 0)); - if(_io_status != IO_IDLE) { - printf("#%d\n", _io_status); - break; - } - if(*s == 0) break; - s++; - } - if(_io_status == IO_IDLE) printf("OK\n"); - } else if (i == J_SELECT) { - /* Receive a string */ - printf("Receiving s... "); - s = buffer; - while(1) { - receive_byte(); - /* Wait for IO completion... */ - while((_io_status == IO_RECEIVING) && (joypad() == 0)); - if(_io_status != IO_IDLE) { - printf("#%d\n", _io_status); - break; - } - *s = _io_in; - if(*s == 0) break; - s++; - } - if(_io_status == IO_IDLE) printf("OK\n%s\n", buffer); - } - /* In case of user cancellation */ - waitpadup(); - } -} diff --git a/gbdk-lib/examples/ap/compile.bat b/gbdk-lib/examples/ap/compile.bat @@ -1,9 +0,0 @@ -@echo off - -REM Automatically build all Analogue Pocket examples in this directory. - -for /d %%i in (.\*) do ( - pushd "%%i" - .\compile.bat - popd -) diff --git a/gbdk-lib/examples/ap/crash/Makefile b/gbdk-lib/examples/ap/crash/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = crash.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/crash/crash.c b/gbdk-lib/examples/ap/crash/crash.c @@ -1,7 +0,0 @@ -#include <gb/crash_handler.h> - -typedef void (*somefunc_t)(void); - -void main(void) { - ((somefunc_t)0x3000)(); // call something in the middle of nowhere -} - diff --git a/gbdk-lib/examples/ap/dscan/Makefile b/gbdk-lib/examples/ap/dscan/Makefile @@ -1,24 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wm-yc -Wl-j -Wm-yS - -BINS = dscan.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -%.o: %.c - $(CC) -c -o $@ $< - -%.s: %.c - $(CC) -S -o $@ $< - -%.o: %.s - $(CC) -c -o $@ $< - -%.pocket: %.o - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *.ihx *.sym *.cdb *.adb *.asm diff --git a/gbdk-lib/examples/ap/dscan/bkg.c b/gbdk-lib/examples/ap/dscan/bkg.c @@ -1,238 +0,0 @@ -/* - - BKG.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 95 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : 1 Byte per entry. - - Convert to metatiles : No. - - This file was generated by GBTD v1.6 - -*/ - -/* CGBpalette entries. */ -const unsigned char bkgCGB[] = -{ - 0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04, - 0x01,0x02,0x03,0x04,0x01,0x02,0x03,0x04, - 0x05,0x06,0x05,0x06,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; -/* Start of tile array. */ -const unsigned char bkg[] = -{ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00, - 0x6C,0x6C,0x24,0x24,0x48,0x48,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x44,0x44,0xFE,0xFE,0x44,0x44,0x44,0x44, - 0x44,0x44,0xFE,0xFE,0x44,0x44,0x00,0x00, - 0x28,0x28,0x7E,0x7E,0xA8,0xA8,0x7C,0x7C, - 0x2A,0x2A,0xFC,0xFC,0x28,0x28,0x00,0x00, - 0x40,0x40,0xA4,0xA4,0x48,0x48,0x10,0x10, - 0x24,0x24,0x4A,0x4A,0x04,0x04,0x00,0x00, - 0x70,0x70,0x88,0x88,0x50,0x50,0x64,0x64, - 0x94,0x94,0x88,0x88,0x76,0x76,0x00,0x00, - 0x18,0x18,0x08,0x08,0x10,0x10,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x20, - 0x20,0x20,0x10,0x10,0x08,0x08,0x00,0x00, - 0x20,0x20,0x10,0x10,0x08,0x08,0x08,0x08, - 0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00, - 0x10,0x10,0x54,0x54,0x38,0x38,0x10,0x10, - 0x38,0x38,0x54,0x54,0x10,0x10,0x00,0x00, - 0x00,0x00,0x10,0x10,0x10,0x10,0x7C,0x7C, - 0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x18,0x18,0x08,0x08,0x10,0x10,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x7C, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x08,0x08,0x00,0x00, - 0x00,0x00,0x04,0x04,0x08,0x08,0x10,0x10, - 0x20,0x20,0x40,0x40,0x00,0x00,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x82,0x82,0x82,0x82, - 0x82,0x82,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0x10,0x10,0x30,0x30,0x10,0x10,0x10,0x10, - 0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x82,0x82,0x0C,0x0C, - 0x30,0x30,0xC0,0xC0,0xFE,0xFE,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x02,0x02,0x1C,0x1C, - 0x02,0x02,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0x0C,0x0C,0x14,0x14,0x24,0x24,0x44,0x44, - 0x84,0x84,0xFE,0xFE,0x04,0x04,0x00,0x00, - 0xFE,0xFE,0x80,0x80,0xFC,0xFC,0x02,0x02, - 0x02,0x02,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x80,0x80,0xFC,0xFC, - 0x82,0x82,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0xFE,0xFE,0x82,0x82,0x04,0x04,0x08,0x08, - 0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x82,0x82,0x7C,0x7C, - 0x82,0x82,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x82,0x82,0x7E,0x7E, - 0x02,0x02,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00, - 0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00, - 0x18,0x18,0x08,0x08,0x10,0x10,0x00,0x00, - 0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40, - 0x20,0x20,0x10,0x10,0x08,0x08,0x00,0x00, - 0x00,0x00,0x00,0x00,0x7C,0x7C,0x00,0x00, - 0x7C,0x7C,0x00,0x00,0x00,0x00,0x00,0x00, - 0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08, - 0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x82,0x82,0x0C,0x0C, - 0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0xBA,0xBA,0xAA,0xAA, - 0xBE,0xBE,0x80,0x80,0x7E,0x7E,0x00,0x00, - 0x38,0x38,0x44,0x44,0x82,0x82,0x82,0x82, - 0xFE,0xFE,0x82,0x82,0x82,0x82,0x00,0x00, - 0xFC,0xFC,0x82,0x82,0x82,0x82,0xFC,0xFC, - 0x82,0x82,0x82,0x82,0xFC,0xFC,0x00,0x00, - 0x3C,0x3C,0x42,0x42,0x80,0x80,0x80,0x80, - 0x80,0x80,0x42,0x42,0x3C,0x3C,0x00,0x00, - 0xF8,0xF8,0x84,0x84,0x82,0x82,0x82,0x82, - 0x82,0x82,0x84,0x84,0xF8,0xF8,0x00,0x00, - 0xFE,0xFE,0x80,0x80,0x80,0x80,0xFC,0xFC, - 0x80,0x80,0x80,0x80,0xFE,0xFE,0x00,0x00, - 0xFE,0xFE,0x80,0x80,0x80,0x80,0xFC,0xFC, - 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, - 0x3C,0x3C,0x42,0x42,0x80,0x80,0x80,0x80, - 0x8E,0x8E,0x42,0x42,0x3E,0x3E,0x00,0x00, - 0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0xFE, - 0x82,0x82,0x82,0x82,0x82,0x82,0x00,0x00, - 0x38,0x38,0x10,0x10,0x10,0x10,0x10,0x10, - 0x10,0x10,0x10,0x10,0x38,0x38,0x00,0x00, - 0x3C,0x3C,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x48,0x48,0x30,0x30,0x00,0x00, - 0x84,0x84,0x88,0x88,0x90,0x90,0xE0,0xE0, - 0x90,0x90,0x88,0x88,0x84,0x84,0x00,0x00, - 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, - 0x40,0x40,0x40,0x40,0x7E,0x7E,0x00,0x00, - 0xC6,0xC6,0xC6,0xC6,0xAA,0xAA,0xAA,0xAA, - 0x92,0x92,0x92,0x92,0x82,0x82,0x00,0x00, - 0xC2,0xC2,0xC2,0xC2,0xA2,0xA2,0x92,0x92, - 0x8A,0x8A,0x86,0x86,0x86,0x86,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x82,0x82,0x82,0x82, - 0x82,0x82,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0xFC,0xFC,0x82,0x82,0x82,0x82,0x82,0x82, - 0xFC,0xFC,0x80,0x80,0x80,0x80,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x82,0x82,0x82,0x82, - 0xBA,0xBA,0xC4,0xC4,0x7A,0x7A,0x00,0x00, - 0xFC,0xFC,0x82,0x82,0x82,0x82,0x82,0x82, - 0xFC,0xFC,0x84,0x84,0x82,0x82,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0x80,0x80,0x7C,0x7C, - 0x02,0x02,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0xFE,0xFE,0x10,0x10,0x10,0x10,0x10,0x10, - 0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, - 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82, - 0x82,0x82,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0x82,0x82,0x82,0x82,0x44,0x44,0x44,0x44, - 0x28,0x28,0x28,0x28,0x10,0x10,0x00,0x00, - 0x82,0x82,0x82,0x82,0x82,0x82,0x92,0x92, - 0x92,0x92,0x92,0x92,0x6C,0x6C,0x00,0x00, - 0x82,0x82,0x44,0x44,0x28,0x28,0x10,0x10, - 0x28,0x28,0x44,0x44,0x82,0x82,0x00,0x00, - 0x82,0x82,0x44,0x44,0x28,0x28,0x10,0x10, - 0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, - 0xFE,0xFE,0x02,0x02,0x0C,0x0C,0x10,0x10, - 0x60,0x60,0x80,0x80,0xFE,0xFE,0x00,0x00, - 0x38,0x38,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x38,0x38,0x00,0x00, - 0x00,0x00,0x40,0x40,0x20,0x20,0x10,0x10, - 0x08,0x08,0x04,0x04,0x00,0x00,0x00,0x00, - 0x38,0x38,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x38,0x38,0x00,0x00, - 0x7C,0x7C,0x82,0x82,0xBA,0xBA,0xA2,0xA2, - 0xBA,0xBA,0x82,0x82,0x7C,0x7C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x7E,0x7E,0x00,0x00 -}; - -/* End of BKG.C */ diff --git a/gbdk-lib/examples/ap/dscan/bkg.gbr b/gbdk-lib/examples/ap/dscan/bkg.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/dscan/bkg.h b/gbdk-lib/examples/ap/dscan/bkg.h @@ -1,105 +0,0 @@ -/* - - BKG.H - - Include File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 95 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : 1 Byte per entry. - - Convert to metatiles : No. - - This file was generated by GBTD v1.6 - -*/ - - -/* Bank of tiles. */ -#define bkgBank 0 - -/* Super Gameboy palette 0 */ -#define bkgSGBPal0c0 0 -#define bkgSGBPal0c1 0 -#define bkgSGBPal0c2 0 -#define bkgSGBPal0c3 0 - -/* Super Gameboy palette 1 */ -#define bkgSGBPal1c0 4104 -#define bkgSGBPal1c1 6 -#define bkgSGBPal1c2 0 -#define bkgSGBPal1c3 0 - -/* Super Gameboy palette 2 */ -#define bkgSGBPal2c0 4104 -#define bkgSGBPal2c1 6 -#define bkgSGBPal2c2 0 -#define bkgSGBPal2c3 0 - -/* Super Gameboy palette 3 */ -#define bkgSGBPal3c0 4104 -#define bkgSGBPal3c1 6 -#define bkgSGBPal3c2 0 -#define bkgSGBPal3c3 0 - -/* Gameboy Color palette 0 */ -#define bkgCGBPal0c0 32767 -#define bkgCGBPal0c1 25368 -#define bkgCGBPal0c2 16912 -#define bkgCGBPal0c3 0 - -/* Gameboy Color palette 1 */ -#define bkgCGBPal1c0 31744 -#define bkgCGBPal1c1 25600 -#define bkgCGBPal1c2 15360 -#define bkgCGBPal1c3 31 - -/* Gameboy Color palette 2 */ -#define bkgCGBPal2c0 29696 -#define bkgCGBPal2c1 21504 -#define bkgCGBPal2c2 13312 -#define bkgCGBPal2c3 31 - -/* Gameboy Color palette 3 */ -#define bkgCGBPal3c0 27648 -#define bkgCGBPal3c1 19456 -#define bkgCGBPal3c2 11264 -#define bkgCGBPal3c3 31 - -/* Gameboy Color palette 4 */ -#define bkgCGBPal4c0 23552 -#define bkgCGBPal4c1 17408 -#define bkgCGBPal4c2 9216 -#define bkgCGBPal4c3 31 - -/* Gameboy Color palette 5 */ -#define bkgCGBPal5c0 16896 -#define bkgCGBPal5c1 25344 -#define bkgCGBPal5c2 0 -#define bkgCGBPal5c3 31 - -/* Gameboy Color palette 6 */ -#define bkgCGBPal6c0 21120 -#define bkgCGBPal6c1 29568 -#define bkgCGBPal6c2 31744 -#define bkgCGBPal6c3 31 - -/* Gameboy Color palette 7 */ -#define bkgCGBPal7c0 32767 -#define bkgCGBPal7c1 32736 -#define bkgCGBPal7c2 0 -#define bkgCGBPal7c3 31744 -/* CGBpalette entries. */ -extern const unsigned char bkgCGB[]; -/* Start of tile array. */ -extern const unsigned char bkg[]; - -/* End of BKG.H */ diff --git a/gbdk-lib/examples/ap/dscan/bkg_c.c b/gbdk-lib/examples/ap/dscan/bkg_c.c @@ -1,62 +0,0 @@ -/* - - BKG_C.C - - Map Source File. - - Info: - Section : - Bank : 0 - Map size : 20 x 18 - Tile set : C:\SDK\gb-gb\2-0-15\examples\dscan\bkg.gbr - Plane count : 1 plane (8 bits) - Plane order : Tiles are continues - - This file was generated by GBMB v0.8 - -*/ - -#define bkg_cWidth 20 -#define bkg_cHeight 18 - -const unsigned char bkg_c[] = -{ - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, - 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, - 0x02,0x02,0x02,0x02,0x02,0x04,0x04,0x04,0x04,0x04, - 0x04,0x04,0x04,0x04,0x04,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x04,0x04,0x04,0x04,0x04, - 0x04,0x04,0x04,0x04,0x04,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x05,0x05,0x05,0x05,0x05, - 0x05,0x05,0x05,0x05,0x05,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x09,0x09,0x09,0x09,0x09, - 0x09,0x09,0x09,0x09,0x09,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x0B,0x0B,0x0B,0x0B,0x0B, - 0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x0D,0x0D,0x0D,0x0D,0x0D, - 0x0D,0x0D,0x0D,0x0D,0x0D,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x0F,0x0F,0x0F,0x0F,0x0F,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, -}; - -/* End of BKG_C.C */ diff --git a/gbdk-lib/examples/ap/dscan/bkg_c.gbm b/gbdk-lib/examples/ap/dscan/bkg_c.gbm Binary files differ. diff --git a/gbdk-lib/examples/ap/dscan/bkg_m.c b/gbdk-lib/examples/ap/dscan/bkg_m.c @@ -1,62 +0,0 @@ -/* - - BKG_M.C - - Map Source File. - - Info: - Section : - Bank : 0 - Map size : 20 x 18 - Tile set : C:\SDK\gb-gb\2-0-15\examples\dscan\bkg.gbr - Plane count : 1 plane (8 bits) - Plane order : Tiles are continues - - This file was generated by GBMB v0.8 - -*/ - -#define bkg_mWidth 20 -#define bkg_mHeight 18 - -const unsigned char bkg_m[] = -{ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02, -}; - -/* End of BKG_M.C */ diff --git a/gbdk-lib/examples/ap/dscan/bkg_m.gbm b/gbdk-lib/examples/ap/dscan/bkg_m.gbm Binary files differ. diff --git a/gbdk-lib/examples/ap/dscan/dscan.c b/gbdk-lib/examples/ap/dscan/dscan.c @@ -1,751 +0,0 @@ -/******************************************************************** - * Color Deep Scan * - * by * - * Mr. N.U. of TeamKNOx * - ********************************************************************/ - -#include <gb/gb.h> -#include <gb/cgb.h> -#include <stdint.h> -#include <stdlib.h> -#include <rand.h> - -/* bitmaps */ -#include "bkg.h" -#include "bkg.c" -#include "bkg_m.c" -#include "bkg_c.c" -#include "fore.h" -#include "fore.c" - -/* ************************************************************ */ - -const uint16_t bkg_p[] = -{ - bkgCGBPal0c0,bkgCGBPal0c1,bkgCGBPal0c2,bkgCGBPal0c3, - bkgCGBPal1c0,bkgCGBPal1c1,bkgCGBPal1c2,bkgCGBPal1c3, - bkgCGBPal2c0,bkgCGBPal2c1,bkgCGBPal2c2,bkgCGBPal2c3, - bkgCGBPal3c0,bkgCGBPal3c1,bkgCGBPal3c2,bkgCGBPal3c3, - bkgCGBPal4c0,bkgCGBPal4c1,bkgCGBPal4c2,bkgCGBPal4c3, - bkgCGBPal5c0,bkgCGBPal5c1,bkgCGBPal5c2,bkgCGBPal5c3, - bkgCGBPal6c0,bkgCGBPal6c1,bkgCGBPal6c2,bkgCGBPal6c3, - bkgCGBPal7c0,bkgCGBPal7c1,bkgCGBPal7c2,bkgCGBPal7c3 -}; - -const uint16_t obj_p[] = -{ - foreCGBPal0c0,foreCGBPal0c1,foreCGBPal0c2,foreCGBPal0c3, - foreCGBPal1c0,foreCGBPal1c1,foreCGBPal1c2,foreCGBPal1c3, - foreCGBPal2c0,foreCGBPal2c1,foreCGBPal2c2,foreCGBPal2c3, - foreCGBPal3c0,foreCGBPal3c1,foreCGBPal3c2,foreCGBPal3c3, - foreCGBPal4c0,foreCGBPal4c1,foreCGBPal4c2,foreCGBPal4c3, - foreCGBPal5c0,foreCGBPal5c1,foreCGBPal5c2,foreCGBPal5c3, - foreCGBPal6c0,foreCGBPal6c1,foreCGBPal6c2,foreCGBPal6c3, - foreCGBPal7c0,foreCGBPal7c1,foreCGBPal7c2,foreCGBPal7c3 -}; - -/* screen size */ -#define MIN_SX 5U /* min x (char) */ -#define MAX_SX (20U-MIN_SX) /* max x (char) */ -#define MIN_SY 5U /* min y (char) */ -#define MAX_SY (MIN_SY+13U) /* max y (char) */ - -#define DEF_SP 30U /* sprite null char code */ - -/* player */ -#define MIN_PX (MIN_SX*8U+8U) /* min x (dot) */ -#define MAX_PX (MAX_SX*8U-8U) /* max x (dot) */ -#define DEF_PX 80U /* ship x pos (dot) */ -#define DEF_PY (MIN_SY*8U) /* ship y pos (dot) */ -#define DEF_PC0 14U -#define DEF_PC1 15U -#define DEF_PF 8U - -/* bomb */ -#define MAX_TT 6U /* number */ -#define DEF_TS 2U /* sprite tile id */ -#define DEF_TC 2U /* sprite data id */ -#define DEF_TX (80U-6U) /* bomb x pos (dot) */ -#define DEF_TY (DEF_PY-14U) /* bomb y pos (dot) */ -#define MAX_TY (MAX_SY*8U) /* max y pos (dot) */ - -/* enemy */ -#define MAX_ET 10U /* number */ -#define DEF_ES0 (DEF_TS+MAX_TT) /* sprite tile id */ -#define DEF_ES1 (DEF_ES0+1U) -#define DEF_1EC0 32U -#define DEF_1EC1 48U -#define DEF_2EC0 64U -#define DEF_2EC1 80U -#define DEF_XEC0 96U /* sprite data(X) id */ -#define DEF_XEC1 112U /* sprite data(X) id */ -#define DEF_EY (DEF_PY+12U) -#define DEF_EH 10U -#define SUB_EX0 20U -#define SUB_EX1 (SUB_EX0-8U) -#define MIN_EX (SUB_EX0-16U) -#define MAX_EX (SUB_EX0+180U) -#define SPEED_EY (DEF_EY+DEF_EH*3U) -#define DEF_BC1 4U -#define DEF_BC2 5U - -/* kirai */ -#define MAX_KT 12U -#define DEF_KS (DEF_ES0+MAX_ET*2U) /* sprite tile id */ -#define DEF_KC 4U /* sprite data id */ -#define DEF_KX 0U /* bomb x pos (default_dot) */ -#define DEF_KY 0U /* bomb y pos (default_dot) */ -#define MIN_KY (DEF_PY+1U) /* min y pos (dot) */ - -unsigned char msg_tile[64]; - -const unsigned char * const msg_1up = "1UP"; -const unsigned char * const msg_lv = "LV"; - -const unsigned char * const msg_gover = "GAMEOVER"; -const unsigned char * const msg_pause = " PAUSE! "; -const unsigned char * const msg_start = " "; - -uint8_t pf, px, pp, pl; -uint16_t pw; -uint16_t ps; -uint8_t tf[MAX_TT]; -uint8_t tx[MAX_TT], ty[MAX_TT]; -uint8_t ef[MAX_ET], ex[MAX_ET], ey[MAX_ET]; -uint8_t kf[MAX_KT], kx[MAX_KT], ky[MAX_KT]; -uint8_t rnd_enemy, rnd_kirai; -uint8_t k_right, k_left; - -void set_sprite_attrb( uint8_t nb, uint8_t tile ) -{ - if(DEVICE_SUPPORTS_COLOR) { - set_sprite_prop( nb, tile ); - } -} - - -void set_bkg_attr( uint8_t x, uint8_t y, uint8_t sx, uint8_t sy, unsigned char *d ) -{ - uint8_t xx, yy; - - VBK_REG = VBK_ATTRIBUTES; /* select palette bank */ - for( yy=0; yy<sy; yy++ ) { - for( xx=0; xx<sx; xx++ ) { - msg_tile[xx] = bkgCGB[(unsigned int)*d]; - d++; - } - set_bkg_tiles( x, y+yy, sx, 1, msg_tile ); - } - VBK_REG = VBK_TILES; /* select data bank */ -} - -uint8_t make_rnd( uint8_t i ) -{ - return( arand()%(i+1) ); -} - -void show_score( uint16_t s ) -{ - uint16_t m; - uint8_t i, n, f; - unsigned char score[6]; - - f = 0; m = 10000; - for( i=0; i<5; i++ ) { - n = s/m; s = s%m; m = m/10; - if( (n==0)&&(f==0) ) { - score[i] = 0x20; /* ' ' */ - } else { - f = 1; - score[i] = 0x30+n; /* '0' - '9' */ - } - } - score[5] = 0x30; /* '0' */ - set_bkg_tiles( 4, 0, 6, 1, score ); -} - -void set_level( uint8_t i ) -{ - /* level */ - if( i < 9 ) { - rnd_enemy = 100-(i*12); /* 1% - */ - rnd_kirai = 50-(i*6); /* 2% - */ - } else { - rnd_enemy = 0; /* 100 % */ - rnd_kirai = 0; /* 100 % */ - } -} - -void show_level( uint8_t i ) -{ - unsigned char level[2]; - - if( i < 9 ) { - level[0] = 0x31+i; - } else { - level[0] = 0x41+i-9; - } - set_bkg_tiles( 19, 0, 1, 1, level ); - set_level( i ); -} - -void show_gover(void) -{ - set_bkg_tiles( 6, 9, 8, 1, (unsigned char *)msg_gover ); - pf = DEF_PF; -} - -void show_pause(void) -{ - set_bkg_tiles( 6, 9, 8, 1, (unsigned char *)msg_pause ); -} - -void hide_msg(void) -{ - set_bkg_tiles( 6, 9, 8, 1, (unsigned char *)msg_start ); -} - -void init_score(void) -{ - ps = 0; - show_score( ps ); - pp = 0; pl = 0; - show_level( pl ); -} - -void init_screen(void) -{ - uint8_t n; - - if(DEVICE_SUPPORTS_COLOR) { - /* Transfer color palette */ - set_bkg_palette( BKGF_CGB_PAL0, 1, &bkg_p[0] ); - set_bkg_palette( BKGF_CGB_PAL1, 1, &bkg_p[4] ); - set_bkg_palette( BKGF_CGB_PAL2, 1, &bkg_p[8] ); - set_bkg_palette( BKGF_CGB_PAL3, 1, &bkg_p[12] ); - set_bkg_palette( BKGF_CGB_PAL4, 1, &bkg_p[16] ); - set_bkg_palette( BKGF_CGB_PAL5, 1, &bkg_p[20] ); - set_bkg_palette( BKGF_CGB_PAL6, 1, &bkg_p[24] ); - set_bkg_palette( BKGF_CGB_PAL7, 1, &bkg_p[28] ); - set_sprite_palette( OAMF_CGB_PAL0, 1, &obj_p[0] ); - set_sprite_palette( OAMF_CGB_PAL1, 1, &obj_p[4] ); - set_sprite_palette( OAMF_CGB_PAL2, 1, &obj_p[8] ); - set_sprite_palette( OAMF_CGB_PAL3, 1, &obj_p[12] ); - set_sprite_palette( OAMF_CGB_PAL4, 1, &obj_p[16] ); - set_sprite_palette( OAMF_CGB_PAL5, 1, &obj_p[20] ); - set_sprite_palette( OAMF_CGB_PAL6, 1, &obj_p[24] ); - set_sprite_palette( OAMF_CGB_PAL7, 1, &obj_p[28] ); - - /* set attributes */ - set_bkg_attr( 0, 0, 20, 18, bkg_c ); - set_bkg_tiles( 0, 0, 20, 18, bkg_c ); - } else { - set_bkg_tiles( 0, 0, 20, 18, bkg_m ); - } - - pw = 50; - set_bkg_data( 0, 96, bkg ); - set_bkg_tiles( 0, 0, 3, 1, (unsigned char *)msg_1up ); - set_bkg_tiles( 16, 0, 2, 1, (unsigned char *)msg_lv ); - SHOW_BKG; - SPRITES_8x8; - set_sprite_data( 0, 128, fore ); - SHOW_SPRITES; - for( n=0; n<40; n++ ) { - set_sprite_tile( n, DEF_SP ); - move_sprite( n, 0, 0 ); - } -} - -void init_player(void) -{ - pf = 0; px = DEF_PX; - set_sprite_tile( 0, 0 ); - set_sprite_attrb( 0, foreCGB[0] ); - move_sprite( 0, px, DEF_PY ); - set_sprite_tile( 1, 1 ); - set_sprite_attrb( 1, foreCGB[1] ); - move_sprite( 1, px+8, DEF_PY ); -} - -void init_tama(void) -{ - uint8_t i; - - for( i=0; i<MAX_TT; i++ ) { - tf[i] = 0; - tx[i] = i*4+DEF_TX; - ty[i] = DEF_TY; - set_sprite_tile( i+DEF_TS, tf[i]+DEF_TC ); - set_sprite_attrb( i+DEF_TS, foreCGB[tf[i]+DEF_TC] ); - move_sprite( i+DEF_TS, tx[i], ty[i] ); - } -} - -void init_enemy(void) -{ - uint8_t i; - - for( i=0; i<MAX_ET; i++ ) { - ef[i] = 0; - ex[i] = 0; - ey[i] = 0; - set_sprite_tile( i*2+DEF_ES0, DEF_SP ); - set_sprite_tile( i*2+DEF_ES1, DEF_SP ); - move_sprite( i*2+DEF_ES0, ex[i], ey[i] ); - move_sprite( i*2+DEF_ES1, ex[i], ey[i] ); - } -} - -void init_kirai(void) -{ - uint8_t i; - - for( i=0; i<MAX_KT; i++ ) { - kf[i] = 0; - kx[i] = DEF_KX; - ky[i] = DEF_KY; - set_sprite_tile( i+DEF_KS, DEF_SP ); - move_sprite( i+DEF_KS, kx[i], ky[i] ); - } -} - -/* player */ -void player(void) -{ - uint8_t key; - uint8_t i; - uint16_t seed; - - key = joypad(); - /* pause */ - if( key & J_START ) { - if( pf == DEF_PF ) { - /* Initialize the random number generator */ - seed = DIV_REG; - waitpadup(); - seed |= ((uint16_t)DIV_REG << 8); - initarand(seed); - hide_msg(); - init_score(); - init_player(); - init_tama(); - init_enemy(); - init_kirai(); - delay( 500 ); - } else { - show_pause(); - waitpadup(); - key = joypad(); - while( !(key & J_START) ) { - key = joypad(); - if( key & J_DOWN ) { - if(pl > 0) - pl--; - show_level( pl ); - waitpadup(); - } else if( key & J_UP ) { - if(pl < 8) - pl++; - show_level( pl ); - waitpadup(); - } else if( key & J_LEFT ) { - while( joypad() & J_LEFT ) { - if(pw > 0) - pw--; - show_score( pw ); - delay( 250 ); - } - show_score( ps ); - } else if( key & J_RIGHT ) { - while( joypad() & J_RIGHT ) { - if(pw < 99) - pw++; - show_score( pw ); - delay( 250 ); - } - show_score( ps ); - } else if( key & J_SELECT ) { - i = k_right; - k_right = k_left; - k_left = i; - waitpadup(); - } - } - waitpadup(); - hide_msg(); - delay( 500 ); - } - return; - } - - /* dead */ - if( pf > 1 ) { - if( pf < DEF_PF ) { - set_sprite_tile( 0, pf*2+DEF_PC0 ); - set_sprite_attrb( 0, foreCGB[pf*2+DEF_PC0] ); - set_sprite_tile( 1, pf*2+DEF_PC1 ); - set_sprite_attrb( 1, foreCGB[pf*2+DEF_PC1] ); - pf++; - } else { - set_sprite_tile( 0, DEF_SP ); - set_sprite_tile( 1, DEF_SP ); - show_gover(); - } - return; - } - - /* move */ - if( (key&J_LEFT)&&(px>MIN_PX) ) { - px--; - move_sprite( 0, px, DEF_PY ); move_sprite( 1, px+8, DEF_PY ); - } else if( (key&J_RIGHT)&&(px<MAX_PX) ) { - px++; - move_sprite( 0, px, DEF_PY ); move_sprite( 1, px+8, DEF_PY ); - } - /* shot */ - if( key & k_left ) { /* change J_B to J_A */ - if( pf == 0 ) { - pf = 1; - for( i=0; i<MAX_TT; i++ ) { - if( tf[i] == 0 ) { - tf[i] = 1; tx[i] = px-4; ty[i] = DEF_PY; - break; - } - } - } - } else if( key & k_right ) { /* change J_A to J_B */ - if( pf == 0 ) { - pf = 1; - for( i=0; i<MAX_TT; i++ ) { - if( tf[i] == 0 ) { - tf[i] = 1; tx[i] = px+12; ty[i] = DEF_PY; - break; - } - } - } - } else if( pf == 1 ) { - pf = 0; - } -} - -/* bombs */ -void bombs(void) -{ - uint8_t i; - - for( i=0; i<MAX_TT; i++ ) { - if( tf[i] != 0 ) { - ty[i]++; - if( ty[i] > MAX_TY ) { - tf[i] = 0; tx[i] = i*4+DEF_TX; ty[i] = DEF_TY; - } else { - tf[i] = 3-tf[i]; - } - set_sprite_tile( i+DEF_TS, tf[i]+DEF_TC ); - set_sprite_attrb( i+DEF_TS, foreCGB[tf[i]+DEF_TC] ); - move_sprite( i+DEF_TS, tx[i], ty[i] ); - } - } -} - -/* enemys */ -void enemys(void) -{ - uint8_t i, j; - - for( i=0; i<MAX_ET; i++ ) { - if( ef[i] == 1 ) { - /* move right to left */ - ex[i]--; - if( (pl>0)&&(ey[i]<SPEED_EY) ) ex[i]--; - if( ex[i] <= MIN_EX ) { - ef[i] = 0; - set_sprite_tile( i*2+DEF_ES0, DEF_SP ); - set_sprite_tile( i*2+DEF_ES1, DEF_SP ); - } else { - /* new */ - if( ex[i]<MIN_SX*8+13 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1 ); - } else if( ex[i]<MIN_SX*8+20 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1+(ex[i]-MIN_SX*8-13) ); - } else if( ex[i]<MIN_SX*8+28 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0+(ex[i]-MIN_SX*8-20) ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1+8 ); - } else if( ex[i]<MAX_SX*8+13 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1+8 ); - } else if( ex[i]<MAX_SX*8+20 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1+(ex[i]-MAX_SX*8-12)+7 ); - } else if( ex[i]<MAX_SX*8+28 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0+(ex[i]-MAX_SX*8-20)+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1 ); - } else { - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1 ); - } - /* new */ - move_sprite( i*2+DEF_ES0, ex[i]-SUB_EX0, ey[i] ); - move_sprite( i*2+DEF_ES1, ex[i]-SUB_EX1, ey[i] ); - /* check bomb */ - for( j=0; j<MAX_TT; j++ ) { - if( tf[j] != 0 ) { - if( (ty[j]>ey[i]-2)&&(ty[j]<ey[i]+2) ) { - if( (tx[j]>(ex[i]-SUB_EX0-5))&&(tx[j]<(ex[i]-SUB_EX1+5)) ) { - /* hit */ - tf[j] = 0; tx[j] = j*4+DEF_TX; ty[j] = DEF_TY; - set_sprite_tile( j+DEF_TS, tf[j]+DEF_TC ); - set_sprite_attrb( j+DEF_TS, foreCGB[tf[j]+DEF_TC] ); - move_sprite( j+DEF_TS, tx[j], ty[j] ); - ef[i] = 3; - set_sprite_tile( i*2+DEF_ES0, ef[i]*2+DEF_BC1 ); - set_sprite_attrb( i*2+DEF_ES0, foreCGB[ef[i]*2+DEF_BC1] ); - set_sprite_tile( i*2+DEF_ES1, ef[i]*2+DEF_BC2 ); - set_sprite_attrb( i*2+DEF_ES1, foreCGB[ef[i]*2+DEF_BC2] ); - } - } - } - } - if( make_rnd(rnd_kirai) == 0 ) { - if( ((ex[i]-SUB_EX0)>MIN_PX)&&((ex[i]-SUB_EX0)<MAX_PX) ) { - if( kf[i] == 0 ) { - /* shot kirai */ - kf[i] = 1; - kx[i] = ex[i]-SUB_EX0+4; - ky[i] = ey[i]-4; - } else if( kf[i+1] == 0 ) { - /* shot kirai */ - kf[i+1] = 1; - kx[i+1] = ex[i]-SUB_EX0+4; - ky[i+1] = ey[i]-4; - } else if( kf[i+2] == 0 ) { - /* shot kirai */ - kf[i+2] = 1; - kx[i+2] = ex[i]-SUB_EX0+4; - ky[i+2] = ey[i]-4; - } - } - } - } - } else if( ef[i] == 2 ) { - /* move left to right */ - ex[i]++; - if( (pl>0)&&(ey[i]<SPEED_EY) ) ex[i]++; - if( ex[i] >= MAX_EX ) { - ef[i] = 0; - set_sprite_tile( i*2+DEF_ES0, DEF_SP ); - set_sprite_tile( i*2+DEF_ES1, DEF_SP ); - } else { - /* new */ - if( i==9 ) { - if( ex[i]<MIN_SX*8+13 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1 ); - } else if( ex[i]<MIN_SX*8+20 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1+(ex[i]-MIN_SX*8-13) ); - } else if( ex[i]<MIN_SX*8+28 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0+(ex[i]-MIN_SX*8-20) ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1+8 ); - } else if( ex[i]<MAX_SX*8+13 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1+8 ); - } else if( ex[i]<MAX_SX*8+20 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1+(ex[i]-MAX_SX*8-12)+7 ); - } else if( ex[i]<MAX_SX*8+28 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0+(ex[i]-MAX_SX*8-20)+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1 ); - } else { - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1 ); - } - } else { - if( ex[i]<MIN_SX*8+13 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1 ); - } else if( ex[i]<MIN_SX*8+20 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1+(ex[i]-MIN_SX*8-13) ); - } else if( ex[i]<MIN_SX*8+28 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0+(ex[i]-MIN_SX*8-20) ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1+8 ); - } else if( ex[i]<MAX_SX*8+13 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1+8 ); - } else if( ex[i]<MAX_SX*8+20 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1+(ex[i]-MAX_SX*8-12)+7 ); - } else if( ex[i]<MAX_SX*8+28 ) { - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0+(ex[i]-MAX_SX*8-20)+8 ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1 ); - } else { - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0 ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1 ); - } - } - /* new */ - move_sprite( i*2+DEF_ES0, ex[i]-SUB_EX0, ey[i] ); - move_sprite( i*2+DEF_ES1, ex[i]-SUB_EX1, ey[i] ); - /* check bomb */ - for( j=0; j<MAX_TT; j++ ) { - if( tf[j] != 0 ) { - if( (ty[j]>ey[i]-2)&&(ty[j]<ey[i]+2) ) { - if( (tx[j]>(ex[i]-SUB_EX0-5))&&(tx[j]<(ex[i]-SUB_EX1+5)) ) { - /* hit */ - tf[j] = 0; tx[j] = j*4+DEF_TX; ty[j] = DEF_TY; - set_sprite_tile( j+DEF_TS, tf[j]+DEF_TC ); - set_sprite_attrb( j+DEF_TS, foreCGB[tf[j]+DEF_TC] ); - move_sprite( j+DEF_TS, tx[j], ty[j] ); - ef[i] = 3; - set_sprite_tile( i*2+DEF_ES0, ef[i]*2+DEF_BC1 ); - set_sprite_attrb( i*2+DEF_ES0, foreCGB[ef[i]*2+DEF_BC1] ); - set_sprite_tile( i*2+DEF_ES1, ef[i]*2+DEF_BC2 ); - set_sprite_attrb( i*2+DEF_ES1, foreCGB[ef[i]*2+DEF_BC2] ); - } - } - } - } - if( make_rnd(rnd_kirai) == 0 ) { - if( ((ex[i]-SUB_EX0)>MIN_PX)&&((ex[i]-SUB_EX0)<MAX_PX) ) { - if( kf[i] == 0 ) { - /* shot kirai */ - kf[i] = 1; - kx[i] = ex[i]-SUB_EX0+4; - ky[i] = ey[i]-4; - } else if( kf[i+1] == 0 ) { - /* shot kirai */ - kf[i+1] = 1; - kx[i+1] = ex[i]-SUB_EX0+4; - ky[i+1] = ey[i]-4; - } else if( kf[i+2] == 0 ) { - /* shot kirai */ - kf[i+2] = 1; - kx[i+2] = ex[i]-SUB_EX0+4; - ky[i+2] = ey[i]-4; - } - } - } - } - } else if( ef[i] >= 3 ) { - if( ef[i] > 4 ) { - ef[i] = 0; - set_sprite_tile( i*2+DEF_ES0, DEF_SP ); - set_sprite_tile( i*2+DEF_ES1, DEF_SP ); - if( i == 9 ) { - ps += 100; show_score( ps ); pp++; - set_level( pl-1 ); - } else { - ps += (i+1); show_score( ps ); pp++; - } - } else { - set_sprite_tile( i*2+DEF_ES0, ef[i]*2+DEF_BC1 ); - set_sprite_attrb( i*2+DEF_ES0, foreCGB[ef[i]*2+DEF_BC1] ); - set_sprite_tile( i*2+DEF_ES1, ef[i]*2+DEF_BC2 ); - set_sprite_attrb( i*2+DEF_ES1, foreCGB[ef[i]*2+DEF_BC2] ); - ef[i]++; - } - } else if( i == 9 ) { - if( pp > 20 ) { - pp = 0; - pl++; show_level( pl ); - /* X */ - ey[i] = i*DEF_EH+DEF_EY; - ef[i] = i%2+1; - ex[i] = MIN_EX; - set_sprite_tile( i*2+DEF_ES0, DEF_XEC0 ); - set_sprite_attrb( i*2+DEF_ES0, foreCGB[DEF_XEC0] ); - set_sprite_tile( i*2+DEF_ES1, DEF_XEC1 ); - set_sprite_attrb( i*2+DEF_ES1, foreCGB[DEF_XEC1] ); - move_sprite( i*2+DEF_ES0, ex[i]-SUB_EX0, ey[i] ); - move_sprite( i*2+DEF_ES1, ex[i]-SUB_EX1, ey[i] ); - } - } else if( make_rnd(rnd_enemy) == 0 ) { - if( !((pl<4)&&(i==0)) ) { - /* create */ - ey[i] = i*DEF_EH+DEF_EY; - ef[i] = i%2+1; - if( ef[i] == 1 ) { - ex[i] = MAX_EX; - set_sprite_tile( i*2+DEF_ES0, DEF_1EC0 ); - set_sprite_attrb( i*2+DEF_ES0, foreCGB[DEF_1EC0] ); - set_sprite_tile( i*2+DEF_ES1, DEF_1EC1 ); - set_sprite_attrb( i*2+DEF_ES1, foreCGB[DEF_1EC1] ); - } else { - ex[i] = MIN_EX; - set_sprite_tile( i*2+DEF_ES0, DEF_2EC0 ); - set_sprite_attrb( i*2+DEF_ES0, foreCGB[DEF_2EC0] ); - set_sprite_tile( i*2+DEF_ES1, DEF_2EC1 ); - set_sprite_attrb( i*2+DEF_ES1, foreCGB[DEF_2EC1] ); - } - move_sprite( i*2+DEF_ES0, ex[i]-SUB_EX0, ey[i] ); - move_sprite( i*2+DEF_ES1, ex[i]-SUB_EX1, ey[i] ); - } - } - } -} - -/* kirai */ -void kirai(void) -{ - uint8_t i; - - for( i=0; i<MAX_KT; i++ ) { - if( kf[i] != 0 ) { - ky[i]--; - if( kf[i] >=3 ) { - kf[i]++; - if( (kx[i]>(px-5))&&(kx[i]<(px+12)) ) { - if( pf < 2 ) { - /* out!! */ - pf = 2; - } - } - if( kf[i] >= 6 ) { - kf[i] = 0; kx[i] = DEF_KX; ky[i] = DEF_KY; - } - } else if( ky[i] <= MIN_KY ) { - kf[i] = 3; - } else { - kf[i] = 3-kf[i]; - } - set_sprite_tile( i+DEF_KS, kf[i]+DEF_KC ); - set_sprite_attrb( i+DEF_KS, foreCGB[kf[i]+DEF_KC] ); - move_sprite( i+DEF_KS, kx[i], ky[i] ); - } - } -} - -/*--------------------------------------------------------------------------* - | main program | - *--------------------------------------------------------------------------*/ -void main(void) -{ - disable_interrupts(); - DISPLAY_OFF; - - initarand(((uint16_t)DIV_REG << 8)); - - init_screen(); - init_score(); - init_player(); - init_tama(); - init_enemy(); - init_kirai(); - show_gover(); - k_right = J_A; - k_left = J_B; - DISPLAY_ON; - enable_interrupts(); - - while(1) { - delay( pw ); - player(); - bombs(); - enemys(); - kirai(); - } -} diff --git a/gbdk-lib/examples/ap/dscan/fore.c b/gbdk-lib/examples/ap/dscan/fore.c @@ -1,306 +0,0 @@ -/* - - FORE.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 127 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : 1 Byte per entry. - - Convert to metatiles : No. - - This file was generated by GBTD v1.6 - -*/ - -/* CGBpalette entries. */ -const unsigned char foreCGB[] = -{ - 0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x05, - 0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, - 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, - 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, - 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04 -}; -/* Start of tile array. */ -const unsigned char fore[] = -{ - 0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03, - 0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x00,0x00, - 0x00,0x00,0x80,0x80,0x80,0x80,0xC0,0xC0, - 0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0x00,0x00, - 0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18, - 0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x10,0x30,0x38, - 0x0C,0x1C,0x00,0x08,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x1C, - 0x30,0x38,0x00,0x10,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x04,0x04,0x08,0x08,0x14,0x14,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x10,0x08,0x08,0x14,0x14,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x08,0x08,0x14,0x1C,0x1C,0x14,0x00,0x00, - 0x08,0x08,0x08,0x08,0x41,0x41,0x2A,0x2A, - 0x2A,0x3E,0x14,0x1C,0x1C,0x14,0x08,0x00, - 0x00,0x00,0x00,0x00,0x08,0x08,0x00,0x00, - 0x41,0x41,0x00,0x00,0x1C,0x1C,0x22,0x3E, - 0x00,0x00,0x08,0x00,0x04,0x00,0x11,0x00, - 0x11,0x00,0x04,0x00,0x08,0x00,0x00,0x00, - 0x00,0x00,0x10,0x00,0x20,0x00,0x88,0x00, - 0x88,0x00,0x20,0x00,0x10,0x00,0x00,0x00, - 0x10,0x00,0x08,0x00,0x21,0x00,0x02,0x00, - 0x02,0x00,0x21,0x00,0x08,0x00,0x10,0x00, - 0x08,0x00,0x10,0x00,0x84,0x00,0x40,0x00, - 0x40,0x00,0x84,0x00,0x10,0x00,0x08,0x00, - 0x10,0x00,0x01,0x00,0x40,0x00,0x04,0x00, - 0x04,0x00,0x40,0x00,0x01,0x00,0x10,0x00, - 0x08,0x00,0x80,0x00,0x02,0x00,0x20,0x00, - 0x20,0x00,0x02,0x00,0x80,0x00,0x08,0x00, - 0x00,0x10,0x01,0x0B,0x01,0x3E,0x64,0x7B, - 0x73,0x7C,0x3F,0x38,0x1F,0x1C,0x00,0x00, - 0x00,0x08,0x80,0xD0,0x80,0x7C,0x26,0xDE, - 0xCE,0x3E,0xFC,0x1C,0xF8,0x38,0x00,0x00, - 0x00,0x22,0x05,0x93,0x01,0x7E,0x5E,0x61, - 0x1F,0x70,0x2F,0xB0,0x1F,0x30,0x00,0x00, - 0x00,0x44,0xA0,0xC9,0x80,0x7E,0x7A,0x86, - 0xF8,0x0E,0xF4,0x0D,0xF8,0x0C,0x00,0x00, - 0x00,0x21,0x05,0x90,0x06,0x78,0x6A,0x76, - 0x10,0x7F,0x20,0xBF,0x18,0x37,0x00,0x00, - 0x00,0x84,0xA0,0x09,0x60,0x1E,0x56,0x6E, - 0x08,0xFE,0x04,0xFD,0x18,0xEC,0x00,0x00, - 0x00,0x00,0x60,0x60,0x70,0x74,0xFE,0xFE, - 0xDC,0xFE,0x7E,0x7E,0x37,0x3F,0x00,0x00, - 0x00,0x00,0x06,0x06,0x0E,0x2E,0x7F,0x7F, - 0x3B,0x7F,0x7E,0x7E,0xEC,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x04,0x40,0x40,0x40,0x62, - 0xF0,0xF0,0xF4,0xFC,0x7E,0x7E,0x00,0x00, - 0x00,0x00,0x00,0x20,0x02,0x02,0x02,0x46, - 0x0F,0x0F,0x2F,0x3F,0x7E,0x7E,0x00,0x00, - 0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00, - 0x40,0x48,0x40,0x40,0xF0,0xF0,0x00,0x00, - 0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00, - 0x02,0x12,0x02,0x02,0x0F,0x0F,0x00,0x00, - 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00, - 0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x02,0x00,0x0D,0x00,0x30, - 0x00,0x40,0x00,0x40,0x00,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x02,0x01,0x0D,0x01,0x31, - 0x01,0x41,0x01,0x41,0x01,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x03,0x0F,0x03,0x33, - 0x03,0x43,0x03,0x43,0x03,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x07,0x0F,0x07,0x37, - 0x07,0x47,0x07,0x47,0x07,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x0F,0x0F,0x0F,0x3F, - 0x0F,0x4F,0x0F,0x4F,0x0F,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x0F,0x0F,0x1F,0x3F, - 0x1F,0x5F,0x1F,0x5F,0x1F,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x0F,0x0F,0x3F,0x3F, - 0x3F,0x7F,0x3F,0x7F,0x3F,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x0F,0x0F,0x3F,0x3F, - 0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x0F,0x0F,0x3F,0x3F, - 0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x00,0x00, - 0x00,0x00,0x02,0x02,0x0E,0x0F,0x3E,0x3E, - 0x7E,0x7E,0x7E,0x7E,0x3E,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x02,0x0C,0x0D,0x3C,0x3C, - 0x7C,0x7C,0x7C,0x7C,0x3C,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x02,0x08,0x0D,0x38,0x38, - 0x78,0x78,0x78,0x78,0x38,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x02,0x00,0x0D,0x30,0x30, - 0x70,0x70,0x70,0x70,0x30,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x02,0x00,0x0D,0x20,0x30, - 0x60,0x60,0x60,0x60,0x20,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x02,0x00,0x0D,0x00,0x30, - 0x40,0x40,0x40,0x40,0x00,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x02,0x00,0x0D,0x00,0x30, - 0x00,0x40,0x00,0x40,0x00,0x3F,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x72, - 0x00,0x0E,0x00,0x12,0x00,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x02,0x72, - 0x02,0x0E,0x02,0x12,0x00,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x02,0x72, - 0x06,0x0E,0x02,0x12,0x00,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x02,0x72, - 0x0E,0x0E,0x02,0x12,0x00,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x12,0x72, - 0x1E,0x1E,0x12,0x12,0x00,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x32,0x72, - 0x3E,0x3E,0x32,0x32,0x20,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x72,0x72, - 0x7E,0x7E,0x72,0x72,0x60,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0xF2,0xF2, - 0xFE,0xFE,0xF2,0xF2,0xE0,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0xF2,0xF2, - 0xFE,0xFE,0xF2,0xF2,0xE0,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0xF0,0xF2, - 0xFC,0xFE,0xF0,0xF2,0xE0,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0xF0,0xF2, - 0xF8,0xFE,0xF0,0xF2,0xE0,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0xF0,0xF2, - 0xF0,0xFE,0xF0,0xF2,0xE0,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xF2, - 0xE0,0xEE,0xE0,0xF2,0xE0,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xF2, - 0xC0,0xCE,0xC0,0xD2,0xC0,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xF2, - 0x80,0x8E,0x80,0x92,0x80,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x72, - 0x00,0x0E,0x00,0x12,0x00,0xE0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x4E, - 0x00,0x70,0x00,0x48,0x00,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x4F, - 0x01,0x71,0x01,0x49,0x01,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x4F, - 0x03,0x73,0x03,0x4B,0x03,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x07,0x4F, - 0x07,0x77,0x07,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x0F,0x4F, - 0x0F,0x7F,0x0F,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x0F,0x4F, - 0x1F,0x7F,0x0F,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x0F,0x4F, - 0x3F,0x7F,0x0F,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x4F,0x4F, - 0x7F,0x7F,0x4F,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x4F,0x4F, - 0x7F,0x7F,0x4F,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x4E,0x4E, - 0x7E,0x7E,0x4E,0x4E,0x06,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x4C,0x4E, - 0x7C,0x7C,0x4C,0x4C,0x04,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x48,0x4E, - 0x78,0x78,0x48,0x48,0x00,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x4E, - 0x70,0x70,0x40,0x48,0x00,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x4E, - 0x60,0x70,0x40,0x48,0x00,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x4E, - 0x40,0x70,0x40,0x48,0x00,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x4E, - 0x00,0x70,0x00,0x48,0x00,0x07,0x00,0x00, - 0x00,0x00,0x00,0x40,0x00,0xB0,0x00,0x0C, - 0x00,0x02,0x00,0x02,0x00,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x40,0x00,0xB0,0x00,0x0C, - 0x02,0x02,0x02,0x02,0x00,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x40,0x00,0xB0,0x04,0x0C, - 0x06,0x06,0x06,0x06,0x04,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x40,0x00,0xB0,0x0C,0x0C, - 0x0E,0x0E,0x0E,0x0E,0x0C,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x40,0x10,0xB0,0x1C,0x1C, - 0x1E,0x1E,0x1E,0x1E,0x1C,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x40,0x30,0xB0,0x3C,0x3C, - 0x3E,0x3E,0x3E,0x3E,0x3C,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0x70,0xF0,0x7C,0x7C, - 0x7E,0x7E,0x7E,0x7E,0x7C,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xFC,0xFC, - 0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xFC,0xFC, - 0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xFC,0xFC, - 0xFC,0xFE,0xFC,0xFE,0xFC,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xF8,0xFC, - 0xF8,0xFA,0xF8,0xFA,0xF8,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xF0,0xFC, - 0xF0,0xF2,0xF0,0xF2,0xF0,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xE0,0xF0,0xE0,0xEC, - 0xE0,0xE2,0xE0,0xE2,0xE0,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xC0,0xF0,0xC0,0xCC, - 0xC0,0xC2,0xC0,0xC2,0xC0,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x40,0x80,0xB0,0x80,0x8C, - 0x80,0x82,0x80,0x82,0x80,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x40,0x00,0xB0,0x00,0x0C, - 0x00,0x02,0x00,0x02,0x00,0xFC,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03, - 0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x0F,0x0F, - 0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x0F,0x0F, - 0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x0F,0x0F, - 0x3F,0x3F,0x0F,0x0F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x4F,0x4F, - 0x7F,0x7F,0x4F,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x01,0x4F,0x4F, - 0x7F,0x7F,0x4F,0x4F,0x07,0x07,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x4E,0x4E, - 0x7E,0x7E,0x4E,0x4E,0x06,0x06,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x4C, - 0x7C,0x7C,0x4C,0x4C,0x04,0x04,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x48, - 0x78,0x78,0x48,0x48,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40, - 0x70,0x70,0x40,0x40,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40, - 0x60,0x60,0x40,0x40,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40, - 0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04, - 0x06,0x06,0x06,0x06,0x04,0x04,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C, - 0x0E,0x0E,0x0E,0x0E,0x0C,0x0C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x10,0x10,0x1C,0x1C, - 0x1E,0x1E,0x1E,0x1E,0x1C,0x1C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x30,0x30,0x3C,0x1C, - 0x3E,0x3E,0x3E,0x1E,0x3C,0x3C,0x00,0x00, - 0x00,0x00,0x40,0x40,0x70,0x70,0x7C,0x5C, - 0x7E,0x3E,0x7E,0x5E,0x7C,0x7C,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xFC,0x5C, - 0xFE,0xBE,0xFE,0x5E,0xFC,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xFC,0x5C, - 0xFE,0xBE,0xFE,0x5E,0xFC,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xFC,0x5C, - 0xFC,0xBC,0xFC,0x5C,0xFC,0xFC,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xF8,0x58, - 0xF8,0xB8,0xF8,0x58,0xF8,0xF8,0x00,0x00, - 0x00,0x00,0x40,0x40,0xF0,0xF0,0xF0,0x50, - 0xF0,0xB0,0xF0,0x50,0xF0,0xF0,0x00,0x00, - 0x00,0x00,0x40,0x40,0xE0,0xE0,0xE0,0x40, - 0xE0,0xA0,0xE0,0x40,0xE0,0xE0,0x00,0x00, - 0x00,0x00,0x40,0x40,0xC0,0xC0,0xC0,0x40, - 0xC0,0x80,0xC0,0x40,0xC0,0xC0,0x00,0x00, - 0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00, - 0x80,0x80,0x80,0x00,0x80,0x80,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; - -/* End of FORE.C */ diff --git a/gbdk-lib/examples/ap/dscan/fore.gbr b/gbdk-lib/examples/ap/dscan/fore.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/dscan/fore.h b/gbdk-lib/examples/ap/dscan/fore.h @@ -1,105 +0,0 @@ -/* - - FORE.H - - Include File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 127 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : 1 Byte per entry. - - Convert to metatiles : No. - - This file was generated by GBTD v1.6 - -*/ - - -/* Bank of tiles. */ -#define foreBank 0 - -/* Super Gameboy palette 0 */ -#define foreSGBPal0c0 0 -#define foreSGBPal0c1 0 -#define foreSGBPal0c2 0 -#define foreSGBPal0c3 18 - -/* Super Gameboy palette 1 */ -#define foreSGBPal1c0 6108 -#define foreSGBPal1c1 8935 -#define foreSGBPal1c2 6596 -#define foreSGBPal1c3 6368 - -/* Super Gameboy palette 2 */ -#define foreSGBPal2c0 6108 -#define foreSGBPal2c1 8935 -#define foreSGBPal2c2 6596 -#define foreSGBPal2c3 6368 - -/* Super Gameboy palette 3 */ -#define foreSGBPal3c0 6108 -#define foreSGBPal3c1 8935 -#define foreSGBPal3c2 6596 -#define foreSGBPal3c3 6368 - -/* Gameboy Color palette 0 */ -#define foreCGBPal0c0 32767 -#define foreCGBPal0c1 25368 -#define foreCGBPal0c2 19026 -#define foreCGBPal0c3 0 - -/* Gameboy Color palette 1 */ -#define foreCGBPal1c0 32344 -#define foreCGBPal1c1 31 -#define foreCGBPal1c2 0 -#define foreCGBPal1c3 32767 - -/* Gameboy Color palette 2 */ -#define foreCGBPal2c0 32344 -#define foreCGBPal2c1 31 -#define foreCGBPal2c2 25368 -#define foreCGBPal2c3 32767 - -/* Gameboy Color palette 3 */ -#define foreCGBPal3c0 32344 -#define foreCGBPal3c1 32767 -#define foreCGBPal3c2 992 -#define foreCGBPal3c3 1023 - -/* Gameboy Color palette 4 */ -#define foreCGBPal4c0 32344 -#define foreCGBPal4c1 32767 -#define foreCGBPal4c2 31744 -#define foreCGBPal4c3 31 - -/* Gameboy Color palette 5 */ -#define foreCGBPal5c0 32344 -#define foreCGBPal5c1 31 -#define foreCGBPal5c2 0 -#define foreCGBPal5c3 31744 - -/* Gameboy Color palette 6 */ -#define foreCGBPal6c0 32767 -#define foreCGBPal6c1 25368 -#define foreCGBPal6c2 19026 -#define foreCGBPal6c3 0 - -/* Gameboy Color palette 7 */ -#define foreCGBPal7c0 32767 -#define foreCGBPal7c1 25368 -#define foreCGBPal7c2 19026 -#define foreCGBPal7c3 0 -/* CGBpalette entries. */ -extern const unsigned char foreCGB[]; -/* Start of tile array. */ -extern const unsigned char fore[]; - -/* End of FORE.H */ diff --git a/gbdk-lib/examples/ap/emu_debug/Makefile b/gbdk-lib/examples/ap/emu_debug/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS -Wm-yc - -BINS = emu_debug.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/emu_debug/emu_debug.c b/gbdk-lib/examples/ap/emu_debug/emu_debug.c @@ -1,147 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <stdio.h> // Just for printf() -#include <gb/cgb.h> // Just for the cpu_fast()/slow() calls in CGB 2x example - -#include <gb/emu_debug.h> // Use this include to add the Emu debug functions - - -// This example shows how to use support for profiling -// and logging to the debug window in the emulator (BGB or Emulicious). -// -// 1. Build this ROM (emu_debug.gb) then load it in the emulator (BGB or Emulicious) -// 2. Open the internal debugger by pressing the "ESC" or "F1" key -// 3. From the debugger menu choose "debug messages" to open the debug messages window -// 4. Reset the gameboy (you may need to press F9 in the debugger to resume running) -// 5. The debug window will show the debug messages -// -// See the BGB Manual for more information -// ("expressions, breakpoint conditions, and debug messages") -// https://bgb.bircd.org/manual.html#expressions - -int main(void) -{ - int c; - - SHOW_BKG; - DISPLAY_ON; - enable_interrupts(); - - // Display a message on the GameBoy's screen - printf("Message to the \nGameBoy screen\n"); - - // Log a message to the Emulator debug message window - EMU_MESSAGE(""); // new line - EMU_MESSAGE("Message to the EMU console"); - - // ==== Normal Speed Mode ==== - // Profile code: a single NOP instruction - // - // The clock units are "1 nop in [CGB] doublespeed mode". - // So when *not* running in CGB doublespeed mode you - // have to divide by 2 to get the correct cycle count. - // - // You should see the message "NOP TIME: 2". - // - // So in this case, divide the printed value by 2 = The NOP took "1" cycle - - __critical { // Temporarily turn off interrupts for more accurate measurements - EMU_PROFILE_BEGIN("Profile a single NOP instruction at Normal Speed"); - __asm__("nop"); - EMU_PROFILE_END("NOP TIME:"); - } - - - // ==== Color Game Boy in Double Speed Mode ==== - // Profile code: a single NOP instruction - // - // The EMU_PROFILE_BEGIN/END macros don't support the - // Color Game Boy (CGB) in double speed mode (cpu_fast()). - // The example below shows what to use instead (and how to - // check for a CGB and turn on Double Speed mode). - // - // Check and only run this test if on CGB hardware - if (DEVICE_SUPPORTS_COLOR) { - - // Set CGB into double speed mode - // (Requires passing -Wm-yc or -Wm-yC with Lcc during build time) - cpu_fast(); - // Set some default DMG styled colors in the CGB Palette - set_default_palette(); - - // In CGB Double Speed mode, you don't have to - // divide by 2 to get the cycle count. - // - // You should see the message "NOP TIME: 1". - - __critical { // Temporarily turn off interrupts for more accurate measurements - EMU_PROFILE_BEGIN("Profile a single NOP instruction at CGB Double Speed"); - __asm__("nop"); - // The "-4+" subtracts 4 clocks to compensate for the ones - // used by the debug message itself (Normal speed uses -8) - EMU_MESSAGE("NOP TIME:%-4+LASTCLKS%"); - } - - // Return the CGB to normal speed - cpu_slow(); - } - - - __critical { // Temporarily turn off interrupts for more accurate measurements - - // Profile code in a loop - EMU_PROFILE_BEGIN("Profile code in a loop"); - for(c=0; c<5; c++) { - // Do something - printf("%d\n", c); - } - // Elapsed cycle count output is in hex. - // Remember to divide by 2 for the result (Normal Speed) - EMU_PROFILE_END("LOOP TIME:"); - } - - - // ==== Some other things you can print ==== - - // TOTALCLKS shows the clocks counter ("internal divider") in the BGB IO map - EMU_MESSAGE("Total Clocks: %TOTALCLKS%"); - - // CLKS2VBLANK - EMU_MESSAGE("Clocks until VBLANK: %CLKS2VBLANK%"); - - // Which Banks are currently active (for MBC based cartridges) - EMU_MESSAGE("Current ROM bank: %ROMBANK%"); - EMU_MESSAGE("Current SRAM bank: %SRAMBANK%"); - // These are only banked in the CGB - EMU_MESSAGE("Current VRAM bank: %VRAMBANK%"); - EMU_MESSAGE("Current WRAM bank: %WRAMBANK%"); - - // Registers (All in this case, or individual ones) - EMU_MESSAGE("All Registers: %ALLREGS%"); - - // Simple addition with a register - EMU_MESSAGE("Register A + 1: %(A+1)%"); - - // Read the LY Register a couple times - // (Current Y coordinate being rendered to the LCD) - EMU_MESSAGE("LY Register (0xFF44): %($ff44)%"); - EMU_MESSAGE("LY Register (0xFF44): %($ff44)%"); - // Now print a conditional debug message using it - EMU_MESSAGE("Is LY Register > Line 67: %($ff44)>67%Yes;No;"); - - // Print some profile info using a built-in function. - EMU_MESSAGE("The following lines contain: PROFILE,(SP+$0),(SP+$1),A,TOTALCLKS,ROMBANK,WRAMBANK"); - EMU_profiler_message(); - // It's equivalent to: - EMU_MESSAGE("PROFILE,%(SP+$0)%,%(SP+$1)%,%A%,%TOTALCLKS%,%ROMBANK%,%WRAMBANK%"); - - uint8_t var0 = 16; - int16_t var1 = -10; - // - EMU_printf("var0: %hd; var1: %d; var0*var1=%d", (uint8_t)var0, var1, var0 * var1); - - // The EMU_TEXT() macro will accept a non-quoted string - EMU_TEXT("The End"); - - return 0; -} diff --git a/gbdk-lib/examples/ap/filltest/Makefile b/gbdk-lib/examples/ap/filltest/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = filltest.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/filltest/filltest.c b/gbdk-lib/examples/ap/filltest/filltest.c @@ -1,60 +0,0 @@ -/* Sample Program to demonstrate the drawing functions in GBDK */ -/* Jon Fuge jonny@q-continuum.demon.co.uk */ - -#include <gb/gb.h> -#include <stdint.h> -#include <gb/drawing.h> - -void linetest(uint8_t x, uint8_t y, uint8_t w) { - color(DKGREY,WHITE,SOLID); - for (int i = -w; i <= w; i++) line(x,y,x+i,y-w); - for (int i = -w; i <= w; i++) line(x,y,x+w,y+i); - for (int i = -w; i <= w; i++) line(x,y,x+i,y+w); - for (int i = -w; i <= w; i++) line(x,y,x-w,y+i); -} - -void main(void) -{ - uint8_t a,b,c,d,e; - c=0; - /* Draw many characters on the screen with different fg and bg colours */ - for (a=0; a<=15; a++) { - for (b=0; b<=15; b++) { - gotogxy(b,a); - d=a/4; - e=b/4; - if (d==e) { - d=3-e; - } - color(d,e,SOLID); - gprintf("%c",c++); - } - } - - /* Draw two circles, a line, and two boxes in different drawing modes */ - color(LTGREY,WHITE,SOLID); - circle(140,20,15,M_FILL); - color(BLACK,WHITE,SOLID); - circle(140,20,10,M_NOFILL); - color(DKGREY,WHITE,XOR); - circle(120,40,30,M_FILL); - line(0,0,159,143); - color(BLACK,LTGREY,SOLID); - box(0,130,40,143,M_NOFILL); - box(50,130,90,143,M_FILL); - - - linetest(130, 100, 20); - - /* Scroll the screen using the hardest method imaginable :) */ - for (c=0; c<=143; c++) { - for (b=0; b<=142; b++) { - for (a=0; a<=159; a++) { - color(getpix(a,b+1),WHITE,SOLID); - plot_point(a,b); - } - color(WHITE,WHITE,SOLID); - } - line(0,143,159,143); - } -} diff --git a/gbdk-lib/examples/ap/galaxy/Makefile b/gbdk-lib/examples/ap/galaxy/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = galaxy.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/galaxy/galaxy.c b/gbdk-lib/examples/ap/galaxy/galaxy.c @@ -1,632 +0,0 @@ -/* - * C version of the 'space' assembly demo. - * - * Little demo illustrating how to use the graphical possibilities - * of the GB (background, window and animated sprite) - * I have used fixed-point values for both the position and - * speed of objects to get smooth movements - * - * OBJ data : 0x8000 -> 0x8FFF (unsigned) - * Window data : 0x8800 -> 0x97FF (unsigned) - * Background data : 0x8800 -> 0x97FF (signed) - * - * Tiled 0xFC -> 0xFF are standard tiles (all black -> all white) - * - * Keys: - * Arrow keys : Change the speed (and direction) of the sprite - * Arrow keys + A : Change the speed (and direction) of the window - * Arrow keys + B : Change the speed (and direction) of the background - * START : Open/close the door - * SELECT : Basic fading effect - * - * Note that the window is kept in the lower right part of the screen - * since it can't be made transparent - */ - -#include <gb/gb.h> -#include <stdint.h> - -const unsigned char std_data[] = { - - /* Basic tiles (0xFC to 0xFF) */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; - -const unsigned char earth_data[] = { - - /* Tile 0x00 */ - 0x07,0x07,0x18,0x1F,0x32,0x2D,0x71,0x4E,0x70,0x4F,0xF8,0x87,0xF8,0x87,0xF8,0x87, - 0xFC,0x83,0xFE,0x81,0x7F,0x40,0x7F,0x40,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xF0,0x30,0x78,0x88,0x3C,0xC4,0x5C,0xA4,0x9E,0x62,0x3E,0xC2,0x3E,0xC2, - 0x5E,0xA2,0x7E,0x82,0x0C,0xF4,0x0C,0xF4,0x98,0x68,0xB0,0x70,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1F,0x18,0x2F,0x30,0x4F,0x70,0x6F,0x50,0x9F,0xE0,0x9F,0xE0,0xBF,0xC0, - 0xFF,0x80,0xB7,0xC8,0x63,0x5C,0x43,0x7C,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xB0,0x70,0x18,0xE8,0x0C,0xF4,0x0C,0xF4,0x82,0x7E,0x82,0x7E,0x86,0x7A, - 0xC6,0x3A,0xE6,0x1A,0xF4,0x0C,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x08 */ - 0x07,0x07,0x1E,0x19,0x20,0x3F,0x40,0x7F,0x42,0x7D,0x81,0xFE,0x81,0xFE,0x83,0xFC, - 0xD7,0xA8,0xBB,0xC4,0x6E,0x51,0x7C,0x43,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0xE8,0x18,0xF4,0x0C,0xF4,0x0C,0xFE,0x02,0xFE,0x02,0xFE,0x02, - 0xFE,0x02,0x7E,0x82,0x3C,0xC4,0x3C,0xC4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1B,0x1C,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xE0,0x9F,0x90,0xEF,0x89,0xF6, - 0x8D,0xF2,0x9F,0xE0,0x5E,0x61,0x6F,0x50,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xB0,0x70,0x28,0xD8,0x04,0xFC,0x2C,0xD4,0x1E,0xE2,0x1E,0xE2,0x3E,0xC2, - 0x7E,0x82,0xB6,0x4A,0xE4,0x1C,0xC4,0x3C,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x10 */ - 0x07,0x07,0x18,0x1F,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xEE,0x91,0xF1,0x8E,0xE0,0x9F, - 0xE0,0x9F,0xF1,0x8E,0x71,0x4E,0x72,0x4D,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xF0,0x30,0x08,0xF8,0x04,0xFC,0x04,0xFC,0x02,0xFE,0x02,0xFE,0x92,0x6E, - 0xD6,0x2A,0xFE,0x02,0xEC,0x14,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1D,0x1A,0x36,0x29,0x5C,0x63,0x6C,0x53,0xCE,0xB1,0x9F,0xE0,0x9E,0xE1, - 0xAE,0xD1,0xBF,0xC0,0x47,0x78,0x47,0x78,0x2F,0x30,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0x08,0xF8,0x04,0xFC,0x04,0xFC,0xE2,0x1E,0x32,0xCE,0x0E,0xF2, - 0x0E,0xF2,0x1E,0xE2,0x1C,0xE4,0x2C,0xD4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x18 */ - 0x07,0x07,0x1E,0x19,0x33,0x2C,0x49,0x76,0x42,0x7D,0xC4,0xBB,0xC1,0xBE,0xC1,0xBE, - 0xE2,0x9D,0xF3,0x8C,0x78,0x47,0x78,0x47,0x3C,0x23,0x1C,0x1B,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0x68,0x98,0xC4,0x3C,0xC4,0x3C,0xEE,0x12,0xF2,0x0E,0xE2,0x1E, - 0xE2,0x1E,0xF2,0x0E,0x7C,0x84,0x7C,0x84,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 -}; - -const unsigned char frame_data[] = { - - /* Tile 0x00 */ - 0xFF,0x00,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F, - 0xFF,0x00,0x01,0xFE,0x03,0xFC,0x07,0xF8,0x0F,0xF0,0x1F,0xE0,0x3F,0xC0,0x7F,0x80, - 0xFF,0x00,0xFE,0x01,0xFC,0x03,0xF8,0x07,0xF0,0x0F,0xE0,0x1F,0xC0,0x3F,0x80,0x7F, - 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0xFF,0x00,0xFF,0x01,0xFD,0x03,0xF9,0x07,0xF1,0x0F,0xE1,0x1F,0xC1,0x3F,0x81,0x7F, - 0x80,0x7F,0x81,0x7E,0x83,0x7C,0x87,0x78,0x8F,0x70,0x9F,0x60,0xBF,0x40,0xFF,0x00, - 0xFF,0x70,0xFF,0x98,0xEF,0xB8,0xCF,0xF8,0xFF,0x70,0xFF,0x00,0xFF,0x00,0xFF,0x01, - 0xFF,0x00,0xFE,0x01,0xFC,0x03,0xF8,0x07,0xF0,0x0F,0xE0,0x1F,0xC0,0x3F,0xFF,0xFF, - - /* Tile 0x08 */ - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF, - 0x00,0xFF,0x01,0xFE,0x03,0xFC,0x07,0xF8,0x0F,0xF0,0x1F,0xE0,0x3F,0xC0,0xFF,0xFF, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF, - 0xFF,0x0E,0xFF,0x13,0xFD,0x17,0xF9,0x1F,0xFE,0x0F,0xE0,0x1F,0xC0,0x3F,0x80,0xFF, - 0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF, - 0xFF,0x01,0xFF,0x01,0xFD,0x03,0xF9,0x07,0xF1,0x0F,0xE1,0x1F,0xC1,0x3F,0x81,0x7F, - 0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F, - 0x01,0xFF,0x01,0xFF,0x03,0xFD,0x07,0xF9,0x0F,0xF1,0x1F,0xE1,0x3F,0xC1,0x7F,0x81, - - /* Tile 0x10 */ - 0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01, - 0x01,0xFF,0x01,0xFE,0x03,0xFC,0x77,0xF8,0xFF,0x98,0xEF,0xB8,0xCF,0xF8,0x7F,0xF0, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x0E,0xFF,0x13,0xFD,0x17,0xF9,0x1F,0xFF,0x0E, - 0x80,0x7F,0x81,0x7E,0x83,0x7C,0x87,0x78,0x8F,0x70,0x9F,0x60,0xBF,0x40,0xFF,0x7F, - 0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0xFF,0xFF, - - /* Door1 */ - - /* Tile 0x15 */ - 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF, - - /* Door2 */ - - /* Tile 0x18 */ - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF, - 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF, - 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - - /* Door3 */ - - /* Tile 0x1C */ - 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF, - 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - - /* Door4 */ - - /* Tile 0x20 */ - 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF -}; - -const unsigned char bkg_data[] = { - - /* Tile 0x00 */ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xDF,0xFF,0xEF,0xFF,0xFF,0xF7,0xFF,0xFB,0xFF,0xFD,0xFF,0xFE,0xFE,0xFF, - - /* Tile 0x08 */ - 0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7D,0xFE,0x7C,0x39, - 0xFF,0xFF,0xF7,0xFF,0xEF,0xFF,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFD, - 0xBB,0x01,0xC7,0x83,0xC7,0x83,0xC7,0x83,0xBB,0x01,0x7C,0x39,0x7D,0xFE,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F, - 0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFB,0xAF,0x77,0x27,0x8F,0xDF,0x8F,0x27,0x8F, - - /* Tile 0x10 */ - 0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFB,0xFF,0xF7,0xEF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xBF,0xFF,0xDF,0xEF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xAF,0x77,0xFF,0xFB,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF, - - /* Tile 0x18 */ - 0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7D,0xFE,0x7C,0x39, - 0xFF,0xFF,0xF7,0xFF,0xEF,0xFF,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFD, - - /* Tile 0x20 */ - 0xFF,0xFF,0xDF,0xFF,0xEF,0xFF,0xFF,0xF7,0xFF,0xFB,0xFE,0xFD,0xFD,0xFE,0xFE,0xFF, - 0xAB,0x11,0xC7,0x83,0x83,0xC7,0xC7,0x83,0xAB,0x11,0x7C,0x39,0x7D,0xFE,0xFE,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFB,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F, - 0xFB,0xFF,0xFF,0xFD,0xFE,0xFE,0xFE,0xFF,0xFE,0xFE,0xFF,0xFD,0xFB,0xFF,0xFF,0xFF, - 0xEF,0xFF,0xFF,0xDF,0x3F,0xBF,0x3F,0x7F,0x3F,0xBF,0xFF,0xDF,0xEF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFB,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFE,0xFD, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF, - - /* Tile 0x28 */ - 0xF7,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF -}; - -/* - * Image size: 0x40 x 0x40 - * Number of tiles (total - unique): 0x40 - 0x2D - */ - -const unsigned char bkg_tiles[] = { - 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC, - 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A, - 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC, - 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14, - 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC, - 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20, - 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26, - 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 -}; - -/* - * Image size: 0x10 x 0x70 - * Number of tiles (total - unique): 0x1C - 0x1C - */ - -const unsigned char earth_tiles[] = { - 0x00,0x02, - 0x04,0x06, - 0x08,0x0A, - 0x0C,0x0E, - 0x10,0x12, - 0x14,0x16, - 0x18,0x1A -}; - -/* - * Image size: 0x80 x 0x50 - * Number of tiles (total - unique): 0xA0 - 0x15 - */ - -const unsigned char frame_tiles[] = { - 0x80,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x84, - 0x85,0x86,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x8B,0x8C, - 0xFD,0x8D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8E,0x8F, - 0x82,0x8C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x85,0x90, - 0x8E,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x8D, - 0x85,0x90,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x82,0x8C, - 0xFD,0x8D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8E,0x8F, - 0x82,0x8C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x85,0x90, - 0x8E,0x91,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0x92,0x8D, - 0x93,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x94 -}; - -/* - * Image size: 0x60 x 0x30 - * Number of tiles (total - unique): 0x48 - 0x03 - */ - -const unsigned char door1_tiles[] = { - 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, - 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96, - 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97, - 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, - 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96, - 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97, - - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC -}; - -/* - * Image size: 0x60 x 0x30 - * Number of tiles (total - unique): 0x48 - 0x04 - */ - -const unsigned char door2_tiles[] = { - 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A, - 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B, - - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, -}; - -/* - * Image size: 0x60 x 0x30 - * Number of tiles (total - unique): 0x48 - 0x04 - */ - -const unsigned char door3_tiles[] = { - 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C, - 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, - 0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E, - 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C, - 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, - 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F, - - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC -}; - -/* - * Image size: 0x60 x 0x30 - * Number of tiles (total - unique): 0x48 - 0x01 - */ - -const unsigned char door4_tiles[] = { - 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, - 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96, - 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97, - 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95, - 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96, - 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0, - - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, - 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC -}; - -/* Should really be const, but sdcc doesnt yet support it. */ -const unsigned char * const film[] = { - &door1_tiles[0x0C*0], - &door2_tiles[0x0C*0], - &door3_tiles[0x0C*0], - &door4_tiles[0x0C*0], - &door1_tiles[0x0C*1], - &door2_tiles[0x0C*1], - &door3_tiles[0x0C*1], - &door4_tiles[0x0C*1], - &door1_tiles[0x0C*2], - &door2_tiles[0x0C*2], - &door3_tiles[0x0C*2], - &door4_tiles[0x0C*2], - &door1_tiles[0x0C*3], - &door2_tiles[0x0C*3], - &door3_tiles[0x0C*3], - &door4_tiles[0x0C*3], - &door1_tiles[0x0C*4], - &door2_tiles[0x0C*4], - &door3_tiles[0x0C*4], - &door4_tiles[0x0C*4], - &door1_tiles[0x0C*5], - &door2_tiles[0x0C*5], - &door3_tiles[0x0C*5], - &door4_tiles[0x0C*5], - &door1_tiles[0x0C*6] -}; - -#define NBDFRAMES 0x18 /* Nb frames for the door */ -#define NBSFRAMES 0x07 /* Nb frames for the sprite */ -#define WINSZX 0x80 /* Size of the picture in the window */ -#define WINSZY 0x50 -#define MINWINX (MAXWNDPOSX-WINSZX+1) /* Bounds of the window origin */ -#define MINWINY (MAXWNDPOSY-WINSZY+1) -#define MAXWINX MAXWNDPOSX -#define MAXWINY MAXWNDPOSY -#define FADESTEP 0x10 /* Nb steps for the fading effect */ -#define STARTFADE (0x06*FADESTEP) /* Initial value for the fading effect */ - -#define CLOSED 0x00 -#define OPENING 0x01 -#define OPENED 0x02 -#define CLOSING 0x03 - -static uint8_t time = 0; /* Global "time" value (counter) */ -uint8_t doorstate = 0; /* State of the door (OPENED, CLOSED...) */ -uint8_t doorpos = 0; /* Current position in the door animation */ -static uint8_t color = 0; /* Current color for fading effect */ -uint8_t sframe = 0; /* Current frame of the sprite */ -fixed bposx, bposy; /* Background position (fixed point) */ -fixed bspx, bspy; /* Background speed (fixed point) */ -fixed wposx, wposy; /* Window position (fixed point) */ -fixed wspx, wspy; /* Window speed (fixed point) */ -fixed sposx, sposy; /* Sprite position (fixed point) */ -fixed sspx, sspy; /* Sprite speed (fixed point) */ - -void fade(void); -void scroll(void); -void door(void); -void animate_sprite(void); -void tile_sprite(void); -void place_sprite(void); - -/* Fade the screen (off and on) */ -void fade(void) -{ - if(color == 0) - return; - switch(color) - { - case STARTFADE: - case STARTFADE-4*FADESTEP: - BGP_REG = 0xF9U; - break; - case STARTFADE-FADESTEP: - case STARTFADE-3*FADESTEP: - BGP_REG = 0xFEU; - break; - case STARTFADE-2*FADESTEP: - BGP_REG = 0xFFU; - break; - case STARTFADE-5*FADESTEP: - BGP_REG = 0xE4U; - break; - } - color--; -} - -/* Scroll the background, the window and the sprite */ -void scroll(void) -{ - /* Update background */ - bposx.w += bspx.w; - bposy.w += bspy.w; - SCX_REG = bposx.b.h; - SCY_REG = bposy.b.h; - - /* Update window */ - wposx.w += wspx.w ; - wposy.w += wspy.w ; - /* X position */ - if(wposx.b.h >= MAXWINX) { - wposx.b.h = MAXWINX; - /* Invert speed */ - wspx.w = -(int16_t)wspx.w; - } else if(wposx.b.h <= MINWINX) { - wposx.b.h = MINWINX; - /* Invert speed */ - wspx.w = -(int16_t)wspx.w; - } - WX_REG = wposx.b.h; - /* Y position */ - if(wposy.b.h >= MAXWINY) { - wposy.b.h = MAXWINY; - /* Invert speed */ - wspy.w = -(int16_t)wspy.w; - } else if(wposy.b.h <= MINWINY) { - wposy.b.h = MINWINY; - /* Invert speed */ - wspy.w = -(int16_t)wspy.w; - } - WY_REG = wposy.b.h; - - /* Update sprite */ - sposx.w += sspx.w; - sposy.w += sspy.w; - place_sprite(); -} - -/* Open and close the door */ -void door(void) -{ - if(doorstate == OPENING) { - doorpos++; - /* Draw the door in the window */ - set_win_tiles(2, 2, 12, 6, (unsigned char*)film[doorpos]); - if(doorpos == NBDFRAMES) - doorstate = OPENED; - } else if(doorstate == CLOSING) { - doorpos--; - /* Draw the door in the window */ - set_win_tiles(2, 2, 12, 6, (unsigned char*)film[doorpos]); - if(doorpos == 0) - doorstate = CLOSED; - } -} - -/* Animate sprite */ -void animate_sprite(void) -{ - if((time&0x07) == 0) { - sframe++; - if(sframe == NBSFRAMES) - sframe = 0; - tile_sprite(); - } -} - -/* Set sprite tiles */ -void tile_sprite(void) -{ - uint8_t s; - - s = sframe<<1; - set_sprite_tile(0, earth_tiles[s]); - set_sprite_tile(1, earth_tiles[s+1]); -} - -/* Place sprite */ -void place_sprite(void) -{ - move_sprite(0, sposx.b.h, sposy.b.h); - move_sprite(1, sposx.b.h+8, sposy.b.h); -} - -void main(void) -{ - uint8_t i, j; - - disable_interrupts(); - DISPLAY_OFF; - LCDC_REG = LCDCF_OFF | LCDCF_WIN9C00 | LCDCF_WINON | LCDCF_BG8800 | LCDCF_BG9800 | LCDCF_OBJ16 | LCDCF_OBJON | LCDCF_BGON; - /* - * LCD = Off - * WindowBank = 0x9C00 - * Window = On - * BG Chr = 0x8800 - * BG Bank = 0x9800 - * OBJ = 8x16 - * OBJ = On - * BG = On - */ - - doorstate = CLOSED; - - /* Set palettes */ - BGP_REG = OBP0_REG = OBP1_REG = 0xE4U; - - /* Initialize the background */ - set_bkg_data(0xFC, 0x04, std_data); - set_bkg_data(0x00, 0x2D, bkg_data); - /* - * Draw the background - * - * Width = 0x100 = 0x20 * 8 - * Height = 0x100 = 0x20 * 8 - */ - for(i = 0; i < 32; i+=8) - for(j = 0; j < 32; j+=8) - set_bkg_tiles(i, j, 8, 8, bkg_tiles); - bposx.w = 0; - SCX_REG = 0; - bposy.w = 0; - SCY_REG = 0; - bspx.w = 0xFF00; - bspy.w = 0x0080; - - /* Initialize the window */ - set_win_data(0x80, 0x21, frame_data); - /* - * Draw the frame in the window - * - * Width = 0x80 = 0x10 * 8 - * Height = 0x50 = 0x0A * 8 - */ - set_win_tiles(0, 0, 16, 10, frame_tiles); - /* - * Draw the door in the window - * - * Width = 0x60 = 0x20 * 12 - * Height = 0x30 = 0x20 * 6 - */ - set_win_tiles(2, 2, 12, 6, door1_tiles); - wposx.b.h = MAXWNDPOSX; - wposx.b.l = 0; - WX_REG = MAXWNDPOSX; - wposy.b.h = MAXWNDPOSY; - wposy.b.l = 0; - WY_REG = MAXWNDPOSY; - wspx.w = 0xFF80; - wspy.w = 0xFFC0; - - /* Initialize the sprite */ - set_sprite_data(0x00, 0x1C, earth_data); - set_sprite_prop(0, 0x00); - set_sprite_prop(1, 0x00); - sframe = 0; - sposx.w = 0x1000; - sposy.w = 0x1000; - sspx.w = 0x0040; - sspy.w = 0x0040; - tile_sprite(); - place_sprite(); - - DISPLAY_ON; - enable_interrupts(); - - while(1) { - /* Skip four VBLs (slow down animation) */ - for(i = 0; i < 4; i++) - vsync(); - time++; - fade(); - door(); - scroll(); - animate_sprite(); - i = joypad(); - if(i & J_B) { - if(i & J_UP) - bspy.w -= 0x0010; - if(i & J_DOWN) - bspy.w += 0x0010; - if(i & J_LEFT) - bspx.w -= 0x0010; - if(i & J_RIGHT) - bspx.w += 0x0010; - } else if(i & J_A) { - if(i & J_UP) - wspy.w -= 0x0010; - if(i & J_DOWN) - wspy.w += 0x0010; - if(i & J_LEFT) - wspx.w -= 0x0010; - if(i & J_RIGHT) - wspx.w += 0x0010; - } else { - if(i & J_SELECT) - color = STARTFADE; - if(i & J_START) - if(doorstate == CLOSED) { - doorstate = OPENING; - doorpos = 0; - } else if(doorstate == OPENED) { - doorstate = CLOSING; - doorpos = NBDFRAMES; - } - if(i & J_UP) - sspy.w -= 0x0010; - if(i & J_DOWN) - sspy.w += 0x0010; - if(i & J_LEFT) - sspx.w -= 0x0010; - if(i & J_RIGHT) - sspx.w += 0x0010; - } - } -} diff --git a/gbdk-lib/examples/ap/gb-dtmf/Makefile b/gbdk-lib/examples/ap/gb-dtmf/Makefile @@ -1,24 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = gb-dtmf.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -%.s: %.c - $(CC) -S -o $@ $< - -%.o: %.c - $(CC) -c -o $@ $< - -%.o: %.s - $(CC) -c -o $@ $< - -%.pocket: %.o - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *.ihx *.sym *.cdb *.adb *.asm diff --git a/gbdk-lib/examples/ap/gb-dtmf/brk_btn.c b/gbdk-lib/examples/ap/gb-dtmf/brk_btn.c @@ -1,41 +0,0 @@ -/* - - BREAK_BTN.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 8 - - This file was generated by GBTD v0.5 - -*/ - -/* Start of tile array. */ -const unsigned char break_btn[] = -{ - 0x00,0x00,0x00,0x00,0x3F,0x00,0x3F,0x00, - 0x3F,0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00, - 0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0x01,0x00,0x03,0xFC,0x03,0xFC,0x03, - 0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03, - 0x3F,0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00, - 0x3F,0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03, - 0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03, - 0x3F,0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00, - 0x3F,0x00,0x3F,0x00,0x00,0x3F,0x00,0x7F, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0x00,0xFF,0x00,0xFF, - 0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03, - 0xFC,0x03,0xFC,0x03,0x00,0xFF,0x00,0xFF -}; - -/* End of BREAK_BTN.C */ diff --git a/gbdk-lib/examples/ap/gb-dtmf/brk_btn.gbr b/gbdk-lib/examples/ap/gb-dtmf/brk_btn.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/gb-dtmf/cursor.c b/gbdk-lib/examples/ap/gb-dtmf/cursor.c @@ -1,39 +0,0 @@ -/* - - CURSOR.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Counter : None. - Tile size : 16 x 16 - Tiles : 0 to 1 - - This file was generated by GBTD v0.5 - -*/ - -/* Start of tile array. */ -const unsigned char cursor_data[] = -{ - 0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x0F, - 0x09,0x0F,0x69,0x6F,0x19,0x3F,0x59,0x7F, - 0x49,0x7F,0x49,0x7F,0x40,0x7F,0x40,0x7F, - 0x20,0x3F,0x10,0x1F,0x08,0x0F,0x0F,0x0F, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xA8,0xA8,0x54,0xFC, - 0x54,0xFC,0x54,0xFC,0x04,0xFC,0x04,0xFC, - 0x08,0xF8,0x10,0xF0,0x20,0xE0,0xE0,0xE0, - 0x00,0x00,0x06,0x06,0x09,0x09,0x09,0x0F, - 0x09,0x0F,0x69,0x6F,0x19,0x3F,0x59,0x7F, - 0x49,0x7F,0x49,0x7F,0x40,0x7F,0x40,0x7F, - 0x20,0x3F,0x10,0x1F,0x08,0x0F,0x0F,0x0F, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xA8,0xA8,0x54,0xFC, - 0x54,0xFC,0x54,0xFC,0x04,0xFC,0x04,0xFC, - 0x08,0xF8,0x10,0xF0,0x20,0xE0,0xE0,0xE0 -}; - -/* End of CURSOR.C */ diff --git a/gbdk-lib/examples/ap/gb-dtmf/cursor.gbr b/gbdk-lib/examples/ap/gb-dtmf/cursor.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/gb-dtmf/dtmf_lcd.c b/gbdk-lib/examples/ap/gb-dtmf/dtmf_lcd.c @@ -1,123 +0,0 @@ -/* - - DTMF_LCD.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Counter : None. - Tile size : 8 x 16 - Tiles : 0 to 24 - - This file was generated by GBTD v0.5 - -*/ - -/* Start of tile array. */ -const unsigned char dtmf_lcd[] = -{ - 0x3E,0x3E,0x7F,0x7F,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x63,0x63,0x00,0x00, - 0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x02,0x7F,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x63,0x03,0x3C,0x00, - 0x3C,0x00,0x63,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x7F,0x03,0x3E,0x02, - 0x3E,0x3E,0x7F,0x7F,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x63,0x03,0x3E,0x3E, - 0x3E,0x3E,0x63,0x60,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x3E,0x7F,0x7F,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x63,0x03,0x3E,0x3E, - 0x3E,0x3E,0x63,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x22,0x7F,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x3E, - 0x3E,0x3E,0x63,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x7F,0x03,0x3E,0x02, - 0x3E,0x3E,0x7F,0x7F,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x63,0x60,0x3E,0x3E, - 0x3E,0x3E,0x63,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x3E,0x7F,0x7F,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x63,0x60,0x3E,0x3E, - 0x3E,0x3E,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x3E,0x7F,0x7F,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x63,0x03,0x3E,0x00, - 0x3E,0x00,0x63,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x7F,0x03,0x3E,0x02, - 0x3E,0x3E,0x7F,0x7F,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x3E, - 0x3E,0x3E,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x3E,0x7F,0x7F,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x3E, - 0x3E,0x3E,0x63,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x3E,0x7F,0x7F,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x3E, - 0x3E,0x3E,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x63,0x3E,0x00, - 0x3E,0x20,0x7F,0x60,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x63,0x60,0x3E,0x3E, - 0x3E,0x3E,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x3E,0x7F,0x7F,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x63,0x60,0x3E,0x20, - 0x3E,0x20,0x63,0x60,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x02,0x7F,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x63,0x03,0x3E,0x3E, - 0x3E,0x3E,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x3E,0x3E, - 0x00,0x00,0x36,0x36,0x36,0x36,0x36,0x36, - 0x36,0x36,0x7F,0x7F,0x7F,0x7F,0x36,0x36, - 0x36,0x36,0x7F,0x7F,0x7F,0x7F,0x36,0x36, - 0x36,0x36,0x36,0x36,0x36,0x36,0x00,0x00, - 0x00,0x00,0x00,0x00,0x2A,0x2A,0x6B,0x6B, - 0x6B,0x6B,0x6B,0x6B,0x3E,0x3E,0x1C,0x1C, - 0x3E,0x3E,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B, - 0x2A,0x2A,0x00,0x00,0x00,0x00,0x00,0x00, - 0x3E,0x00,0x7F,0x00,0x63,0x00,0x63,0x00, - 0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00, - 0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00, - 0x63,0x00,0x63,0x00,0x7F,0x00,0x3E,0x00, - 0x3E,0x22,0x7F,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x3E, - 0x3E,0x3E,0x63,0x03,0x63,0x03,0x63,0x03, - 0x63,0x03,0x63,0x03,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x22,0x7F,0x63,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x6B,0x6B,0x2A,0x2A, - 0x2A,0x2A,0x6B,0x6B,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x63,0x3E,0x22, - 0x3E,0x22,0x7F,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x22, - 0x3E,0x22,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x3E,0x3E, - 0x3E,0x3E,0x7F,0x7F,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x63,0x60,0x3F,0x27, - 0x3F,0x27,0x63,0x63,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x3E,0x3E, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x3E, - 0x3E,0x3E,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x67,0x67,0x67,0x67,0x18,0x18,0x18,0x18, - 0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00, - 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x0C,0x0C,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, - 0x0C,0x0C,0x04,0x04,0x08,0x08,0x00,0x00, - 0x3E,0x3E,0x7E,0x7E,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x63,0x60,0x3E,0x3E, - 0x3E,0x3E,0x63,0x60,0x63,0x60,0x63,0x60, - 0x63,0x60,0x63,0x60,0x7F,0x60,0x3E,0x20 -}; - -/* End of DTMF_LCD.C */ diff --git a/gbdk-lib/examples/ap/gb-dtmf/dtmf_lcd.gbr b/gbdk-lib/examples/ap/gb-dtmf/dtmf_lcd.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/gb-dtmf/frm_lcd.c b/gbdk-lib/examples/ap/gb-dtmf/frm_lcd.c @@ -1,41 +0,0 @@ -/* - - FRAME_LCD.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 8 - - This file was generated by GBTD v0.5 - -*/ - -/* Start of tile array. */ -const unsigned char frame_lcd[] = -{ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F, - 0x00,0x1F,0x00,0x18,0x00,0x18,0x00,0x18, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, - 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8, - 0x00,0xF8,0x00,0x18,0x00,0x18,0x00,0x18, - 0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18, - 0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18, - 0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18, - 0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1F, - 0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, - 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x18,0x00,0x18,0x00,0x18,0x00,0xF8, - 0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00 -}; - -/* End of FRAME_LCD.C */ diff --git a/gbdk-lib/examples/ap/gb-dtmf/frm_lcd.gbr b/gbdk-lib/examples/ap/gb-dtmf/frm_lcd.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/gb-dtmf/gb-dtmf.c b/gbdk-lib/examples/ap/gb-dtmf/gb-dtmf.c @@ -1,715 +0,0 @@ -/* ---------------------------------------- */ -/* GB-DTMF Ver1.0 */ -/* by */ -/* Osamu Ohashi */ -/* ---------------------------------------- */ - -#include <gb/gb.h> -#include <stdint.h> -#include <stdio.h> -#include <string.h> - -/* BG data */ -#include "frm_lcd.c" /* Back ground pattern */ -#include "brk_btn.c" /* button image when broken */ -#include "prs_btn.c" /* button image when pressed */ - -#include "dtmf_lcd.c" /* LCD characters */ - -/* Sprite data */ -#include "key_num.c" /* Sprite pattern for each key pad */ -#include "cursor.c" /* cursor pattern */ - -/* - usage of BG data - file name number of BG type of matrix aount - ------------------------------------------------- - frame_lcd.c 9 8 x 8 9 - break_btn.c 9 8 x 8 9 - press_btn.c 9 8 x 8 9 - dtmf_lcd.c 25 8 x 16 50 - ------------------------------------------------ - total 77 - - - usage of OBJ data - file name number of obj type of matrix amount - -------------------------------------------------- - key_num.c 23 8 x 8 23 - cursor.c 2 16 x 16 8 - -------------------------------------------------- - total 31 -*/ - - -/* display */ -#define TITLE " GB-DTMF BY 05AMU " - -#define OFFSET 27U -#define KEY_STEP 24U /* Key matrix size as 24 x 24 */ -#define START_CURSOR_X 24U /* CURSOR position */ -#define START_CURSOR_Y 72U - -#define LCD_X 1U /* start position of X */ -#define LCD_Y 2U /* start position of Y */ -#define LCD_WIDTH 18U /* Horizontal size of LCD */ -#define LCD_HIGHT 2U /* Vertical Size of LCD */ - - -#define ON 1 -#define OFF 0 - -/* DTMF */ -#define DTMF_ON 100UL /* Tone on time */ -#define DTMF_OFF 100UL /* Tone off time */ - -#define MAX_DTMF 30 /* Maximum length of DTMF strings */ - -/* - Frequency setting -*/ -/* - We have to calculate the frequency as following formula - - DTMF has two set frequency, we have to decide Row & Column - with each digit('0','1','2'...) -*/ - -#define C1 0x94U /* 1209Hz, 1213Hz */ -#define C2 0x9EU /* 1336Hz, 1337Hz */ -#define C3 0xA7U /* 1477Hz, 1472Hz */ -#define C4 0xB0U /* 1633Hz, 1638Hz */ - -#define R1 0x44U /* 697Hz, 697Hz */ -#define R2 0x56U /* 770Hz, 770Hz */ -#define R3 0x66U /* 852Hz, 851Hz */ -#define R4 0x75U /* 941Hz, 942Hz */ - -const unsigned char row[4] = {R1,R2,R3,R4}; /* DTMF frequency strage of Row */ -const unsigned char col[4] = {C1,C2,C3,C4}; /* DTMF frequency strage of Col */ - -/* It is possible to set up initial screen by each BG data. */ -const unsigned char dtmf_tile[] = { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, - - 4, 9,10,11, 9,10,11, 9,10,11, 9,10,11, 4, 9,10,11, 9,10,11, - 4,12,13,14,12,13,14,12,13,14,12,13,14, 4,12,13,14,12,13,14, - 4,15,16,17,15,16,17,15,16,17,15,16,17, 4,15,16,17,15,16,17, - - 4, 9,10,11, 9,10,11, 9,10,11, 9,10,11, 4, 9,10,11, 9,10,11, - 4,12,13,14,12,13,14,12,13,14,12,13,14, 4,12,13,14,12,13,14, - 4,15,16,17,15,16,17,15,16,17,15,16,17, 4,15,16,17,15,16,17, - - 4, 9,10,11, 9,10,11, 9,10,11, 9,10,11, 4, 9,10,11, 9,10,11, - 4,12,13,14,12,13,14,12,13,14,12,13,14, 4,12,13,14,12,13,14, - 4,15,16,17,15,16,17,15,16,17,15,16,17, 4,15,16,17,15,16,17, - - 4, 9,10,11, 9,10,11, 9,10,11, 9,10,11, 4, 9,10,10,10,10,11, - 4,12,13,14,12,13,14,12,13,14,12,13,14, 4,12,13,13,13,13,14, - 4,15,16,17,15,16,17,15,16,17,15,16,17, 4,15,16,16,16,16,17, - - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -}; - -/* - Button image - Normal buttons are created by 3tiles x 3tiles(24pixels x 24pixels) - Dialing button is created by 6tiles x 3tiles(48pixels x 24pixels) -*/ -const unsigned char break_tile[] = { - 9,10,11, - 12,13,14, - 15,16,17 -}; - -const unsigned char dialing_break[] = { - 9,10,10,10,10,11, - 12,13,13,13,13,14, - 15,16,16,16,16,17 -}; - -const unsigned char press_tile[] = { - 18,19,20, - 21,22,23, - 24,25,26 -}; - - -const unsigned char dialing_press[] = { - 18,19,19,19,19,20, - 21,22,22,22,22,23, - 24,25,25,25,25,26 -}; - -/* - LCD image at initial & AC -*/ -const unsigned char init_disp[] = { - 59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60 -}; - -const char pad[4][6] = { /* DTMF Pad assign */ - {'1','2','3','A','%','P'}, - {'4','5','6','B','-','F'}, - {'7','8','9','C',',','?'}, - {'*','0','#','D','s','s'} -}; - -unsigned char disp_tile[MAX_DTMF * 2]; - -/* - Initialize for sound registers - ch1, ch2 are used for this routine. -*/ -void init_dial(void) -{ - - NR52_REG = 0x83U; - NR51_REG = 0x00U; - NR50_REG = 0x77U; - - NR24_REG = 0x87U; - NR22_REG = 0xffU; - NR21_REG = 0xbfU; - - NR14_REG = 0x87U; - NR12_REG = 0xffU; - NR11_REG = 0xbfU; - NR10_REG = 0x04U; -} - -/* sound engine for DTMF */ -void dialtone(uint16_t dtmf_on, uint16_t dtmf_off, char str[20]) -{ - uint8_t i = 0; - - while(str[i]){ - switch(str[i]){ - case '1': - NR13_REG = R1; - NR23_REG = C1; - break; - case '2': - NR13_REG = R1; - NR23_REG = C2; - break; - case '3': - NR13_REG = R1; - NR23_REG = C3; - break; - case 'A': - case 'a': - NR13_REG = R1; - NR23_REG = C4; - break; - case '4': - NR13_REG = R2; - NR23_REG = C1; - break; - case '5': - NR13_REG = R2; - NR23_REG = C2; - break; - case '6': - NR13_REG = R2; - NR23_REG = C3; - break; - case 'B': - case 'b': - NR13_REG = R2; - NR23_REG = C4; - break; - case '7': - NR13_REG = R3; - NR23_REG = C1; - break; - case '8': - NR13_REG = R3; - NR23_REG = C2; - break; - case '9': - NR13_REG = R3; - NR23_REG = C3; - break; - case 'C': - case 'c': - NR13_REG = R3; - NR23_REG = C4; - break; - case '*': - NR13_REG = R4; - NR23_REG = C1; - break; - case '0': - NR13_REG = R4; - NR23_REG = C2; - break; - case '#': - NR13_REG = R4; - NR23_REG = C3; - break; - case 'D': - case 'd': - NR13_REG = R4; - NR23_REG = C4; - break; - case ',': - delay(dtmf_on); /* keep on */ - delay(dtmf_off); /* keep off */ - - default: - NR51_REG = 0x00U; /* sound off */ - goto skip; - - } - NR24_REG = 0x87U; /* ch2 tips */ - NR51_REG = 0x33U; /* sound on */ - delay(dtmf_on); /* keep on */ - - NR51_REG = 0x00U; /* sound off */ - delay(dtmf_off); /* keep off */ - - skip: - i++; - } -} - - -/* Display looks like 7-SEGMENT LED */ -void disp_lcd(uint8_t len, char str[MAX_DTMF]) -{ - uint8_t i,j; - - j = len; - - i=0; - while(str[i]){ - if(str[i] >= '0'||'9' <= str[i]){ - disp_tile[i] = OFFSET + (str[i] - '0') * 2; - disp_tile[i+j] = OFFSET + (str[i] - '0') * 2 + 1; - } - switch(str[i]){ - case 'A': - disp_tile[i] = OFFSET + 10 * 2; - disp_tile[i+j] = OFFSET + 10 * 2 + 1; - break; - case 'B': - disp_tile[i] = OFFSET + 11 * 2; - disp_tile[i+j] = OFFSET + 11 * 2 + 1; - break; - case 'C': - disp_tile[i] = OFFSET + 12 * 2; - disp_tile[i+j] = OFFSET + 12 * 2 + 1; - break; - case 'D': - disp_tile[i] = OFFSET + 13 * 2; - disp_tile[i+j] = OFFSET + 13 * 2 + 1; - break; - case '#': - disp_tile[i] = OFFSET + 14 * 2; - disp_tile[i+j] = OFFSET + 14 * 2 + 1; - break; - case '*': - disp_tile[i] = OFFSET + 15 * 2; - disp_tile[i+j] = OFFSET + 15 * 2 + 1; - break; - case ' ': - disp_tile[i] = OFFSET + 16 * 2; - disp_tile[i+j] = OFFSET + 16 * 2 + 1; - break; - case 'Y': - disp_tile[i] = OFFSET + 17 * 2; - disp_tile[i+j] = OFFSET + 17 * 2 + 1; - break; - case 'M': - disp_tile[i] = OFFSET + 18 * 2; - disp_tile[i+j] = OFFSET + 18 * 2 + 1; - break; - case 'U': - disp_tile[i] = OFFSET + 19 * 2; - disp_tile[i+j] = OFFSET + 19 * 2 + 1; - break; - case 'G': - disp_tile[i] = OFFSET + 20 * 2; - disp_tile[i+j] = OFFSET + 20 * 2 + 1; - break; - case '-': - disp_tile[i] = OFFSET + 21 * 2; - disp_tile[i+j] = OFFSET + 21 * 2 + 1; - break; - case 'T': - disp_tile[i] = OFFSET + 22 * 2; - disp_tile[i+j] = OFFSET + 22 * 2 + 1; - break; - case ',': - disp_tile[i] = OFFSET + 23 * 2; - disp_tile[i+j] = OFFSET + 23 * 2 + 1; - break; - case 'F': - disp_tile[i] = OFFSET + 24 * 2; - disp_tile[i+j] = OFFSET + 24 * 2 + 1; - break; - case 'S': - disp_tile[i] = OFFSET + ('5' - '0') * 2; - disp_tile[i+j] = OFFSET + ('5' - '0') * 2 + 1; - break; - } - i++; - } -} - -/* clear display */ -void clr_disp(void) -{ - set_bkg_data(OFFSET, 50, dtmf_lcd); - set_bkg_tiles(LCD_X, LCD_Y, LCD_WIDTH, LCD_HIGHT, init_disp); -} - -/* - CAUTION: Don't display the NULL code -*/ -void disp(const char *str) -{ - uint8_t no, left_pos; - uint8_t i, start_ch, end_ch; - char work[MAX_DTMF]; - - clr_disp(); - - no = 0; - while(str[no]){ - no++; - } - - if(no >= LCD_WIDTH){ - start_ch = no - LCD_WIDTH; - end_ch = LCD_WIDTH; - } - else{ - start_ch = 0; - end_ch = no; - } - for(i = 0;i < end_ch;i++){ - work[i] = str[i+start_ch]; - } - work[end_ch] = 0x00; - - disp_lcd(end_ch, work); - - left_pos = 19 - end_ch; - set_bkg_tiles(left_pos, 2, end_ch, LCD_HIGHT, disp_tile); -} - -void press_button(uint8_t x, uint8_t y) -{ - if(x <= 3 && y <= 3){ - set_bkg_tiles(x * 3 + 1, y * 3 + 5, 3, 3, press_tile); - } - if((x == 4 || x == 5) && (y <= 2)){ - set_bkg_tiles(x * 3 + 2, y * 3 + 5, 3, 3, press_tile); - } - if((x == 4 || x == 5) && (y == 3)){ - set_bkg_tiles(14, 14, 6, 3, dialing_press); - } -} - -void break_button(uint8_t x, uint8_t y) -{ - if(x <= 3 && y <= 3){ - set_bkg_tiles(x * 3 + 1, y * 3 + 5, 3, 3, break_tile); - } - if((x == 4 || x == 5) && (y <= 2)){ - set_bkg_tiles(x * 3 + 2, y * 3 + 5, 3, 3, break_tile); - } - if((x == 4 || x == 5) && (y == 3)){ - set_bkg_tiles(14, 14, 6, 3, dialing_break); - } -} - - -void init_key(void) -{ - uint8_t key_x, key_y, i; - - /* To make numeric KeyPad */ - set_sprite_data(0, 24, key_num); - - /* key pad 1 - 3 */ - key_y = KEY_STEP + 40; - for(i = 1;i <= 3;i++){ - key_x = i * KEY_STEP; - set_sprite_tile(i, i); - move_sprite(i, key_x, key_y); - } - - /* key pad 4 - 6 */ - key_y = KEY_STEP * 2 + 40; - for(i = 4;i <= 6;i++){ - key_x = (i - 3) * KEY_STEP; - set_sprite_tile(i, i); - move_sprite(i, key_x, key_y); - } - - /* key pad 7 - 9 */ - key_y = KEY_STEP * 3 + 40; - for(i = 7;i <= 9;i++){ - key_x = (i - 6) * KEY_STEP; - set_sprite_tile(i, i); - move_sprite(i, key_x, key_y); - } - - /* key pad 'A' - 'D' */ - key_x = KEY_STEP * 4; - for(i = 0;i <= 3;i++){ - key_y = (i+1) * KEY_STEP + 40; - set_sprite_tile(i+10, i+10); - move_sprite(i+10, key_x, key_y); - } - - /* key pad '*', '0', '#' */ - set_sprite_tile(15, 15); - move_sprite(15, KEY_STEP * 1, KEY_STEP * 4 + 40U); - set_sprite_tile(0, 0); - move_sprite(0, KEY_STEP * 2, KEY_STEP * 4 + 40U); - set_sprite_tile(14, 14); - move_sprite(14, KEY_STEP * 3, KEY_STEP * 4 + 40U); - - /* func left */ - key_x = KEY_STEP * 5 + 8U; - for(i = 0;i <= 2;i++){ - key_y = (i+1) * KEY_STEP + 40; - set_sprite_tile(i+16, i+16); - move_sprite(i+16, key_x, key_y); - } - - /* func right */ - key_x = KEY_STEP * 6 + 8U; - for(i = 0;i <= 2;i++){ - key_y = (i+1) * KEY_STEP + 40; - set_sprite_tile(i+19, i+19); - move_sprite(i+19, key_x, key_y); - } - - /* dialing button */ - key_x = KEY_STEP * 5 + 20U; - key_y = KEY_STEP * 4 + 40U; - set_sprite_tile(22, 22); - move_sprite(22, key_x, key_y); -} - -void init_background(void) -{ - /* Initialize the background */ - set_bkg_data( 0, 9, frame_lcd); - set_bkg_data( 9, 9, break_btn); - set_bkg_data(18, 9, press_btn); - - set_bkg_tiles(0, 0, 20, 18, dtmf_tile); -} - -void init_cursor(void) -{ - uint8_t i; - - /* Setup the cursor data*/ - set_sprite_data(23, 8, cursor_data); - - for(i = 23;i <= 30;i++){ - set_sprite_tile(i, i); - } -} - -void move_cursor(uint8_t x, uint8_t y) -{ - move_sprite(23, x, y); - move_sprite(24, x, y+8); - move_sprite(25, x+8, y); - move_sprite(26, x+8, y+8); -} - -void main(void) -{ - uint8_t key1, key2, i, j, pos_x, pos_y, ch_pos; - uint8_t non_flick = OFF; - uint16_t on_time, off_time; - - char str[MAX_DTMF]; - char str_ms[10]; - - /* PENDING: sdcc is broken and needs this to be initalised. */ - key2 = 0; - - /* default dialling time setting */ - on_time = DTMF_ON; - off_time = DTMF_OFF; - - disable_interrupts(); - - SPRITES_8x8; /* sprites are 8x8 */ - - init_dial(); - - init_background(); - - init_key(); - - init_cursor(); - - disp(TITLE); - - SHOW_BKG; - SHOW_SPRITES; - DISPLAY_ON; - - enable_interrupts(); - - i = j = 0; - - ch_pos = 0; - - while(1) { - vsync(); - key1 = joypad(); - - if(key1 != key2){ - pos_x = i * KEY_STEP + START_CURSOR_X; - pos_y = j * KEY_STEP + START_CURSOR_Y; - move_cursor(pos_x, pos_y); - } - - if(key2 & J_A){ - if(key1 & J_A){ - /* value set for each sound reg only numeric key pad*/ - if(i <= 3 && j <= 3){ - /* frequncy register set up for DTMF */ - NR13_REG = row[i]; - NR23_REG = col[j]; - NR24_REG = 0x87U; - - /* sound output on */ - NR51_REG = 0x33U; - } - - /* '?' button */ - /* appear the title during press A button */ - if(i == 5 && j == 0 && !non_flick){ - disp(TITLE); - non_flick = ON; - } - - /* incremental button */ - /* decremental button */ - /* appear the delay during press A button */ - if(i == 5 && (j == 1 || j == 2) && !non_flick){ - sprintf(str_ms, "%u MS", on_time); - disp(str_ms); - non_flick = ON; - } - } - else{ - /* sound output off */ - NR51_REG = 0x00U; - - break_button(i, j); - - /* '?' button */ - /* incremental button */ - /* decremental button */ - /* return to normal display at release the A button */ - if(i == 5 && (j == 0 || j == 1 || j == 2)){ - non_flick = OFF; - if(ch_pos == 0) - clr_disp(); - else - disp(str); - } - } - } - else{ - if(key1 & J_A){ - /* button display handle */ - press_button(i, j); - - /* numeric key pad handling */ - if(i <= 3 && j <= 3){ - /* string length check */ - if(ch_pos < MAX_DTMF-1){ - str[ch_pos] = pad[j][i]; - ch_pos++; - str[ch_pos] = 0x00; - disp(str); - } - } - - /* ',' button */ - if(i == 4 && j == 2){ - /* string length check */ - if(ch_pos < MAX_DTMF-1){ - str[ch_pos] = pad[j][i]; - ch_pos++; - str[ch_pos] = 0x00; - disp(str); - } - } - - /* all clear button */ - if(i == 4 && j == 0){ - ch_pos = 0x00; - strcpy(str,""); - clr_disp(); - } - - /* delete button */ - if(i == 4 && j == 1){ - if(ch_pos > 0){ - ch_pos--; - str[ch_pos] = 0x00; - if(ch_pos == 0) - clr_disp(); - else - disp(str); - } - } - - /* incremental button */ - if(i == 5 && j == 1){ - if(on_time >= DTMF_ON / 2){ - on_time = on_time - 10; - off_time = off_time - 10; - } - } - - /* decremental button */ - if(i == 5 && j == 2){ - if(on_time <= DTMF_ON * 2){ - on_time = on_time + 10; - off_time = off_time + 10; - } - } - - /* dialing button */ - if((i==4 || i==5) && j==3){ - dialtone(on_time, off_time, str); - } - } - } - if(!(key1 & J_A)){ - if((key1 & J_UP) && !(key2 & J_UP) && j > 0) - j--; - else if((key1 & J_DOWN) && !(key2 & J_DOWN) && j < 3) - j++; - - if((key1 & J_LEFT) && !(key2 & J_LEFT) && i > 0) - i--; - else if((key1 & J_RIGHT) && !(key2 & J_RIGHT) && i < 5) - i++; - } - key2 = key1; - } -} diff --git a/gbdk-lib/examples/ap/gb-dtmf/key_num.c b/gbdk-lib/examples/ap/gb-dtmf/key_num.c @@ -1,69 +0,0 @@ -/* - - KEY_NUM.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 22 - - This file was generated by GBTD v0.5 - -*/ - -/* Start of tile array. */ -const unsigned char key_num[] = -{ - 0xFF,0x3C,0xFF,0x7E,0xFF,0x66,0xFF,0x66, - 0xFF,0x66,0xFF,0x66,0xFF,0x7E,0xFF,0x3C, - 0xFF,0x18,0xFF,0x38,0xFF,0x38,0xFF,0x18, - 0xFF,0x18,0xFF,0x18,0xFF,0x18,0xFF,0x18, - 0xFF,0x3C,0xFF,0x66,0xFF,0x6E,0xFF,0x1C, - 0xFF,0x38,0xFF,0x70,0xFF,0x7E,0xFF,0x7E, - 0xFF,0x7C,0xFF,0x7E,0xFF,0x06,0xFF,0x3E, - 0xFF,0x3E,0xFF,0x06,0xFF,0x7E,0xFF,0x7C, - 0xFF,0x0C,0xFF,0x1C,0xFF,0x3C,0xFF,0x6C, - 0xFF,0x6E,0xFF,0x7E,0xFF,0x0C,0xFF,0x0C, - 0xFF,0x7C,0xFF,0x7C,0xFF,0x60,0xFF,0x7C, - 0xFF,0x06,0xFF,0x06,0xFF,0x7E,0xFF,0x7C, - 0x3C,0x3C,0x62,0x62,0x60,0x60,0x7C,0x7C, - 0x7E,0x7E,0x62,0x62,0x62,0x62,0x3C,0x3C, - 0x7E,0x7E,0x06,0x06,0x06,0x06,0x0C,0x0C, - 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x3C,0x3C,0x66,0x66,0x66,0x66,0x3C,0x3C, - 0x7E,0x7E,0x66,0x66,0x66,0x66,0x3C,0x3C, - 0x3C,0x3C,0x7E,0x7E,0x46,0x46,0x46,0x46, - 0x3E,0x3E,0x06,0x06,0x46,0x46,0x3C,0x3C, - 0x3C,0x3C,0x66,0x66,0x66,0x66,0x7E,0x7E, - 0x7E,0x7E,0x66,0x66,0x66,0x66,0x66,0x66, - 0x7E,0x7E,0x7F,0x7F,0x41,0x41,0x7E,0x7E, - 0x7F,0x7F,0x41,0x41,0x7F,0x7F,0x7E,0x7E, - 0x3C,0x3C,0x7E,0x7E,0xC2,0xC2,0xC0,0xC0, - 0xC0,0xC0,0xC2,0xC2,0x7E,0x7E,0x3C,0x3C, - 0x7E,0x7E,0x7F,0x7F,0x63,0x63,0x63,0x63, - 0x63,0x63,0x63,0x63,0x7F,0x7F,0x7E,0x7E, - 0x36,0x36,0x7F,0x7F,0x7F,0x7F,0x36,0x36, - 0x7F,0x7F,0x7F,0x7F,0x36,0x36,0x36,0x36, - 0xC3,0xC3,0x66,0x66,0x3C,0x3C,0xFF,0xFF, - 0xFF,0xFF,0x3C,0x3C,0x66,0x66,0xC3,0xC3, - 0xF0,0xF0,0x90,0x90,0xF0,0xF0,0x90,0x90, - 0x97,0x97,0x08,0x08,0x08,0x08,0x07,0x07, - 0x0C,0x0C,0x1C,0x1C,0x3C,0x3C,0x7C,0x7C, - 0x7C,0x7C,0x3C,0x3C,0x1C,0x1C,0x0C,0x0C, - 0x00,0x00,0x18,0x18,0x3C,0x3C,0x3C,0x3C, - 0x1C,0x1C,0x0C,0x0C,0x38,0x38,0x00,0x00, - 0x3C,0x3C,0x42,0x42,0x02,0x02,0x1C,0x1C, - 0x18,0x18,0x00,0x00,0x18,0x18,0x18,0x18, - 0x00,0x00,0x18,0x18,0x3C,0x3C,0x7E,0x7E, - 0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, - 0x7E,0x7E,0x3C,0x3C,0x18,0x18,0x00,0x00, - 0x12,0x12,0x34,0x34,0xF1,0xF1,0xF2,0xF2, - 0xF2,0xF2,0xF1,0xF1,0x34,0x34,0x12,0x12 -}; - -/* End of KEY_NUM.C */ diff --git a/gbdk-lib/examples/ap/gb-dtmf/key_num.gbr b/gbdk-lib/examples/ap/gb-dtmf/key_num.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/gb-dtmf/prs_btn.c b/gbdk-lib/examples/ap/gb-dtmf/prs_btn.c @@ -1,41 +0,0 @@ -/* - - PRESS_BTN.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 8 - - This file was generated by GBTD v0.5 - -*/ - -/* Start of tile array. */ -const unsigned char press_btn[] = -{ - 0x00,0xFF,0x00,0xFF,0x3F,0xC0,0x3F,0xC0, - 0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0, - 0x00,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0xFE,0x00,0xFC,0xFC,0x00,0xFC,0x00, - 0xFC,0x00,0xFC,0x00,0xFC,0x00,0xFC,0x00, - 0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0, - 0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFC,0x00,0xFC,0x00,0xFC,0x00,0xFC,0x00, - 0xFC,0x00,0xFC,0x00,0xFC,0x00,0xFC,0x00, - 0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0, - 0x3F,0xC0,0x3F,0xC0,0x00,0xC0,0x00,0x80, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00, - 0xFC,0x00,0xFC,0x00,0xFC,0x00,0xFC,0x00, - 0xFC,0x00,0xFC,0x00,0x00,0x00,0x00,0x00 -}; - -/* End of PRESS_BTN.C */ diff --git a/gbdk-lib/examples/ap/gb-dtmf/prs_btn.gbr b/gbdk-lib/examples/ap/gb-dtmf/prs_btn.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/gbdecompress/Makefile b/gbdk-lib/examples/ap/gbdecompress/Makefile @@ -1,33 +0,0 @@ -# -# Simple Makefile that compiles all .c and .s files in the same folder -# - -# If you move this project you can change the directory -# to match your GBDK root directory (ex: GBDK_HOME = "C:/GBDK/" -GBDK_HOME = ../../../ - -LCC = $(GBDK_HOME)bin/lcc -msm83:ap -Wl-j -Wm-yS - -# You can uncomment the line below to turn on debug output -# LCC = $(LCC) -debug - -# You can set the name of the .pocket ROM file here -PROJECTNAME = gbdecompress - -BINS = $(PROJECTNAME).pocket -CSOURCES := $(wildcard *.c) -ASMSOURCES := $(wildcard *.s) - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link all source files in a single call to LCC -$(BINS): $(CSOURCES) $(ASMSOURCES) - $(LCC) -o $@ $(CSOURCES) $(ASMSOURCES) - -clean: - rm -f *.o *.lst *.map *.pocket *.ihx *.sym *.cdb *.adb *.asm *.noi - diff --git a/gbdk-lib/examples/ap/gbdecompress/Readme.md b/gbdk-lib/examples/ap/gbdecompress/Readme.md @@ -1,8 +0,0 @@ - -GBDecompress -============ - -Demonstrates using gbdecompress to load a compressed tile set into vram. - -The tileset was compressed during export from GBTD by checking the -GB-compress checkbox in the export settings panel. diff --git a/gbdk-lib/examples/ap/gbdecompress/main.c b/gbdk-lib/examples/ap/gbdecompress/main.c @@ -1,41 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <gb/gbdecompress.h> -#include <stdbool.h> - -// Include graphics data -#include "monalisa_tiles_comp.h" -#include "monalisa_map.h" - -// The map tiles were exported from GBTD with compression enabled -// using this updated version of GBTD: https://github.com/untoxa/GBTD_GBMB -// Size was 4096 bytes -> 3493 bytes - -void main(void) -{ - // Decompress the map tiles into the background tile vram. - // - // Notice that the number of tiles isn't specified. The amount - // of data to decompress is embedded in the compressed data. - // - // Note: For non-compressed data the equivalent would be: set_bkg_data(0, 253u, monalisa_tiles) - // - gb_decompress_bkg_data(0, monalisa_tiles_comp); // first tile, pointer to comrpessed data - - // Now set the map and turn the background on - set_bkg_tiles(0,0, monalisa_mapWidth, monalisa_mapHeight, monalisa_mapPLN0); - SHOW_BKG; - - // Loop forever - while(1) { - - // Main loop processing goes here - - // Done processing, yield CPU and wait for start of next frame - vsync(); - } -} - - - - diff --git a/gbdk-lib/examples/ap/gbdecompress/monalisa.gbm b/gbdk-lib/examples/ap/gbdecompress/monalisa.gbm Binary files differ. diff --git a/gbdk-lib/examples/ap/gbdecompress/monalisa_map.c b/gbdk-lib/examples/ap/gbdecompress/monalisa_map.c @@ -1,66 +0,0 @@ -/* - - MONALISA_MAP.C - - Map Source File. - - Info: - Section : - Bank : 0 - Map size : 20 x 18 - Tile set : monalisa_tiles.gbr - Plane count : 1 plane (8 bits) - Plane order : Planes are continues - Tile offset : 0 - Split data : No - - This file was generated by GBMB v1.8 - -*/ - -#define monalisa_mapWidth 20 -#define monalisa_mapHeight 18 -#define monalisa_mapBank 0 - -#define monalisa_map monalisa_mapPLN0 -const unsigned char monalisa_mapPLN0[] = -{ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02, - 0x03,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x06,0x07, - 0x08,0x09,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x0C,0x0D,0x0E, - 0x0F,0x10,0x11,0x12,0x00,0x00,0x00,0x00,0x00,0x00, - 0x13,0x14,0x00,0x00,0x00,0x00,0x15,0x16,0x00,0x17, - 0x18,0x19,0x1A,0x1B,0x1C,0x13,0x00,0x00,0x00,0x00, - 0x1D,0x1E,0x1F,0x20,0x21,0x00,0x22,0x23,0x24,0x25, - 0x26,0x27,0x1A,0x28,0x29,0x2A,0x2B,0x00,0x00,0x00, - 0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35, - 0x36,0x37,0x1A,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E, - 0x3F,0x40,0x41,0x41,0x42,0x43,0x44,0x45,0x46,0x47, - 0x48,0x49,0x1A,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50, - 0x51,0x52,0x41,0x53,0x54,0x55,0x56,0x57,0x58,0x59, - 0x5A,0x5B,0x1A,0x1A,0x5C,0x5D,0x5E,0x5F,0x60,0x61, - 0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x1A,0x69,0x6A, - 0x6B,0x6C,0x1A,0x1A,0x6D,0x6E,0x6F,0x70,0x71,0x72, - 0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x1A,0x7A,0x7B, - 0x7C,0x7D,0x7E,0x1A,0x7F,0x80,0x81,0x82,0x83,0x84, - 0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E, - 0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98, - 0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0x00, - 0x00,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA, - 0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0x00,0x00, - 0x00,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB, - 0xBC,0xBD,0xBE,0xBF,0xC0,0x1A,0xC1,0xC2,0xC3,0x00, - 0xC4,0xC5,0xC6,0xC7,0x1A,0x1A,0x1A,0xC8,0xC9,0xCA, - 0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4, - 0xD5,0xD6,0x1A,0x1A,0xD7,0xD8,0x1A,0xD9,0xDA,0xDB, - 0xDC,0xDD,0xDE,0xDF,0x1A,0xE0,0xE1,0xE2,0xE3,0xE4, - 0xE5,0x1A,0x1A,0xE6,0xE7,0xE8,0x1A,0xE9,0xEA,0xEB, - 0xEC,0xED,0xEE,0xEF,0xF0,0x1A,0x1A,0x1A,0xF1,0xF2, - 0x1A,0x1A,0x1A,0xF3,0xF4,0x1A,0x1A,0x1A,0xF5,0xF6, - 0xF7,0xF8,0xF9,0xFA,0xFB,0x1A,0x1A,0x1A,0x1A,0x1A, - 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0xFC -}; - -/* End of MONALISA_MAP.C */ diff --git a/gbdk-lib/examples/ap/gbdecompress/monalisa_map.h b/gbdk-lib/examples/ap/gbdecompress/monalisa_map.h @@ -1,32 +0,0 @@ -/* - - MONALISA_MAP.H - - Map Include File. - - Info: - Section : - Bank : 0 - Map size : 20 x 18 - Tile set : monalisa_tiles.gbr - Plane count : 1 plane (8 bits) - Plane order : Planes are continues - Tile offset : 0 - Split data : No - - This file was generated by GBMB v1.8 - -*/ -#ifndef __monalisa_map_h_INCLUDE -#define __monalisa_map_h_INCLUDE - -#define monalisa_mapWidth 20 -#define monalisa_mapHeight 18 -#define monalisa_mapBank 0 - -#define monalisa_map monalisa_mapPLN0 -extern const unsigned char monalisa_mapPLN0[]; - -#endif - -/* End of MONALISA_MAP.H */ diff --git a/gbdk-lib/examples/ap/gbdecompress/monalisa_tiles.gbr b/gbdk-lib/examples/ap/gbdecompress/monalisa_tiles.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/gbdecompress/monalisa_tiles_comp.c b/gbdk-lib/examples/ap/gbdecompress/monalisa_tiles_comp.c @@ -1,467 +0,0 @@ -/* - - MONALISA_TILES_COMP.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : GB-Compress. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 252 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : None. - - Convert to metatiles : No. - - This file was generated by GBTD v2.2 - -*/ - -/* Start of tile array. */ -const unsigned char monalisa_tiles_comp[] = -{ - 0x1D,0x00,0xC1,0x02,0x01,0x8B,0xE0,0xFF, - 0xC3,0x10,0x2F,0x11,0xFF,0x8B,0xD0,0xFF, - 0xC2,0x0D,0xF2,0x54,0x8C,0xF0,0xFF,0xC2, - 0x00,0x00,0xE0,0x89,0xB1,0xFF,0xE9,0x01, - 0x02,0x01,0x02,0x07,0x08,0x07,0x02,0x0F, - 0x20,0x1F,0x6A,0x3F,0x82,0x7D,0xA1,0xFE, - 0xAB,0x54,0x01,0xFE,0xAF,0x50,0xAF,0xFF, - 0x0D,0xFF,0x2F,0xFF,0x81,0x7F,0x2A,0xFF, - 0xA0,0x5F,0x0A,0xFF,0xA8,0x57,0xFF,0xFF, - 0xDD,0x02,0xFF,0xD0,0x57,0xFF,0xFF,0xFF, - 0x5D,0xFF,0x3F,0xFF,0x15,0xFF,0xE0,0xF8, - 0xDA,0xFC,0xFF,0xFE,0xDF,0x08,0xFF,0x84, - 0x60,0xFF,0xCA,0x80,0x80,0x00,0x80,0xE0, - 0xD0,0xE0,0xE0,0xF0,0xF0,0xF8,0x8B,0x50, - 0xFF,0xD8,0x01,0x00,0x01,0x00,0x1A,0x0F, - 0x00,0x1F,0x09,0x3E,0x64,0x18,0xE6,0x38, - 0x0C,0x70,0xE8,0x70,0x50,0xE0,0x1E,0xE0, - 0xC0,0x00,0x80,0x8A,0x2B,0xFF,0xC5,0xD0, - 0x2F,0x45,0x00,0x2B,0x00,0x89,0x39,0xFF, - 0xCF,0xBF,0xFF,0x1D,0xFF,0x8F,0x7F,0x61, - 0x1F,0xC3,0x3F,0x79,0x07,0xBA,0x07,0x18, - 0x07,0x85,0x97,0xFF,0xC3,0x7F,0xFF,0xFF, - 0xFF,0x83,0x8C,0xFF,0xC5,0x5F,0xFF,0xF8, - 0xFC,0xFE,0xFC,0x02,0xFE,0x8C,0x80,0xFF, - 0xC0,0x40,0x83,0xFC,0xFF,0xC6,0x80,0x40, - 0x80,0xE0,0x80,0x80,0xC0,0x84,0x71,0xFF, - 0xC9,0x00,0x00,0x00,0x90,0x00,0x10,0x00, - 0xB3,0x00,0x51,0x8A,0xC1,0xFE,0xE3,0x05, - 0x00,0x3F,0x00,0x5F,0x00,0x02,0x01,0x02, - 0x01,0x04,0x03,0x06,0x01,0x07,0x0B,0x19, - 0x07,0x1B,0x07,0x1D,0x07,0xD8,0xE0,0xF4, - 0xC0,0xD8,0xE0,0x70,0xC0,0xD8,0xE0,0xB4, - 0xC0,0x98,0xE0,0x85,0xC0,0xFF,0x84,0xA6, - 0xFE,0x83,0xA2,0xFE,0xD2,0x00,0x00,0x00, - 0xB0,0x0F,0x5A,0x05,0xBC,0x03,0x1E,0x01, - 0xBD,0x02,0x55,0x00,0xAF,0x00,0x01,0x00, - 0x83,0x7C,0xFF,0xCB,0xBF,0xFF,0x9F,0x7F, - 0x0F,0xFF,0xEF,0x1F,0xCF,0x3F,0x67,0x1F, - 0x0F,0xFF,0xFF,0xCA,0xE0,0xF1,0xC0,0xFF, - 0xE0,0xF7,0xE0,0xE5,0xFA,0xEF,0xF0,0xFD, - 0xF2,0xFE,0xF1,0xC0,0x00,0x40,0x00,0xEE, - 0x00,0x45,0x00,0xFF,0x00,0x75,0x00,0xDF, - 0x20,0xFD,0x00,0x55,0xAA,0x77,0x80,0x9D, - 0xE2,0x0E,0xF1,0xE4,0xFB,0xCA,0xF5,0xE0, - 0xFF,0x0A,0xF5,0x7D,0x82,0xBD,0x40,0x5D, - 0xA2,0xBF,0x40,0x15,0xEA,0xBF,0x40,0x1D, - 0xE2,0xBF,0x40,0xD5,0xC0,0x00,0xD5,0x00, - 0x7F,0x80,0xF7,0x00,0xD5,0x2A,0xDF,0x00, - 0xFD,0x02,0x7B,0x04,0xA8,0x00,0x54,0x00, - 0xFE,0x00,0x83,0xC8,0xFF,0xC5,0xFF,0x00, - 0xC1,0x3E,0xBB,0x44,0x83,0xF0,0xFD,0xDB, - 0xC0,0x00,0xD0,0x00,0x5C,0xA0,0xF4,0x00, - 0xFC,0x00,0xDC,0x00,0x17,0x0F,0x1D,0x07, - 0x17,0x2F,0x2D,0x17,0x4B,0x3F,0x61,0x1F, - 0x4A,0x3F,0x65,0x1F,0x83,0x3C,0xFF,0xCB, - 0x8A,0xE0,0x01,0xC0,0x94,0xEB,0xAC,0xD0, - 0x84,0xFB,0x24,0xD9,0x85,0xF0,0xFE,0xFF, - 0x40,0x00,0x10,0xE0,0x70,0x00,0x98,0xE0, - 0x30,0xC0,0x00,0x00,0x04,0x00,0x3F,0x00, - 0x6F,0x10,0xC1,0x3E,0x8D,0x70,0xBC,0x63, - 0xB0,0x41,0xAB,0x00,0x45,0x00,0xFD,0x02, - 0xFE,0x01,0x0A,0xFF,0x60,0x1F,0x2A,0xFF, - 0x8B,0x74,0xCF,0x3F,0xEF,0x1F,0x0F,0xFF, - 0xA7,0x5F,0x8F,0xFF,0x27,0xDF,0x4F,0xBF, - 0x67,0x1F,0xF0,0xFF,0xFA,0xF5,0xF8,0xFF, - 0xC2,0xF8,0xF7,0xFA,0x42,0xFF,0xF8,0xC4, - 0xFF,0x47,0xB8,0x7F,0x80,0x83,0x58,0xFF, - 0xD7,0x05,0xFA,0x2B,0xD4,0x21,0xFE,0x0A, - 0xF5,0xDD,0x22,0xF7,0x00,0x7D,0x82,0xF7, - 0x00,0x5D,0xA2,0xFB,0x04,0xD1,0x2E,0xBA, - 0x45,0x85,0x60,0xFF,0xC2,0x40,0x00,0xE0, - 0x83,0xFC,0xFF,0xD2,0x00,0xD0,0x00,0xE0, - 0xFF,0xCB,0xF4,0xA0,0xFF,0x4A,0xF5,0xA0, - 0xFF,0x2A,0xD5,0x00,0xFF,0x7A,0x85,0x83, - 0x18,0xFF,0xE4,0x5D,0xA2,0xFF,0x00,0x11, - 0xEE,0xAF,0x50,0x1D,0xE2,0xAB,0x54,0x45, - 0xBA,0xFF,0x00,0xDD,0x22,0xFA,0x05,0x00, - 0xFF,0xAA,0x55,0xC0,0x3F,0x8A,0x75,0x51, - 0xAE,0xEB,0x14,0x20,0xFF,0xAA,0x55,0x00, - 0x84,0xD0,0xFF,0xFF,0x8A,0x75,0x74,0x88, - 0x68,0x90,0x46,0xB8,0xA7,0x58,0x89,0xFE, - 0x22,0xDD,0x08,0xFF,0x20,0xDF,0x1A,0x00, - 0x3C,0x00,0xD5,0x2A,0xFB,0x04,0x51,0xAE, - 0xB8,0x47,0x02,0xFF,0xA8,0x57,0x4F,0x3F, - 0x6D,0x1F,0xCF,0x3F,0x65,0x1F,0x4F,0xBF, - 0xAD,0x5F,0x0F,0xFF,0x05,0xFF,0xBA,0xC0, - 0x94,0xC0,0xAB,0xC0,0x80,0xC0,0xA0,0xC0, - 0x80,0xC0,0xA8,0xC0,0xC6,0xE0,0xC0,0xE8, - 0x00,0x40,0x00,0x68,0x8A,0x8F,0xFD,0xC5, - 0x18,0xE0,0xF4,0x00,0x7B,0x80,0x85,0x60, - 0xFF,0xC8,0xA0,0x00,0x40,0x00,0xF2,0x08, - 0x54,0x00,0xE8,0x84,0x10,0xFE,0xC5,0x05, - 0x00,0x03,0x00,0x01,0x00,0x83,0x2C,0xFE, - 0x83,0x28,0xFE,0xCF,0xCF,0x3F,0x6F,0x1F, - 0xCF,0x3F,0xA7,0x5F,0xFA,0xFF,0xFA,0xFD, - 0xFA,0xFF,0xFC,0xFF,0x83,0xFC,0xFF,0xCB, - 0xFC,0xFF,0xFB,0xFC,0xA0,0xFF,0x8A,0x75, - 0xA0,0xFF,0x0B,0xF4,0x85,0x5C,0xFF,0xC7, - 0xFF,0x00,0x00,0xFF,0x2B,0xD4,0x01,0xFE, - 0x83,0x50,0xFF,0xC1,0xA8,0x57,0x83,0xF0, - 0xFF,0xCE,0x70,0x80,0xB0,0x40,0x10,0xE0, - 0xB0,0x40,0x18,0xE0,0xBC,0x40,0x1F,0xE0, - 0xFD,0x8E,0x41,0xFC,0xC0,0x55,0x84,0xEA, - 0xFC,0xC4,0x07,0x00,0x05,0x00,0x0F,0x84, - 0x70,0xFD,0xF2,0x55,0x00,0xC0,0x00,0x44, - 0x00,0xEF,0x00,0x55,0x00,0xFF,0x00,0x55, - 0x00,0xBF,0x00,0x5F,0x00,0x8A,0xFF,0x20, - 0xDF,0x8A,0xFF,0xA8,0x57,0x82,0xFF,0xA0, - 0xDF,0x0E,0xFF,0x10,0xFF,0x82,0xFF,0x22, - 0xDD,0x80,0xFF,0x20,0xDF,0x82,0xFF,0x08, - 0xF7,0xA0,0xFF,0x08,0xF7,0x02,0x84,0xB8, - 0xFE,0x85,0xE0,0xFE,0xC7,0x20,0xFF,0x28, - 0xD7,0xAA,0xFF,0x02,0xFD,0x83,0x6C,0xFF, - 0xD3,0x20,0xFF,0x88,0x77,0x00,0xFF,0x22, - 0xDD,0xAA,0xFF,0x00,0xFF,0x2A,0xFF,0x00, - 0xFF,0x2B,0xFF,0x20,0xDF,0x83,0xF8,0xFF, - 0x83,0xB0,0xFC,0xC2,0xFF,0xFF,0x77,0x86, - 0xC0,0xFC,0xD1,0x57,0xFF,0xC0,0xE0,0xF0, - 0xC0,0xD8,0xE0,0xD0,0xE0,0xFA,0xE0,0xCC, - 0xF0,0xEF,0xF0,0xCD,0xF0,0x83,0xA0,0xFB, - 0xCB,0x21,0x00,0x01,0x00,0xB8,0x03,0x0E, - 0x01,0x8A,0x07,0x06,0x01,0x83,0x48,0xFE, - 0xE3,0xF0,0x00,0xF0,0x00,0x80,0xF0,0x10, - 0xE0,0x1A,0xE0,0xF5,0x00,0x0B,0x00,0x05, - 0x00,0x2D,0x02,0x06,0x01,0xBC,0x03,0x5E, - 0x01,0xFC,0x03,0x5E,0x01,0x3F,0xFF,0x1F, - 0xFF,0x3F,0xFF,0x97,0x7F,0x87,0xF8,0xFF, - 0xC3,0xFE,0xFF,0xFC,0xFF,0x83,0xFC,0xFF, - 0xCB,0xFE,0xFF,0xFD,0xFF,0xFF,0xFF,0xFC, - 0xFF,0x35,0xEA,0x0F,0xF0,0x83,0x7C,0xFF, - 0xC3,0xAA,0xFF,0x80,0xFF,0x83,0x74,0xFF, - 0xC1,0x57,0xA8,0x83,0xDC,0xFE,0xC1,0x20, - 0xDF,0x87,0x68,0xFF,0x83,0x18,0xFF,0xC8, - 0x5F,0xA0,0x2F,0xD0,0x05,0xFA,0x0A,0xF5, - 0x20,0x83,0x60,0xFF,0xC4,0x00,0x55,0x00, - 0x7D,0x82,0x83,0xF0,0xFD,0x83,0x80,0xFB, - 0xC7,0x2A,0xD5,0xFF,0x00,0xFD,0x00,0x47, - 0xB8,0x83,0x00,0xFE,0xC1,0xA2,0x5D,0x83, - 0xEC,0xFD,0xC8,0xF5,0x0A,0x7A,0x05,0x50, - 0xAF,0xAA,0x55,0x80,0x84,0x98,0xFE,0xC4, - 0x2B,0xD4,0xBA,0xFF,0xD0,0x84,0xA8,0xFF, - 0xDF,0xEB,0xFF,0x01,0xFF,0xEB,0xFF,0x50, - 0xFF,0xA0,0xFF,0x0A,0xF5,0x80,0xFF,0x2A, - 0xD5,0x8A,0xFF,0x0A,0xF5,0x08,0xFF,0x2A, - 0xD5,0xA0,0xFF,0x28,0xD7,0x00,0xFF,0xA0, - 0x5F,0x83,0xFC,0xFE,0x83,0xF8,0xFE,0xC8, - 0x20,0xFF,0x02,0xFD,0xA8,0xFF,0xA0,0x5F, - 0xA2,0x84,0xE8,0xFE,0xC2,0x82,0x7D,0x8A, - 0x84,0x64,0xFF,0x83,0x60,0xFF,0xC5,0x8A, - 0x75,0x02,0xFF,0xAA,0x55,0x83,0xAC,0xFB, - 0xF2,0xFF,0xFF,0x13,0xFF,0xBF,0xFF,0x1F, - 0xFF,0x7F,0xFF,0x07,0xFF,0xE7,0xF8,0xDD, - 0xF0,0xF6,0xF8,0xD5,0xF8,0xF9,0xFE,0xFF, - 0xFC,0xFE,0xFF,0xF5,0xFF,0x83,0x00,0x55, - 0x00,0xFC,0x03,0x00,0x00,0x8B,0x00,0x07, - 0x00,0xAB,0x00,0xC0,0x00,0x7D,0x82,0xEB, - 0x14,0x07,0xF8,0x74,0x84,0x34,0xFC,0xC7, - 0xBD,0x02,0x05,0x00,0xF4,0x0B,0x5E,0x01, - 0x83,0xE0,0xFB,0xC7,0xF0,0x0F,0x78,0x07, - 0xC2,0x3F,0xE0,0x1F,0x83,0xE0,0xFE,0xCF, - 0xBF,0xFF,0x17,0xFF,0xBF,0xFF,0x5F,0xFF, - 0x7F,0xFF,0x5F,0xFF,0xAA,0xFF,0x08,0xF7, - 0x83,0x5C,0xFE,0xC3,0xAA,0xFF,0x22,0xDD, - 0x83,0x68,0xFE,0x83,0x60,0xFE,0xD0,0x8A, - 0xFF,0x80,0x7F,0x02,0xFF,0x0A,0xF5,0x00, - 0xFF,0xBA,0x45,0xAA,0xFF,0x0A,0xF5,0xA0, - 0x84,0x10,0xFD,0x83,0x0C,0xFD,0xC7,0x00, - 0xFF,0x05,0xFA,0x2E,0xD1,0x18,0xE7,0x83, - 0x00,0xFD,0x85,0x3C,0xFF,0x83,0xC4,0xFE, - 0xC3,0x08,0xFF,0xAA,0x55,0x83,0x54,0xFF, - 0x83,0xE8,0xFC,0xC1,0xA1,0xFE,0x85,0xE8, - 0xFC,0x85,0xB0,0xFC,0xE2,0x2A,0xD5,0xFA, - 0xFF,0x98,0xFF,0xFE,0xFF,0x71,0xFF,0xFF, - 0xFF,0xD8,0xFF,0xFA,0xFF,0x50,0xFF,0x88, - 0xFF,0x00,0xFF,0xEE,0xFF,0x04,0xFF,0xAA, - 0xFF,0x04,0xFF,0x3B,0xFF,0x11,0xFF,0x02, - 0x84,0xDC,0xFD,0xC1,0xA0,0x5F,0x83,0xA8, - 0xFD,0x83,0xC4,0xFD,0x83,0xF8,0xFE,0x85, - 0x60,0xFE,0x83,0xD8,0xFD,0xD1,0xA2,0x5D, - 0x10,0xEF,0x2A,0xD5,0xAA,0xFF,0x20,0xDF, - 0xA0,0xFF,0x22,0xDD,0x88,0xFF,0xBB,0x44, - 0x83,0x7C,0xFE,0x83,0x94,0xFE,0xC8,0x15, - 0xEA,0xAF,0x50,0x0D,0xF2,0xFF,0x00,0x2F, - 0x84,0x10,0xFE,0xE2,0x95,0x7F,0x3F,0xFF, - 0x9D,0x7F,0xBF,0x7F,0xC5,0x3F,0xA0,0xC0, - 0xF0,0xC0,0xEA,0xF0,0xFD,0xF0,0xF8,0xFF, - 0xFC,0xFF,0xFF,0xFF,0xFD,0xFF,0x3D,0x02, - 0x56,0x01,0xF8,0x07,0x78,0x07,0x0A,0x84, - 0x94,0xFD,0xC1,0x05,0xFF,0x83,0xF8,0xFF, - 0xCA,0xAB,0xFF,0x05,0xFF,0xAF,0xFF,0x5D, - 0xFF,0xFF,0xFF,0x55,0x88,0x88,0xFD,0xC6, - 0xFF,0xFF,0x9D,0xFF,0xFF,0xFF,0x41,0x83, - 0xEA,0xFD,0xD0,0xD5,0x80,0xFF,0x08,0xF7, - 0x82,0xFF,0x88,0xF7,0xEA,0xFF,0xC0,0xFF, - 0x00,0xFF,0x68,0x97,0x83,0x04,0xFC,0xC4, - 0x82,0xFF,0x28,0xD7,0x22,0x88,0x08,0xFC, - 0x83,0xF0,0xFF,0x83,0xBC,0xFD,0x83,0xE4, - 0xFE,0xC9,0x2A,0xD5,0x28,0xFF,0x82,0x7D, - 0x2A,0xFF,0x80,0x7F,0x85,0xF0,0xFE,0x83, - 0xC8,0xFE,0xC9,0xA8,0x57,0x14,0xEB,0xAE, - 0x51,0x00,0xFF,0x28,0xD7,0x83,0x04,0xFE, - 0xC1,0x82,0xFF,0x83,0xE0,0xFD,0x83,0xCC, - 0xFB,0xDD,0xBA,0x45,0xFF,0xFF,0xDC,0xFF, - 0xFF,0xFF,0x45,0xFF,0xFA,0xFF,0xD8,0xF7, - 0xEA,0xFF,0x40,0xFF,0xBA,0xFF,0xD8,0xFF, - 0xBB,0xFF,0x14,0xFF,0xBE,0xFF,0x00,0xFF, - 0x85,0xE0,0xFD,0xC6,0x82,0xFD,0xC0,0xFF, - 0x22,0xDD,0x81,0x84,0x4C,0xFC,0x83,0xBC, - 0xFF,0x83,0x78,0xFE,0xCD,0xAF,0x50,0x55, - 0xAA,0xAA,0x55,0x04,0xFB,0xA0,0x5F,0x01, - 0xFE,0x2F,0xD0,0x83,0x34,0xFB,0xCB,0x11, - 0xEE,0xBB,0x44,0x1D,0xE2,0x1F,0xE0,0x55, - 0xAA,0xFB,0x04,0x83,0x50,0xFB,0x83,0xF8, - 0xFF,0xC3,0xDD,0x22,0xFF,0x00,0x83,0x98, - 0xFB,0xC4,0x8F,0x7F,0xE5,0x1F,0x4B,0x84, - 0x90,0xFB,0xC1,0xA5,0x5F,0x83,0x0C,0xFD, - 0x83,0xF8,0xFE,0x83,0xF4,0xFE,0xD4,0xFE, - 0xFF,0xD4,0xFF,0x2B,0xFF,0xE8,0x17,0x50, - 0xAF,0xDE,0x01,0x7D,0x82,0x45,0x80,0x7F, - 0x80,0xD1,0x00,0xFA,0x84,0xF4,0xFC,0x85, - 0xD4,0xFB,0xD3,0xDD,0x22,0x7F,0x00,0xAB, - 0xFF,0x21,0xDF,0x0B,0xFF,0xA9,0x57,0x50, - 0xAF,0xFE,0x01,0x9C,0x23,0x56,0x01,0x89, - 0x20,0xF9,0x83,0xD0,0xFD,0xCD,0x55,0xFF, - 0xA8,0xFF,0xC0,0xFF,0xAA,0xFF,0xC2,0xFD, - 0xE0,0xFF,0xC2,0xFD,0x83,0x80,0xFD,0xCE, - 0x82,0xFF,0x2A,0xD5,0x2A,0xFF,0xFA,0x05, - 0x51,0xAE,0xAA,0x55,0x28,0xFF,0x50,0x84, - 0xB0,0xFD,0x83,0xD0,0xFD,0xCB,0x04,0xFB, - 0xFE,0x01,0x5C,0xA3,0xEB,0x14,0xA8,0xFF, - 0x02,0xFD,0x83,0xD0,0xFA,0xC8,0x55,0xAA, - 0xFD,0x00,0xDC,0x23,0x5F,0x00,0xA0,0x83, - 0xDE,0xFE,0xCE,0xFF,0xEA,0x15,0xD0,0x2F, - 0xEA,0x15,0x0C,0xF3,0xBE,0x41,0x10,0xEF, - 0x3E,0xC1,0x83,0xD4,0xFE,0xCB,0x54,0xAB, - 0xBE,0x41,0x08,0xF7,0xAA,0x55,0xE8,0xFF, - 0xC2,0xFD,0x83,0xCC,0xFF,0x83,0xC8,0xFF, - 0xC0,0x2A,0x84,0xCC,0xFB,0x83,0x68,0xFA, - 0xC2,0xAB,0x54,0x02,0x84,0x10,0xF8,0xC7, - 0x20,0xDF,0x15,0xEA,0x3B,0xC4,0x10,0xEF, - 0x83,0xA4,0xFE,0x83,0xF8,0xFD,0xC2,0xA8, - 0x57,0x02,0x84,0xC8,0xFD,0xC6,0x88,0x77, - 0x22,0xFF,0x08,0xF7,0x22,0x84,0x54,0xFD, - 0xE2,0x1A,0xFD,0x3A,0xFF,0x91,0x7F,0x3B, - 0xFF,0x1D,0xFF,0x3F,0xFF,0x94,0x7F,0x22, - 0xFF,0x09,0xF7,0xFB,0xFF,0x11,0xFF,0xFB, - 0xFF,0xD9,0xFF,0xFB,0xFF,0x51,0xFF,0x2F, - 0xFF,0x0F,0xFF,0xAF,0x88,0x08,0xFE,0x83, - 0x48,0xF8,0x83,0xD5,0xF7,0x85,0xDC,0xFB, - 0xCE,0xF9,0xFE,0xD3,0xFC,0xFA,0xFF,0xC3, - 0xFC,0xE6,0xF8,0x3C,0xC0,0x9A,0xE0,0xD4, - 0x84,0x72,0xF7,0xC4,0x7B,0x80,0x44,0x00, - 0xAA,0x86,0x90,0xF8,0x83,0x14,0xF7,0xC2, - 0xFF,0x00,0x54,0x84,0xF0,0xFF,0xC0,0xA0, - 0x86,0x07,0xF7,0xC2,0xBD,0x02,0x47,0x84, - 0x88,0xF8,0xC8,0x23,0x00,0x04,0x00,0x0B, - 0x00,0x01,0x00,0x7F,0x84,0x88,0xFF,0xD9, - 0x95,0x7F,0x0A,0xFF,0x88,0x7F,0x2E,0xFF, - 0x84,0x7F,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF, - 0x07,0xFF,0x2F,0xFF,0x8D,0x7F,0x2F,0xFF, - 0x95,0x7F,0x89,0x74,0xFE,0x83,0xF8,0xFD, - 0xC5,0x5F,0xFF,0xAE,0xFF,0x06,0xFD,0x83, - 0xE8,0xFC,0xF7,0xE8,0xFF,0x2B,0xD4,0xA7, - 0xF8,0x03,0xFC,0x39,0xFE,0x1C,0xFF,0xBA, - 0xFF,0x02,0xFD,0x55,0xAA,0xF4,0x00,0xFF, - 0x00,0x17,0x00,0xF5,0x0A,0xFD,0x00,0x7C, - 0x83,0xD6,0x01,0xF8,0x07,0x5B,0x04,0xDD, - 0x22,0xDF,0x00,0x10,0xEF,0x7A,0x85,0x5C, - 0xA3,0xBE,0x41,0x14,0xEB,0xBA,0x45,0x00, - 0xFF,0xEA,0x15,0x83,0x78,0xF9,0xC5,0x24, - 0xFB,0x0E,0xF1,0xA4,0xFB,0x83,0x90,0xFD, - 0xC1,0xFE,0x01,0x85,0x90,0xFB,0x83,0xD4, - 0xFC,0x83,0x70,0xF9,0xC9,0x22,0xDD,0xAE, - 0xFF,0x00,0xFF,0xA8,0xFF,0x22,0xDD,0x83, - 0x98,0xFC,0x83,0xD4,0xFE,0x87,0x40,0xFD, - 0xDC,0x44,0xBB,0xFF,0x00,0x1C,0xA3,0x5F, - 0x80,0x00,0xFF,0x6E,0x91,0x18,0xE7,0xA8, - 0x57,0x42,0xBF,0xEA,0x15,0xC8,0x37,0xFE, - 0x01,0x3A,0xFF,0x88,0x7F,0xBA,0x84,0x60, - 0xFC,0xC8,0x80,0x7F,0x28,0xFF,0x22,0xDD, - 0xFB,0xFF,0xF1,0x84,0xC8,0xFE,0xC5,0xAB, - 0xFF,0x01,0xFF,0x2B,0xFF,0x86,0x11,0xF7, - 0xC1,0xFF,0x7D,0x86,0xCC,0xFE,0xD1,0xF4, - 0xFF,0xFE,0xF8,0xC4,0xF8,0xE6,0xF8,0x0C, - 0xF0,0xA8,0xF0,0x34,0xC0,0x18,0xE0,0xB0, - 0x40,0x8B,0xC4,0xF6,0x83,0xE4,0xF5,0x83, - 0x60,0xFA,0xC2,0x0A,0x00,0x01,0x84,0x58, - 0xFA,0x83,0x40,0xF9,0xCB,0x2A,0xFF,0x84, - 0x7F,0x8A,0x7F,0x00,0x7F,0x6A,0xBF,0x84, - 0x7F,0x83,0x20,0xFE,0xC0,0x3F,0x84,0x20, - 0xFB,0x83,0x4C,0xF7,0xC4,0x5F,0xFF,0x3F, - 0xFF,0x9C,0x86,0x6F,0xFE,0xC9,0x55,0xFF, - 0xEF,0xFF,0xC1,0xFF,0xA2,0xFF,0x20,0xDF, - 0x83,0x7C,0xFC,0xC2,0xFA,0xFF,0xF0,0x84, - 0xD0,0xFE,0xD3,0x7E,0xFF,0x7F,0xFF,0xFD, - 0x02,0xF5,0x00,0x7F,0x80,0xF5,0x00,0x01, - 0xFE,0x9B,0x64,0x13,0xEC,0x3D,0xC0,0x83, - 0x88,0xF7,0xC7,0xFD,0x02,0x55,0x00,0x51, - 0xAE,0xCB,0x04,0x83,0xF8,0xFF,0xE4,0x01, - 0xFE,0xFF,0x00,0x5F,0xA0,0xF6,0x01,0x75, - 0x8A,0xEF,0x10,0xDD,0x22,0x55,0x00,0x04, - 0xFB,0xEB,0x14,0x40,0xBF,0xBA,0x45,0x10, - 0xEF,0xEA,0x15,0xC0,0x3F,0x5A,0x05,0x88, - 0xFF,0x28,0xD7,0x8A,0x84,0x8C,0xFA,0xC1, - 0x8A,0xF5,0x83,0x64,0xFA,0x83,0x30,0xF9, - 0x83,0xDC,0xFE,0x85,0x3C,0xFB,0xC7,0xA8, - 0x57,0xDF,0xA0,0x2D,0xD0,0x85,0xFA,0x83, - 0x5C,0xFD,0x83,0x00,0xFF,0xC9,0xA2,0x5D, - 0x54,0xAB,0x5E,0x01,0xDD,0x22,0x5F,0x00, - 0x83,0xFC,0xF6,0xC1,0x11,0xEE,0x83,0x30, - 0xFC,0xCD,0x02,0xFD,0x28,0xFF,0xA8,0x57, - 0x03,0xFF,0xE9,0x17,0xDB,0x27,0xF9,0x07, - 0x83,0x68,0xFA,0x85,0xF0,0xFE,0x83,0x8D, - 0xF5,0xD4,0xF7,0xFF,0xF8,0xFF,0xDB,0xFC, - 0xF9,0xFE,0xF1,0xFC,0xF6,0xF8,0xCC,0xF0, - 0xE6,0xF8,0xCC,0xF0,0x58,0xA0,0xF0,0x86, - 0x2A,0xF5,0x83,0xFA,0xF5,0xC2,0x00,0x00, - 0x03,0x86,0x38,0xF8,0x83,0x48,0xF9,0x83, - 0xD0,0xFD,0x83,0x40,0xFD,0x83,0xC4,0xFB, - 0xE3,0x29,0xFE,0xAA,0x55,0xD0,0x2F,0xEB, - 0x14,0xFA,0xFF,0x40,0xFF,0x8D,0xF2,0xFF, - 0x00,0x45,0xBA,0xB4,0x40,0x6D,0x82,0x18, - 0x07,0xAA,0xFF,0x3E,0xC1,0x52,0xAF,0xFF, - 0x00,0xFC,0x03,0x61,0x1F,0x85,0xD4,0xFE, - 0xC6,0x2F,0xDF,0xFF,0xFF,0xA7,0x5F,0xBF, - 0x84,0x90,0xF5,0xC3,0xFF,0xFF,0xA9,0xFE, - 0x83,0xE0,0xFE,0x85,0x20,0xFC,0x85,0x0F, - 0xF5,0xC5,0x35,0xC0,0x1D,0xE2,0x42,0xFD, - 0x83,0xB8,0xF9,0xC0,0xEA,0x83,0x18,0xF9, - 0xCE,0x00,0xC4,0x00,0x1F,0xE0,0xBD,0x40, - 0x01,0xFE,0x0F,0xF0,0x9F,0xE0,0x4D,0xF0, - 0x83,0xF0,0xF9,0xC7,0xFF,0x00,0xD5,0x00, - 0x57,0xA8,0xD5,0x00,0x83,0x24,0xF9,0xC0, - 0xA0,0x86,0xF8,0xFE,0xC8,0xE0,0xFF,0x4A, - 0xF5,0x70,0xFF,0x12,0xFD,0x02,0x84,0x5C, - 0xF8,0xC1,0x2A,0xD5,0x83,0xA0,0xFB,0x83, - 0x9C,0xFA,0x83,0x7C,0xF9,0xCB,0x00,0xFF, - 0xFB,0x04,0xD5,0x2A,0xEB,0x14,0xC4,0x3B, - 0xAF,0x50,0x83,0x08,0xF7,0xD3,0x05,0xFA, - 0xD5,0x00,0xFC,0x03,0xEA,0x15,0x80,0x7F, - 0xA9,0x57,0x57,0xAF,0xD7,0x0F,0xCF,0x3F, - 0x97,0x7F,0x85,0xB6,0xFC,0xCD,0x57,0xFF, - 0xEE,0xF8,0xC0,0xFC,0xE1,0xFE,0x4A,0xF5, - 0xE1,0xFE,0xCA,0xF5,0x83,0xB8,0xFA,0x87, - 0xE0,0xF3,0xC6,0x40,0xA0,0xEC,0x10,0x18, - 0xE7,0xAE,0x8A,0x0F,0xF5,0x83,0x20,0xF7, - 0xC0,0xB4,0x85,0xEB,0xFE,0x8A,0x6E,0xF4, - 0x85,0xE8,0xFE,0xD1,0x07,0x00,0x35,0x0A, - 0x5E,0x01,0x90,0x2F,0xEA,0x15,0xC7,0x38, - 0xB6,0x41,0x42,0xBF,0xA1,0x5F,0x83,0x28, - 0xF8,0x83,0x50,0xF9,0xC1,0x4F,0xBF,0x83, - 0x2D,0xF5,0x87,0x48,0xFC,0xC8,0xFF,0xFF, - 0xEA,0xFF,0xC1,0xFF,0xEA,0xFF,0xD0,0x83, - 0xB0,0xFA,0xC6,0xFF,0xFA,0xFF,0xD2,0xFD, - 0xA9,0xFE,0x83,0x10,0xFD,0x83,0x30,0xF9, - 0x83,0x98,0xFB,0xDA,0x28,0xD7,0xAD,0x02, - 0xD7,0x00,0x9D,0xE2,0x8B,0x74,0x25,0xFA, - 0x22,0xDD,0x03,0xFE,0x20,0xDF,0xA8,0xFF, - 0x42,0xFD,0xFA,0xFF,0x54,0xFF,0xFE,0x84, - 0x00,0xFA,0xC5,0x57,0xFF,0x44,0xBB,0x2F, - 0xD0,0x83,0xA8,0xF3,0xC1,0x05,0xFA,0x83, - 0xCC,0xF6,0xC9,0x02,0xFD,0x04,0xFB,0xAB, - 0x54,0x55,0xAA,0xBF,0x40,0x83,0x30,0xF5, - 0xCF,0x48,0xB7,0xAA,0x55,0x43,0xBF,0x29, - 0xD7,0x43,0xBF,0xD9,0x07,0x53,0xAF,0xF9, - 0x07,0x85,0xB0,0xFA,0x8B,0xC8,0xFB,0xC0, - 0x7F,0x86,0xA4,0xF7,0x83,0x80,0xF6,0xFF, - 0xF8,0xFF,0xFA,0xFF,0xF9,0xFF,0x82,0xFF, - 0x20,0xDF,0xA3,0xFF,0x09,0xF7,0xAA,0xFF, - 0x44,0xFF,0xEE,0xFF,0x44,0xFF,0x80,0xFF, - 0x0A,0xF5,0xA8,0xFF,0x82,0x7D,0x88,0xFF, - 0x02,0xFD,0x38,0xFF,0x52,0xFD,0x45,0xBA, - 0x7F,0x80,0x0D,0xF2,0xFA,0x05,0x01,0xFE, - 0xEA,0x15,0x84,0x7B,0xAA,0x55,0x6A,0x80, - 0xFF,0x00,0x5D,0xA2,0xBE,0x41,0x40,0xBF, - 0x83,0xAC,0xF5,0xC5,0x88,0x77,0x0F,0x00, - 0xFE,0x01,0x83,0x14,0xFA,0xCE,0x44,0xBB, - 0x98,0x67,0x08,0xFF,0x29,0xD7,0x0B,0xFF, - 0x42,0xBD,0x23,0xFF,0x07,0x84,0x00,0xF8, - 0x8B,0x08,0xFF,0x83,0x1F,0xF3,0xC3,0xF8, - 0xFF,0xEC,0xF3,0x89,0x20,0xF4,0xC6,0x19, - 0xFF,0x6F,0xFF,0x55,0xFF,0xFA,0x84,0xA0, - 0xF9,0xC0,0xD5,0x86,0x10,0xF7,0xC1,0xF5, - 0xFF,0x83,0x50,0xF6,0xC2,0xEA,0xFF,0x44, - 0x85,0xF4,0xFD,0x84,0x24,0xF8,0x83,0x98, - 0xF8,0xC1,0x39,0xC6,0x83,0x98,0xF7,0x83, - 0x4C,0xF9,0xC4,0xBF,0xFF,0x4F,0xFF,0xEF, - 0x84,0x90,0xFC,0xC2,0x84,0xFF,0xAE,0x85, - 0x08,0xFC,0x84,0xD0,0xFB,0xC1,0x81,0xFE, - 0x83,0xC0,0xFC,0x83,0xC0,0xF5,0xC2,0x22, - 0xDD,0x20,0x84,0x14,0xF7,0x83,0xF8,0xF4, - 0xC1,0xFF,0x00,0x83,0x3C,0xF5,0x83,0x38, - 0xF5,0xC7,0xAF,0xFF,0x8D,0x7F,0x8F,0x7F, - 0xA5,0x5F,0x85,0x84,0xFD,0x89,0x9A,0xF3, - 0xC2,0xFE,0xFF,0x9C,0x8E,0x5C,0xFF,0x85, - 0x40,0xFC,0x88,0x70,0xF2,0x84,0xF0,0xF8, - 0x83,0x80,0xF6,0xC5,0x41,0xFF,0xEB,0xFF, - 0xD1,0xFF,0x83,0xE0,0xF5,0xC4,0xE8,0xFF, - 0x40,0xFF,0xAA,0x83,0xFC,0xFF,0xC2,0xFF, - 0x06,0xFD,0x83,0x30,0xF8,0x83,0x60,0xF7, - 0xC0,0xAF,0x84,0x10,0xF7,0x8B,0x10,0xFF, - 0xC0,0xFE,0x84,0x38,0xF6,0xC7,0xE2,0xFF, - 0xE2,0xDD,0xA2,0xFF,0x08,0xF7,0x83,0x78, - 0xF5,0x83,0x90,0xF4,0xCA,0xAF,0xFF,0xD9, - 0xFF,0xFF,0xFF,0x05,0xFF,0x8F,0xFF,0x4F, - 0x84,0x80,0xF2,0x87,0x14,0xF9,0x87,0xF0, - 0xFC,0xCF,0x80,0xFF,0xAE,0xD1,0x80,0xFF, - 0x40,0xFF,0xFF,0xFF,0xC8,0xFF,0xE8,0xFF, - 0x42,0xFD,0x83,0x5C,0xF5,0x83,0x7C,0xF5, - 0x83,0xE4,0xFC,0x83,0x78,0xF5,0xCB,0xAB, - 0xFE,0x03,0xFC,0xB9,0xFE,0x0B,0xF4,0x05, - 0xFA,0xAA,0x55,0x83,0x3C,0xF8,0x83,0x04, - 0xF4,0x85,0xB0,0xF8,0xC7,0xBA,0x45,0x28, - 0xFF,0x0A,0xF5,0x5D,0xA2,0x83,0x04,0xFC, - 0xC9,0xF7,0x00,0x55,0xAA,0xFA,0x05,0x03, - 0xFF,0xA5,0x5F,0x83,0x98,0xF7,0xC3,0x3F, - 0xFF,0xD7,0x7F,0x87,0x10,0xF2,0x8D,0xA0, - 0xF2,0xC0,0x07,0x86,0x94,0xF5,0xC0,0xF4, - 0x86,0x90,0xF5,0xC0,0xFF,0x84,0xC8,0xFA, - 0xC2,0xAF,0xFF,0x05,0x86,0x40,0xFE,0x83, - 0xE0,0xFE,0xC8,0xE9,0xFF,0xFB,0xFF,0xC5, - 0xFF,0xEF,0xFF,0xCD,0x86,0x60,0xFE,0xC2, - 0x29,0xDF,0xAF,0x84,0x20,0xFE,0x85,0x4C, - 0xF1,0xC4,0xE0,0xFF,0xC8,0xF7,0xE0,0x84, - 0x2C,0xF3,0xC0,0xF4,0x84,0x28,0xFC,0x83, - 0xD4,0xF4,0x83,0xD0,0xF8,0xC1,0x14,0xEB, - 0x83,0x98,0xF8,0xC4,0x01,0xFF,0x3E,0xFF, - 0x0C,0x84,0x48,0xFE,0x85,0x90,0xF7,0xC1, - 0x80,0x7F,0x85,0x34,0xF5,0xC6,0x08,0xF7, - 0xA2,0xFF,0x01,0xFF,0x2F,0x84,0x28,0xF7, - 0xC4,0x0D,0xFF,0xBF,0xFF,0x15,0x8A,0x28, - 0xF7,0x85,0xF8,0xFD,0xC6,0xFF,0xFF,0xED, - 0xFF,0xFF,0xFF,0x50,0x86,0x88,0xFF,0x83, - 0x64,0xF5,0xC6,0x81,0xFF,0xFE,0xFF,0x01, - 0xFF,0xA2,0x84,0x4C,0xF8,0xC2,0x50,0xFF, - 0xEA,0x83,0xFC,0xFF,0xC2,0xFF,0xD0,0xFF, - 0x00 -}; - -/* End of MONALISA_TILES_COMP.C */ diff --git a/gbdk-lib/examples/ap/gbdecompress/monalisa_tiles_comp.h b/gbdk-lib/examples/ap/gbdecompress/monalisa_tiles_comp.h @@ -1,107 +0,0 @@ -/* - - MONALISA_TILES_COMP.H - - Include File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : GB-Compress. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 252 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : None. - - Convert to metatiles : No. - - This file was generated by GBTD v2.2 - -*/ - -#ifndef __monalisa_tiles_comp_h_INCLUDE -#define __monalisa_tiles_comp_h_INCLUDE - -/* Bank of tiles. */ -#define monalisa_tiles_compBank 0 - -/* Super Gameboy palette 0 */ -#define monalisa_tiles_compSGBPal0c0 0 -#define monalisa_tiles_compSGBPal0c1 0 -#define monalisa_tiles_compSGBPal0c2 18432 -#define monalisa_tiles_compSGBPal0c3 749 - -/* Super Gameboy palette 1 */ -#define monalisa_tiles_compSGBPal1c0 6076 -#define monalisa_tiles_compSGBPal1c1 8935 -#define monalisa_tiles_compSGBPal1c2 6596 -#define monalisa_tiles_compSGBPal1c3 5344 - -/* Super Gameboy palette 2 */ -#define monalisa_tiles_compSGBPal2c0 6076 -#define monalisa_tiles_compSGBPal2c1 8935 -#define monalisa_tiles_compSGBPal2c2 6596 -#define monalisa_tiles_compSGBPal2c3 5344 - -/* Super Gameboy palette 3 */ -#define monalisa_tiles_compSGBPal3c0 6076 -#define monalisa_tiles_compSGBPal3c1 8935 -#define monalisa_tiles_compSGBPal3c2 6596 -#define monalisa_tiles_compSGBPal3c3 5344 - -/* Gameboy Color palette 0 */ -#define monalisa_tiles_compCGBPal0c0 4228 -#define monalisa_tiles_compCGBPal0c1 11627 -#define monalisa_tiles_compCGBPal0c2 20083 -#define monalisa_tiles_compCGBPal0c3 30653 - -/* Gameboy Color palette 1 */ -#define monalisa_tiles_compCGBPal1c0 6076 -#define monalisa_tiles_compCGBPal1c1 8935 -#define monalisa_tiles_compCGBPal1c2 6596 -#define monalisa_tiles_compCGBPal1c3 5344 - -/* Gameboy Color palette 2 */ -#define monalisa_tiles_compCGBPal2c0 6076 -#define monalisa_tiles_compCGBPal2c1 8935 -#define monalisa_tiles_compCGBPal2c2 6596 -#define monalisa_tiles_compCGBPal2c3 5344 - -/* Gameboy Color palette 3 */ -#define monalisa_tiles_compCGBPal3c0 6076 -#define monalisa_tiles_compCGBPal3c1 8935 -#define monalisa_tiles_compCGBPal3c2 6596 -#define monalisa_tiles_compCGBPal3c3 5344 - -/* Gameboy Color palette 4 */ -#define monalisa_tiles_compCGBPal4c0 6076 -#define monalisa_tiles_compCGBPal4c1 8935 -#define monalisa_tiles_compCGBPal4c2 6596 -#define monalisa_tiles_compCGBPal4c3 5344 - -/* Gameboy Color palette 5 */ -#define monalisa_tiles_compCGBPal5c0 6076 -#define monalisa_tiles_compCGBPal5c1 8935 -#define monalisa_tiles_compCGBPal5c2 6596 -#define monalisa_tiles_compCGBPal5c3 5344 - -/* Gameboy Color palette 6 */ -#define monalisa_tiles_compCGBPal6c0 6076 -#define monalisa_tiles_compCGBPal6c1 8935 -#define monalisa_tiles_compCGBPal6c2 6596 -#define monalisa_tiles_compCGBPal6c3 5344 - -/* Gameboy Color palette 7 */ -#define monalisa_tiles_compCGBPal7c0 6076 -#define monalisa_tiles_compCGBPal7c1 8935 -#define monalisa_tiles_compCGBPal7c2 6596 -#define monalisa_tiles_compCGBPal7c3 5344 -/* Start of tile array. */ -extern const unsigned char monalisa_tiles_comp[]; - -#endif - -/* End of MONALISA_TILES_COMP.H */ diff --git a/gbdk-lib/examples/ap/irq/Makefile b/gbdk-lib/examples/ap/irq/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = irq.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/irq/irq.c b/gbdk-lib/examples/ap/irq/irq.c @@ -1,62 +0,0 @@ -#include <gb/gb.h> -#include <gbdk/console.h> -#include <stdint.h> -#include <stdio.h> -#include <string.h> - -// counters are 16-bit so we need a mutual exclusion access -unsigned int vbl_cnt, tim_cnt; - -void vbl(void) -{ - // Upon IRQ, interrupts are automatically disabled - vbl_cnt++; -} - -void tim(void) -{ - // Upon IRQ, interrupts are automatically disabled - tim_cnt++; -} - -void print_counter(void) -{ - unsigned int cnt; - - // Ensure mutual exclusion - CRITICAL { - cnt = tim_cnt; - } - - printf(" TIM %u", cnt); - gotoxy(9, posy()); - - // Ensure mutual exclusion - CRITICAL { - cnt = vbl_cnt; - } - - printf("- VBL %u\n", cnt); -} - -void main(void) -{ - // Ensure mutual exclusion - CRITICAL { - vbl_cnt = tim_cnt = 0; - add_VBL(vbl); - add_TIM(tim); - } - - // Set TMA to divide clock by 0x100 - TMA_REG = 0x00U; - // Set clock to 4096 Hertz - TAC_REG = 0x04U; - // Handle VBL and TIM interrupts - set_interrupts(VBL_IFLAG | TIM_IFLAG); - - while(1) { - print_counter(); - delay(1000UL); - } -} diff --git a/gbdk-lib/examples/ap/large_map/Makefile b/gbdk-lib/examples/ap/large_map/Makefile @@ -1,11 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -all: - $(CC) -o large_map.pocket large_map.c bigmap_map.c bigmap_tiles.c - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -clean: - rm -f *.o *.lst *.map *.pocket *.ihx *.sym *.cdb *.adb *.asm diff --git a/gbdk-lib/examples/ap/large_map/Readme.md b/gbdk-lib/examples/ap/large_map/Readme.md @@ -1,14 +0,0 @@ - -Large Map -========= - -Shows how to scroll with maps larger than 32 x 32 tiles using set_bkg_submap(). - -It fills rows and columns at the edges of the visible viewport (of the hardware -Background Map) with the desired sub-region of the large map as it scrolls. - - -Overworld Map and Tiles are by ArMM1998: -https://opengameart.org/content/gameboy-tileset -License(s): CC0 - diff --git a/gbdk-lib/examples/ap/large_map/bigmap_map.c b/gbdk-lib/examples/ap/large_map/bigmap_map.c @@ -1,1661 +0,0 @@ -/* - - BIGMAP_MAP.C - - Map Source File. - - Info: - Section : - Bank : 0 - Map size : 247 x 66 - Tile set : bigmap_tiles.gbr - Plane count : 1 plane (8 bits) - Plane order : Planes are continues - Tile offset : 0 - Split data : No - - This file was generated by GBMB v1.8 - -*/ - -#define bigmap_mapWidth 247 -#define bigmap_mapHeight 66 -#define bigmap_mapBank 0 - -#define bigmap_map bigmap_mapPLN0 -const unsigned char bigmap_mapPLN0[] = -{ - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x00,0x01,0x00,0x01,0x04,0x05,0x04,0x05,0x04,0x05, - 0x04,0x05,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x06,0x06,0x06,0x06,0x07,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x09,0x06,0x04,0x05,0x06,0x06,0x06,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x0E,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0F,0x06, - 0x0C,0x0D,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x1B,0x1C,0x1F,0x1F, - 0x1F,0x20,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x00,0x01,0x00,0x01,0x00,0x01, - 0x10,0x11,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01,0x06,0x06, - 0x06,0x06,0x04,0x05,0x04,0x05,0x00,0x01,0x00,0x01, - 0x00,0x01,0x02,0x03,0x00,0x01,0x00,0x01,0x06,0x06, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x0A,0x0B,0x06,0x06, - 0x06,0x06,0x14,0x15,0x16,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x09,0x06,0x06,0x04,0x05, - 0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x30,0x3F,0x40,0x41,0x42,0x9B,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x17,0x18,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x0C, - 0x0D,0x0C,0x0D,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x02,0x03,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x0F,0x06,0x06,0x0C,0x0D,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x02,0x03,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x39,0x4C,0x4D,0x08,0x09,0x9B,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01, - 0x02,0x03,0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01, - 0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x19,0x1A,0x06,0x06,0x06,0x06,0x19,0x19, - 0x00,0x01,0x02,0x03,0x00,0x01,0x12,0x13,0x00,0x01, - 0x02,0x03,0x06,0x06,0x02,0x03,0x00,0x01,0x1B,0x1C, - 0x1D,0x1E,0x1D,0x1E,0x1D,0x1E,0x1F,0x1F,0x1F,0x1F, - 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x20,0x0B,0x0A,0x0B, - 0x06,0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x14,0x15, - 0x21,0x22,0x16,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x23,0x21,0x22,0x24,0x25, - 0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x02,0x03,0x06,0x06,0x00,0x01,0x02,0x03, - 0x00,0x01,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x39,0x14,0x15, - 0x24,0x25,0x9B,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x26, - 0x27,0x06,0x06,0x06,0x06,0x28,0x26,0x0A,0x0B,0x12, - 0x13,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x29,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x2A,0x03,0x02,0x03,0x06,0x0C,0x0D, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0E, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x0F,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x3C,0xA5,0xA5,0xA5,0xA5,0xA6, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x00,0x01,0x10,0x11,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x1A,0x06,0x06,0x06,0x02,0x03, - 0x02,0x03,0x02,0x03,0x00,0x01,0x06,0x2B,0x06,0x06, - 0x06,0x06,0x2B,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06, - 0x02,0x03,0x2C,0x06,0x06,0x06,0x12,0x13,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x2D,0x04,0x05,0x04,0x04,0x04,0x04,0x05,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x14,0x15,0x21,0x22, - 0x21,0x22,0x21,0x22,0x21,0x22,0x21,0x22,0x24,0x25, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x06,0x06, - 0x00,0x01,0x12,0x13,0x00,0x01,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x06,0xD8,0xDB,0xDB,0xDB,0xDB,0xDC,0x06,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x0A, - 0x0B,0x17,0x18,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x27,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x06,0x06,0x2E,0x2F,0x2E,0x2F,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x30, - 0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x32,0x0C,0x0D, - 0x0C,0x0C,0x0C,0x0C,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x05,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04, - 0x05,0x06,0x06,0x04,0x05,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0xD8,0xE1, - 0xE1,0xE1,0xE1,0xE2,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x00,0x01,0x06,0x06, - 0x10,0x11,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x02,0x03,0x33,0x19, - 0x34,0x06,0x06,0x06,0x06,0x06,0x12,0x13,0x00,0x01, - 0x06,0x35,0x36,0x36,0x36,0x36,0x2E,0x06,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x01,0x1B,0x1C,0x37,0x38, - 0x1D,0x1E,0x1D,0x1E,0x1D,0x1E,0x39,0x06,0x06,0x06, - 0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x2D,0x12,0x13,0x04,0x05,0x04, - 0x05,0x06,0x06,0x06,0x06,0x05,0x05,0x0D,0x0C,0x05, - 0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x05,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x0D,0x04,0x05, - 0x0C,0x0D,0x04,0x05,0x06,0x06,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x02,0x03,0x06,0x31, - 0x06,0x06,0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x44,0x45,0x06,0xD8,0x80,0x80,0x80,0x80, - 0xB6,0x06,0x06,0x06,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x0A,0x0B,0x06,0x06,0x17,0x18,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x3A,0x26,0x3B,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x2F,0x36, - 0x36,0x36,0x36,0x2E,0x2F,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x29,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x3C,0x3D,0x3E,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31, - 0x06,0x32,0x0A,0x0B,0x0C,0x0D,0x0C,0x0D,0x06,0x06, - 0x06,0x06,0x0D,0x0D,0x05,0x04,0x0D,0x0C,0x06,0x06, - 0x06,0x04,0x05,0x0C,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0C,0x0D,0x06,0x06,0x0C, - 0x0D,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13, - 0x06,0x31,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x50, - 0x51,0x06,0xDD,0xE1,0xE1,0xE1,0xE1,0xE2,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x00,0x01,0x06,0x06,0x06,0x06,0x02,0x03,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x06,0x06, - 0x06,0x06,0x3F,0x40,0x41,0x42,0x12,0x13,0x12,0x13, - 0x00,0x01,0x02,0x03,0x06,0x35,0x36,0x36,0x36,0x36, - 0x36,0x36,0x1B,0x1C,0x1D,0x1E,0x1D,0x1E,0x1D,0x1E, - 0x43,0x06,0x06,0x06,0x06,0x06,0x44,0x45,0x06,0x06, - 0x46,0x47,0x2C,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x2D,0x02, - 0x03,0x04,0x05,0x04,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0D,0x0C,0x06,0x06,0x06,0x06,0x06,0x0C,0x0D, - 0x06,0x06,0x06,0x06,0x48,0x49,0x4A,0x4B,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x05,0x04,0x05, - 0x06,0x06,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x02,0x03,0x00,0x01,0x00,0x01,0x02,0x03,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x06,0x44,0x45,0x06,0x06,0x46, - 0x80,0x80,0x80,0x80,0xB6,0x06,0x06,0x06,0x44,0x45, - 0x02,0x03,0x00,0x01,0x02,0x03,0x00,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x4C, - 0x4D,0x4E,0x4F,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x2F,0x36,0x36,0x36,0x36,0x36,0x36,0x29, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x50,0x51,0x06,0x06,0x52,0x53,0x30, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x32,0x06,0x06,0x0C,0x0D, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x3F,0x40,0x54,0x55,0x54,0x55,0x54,0x55, - 0x55,0x56,0x57,0x58,0x59,0x55,0x55,0x54,0x55,0x54, - 0x55,0x41,0x42,0x0C,0x0D,0x0C,0x0D,0x04,0x05,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x12,0x13,0x02,0x03, - 0x02,0x03,0x02,0x03,0x12,0x13,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x50,0x51,0x06,0x06,0xDD,0xE1,0xE1,0xE1, - 0xE1,0xE2,0x06,0x06,0x31,0x50,0x51,0x06,0x06,0x0A, - 0x0B,0x06,0x06,0x0A,0x00,0x01,0x12,0x13,0x06,0x06, - 0x06,0x06,0x06,0x5A,0x19,0x19,0x19,0x19,0x1A,0x06, - 0x06,0x06,0x3F,0x40,0x54,0x55,0x5B,0x08,0x08,0x5C, - 0x02,0x03,0x02,0x03,0x02,0x03,0x06,0x06,0x06,0x35, - 0x36,0x36,0x36,0x36,0x36,0x36,0x2C,0x06,0x3F,0x40, - 0x54,0x55,0x41,0x42,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x2C,0x06,0x06,0x06, - 0x06,0x06,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x06,0x06, - 0x06,0x06,0x2D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x05,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x4C, - 0x4D,0x63,0x64,0x63,0x64,0x63,0x64,0x64,0x65,0x66, - 0x67,0x68,0x64,0x64,0x63,0x64,0x63,0x64,0x4E,0x09, - 0x06,0x06,0x04,0x05,0x0C,0x0D,0x06,0x06,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03,0x06,0x31, - 0x06,0x06,0x06,0x0A,0x0B,0x06,0xA1,0xA2,0x06,0x06, - 0x06,0x0A,0x0B,0x06,0x06,0x06,0x02,0x03,0x02,0x03, - 0x06,0x06,0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x12,0x13,0x06,0x06,0x31,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x00,0x01, - 0x00,0x01,0x02,0x03,0x02,0x03,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x00,0x01,0x12,0x13, - 0x06,0x06,0x06,0x46,0x81,0x82,0x83,0x80,0xB6,0x06, - 0x06,0x06,0x06,0x06,0x44,0x45,0x00,0x01,0x06,0x06, - 0x02,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x69,0x26,0x26,0x26,0x26,0x27,0x06,0x06,0x06,0x4C, - 0x4D,0x63,0x64,0x6A,0x08,0x08,0x09,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x2F,0x36,0x36,0x36, - 0x36,0x36,0x36,0x30,0x06,0x4C,0x4D,0x63,0x64,0x4E, - 0x4F,0x06,0x06,0x06,0x6B,0x6C,0x6D,0x6C,0x6D,0x6C, - 0x6D,0x6C,0x6D,0x30,0x06,0x06,0x31,0x06,0x06,0x6E, - 0x6F,0x70,0x71,0x72,0x73,0x06,0x06,0x06,0x06,0x32, - 0x05,0x04,0x06,0x06,0x06,0x05,0x04,0x0D,0x0C,0x05, - 0x06,0x06,0x06,0x3F,0x40,0x55,0x5B,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x75,0x76,0x77,0x78,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x79,0x41,0x42,0x0C, - 0x0D,0x06,0x04,0x05,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x02,0x03,0x06,0xAF,0xB0,0x06,0x06,0x06,0x02,0x03, - 0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x52,0x90,0x91,0x92,0x8F,0xC0,0x06,0x06,0x06,0x06, - 0x06,0x50,0x51,0x0A,0x0B,0x06,0x06,0x06,0x00,0x01, - 0x00,0x01,0x06,0x31,0x06,0x06,0x06,0x7A,0x06,0x06, - 0x5D,0x5E,0x5F,0x60,0x7B,0x7C,0x74,0x08,0x08,0x08, - 0x7D,0x7E,0x08,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62, - 0x06,0x06,0x06,0x2F,0x7F,0x36,0x36,0x36,0x1B,0x1C, - 0x43,0x06,0x0E,0x08,0x08,0x08,0x08,0x0F,0x06,0x06, - 0x06,0x2D,0x80,0x81,0x82,0x83,0x80,0x81,0x80,0x81, - 0x2C,0x06,0x06,0x06,0x31,0x06,0x84,0x85,0x86,0x87, - 0x08,0x88,0x06,0x06,0x06,0x06,0x2D,0x0D,0x0C,0x04, - 0x05,0x06,0x0D,0x0C,0x05,0x04,0x0D,0x06,0x06,0x06, - 0x4C,0x4D,0x64,0x6A,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x75,0x76,0x77,0x78,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x89,0x4E,0x4F,0x06,0x06,0x06,0x0C, - 0x0D,0x06,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03,0x02,0x03, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x12,0x13, - 0x12,0x13,0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x06,0x06,0x12,0x13,0x12,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06, - 0x06,0x06,0x02,0x03,0x02,0x03,0x06,0x31,0x06,0x06, - 0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x06,0x06, - 0x02,0x03,0x00,0x01,0x12,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x02,0x03,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x31,0x06,0x06,0x8A,0x06,0x06,0x6E,0x6F,0x70, - 0x8B,0x72,0x8C,0x07,0x08,0x08,0x08,0x8D,0x8E,0x08, - 0x09,0x6E,0x6F,0x70,0x71,0x72,0x73,0x06,0x06,0x06, - 0x06,0x06,0x06,0x36,0x36,0x29,0x06,0x06,0x06,0x14, - 0x15,0x08,0x08,0x24,0x25,0x06,0x06,0x06,0x32,0x8F, - 0x90,0x91,0x92,0x8F,0x90,0x8F,0x90,0x30,0x06,0x06, - 0x06,0x06,0x06,0x93,0x94,0x95,0x96,0x97,0x98,0x06, - 0x31,0x06,0x06,0x32,0x05,0x04,0x0C,0x0D,0x04,0x05, - 0x04,0x0D,0x0C,0x06,0x06,0x06,0x06,0x74,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x75, - 0x76,0x77,0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x79,0x41,0x42,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x00,0x01,0x00,0x01,0x06,0x06,0x06,0x06, - 0x06,0x33,0x34,0x06,0x99,0x08,0x86,0x87,0x9A,0x88, - 0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x0F,0x84,0x85, - 0x86,0x87,0x08,0x88,0x06,0x06,0x31,0x06,0x06,0x06, - 0x7F,0x36,0x39,0x06,0x06,0x06,0x06,0x9B,0x9C,0x08, - 0x39,0x06,0x06,0x06,0x06,0x9B,0x9D,0x06,0x06,0x06, - 0x06,0x9E,0x9F,0xA0,0x2C,0x06,0x06,0x06,0x06,0x06, - 0xA1,0xA2,0x36,0x36,0x2E,0x06,0x06,0x06,0x06,0x06, - 0x2D,0x0D,0x0C,0x06,0x06,0x0C,0x0D,0x0C,0x05,0x04, - 0x06,0x06,0x06,0x06,0x0E,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x75,0xA3,0xA4,0x78, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x89, - 0x4E,0x4F,0x06,0x06,0x04,0x05,0x06,0x06,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x06,0x31,0x06,0x06,0x12,0x13,0x12,0x13,0x06,0x06, - 0x31,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x06,0x06, - 0x06,0x06,0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01, - 0x12,0x13,0x12,0x13,0x31,0x06,0x06,0x06,0x12,0x13, - 0x12,0x13,0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x00,0x01, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x12,0x13, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x3A,0x3B, - 0x06,0x93,0x94,0x95,0x96,0x97,0x98,0x14,0x15,0x21, - 0x22,0x21,0x22,0x24,0x25,0x93,0x94,0x95,0x96,0x97, - 0x98,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x3C, - 0x3D,0x6C,0x6D,0xA5,0xA6,0xA7,0xA8,0x3C,0x3D,0xA9, - 0xAA,0xA5,0xA6,0xAB,0x06,0x06,0x06,0x06,0xAC,0xAD, - 0xAE,0x30,0x06,0x06,0x06,0x06,0x06,0xAF,0xB0,0x36, - 0x36,0xB1,0x06,0x31,0x06,0x06,0x06,0x32,0x04,0x05, - 0x06,0x06,0x06,0x04,0x05,0x0D,0x0C,0x04,0x06,0x06, - 0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x75,0xB2,0xB3,0x78,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06, - 0x06,0x0C,0x0D,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x31, - 0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x12,0x13,0x12, - 0x13,0x12,0x13,0x12,0x13,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x01,0x02,0x03, - 0x06,0x06,0xB4,0xB5,0x5F,0x60,0x61,0x62,0xA1,0xA2, - 0x36,0x36,0x2E,0x06,0x12,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0xA1,0xA2,0x36,0x36,0x2E,0x06,0x06,0x31, - 0x06,0x5A,0x19,0x19,0x19,0x19,0x46,0x47,0x80,0x81, - 0x80,0xB6,0xB7,0xB8,0x46,0x47,0xB9,0xBA,0x80,0xB6, - 0x9D,0x06,0x06,0x06,0x06,0x9E,0x06,0x06,0x2C,0x06, - 0x06,0x06,0x12,0x13,0x06,0x35,0x36,0x36,0x2E,0x06, - 0x06,0x06,0x06,0x06,0x2D,0x0C,0x0D,0x06,0x06,0x06, - 0x0C,0x0D,0x05,0x04,0x0C,0x06,0x06,0x06,0x07,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x23,0xBB, - 0xBC,0xA3,0xA4,0xBD,0x22,0x22,0x22,0x16,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x09,0x06,0x04,0x05,0x04, - 0x05,0x06,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x06,0x06,0x12,0x13,0x00,0x01, - 0x00,0x01,0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x12,0x13,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x06,0x06,0x31,0x06,0x12,0x13,0x31,0x06, - 0x06,0x06,0x02,0x03,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B, - 0x0A,0x0B,0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06, - 0x12,0x13,0x12,0x0A,0x0B,0x06,0x06,0x06,0x06,0xBE, - 0x6F,0x70,0x71,0x72,0x73,0xAF,0xB0,0x36,0x36,0xB1, - 0x06,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0xAF, - 0xB0,0x36,0x36,0xB1,0x06,0x06,0x06,0x06,0x69,0x26, - 0x26,0x26,0x26,0x52,0x53,0x8F,0x90,0xBF,0xC0,0xC1, - 0xC2,0x52,0x53,0xC3,0xC4,0xBF,0xC0,0xAB,0x06,0x06, - 0x06,0x06,0xAC,0x06,0x06,0x30,0x06,0x06,0x06,0x0A, - 0x0B,0x06,0x2F,0x36,0x36,0xB1,0x06,0x06,0x06,0x06, - 0x06,0x32,0x04,0x06,0x06,0x06,0x06,0x04,0x05,0x0D, - 0x0C,0x04,0x06,0x06,0x06,0x0E,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0xC5,0xC6,0xC7, - 0xC8,0x06,0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x5C,0x06,0x0C,0x0D,0x0C,0x0D,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x00,0x01,0x06,0x06,0x06,0x06,0x99,0x08,0x86,0x87, - 0x08,0x88,0x06,0x35,0x36,0x36,0x2E,0x06,0x02,0x03, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x35,0x36,0x36, - 0x2E,0x06,0x44,0x45,0x06,0x2B,0x3F,0x40,0x54,0x55, - 0x54,0x55,0x54,0x55,0x54,0x55,0xC9,0xCA,0x41,0x42, - 0x06,0x06,0x44,0x45,0x9D,0x06,0x06,0x06,0x06,0x9E, - 0x06,0x06,0x2C,0x06,0x06,0x06,0x02,0x03,0x06,0x35, - 0x36,0x36,0x2E,0x06,0x06,0x06,0x06,0x06,0x2D,0x06, - 0x06,0x06,0x06,0x06,0x0C,0x0D,0x05,0x04,0x04,0x06, - 0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x09,0x06,0x31,0x06,0x31,0x06,0x31,0x06, - 0x06,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09, - 0x06,0x06,0x04,0x05,0x06,0x06,0x06,0x06,0x00,0x01, - 0x00,0x01,0x02,0x03,0x02,0x03,0x02,0x03,0x06,0x06, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x02,0x03,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x06,0x06, - 0x00,0x01,0x12,0x13,0x06,0x06,0x06,0x06,0x0A,0x0B, - 0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06, - 0x06,0x06,0x12,0x13,0x00,0x01,0x00,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x93,0x94,0x95,0x96,0x97,0x98,0x06, - 0x2F,0x36,0x36,0xB1,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x2F,0x36,0x36,0xB1,0x06,0x50, - 0x51,0x06,0x06,0x4C,0x4D,0x63,0x64,0x63,0x64,0x63, - 0x64,0x63,0x64,0xCB,0xCC,0x4E,0x4F,0x06,0x06,0x50, - 0x51,0xAB,0x06,0x31,0x06,0x06,0xAC,0x06,0x06,0x30, - 0x06,0x06,0x06,0x06,0x06,0x06,0x2F,0x36,0x36,0xB1, - 0x06,0x06,0x06,0x06,0x06,0x32,0x06,0x06,0x06,0x06, - 0x04,0x05,0x04,0x0D,0x0C,0x04,0x06,0x06,0x06,0x07, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x5C, - 0x31,0x31,0x06,0x31,0x31,0x06,0x31,0x06,0x74,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x06,0x0C, - 0x0D,0x04,0x05,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0A,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x02,0x03,0x02,0x03,0x02, - 0x03,0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0B,0x00,0x01,0x06,0x06,0x06,0x06, - 0x06,0x35,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, - 0x2E,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x35,0x36,0x36,0x2E,0x06,0x06,0x06,0x06,0x06, - 0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x5C,0x06,0x06,0x06,0xCD,0xCE,0x06, - 0x06,0x06,0x06,0x9E,0x06,0x06,0x2C,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x2D,0x06,0x06,0x06,0x06,0x0C,0x0D,0x0C, - 0x05,0x04,0x0C,0x06,0x06,0x06,0x74,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x06,0x31, - 0x06,0x31,0x31,0x06,0x06,0x07,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x09,0x06,0x06,0x06,0x06,0x0C,0x0D, - 0x06,0x06,0x00,0x01,0x02,0x03,0x06,0x06,0x06,0x06, - 0x31,0x06,0x06,0x06,0x02,0x03,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x2F,0x36, - 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x2E,0x2F,0x2E, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x2F,0x36, - 0x36,0x2E,0x2F,0x2E,0x06,0x06,0x06,0x74,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x09,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06, - 0xAC,0x06,0x06,0x30,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x32, - 0x06,0x06,0x06,0x06,0x06,0x04,0x05,0x0D,0x06,0x06, - 0x06,0x06,0x06,0x0E,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x09,0x06,0x06,0x31,0x31,0x06,0x06, - 0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4F,0x06,0x06,0x06,0x04,0x05,0x06,0x06,0x06,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0B,0x0A,0x0A,0x0B,0x0B,0xCF,0xD0, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x7F,0x36, - 0x7F,0x36,0x36,0x36,0x36,0x36,0x2E,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x35,0x36,0x36,0x36,0x36, - 0x2E,0x06,0x06,0x06,0x07,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x9E,0x06,0x06, - 0x2C,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x31,0x06,0x06,0x06,0x2D,0x06,0x06,0x06, - 0x06,0x06,0x0C,0x0D,0x06,0x06,0x06,0x31,0x06,0x06, - 0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x79,0x41,0x42,0x06,0x06,0x31,0x06,0x3F,0x40,0x5B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x06, - 0x06,0x0C,0x0D,0x06,0x06,0x06,0x02,0x03,0x06,0x06, - 0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13,0x06,0x06, - 0x06,0x06,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13, - 0x12,0x13,0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x12,0x13,0x31,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x5A,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x36, - 0x36,0x36,0x36,0xB1,0x06,0x06,0x06,0x06,0x06,0x06, - 0x2F,0x2E,0x2F,0x36,0x36,0x36,0x36,0xB1,0x06,0x06, - 0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x09,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0xAC,0x06,0x06,0x30,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x32,0x06,0x06,0x06,0x06,0x06,0x05, - 0x04,0x05,0x04,0x06,0x06,0x31,0x06,0x07,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x89,0x4E,0x4F, - 0x06,0x06,0x06,0x06,0x4C,0x4D,0x6A,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x09,0x06,0x06,0x04,0x05,0x04, - 0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0B,0x7A,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x2F,0x36,0x36, - 0x2E,0x06,0x06,0x06,0x06,0x06,0x36,0x36,0x36,0x36, - 0x36,0x36,0x36,0x7F,0xB1,0x06,0x06,0x06,0x07,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x5C,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0xD1,0xD2,0x04,0x05,0x2C,0x06,0x06,0x06,0x44,0x45, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x2D,0x06,0x06,0x06,0x06,0x04,0x0D,0x0C,0x0D,0x0C, - 0x06,0x06,0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x79,0x54,0x55,0x54, - 0x55,0x5B,0x08,0x08,0x08,0x08,0x08,0x08,0x23,0x24, - 0x24,0x25,0x06,0x06,0x0C,0x0D,0x0C,0x0D,0x06,0x06, - 0x06,0x06,0x06,0x06,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x12,0x13,0x06,0x06,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x00,0x01,0x02,0x03, - 0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x06,0x06,0x31,0x06,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x10,0x11,0x00,0x01,0x00,0x01,0x02,0x03,0x00,0x01, - 0x00,0x01,0x12,0x13,0x00,0x01,0x02,0x03,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x8A, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x36,0x36,0x2E,0x2F,0x2E, - 0x2F,0x2E,0x2F,0x36,0x36,0x36,0x36,0x36,0x36,0xB1, - 0x06,0x06,0x06,0x06,0x06,0x0E,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x06, - 0x06,0x06,0xD3,0xD4,0xD5,0xD4,0xD5,0xD6,0xD7,0x0C, - 0x0D,0x30,0x06,0x06,0x06,0x50,0x51,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x32,0x06,0x06, - 0x06,0x06,0x0C,0x05,0x04,0x06,0x06,0x06,0x06,0x06, - 0x06,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x64,0x64,0x63,0x64,0x6A,0x08, - 0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x06,0x06,0x06, - 0x04,0x05,0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x17,0x18,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x7A,0x06,0xA1,0xA2, - 0xA1,0xA2,0xA1,0xA2,0xA1,0xA2,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x35,0x36,0x36,0x36,0x7F,0x7F,0x36, - 0x7F,0x36,0x7F,0x36,0xB1,0x06,0x06,0x06,0x3F,0x40, - 0x54,0x55,0x5B,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x04,0x05,0x04,0x05,0x39,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x9B,0x06,0x06,0x06,0x06,0x06, - 0x0D,0x0C,0x06,0x06,0x06,0x06,0x06,0x06,0x0E,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x5C,0x06,0x06,0x06,0x06,0x0C,0x0D,0x0C, - 0x0D,0x06,0x06,0x06,0x12,0x13,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x12,0x13,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x02,0x03,0x06,0x06,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x06,0x06, - 0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01, - 0x12,0x13,0x00,0x01,0x02,0x03,0x02,0x03,0x02,0x03, - 0x06,0x06,0x31,0x06,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x8A,0x06,0xAF,0xB0,0xAF,0xB0,0xAF, - 0xB0,0xAF,0xB0,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x2F,0x36,0x36,0xB1,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x4C,0x4D,0x63,0x64,0x6A, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0C,0x0D,0x0C,0x0D,0x3C,0x3D,0x6C,0x6D,0x6C, - 0x6D,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5, - 0xA5,0xA6,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x14,0x15,0x22,0x16,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x23,0x24,0x25, - 0x06,0x06,0x06,0x04,0x05,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0B,0x0A,0x0B,0x0A,0x0B, - 0x0A,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x33,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, - 0x19,0x19,0x19,0x19,0x34,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x3F,0x40,0x54,0x55,0x54,0x55, - 0x54,0x55,0x5B,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x79, - 0x41,0x42,0x06,0x06,0x04,0x05,0x04,0x05,0x3F,0x40, - 0x41,0x42,0xD8,0xD9,0xDA,0xD9,0xDA,0xD9,0xDB,0xDB, - 0xDB,0xDB,0xDB,0xDB,0xDB,0xDB,0xDB,0xDB,0xDC,0x31, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x06,0x07,0x08,0x08,0x08,0x7D, - 0x7E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x5C,0x06,0x06,0x06,0x06,0x06, - 0x0C,0x0D,0x06,0x06,0x06,0x06,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13, - 0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x06,0x06,0x31,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x10,0x11,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03,0x06,0x5A, - 0x19,0x19,0x19,0x19,0x19,0x19,0x34,0x19,0x19,0x19, - 0x19,0x5A,0x06,0x06,0x06,0x06,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x3A,0x26,0x26, - 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, - 0x26,0x3B,0x06,0x06,0x48,0x49,0x4A,0x4B,0x06,0x06, - 0x06,0x4C,0x4D,0x63,0x64,0x63,0x64,0x63,0x64,0x6A, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x89,0x4E,0x4F,0x06, - 0x06,0x0C,0x0D,0x0C,0x0D,0x4C,0x4D,0x4E,0x4F,0xDD, - 0xDE,0xDF,0xE0,0xDF,0xE0,0xE1,0xE1,0xE1,0xE1,0xE1, - 0xE1,0xE1,0xE1,0xE1,0xE1,0xE2,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x31,0x06,0x06,0x31,0x06,0x06,0x31, - 0x06,0x06,0x0E,0x08,0x08,0x08,0x8D,0x8E,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x23,0xBB,0xE3,0xBB,0xE3, - 0x24,0x25,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x17,0x18,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x69,0x26,0x26,0x26, - 0x26,0x3A,0x26,0x3B,0x26,0x26,0x26,0x26,0x69,0x06, - 0x31,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x54,0x55,0x54,0x55,0x54,0x55, - 0x54,0x55,0x54,0x55,0x54,0x55,0x54,0x55,0x54,0x55, - 0x54,0x56,0x57,0x58,0x59,0x55,0x54,0x55,0x5B,0x08, - 0x08,0x08,0x08,0x08,0x7D,0x7E,0x08,0x08,0x08,0x08, - 0x08,0x08,0x7D,0x7E,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x79,0x54,0x55,0x54,0x55, - 0x54,0x55,0x5B,0x08,0x08,0x5C,0x46,0x47,0x80,0x81, - 0x80,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, - 0x80,0x80,0xB6,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x74, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x5C,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13, - 0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x06,0x06, - 0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x06,0x5A,0x19,0x7A,0x06,0x06,0x06,0x06,0x3F,0x40, - 0x41,0x42,0x12,0x13,0x06,0x7A,0x34,0x19,0x19,0x5A, - 0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x06,0x06,0x02,0x03,0x00,0x01,0x02,0x03, - 0x00,0x63,0x64,0x63,0x64,0x63,0x64,0x63,0x64,0x63, - 0x64,0x63,0x64,0x63,0x64,0x63,0x64,0x63,0x65,0x66, - 0x67,0x68,0xE4,0x63,0x64,0x6A,0x08,0x08,0x08,0x08, - 0x08,0x8D,0x8E,0x08,0x08,0x7D,0x7E,0x08,0x08,0x8D, - 0x8E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x89,0x63,0x64,0x63,0x64,0x63,0x64,0x6A, - 0x08,0x08,0x09,0x52,0x53,0x8F,0x90,0x8F,0x90,0xBF, - 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xC0, - 0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x31,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09, - 0x06,0x06,0x06,0x06,0x06,0x04,0x05,0x0C,0x0D,0x04, - 0x05,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x69,0x26, - 0x26,0x06,0x06,0x06,0x06,0x4C,0x4D,0x4E,0x4F,0x0A, - 0x0B,0x06,0x26,0x3B,0x26,0x26,0x7A,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x0A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x75,0x76,0x77,0x78,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x8D,0x8E,0x08,0x08,0x08,0x08,0x08,0x7D, - 0x7E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x79, - 0x54,0x55,0x41,0x42,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0E,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x06,0x06, - 0x06,0x06,0x0C,0x0D,0x04,0x05,0x0C,0x0D,0x04,0x05, - 0x06,0x06,0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x5A, - 0x19,0x19,0x19,0x19,0x19,0x7A,0x06,0x06,0x3F,0x40, - 0x54,0x55,0x5B,0x08,0x08,0x5C,0x02,0x03,0x06,0x06, - 0x06,0x06,0x06,0x7A,0x06,0x06,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x06,0x06, - 0x00,0x01,0x12,0x13,0x00,0x08,0x08,0x7D,0x7E,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x75,0xA3,0xA4,0x78,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x8D,0x8E,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x89,0x63,0x64,0x4E, - 0x4F,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x31,0x06,0x06,0x06,0x06, - 0x31,0x06,0x06,0x06,0x06,0x06,0x3F,0x40,0x54,0x55, - 0x5B,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x09,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0C,0x0D,0x06,0x06,0x0C,0x0D,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x3F,0x40,0x54,0x55,0x55,0x55,0x55,0x54,0x55,0x41, - 0x42,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x69,0x26,0x26,0x26, - 0x26,0x26,0x26,0x06,0x06,0x4C,0x4D,0x63,0x64,0x6A, - 0x08,0x08,0x09,0x06,0x06,0x06,0x12,0x13,0x06,0x06, - 0x8A,0x06,0x31,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x08,0x08,0x8D,0x8E,0x08,0x08,0xE5,0xE6, - 0xE7,0xE8,0xE9,0xEA,0x08,0x08,0x08,0x08,0x08,0x75, - 0xB2,0xB3,0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x4C,0x4D,0x63,0x64,0x6A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x09,0x06,0x48,0x49,0x4A,0x4B,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x02,0x03,0x02,0x03,0x02,0x03,0x06,0x4C,0x4D,0x63, - 0x64,0x64,0x64,0x64,0x63,0x64,0x4E,0x4F,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x06,0x31, - 0x06,0x31,0x06,0x7A,0x06,0x06,0x5D,0x5E,0x5F,0x60, - 0x7B,0x7C,0x74,0x08,0x08,0x08,0x7D,0x7E,0x08,0x5C, - 0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x7A,0x06,0x06, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x08, - 0x08,0x08,0x08,0x08,0x08,0xBE,0x6F,0x70,0x71,0x72, - 0x73,0x21,0x22,0x21,0x22,0x21,0xBC,0xA3,0xA4,0xBD, - 0x22,0x16,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x7D,0x7E,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x09,0x54,0x55,0x54,0x55,0x54, - 0x55,0x54,0x55,0x54,0x55,0x54,0x55,0x54,0x55,0x54, - 0x54,0x55,0x54,0x55,0x54,0x55,0x54,0x55,0x54,0x55, - 0x5B,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x79,0x41,0x56, - 0x57,0x58,0x59,0x55,0x54,0x55,0x54,0x55,0x54,0x55, - 0x54,0x54,0x55,0x54,0x55,0x54,0x55,0x54,0x55,0x54, - 0x55,0x54,0x55,0x55,0x5B,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x5C,0x55,0x55,0x54,0x55,0x41, - 0x42,0x06,0x06,0x06,0x06,0x31,0x06,0x31,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x31,0x06,0x06, - 0x8A,0x06,0x06,0x6E,0x6F,0x70,0x8B,0x72,0x8C,0x07, - 0x08,0x08,0x08,0x8D,0x8E,0x08,0x09,0x06,0x06,0x06, - 0x02,0x03,0x06,0x06,0x8A,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x1B,0x1C,0x1D,0x1E, - 0x1F,0x20,0x99,0x08,0x86,0x87,0x9A,0x88,0x1A,0x06, - 0x06,0x06,0x06,0xC5,0xC6,0xC7,0xC8,0x06,0x0E,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x8D,0x8E, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x64,0x63,0x64,0x64,0x63,0x64,0x63,0x64, - 0x63,0x64,0x63,0x64,0x63,0x64,0x63,0x63,0x64,0x63, - 0x64,0x63,0x64,0x63,0x64,0x63,0x64,0x6A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x89,0x4E,0x65,0x66,0x67,0x68, - 0xE4,0x63,0x64,0x63,0x64,0x63,0x64,0x63,0x63,0x64, - 0x63,0x64,0x63,0x64,0x63,0x64,0x63,0x64,0x63,0x64, - 0x64,0x6A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x64,0x64,0x64,0x63,0x64,0x4E,0x4F,0x06,0x44, - 0x45,0x31,0x06,0x31,0x06,0x06,0x02,0x03,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x33,0x06,0x06, - 0x99,0x08,0x86,0x87,0x9A,0x88,0x0E,0x08,0x08,0x08, - 0x08,0x08,0x08,0x5C,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x8A,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x29,0x06,0x06,0x06,0x06,0x2A,0x93, - 0x94,0x95,0x96,0x97,0x98,0x27,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x14,0x15,0xBB,0xE3,0xBB, - 0xE3,0xBB,0xE3,0xBB,0xE3,0xEB,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x75,0x76,0x77,0x78,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x5C,0x06,0x50,0x51,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x5A,0x19, - 0x19,0x06,0x06,0x06,0x33,0x06,0x06,0x93,0x94,0x95, - 0x96,0x97,0x98,0x0E,0x08,0x08,0x7D,0x7E,0x08,0x08, - 0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x7A,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x43,0x06,0x12,0x13,0x06,0x2D,0x06,0x06,0x06,0x06, - 0x06,0x06,0x2B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x7D,0x7E,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x75,0xA3,0xA4,0x78,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x09,0x31,0x06,0x06,0x06,0x06,0x31,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x06,0x06,0x06,0x69,0x26,0x7A,0x06,0x06, - 0x06,0x7A,0x06,0x06,0xA1,0xA2,0x36,0x36,0x2E,0x06, - 0x14,0x15,0x16,0x8D,0x8E,0x08,0x08,0x25,0xA1,0xA2, - 0x36,0x36,0x2E,0x06,0x06,0x8A,0x06,0x06,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x06,0x06,0x0A, - 0x0B,0x06,0x32,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0xEC,0x06,0x06,0x06,0x06,0xD3,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x14, - 0x15,0x16,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x8D,0x8E,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x7D,0x7E,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x75,0xB2,0xB3, - 0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06, - 0x06,0x06,0x44,0x45,0x1B,0x1C,0x37,0x38,0x1D,0x1E, - 0x1D,0x1E,0x1D,0x1F,0x20,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x5A, - 0x19,0x19,0x7A,0x06,0x26,0x06,0x06,0x06,0x26,0x06, - 0x06,0xAF,0xB0,0x36,0x36,0xB1,0x06,0x06,0x06,0x0E, - 0x08,0x08,0x08,0x09,0x06,0xAF,0xB0,0x36,0x36,0xB1, - 0x06,0x06,0x8A,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x12,0x13,0x00,0x01,0x06,0x2D, - 0x19,0x19,0x19,0x19,0x34,0x06,0x06,0x06,0x06,0x06, - 0x9E,0x06,0x06,0x06,0x06,0xED,0x02,0x03,0x00,0x01, - 0x00,0x01,0x02,0x03,0x02,0x03,0x06,0x06,0x74,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x7D,0x7E,0x08,0x08,0x08,0x08,0x08,0x08,0x7D, - 0x7E,0x08,0x08,0x8D,0x8E,0x08,0x08,0x08,0x08,0x08, - 0x23,0xBB,0xE3,0xBB,0xE3,0xBB,0xE3,0xBB,0xE3,0x15, - 0xBB,0xE3,0xBB,0xE3,0xE3,0x22,0x21,0xBB,0xE3,0xE3, - 0xBB,0x22,0x21,0xE3,0xBB,0x22,0x21,0xBB,0xE3,0xBB, - 0xE3,0xBB,0xE3,0x15,0xBB,0xE3,0xBB,0xE3,0x22,0x21, - 0x22,0x21,0x22,0x21,0xBC,0xA3,0xA4,0xBD,0x22,0xE3, - 0x15,0xBB,0xE3,0xBB,0xE3,0x15,0x21,0x22,0x21,0x22, - 0x21,0x22,0x21,0x22,0x21,0x22,0x21,0x22,0x21,0x22, - 0x16,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x09,0x06,0x06,0x06,0x50, - 0x51,0x30,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x32,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x06,0x06,0x7A,0x26,0x26,0x26, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x35, - 0x36,0x36,0x2E,0x06,0x06,0x06,0x14,0xE3,0xE3,0x24, - 0x25,0x06,0x06,0x35,0x36,0x36,0x2E,0x06,0x06,0x8A, - 0x06,0x31,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0xA1,0xA2,0x00,0x01,0x00,0x01, - 0x00,0x0A,0x0B,0x0A,0x0B,0x06,0x32,0x26,0x26,0x26, - 0x26,0x3B,0x06,0x06,0x06,0x06,0x06,0xAC,0x06,0x06, - 0x06,0x06,0xEE,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x07,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x8D,0x8E, - 0x08,0x08,0x7D,0x7E,0x08,0x08,0x8D,0x8E,0x08,0x08, - 0x08,0x08,0x08,0x08,0x7D,0x7E,0x08,0x5C,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0xC5,0xC6,0xC7,0xC8,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13,0x12, - 0x13,0x06,0x06,0x12,0x13,0x06,0x06,0x74,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x79,0x41,0x42,0x06,0x06,0x06,0x2C,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x2D,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x7A,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x2F,0x2E,0x06,0x36,0x36,0x36, - 0x2E,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x35,0x36,0x36,0x2E,0x06,0x06,0x7A,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0xAF,0xB0,0x0A,0x0B,0x0A,0x0B,0x0A,0x02,0x03, - 0x00,0x01,0x06,0x2D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x9E,0x06,0x06,0x06,0x06,0xED, - 0x06,0x06,0x02,0x03,0x02,0x03,0x04,0x05,0x06,0x06, - 0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x8D, - 0x8E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x8D,0x8E,0x08,0x09,0x06,0x06,0x06,0x12,0x13, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06, - 0x0A,0x0B,0x06,0x06,0x07,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x89, - 0x4E,0x4F,0x06,0x06,0x06,0x30,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x32,0x06,0x06,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x06,0x06, - 0x8A,0x06,0x06,0x06,0x06,0x44,0x45,0x06,0x06,0x35, - 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x2E,0x06,0x06, - 0x06,0x06,0x06,0x06,0x35,0x36,0x36,0x36,0x36,0x36, - 0x36,0x2E,0x06,0x8A,0x06,0x06,0x00,0x01,0x00,0x01, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x06,0x06,0x0A,0x0B,0x06, - 0x32,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0xAC,0x06,0x06,0x06,0x06,0xEE,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0C,0x0D,0x06,0x06,0x06,0x06,0x07, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x23,0x21,0x22,0x22, - 0x24,0x25,0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x00, - 0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x06, - 0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x4F,0x06, - 0x06,0x06,0x2C,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x9B,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x8A,0x06,0x31, - 0x06,0x06,0x50,0x51,0x06,0x06,0x2F,0x2E,0x2E,0x06, - 0x06,0x2F,0x36,0x36,0x36,0x36,0x2E,0x06,0x06,0x06, - 0x06,0x06,0x2F,0x36,0x36,0x36,0x36,0x36,0xB1,0x06, - 0x8A,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x06,0x06,0x02,0x03,0x06,0x2D,0x12,0x13, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x9D,0x06, - 0x06,0x06,0x06,0xCD,0x06,0x06,0x04,0x05,0x04,0x05, - 0x04,0x05,0x06,0x06,0x06,0x06,0x0E,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x5C,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x00,0x01,0x06,0x06,0x12,0x13,0x06,0x06, - 0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x31,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06, - 0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06, - 0x31,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B, - 0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x07,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x4F,0x06,0x06,0x06,0x30, - 0x06,0x06,0x6B,0x6C,0x6D,0x6C,0x6D,0x6C,0x6D,0xA6, - 0x06,0x06,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x06,0x06,0x33,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x36,0x36,0x36,0x2E,0x06,0x06,0x06,0x06,0x2F,0x36, - 0x2F,0x36,0x36,0x36,0x2E,0x06,0x06,0x7A,0x06,0x06, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x06, - 0x06,0x06,0x06,0x06,0x32,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0xAB,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x06, - 0x06,0x06,0x06,0x14,0x15,0x16,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x09,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05, - 0x04,0x05,0x04,0x05,0x04,0x04,0x06,0x06,0x05,0x04, - 0x0C,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06, - 0x06,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01,0x00, - 0x01,0x00,0x01,0x06,0x06,0x0E,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x4F,0x06,0x06,0x06,0x2C,0x06,0x06,0x2D, - 0x80,0x81,0x82,0x83,0x80,0x81,0xDC,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x7A,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x31, - 0x06,0x06,0x06,0x06,0x12,0x13,0x35,0x36,0x36,0x2E, - 0x06,0x12,0x13,0x06,0x06,0x06,0x2F,0x36,0x36,0x36, - 0x36,0xB1,0x06,0x06,0x8A,0x06,0x31,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x02,0x03,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x06,0x06,0x06,0x06, - 0x06,0x9B,0x00,0x01,0x12,0x13,0x06,0x06,0x06,0xCD, - 0xEF,0xF0,0xCE,0x06,0x06,0x06,0x04,0x05,0x04,0x05, - 0x12,0x13,0x04,0x05,0x04,0x05,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0F,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x00,0x01,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x06,0x06,0x0D,0x0C,0x0D,0x0C, - 0x0D,0x0C,0x06,0x06,0x06,0x0D,0x0C,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x02,0x03,0x02,0x03, - 0x06,0x06,0x14,0x15,0x16,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x4F, - 0x06,0x06,0x06,0x30,0x06,0x06,0x32,0x8F,0x90,0x91, - 0x92,0x8F,0x8F,0x90,0x06,0x06,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x06,0x06,0x8A,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x2F,0x36,0x36,0xB1,0x06,0x0A,0x0B, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x7A,0x06,0x06,0x00,0x01,0x00,0x01,0x02,0x03, - 0x06,0x06,0x00,0x01,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x6C,0x6D,0x6C,0x6D,0xA5,0xA6,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0C,0x0D,0x0C,0x0D,0x0A,0x0B,0x0C, - 0x0D,0x0C,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x14, - 0x15,0x21,0x22,0x16,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x23,0x21,0x22,0x24,0x25,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x05,0x04,0x05,0x04,0x04,0x05,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x05,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x02, - 0x03,0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x4F,0x06,0x06,0x06, - 0x2C,0x06,0x06,0x32,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x7A,0x06,0xA1,0xA2,0xA1, - 0xA2,0xA1,0xA2,0xA1,0xA2,0x06,0x06,0x06,0x02,0x03, - 0x35,0x36,0x36,0x2E,0x06,0x02,0x03,0x06,0xA1,0xA2, - 0xA1,0xA2,0xA1,0xA2,0xA1,0xA2,0x06,0x06,0x8A,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x80,0x81,0x80,0x81,0x80,0xB6,0x00,0x01,0x00,0x01, - 0x12,0x13,0x12,0x13,0x12,0x13,0x04,0x05,0x04,0x05, - 0x04,0x05,0x12,0x13,0x02,0x03,0x04,0x05,0x04,0x05, - 0x04,0x05,0x06,0x06,0x44,0x45,0x12,0x13,0x06,0x06, - 0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0F,0x12,0x13, - 0x12,0x13,0x00,0x01,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x0C,0x0D,0x04,0x0C,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x12,0x13,0x0C,0x0D,0x04,0x04,0x05,0x04,0x05, - 0x12,0x13,0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x14,0x15, - 0x21,0x22,0x16,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x4F,0x06,0x06,0x06,0x30,0x06,0x06, - 0x32,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x06,0x06,0x8A,0x06,0xAF,0xB0,0xAF,0xB0,0xAF,0xB0, - 0xAF,0xB0,0x06,0x06,0x06,0x06,0x19,0x06,0x06,0x06, - 0x06,0x06,0x19,0x06,0x06,0xAF,0xB0,0xAF,0xB0,0xAF, - 0xB0,0xAF,0xB0,0x06,0x06,0x7A,0x06,0x06,0x00,0x01, - 0x00,0x01,0x12,0x13,0x06,0x06,0x00,0x01,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x8F,0x90,0x8F, - 0x90,0xBF,0xC0,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x0A, - 0x0B,0x06,0x06,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x06, - 0x06,0x50,0x51,0x0A,0x0B,0x06,0x06,0x14,0x15,0x21, - 0x22,0x21,0x22,0x21,0x22,0x21,0x22,0x21,0x22,0x21, - 0x22,0x21,0x22,0x24,0x25,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x04,0x05,0x0C, - 0x04,0x06,0x06,0x06,0x06,0x05,0x04,0x05,0x0A,0x0B, - 0x12,0x13,0x0C,0x0C,0x0D,0x0C,0x0D,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x79,0x41,0x41,0x41,0x2C,0x06,0x06,0x2D,0x41,0x41, - 0x42,0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x33, - 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, - 0x19,0x19,0x19,0x28,0x06,0x06,0x06,0x06,0x06,0x28, - 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, - 0x19,0x19,0x8A,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x06,0x06,0x12,0x13,0x06,0x06, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x1B,0x1C, - 0x1D,0x1E,0x1D,0x1E,0x1D,0x1E,0x1F,0x20,0x04,0x05, - 0x04,0x05,0x04,0x05,0x04,0x05,0x12,0x13,0x12,0x13, - 0x02,0x03,0x12,0x13,0x06,0x06,0x12,0x13,0x12,0x13, - 0x12,0x13,0x12,0x13,0x06,0x06,0x12,0x13,0x06,0x06, - 0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x10,0x11,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13, - 0x06,0x06,0x04,0x05,0x04,0x05,0x04,0x0C,0x06,0x06, - 0x06,0x06,0x0D,0x0C,0x0D,0x00,0x01,0x0A,0x0B,0x04, - 0x04,0x05,0x04,0x05,0x00,0x01,0x00,0x01,0x12,0x13, - 0x12,0x13,0x12,0x13,0x06,0x06,0x12,0x13,0x12,0x13, - 0x06,0x06,0x31,0x06,0x06,0x06,0x0E,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x30,0x06,0x06,0x32,0x4E,0x4E,0x4F,0x06,0x06, - 0x06,0x06,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x06,0x06,0x26,0x26,0x26,0x26, - 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, - 0x26,0x06,0x06,0x06,0x06,0x06,0x26,0x26,0x26,0x26, - 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, - 0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x06,0x06,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x29,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x2A,0x0C,0x0D,0x0C,0x0D,0x0C, - 0x0D,0x0C,0x0D,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x12,0x13,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x04,0x0C, - 0x0D,0x0C,0x0D,0x0C,0x04,0x05,0x06,0x06,0x04,0x05, - 0x12,0x13,0x0A,0x0B,0x00,0x01,0x0C,0x0C,0x0D,0x0C, - 0x0D,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x2C,0x06, - 0x06,0x2D,0x08,0x08,0x5C,0x06,0x06,0x06,0x06,0x12, - 0x13,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x12,0x13, - 0x02,0x03,0x44,0x45,0x10,0x11,0x00,0x01,0x00,0x01, - 0x02,0x03,0x2C,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x2D,0x04,0x05,0x04,0x05,0x12,0x13,0x12,0x13, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x12,0x13, - 0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x00,0x01,0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x0A,0x0B,0x02,0x03,0x10,0x11, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x06,0x0C,0x04,0x05,0x12,0x13, - 0x04,0x0C,0x0D,0x06,0x06,0x0C,0x0D,0x0A,0x0B,0x10, - 0x11,0x0A,0x0B,0x04,0x04,0x05,0x04,0x05,0x10,0x11, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x12,0x13, - 0x00,0x01,0x00,0x01,0x12,0x13,0x06,0x06,0x06,0x06, - 0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x30,0x06,0x06,0x32,0x08, - 0x08,0x09,0x06,0x06,0x06,0x06,0x0A,0x0B,0x02,0x03, - 0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01,0x12,0x13, - 0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x06,0x06,0x06,0x06, - 0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03, - 0x00,0x01,0x00,0x01,0x00,0x0A,0x0B,0x06,0x06,0x50, - 0x51,0x17,0x18,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x30, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x32,0x0C, - 0x0D,0x0C,0x0D,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x00,0x01,0x12,0x13,0x17,0x18,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x06,0x06,0x0C,0x0D,0x0A,0x0B,0x0C,0x04,0x05, - 0x04,0x04,0x05,0x04,0x02,0x03,0x17,0x18,0x10,0x11, - 0x0C,0x0C,0x0D,0x0C,0x0D,0x17,0x18,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x74,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x23,0x24,0x2C,0x06,0x06,0x32,0x24,0x24,0x25,0x06, - 0x06,0x06,0x06,0x02,0x03,0x06,0x06,0x06,0x44,0x45, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x12, - 0x13,0x12,0x13,0x12,0x13,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x12,0x13,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x02,0x03,0x06,0x06,0x06,0x06,0x31,0x06, - 0x02,0x03,0x02,0x03,0x12,0x13,0x39,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x9B,0x04,0x05,0x04,0x05, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x10,0x11, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01,0x0A,0x0B, - 0x0A,0x0B,0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01,0x06,0x04, - 0x04,0x05,0x00,0x01,0x04,0x0C,0x0D,0x0C,0x0C,0x0D, - 0x0C,0x0D,0x0D,0x06,0x06,0x17,0x18,0x04,0x04,0x05, - 0x04,0x05,0x04,0x05,0x02,0x03,0x02,0x03,0x02,0x03, - 0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x00,0x01, - 0x12,0x13,0x06,0x06,0x07,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x06,0x30, - 0x06,0x06,0x9B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x31,0x06,0x50,0x51,0x06,0x02,0x03, - 0x02,0x03,0x02,0x03,0x02,0x03,0x0A,0x0B,0x0A,0x0B, - 0x0A,0x0B,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x06,0x06,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x00,0x01,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x06,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x3C,0x3D,0x3E,0x06,0x06,0x06,0x06, - 0x6B,0xA5,0xA6,0x0C,0x0D,0x0C,0x0D,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x17,0x18,0x0A,0x0B,0x02, - 0x03,0x02,0x03,0x02,0x03,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x00,0x01,0x00,0x01,0x12, - 0x13,0x12,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x0C,0x0C,0x0D,0x0A, - 0x0B,0x0C,0x04,0x05,0x04,0x05,0x04,0x05,0x04,0x05, - 0x04,0x05,0x04,0x05,0x04,0x0C,0x0D,0x0C,0x0D,0x0C, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x00, - 0x01,0x00,0x01,0x00,0x01,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x09,0x06,0x2C,0x06,0x06,0x06, - 0x1D,0x1E,0x1D,0x1F,0x20,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x06,0x06,0x12,0x13, - 0x06,0x06,0x12,0x13,0x06,0x06,0x06,0x06,0x02,0x03, - 0x46,0x47,0x39,0x06,0x06,0x06,0x06,0x9B,0x80,0xB6, - 0x04,0x05,0x04,0x05,0x10,0x11,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x10,0x11,0x12,0x13,0x02,0x03,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x12,0x13,0x06,0x06,0x02,0x03, - 0x02,0x03,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03, - 0x02,0x03,0x06,0x04,0x04,0x05,0x10,0x11,0x04,0x0C, - 0x0D,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x06,0x06,0x06, - 0x0D,0x04,0x04,0x05,0x04,0x05,0x04,0x05,0x04,0x05, - 0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B, - 0x0A,0x0B,0x00,0x01,0x00,0x01,0x06,0x06,0x74,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x09,0x06,0x30,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x32,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x00,0x01,0x12,0x13, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x01, - 0x00,0x01,0x00,0x06,0x06,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x52,0x53,0x3C, - 0x3D,0x6C,0x6D,0xA5,0xA6,0xBF,0xC0,0x0C,0x0D,0x0C, - 0x0D,0x17,0x18,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x17,0x18,0x0A, - 0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x02, - 0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x06,0x06,0x06, - 0x06,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12, - 0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x0C,0x0C,0x0D,0x17,0x18,0x0C,0x04,0x05,0x05,0x04, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x0C, - 0x0D,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x06,0x06,0x06, - 0x06,0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x07,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x06, - 0x39,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x32,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06, - 0x06,0x06,0x06,0x12,0x13,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x31,0x06,0x02,0x03,0x06,0x06,0x02,0x03,0x06,0x06, - 0x12,0x13,0x06,0x06,0x06,0x06,0x46,0x47,0x80,0x81, - 0x80,0xB6,0x44,0x45,0x04,0x05,0x04,0x05,0x04,0x05, - 0x02,0x03,0x02,0x03,0x02,0x03,0x0A,0x0B,0x0A,0x0B, - 0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x02,0x03,0x06,0x06, - 0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13,0x00,0x01, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B, - 0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x05, - 0x04,0x05,0x04,0x0C,0x0D,0x0D,0x0C,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x01,0x00,0x01, - 0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x09,0x06,0x39,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x9B,0x06,0x06,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x06,0x06,0x06,0x06,0x12,0x13,0x12,0x13,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13,0x12,0x13, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x06,0x06,0x12,0x13, - 0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x06,0x31,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x52,0x53,0x8F,0x90,0xBF,0xC0,0x50, - 0x51,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x06,0x06,0x06, - 0x06,0x06,0x06,0x02,0x03,0x00,0x01,0x00,0x01,0x00, - 0x01,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x12, - 0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x10,0x11,0x00,0x01,0x00, - 0x01,0x00,0x01,0x00,0x01,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0C,0x0D,0x0C,0x0D,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x31, - 0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x07, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x09,0x06,0x3C,0x3D,0x6D,0x6C,0x6D,0x6D, - 0x6C,0x6D,0xA6,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x31,0x06,0x06,0x02,0x03,0x06,0x06,0x31,0x06, - 0x12,0x13,0x12,0x13,0x12,0x13,0x04,0x05,0x04,0x05, - 0x04,0x05,0x04,0x05,0x04,0x05,0x06,0x06,0x04,0x05, - 0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x0A,0x0B,0x12,0x13, - 0x12,0x13,0x12,0x13,0x12,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x17,0x18,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B, - 0x0A,0x0B,0x06,0x06,0x12,0x13,0x12,0x13,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31, - 0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x12,0x13,0x12,0x13,0x06,0x06,0x12,0x13, - 0x00,0x01,0x02,0x03,0x06,0x06,0x0E,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09, - 0x06,0x46,0x47,0x81,0x80,0x81,0x81,0x80,0x81,0xDC, - 0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0C,0x0D,0x0C,0x0D,0x0C,0x0D,0x0C, - 0x0D,0x0C,0x0D,0x06,0x06,0x0C,0x0D,0x06,0x06,0x02, - 0x03,0x02,0x03,0x02,0x03,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x02,0x03,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x12,0x13,0x06,0x06,0x06,0x06,0x12, - 0x13,0x02,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x12, - 0x13,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x06, - 0x06,0x06,0x06,0x74,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x5C,0x06,0x52,0x53, - 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x90,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x06,0x06, - 0x06,0x06,0x31,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x00,0x01,0x00,0x01,0x00,0x01, - 0x06,0x06,0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x12,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x00,0x01, - 0x06,0x06,0x02,0x03,0x02,0x03,0x02,0x03,0x02,0x03, - 0x0A,0x0B,0x06,0x06,0x06,0x06,0x0A,0x0B,0x06,0x06, - 0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x02,0x03, - 0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x05,0x04,0x05,0x05,0x04,0x05, - 0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x05,0x04,0x05,0x00,0x01,0x00,0x01, - 0x06,0x06,0x00,0x01,0x00,0x01,0x12,0x13,0x12,0x13, - 0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x09,0x06,0x06,0x06,0x06,0x06,0x06, - 0x12,0x13,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x02,0x03, - 0x02,0x03,0x02,0x03,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x02,0x03,0x02,0x03,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x31,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0C, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x01,0x12, - 0x13,0x06,0x06,0x02,0x03,0x06,0x06,0x02,0x03,0x02, - 0x03,0x02,0x03,0x00,0x01,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x04,0x05, - 0x04,0x05,0x0C,0x0C,0x0D,0x0C,0x0D,0x0C,0x0C,0x05, - 0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x05,0x04,0x05, - 0x05,0x04,0x05,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x74,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x5C,0x06,0x06,0x06,0x06,0x06,0x06,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A,0x0B,0x0A, - 0x0B,0x0A -}; - -/* End of BIGMAP_MAP.C */ diff --git a/gbdk-lib/examples/ap/large_map/bigmap_map.h b/gbdk-lib/examples/ap/large_map/bigmap_map.h @@ -1,32 +0,0 @@ -/* - - BIGMAP_MAP.H - - Map Include File. - - Info: - Section : - Bank : 0 - Map size : 247 x 66 - Tile set : bigmap_tiles.gbr - Plane count : 1 plane (8 bits) - Plane order : Planes are continues - Tile offset : 0 - Split data : No - - This file was generated by GBMB v1.8 - -*/ -#ifndef __bigmap_map_h_INCLUDE -#define __bigmap_map_h_INCLUDE - -#define bigmap_mapWidth 247 -#define bigmap_mapHeight 66 -#define bigmap_mapBank 0 - -#define bigmap_map bigmap_mapPLN0 -extern const unsigned char bigmap_mapPLN0[]; - -#endif - -/* End of BIGMAP_MAP.H */ diff --git a/gbdk-lib/examples/ap/large_map/bigmap_tiles.c b/gbdk-lib/examples/ap/large_map/bigmap_tiles.c @@ -1,512 +0,0 @@ -/* - - BIGMAP_TILES.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 240 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : None. - - Convert to metatiles : No. - - This file was generated by GBTD v2.2 - -*/ - -/* Start of tile array. */ -const unsigned char bigmap_tiles[] = -{ - 0x5C,0x63,0x33,0x3C,0x2D,0x10,0x5A,0x20, - 0xDD,0x20,0xBF,0x40,0xBF,0x40,0x1B,0x64, - 0x02,0xFE,0xCC,0x3C,0x74,0x08,0xFA,0x04, - 0xFB,0x04,0xFB,0x06,0xD3,0x2E,0xC6,0x3E, - 0x5C,0x63,0x3B,0x37,0x3C,0x0F,0x6F,0x18, - 0xCD,0x3A,0xC9,0x3E,0x3C,0x03,0x0F,0x00, - 0x02,0xFE,0xCC,0xFC,0x7C,0xF0,0x76,0xF8, - 0x73,0xFC,0x73,0xFC,0x3C,0xC0,0xF0,0x00, - 0x00,0x22,0x14,0x41,0x22,0x49,0x1C,0x22, - 0x00,0x00,0x00,0x44,0x28,0x82,0x44,0x92, - 0x00,0x00,0x00,0x22,0x14,0x41,0x22,0x49, - 0x1C,0x22,0x00,0x00,0x00,0x44,0x28,0x82, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x17,0x10,0x17,0x30,0x67,0x10,0x77,0x08, - 0x3B,0x08,0x0B,0x38,0x7B,0x18,0xE7,0x30, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFC,0x0E,0xF4,0x06,0xF7,0x08,0xEB,0x0C, - 0xE0,0x0E,0xEC,0x10,0xE6,0x18,0xE0,0x0C, - 0x63,0x9C,0x7D,0x82,0x7E,0x81,0xBB,0xC4, - 0xCF,0xFC,0x87,0xFC,0x82,0xFF,0x48,0x77, - 0xDA,0x3E,0x99,0x67,0x39,0xC7,0xA3,0x7F, - 0xBD,0x7F,0x21,0xFF,0xC1,0xFF,0x02,0xFE, - 0x38,0x44,0x00,0x00,0x00,0x22,0x14,0x41, - 0x22,0x49,0x1C,0x22,0x00,0x00,0x00,0x00, - 0x44,0x92,0x38,0x44,0x00,0x00,0x00,0x22, - 0x14,0x41,0x22,0x49,0x1C,0x22,0x00,0x00, - 0x0F,0x60,0x6F,0x10,0xEF,0x10,0xCF,0x20, - 0x1F,0x60,0x0F,0x30,0x0F,0x10,0x07,0x10, - 0xEC,0x10,0xD8,0x24,0xF8,0x18,0xAC,0x4C, - 0x93,0x64,0xD7,0x28,0xEE,0x08,0xEC,0x0E, - 0x5C,0x63,0x3B,0x37,0x3C,0x0F,0x6F,0x18, - 0xCD,0x3A,0xC9,0x3E,0xC4,0x3F,0x60,0x1F, - 0x02,0xFE,0xCC,0xFC,0x7C,0xF0,0x76,0xF8, - 0x73,0xFC,0x73,0xFC,0x63,0xFC,0xC6,0xF8, - 0x00,0x03,0x03,0x0C,0x0D,0x10,0x1A,0x20, - 0x1D,0x20,0x3F,0x40,0x3F,0x40,0x1B,0x64, - 0x00,0xC0,0xC0,0x30,0x70,0x08,0xF8,0x04, - 0xF8,0x04,0xFA,0x06,0xD2,0x2E,0xC6,0x3E, - 0x07,0x30,0x77,0x10,0xD7,0x30,0x23,0x7C, - 0x31,0x4E,0x74,0x0B,0x66,0x19,0x02,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xC1,0x3E, - 0x8C,0x73,0x2E,0xD1,0x27,0x00,0x0F,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x7F,0x80, - 0x9F,0x60,0x8F,0x30,0x2F,0x10,0x77,0x10, - 0x3C,0x03,0x0F,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x3C,0xC0,0xF0,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00, - 0xBA,0x00,0xC6,0x82,0xDB,0xA7,0xDB,0xA6, - 0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00, - 0xBA,0x00,0xC6,0x82,0xDA,0xA6,0xFA,0xAE, - 0xFF,0x06,0xFD,0x1B,0xE6,0x31,0xF2,0x20, - 0xF8,0x20,0xE0,0x30,0xF0,0x40,0xE0,0x90, - 0xFF,0xFB,0x35,0xCE,0xBB,0x40,0x9A,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0xBE,0x4D,0xF3,0xAE,0x50,0xA6,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0xE0,0x5F,0xBF,0xCC,0x33,0x9C,0x00, - 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0xEE,0xD5,0x3B,0xEC,0x03,0x69,0x00, - 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0xF8,0xCF,0x36,0xC9,0x03, - 0x83,0x01,0x07,0x01,0x03,0x06,0x07,0x01, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x41,0xBE, - 0x0C,0xF3,0xAE,0x50,0xA6,0x00,0x00,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x1F,0xE0, - 0x40,0xBF,0xCC,0x33,0x9C,0x00,0x18,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFE,0x01, - 0xF9,0x06,0xF1,0x0C,0xF4,0x08,0xE6,0x08, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x9F,0x60, - 0x80,0x7F,0x0C,0xF3,0x7C,0x80,0xF8,0x00, - 0xF4,0x06,0xF8,0x02,0xF8,0x04,0xE3,0x1C, - 0xD1,0x2C,0x18,0xE0,0x08,0x60,0x40,0x00, - 0xBB,0xC7,0xA2,0xDE,0xA3,0xDF,0xE7,0x5C, - 0xF7,0xCF,0x54,0x6C,0x44,0x7C,0x00,0x38, - 0xBA,0xEE,0xAA,0xFE,0x82,0xC6,0x38,0x82, - 0xC6,0x82,0xDA,0xA6,0xDA,0xA6,0x92,0xEE, - 0xBB,0xEF,0xAA,0xFE,0x29,0x7D,0x01,0x44, - 0x39,0x83,0xC6,0x82,0xDA,0xA6,0xDA,0xA6, - 0xC0,0xE0,0xE0,0x30,0xFC,0x10,0xFC,0x20, - 0xF8,0x20,0xE0,0x38,0xF0,0x18,0xFC,0x20, - 0x0F,0x01,0x0F,0x02,0x03,0x06,0x0D,0x03, - 0x07,0x01,0x03,0x01,0x01,0x03,0x07,0x01, - 0xA2,0xDE,0xA2,0xDE,0x64,0x5C,0x74,0x4C, - 0x54,0x6C,0x44,0x7C,0x00,0x38,0x00,0x00, - 0xE0,0x30,0xF0,0x40,0xE0,0x90,0xC0,0xE0, - 0xE0,0x30,0xFC,0x10,0xF4,0x38,0xF8,0x20, - 0x0F,0x02,0x07,0x0C,0x0F,0x02,0x1F,0x02, - 0x1F,0x04,0x07,0x0C,0x1B,0x06,0x07,0x02, - 0x00,0x00,0xF0,0x00,0xF0,0x00,0xF0,0x00, - 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00, - 0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00, - 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00, - 0xE0,0x38,0xF0,0x18,0xFC,0x20,0xEC,0x30, - 0xE0,0x38,0xF0,0x40,0xD8,0x60,0xE0,0x30, - 0x00,0x00,0x00,0x00,0x20,0x00,0x32,0x00, - 0x16,0x00,0x04,0x00,0x00,0x00,0x00,0x00, - 0x03,0x02,0x03,0x06,0x0F,0x02,0x0F,0x01, - 0x07,0x01,0x01,0x07,0x0D,0x03,0x1B,0x06, - 0xAA,0xFE,0xAA,0xFE,0x28,0x7C,0x00,0x44, - 0x38,0x82,0xC6,0x82,0xDB,0xA7,0xDB,0xA6, - 0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00, - 0xBA,0x00,0xC6,0x82,0xDA,0xA6,0xDA,0xA6, - 0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0xF7,0x00,0xF7,0x00,0xF7,0x00, - 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00, - 0xCF,0x80,0xF0,0x80,0xE0,0x80,0x60,0xC0, - 0xFE,0x40,0xA0,0xC0,0x40,0x80,0x80,0x00, - 0x79,0x01,0x07,0x01,0x01,0x01,0x03,0x02, - 0xCB,0x02,0x01,0x03,0x00,0x01,0x01,0x00, - 0xF0,0x40,0xC0,0x70,0xE0,0x30,0xF8,0x40, - 0xD8,0x60,0xC0,0x70,0xE0,0x80,0xB0,0xC0, - 0xBB,0xC7,0xA2,0xDE,0xA3,0xDF,0x67,0x5C, - 0x77,0x4F,0x54,0x6C,0x44,0x7C,0x00,0x38, - 0xBA,0xC6,0xA2,0xDE,0xA2,0xDE,0xE4,0x5C, - 0xF4,0xCC,0x54,0x6C,0x44,0x7C,0x00,0x38, - 0xC0,0x60,0xF0,0x40,0xE4,0x40,0xCE,0x60, - 0xFF,0x73,0xFF,0x4E,0xFB,0x46,0xF3,0x4E, - 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x80, - 0x32,0xC4,0xAB,0xDC,0xF5,0x7F,0xF3,0x0F, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x30,0x00,0x70,0x80,0xE0,0x90,0x40,0xE0, - 0x00,0x00,0x0C,0x00,0x0E,0x01,0x06,0x09, - 0x01,0x1F,0x32,0x0E,0x1D,0x04,0x0E,0x1D, - 0x30,0x00,0x70,0x00,0x62,0x90,0x97,0xF8, - 0x9D,0x9A,0x6B,0x0F,0x10,0xE0,0x07,0xF8, - 0x00,0x00,0x00,0x00,0x06,0x80,0x07,0x88, - 0xCB,0x8C,0xED,0x9F,0x30,0x58,0xC4,0x73, - 0x0C,0x00,0x1C,0x00,0x58,0xE0,0x60,0xF8, - 0x80,0x8E,0x31,0x84,0x1F,0x68,0x0E,0xFC, - 0x40,0xE0,0xE0,0x90,0x70,0x80,0x30,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00, - 0x04,0x00,0x0B,0x00,0x1C,0x18,0x1D,0x12, - 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00, - 0x20,0x00,0xD0,0x00,0x30,0x10,0xD0,0x30, - 0xEB,0x5C,0xF1,0x3E,0xE3,0x3C,0xF7,0x28, - 0xFF,0x20,0xFB,0x44,0xFF,0x44,0xFF,0x44, - 0xF0,0x0F,0xE0,0x1F,0xE1,0x1E,0x47,0xBC, - 0x07,0xFC,0x8B,0x7C,0x99,0x76,0x9B,0x66, - 0x00,0x0F,0x00,0x30,0x00,0x40,0x03,0x40, - 0x3E,0x21,0x3B,0x3C,0x1D,0x13,0x1F,0x14, - 0x00,0x00,0x00,0x80,0x00,0x80,0x80,0x80, - 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, - 0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, - 0x00,0xF8,0x00,0x0C,0x00,0x02,0xC0,0x02, - 0x78,0x84,0xDC,0x3C,0xB8,0xC8,0xF8,0x28, - 0x48,0x3B,0x14,0x33,0x18,0x37,0x79,0x16, - 0x75,0x0A,0x39,0x0A,0x0B,0x38,0x73,0x18, - 0x50,0xAF,0xF9,0x06,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x08,0x87,0x21,0xDE,0x0B,0xF4,0x9F,0x60, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x04,0xF6,0x86,0x7E,0xD6,0x28,0xEF,0x08, - 0xEB,0x0C,0xEC,0x0E,0xEC,0x10,0xE6,0x18, - 0x0D,0x0A,0x19,0x0E,0x1C,0x07,0x0C,0x03, - 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0xF0,0x18,0xF0,0x38,0xE0,0xF0,0xC0, - 0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0x44,0xF3,0x4C,0xF1,0x4E,0xB2,0x4F, - 0xB2,0x4F,0xCF,0x3C,0x7F,0x00,0x3E,0x00, - 0x93,0x6E,0x31,0xCE,0x31,0xCE,0x33,0xCE, - 0xD3,0xEF,0xCF,0x3C,0xFF,0x00,0x7C,0x00, - 0x00,0x00,0x80,0x00,0xC2,0x10,0x96,0x78, - 0x0D,0x9B,0x6A,0x0E,0x91,0x60,0x04,0xFB, - 0x00,0x00,0x00,0x00,0x06,0x00,0x47,0x88, - 0xEB,0x9C,0xFC,0xDF,0x38,0x78,0x84,0x03, - 0x0F,0x0C,0x0D,0x0C,0x05,0x04,0x45,0x8C, - 0xED,0x9C,0xFD,0xDC,0x3D,0x7C,0x85,0x04, - 0xE0,0x9F,0xFF,0x80,0xFF,0x80,0xFF,0x80, - 0xC0,0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80, - 0x07,0xF9,0xFF,0x01,0xFF,0x01,0xFF,0x01, - 0x03,0xFF,0xFF,0x01,0xDF,0x21,0xFF,0x01, - 0xF0,0x30,0x70,0x30,0x62,0x30,0x76,0x38, - 0x6D,0x3B,0x6A,0x2E,0x71,0x20,0x64,0x3B, - 0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00, - 0xBA,0x00,0xC6,0x82,0xDA,0xA6,0xFB,0xAF, - 0x77,0x10,0x37,0x30,0xA3,0x34,0xCB,0x64, - 0x93,0x8C,0x47,0x38,0x87,0x78,0x17,0xE8, - 0xE0,0x0C,0xCC,0x10,0xF8,0x24,0xD0,0x18, - 0xA0,0x4C,0x93,0x64,0x97,0x68,0xDE,0x28, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x03,0x00,0x0D,0x00,0x31,0x00,0xD1,0x00, - 0x03,0x00,0x0D,0x00,0x31,0x00,0xD1,0x00, - 0x11,0x00,0x01,0x00,0x01,0x00,0x11,0x00, - 0xFF,0x00,0x10,0x00,0x10,0x00,0x00,0x00, - 0x10,0x00,0x00,0x00,0x10,0x00,0x10,0x00, - 0xFF,0x00,0x08,0x00,0x08,0x00,0x08,0x00, - 0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00, - 0xC0,0x00,0xF0,0x00,0xAC,0x00,0xDF,0x00, - 0xAA,0x00,0xDD,0x00,0xAA,0x00,0xDD,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xC0,0x00,0xF0,0x00,0xAC,0x00,0xDF,0x00, - 0x40,0xBF,0xEE,0x11,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x38,0xC7,0x00,0xFF,0xC7,0x38,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x3D,0xC4,0x05,0xFC,0xC5,0x3C,0xFD,0x04, - 0xFD,0x04,0xFD,0x04,0xFD,0x04,0xFD,0x04, - 0xC0,0xFF,0xFF,0x80,0xFB,0x84,0xFF,0x80, - 0xC0,0xFF,0xFF,0x80,0xFB,0x84,0xFF,0x80, - 0x03,0xFF,0xFF,0x01,0xFF,0x01,0xFF,0x01, - 0x03,0xFF,0xDF,0x21,0xDF,0x21,0xDF,0x21, - 0x60,0x3F,0x60,0x3F,0x60,0x3F,0x60,0x3F, - 0x62,0x3D,0x63,0x3C,0x63,0x3C,0x63,0x3C, - 0xBB,0xEE,0xAB,0xFF,0x82,0xC6,0x39,0x83, - 0xC7,0x82,0xDB,0xA7,0xDA,0xA6,0x92,0xEE, - 0x3F,0xC0,0x7F,0x80,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x0C,0x00,0x0E,0x01,0x07,0x09,0x02,0x07, - 0x00,0x00,0x00,0x00,0x80,0x00,0xC2,0x10, - 0xE6,0x78,0xF5,0x9B,0xFF,0x0E,0xE7,0x1C, - 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00, - 0x47,0x88,0x63,0x9C,0xA7,0xDF,0xFA,0x7F, - 0x00,0x80,0x11,0x80,0x10,0x80,0x01,0x80, - 0x01,0x80,0x01,0x80,0x11,0x80,0x12,0x81, - 0x11,0x00,0x11,0x00,0x11,0x00,0x12,0x01, - 0x19,0x06,0x25,0x1A,0x9C,0x63,0x7F,0x80, - 0x10,0x00,0x10,0x00,0x10,0x00,0x00,0xFF, - 0xEF,0x10,0xEF,0x10,0x00,0xFF,0xBE,0x41, - 0x08,0x00,0x08,0x00,0x08,0x00,0x00,0xFF, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xAA,0x00,0xDD,0x00,0xAA,0x00,0x5D,0x80, - 0x9A,0x60,0xE5,0x18,0xF9,0x06,0xFE,0x01, - 0xAA,0x01,0xDC,0x01,0xAA,0x01,0xDC,0x01, - 0xAA,0x01,0xDC,0x01,0xAA,0x01,0x5C,0x81, - 0xC5,0x32,0x09,0x66,0x6B,0x14,0xEF,0x10, - 0xCF,0x20,0x3F,0x60,0xCF,0x30,0x0F,0x10, - 0xFD,0x04,0xFD,0x04,0xFD,0x04,0xFD,0x04, - 0xFD,0x04,0xFD,0x04,0xFD,0x04,0xFD,0x04, - 0xC0,0xFF,0xFF,0x80,0xF7,0x88,0xFF,0x80, - 0xC0,0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80, - 0x03,0xFF,0xFF,0x01,0xEF,0x11,0xFF,0x01, - 0x03,0xFF,0x7F,0x81,0x7F,0x81,0x7F,0x81, - 0x63,0x3C,0x63,0x3C,0x63,0x3C,0x63,0x3C, - 0x63,0x3C,0x63,0x3C,0x63,0x3C,0x63,0x3C, - 0xEE,0x08,0xEC,0x08,0xCD,0x2C,0xD5,0x26, - 0xC8,0x31,0xE2,0x1C,0xE8,0x17,0xF8,0x07, - 0xAA,0xFE,0xAA,0xFE,0x00,0x44,0x38,0x82, - 0xC6,0x82,0xDA,0xA6,0xDA,0xA6,0xBA,0xEE, - 0xC1,0x00,0xF1,0x00,0xAD,0x00,0xDF,0x00, - 0xAA,0x01,0xDC,0x01,0xAB,0x01,0xDD,0x00, - 0xFC,0x00,0x04,0x00,0x74,0x00,0x04,0x00, - 0xF8,0x04,0xF8,0x04,0xCC,0xFC,0x9F,0xF8, - 0xFF,0x00,0xFF,0x00,0xFE,0x01,0xF0,0x0E, - 0xE0,0x10,0xC0,0x20,0xB0,0x40,0x38,0x40, - 0xFF,0x00,0xFF,0x00,0x0F,0xF0,0x03,0x0C, - 0x01,0x02,0x01,0x02,0x05,0x02,0x0A,0x06, - 0x00,0x00,0xF7,0x00,0xF7,0x00,0xF7,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xC8,0x3F,0x42,0xBD,0x1B,0xE4,0x9B,0x64, - 0xFD,0x02,0xF6,0x09,0xFE,0x09,0x6F,0x98, - 0x00,0xFF,0x11,0xEE,0x39,0xC6,0x7B,0x84, - 0x7F,0x84,0x7F,0x84,0x79,0x86,0x7B,0x86, - 0xCA,0x3D,0x46,0xB9,0x0E,0xF9,0x9E,0x7D, - 0xFD,0x3F,0xBF,0x7F,0xFF,0x7F,0x7F,0xFF, - 0x00,0xFF,0x11,0xEE,0x3B,0xC6,0xD3,0xEE, - 0xE7,0xFC,0xF7,0xFC,0xFD,0xFE,0xFF,0xFE, - 0x1F,0x86,0xBF,0x9C,0xFF,0xE4,0x3F,0x24, - 0x3B,0x24,0x3F,0x22,0x1F,0x12,0x1F,0x12, - 0xFF,0x00,0x81,0x7E,0x81,0x48,0x81,0x48, - 0x81,0x48,0xC0,0x3F,0xC0,0x24,0xC0,0x24, - 0xBE,0x41,0xBF,0x7F,0xE0,0x3F,0xE7,0x3F, - 0xE4,0x3F,0xE3,0x3C,0xE0,0x3F,0xF0,0x1F, - 0xFF,0x00,0xFF,0xFC,0x07,0xFC,0xE7,0xFC, - 0x27,0xDC,0xF7,0x3C,0x37,0xFC,0x0F,0xF8, - 0xFA,0x61,0xFD,0x39,0xFF,0x27,0xFC,0x24, - 0xDC,0x24,0xFC,0x44,0xF8,0x48,0xF8,0x48, - 0xFC,0x03,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xAA,0xFE,0xAA,0xFE,0x00,0x44,0x38,0x82, - 0xC6,0x82,0xDA,0xA6,0xDA,0xA6,0xBA,0xC6, - 0x08,0x00,0x08,0x00,0x08,0x00,0x00,0xFF, - 0xFF,0x00,0xFF,0x00,0xFD,0x02,0xFF,0x00, - 0xCA,0xF9,0x0C,0xF9,0x82,0x39,0xD4,0x09, - 0xAA,0x01,0xDC,0x01,0xAA,0x01,0x5C,0x81, - 0x3F,0x40,0xBF,0x00,0xDF,0x00,0xA3,0x40, - 0xC4,0x38,0xE0,0x1F,0xF8,0x07,0xFF,0x00, - 0x12,0x0E,0xC2,0x3E,0xC1,0x3C,0x82,0x71, - 0x09,0x06,0x03,0xFC,0x0F,0xF0,0xFF,0x00, - 0xEE,0x19,0xC6,0x39,0x42,0xBD,0x04,0xFF, - 0x87,0xFF,0xFF,0x78,0xFE,0x00,0x78,0x00, - 0x33,0xCE,0x31,0xCE,0x31,0xCE,0x33,0xCE, - 0xA3,0xDF,0xCF,0x3C,0xFF,0x00,0x79,0x00, - 0x7D,0xFF,0x6A,0xFF,0xB0,0xFF,0xC0,0x7F, - 0x4F,0xF0,0xFF,0x80,0xFF,0x00,0x78,0x00, - 0x7F,0xFE,0xAF,0xFE,0x1B,0xFE,0x05,0xFE, - 0xE3,0x1F,0xFF,0x00,0xFF,0x00,0x78,0x00, - 0x1D,0x12,0x3C,0x13,0x3E,0x09,0x3F,0x09, - 0x3F,0x09,0x3F,0x07,0x3F,0x00,0x3F,0x00, - 0xFF,0x00,0x1F,0xE0,0xDF,0x20,0xFF,0xFF, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xF8,0x00, - 0xF0,0x1F,0xF0,0x1F,0xFF,0x1F,0xFF,0xF0, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00, - 0x08,0xFF,0x0F,0xF8,0xFF,0xF8,0xFF,0x0F, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00, - 0xFF,0x00,0xF8,0x07,0xFB,0x04,0xFF,0xFF, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x1F,0x00, - 0xB8,0x48,0x3C,0xC8,0x7C,0x90,0xFC,0x90, - 0xFC,0x90,0xFC,0xE0,0xFC,0x00,0xFC,0x00, - 0x1F,0x86,0x3F,0x9C,0xFF,0xE4,0x3F,0x24, - 0x3B,0x24,0x3F,0x22,0x1F,0x12,0x1F,0x12, - 0xFF,0x00,0x81,0x7E,0x81,0x12,0x81,0x12, - 0x81,0x12,0x03,0xFC,0x03,0x24,0x03,0x24, - 0x07,0x02,0x03,0x02,0x03,0x06,0x0F,0x02, - 0x0F,0x01,0x07,0x01,0x01,0x07,0x0D,0x03, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFB,0x00, - 0xCA,0x30,0x1C,0x60,0x68,0x10,0xE4,0x10, - 0xD8,0x20,0x3D,0x60,0xCA,0x30,0x0E,0x10, - 0x10,0x0C,0x2C,0x10,0x18,0x24,0x00,0x38, - 0x30,0x0C,0xEB,0x04,0x77,0x08,0x5E,0x08, - 0x01,0x00,0x0E,0x00,0x10,0x00,0x20,0x00, - 0x70,0x00,0x38,0x40,0x3F,0x40,0x3F,0x40, - 0xF0,0x00,0x0C,0x00,0x02,0x00,0x00,0x02, - 0x04,0x02,0x08,0x06,0x12,0x0E,0xC2,0x3E, - 0x00,0x00,0x00,0x1E,0x1E,0x21,0x33,0x40, - 0x3F,0x21,0x7E,0x7F,0xE5,0x46,0xC7,0x5F, - 0x00,0x78,0x78,0x84,0xCC,0x02,0xF8,0x84, - 0x7C,0xFC,0xF6,0x0E,0x9B,0x06,0xF3,0x0E, - 0xC0,0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80, - 0xC0,0xFF,0xFF,0x80,0xFB,0x84,0xFF,0x80, - 0x03,0xFF,0xFF,0x01,0xDF,0x21,0xFF,0x01, - 0x03,0xFF,0xFF,0x01,0xFF,0x01,0xFF,0x01, - 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00, - 0xC8,0x11,0xAC,0x73,0xF4,0xDB,0xEF,0x1F, - 0x1B,0x06,0x0F,0x02,0x07,0x02,0xD3,0x06, - 0xFF,0x0E,0x73,0x9E,0xF3,0xFE,0xD3,0x3E, - 0xFB,0x00,0xFF,0x00,0xFB,0x00,0xFF,0x00, - 0xDF,0x00,0xDF,0x00,0xFB,0x00,0x9A,0x01, - 0xFF,0x00,0x7D,0x00,0x6F,0x00,0xFD,0x00, - 0x6D,0x00,0xEF,0x00,0xFF,0x00,0xD9,0x20, - 0x80,0x00,0x00,0x80,0x80,0xC0,0xDE,0x40, - 0x60,0xC0,0xE0,0x80,0xE0,0x80,0xF0,0x80, - 0x01,0x00,0x00,0x01,0x01,0x03,0xCB,0x02, - 0x03,0x02,0x01,0x01,0x01,0x01,0x01,0x01, - 0x1B,0x10,0x1D,0x30,0x6B,0x10,0x76,0x08, - 0x3B,0x08,0x0E,0x38,0x7C,0x18,0xEA,0x30, - 0xBC,0x0E,0x6C,0x06,0x57,0x08,0x3B,0x0C, - 0x30,0x0E,0x0C,0x10,0x26,0x18,0x10,0x0C, - 0x1F,0x20,0x6F,0x10,0xF1,0x0E,0x7E,0x01, - 0x1F,0x00,0x40,0x00,0x60,0x00,0x20,0x00, - 0xC2,0x3E,0x84,0x7C,0x8E,0x78,0xF8,0xF0, - 0xF6,0x00,0x0E,0x00,0x8C,0x00,0x00,0x00, - 0xC2,0x5F,0xC0,0x5F,0xE0,0x60,0xFC,0x5F, - 0xEF,0x50,0xE0,0x5F,0xDF,0x60,0xBF,0x7F, - 0xFB,0xF6,0xC3,0xFA,0x77,0x06,0x3F,0xFA, - 0xF7,0x0A,0x07,0xFA,0xFB,0x06,0xFD,0xFE, - 0x00,0x00,0xF0,0x00,0xF0,0x00,0xF0,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xC0,0xFF,0xFF,0x80,0xF7,0x88,0xFF,0x80, - 0xC0,0xFF,0xFD,0x82,0xFD,0x82,0xFD,0x82, - 0x03,0xFF,0xFF,0x01,0xEF,0x11,0xFF,0x01, - 0x03,0xFF,0xFF,0x01,0xFF,0x01,0xFF,0x01, - 0x3F,0x00,0x20,0x00,0x2E,0x00,0x20,0x00, - 0x1F,0x20,0x1F,0x20,0x33,0x3F,0xD9,0x1F, - 0x83,0x00,0x8D,0x00,0xB1,0x00,0xD1,0x00, - 0x11,0x80,0x01,0x80,0x81,0x80,0x11,0x00, - 0x13,0xEE,0x3B,0xCE,0x3F,0xC4,0x7F,0x84, - 0x7F,0x84,0x7F,0x84,0x7B,0x86,0x7B,0x86, - 0x22,0xC1,0x08,0xF7,0x80,0x7F,0xCB,0x34, - 0x7F,0x80,0x22,0xC1,0x00,0xFF,0x00,0xFF, - 0x84,0x63,0x84,0x7B,0x81,0x7E,0xD3,0x2C, - 0xFE,0x01,0x44,0x83,0x00,0xFF,0x00,0xFF, - 0xEF,0x90,0xB0,0xC0,0xF0,0x80,0xF0,0x80, - 0xF8,0x80,0xF8,0x80,0x77,0xC8,0xD8,0x60, - 0x3D,0x01,0x03,0x01,0x01,0x01,0x02,0x03, - 0x03,0x02,0x03,0x02,0xB3,0x02,0x0F,0x02, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x0C,0xF3,0xAE,0x50,0xA6,0x00,0x00,0x00, - 0xFD,0x04,0xFF,0x04,0xFF,0x0F,0x00,0xF0, - 0x00,0xC0,0x83,0x40,0xFE,0x21,0x3B,0x3C, - 0x63,0x3C,0xE3,0x3C,0xF1,0xFE,0x0D,0x0E, - 0x02,0x03,0xC2,0x02,0x7E,0x84,0xDC,0x3C, - 0x13,0x9F,0x10,0x9F,0x00,0x9C,0x01,0x90, - 0x01,0x80,0x01,0x80,0x11,0x80,0x12,0x81, - 0xEE,0x19,0xC6,0x39,0x42,0xBD,0x04,0xFF, - 0x87,0xFF,0xFF,0x78,0xFF,0x00,0x8E,0x00, - 0x33,0xCE,0x33,0xCE,0x33,0xCE,0x33,0xCE, - 0x97,0xEE,0xCF,0x3C,0xFE,0x00,0x7C,0x00, - 0x04,0xFB,0x03,0xFC,0x00,0xFF,0x10,0xEF, - 0x90,0x6F,0x52,0x8C,0x7F,0x80,0x47,0x80, - 0xA0,0x5F,0xC0,0x3F,0x00,0xFF,0x04,0xFB, - 0x0D,0xF2,0x4A,0x31,0xFE,0x01,0xE2,0x01, - 0xF8,0x40,0x78,0xC0,0xF8,0x80,0xF0,0x80, - 0xF0,0x00,0xE0,0x00,0xC0,0x00,0x00,0x00, - 0x02,0x03,0x02,0x03,0x06,0x03,0x07,0x01, - 0x07,0x01,0x03,0x00,0x01,0x00,0x00,0x00, - 0x1F,0x10,0x1F,0x10,0x0F,0x09,0x02,0x0F, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xC0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xF8,0x08,0xF8,0x08,0xF0,0x90,0x40,0xF0, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x80,0x07,0x80,0x08,0x80,0x70,0x80, - 0x3C,0x80,0x07,0x80,0x78,0x00,0xFF,0x00, - 0x40,0x01,0xE0,0x01,0x10,0x01,0x0E,0x01, - 0x3C,0x01,0xE0,0x01,0x1E,0x00,0xFF,0x00, - 0xBF,0x00,0xCF,0x00,0xF0,0x00,0xFF,0x00, - 0x7F,0x00,0xFF,0x00,0xFE,0x00,0xFF,0x00, - 0xFD,0x00,0xF3,0x00,0x0F,0x00,0xFF,0x00, - 0xFE,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x16,0x08,0x14,0x08,0x01,0x0C,0x11,0x06, - 0x02,0x01,0x05,0x00,0x03,0x00,0x05,0x00, - 0x68,0x10,0x28,0x10,0x80,0x30,0x88,0x60, - 0x40,0x80,0xA0,0x00,0xC0,0x00,0xA0,0x00, - 0xC9,0x3E,0x3C,0x03,0x0F,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x73,0xFC,0x3C,0xC0,0xF0,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, - 0x2C,0x10,0x18,0x24,0x00,0x38,0x30,0x0C, - 0x6B,0x04,0xB7,0x08,0x5E,0x08,0x7C,0x0E, - 0x05,0x00,0x03,0x00,0x05,0x00,0x02,0x01, - 0x11,0x06,0x01,0x0C,0x14,0x08,0x16,0x08, - 0x01,0x00,0x28,0x00,0x51,0x00,0x41,0xBE, - 0x0C,0xF3,0xAE,0x50,0xA6,0x00,0x00,0x00, - 0x80,0x00,0x02,0x00,0x55,0x00,0x1E,0xE0, - 0x40,0xBF,0xCC,0x33,0x9C,0x00,0x18,0x00, - 0x01,0x00,0x82,0x00,0x55,0x00,0x9E,0x60, - 0xC0,0x3F,0x4C,0xB3,0x1C,0x00,0x18,0x00, - 0xEC,0x06,0xBC,0x02,0x72,0x04,0xC3,0x1C, - 0xD1,0x2C,0x18,0xE0,0x08,0x60,0x40,0x00, - 0xF3,0x4C,0xF7,0x28,0xEF,0x30,0xFF,0x20, - 0xFF,0x20,0xFA,0x25,0xFE,0x25,0xFF,0x44, - 0xF1,0x0E,0xF1,0x0E,0xF9,0x06,0x7B,0x84, - 0x7F,0x84,0x7F,0x84,0xF9,0x06,0xFB,0x06, - 0xC7,0x38,0xCF,0x30,0x9F,0x60,0xBF,0x40, - 0xFD,0x02,0xF6,0x09,0xFE,0x09,0x7F,0x88, - 0x07,0xF8,0x8F,0x70,0x8F,0x70,0xA7,0x58, - 0xF5,0x0A,0xF6,0x09,0xFE,0x09,0x7F,0x88, - 0xF3,0x0E,0xF3,0x0E,0xFB,0x06,0x7F,0x84, - 0x7F,0x84,0x7F,0x84,0xFF,0x04,0xFB,0x06, - 0xFF,0x44,0xF3,0x4C,0xF1,0x4E,0xF9,0x46, - 0xFB,0x46,0xFB,0x46,0xFB,0x46,0xF2,0x4F, - 0xB3,0x4E,0xF1,0x0E,0xB1,0x4E,0xB8,0x47, - 0xBA,0x47,0x6A,0x97,0x62,0x9F,0xF2,0x0F, - 0xFF,0x08,0xE7,0x18,0xE3,0x1C,0xF3,0x0C, - 0xF7,0x0C,0xF7,0x0C,0xF5,0x0E,0xE4,0x1F, - 0xB3,0x4E,0xF1,0x0E,0xB1,0x4E,0xB8,0x47, - 0xDA,0x27,0xEA,0x17,0xE2,0x1F,0xC2,0x3F, - 0xFF,0x08,0xE7,0x18,0x63,0x9C,0xB3,0x4C, - 0x77,0x8C,0xF7,0x0C,0xD5,0x2E,0xC4,0x3F, - 0xB3,0x4E,0xF3,0x0E,0xB3,0x4E,0xBB,0x46, - 0xDB,0x26,0xEB,0x16,0xF3,0x1E,0x73,0x9E, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x40,0xBF,0xCC,0x33,0x9C,0x00,0x18,0x00, - 0x38,0xC7,0x00,0xFF,0x07,0xF8,0x3F,0xC0, - 0x7F,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0xC0,0x3F,0xC0,0x20,0xCE,0x20,0xC0,0x20, - 0xDF,0x20,0xDF,0x20,0xF3,0x3F,0x19,0xDF, - 0x7C,0x83,0x71,0x8C,0x41,0xB0,0x11,0xC0, - 0x11,0x80,0x01,0x80,0x81,0x80,0x11,0x00, - 0x00,0xFF,0x10,0x00,0x10,0x00,0x00,0x00, - 0x10,0x00,0x00,0x00,0x10,0x00,0x10,0x00, - 0x00,0xFF,0x08,0x00,0x08,0x00,0x08,0x00, - 0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00, - 0x3F,0xC0,0xCF,0x30,0xA3,0x0C,0xDC,0x03, - 0xAA,0x00,0xDD,0x00,0xAA,0x00,0xDD,0x00, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x3F,0xC0,0xCF,0x30,0xA3,0x0C,0xDC,0x03, - 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, - 0x9F,0x60,0x8F,0x30,0x2F,0x10,0x77,0x10, - 0xA0,0x00,0xC0,0x00,0xA0,0x00,0x40,0x80, - 0x88,0x60,0x80,0x30,0x28,0x10,0x68,0x10, - 0x10,0x0C,0x2C,0x10,0x18,0x24,0x00,0x38, - 0x30,0x0C,0x6B,0x04,0x77,0x08,0x5E,0x08, - 0x3C,0x0E,0x6C,0x06,0x57,0x08,0x3B,0x0C, - 0x30,0x0E,0x0C,0x10,0x26,0x18,0x10,0x0C, - 0x00,0x00,0x80,0x00,0xC2,0x10,0xD6,0x78, - 0x6C,0x9B,0xFD,0x0E,0xDF,0x00,0xF5,0x00, - 0x00,0x00,0x00,0x00,0x06,0x00,0x47,0x88, - 0xEB,0x9C,0x3C,0xDF,0xBF,0x78,0xAB,0x00 -}; - -/* End of BIGMAP_TILES.C */ diff --git a/gbdk-lib/examples/ap/large_map/bigmap_tiles.h b/gbdk-lib/examples/ap/large_map/bigmap_tiles.h @@ -1,107 +0,0 @@ -/* - - BIGMAP_TILES.H - - Include File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 240 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : None. - - Convert to metatiles : No. - - This file was generated by GBTD v2.2 - -*/ - -#ifndef __bigmap_tiles_h_INCLUDE -#define __bigmap_tiles_h_INCLUDE - -/* Bank of tiles. */ -#define bigmap_tilesBank 0 - -/* Super Gameboy palette 0 */ -#define bigmap_tilesSGBPal0c0 0 -#define bigmap_tilesSGBPal0c1 0 -#define bigmap_tilesSGBPal0c2 10240 -#define bigmap_tilesSGBPal0c3 400 - -/* Super Gameboy palette 1 */ -#define bigmap_tilesSGBPal1c0 6076 -#define bigmap_tilesSGBPal1c1 8935 -#define bigmap_tilesSGBPal1c2 6596 -#define bigmap_tilesSGBPal1c3 5344 - -/* Super Gameboy palette 2 */ -#define bigmap_tilesSGBPal2c0 6076 -#define bigmap_tilesSGBPal2c1 8935 -#define bigmap_tilesSGBPal2c2 6596 -#define bigmap_tilesSGBPal2c3 5344 - -/* Super Gameboy palette 3 */ -#define bigmap_tilesSGBPal3c0 6076 -#define bigmap_tilesSGBPal3c1 8935 -#define bigmap_tilesSGBPal3c2 6596 -#define bigmap_tilesSGBPal3c3 5344 - -/* Gameboy Color palette 0 */ -#define bigmap_tilesCGBPal0c0 0 -#define bigmap_tilesCGBPal0c1 10570 -#define bigmap_tilesCGBPal0c2 20083 -#define bigmap_tilesCGBPal0c3 32767 - -/* Gameboy Color palette 1 */ -#define bigmap_tilesCGBPal1c0 6076 -#define bigmap_tilesCGBPal1c1 8935 -#define bigmap_tilesCGBPal1c2 6596 -#define bigmap_tilesCGBPal1c3 5344 - -/* Gameboy Color palette 2 */ -#define bigmap_tilesCGBPal2c0 6076 -#define bigmap_tilesCGBPal2c1 8935 -#define bigmap_tilesCGBPal2c2 6596 -#define bigmap_tilesCGBPal2c3 5344 - -/* Gameboy Color palette 3 */ -#define bigmap_tilesCGBPal3c0 6076 -#define bigmap_tilesCGBPal3c1 8935 -#define bigmap_tilesCGBPal3c2 6596 -#define bigmap_tilesCGBPal3c3 5344 - -/* Gameboy Color palette 4 */ -#define bigmap_tilesCGBPal4c0 6076 -#define bigmap_tilesCGBPal4c1 8935 -#define bigmap_tilesCGBPal4c2 6596 -#define bigmap_tilesCGBPal4c3 5344 - -/* Gameboy Color palette 5 */ -#define bigmap_tilesCGBPal5c0 6076 -#define bigmap_tilesCGBPal5c1 8935 -#define bigmap_tilesCGBPal5c2 6596 -#define bigmap_tilesCGBPal5c3 5344 - -/* Gameboy Color palette 6 */ -#define bigmap_tilesCGBPal6c0 6076 -#define bigmap_tilesCGBPal6c1 8935 -#define bigmap_tilesCGBPal6c2 6596 -#define bigmap_tilesCGBPal6c3 5344 - -/* Gameboy Color palette 7 */ -#define bigmap_tilesCGBPal7c0 6076 -#define bigmap_tilesCGBPal7c1 8935 -#define bigmap_tilesCGBPal7c2 6596 -#define bigmap_tilesCGBPal7c3 5344 -/* Start of tile array. */ -extern const unsigned char bigmap_tiles[]; - -#endif - -/* End of BIGMAP_TILES.H */ diff --git a/gbdk-lib/examples/ap/large_map/large_map.c b/gbdk-lib/examples/ap/large_map/large_map.c @@ -1,96 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> - -#include "bigmap_map.h" -#include "bigmap_tiles.h" - -#define camera_max_y ((bigmap_mapHeight - 18) * 8) -#define camera_max_x ((bigmap_mapWidth - 20) * 8) - -#define MIN(A,B) ((A)<(B)?(A):(B)) - -uint8_t joy; - -// current and old positions of the camera in pixels -uint16_t camera_x, camera_y, old_camera_x, old_camera_y; -// current and old position of the map in tiles -uint8_t map_pos_x, map_pos_y, old_map_pos_x, old_map_pos_y; -// redraw flag, indicates that camera position was changed -uint8_t redraw; - -void set_camera(void) { - // update hardware scroll position - SCY_REG = camera_y; SCX_REG = camera_x; - // up or down - map_pos_y = (uint8_t)(camera_y >> 3u); - if (map_pos_y != old_map_pos_y) { - if (camera_y < old_camera_y) { - set_bkg_submap(map_pos_x, map_pos_y, MIN(21u, bigmap_mapWidth-map_pos_x), 1, bigmap_map, bigmap_mapWidth); - } else { - if ((bigmap_mapHeight - 18u) > map_pos_y) set_bkg_submap(map_pos_x, map_pos_y + 18u, MIN(21u, bigmap_mapWidth-map_pos_x), 1, bigmap_map, bigmap_mapWidth); - } - old_map_pos_y = map_pos_y; - } - // left or right - map_pos_x = (uint8_t)(camera_x >> 3u); - if (map_pos_x != old_map_pos_x) { - if (camera_x < old_camera_x) { - set_bkg_submap(map_pos_x, map_pos_y, 1, MIN(19u, bigmap_mapHeight - map_pos_y), bigmap_map, bigmap_mapWidth); - } else { - if ((bigmap_mapWidth - 20u) > map_pos_x) set_bkg_submap(map_pos_x + 20u, map_pos_y, 1, MIN(19u, bigmap_mapHeight - map_pos_y), bigmap_map, bigmap_mapWidth); - } - old_map_pos_x = map_pos_x; - } - // set old camera position to current camera position - old_camera_x = camera_x, old_camera_y = camera_y; -} - -void main(void){ - DISPLAY_OFF; - SHOW_BKG; - set_bkg_data(0, 241u, bigmap_tiles); - - map_pos_x = map_pos_y = 0; - old_map_pos_x = old_map_pos_y = 255; - set_bkg_submap(map_pos_x, map_pos_y, 20, 18, bigmap_map, bigmap_mapWidth); - DISPLAY_ON; - - camera_x = camera_y = 0; - old_camera_x = camera_x; old_camera_y = camera_y; - - redraw = FALSE; - - SCX_REG = camera_x; SCY_REG = camera_y; - while (TRUE) { - joy = joypad(); - // up or down - if (joy & J_UP) { - if (camera_y) { - camera_y--; - redraw = TRUE; - } - } else if (joy & J_DOWN) { - if (camera_y < camera_max_y) { - camera_y++; - redraw = TRUE; - } - } - // left or right - if (joy & J_LEFT) { - if (camera_x) { - camera_x--; - redraw = TRUE; - } - } else if (joy & J_RIGHT) { - if (camera_x < camera_max_x) { - camera_x++; - redraw = TRUE; - } - } - if (redraw) { - vsync(); - set_camera(); - redraw = FALSE; - } else vsync(); - } -} - diff --git a/gbdk-lib/examples/ap/lcd_isr_wobble/Makefile b/gbdk-lib/examples/ap/lcd_isr_wobble/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = lcd_isr_wobble.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/lcd_isr_wobble/lcd_isr_wobble.c b/gbdk-lib/examples/ap/lcd_isr_wobble/lcd_isr_wobble.c @@ -1,29 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <stdio.h> - -#include <gb/emu_debug.h> - -const uint8_t scanline_offsets_tbl[] = {0, 1, 2, 3, 3, 2, 1, 0, 0, 1, 2, 3, 3, 2, 1, 0}; -const uint8_t * scanline_offsets = scanline_offsets_tbl; - -void scanline_isr(void) { - SCX_REG = scanline_offsets[(uint8_t)(LY_REG & 0x07u)]; -} - - -void main(void) { - printf("This is\na wobble\ntest\nfor DMG\n|\n|\n|\n|\n|"); - - CRITICAL { - STAT_REG = STATF_MODE00; - add_LCD(scanline_isr); - add_LCD(nowait_int_handler); - } - set_interrupts(IE_REG | LCD_IFLAG); - - while (TRUE) { - vsync(); - scanline_offsets = scanline_offsets_tbl + ((sys_time >> 2) & 0x07u); - } -} - diff --git a/gbdk-lib/examples/ap/linkerfile/Makefile b/gbdk-lib/examples/ap/linkerfile/Makefile @@ -1,70 +0,0 @@ -# -# A Makefile that compiles all .c and .s files in "src" and "res" -# subdirectories and places the output in a "obj" subdirectory -# - -# If you move this project you can change the directory -# to match your GBDK root directory (ex: GBDK_HOME = "C:/GBDK/" -GBDK_HOME = ../../../ - -LCC = $(GBDK_HOME)bin/lcc - -# You can set flags for LCC here -# For example, you can uncomment the line below to turn on debug output -LCCFLAGS = -msm83:ap -# LCCFLAGS += -debug -# LCCFLAGS += -v - -# You can set the name of the .pocket ROM file here -PROJECTNAME = Example - -SRCDIR = src -OBJDIR = obj -RESDIR = res -BINS = $(OBJDIR)/$(PROJECTNAME).pocket -CSOURCES = $(foreach dir,$(SRCDIR),$(notdir $(wildcard $(dir)/*.c))) $(foreach dir,$(RESDIR),$(notdir $(wildcard $(dir)/*.c))) -ASMSOURCES = $(foreach dir,$(SRCDIR),$(notdir $(wildcard $(dir)/*.s))) -OBJS = $(CSOURCES:%.c=$(OBJDIR)/%.o) $(ASMSOURCES:%.s=$(OBJDIR)/%.o) - -all: prepare $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile .c files in "src/" to .o object files -$(OBJDIR)/%.o: $(SRCDIR)/%.c - $(LCC) $(LCCFLAGS) -c -o $@ $< - -# Compile .c files in "res/" to .o object files -$(OBJDIR)/%.o: $(RESDIR)/%.c - $(LCC) $(LCCFLAGS) -c -o $@ $< - -# Compile .s assembly files in "src/" to .o object files -$(OBJDIR)/%.o: $(SRCDIR)/%.s - $(LCC) $(LCCFLAGS) -c -o $@ $< - -# If needed, compile .c files in "src/" to .s assembly files -# (not required if .c is compiled directly to .o) -$(OBJDIR)/%.s: $(SRCDIR)/%.c - $(LCC) $(LCCFLAGS) -S -o $@ $< - - -$(OBJDIR)/linkfile.lk: $(OBJS) - rm -f $@ - @for obj in $(OBJS); do \ - echo $$obj >>$@; \ - done - -# Link the compiled object files (via linkerfile) into a .pocket ROM file -$(BINS): $(OBJDIR)/linkfile.lk - $(LCC) $(LCCFLAGS) -o $(BINS) -Wl-f$< - -prepare: - mkdir -p $(OBJDIR) - mkdir -p $(RESDIR) - -clean: -# rm -f *.pocket *.ihx *.cdb *.adb *.noi *.map - rm -f $(OBJDIR)/*.* - diff --git a/gbdk-lib/examples/ap/linkerfile/Readme.md b/gbdk-lib/examples/ap/linkerfile/Readme.md @@ -1,18 +0,0 @@ - -# Example of how to use a linkerfile - -A linkerfile allows storing all the object files to be linked in a -file which is passed to the linker instead of a list of filenames on -the command line. This may be useful if your project has filenames -that use up more length than will fit on the command line for Windows -(8191 chars max). - -The typical extension for the linkerfile is ".lk". - -It is passed to sdldgb through lcc using `-Wl-f<pathtolinkerfile>` -If calling sdldgb directly, use `-f<pathtolinkerfile>` - -The Makefile is configured to store all the compiled ".o" object files -into `obj/linkerfile.lk`. - - diff --git a/gbdk-lib/examples/ap/linkerfile/src/main.c b/gbdk-lib/examples/ap/linkerfile/src/main.c @@ -1,15 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> - - -void main(void) -{ - // Loop forever - while(1) { - - // Game main loop processing goes here - - // Done processing, yield CPU and wait for start of next frame - vsync(); - } -} diff --git a/gbdk-lib/examples/ap/paint/Makefile b/gbdk-lib/examples/ap/paint/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = paint.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/paint/paint.c b/gbdk-lib/examples/ap/paint/paint.c @@ -1,528 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <gb/drawing.h> - -#define NB_TOOLS 18 -#define NB_DATA_TILES 48 - -#define ARROW 0 -#define PEN 1 -#define BRUSH 2 -#define FILL 3 -#define ERASER 4 -#define CROSS 5 - -#define UNSELECTED 0 -#define SELECTED 1 - -#define FIRST_TOOL 0 -#define LAST_TOOL 9 -#define FIRST_COLOR 10 -#define LAST_COLOR 13 -#define FIRST_MODE 14 -#define LAST_MODE 17 - -typedef struct icon_info_ -{ - uint8_t data_idx; /* Index of data in the data array */ - uint8_t x, y, w, h; /* Position and size (in tiles) */ - uint8_t up, down, left, right; /* Index of next icons (for cursor movements) */ - uint8_t cursor; /* Cursor associated with icon */ -} icon_info; - -typedef struct cursor_info_ -{ - uint8_t data_idx; /* Index of data in the data array */ - uint8_t w, h; /* Size (in tiles) */ - uint8_t hot_x, hot_y; /* Position of hot point, relatice to top-left of sprite (in pixels) */ -} cursor_info; - -const icon_info icons[] = -{ - /* Pen */ - { 0, 0, 0, 2, 2, 10, 2, 1, 1, 1 }, /* 0 */ - /* Brush */ - { 4, 2, 0, 2, 2, 14, 3, 0, 0, 2 }, /* 1 */ - /* Fill */ - { 8, 0, 2, 2, 2, 0, 4, 3, 3, 3 }, /* 2 */ - /* Eraser */ - { 12, 2, 2, 2, 2, 1, 5, 2, 2, 4 }, /* 3 */ - /* Line */ - { 16, 0, 4, 2, 2, 2, 6, 5, 5, 5 }, /* 4 */ - /* Line */ - { 20, 2, 4, 2, 2, 3, 7, 4, 4, 5 }, /* 5 */ - /* Rectangle */ - { 24, 0, 6, 2, 2, 4, 8, 7, 7, 5 }, /* 6 */ - /* Oval */ - { 28, 2, 6, 2, 2, 5, 9, 6, 6, 5 }, /* 7 */ - /* Filled rectangle */ - { 32, 0, 8, 2, 2, 6, 10, 9, 9, 5 }, /* 8 */ - /* Filled oval */ - { 36, 2, 8, 2, 2, 7, 14, 8, 8, 5 }, /* 9 */ - /* Color */ - { 40, 0, 10, 1, 1, 8, 11, 16, 12, 0 }, /* 10 */ - { 41, 0, 11, 1, 1, 10, 0, 17, 13, 0 }, /* 11 */ - { 42, 1, 10, 1, 1, 8, 13, 10, 14, 0 }, /* 12 */ - { 43, 1, 11, 1, 1, 12, 0, 11, 15, 0 }, /* 13 */ - /* Mode */ - { 44, 2, 10, 1, 1, 9, 15, 12, 16, 0 }, /* 14 */ - { 45, 2, 11, 1, 1, 14, 1, 13, 17, 0 }, /* 15 */ - { 46, 3, 10, 1, 1, 9, 17, 14, 10, 0 }, /* 16 */ - { 47, 3, 11, 1, 1, 16, 1, 15, 11, 0 } /* 17 */ -}; - -const unsigned char data[NB_DATA_TILES][0x10] = -{ - /* Pen */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x01 }, - { 0x7E,0x02,0x7D,0x05,0x7B,0x0A,0x77,0x14,0x7F,0x18,0x7F,0x27,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x0D,0xF6,0x15,0xEE,0x29,0xDE,0x51,0xBE,0xA1,0x7E,0x41 }, - { 0xFE,0x81,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0xFD,0xFE,0x01,0x00,0xFF }, - /* Brush */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x01 }, - { 0x7E,0x02,0x7D,0x0D,0x7F,0x1E,0x7F,0x1E,0x7F,0x1D,0x7F,0x11,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x0D,0xF6,0x15,0xEE,0x29,0xDE,0x51,0xBE,0xA1,0x7E,0x41 }, - { 0xFE,0x81,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0xFD,0xFE,0xFD,0xFE,0x01,0x00,0xFF }, - /* Fill */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x01,0x7F,0x02,0x7E,0x0C,0x7D,0x18,0x7E,0x1D }, - { 0x7F,0x1B,0x7F,0x19,0x7F,0x18,0x7F,0x08,0x7F,0x08,0x7F,0x08,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x81,0xFE,0x41,0x7E,0x21,0xBE,0x71,0x5E,0xE9,0xAE,0xC5 }, - { 0x5E,0x89,0xBE,0x11,0xFE,0xA1,0xFE,0x41,0xFE,0x01,0xFE,0x01,0xFE,0x01,0x00,0xFF }, - /* Eraser */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x01,0x7E,0x02,0x7C,0x04 }, - { 0x78,0x08,0x7F,0x1F,0x71,0x11,0x7F,0x1F,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0xF9,0x1E,0x19,0x2E,0x29,0x5E,0x51 }, - { 0xBE,0xA1,0x7E,0x41,0xFE,0x81,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0x00,0xFF }, - /* Line */ - { 0x00,0x00,0x7F,0x00,0x7F,0x20,0x7F,0x10,0x7F,0x08,0x7F,0x04,0x7F,0x02,0x7F,0x01 }, - { 0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01 }, - { 0xFE,0x81,0xFE,0x41,0xFE,0x21,0xFE,0x11,0xFE,0x09,0xFE,0x05,0xFE,0x01,0x00,0xFF }, - /* Arc */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x1E,0x7F,0x01,0x7F,0x00,0x7F,0x00,0x7F,0x00 }, - { 0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x81,0xFE,0x41,0xFE,0x21,0xFE,0x11 }, - { 0xFE,0x11,0xFE,0x09,0xFE,0x09,0xFE,0x09,0xFE,0x09,0xFE,0x01,0xFE,0x01,0x00,0xFF }, - /* Rectangle */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x3F,0x7F,0x20,0x7F,0x20,0x7F,0x20,0x7F,0x20 }, - { 0x7F,0x20,0x7F,0x20,0x7F,0x20,0x7F,0x20,0x7F,0x3F,0x7F,0x00,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x01,0xFE,0xFD,0xFE,0x05,0xFE,0x05,0xFE,0x05,0xFE,0x05 }, - { 0xFE,0x05,0xFE,0x05,0xFE,0x05,0xFE,0x05,0xFE,0xFD,0xFE,0x01,0xFE,0x01,0x00,0xFF }, - /* Oval */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x03,0x7F,0x0C,0x7F,0x10,0x7F,0x20,0x7F,0x20 }, - { 0x7F,0x20,0x7F,0x20,0x7F,0x10,0x7F,0x0C,0x7F,0x03,0x7F,0x00,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x01,0xFE,0xC1,0xFE,0x31,0xFE,0x09,0xFE,0x05,0xFE,0x05 }, - { 0xFE,0x05,0xFE,0x05,0xFE,0x09,0xFE,0x31,0xFE,0xC1,0xFE,0x01,0xFE,0x01,0x00,0xFF }, - /* Filled rectangle */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x3F,0x6A,0x3F,0x75,0x3F,0x6A,0x3F,0x75,0x3F }, - { 0x6A,0x3F,0x75,0x3F,0x6A,0x3F,0x75,0x3F,0x7F,0x3F,0x7F,0x00,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x01,0xFE,0xFD,0xAE,0xFD,0x56,0xFD,0xAE,0xFD,0x56,0xFD }, - { 0xAE,0xFD,0x56,0xFD,0xAE,0xFD,0x56,0xFD,0xFE,0xFD,0xFE,0x01,0xFE,0x01,0x00,0xFF }, - /* Filled oval */ - { 0x00,0x00,0x7F,0x00,0x7F,0x00,0x7F,0x03,0x7E,0x0F,0x75,0x1F,0x6A,0x3F,0x75,0x3F }, - { 0x6A,0x3F,0x75,0x3F,0x7A,0x1F,0x7D,0x0F,0x7F,0x03,0x7F,0x00,0x7F,0x00,0x00,0x7F }, - { 0x00,0x00,0xFE,0x01,0xFE,0x01,0xFE,0xC1,0xBE,0xF1,0x5E,0xF9,0xAE,0xFD,0x56,0xFD }, - { 0xAE,0xFD,0x56,0xFD,0xAE,0xF9,0x7E,0xF1,0xFE,0xC1,0xFE,0x01,0xFE,0x01,0x00,0xFF }, - /* Color */ - { 0x00,0x00,0x7F,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40 }, - { 0x40,0x7F,0x40,0x7F,0x40,0x7F,0x40,0x7F,0x40,0x7F,0x40,0x7F,0x7F,0x7F,0x00,0x7F }, - { 0x00,0x00,0xFE,0xFF,0xFE,0x03,0xFE,0x03,0xFE,0x03,0xFE,0x03,0xFE,0x03,0xFE,0x03 }, - { 0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0xFF }, - /* Mode */ - { 0x00,0x00,0x7F,0x00,0x7F,0x0C,0x7F,0x10,0x7F,0x08,0x7F,0x04,0x7F,0x18,0x7F,0x00 }, - { 0x7F,0x00,0x7F,0x08,0x7F,0x14,0x7F,0x14,0x7F,0x14,0x7F,0x08,0x7F,0x00,0x00,0x7F }, - { 0x00,0x01,0xFE,0x01,0xFE,0x29,0xFE,0x29,0xFE,0x11,0xFE,0x29,0xFE,0x29,0xFE,0x01 }, - { 0xFE,0x01,0xFE,0x11,0xFE,0x29,0xFE,0x39,0xFE,0x29,0xFE,0x29,0xFE,0x01,0x00,0xFF } -}; - -const unsigned char selected_data[NB_DATA_TILES][0x10] = -{ - /* Pen */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFE }, - { 0x81,0xFD,0x82,0xFA,0x84,0xF5,0x88,0xEB,0x80,0xE7,0x80,0xD8,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xF2,0x09,0xEA,0x11,0xD6,0x21,0xAE,0x41,0x5E,0x81,0xBE }, - { 0x01,0x7E,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0x02,0x01,0xFE,0xFF,0x00 }, - /* Brush */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFE }, - { 0x81,0xFD,0x82,0xF2,0x80,0xE1,0x80,0xE1,0x80,0xE2,0x80,0xEE,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xF2,0x09,0xEA,0x11,0xD6,0x21,0xAE,0x41,0x5E,0x81,0xBE }, - { 0x01,0x7E,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0x02,0x01,0x02,0x01,0xFE,0xFF,0x00 }, - /* Fill */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFE,0x80,0xFD,0x81,0xF3,0x82,0xE7,0x81,0xE2 }, - { 0x80,0xE4,0x80,0xE7,0x80,0xE7,0x80,0xF7,0x80,0xF7,0x80,0xF7,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0x7E,0x01,0xBE,0x81,0xDE,0x41,0x8E,0xA1,0x16,0x51,0x3A }, - { 0xA1,0x76,0x41,0xEE,0x01,0x5E,0x01,0xBE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0xFF,0x00 }, - /* Eraser */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFE,0x81,0xFD,0x83,0xFB }, - { 0x87,0xF7,0x80,0xE0,0x8E,0xEE,0x80,0xE0,0x80,0xFF,0x80,0xFF,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0x06,0xE1,0xE6,0xD1,0xD6,0xA1,0xAE }, - { 0x41,0x5E,0x81,0xBE,0x01,0x7E,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0xFF,0x00 }, - /* Line */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xDF,0x80,0xEF,0x80,0xF7,0x80,0xFB,0x80,0xFD,0x80,0xFE }, - { 0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE }, - { 0x01,0x7E,0x01,0xBE,0x01,0xDE,0x01,0xEE,0x01,0xF6,0x01,0xFA,0x01,0xFE,0xFF,0x00 }, - /* Arc */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xE1,0x80,0xFE,0x80,0xFF,0x80,0xFF,0x80,0xFF }, - { 0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0x7E,0x01,0xBE,0x01,0xDE,0x01,0xEE }, - { 0x01,0xEE,0x01,0xF6,0x01,0xF6,0x01,0xF6,0x01,0xF6,0x01,0xFE,0x01,0xFE,0xFF,0x00 }, - /* Rectangle */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xC0,0x80,0xDF,0x80,0xDF,0x80,0xDF,0x80,0xDF }, - { 0x80,0xDF,0x80,0xDF,0x80,0xDF,0x80,0xDF,0x80,0xC0,0x80,0xFF,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xFE,0x01,0x02,0x01,0xFA,0x01,0xFA,0x01,0xFA,0x01,0xFA }, - { 0x01,0xFA,0x01,0xFA,0x01,0xFA,0x01,0xFA,0x01,0x02,0x01,0xFE,0x01,0xFE,0xFF,0x00 }, - /* Oval */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFC,0x80,0xF3,0x80,0xEF,0x80,0xDF,0x80,0xDF }, - { 0x80,0xDF,0x80,0xDF,0x80,0xEF,0x80,0xF3,0x80,0xFC,0x80,0xFF,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xFE,0x01,0x3E,0x01,0xCE,0x01,0xF6,0x01,0xFA,0x01,0xFA }, - { 0x01,0xFA,0x01,0xFA,0x01,0xF6,0x01,0xCE,0x01,0x3E,0x01,0xFE,0x01,0xFE,0xFF,0x00 }, - /* Filled rectangle */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xC0,0x9F,0xC0,0x9F,0xC0,0x9F,0xC0,0x9F,0xC0 }, - { 0x9F,0xC0,0x9F,0xC0,0x9F,0xC0,0x9F,0xC0,0x80,0xC0,0x80,0xFF,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xFE,0x01,0x02,0xF9,0x02,0xF9,0x02,0xF9,0x02,0xF9,0x02 }, - { 0xF9,0x02,0xF9,0x02,0xF9,0x02,0xF9,0x02,0x01,0x02,0x01,0xFE,0x01,0xFE,0xFF,0x00 }, - /* Filled oval */ - { 0xFF,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFC,0x83,0xF0,0x8F,0xE0,0x9F,0xC0,0x9F,0xC0 }, - { 0x9F,0xC0,0x9F,0xC0,0x8F,0xE0,0x83,0xF0,0x80,0xFC,0x80,0xFF,0x80,0xFF,0xFF,0x80 }, - { 0xFF,0xFF,0x01,0xFE,0x01,0xFE,0x01,0x3E,0xC1,0x0E,0xF1,0x06,0xF9,0x02,0xF9,0x02 }, - { 0xF9,0x02,0xF9,0x02,0xF1,0x06,0xC1,0x0E,0x01,0x3E,0x01,0xFE,0x01,0xFE,0xFF,0x00 }, - /* Color */ - { 0x00,0x00,0x7F,0x7F,0x61,0x61,0x52,0x52,0x4C,0x4C,0x4C,0x4C,0x52,0x52,0x61,0x61 }, - { 0x40,0x5E,0x40,0x6D,0x40,0x73,0x40,0x73,0x40,0x6D,0x40,0x5E,0x7F,0x7F,0x00,0x7F }, - { 0x00,0x00,0xFE,0xFF,0xFE,0x87,0xFE,0x4B,0xFE,0x33,0xFE,0x33,0xFE,0x4B,0xFE,0x87 }, - { 0x7A,0x7B,0xB6,0xB7,0xCE,0xCF,0xCE,0xCF,0xB6,0xB7,0x7A,0x7B,0xFE,0xFF,0x00,0xFF }, - /* Mode */ - { 0x00,0x00,0x7F,0x7F,0x73,0x73,0x6F,0x6F,0x77,0x77,0x7B,0x7B,0x67,0x67,0x7F,0x7F }, - { 0x7F,0x7F,0x77,0x77,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x77,0x77,0x7F,0x7F,0x00,0x7F }, - { 0x00,0x01,0xFE,0xFF,0xD6,0xD7,0xD6,0xD7,0xEE,0xEF,0xD6,0xD7,0xD6,0xD7,0xFE,0xFF }, - { 0xFE,0xFF,0xEE,0xEF,0xD6,0xD7,0xC6,0xC7,0xD6,0xD7,0xD6,0xD7,0xFE,0xFF,0x00,0xFF } -}; - -const cursor_info cursors[] = -{ - /* Arrow */ - { 0, 1, 1, 0, 0 }, - /* Pen */ - { 1, 2, 2, 0, 15 }, - /* Brush */ - { 5, 2, 2, 0, 15 }, - /* Fill */ - { 9, 2, 2, 2, 15 }, - /* Eraser */ - { 13, 2, 2, 0, 15 }, - /* Cross */ - { 17, 2, 2, 5, 10 } -}; - -const unsigned char cursors_data[][0x10] = { - /* Arrow */ - { 0xFF,0x00,0xFF,0x7E,0xFF,0x7C,0xFE,0x78,0xFF,0x7C,0xFF,0x6E,0xFF,0x46,0xEF,0x00 }, - /* Pen */ - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x07,0x01 }, - { 0x0F,0x02,0x1F,0x05,0x3F,0x0A,0x7F,0x14,0x7E,0x28,0xFC,0x30,0xF8,0x40,0x60,0x00 }, - { 0x00,0x00,0x00,0x00,0x3C,0x00,0x7C,0x18,0xFC,0x28,0xFC,0x50,0xF8,0xA0,0xF0,0x40 }, - { 0xE0,0x80,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, - /* Brush */ - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x07,0x01,0x0F,0x02 }, - { 0x1F,0x05,0x7F,0x0A,0xFF,0x34,0xFE,0x78,0xFC,0x78,0xFC,0x70,0xF8,0x40,0x60,0x00 }, - { 0x00,0x00,0x00,0x00,0x78,0x00,0xF8,0x30,0xF8,0x50,0xF8,0xA0,0xF0,0x40,0xE0,0x80 }, - { 0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, - /* Fill */ - { 0x00,0x00,0x00,0x00,0x07,0x00,0x0F,0x02,0x1F,0x05,0x7F,0x08,0xFE,0x31,0xFD,0x63 }, - { 0xFA,0x77,0xFD,0x6E,0xFF,0x64,0xFF,0x62,0xF7,0x21,0x73,0x20,0x70,0x20,0x50,0x00 }, - { 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0xC0,0x00,0xE0,0x80,0xF0,0xC0,0x78,0xA0 }, - { 0xF8,0x10,0xF8,0x20,0xF0,0x40,0xE0,0x80,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00 }, - /* Eraser */ - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x0F,0x03 }, - { 0x1F,0x04,0x3F,0x08,0x7F,0x11,0xFF,0x22,0xFF,0x7D,0xFF,0x46,0xFF,0x7C,0x7E,0x00 }, - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0xF0,0xE0 }, - { 0xF0,0x60,0xF0,0xA0,0xF0,0x40,0xE0,0x80,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00 }, - /* Cross */ - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x04,0x0E,0x04 }, - { 0x0E,0x04,0xFF,0x04,0xFB,0x7B,0xFF,0x04,0x0E,0x04,0x0E,0x04,0x0E,0x04,0x0E,0x00 }, - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, - { 0x00,0x00,0xE0,0x00,0xE0,0xC0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, -}; - -unsigned char data_buffer[NB_DATA_TILES][0x10]; - -const uint8_t colors[] = { WHITE, DKGREY, LTGREY, BLACK }; -const uint8_t modes[] = { SOLID, OR, XOR, AND }; - -uint8_t current_tool; -uint8_t current_color; -uint8_t current_mode; -uint8_t current_cursor; -uint8_t menu_cursor_pos; - -uint8_t cursor_x; -uint8_t cursor_y; - -void set_cursor(void) -{ - uint8_t x, y, i; - - i = 0; - for(x = 0; x < cursors[current_cursor].w; x++) - for(y = 0; y < cursors[current_cursor].h; y++) { - set_sprite_data(i, - 1, - cursors_data[cursors[current_cursor].data_idx+i]); - set_sprite_tile(i, i); - set_sprite_prop(i, 0x10); - i++; - } - /* Hide unused sprites */ - for(; i < 4; i++) { - move_sprite(i, 0, 0); - } -} - -void move_cursor(void) -{ - uint8_t x, y; - - for(x = 0; x < cursors[current_cursor].w; x++) - for(y = 0; y < cursors[current_cursor].h; y++) - move_sprite((x<<1)+y, - cursor_x+8 - cursors[current_cursor].hot_x + (x<<3), - cursor_y+16 - cursors[current_cursor].hot_y + (y<<3)); -} - -void move_menu_cursor(void) -{ - move_sprite(0, - ((icons[menu_cursor_pos].x+icons[menu_cursor_pos].w)<<3) + 4, - ((icons[menu_cursor_pos].y+icons[menu_cursor_pos].h)<<3) + 12); -} - -void set_icon(uint8_t icon, uint8_t selected) -{ - uint8_t x, y; - - for(x = 0; x < icons[icon].w; x++) - for(y = 0; y < icons[icon].h; y++) { - uint16_t index = icons[icon].data_idx+((uint16_t)x<<1)+y; - switch_data(icons[icon].x + x, - icons[icon].y + y, - selected ? selected_data[index] : data[index], - data_buffer[index]); - } -} - -void change_icon(uint8_t icon, uint8_t selected) -{ - uint8_t x, y; - - for(x = 0; x < icons[icon].w; x++) - for(y = 0; y < icons[icon].h; y++) - switch_data(icons[icon].x + x, - icons[icon].y + y, - (selected ? - selected_data[icons[icon].data_idx+((uint16_t)x<<1)+y] : - data[icons[icon].data_idx+((uint16_t)x<<1)+y]), - NULL); -} - -void reset_icon(uint8_t icon) -{ - uint8_t x, y; - - for(x = 0; x < icons[icon].w; x++) - for(y = 0; y < icons[icon].h; y++) - switch_data(icons[icon].x + x, - icons[icon].y + y, - data_buffer[icons[icon].data_idx+(x<<1)+y], - NULL); -} - -void splash(void) -{ - uint8_t x, y; - - cursor_x = 40; - cursor_y = 50; - current_cursor = PEN; - set_cursor(); - move_cursor(); - SHOW_SPRITES; - - for(; cursor_x < 120; cursor_x++) { - vsync(); - move_cursor(); - plot(cursor_x, cursor_y, BLACK, SOLID); - } - for(; cursor_y < 94; cursor_y++) { - vsync(); - move_cursor(); - plot(cursor_x, cursor_y, BLACK, SOLID); - } - for(; cursor_x > 40; cursor_x--) { - vsync(); - move_cursor(); - plot(cursor_x, cursor_y, BLACK, SOLID); - } - for(; cursor_y > 50; cursor_y--) { - vsync(); - move_cursor(); - plot(cursor_x, cursor_y, BLACK, SOLID); - } - cursor_x = 160/2; - cursor_y = 144/2; - current_cursor = FILL; - set_cursor(); - move_cursor(); - - for(y = 51; y < 94; y++) - for(x = 41; x < 120; x++) - plot(x, y, LTGREY, SOLID); - - // HIDE_SPRITES; -} - -void menu(void) -{ - uint8_t i, key; - uint8_t slowdown; - uint8_t cursor; - - slowdown = 50; - - for(i = 0; i < NB_TOOLS; i++) - set_icon(i, - i == FIRST_TOOL + current_tool || - i == FIRST_COLOR + current_color || - i == FIRST_MODE + current_mode); - - cursor = current_cursor; - current_cursor = ARROW; - set_cursor(); - move_menu_cursor(); - SHOW_SPRITES; - waitpadup(); - do { - vsync(); - key = joypad(); - if(key & (J_UP|J_DOWN|J_LEFT|J_RIGHT)) { - if(key & J_UP) - menu_cursor_pos = icons[menu_cursor_pos].up; - if(key & J_DOWN) - menu_cursor_pos = icons[menu_cursor_pos].down; - if(key & J_LEFT) - menu_cursor_pos = icons[menu_cursor_pos].left; - if(key & J_RIGHT) - menu_cursor_pos = icons[menu_cursor_pos].right; - move_menu_cursor(); - while(slowdown && key == joypad()) { - vsync(); - slowdown--; - } - slowdown = 10; - } else - slowdown = 50; - if(key & J_A) { - if( /* menu_cursor_pos >= FIRST_TOOL && */ menu_cursor_pos <= LAST_TOOL) { - if(menu_cursor_pos != /* FIRST_TOOL + */ current_tool) { - change_icon(/* FIRST_TOOL + */ current_tool, UNSELECTED); - current_tool = menu_cursor_pos /* - FIRST_TOOL */; - change_icon(/* FIRST_TOOL + */ current_tool, SELECTED); - cursor = icons[/* FIRST_TOOL + */ current_tool].cursor; - } - } else if(menu_cursor_pos >= FIRST_COLOR && menu_cursor_pos <= LAST_COLOR) { - if(menu_cursor_pos != FIRST_COLOR + current_color) { - change_icon(FIRST_COLOR + current_color, UNSELECTED); - current_color = menu_cursor_pos - FIRST_COLOR; - change_icon(FIRST_COLOR + current_color, SELECTED); - } - } else if(menu_cursor_pos >= FIRST_MODE && menu_cursor_pos <= LAST_MODE) { - if(menu_cursor_pos != FIRST_MODE + current_mode) { - change_icon(FIRST_MODE + current_mode, UNSELECTED); - current_mode = menu_cursor_pos - FIRST_MODE; - change_icon(FIRST_MODE + current_mode, SELECTED); - } - } - } - } while(key != J_SELECT); - waitpadup(); - for(i = 0; i < NB_TOOLS; i++) - reset_icon(i); - HIDE_SPRITES; - current_cursor = cursor; -} - -void run(void) -{ - uint8_t key; - uint8_t slowdown; - uint8_t drawn, erased; - - slowdown = 10; - drawn = erased = 0; - - set_cursor(); - move_cursor(); - SHOW_SPRITES; - - while(1) { - vsync(); - key = joypad(); - if(key & (J_UP|J_DOWN|J_LEFT|J_RIGHT)) { - if(key & J_UP && cursor_y > 0) - cursor_y--; - if(key & J_DOWN && cursor_y < 143) - cursor_y++; - if(key & J_LEFT && cursor_x > 0) - cursor_x--; - if(key & J_RIGHT && cursor_x < 159) - cursor_x++; - move_cursor(); - while(slowdown && key == joypad()) { - vsync(); - slowdown--; - } - slowdown = 1; - drawn = erased = 0; - } else - slowdown = 10; - if(key & J_SELECT) { - HIDE_SPRITES; - menu(); - set_cursor(); - move_cursor(); - SHOW_SPRITES; - } - if((key & (J_A|J_B)) == J_A) { - if(!drawn) { - drawn++; - plot(cursor_x, cursor_y, colors[current_color], modes[current_mode]); - } - } else - drawn = 0; - if((key & (J_A|J_B)) == J_B) { - if(!erased) { - erased++; - plot(cursor_x, cursor_y, WHITE, SOLID); - } - } else - erased = 0; - } -} - -void main(void) -{ - /* Initialize sprite palette */ - OBP1_REG = 0xE0U; - - splash(); - - current_tool = 0; - current_color = BLACK; - current_mode = SOLID; - current_cursor = PEN; - menu_cursor_pos = 0; - cursor_x = 160/2; - cursor_y = 144/2; - - run(); -} diff --git a/gbdk-lib/examples/ap/ram_function/Makefile b/gbdk-lib/examples/ap/ram_function/Makefile @@ -1,32 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = ram_fn.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -%.o: %.c - $(CC) -c -o $@ $< - -%.s: %.c - $(CC) -S -o $@ $< - -%.o: %.s - $(CC) -c -o $@ $< - -%.pocket: %.o - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - - -ram_fn.o: ram_fn.c - $(CC) -D_inc_ram=0xD000 -D_inc_hiram=0xFFA0 -c -o $@ $< - -ram_fn.pocket: ram_fn.o - $(CC) -Wl-g_inc_ram=0xD000 -Wl-g_inc_hiram=0xFFA0 -o $@ $< - diff --git a/gbdk-lib/examples/ap/ram_function/ram_fn.c b/gbdk-lib/examples/ap/ram_function/ram_fn.c @@ -1,71 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <stdio.h> -#include <string.h> - -uint16_t counter = 0; - -// inc() must be a relocatable function, be careful! -void inc(void) { - counter++; -} -// dummy function, needed to calculate inc() size, must be after it -void inc_end(void) {} - -// calculate the distance between objects -#define object_distance(a, b) ((void *)&(b) - (void *)&(a)) - -// variables at an absolute addresses which are defined by passing parameters to compiler -unsigned char __at _inc_ram ram_buffer[]; -unsigned char __at _inc_hiram hiram_buffer[]; - -// those are function pointer variables, we can initialize them right here -typedef void (*inc_t)(void); -inc_t inc_ram_var = (inc_t)ram_buffer; -inc_t inc_hiram_var = (inc_t)hiram_buffer; - -// those are defined by passing parameters to the linker, they must be located at the same -// addresses where ram_buffer and hiram_buffer are located -extern void inc_ram(void); -extern void inc_hiram(void); - -void print_counter(void) { - printf(" Counter is %u\n", counter); -} - -void main(void) { - // copy inc() function to it's new destinations: hiram_buffer and ram_buffer - hiramcpy((uint8_t)&hiram_buffer, (void *)&inc, (uint8_t)object_distance(inc, inc_end)); - memcpy(&ram_buffer, (void *)&inc, (uint16_t)object_distance(inc, inc_end)); - - // print initial counter state - puts("Program Start..."); - print_counter(); - - // Call function in ROM - puts("Call ROM"); - inc(); - print_counter(); - - // Call function in RAM using link-time address - puts("Call RAM direct"); - inc_ram(); - print_counter(); - - // Call function in RAM using pointer-to-function variable - puts("Call RAM indirect"); - inc_ram_var(); - print_counter(); - - // Call function in HIRAM using link-time address - puts("Call HIRAM direct"); - inc_hiram(); - print_counter(); - - // Call function in HIRAM using pointer-to-function variable - puts("Call HIRAM indirect"); - inc_hiram_var(); - print_counter(); - - puts("The End..."); -} diff --git a/gbdk-lib/examples/ap/rand/Makefile b/gbdk-lib/examples/ap/rand/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = rand.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/rand/rand.c b/gbdk-lib/examples/ap/rand/rand.c @@ -1,59 +0,0 @@ -/*************************************************************************** - * * - * Module : rand.c * - * * - * Purpose : A test for the rand() function, for the GBDK * - * * - * Version : 1, Januari 6 1998 * - * * - * Author : Luc Van den Borre ( Homepage : NOC.BASE.ORG ) * - * * - **************************************************************************/ - -#include <gb/gb.h> -#include <stdint.h> -#include <rand.h> -#include <gb/drawing.h> -#include <stdio.h> -#include <string.h> - -uint8_t accu[80]; -uint8_t accua[80]; - -void main(void) -{ - uint8_t r, s, t = 0, u = 0; - uint16_t seed; - - memset(accu, 0, sizeof(accu)); - memset(accua, 0, sizeof(accua)); - - /* We use the DIV register to get a random initial seed */ - puts("Getting seed"); - puts("Push any key (1)"); - waitpad(0xFF); - waitpadup(); - seed = DIV_REG; - puts("Push any key (2)"); - waitpad(0xFF); - waitpadup(); - seed |= (uint16_t)DIV_REG << 8; - - /* initarand() calls initrand() */ - initarand(seed); - - do { - r = rand(); - s = arand(); - - if(r < 80) { - t = ++accu[r]; - plot(r, 144-t, LTGREY, SOLID); - } - if(s < 80) { - u = ++accua[s]; - plot(s+80, 144-u, DKGREY, SOLID); - } - } - while(t != 144 && u != 144); -} diff --git a/gbdk-lib/examples/ap/rpn/Makefile b/gbdk-lib/examples/ap/rpn/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = rpn.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/rpn/rpn.c b/gbdk-lib/examples/ap/rpn/rpn.c @@ -1,102 +0,0 @@ -#include <stdint.h> -#include <stdio.h> -#include <ctype.h> - -#define MAXOP 40 -#define NUMBER '0' -#define STACKSIZE 40 - -uint8_t sp; -int16_t stack[STACKSIZE]; - -char s[MAXOP]; -uint8_t pos; -int16_t n; - -void push(int16_t l) -{ - if(sp < STACKSIZE) - stack[sp++] = l; - else - puts("Stack full"); -} - -int16_t pop(void) -{ - if(sp > 0) - return stack[--sp]; - else - puts("Stack empty"); - return 0; -} - -int16_t top(void) -{ - if(sp > 0) - return stack[sp-1]; - else - puts("Stack empty"); - return 0; -} - -int8_t read_op(void) -{ - if(pos == 0) { - gets(s); - } - - while(s[pos] == ' ' || s[pos] == '\t') - pos++; - - if(s[pos] == '\0') { - pos = 0; - return('\n'); - } - - if(!isdigit(s[pos])) - return(s[pos++]); - - n = s[pos] - '0'; - while(isdigit(s[++pos])) - n = 10 * n + s[pos] - '0'; - - return NUMBER; -} - -void main(void) -{ - int8_t type; - int16_t op2; - - puts("RPN Calculator"); - sp = 0; - pos = 0; - - while((type = read_op()) != 0) { - switch(type) { - case NUMBER: - push(n); - break; - case '+': - push(pop() + pop()); - break; - case '*': - push(pop() * pop()); - break; - case '-': - op2 = pop(); - push(pop() - op2); - break; - case '/': - op2 = pop(); - if(op2 != 0) - push(pop() / op2); - else - puts("Divide by 0"); - break; - case '\n': - printf("==> %d\n", top()); - break; - } - } -} diff --git a/gbdk-lib/examples/ap/scroller/Makefile b/gbdk-lib/examples/ap/scroller/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = text_scroller.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/scroller/text_scroller.c b/gbdk-lib/examples/ap/scroller/text_scroller.c @@ -1,72 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <stdio.h> - -#include <gb/emu_debug.h> - -const uint8_t scanline_offsets_tbl[] = {0, 1, 2, 3, 3, 2, 1, 0, 0, 1, 2, 3, 3, 2, 1, 0}; -const uint8_t * scanline_offsets = scanline_offsets_tbl; - -#define SCROLL_POS 15 -#define SCROLL_POS_PIX_START (SCROLL_POS * 8) - 1 -#define SCROLL_POS_PIX_END ((SCROLL_POS + 1) * 8) - 1 - -uint8_t scroller_x = 0; - -void scanline_isr(void) { - switch (LYC_REG) { - case 0: - SCX_REG = 0; - LYC_REG = SCROLL_POS_PIX_START; - break; - case SCROLL_POS_PIX_START: - SCX_REG = scroller_x; - LYC_REG = SCROLL_POS_PIX_END; - break; - case SCROLL_POS_PIX_END: - SCX_REG = LYC_REG = 0; - break; - } -} - -const uint8_t scroller_text[] = "This is a text scroller demo for GBDK-2020. You can use ideas, that are "\ -"shown in this demo, to make different parallax effects, scrolling of tilemaps which are larger than 32x32 "\ -"tiles and TEXT SCROLLERS, of course! Need to write something else to make this text longer than 256 characters. "\ -"The quick red fox jumps over the lazy brown dog. 0123456789. "; - -const uint8_t * scroller_next_char = scroller_text; -uint8_t * scroller_vram_addr; -uint16_t base, limit; - -void main(void) { - printf("Scrolling %d chars", sizeof(scroller_text) - 1); - - CRITICAL { - STAT_REG |= STATF_LYC; LYC_REG = 0; - add_LCD(scanline_isr); - } - set_interrupts(VBL_IFLAG | LCD_IFLAG); - - scroller_vram_addr = get_bkg_xy_addr(20, SCROLL_POS); - set_vram_byte(scroller_vram_addr, *scroller_next_char - 0x20); - - base = (uint16_t) scroller_vram_addr & 0xffe0; - limit = base + 0x20; - - while (1) { - scroller_x++; - if ((scroller_x & 0x07) == 0) { - // next letter - scroller_next_char++; - if (*scroller_next_char == 0) scroller_next_char = scroller_text; - - // next vram position - scroller_vram_addr++; - if (scroller_vram_addr == (uint8_t *)limit) scroller_vram_addr = (uint8_t *)base; - - // put next char - set_vram_byte(scroller_vram_addr, *scroller_next_char - 0x20); - } - vsync(); - } -} - diff --git a/gbdk-lib/examples/ap/sgb_border/Makefile b/gbdk-lib/examples/ap/sgb_border/Makefile @@ -1,11 +0,0 @@ -CC = ../../../bin/lcc - -all: - $(CC) -msm83:ap -Wl-j -Wm-yS -Wm-ys -o border.pocket border.c sgb_border.c border_data.c - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -clean: - rm -f *.o *.lst *.map *.pocket *.ihx *.sym *.cdb *.adb *.asm diff --git a/gbdk-lib/examples/ap/sgb_border/border.c b/gbdk-lib/examples/ap/sgb_border/border.c @@ -1,18 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include "sgb_border.h" - -#include "border_data.h" - -void main(void) { - - // Wait 4 frames - // For SGB on PAL SNES this delay is required on startup, otherwise borders don't show up - for (uint8_t i = 4; i != 0; i--) vsync(); - - DISPLAY_ON; - set_sgb_border(border_chr, border_chr_size, border_map, border_map_size, border_pal, border_pal_size); - while(1) { - vsync(); - } -} - diff --git a/gbdk-lib/examples/ap/sgb_border/border_data.c b/gbdk-lib/examples/ap/sgb_border/border_data.c @@ -1,192 +0,0 @@ -const unsigned char border_chr[]={ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00, -0x02,0x02,0x0b,0x08,0x1c,0x13,0x30,0x2f,0x61,0x5f,0x22,0x1e,0xc4,0xbc,0x49,0x39,0xfe,0xfd,0xfb,0xf4,0xfc,0xe0,0xf0,0xc0,0xe0,0x81,0xa0,0xc3,0xc0,0x07,0x40,0x8f, -0x7f,0x80,0x80,0x7f,0x00,0xff,0x38,0xf8,0x80,0x80,0x1c,0x1f,0xc0,0xff,0x00,0xff,0x7f,0x00,0x80,0x00,0x00,0x00,0x00,0x3f,0x00,0xff,0x00,0xfc,0x00,0xc0,0x00,0x00, -0xff,0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00, -0xfe,0x01,0x01,0xfe,0x00,0xff,0x1c,0x1f,0x01,0x01,0x38,0xf8,0x03,0xff,0x00,0xff,0xfe,0x00,0x01,0x00,0x00,0x00,0x00,0xfc,0x00,0xff,0x00,0x3f,0x00,0x03,0x00,0x00, -0x40,0x40,0xd0,0x10,0x38,0xc8,0x0c,0xf4,0x86,0xfa,0x44,0x78,0x23,0x3d,0x92,0x9c,0x7f,0xbf,0xdf,0x2f,0x3f,0x07,0x0f,0x03,0x07,0x81,0x05,0xc3,0x03,0xe0,0x02,0xf1, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xfe,0xfe,0xfe,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe, -0x4a,0xbb,0x82,0x73,0x90,0x73,0x94,0x77,0x94,0x77,0x84,0x67,0x80,0x67,0x80,0x67,0x40,0x0e,0x80,0x0e,0x80,0x1c,0x80,0x1c,0x80,0x1c,0x80,0x1c,0x80,0x18,0x80,0x18, -0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xff,0x00,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00, -0x00,0xff,0x00,0xff,0x0e,0xfe,0x09,0xfd,0x09,0xff,0x09,0xfd,0x0e,0xfe,0x00,0xff,0x00,0x00,0x00,0x00,0x06,0x01,0x00,0x02,0x00,0x00,0x00,0x02,0x06,0x01,0x00,0x00, -0x00,0xff,0x00,0xff,0x33,0xb7,0x49,0xcf,0x49,0xff,0x49,0xcf,0x31,0xb7,0x00,0xff,0x00,0x00,0x00,0x00,0x31,0x48,0x00,0x30,0x00,0x00,0x00,0x30,0x30,0x48,0x00,0x00, -0x00,0xff,0x00,0xff,0x81,0xff,0x01,0xfd,0x03,0xff,0x02,0xfe,0x02,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0x42,0xfa,0x45,0x5d,0xe5,0xf7,0xaf,0xbf,0x28,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x40,0x05,0x05,0xa2,0xe0,0x08,0x0a,0x40,0x00,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0x3b,0xff,0x12,0xff,0x13,0x7f,0x92,0xff,0x92,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x80,0x80,0x00,0x00,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0x94,0xbd,0x52,0x7a,0x91,0xbd,0x92,0xba,0x54,0x7d,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x42,0x02,0x85,0x80,0x42,0x02,0x45,0x00,0x82,0x00,0x00, -0x00,0xff,0x00,0xff,0x41,0x7f,0x81,0xbf,0x01,0x7f,0x80,0xbe,0x40,0x7f,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x01,0x80,0x80,0x41,0x00,0x80,0x00,0x00, -0x00,0xff,0x00,0xff,0x15,0xff,0x14,0xff,0x54,0x5f,0xa4,0xaf,0xa4,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xa0,0xa0,0x50,0x00,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0xd2,0xff,0x92,0xff,0x9e,0xff,0x92,0xff,0x92,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0x07,0xf7,0x08,0xfb,0x06,0xf6,0x01,0xfd,0x0e,0xfe,0x00,0xff,0x00,0x00,0x00,0x00,0x05,0x08,0x00,0x04,0x00,0x09,0x00,0x02,0x0a,0x01,0x00,0x00, -0x00,0xff,0x00,0xff,0x77,0xff,0x24,0xff,0x27,0xff,0x24,0xff,0x27,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0x73,0xf7,0x4a,0xef,0x73,0xf7,0x52,0xf7,0x4b,0xef,0x00,0xff,0x00,0x00,0x00,0x00,0x21,0x08,0x00,0x10,0x30,0x08,0x00,0x08,0x01,0x10,0x00,0x00, -0x00,0xff,0x00,0xff,0x98,0xdb,0x24,0xe7,0xa4,0xff,0x24,0xe7,0x98,0xdb,0x00,0xff,0x00,0x00,0x00,0x00,0x18,0x24,0x00,0x18,0x80,0x00,0x00,0x18,0x18,0x24,0x00,0x00, -0x00,0xff,0x00,0xff,0x0e,0xef,0x10,0xf7,0x0c,0xed,0x02,0xfb,0x1c,0xfd,0x00,0xff,0x00,0x00,0x00,0x00,0x0a,0x10,0x00,0x08,0x00,0x12,0x00,0x04,0x14,0x02,0x00,0x00, -0x00,0xff,0x00,0xff,0x64,0x6f,0x94,0x9f,0x94,0xff,0x94,0x9c,0x63,0x6b,0x00,0xff,0x00,0x00,0x00,0x00,0x64,0x90,0x00,0x60,0x00,0x00,0x00,0x63,0x63,0x94,0x00,0x00, -0x00,0xff,0x00,0xff,0xa5,0xff,0xb5,0xff,0xbd,0xff,0xad,0xff,0x25,0x7f,0x00,0xff,0x00,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x80,0x00,0x00, -0x00,0xff,0x00,0xff,0xc0,0xdf,0x20,0xbf,0x20,0xff,0x20,0xbf,0xc0,0xdf,0x00,0xff,0x00,0x00,0x00,0x00,0xc0,0x20,0x00,0x40,0x00,0x00,0x00,0x40,0xc0,0x20,0x00,0x00, -0x52,0xdd,0x41,0xce,0x09,0xce,0x29,0xee,0x29,0xee,0x21,0xe6,0x01,0xe6,0x01,0xe6,0x02,0x70,0x01,0x70,0x01,0x38,0x01,0x38,0x01,0x38,0x01,0x38,0x01,0x18,0x01,0x18, -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe, -0x80,0x67,0x80,0x67,0x80,0x67,0x80,0x67,0x80,0x67,0x80,0x67,0x80,0x67,0x80,0x67,0x80,0x18,0x80,0x18,0x80,0x18,0x80,0x18,0x80,0x18,0x80,0x18,0x80,0x18,0x80,0x18, -0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x01,0xfe,0x03,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00, -0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00, -0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x80,0x7f,0xc0,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0xc0,0x00, -0x01,0xe6,0x01,0xe6,0x01,0xe6,0x01,0xe6,0x01,0xe6,0x01,0xe6,0x01,0xe6,0x01,0xe6,0x01,0x18,0x01,0x18,0x01,0x18,0x01,0x18,0x01,0x18,0x01,0x18,0x01,0x18,0x01,0x18, -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f, -0x03,0xfc,0x03,0xfc,0x03,0xfc,0x03,0xfc,0x03,0xfc,0x03,0xfc,0x03,0xfc,0x03,0xfc,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00, -0x3c,0xc3,0x78,0x83,0xec,0x00,0xfc,0x00,0xfd,0x01,0x39,0x83,0x02,0x87,0x18,0xdb,0x3c,0x00,0x44,0x10,0x92,0x39,0x82,0x39,0x83,0x10,0x45,0x00,0x3a,0x40,0x18,0x24, -0x00,0xff,0x00,0xff,0xc4,0xd5,0xae,0xff,0xca,0xdf,0xae,0xff,0xca,0xdf,0x00,0xff,0x00,0x00,0x00,0x00,0x40,0x2a,0x2e,0x00,0xc0,0x20,0x2e,0x00,0x40,0x20,0x00,0x00, -0x00,0xff,0x00,0xff,0xee,0xff,0x44,0xff,0x44,0xff,0x44,0xff,0x44,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0xee,0xff,0x8a,0xff,0xec,0xfd,0x8a,0xfb,0xea,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0xec,0x02,0x02,0x04,0x60,0x00,0x00,0x00, -0x03,0xfc,0x03,0xfc,0xa3,0xfc,0xa3,0xbc,0xe3,0xfc,0x43,0xfc,0x43,0xfc,0x03,0xfc,0x03,0x00,0x03,0x00,0xa3,0x00,0x03,0x40,0xe3,0x00,0x03,0x00,0x03,0x00,0x03,0x00, -0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f, -0x29,0xee,0x2a,0xec,0x2a,0xec,0x0a,0xcc,0x03,0xcd,0x43,0xcd,0x53,0xdd,0x55,0xd9,0x01,0x38,0x02,0x39,0x02,0x39,0x02,0x39,0x03,0x30,0x03,0x70,0x02,0x70,0x04,0x72, -0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x01,0xff,0x01,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01, -0x15,0x99,0x06,0x9a,0xa6,0xba,0xaa,0xb2,0x28,0x30,0x0c,0x34,0x4c,0x74,0x54,0x64,0x04,0x72,0x07,0x61,0x07,0xe1,0x09,0xe5,0x0b,0xe7,0x0f,0xc3,0x0f,0xc3,0x13,0xcb, -0x00,0xfe,0x02,0xfe,0x00,0xfc,0x01,0xf9,0x08,0xf9,0x00,0xf3,0x04,0xe7,0x21,0xe6,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0x07,0x00,0x0e,0x00,0x0c,0x00,0x1c,0x01,0x38, -0x10,0x60,0x98,0xe8,0x20,0xc0,0x30,0xd0,0x40,0x80,0x60,0xa0,0xc0,0x40,0x40,0x40,0x17,0x8f,0x1f,0x87,0x2f,0x1f,0x3f,0x0f,0x5f,0x3f,0x5f,0x1f,0xff,0x3f,0x3f,0xbf, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xfe,0xfe,0xfe,0xfe, -0x80,0x67,0x80,0x67,0x84,0x67,0x94,0x77,0x94,0x77,0x90,0x73,0x82,0x73,0x4a,0xbb,0x80,0x18,0x80,0x18,0x80,0x1c,0x80,0x1c,0x80,0x1c,0x80,0x1c,0x80,0x0e,0x40,0x0e, -0x03,0xfc,0x01,0xfe,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xff,0x00,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xc0,0x3f,0x80,0x7f,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xc0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x03,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, -0x00,0xff,0x00,0xff,0x00,0xfe,0x00,0xfc,0x08,0xf8,0x02,0xe3,0x40,0xc7,0x11,0x1e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x0f,0x00,0x1e,0x00,0x78,0x01,0xf0, -0x41,0xce,0x93,0x9d,0x27,0x3b,0x4a,0x72,0x14,0xe4,0x28,0xc8,0x70,0xb0,0xc0,0x40,0x01,0x70,0x03,0xf0,0x06,0xe0,0x09,0xc5,0x13,0x0b,0x27,0x17,0x6f,0x0f,0xff,0x3f, -0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x49,0x39,0xc4,0xbc,0x22,0x1e,0x61,0x5f,0x30,0x2f,0x1c,0x13,0x0b,0x08,0x02,0x02,0x40,0x8f,0xc0,0x07,0xa0,0xc3,0xe0,0x81,0xf0,0xc0,0xfc,0xe0,0xfb,0xf4,0xfe,0xfd, -0x00,0xff,0xc0,0xff,0x1c,0x1f,0x80,0x80,0x38,0xf8,0x00,0xff,0x80,0x7f,0x7f,0x80,0x00,0x00,0x00,0xc0,0x00,0xfc,0x00,0xff,0x00,0x3f,0x00,0x00,0x80,0x00,0x7f,0x00, -0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00, -0x00,0xff,0x07,0xff,0xe0,0xe0,0x03,0x03,0xf0,0xff,0x01,0xfe,0x7e,0x80,0x8f,0x0f,0x00,0x00,0x00,0x07,0x00,0xff,0x00,0xff,0x00,0xf0,0x01,0x00,0x7e,0x01,0x8c,0x70, -0x30,0xf0,0x03,0x03,0x38,0x3f,0x81,0xfe,0x1e,0xe0,0xe7,0x07,0x70,0x70,0x80,0x80,0x00,0x3f,0x00,0xff,0x00,0xf8,0x01,0x80,0x1e,0x01,0xe6,0x18,0x6f,0x8f,0x7f,0x7f, -0x42,0x7c,0x0f,0xf3,0x34,0xc4,0xd0,0x10,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xc1,0x0e,0x00,0x33,0x0b,0xdf,0x2f,0x7f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff, -0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x04,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfb, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xe3,0xff,0x00,0xf3,0x0c,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9c,0x7f,0xff,0xff,0xf3,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x87,0xcf,0x08,0x87,0x48,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xff,0xf7,0xb7,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0xff,0xff,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x28,0x70,0x48,0x38,0x40,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xf7,0xbf,0xbf,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1c,0x08,0x14,0x3c,0x20,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xef,0xeb,0xff,0xff,0xdf, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x20,0x3f,0x20,0x1f,0x20,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xdf,0xdf,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x10,0xf0,0x10,0xd0,0x30,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xef,0xdf,0xef, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x01,0x3f,0x20,0x3b,0x24,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xdf,0xfb,0xdf, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xc0,0xc0,0x20,0xe0,0x11,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xff,0xee,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4a,0x76,0x7f,0x81,0xff,0x00,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcb,0xbd,0x7f,0xfe,0xff,0xff, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x10,0x38,0x48,0x70,0x48,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xf7,0xf7,0xbf, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x24,0x70,0x48,0x38,0x48,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfb,0xf7,0xbf,0xbf,0xf7, -0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xc0,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x08,0x7c,0x04,0x78,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xfb,0xfb,0xff, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xec,0x02,0xec,0x02,0xe0,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x10,0xf8,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x0e,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x0f,0x08,0x0e,0x01,0x0c,0x12,0x1e,0x02,0x38,0x24,0x1c,0x24,0x3c,0x04,0x38,0x00,0xff,0xf7,0xfe,0xff,0xed,0xff,0xff,0xfd,0xfb,0xdf,0xdf,0xfb,0xff,0xfb,0xff,0xff, -0x63,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x41,0xfe,0x80,0x7f,0x9c,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0x7f, -0x4f,0xc0,0x1f,0x10,0x0f,0x10,0x1d,0x02,0x3f,0x22,0x18,0x25,0x3c,0x05,0x77,0x4f,0x7f,0xbf,0xff,0xef,0xef,0xff,0xfd,0xff,0xff,0xdd,0xda,0xff,0xfe,0xfb,0xf7,0xb8, -0xc0,0x40,0xc0,0x40,0x80,0x40,0x80,0x40,0xc0,0x00,0xe0,0x20,0xe1,0x21,0xc0,0x21,0xff,0xbf,0xff,0xbf,0xbf,0xff,0xbf,0xff,0xff,0xff,0xff,0xdf,0xff,0xde,0xde,0xff, -0x3c,0x44,0x7c,0x04,0xf8,0x84,0x78,0x84,0x7c,0x80,0xdf,0x23,0xde,0x23,0xed,0x32,0xbf,0xfb,0xff,0xfb,0xfb,0x7f,0x7b,0xff,0x7f,0xff,0xdf,0xfc,0xde,0xfd,0xed,0xdf, -0x1c,0x20,0x7e,0x42,0x3e,0x42,0xfe,0x82,0x6c,0x92,0xcc,0x32,0xec,0x32,0x9e,0x50,0xdf,0xff,0xff,0xbd,0xbf,0xfd,0xff,0x7d,0x6d,0xff,0xcd,0xff,0xed,0xdf,0xbf,0xef, -0x1c,0x24,0x1c,0x24,0x38,0x00,0x30,0x08,0x30,0x08,0x7f,0x40,0x7f,0x40,0x7f,0x40,0xdf,0xfb,0xdf,0xfb,0xff,0xff,0xf7,0xff,0xf7,0xff,0xff,0xbf,0xff,0xbf,0xff,0xbf, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x20,0xe0,0x20,0xa0,0x60,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xdf,0xbf,0xdf, -0x1c,0x24,0x18,0x20,0x38,0x00,0x30,0x08,0x76,0x4f,0x7f,0x40,0x3f,0x40,0x3f,0x40,0xdf,0xfb,0xdf,0xff,0xff,0xff,0xf7,0xff,0xf6,0xb9,0xff,0xbf,0xbf,0xff,0xbf,0xff, -0x73,0x82,0xf1,0x82,0xf1,0x82,0x67,0x94,0xf3,0x14,0xc3,0x24,0xf3,0x14,0xe7,0x10,0x7f,0xfd,0xfd,0x7f,0xfd,0x7f,0x6f,0xfb,0xfb,0xef,0xdb,0xff,0xfb,0xef,0xef,0xff, -0xe7,0x18,0xe3,0x24,0x87,0x44,0xc3,0x40,0x03,0x80,0x83,0x80,0x83,0x80,0x07,0x04,0xe7,0xff,0xfb,0xdf,0xbf,0xfb,0xff,0xbf,0x7f,0xff,0xff,0x7f,0xff,0x7f,0xff,0xfb, -0xb0,0x88,0x98,0xa0,0x3d,0xa5,0x18,0x85,0x8f,0x12,0x9f,0x10,0x8f,0x00,0x06,0x89,0xf7,0x7f,0xdf,0x7f,0x7f,0xda,0x7a,0xff,0xef,0xfd,0xff,0xef,0xff,0xff,0x76,0xff, -0xe0,0x90,0x70,0x90,0xc0,0x20,0xe0,0x20,0x80,0x40,0xc0,0x40,0x00,0x80,0x80,0x80,0xef,0x7f,0x7f,0xef,0xdf,0xff,0xff,0xdf,0xbf,0xff,0xff,0xbf,0x7f,0xff,0xff,0x7f, -0x76,0x0a,0x7c,0x0a,0x73,0x05,0x76,0x05,0x71,0x02,0x73,0x02,0x70,0x01,0x00,0x00,0xf7,0xfd,0xfd,0xf7,0xfb,0xfe,0xfe,0xfb,0xfd,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff, -0xe0,0x0e,0xee,0x00,0xee,0x00,0xee,0x00,0xee,0x00,0xee,0x00,0xee,0x00,0x00,0x00,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xe8,0x0e,0xfe,0x01,0xee,0x19,0xf7,0x10,0xe7,0x00,0xe7,0x00,0xe7,0x00,0x00,0x00,0xf9,0xf7,0xfe,0xff,0xee,0xf7,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x61,0x12,0x63,0x14,0x63,0x14,0x67,0x10,0x63,0x14,0x63,0x14,0x61,0x12,0x00,0x00,0xed,0xff,0xeb,0xff,0xeb,0xff,0xef,0xff,0xeb,0xff,0xeb,0xff,0xed,0xff,0xff,0xff, -0xe3,0x10,0xf3,0xc8,0x33,0x08,0xfb,0x00,0x03,0x00,0x53,0x68,0xe3,0x10,0x00,0x00,0xef,0xff,0xf7,0x3f,0xf7,0xff,0xff,0xff,0xff,0xff,0xd7,0xbf,0xef,0xff,0xff,0xff, -0xa0,0x38,0xf8,0x05,0xb8,0x65,0xdd,0x40,0x9c,0x01,0x9c,0x01,0x9c,0x00,0x00,0x00,0xe7,0xdf,0xfa,0xff,0xba,0xdf,0xff,0xbf,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, -0x7e,0x80,0xfe,0x30,0xce,0x00,0xce,0x00,0xce,0x00,0xfe,0x30,0x7e,0x80,0x00,0x00,0x7f,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x7f,0xff,0xff,0xff, -0x3c,0x42,0x7e,0x99,0x66,0x81,0xe7,0x00,0x66,0x81,0x7e,0x99,0x3c,0x42,0x00,0x00,0xbd,0xff,0x7e,0xe7,0x7e,0xff,0xff,0xff,0x7e,0xff,0x7e,0xe7,0xbd,0xff,0xff,0xff, -0x38,0x00,0x3c,0x04,0x3c,0x04,0x18,0x24,0x3d,0x23,0x0f,0x10,0x07,0x08,0x05,0x06,0xff,0xff,0xff,0xfb,0xff,0xfb,0xdb,0xff,0xfd,0xde,0xef,0xff,0xf7,0xff,0xfd,0xfb, -0x7c,0x82,0x0e,0x12,0x1c,0x00,0x38,0x24,0x7c,0x44,0x79,0x81,0xf0,0x09,0xd1,0x30,0x7d,0xff,0xef,0xfd,0xff,0xff,0xfb,0xdf,0xff,0xbb,0x7f,0xfe,0xf6,0xff,0xdf,0xef, -0x3f,0x40,0x7f,0x00,0xef,0x9f,0x70,0x90,0xe0,0x00,0xc0,0x20,0xe0,0x20,0xc0,0x00,0xbf,0xff,0xff,0xff,0xef,0x70,0x7f,0xef,0xff,0xff,0xdf,0xff,0xff,0xdf,0xff,0xff, -0xc0,0x21,0xe1,0x00,0x73,0x92,0x71,0x92,0xe1,0x92,0xe3,0x90,0x7f,0x0c,0x3b,0x4c,0xde,0xff,0xff,0xff,0x7f,0xed,0x7d,0xef,0xed,0x7f,0xef,0x7f,0xff,0xf3,0xbb,0xf7, -0xcd,0x12,0x9f,0x50,0x8f,0x40,0xc6,0x49,0x87,0x09,0x0c,0x8a,0x0e,0x8a,0x80,0x84,0xed,0xff,0xbf,0xef,0xbf,0xff,0xf6,0xbf,0xf7,0xfe,0x7d,0xf7,0x7f,0xf5,0xfb,0x7f, -0xde,0x50,0x0f,0x81,0x8f,0x81,0x07,0x09,0x06,0x09,0x06,0x09,0x0e,0x09,0x0f,0x08,0xff,0xaf,0x7f,0xfe,0xff,0x7e,0xf7,0xfe,0xf6,0xff,0xf6,0xff,0xfe,0xf7,0xff,0xf7, -0x38,0x48,0x38,0x48,0xb0,0xc0,0xe0,0x90,0xe0,0x90,0xff,0x80,0xff,0x80,0xff,0x80,0xbf,0xf7,0xbf,0xf7,0xbf,0x7f,0xef,0x7f,0xef,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x10,0xf0,0x10,0xd0,0x30,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xef,0xdf,0xef, -0x79,0x09,0x78,0x08,0xf0,0x80,0xe0,0x90,0x6d,0x9e,0x7f,0x80,0xff,0x00,0xf9,0x07,0xff,0xf6,0xff,0xf7,0xff,0x7f,0xef,0x7f,0x6d,0xf3,0x7f,0xff,0xff,0xff,0xf9,0xfe, -0x77,0x80,0xf7,0x80,0xf3,0x84,0x63,0x94,0xf7,0x14,0xc3,0x20,0x83,0x42,0x81,0x81,0x7f,0xff,0xff,0x7f,0xfb,0x7f,0x6b,0xff,0xff,0xeb,0xdf,0xff,0xbf,0xfd,0xff,0x7e, -0x07,0x04,0x03,0x04,0x8f,0x88,0x16,0x99,0xaf,0x71,0xfc,0x02,0xf8,0x04,0x48,0xb8,0xff,0xfb,0xfb,0xff,0xff,0x77,0x76,0xef,0xaf,0xde,0xfd,0xff,0xfb,0xff,0x4f,0xf7, -0x0e,0x89,0x8e,0x89,0x87,0x89,0x07,0x09,0x0e,0x00,0x0e,0x00,0x1c,0x12,0x1c,0x12,0x7e,0xf7,0xfe,0x77,0xf7,0x7e,0xf7,0xfe,0xff,0xff,0xff,0xff,0xfd,0xef,0xfd,0xef, -0x00,0x00,0x00,0x00,0x1c,0x22,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x08,0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff, -0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x50,0xf8,0x20,0xa8,0x50,0xa8,0x00,0x20,0xa8,0xff,0xff,0xff,0xff,0x77,0xff,0xaf,0xff,0xff,0xdf,0xaf,0xff,0xff,0xff,0x77,0xdf, -}; -extern const unsigned int border_chr_size = sizeof(border_chr); -const unsigned char border_map[]={ -0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, -0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, -0x00,0x10,0x00,0x10,0x01,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10, -0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x03,0x10,0x00,0x10,0x00,0x10, -0x00,0x10,0x04,0x10,0x05,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10, -0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x07,0x10,0x08,0x10,0x00,0x10, -0x09,0x10,0x0a,0x10,0x0b,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0d,0x10,0x0e,0x10,0x0f,0x10,0x10,0x10,0x11,0x10,0x12,0x10, -0x13,0x10,0x14,0x10,0x15,0x10,0x16,0x10,0x17,0x10,0x18,0x10,0x19,0x10,0x1a,0x10,0x1b,0x10,0x1c,0x10,0x1d,0x10,0x0c,0x10,0x0c,0x10,0x0b,0x10,0x1e,0x10,0x1f,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x22,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10, -0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x23,0x10,0x24,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x2a,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x2b,0x10,0x2c,0x10,0x2d,0x10,0x2e,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x26,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x25,0x10,0x2f,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x30,0x10,0x31,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x32,0x10,0x33,0x10,0x00,0x10, -0x20,0x10,0x21,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x27,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10, -0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x28,0x10,0x29,0x10,0x0b,0x10,0x0b,0x10,0x34,0x10,0x35,0x10,0x00,0x10, -0x36,0x10,0x37,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x38,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10, -0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x39,0x10,0x3a,0x10,0x3b,0x10,0x3c,0x10,0x3d,0x10,0x3e,0x10,0x00,0x10, -0x00,0x10,0x3f,0x10,0x40,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10, -0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x41,0x10,0x42,0x10,0x43,0x10,0x44,0x10,0x45,0x10,0x00,0x10,0x00,0x10, -0x00,0x10,0x00,0x10,0x46,0x10,0x47,0x10,0x47,0x10,0x47,0x10,0x47,0x10,0x47,0x10,0x47,0x10,0x47,0x10,0x48,0x10,0x49,0x10,0x4a,0x10,0x4b,0x10,0x4c,0x10,0x4d,0x10, -0x4e,0x10,0x4f,0x10,0x50,0x10,0x51,0x10,0x52,0x10,0x53,0x10,0x54,0x10,0x47,0x10,0x47,0x10,0x55,0x10,0x56,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, -0x00,0x10,0x00,0x10,0x57,0x10,0x58,0x10,0x00,0x10,0x59,0x10,0x00,0x10,0x00,0x10,0x5a,0x10,0x00,0x10,0x5b,0x10,0x5c,0x10,0x5d,0x10,0x5e,0x10,0x5f,0x10,0x60,0x10, -0x61,0x10,0x62,0x10,0x63,0x10,0x64,0x10,0x65,0x10,0x66,0x10,0x67,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, -0x00,0x10,0x00,0x10,0x68,0x10,0x69,0x10,0x6a,0x10,0x6b,0x10,0x6c,0x10,0x6d,0x10,0x6e,0x10,0x6f,0x10,0x70,0x10,0x71,0x10,0x72,0x10,0x73,0x10,0x74,0x10,0x75,0x10, -0x76,0x10,0x77,0x10,0x78,0x10,0x79,0x10,0x7a,0x10,0x7b,0x10,0x7c,0x10,0x7d,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, -}; -extern const unsigned int border_map_size = sizeof(border_map); -const unsigned char border_pal[]={ -0x1f,0x7c,0x98,0x39,0xad,0x3d,0x19,0x63,0x11,0x31,0x49,0x1d,0xed,0x2c,0x94,0x52,0xef,0x45,0xdf,0x59,0xab,0x51,0xce,0x41,0x7c,0x73,0x06,0x3d,0x1f,0x7c,0x1f,0x7c, -}; -extern const unsigned int border_pal_size = sizeof(border_pal); diff --git a/gbdk-lib/examples/ap/sgb_border/border_data.h b/gbdk-lib/examples/ap/sgb_border/border_data.h @@ -1,14 +0,0 @@ -#ifndef __SGB_BORDER_DATA_H_INCLUDE -#define __SGB_BORDER_DATA_H_INCLUDE - -#include <gb/gb.h> -#include <stdint.h> - -extern const unsigned char border_chr[]; -extern const unsigned int border_chr_size; -extern const unsigned char border_map[]; -extern const unsigned int border_map_size; -extern const unsigned char border_pal[]; -extern const unsigned int border_pal_size; - -#endif - diff --git a/gbdk-lib/examples/ap/sgb_border/sgb_border.c b/gbdk-lib/examples/ap/sgb_border/sgb_border.c @@ -1,69 +0,0 @@ -#include "sgb_border.h" - -#include <gb/gb.h> -#include <stdint.h> -#include <gb/sgb.h> -#include <string.h> - -#define SGB_CHR_BLOCK0 0 -#define SGB_CHR_BLOCK1 1 - -#define SGB_SCR_FREEZE 1 -#define SGB_SCR_UNFREEZE 0 - -#define SGB_TRANSFER(A,B) map_buf[0]=(A),map_buf[1]=(B),sgb_transfer(map_buf) - -void set_sgb_border(unsigned char * tiledata, size_t tiledata_size, - unsigned char * tilemap, size_t tilemap_size, - unsigned char * palette, size_t palette_size) { - if (sgb_check()) { - unsigned char map_buf[20]; - memset(map_buf, 0, sizeof(map_buf)); - - SGB_TRANSFER((SGB_MASK_EN << 3) | 1, SGB_SCR_FREEZE); - - BGP_REG = OBP0_REG = OBP1_REG = 0xE4U; - SCX_REG = SCY_REG = 0U; - - uint8_t tmp_lcdc = LCDC_REG; - - HIDE_SPRITES, HIDE_WIN, SHOW_BKG; - DISPLAY_ON; - // prepare tilemap for SGB_BORDER_CHR_TRN (should display all 256 tiles) - uint8_t i = 0U; - for (uint8_t y = 0; y != 14U; ++y) { - uint8_t * dout = map_buf; - for (uint8_t x = 0U; x != 20U; ++x) { - *dout++ = i++; - } - set_bkg_tiles(0, y, 20, 1, map_buf); - } - memset(map_buf, 0, sizeof(map_buf)); - - // transfer tile data - uint8_t ntiles = (tiledata_size > 256 * 32) ? 0 : tiledata_size >> 5; - if ((!ntiles) || (ntiles > 128U)) { - set_bkg_data(0, 0, tiledata); - SGB_TRANSFER((SGB_CHR_TRN << 3) | 1, SGB_CHR_BLOCK0); - if (ntiles) ntiles -= 128U; - tiledata += (128 * 32); - set_bkg_data(0, ntiles << 1, tiledata); - SGB_TRANSFER((SGB_CHR_TRN << 3) | 1, SGB_CHR_BLOCK1); - } else { - set_bkg_data(0, ntiles << 1, tiledata); - SGB_TRANSFER((SGB_CHR_TRN << 3) | 1, SGB_CHR_BLOCK0); - } - - // transfer map and palettes - set_bkg_data(0, (uint8_t)(tilemap_size >> 4), tilemap); - set_bkg_data(128, (uint8_t)(palette_size >> 4), palette); - SGB_TRANSFER((SGB_PCT_TRN << 3) | 1, 0); - - LCDC_REG = tmp_lcdc; - - // clear SCREEN - fill_bkg_rect(0, 0, 20, 18, 0); - - SGB_TRANSFER((SGB_MASK_EN << 3) | 1, SGB_SCR_UNFREEZE); - } -} diff --git a/gbdk-lib/examples/ap/sgb_border/sgb_border.h b/gbdk-lib/examples/ap/sgb_border/sgb_border.h @@ -1,24 +0,0 @@ -#ifndef __SGB_BORDER_H_INCLUDE -#define __SGB_BORDER_H_INCLUDE - -#include <gb/gb.h> -#include <stdint.h> - -#define SNES_RGB(R,G,B) (uint16_t)((B) << 10 | (G) << 5 | (R)) - -/** sets SGB border - - When using the SGB with a PAL SNES, a delay should be added - just after program startup such as: - - \code{.c} - // Wait 4 frames - // For PAL SNES this delay is required on startup - for (uint8_t i = 4; i != 0; i--) vsync(); - \endcode -*/ -void set_sgb_border(unsigned char * tiledata, size_t tiledata_size, - unsigned char * tilemap, size_t tilemap_size, - unsigned char * palette, size_t palette_size); - -#endif - diff --git a/gbdk-lib/examples/ap/sgb_multiplayer/Makefile b/gbdk-lib/examples/ap/sgb_multiplayer/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS -Wm-ys - -BINS = sgb_multiplayer.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/sgb_multiplayer/sgb_multiplayer.c b/gbdk-lib/examples/ap/sgb_multiplayer/sgb_multiplayer.c @@ -1,43 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include <gb/sgb.h> - -uint8_t sprite_data[] = { - 0x3C,0x3C,0x42,0x7E,0x99,0xFF,0xA9,0xFF,0x89,0xFF,0x89,0xFF,0x42,0x7E,0x3C,0x3C, - 0x3C,0x3C,0x42,0x7E,0xB9,0xFF,0x89,0xFF,0x91,0xFF,0xB9,0xFF,0x42,0x7E,0x3C,0x3C, - 0x3C,0x3C,0x42,0x7E,0x99,0xFF,0x89,0xFF,0x99,0xFF,0x89,0xFF,0x5A,0x7E,0x3C,0x3C, - 0x3C,0x3C,0x42,0x7E,0xA9,0xFF,0xA9,0xFF,0xB9,0xFF,0x89,0xFF,0x42,0x7E,0x3C,0x3C -}; - -joypads_t joypads; - -void main(void) { - BGP_REG = OBP0_REG = OBP1_REG = 0xE4; - set_sprite_data(0, 4, sprite_data); - for (uint8_t i = 0; i < 4; i++) { - set_sprite_tile(i, i); - move_sprite(i, (i << 3) + 64, 64); - } - SHOW_SPRITES; - - // init joypads - joypad_init(4, &joypads); - - while(1) { - // poll joypads - joypad_ex(&joypads); - // iterate joypads, move sprites - for (uint8_t i = 0; i < joypads.npads; i++) { - uint8_t joy = joypads.joypads[i]; - if (joy & J_LEFT) scroll_sprite(i, -1, 0); - if (joy & J_RIGHT) scroll_sprite(i, 1, 0); - if (joy & J_UP) scroll_sprite(i, 0, -1); - if (joy & J_DOWN) scroll_sprite(i, 0, 1); - } - // start on joypad 1 resets position - if (joypads.joy0 & J_START) { - for (uint8_t i = 0; i < 4; i++) move_sprite(i, (i << 3) + 64, 64); - } - vsync(); - } -} - diff --git a/gbdk-lib/examples/ap/sound/Makefile b/gbdk-lib/examples/ap/sound/Makefile @@ -1,17 +0,0 @@ -CC = ../../../bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = sound.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.c - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/sound/readme.md b/gbdk-lib/examples/ap/sound/readme.md @@ -1,13 +0,0 @@ -Updated version of the original Sound Sample that merges -in changes made at: https://github.com/gbdk-2020/GBSoundDemo - -Keys: -- Select: change current channel menu -- Start: play current Sound -- Start + A: play a song -- Arrows: navigate throught options -- Arrows + A: Increments/Decrements current value by 10 -- Arrows + B: Increments/Decrements current value by 100 -- Arrows + A + B: set Min/Max value to current option -- Select + A: Dump Registers - diff --git a/gbdk-lib/examples/ap/sound/sound.c b/gbdk-lib/examples/ap/sound/sound.c @@ -1,1067 +0,0 @@ -#include <gb/gb.h> -#include <gbdk/console.h> -#include <stdint.h> -#include <stdio.h> - -#define ARROW_CHAR '>' -#define SPACE_CHAR ' ' - -#define ARROW_X 0 -#define VAL_X 15 -#define TITLE_Y 0 -#define FIRST_X (ARROW_X+1) -#define FIRST_Y (TITLE_Y+2) - -#define PLAY 0x20 -#define FREQUENCY 0x21 - -#define MIN(x,y) ((x) > (y) ? (y) : (x)) -#define MAX(x,y) ((x) < (y) ? (y) : (x)) - -#define NB_MODES 5 - -#define UNSIGNED 0 - -uint8_t previous_keys = 0; -int8_t keys = 0; -#define UPDATE_KEYS() previous_keys = keys; keys = joypad() -#define KEY_PRESSED(K) (keys & (K)) -#define KEY_TICKED(K) ((keys & (K)) && !(previous_keys & (K))) - -void show_register_channel(uint8_t mode); - -void clss(void) { - uint8_t i = 0; - for(i = 0; i < 18; ++i) { - gotoxy(0, i); - printf(" "); - } -} - -void print(const char* str) { - printf("%s", str); -} - -const char hex[] = "0123456789ABCDEF"; -void printn(uint16_t n, uint8_t base, uint8_t sign) { - (void) sign; - if(base == 16u) { - printf("%c", hex[0x000Fu & (n >> 4u)]); - printf("%c", hex[0x000Fu & (n)]); - } else { - printf("%d", n); - } -} - - -void println(uint16_t n, uint8_t base, uint8_t sign) { - printn(n, base, sign); - printf("\n"); -} - -enum notes { - C0, Cd0, D0, Dd0, E0, F0, Fd0, G0, Gd0, A0, Ad0, B0, - C1, Cd1, D1, Dd1, E1, F1, Fd1, G1, Gd1, A1, Ad1, B1, - C2, Cd2, D2, Dd2, E2, F2, Fd2, G2, Gd2, A2, Ad2, B2, - C3, Cd3, D3, Dd3, E3, F3, Fd3, G3, Gd3, A3, Ad3, B3, - C4, Cd4, D4, Dd4, E4, F4, Fd4, G4, Gd4, A4, Ad4, B4, - C5, Cd5, D5, Dd5, E5, F5, Fd5, G5, Gd5, A5, Ad5, B5, - SILENCE, END -}; - -const uint16_t frequencies[] = { - 44, 156, 262, 363, 457, 547, 631, 710, 786, 854, 923, 986, - 1046, 1102, 1155, 1205, 1253, 1297, 1339, 1379, 1417, 1452, 1486, 1517, - 1546, 1575, 1602, 1627, 1650, 1673, 1694, 1714, 1732, 1750, 1767, 1783, - 1798, 1812, 1825, 1837, 1849, 1860, 1871, 1881, 1890, 1899, 1907, 1915, - 1923, 1930, 1936, 1943, 1949, 1954, 1959, 1964, 1969, 1974, 1978, 1982, - 1985, 1988, 1992, 1995, 1998, 2001, 2004, 2006, 2009, 2011, 2013, 2015 -}; - -const uint8_t music[] = { - C3, C3, G3, G3, A3, A3, G3, SILENCE, - F3, F3, E3, E3, D3, D3, C3, SILENCE, - G3, G3, F3, F3, E3, E3, D3, D3, - G3, G3, F3, F3, E3, E3, D3, D3, - C3, C3, G3, G3, A3, A3, G3, SILENCE, - F3, F3, E3, E3, D3, D3, C3, SILENCE, - END -}; - -struct Params { - char *name; - uint16_t max; -}; - -const struct Params params_0[] = { - { "Main Controls" , 0 }, - { "All On/Off" , 1 }, - { "Vin->SO1" , 1 }, - { "Vin->SO2" , 1 }, - { "SO1 Volume" , 7 }, - { "SO2 Volume" , 7 }, - { NULL , 0 } -}; - -const struct Params params_1[] = { - { "Sound Mode #1" , 0 }, - { "Swp Time" , 7 }, - { "Swp Mode" , 1 }, - { "Swp Shifts" , 7 }, - { "Pat Duty" , 3 }, - { "Sound Len" , 63 }, - { "Env Init" , 15 }, - { "Env Mode" , 1 }, - { "Env Nb Swp" , 7 }, - { "Frequency" , 2047 }, - { "Cons Sel" , 1 }, - { "Out to SO1" , 1 }, - { "Out to SO2" , 1 }, - { "On/Off" , 1 }, - { NULL , 0 } -}; - -const struct Params params_2[] = { - { "Sound Mode #2" , 0 }, - { "Pat Duty" , 3 }, - { "Sound Len" , 63 }, - { "Env Init" , 15 }, - { "Env Mode" , 1 }, - { "Env Nb Step" , 7 }, - { "Frequency" , 2047 }, - { "Cons Sel" , 1 }, - { "Out to SO1" , 1 }, - { "Out to SO2" , 1 }, - { "On/Off" , 1 }, - { NULL , 0 } -}; - -const struct Params params_3[] = { - { "Sound Mode #3" , 0 }, - { "Sound On/Off" , 1 }, - { "Sound Len" , 255 }, - { "Sel Out Level" , 3 }, - { "Frequency" , 2047 }, - { "Cons Sel" , 1 }, - { "Out to SO1" , 1 }, - { "Out to SO2" , 1 }, - { "On/Off" , 1 }, - { NULL , 0 } -}; - -const struct Params params_4[] = { - { "Sound Mode #4" , 0 }, - { "Sound Len" , 63 }, - { "Env Init" , 15 }, - { "Env Mode" , 1 }, - { "Env Nb Step" , 7 }, - { "Poly Cnt Freq" , 15 }, - { "Poly Cnt Step" , 1 }, - { "Poly Cnt Div" , 7 }, - { "Cons Sel" , 1 }, - { "Out to SO1" , 1 }, - { "Out to SO2" , 1 }, - { "On/Off" , 1 }, - { NULL , 0 } -}; - -const struct Params *params_array[] = { - params_0, - params_1, - params_2, - params_3, - params_4, -}; - -const struct Params *params; - -struct SoundReg { - struct { - //NR10 0xFF10 - uint16_t sweepShifts ;//: 3; - uint16_t sweepMode ;//: 1; - uint16_t sweepTime ;//: 3; - uint16_t unused_1 ;//: 1; - - //NR11 0xFF11 - uint16_t soundLength ;//: 6; - uint16_t patternDuty ;//: 2; - - //NR12 0xFF12 - uint16_t envNbSweep ;//: 3; - uint16_t envMode ;//: 1; - uint16_t envInitialValue ;//: 4; - - //NR13 0xFF13 - uint16_t frequencyLow; - - //NR14 0xFF14 - uint16_t frequencyHigh ;//: 3; - uint16_t unused_2 ;//: 3; - uint16_t counter_ConsSel ;//: 1; - uint16_t restart ;//: 1; - } mode1; - struct { - //NR20 0xFF15 - uint16_t unused_1; - - //NR21 0xFF16 - uint16_t soundLength ;//: 6; - uint16_t patternDuty ;//: 2; - - //NR22 0xFF17 - uint16_t envNbStep ;//: 3; - uint16_t envMode ;//: 1; - uint16_t envInitialValue ;//: 4; - - //NR23 0xFF18 - uint16_t frequencyLow; - - //NR24 0xFF19 - uint16_t frequencyHigh ;//: 3; - uint16_t unused_2 ;//: 3; - uint16_t counter_ConsSel ;//: 1; - uint16_t restart ;//: 1; - } mode2; - struct { - //NR30 0xFF1A - uint16_t unused_1 ;//: 7; - uint16_t on_Off ;//: 1; - - //NR31 0xFF1B - uint16_t soundLength; - - //NR32 0xFF1C - uint16_t unused_2 ;//: 5; - uint16_t selOutputLevel ;//: 2; - uint16_t unused_3 ;//: 1; - - //NR33 0xFF1D - uint16_t frequencyLow; - - //NR34 0xFF1E - uint16_t frequencyHigh ;//: 3; - uint16_t unused_4 ;//: 3; - uint16_t counter_ConsSel ;//: 1; - uint16_t restart ;//: 1; - } mode3; - struct { - //NR40 0xFF1F - uint16_t unused_1; - - //NR41 0xFF20 - uint16_t soundLength ;//: 6; - uint16_t unused_2 ;//: 2; - - //NR42 0xFF21 - uint16_t envNbStep ;//: 3; - uint16_t envMode ;//: 1; - uint16_t envInitialValue ;//: 4; - - //NR43 0xFF22 - uint16_t polyCounterDiv ;//: 3; - uint16_t polyCounterStep ;//: 1; - uint16_t polyCounterFreq ;//: 4; - - //NR44 0xFF23 - uint16_t unused_3 ;//: 6; - uint16_t counter_ConsSel ;//: 1; - uint16_t restart ;//: 1; - } mode4; - struct { - // NR50 0xFF24 - uint16_t SO1_OutputLevel ;//: 3; - uint16_t Vin_SO1 ;//: 1; - uint16_t SO2_OutputLevel ;//: 3; - uint16_t Vin_SO2 ;//: 1; - - // NR51 0xFF25 - uint16_t Sound1_To_SO1 ;//: 1; - uint16_t Sound2_To_SO1 ;//: 1; - uint16_t Sound3_To_SO1 ;//: 1; - uint16_t Sound4_To_SO1 ;//: 1; - uint16_t Sound1_To_SO2 ;//: 1; - uint16_t Sound2_To_SO2 ;//: 1; - uint16_t Sound3_To_SO2 ;//: 1; - uint16_t Sound4_To_SO2 ;//: 1; - - // NR52 0xFF26 - uint16_t Sound1_On_Off ;//: 1; - uint16_t Sound2_On_Off ;//: 1; - uint16_t Sound3_On_Off ;//: 1; - uint16_t Sound4_On_Off ;//: 1; - uint16_t unused_1 ;//: 3; - uint16_t global_On_Off ;//: 1; - } control; -}; - -struct SoundReg *soundReg; - -struct SoundReg s = { - { 0u, 0u, 0u, 0u, - 1, 2, - 3, 0, 4, - 0x73U, - 6, 0, 0, 0 }, - { 0, - 1, 2, - 4, 0, 8, - 0xD7U, - 6, 0, 0, 0 }, - { 0, 1, - 0, - 0, 3, 0, - 0xD6U, - 6, 0, 1, 0 }, - { 0, - 58, 0, - 1, 0, 10, - 0, 0, 0, - 0, 1, 0 }, - { 7, 0, 7, 0, - 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 1 } -}; - -uint8_t NR10(void) { - return soundReg->mode1.sweepShifts | (soundReg->mode1.sweepMode << 3) | (soundReg->mode1.sweepTime << 4); -} - -uint8_t NR11(void) { - return soundReg->mode1.soundLength | (soundReg->mode1.patternDuty << 6); -} - -uint8_t NR12(void) { - return soundReg->mode1.envNbSweep | (soundReg->mode1.envMode << 3) | (soundReg->mode1.envInitialValue << 4); -} - -uint8_t NR13(void) { - return soundReg->mode1.frequencyLow; -} - -uint8_t NR14(void) { - return soundReg->mode1.frequencyHigh | (soundReg->mode1.counter_ConsSel << 6) | (soundReg->mode1.restart << 7); -} - -//-------------------------- -uint8_t NR21(void) { - return soundReg->mode2.soundLength | (soundReg->mode2.patternDuty << 6); -} - -uint8_t NR22(void) { - return soundReg->mode2.envNbStep | (soundReg->mode2.envMode << 3) | (soundReg->mode2.envInitialValue << 4); -} - -uint8_t NR23(void) { - return soundReg->mode2.frequencyLow; -} - -uint8_t NR24(void) { - return soundReg->mode2.frequencyHigh | (soundReg->mode2.counter_ConsSel << 6) | (soundReg->mode2.restart << 7); -} - -//------------------------------- -uint8_t NR30(void) { - return soundReg->mode3.on_Off << 7; -} - -uint8_t NR31(void) { - return soundReg->mode3.soundLength; -} - -uint8_t NR32(void) { - return soundReg->mode3.selOutputLevel << 5; -} - -uint8_t NR33(void) { - return soundReg->mode3.frequencyLow; -} - -uint8_t NR34(void) { - return soundReg->mode3.frequencyHigh | (soundReg->mode3.counter_ConsSel << 6) | (soundReg->mode3.restart << 7); -} - -//------------------------------- -uint8_t NR41(void) { - return soundReg->mode4.soundLength; -} - -uint8_t NR42(void) { - return soundReg->mode4.envNbStep | (soundReg->mode4.envMode << 3) | (soundReg->mode4.envInitialValue << 4); -} - -uint8_t NR43(void) { - return soundReg->mode4.polyCounterDiv | (soundReg->mode4.polyCounterStep << 3) | (soundReg->mode4.polyCounterFreq << 4); -} - -uint8_t NR44(void) { - return (soundReg->mode4.counter_ConsSel << 6) | (soundReg->mode4.restart << 7); -} - -//------------------------------- -uint8_t NR50(void) { - return soundReg->control.SO1_OutputLevel | (soundReg->control.Vin_SO1 << 3u) | (soundReg->control.SO2_OutputLevel << 4u) | - (soundReg->control.Vin_SO2 << 7u); -} - -uint8_t NR51(void) { - return soundReg->control.Sound1_To_SO1 | (soundReg->control.Sound2_To_SO1 << 1) | (soundReg->control.Sound3_To_SO1 << 2) | - (soundReg->control.Sound4_To_SO1 << 3) | (soundReg->control.Sound1_To_SO2 << 4) | (soundReg->control.Sound2_To_SO2 << 5) | - (soundReg->control.Sound3_To_SO2 << 6)| (soundReg->control.Sound4_To_SO2 << 7); -} - -uint8_t NR52(void) { - return soundReg->control.global_On_Off << 7; -} - -//--------------------------------------------------------------------------------- -uint16_t current_value(uint8_t mode, uint8_t line) -{ - if(mode == 0) { - switch(line) - { - case 0: // global_On_Off - return soundReg->control.global_On_Off; - case 1: // Vin_SO1 - return soundReg->control.Vin_SO1; - case 2: // Vin_SO2 - return soundReg->control.Vin_SO2; - case 3: // SO1_OutputLevel - return soundReg->control.SO1_OutputLevel; - case 4: // SO2_OutputLevel - return soundReg->control.SO2_OutputLevel; - } - } else if(mode == 1) { - switch(line) - { - case 0: // sweepTime - return soundReg->mode1.sweepTime; - case 1: // sweepMode - return soundReg->mode1.sweepMode; - case 2: // sweepShifts - return soundReg->mode1.sweepShifts; - case 3: // patternDuty - return soundReg->mode1.patternDuty; - case 4: // soundLength - return soundReg->mode1.soundLength; - case 5: // envInitialValue - return soundReg->mode1.envInitialValue; - case 6: // envMode - return soundReg->mode1.envMode; - case 7: // envNbSweep - return soundReg->mode1.envNbSweep; - case 8: // frequency - case FREQUENCY: - return (soundReg->mode1.frequencyHigh << 8) | soundReg->mode1.frequencyLow; - case 9: // counter_ConsSel - return soundReg->mode1.counter_ConsSel; - case 10: // Sound1_To_SO1 - return soundReg->control.Sound1_To_SO1; - case 11: // Sound1_To_SO2 - return soundReg->control.Sound1_To_SO2; - case 12: // Sound1_On_Off - return soundReg->control.Sound1_On_Off; - } - } else if(mode == 2) { - switch(line) - { - case 0: // patternDuty - return soundReg->mode2.patternDuty; - case 1: // soundLength - return soundReg->mode2.soundLength; - case 2: // envInitialValue - return soundReg->mode2.envInitialValue; - case 3: // envMode - return soundReg->mode2.envMode; - case 4: // envNbStep - return soundReg->mode2.envNbStep; - case 5: // frequency - case FREQUENCY: - return (soundReg->mode2.frequencyHigh << 8) | soundReg->mode2.frequencyLow; - case 6: // counter_ConsSel - return soundReg->mode2.counter_ConsSel; - case 7: // Sound2_To_SO1 - return soundReg->control.Sound2_To_SO1; - case 8: // Sound2_To_SO2 - return soundReg->control.Sound2_To_SO2; - case 9: // Sound2_On_Off - return soundReg->control.Sound2_On_Off; - } - } else if(mode == 3) { - switch(line) - { - case 0: // on_Off - return soundReg->mode3.on_Off; - case 1: // soundLength - return soundReg->mode3.soundLength; - case 2: // selOutputLevel - return soundReg->mode3.selOutputLevel; - case 3: // frequency - case FREQUENCY: - return (soundReg->mode3.frequencyHigh << 8) | soundReg->mode3.frequencyLow; - case 4: // counter_ConsSel - return soundReg->mode3.counter_ConsSel; - case 5: // Sound3_To_SO1 - return soundReg->control.Sound3_To_SO1; - case 6: // Sound3_To_SO2 - return soundReg->control.Sound3_To_SO2; - case 7: // Sound3_On_Off - return soundReg->control.Sound3_On_Off; - } - } else if(mode == 4) { - switch(line) - { - case 0: // soundLength - return soundReg->mode4.soundLength; - case 1: // envInitialValue - return soundReg->mode4.envInitialValue; - case 2: // envMode - return soundReg->mode4.envMode; - case 3: // envNbStep - return soundReg->mode4.envNbStep; - case 4: // polyCounterFreq - return soundReg->mode4.polyCounterFreq; - case 5: // polyCounterStep - return soundReg->mode4.polyCounterStep; - case 6: // polyCounterDiv - return soundReg->mode4.polyCounterDiv; - case 7: // counter_ConsSel - return soundReg->mode4.counter_ConsSel; - case 8: // Sound4_To_SO1 - return soundReg->control.Sound4_To_SO1; - case 9: // Sound4_To_SO2 - return soundReg->control.Sound4_To_SO2; - case 10: // Sound4_On_Off - return soundReg->control.Sound4_On_Off; - } - } - return 0; -} - -void update_value(uint8_t mode, uint8_t line, uint16_t value) -{ - if(mode == 0) { - switch(line) - { - case 0: // global_On_Off - soundReg->control.global_On_Off = value; - NR52_REG = NR52(); - break; - case 1: // Vin_SO1 - soundReg->control.Vin_SO1 = value; - NR50_REG = NR50(); - break; - case 2: // Vin_SO2 - soundReg->control.Vin_SO2 = value; - NR50_REG = NR50(); - break; - case 3: // SO1_OutputLevel - soundReg->control.SO1_OutputLevel = value; - NR50_REG = NR50(); - break; - case 4: // SO2_OutputLevel - soundReg->control.SO2_OutputLevel = value; - NR50_REG = NR50(); - break; - case FREQUENCY: - update_value(1, FREQUENCY, value); - update_value(2, FREQUENCY, value); - update_value(3, FREQUENCY, value); - break; - case PLAY: // restart - update_value(1, FREQUENCY, current_value(1, FREQUENCY)); - update_value(2, FREQUENCY, current_value(2, FREQUENCY)); - update_value(3, FREQUENCY, current_value(3, FREQUENCY)); - soundReg->mode1.restart = value; - soundReg->mode2.restart = value; - soundReg->mode3.restart = value; - soundReg->mode4.restart = value; - NR14_REG = NR14(); - NR24_REG = NR24(); - NR34_REG = NR34(); - NR44_REG = NR44(); - soundReg->mode1.restart = 0; - soundReg->mode2.restart = 0; - soundReg->mode3.restart = 0; - soundReg->mode4.restart = 0; - break; - } - } else if(mode == 1) { - switch(line) - { - case 0: // sweepTime - soundReg->mode1.sweepTime = value; - NR10_REG = NR10(); - break; - case 1: // sweepMode - soundReg->mode1.sweepMode = value; - NR10_REG = NR10(); - break; - case 2: // sweepShifts - soundReg->mode1.sweepShifts = value; - NR10_REG = NR10(); - break; - case 3: // patternDuty - soundReg->mode1.patternDuty = value; - NR11_REG = NR11(); - break; - case 4: // soundLength - soundReg->mode1.soundLength = value; - NR11_REG = NR11(); - break; - case 5: // envInitialValue - soundReg->mode1.envInitialValue = value; - NR12_REG = NR12(); - break; - case 6: // envMode - soundReg->mode1.envMode = value; - NR12_REG = NR12(); - break; - case 7: // envNbSweep - soundReg->mode1.envNbSweep = value; - NR12_REG = NR12(); - break; - case 8: // frequency - case FREQUENCY: - soundReg->mode1.frequencyHigh = value >> 8; - soundReg->mode1.frequencyLow = 0xFF & value; - NR13_REG = NR13(); - NR14_REG = NR14(); - break; - case 9: // counter_ConsSel - soundReg->mode1.counter_ConsSel = value; - NR14_REG = NR14(); - break; - case 10: // Sound1_To_SO1 - soundReg->control.Sound1_To_SO1 = value; - NR51_REG = NR51(); - break; - case 11: // Sound1_To_SO2 - soundReg->control.Sound1_To_SO2 = value; - NR51_REG = NR51(); - break; - case 12: // Sound1_On_Off - soundReg->control.Sound1_On_Off = value; - NR52_REG = NR52(); - break; - case PLAY: // restart - update_value(mode, FREQUENCY, current_value(mode, FREQUENCY)); - soundReg->mode1.restart = value; - NR14_REG = NR14(); - soundReg->mode1.restart = 0; - break; - } - } else if(mode == 2) { - switch(line) - { - case 0: // patternDuty - soundReg->mode2.patternDuty = value; - NR21_REG = NR21(); - break; - case 1: // soundLength - soundReg->mode2.soundLength = value; - NR21_REG = NR21(); - break; - case 2: // envInitialValue - soundReg->mode2.envInitialValue = value; - NR22_REG = NR22(); - break; - case 3: // envMode - soundReg->mode2.envMode = value; - NR22_REG = NR22(); - break; - case 4: // envNbStep - soundReg->mode2.envNbStep = value; - NR22_REG = NR22(); - break; - case 5: // frequency - case FREQUENCY: - soundReg->mode2.frequencyHigh = value >> 8; - soundReg->mode2.frequencyLow = 0xFF & value; - NR23_REG = NR23(); - NR24_REG = NR24(); - break; - case 6: // counter_ConsSel - soundReg->mode2.counter_ConsSel = value; - NR24_REG = NR24(); - break; - case 7: // Sound2_To_SO1 - soundReg->control.Sound2_To_SO1 = value; - NR51_REG = NR51(); - break; - case 8: // Sound2_To_SO2 - soundReg->control.Sound2_To_SO2 = value; - NR51_REG = NR51(); - break; - case 9: // Sound2_On_Off - soundReg->control.Sound2_On_Off = value; - NR52_REG = NR52(); - break; - case PLAY: // restart - update_value(mode, FREQUENCY, current_value(mode, FREQUENCY)); - soundReg->mode2.restart = value; - NR24_REG = NR24(); - soundReg->mode2.restart = 0; - break; - } - } else if(mode == 3) { - switch(line) - { - case 0: // on_Off - soundReg->mode3.on_Off = value; - NR30_REG = NR30(); - break; - case 1: // soundLength - soundReg->mode3.soundLength = value; - NR31_REG = NR31(); - break; - case 2: // selOutputLevel - soundReg->mode3.selOutputLevel = value; - NR32_REG = NR32(); - break; - case 3: // frequency - case FREQUENCY: - soundReg->mode3.frequencyHigh = value >> 8; - soundReg->mode3.frequencyLow = 0xFF & value; - NR33_REG = NR33(); - NR34_REG = NR34(); - break; - case 4: // counter_ConsSel - soundReg->mode3.counter_ConsSel = value; - NR34_REG = NR34(); - break; - case 5: // Sound3_To_SO1 - soundReg->control.Sound3_To_SO1 = value; - NR51_REG = NR51(); - break; - case 6: // Sound3_To_SO2 - soundReg->control.Sound3_To_SO2 = value; - NR51_REG = NR51(); - break; - case 7: // Sound3_On_Off - soundReg->control.Sound3_On_Off = value; - NR52_REG = NR52(); - break; - case PLAY: // restart - update_value(mode, FREQUENCY, current_value(mode, FREQUENCY)); - soundReg->mode3.restart = value; - NR34_REG = NR34(); - soundReg->mode3.restart = 0; - break; - } - } else if(mode == 4) { - switch(line) - { - case 0: // soundLength - soundReg->mode4.soundLength = value; - NR41_REG = NR41(); - break; - case 1: // envInitialValue - soundReg->mode4.envInitialValue = value; - NR42_REG = NR42(); - break; - case 2: // envMode - soundReg->mode4.envMode = value; - NR42_REG = NR42(); - break; - case 3: // envNbStep - soundReg->mode4.envNbStep = value; - NR42_REG = NR42(); - break; - case 4: // polyCounterFreq - soundReg->mode4.polyCounterFreq = value; - NR43_REG = NR43(); - break; - case 5: // polyCounterStep - soundReg->mode4.polyCounterStep = value; - NR43_REG = NR43(); - break; - case 6: // polyCounterDiv - soundReg->mode4.polyCounterDiv = value; - NR43_REG = NR43(); - break; - case 7: // counter_ConsSel - soundReg->mode4.counter_ConsSel = value; - NR44_REG = NR44(); - break; - case 8: // Sound4_To_SO1 - soundReg->control.Sound4_To_SO1 = value; - NR51_REG = NR51(); - break; - case 9: // Sound4_To_SO2 - soundReg->control.Sound4_To_SO2 = value; - NR51_REG = NR51(); - break; - case 10: // Sound4_On_Off - soundReg->control.Sound4_On_Off = value; - NR52_REG = NR52(); - break; - case PLAY: // restart - soundReg->mode4.restart = value; - NR44_REG = NR44(); - soundReg->mode4.restart = 0; - break; - } - } -} - -uint8_t draw_screen(uint8_t mode) -{ - uint8_t i; - - clss(); - gotoxy(FIRST_X, TITLE_Y); - print(params[0].name); - - for(i = 0; params[i+1].name; i++) { - gotoxy(FIRST_X, FIRST_Y+i); - print(params[i+1].name); - gotoxy(VAL_X, FIRST_Y+i); - println(current_value(mode, i), 10, UNSIGNED); - } - - return i-1; -} - - -void play_music(uint8_t mode) -{ - uint8_t i = 0; - - while(music[i] != END) { - if(music[i] != SILENCE) { - update_value(mode, FREQUENCY, frequencies[music[i]]); - update_value(mode, PLAY, 1); - } - delay(500); - i++; - } -} - - -void show_register_channel(uint8_t mode) { - - switch (mode) { - case 1: - gotoxy(0, 16); - print("NR10-14:"); - - gotoxy(1, 17); // Last line - printn(NR10(), 16, UNSIGNED); print(", "); - printn(NR11(), 16, UNSIGNED); print(", "); - printn(NR12(), 16, UNSIGNED); print(", "); - printn(NR13(), 16, UNSIGNED); print(", "); - printn(0x80 | NR14(), 16, UNSIGNED); - - break; - - case 2: - gotoxy(0, 16); - print("NR21-24:"); - - gotoxy(1, 17); // Last line - printn(NR21(), 16, UNSIGNED); print(", "); - printn(NR22(), 16, UNSIGNED); print(", "); - printn(NR23(), 16, UNSIGNED); print(", "); - printn(0x80 | NR24(), 16, UNSIGNED); - - break; - - case 3: - gotoxy(0, 16); - print("NR30-34:"); - - gotoxy(1, 17); // Last line - printn(NR30(), 16, UNSIGNED); print(", "); - printn(NR31(), 16, UNSIGNED); print(", "); - printn(NR32(), 16, UNSIGNED); print(", "); - printn(NR33(), 16, UNSIGNED); print(", "); - printn(0x80 | NR34(), 16, UNSIGNED); - - break; - - case 4: - gotoxy(0, 16); - print("NR41-44:"); - - gotoxy(1, 17); // Last line - printn(NR41(), 16, UNSIGNED); print(", "); - printn(NR42(), 16, UNSIGNED); print(", "); - printn(NR43(), 16, UNSIGNED); print(", "); - printn(0x80 | NR44(), 16, UNSIGNED); - - break; - - case 0: - gotoxy(0, 16); - print("NR50-52:"); - - gotoxy(1, 17); // Last line - printn(NR50(), 16, UNSIGNED); print(", "); - printn(NR51(), 16, UNSIGNED); print(", "); - printn(NR52(), 16, UNSIGNED); print(", "); - - break; - - } -} - - -void dump_registers(void) -{ - clss(); - gotoxy(FIRST_X, TITLE_Y); - print("Register Dump\n\n"); - - print("NR10:");println(NR10(), 16, UNSIGNED); - print("NR11:");printn(NR11(), 16, UNSIGNED); print(" NR21:");println(NR21(), 16, UNSIGNED); - print("NR12:");printn(NR12(), 16, UNSIGNED); print(" NR22:");println(NR22(), 16, UNSIGNED); - print("NR13:");printn(NR13(), 16, UNSIGNED); print(" NR23:");println(NR23(), 16, UNSIGNED); - print("NR14:");printn(0x80 | NR14(), 16, UNSIGNED); print(" NR24:");println(0x80 | NR24(), 16, UNSIGNED); - printf("\n"); - - print("NR30:");println(NR30(), 16, UNSIGNED); - print("NR31:");printn(NR31(), 16, UNSIGNED); print(" NR41:");println(NR41(), 16, UNSIGNED); - print("NR32:");printn(NR32(), 16, UNSIGNED); print(" NR42:");println(NR42(), 16, UNSIGNED); - print("NR33:");printn(NR33(), 16, UNSIGNED); print(" NR43:");println(NR43(), 16, UNSIGNED); - print("NR34:");printn(0x80 | NR34(), 16, UNSIGNED); print(" NR44:");println(0x80 | NR44(), 16, UNSIGNED); - printf("\n"); - - print("NR50:");println(NR50(), 16, UNSIGNED); - print("NR51:");println(NR51(), 16, UNSIGNED); - print("NR52:");println(NR52(), 16, UNSIGNED); -} - -void wait_event(uint8_t mode) -{ - uint8_t y, last_y; - uint16_t l = 0; - uint16_t m = 0; - - while(1) { - params = params_array[mode]; - last_y = draw_screen(mode) + FIRST_Y; - y = FIRST_Y; - gotoxy(ARROW_X, y); - setchar(ARROW_CHAR); - - show_register_channel(mode); - - while(1) { - if(KEY_TICKED(J_UP)) { - gotoxy(ARROW_X, y); setchar(SPACE_CHAR); - if(--y < FIRST_Y) - y = last_y; - gotoxy(ARROW_X, y); setchar(ARROW_CHAR); - - } else if(KEY_TICKED(J_DOWN)) { - gotoxy(ARROW_X, y); setchar(SPACE_CHAR); - if(++y > last_y) - y = FIRST_Y; - gotoxy(ARROW_X, y); setchar(ARROW_CHAR); - - } else if(KEY_TICKED(J_LEFT)) { - l = current_value(mode, y-FIRST_Y); - if(l != 0) { - if(KEY_PRESSED(J_A) && KEY_PRESSED(J_B)) - l = 0; - else if(KEY_PRESSED(J_A)) - l = (l > 10) ? (l - 10) : 0; - else if(KEY_PRESSED(J_B)) - l = (l > 100) ? (l - 100) : 0; - else - l--; - update_value(mode, y-FIRST_Y, l); - } - gotoxy(VAL_X, y); print(" "); - gotoxy(VAL_X, y); println(l, 10, UNSIGNED); - - show_register_channel(mode); - - } else if(KEY_TICKED(J_RIGHT)) { - l = current_value(mode, y-FIRST_Y); - m = params[y-(FIRST_Y-1)].max; - if(l != m) { - if(KEY_PRESSED(J_A) && KEY_PRESSED(J_B)) { - l = m; - } - else if(KEY_PRESSED(J_A)) { - l += 10; - if(l > m) - l = m; - } else if(KEY_PRESSED(J_B)) { - l += 100; - if(l > m) - l = m; - } - else - l++; - update_value(mode, y-FIRST_Y, l); - } - gotoxy(VAL_X, y); print(" "); - gotoxy(VAL_X, y); println(l, 10, UNSIGNED); - - show_register_channel(mode); - - } else if(KEY_TICKED(J_START)) { - if (KEY_PRESSED(J_A)) - play_music(mode); - else - update_value(mode, PLAY, 1); - - } else if(KEY_PRESSED(J_SELECT)) { - if(KEY_PRESSED(J_A)) - dump_registers(); - else { - mode = (mode+1) % NB_MODES; - } - waitpadup(); - keys = 0; - break; - } - vsync(); - UPDATE_KEYS(); - } - } -} - -void main(void) -{ - // - // Before modifying any sound register, sound must be turned on! - // (it is turned off by default to save batteries) - // - NR52_REG = 0x80; - - soundReg = &s; - NR10_REG = NR10(); - NR11_REG = NR11(); - NR12_REG = NR12(); - NR13_REG = NR13(); - NR14_REG = NR14(); - - NR21_REG = NR21(); - NR22_REG = NR22(); - NR23_REG = NR23(); - NR24_REG = NR24(); - - NR30_REG = NR30(); - NR31_REG = NR31(); - NR32_REG = NR32(); - NR33_REG = NR33(); - NR34_REG = NR34(); - - NR41_REG = NR41(); - NR42_REG = NR42(); - NR43_REG = NR43(); - NR44_REG = NR44(); - - NR50_REG = NR50(); - NR51_REG = NR51(); - NR52_REG = NR52(); - - clss(); - - wait_event(1); -} - diff --git a/gbdk-lib/examples/ap/space/Makefile b/gbdk-lib/examples/ap/space/Makefile @@ -1,18 +0,0 @@ -GBDK = ../../.. -CC = $(GBDK)/bin/lcc -msm83:ap -Wl-j -Wm-yS - -BINS = space.pocket - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass -%.pocket: %.s - $(CC) -o $@ $< - -clean: - rm -f *.o *.lst *.map *.pocket *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/ap/space/space.s b/gbdk-lib/examples/ap/space/space.s @@ -1,1296 +0,0 @@ - ;; Little demo illustrating how to use the graphical possibilities - ;; of the GB (background, window and animated sprite) - ;; I have used fixed-point values for both the position and - ;; speed of objects to get smooth movements - ;; - ;; OBJ data : 0x8000 -> 0x8FFF (unsigned) - ;; Window data : 0x8800 -> 0x97FF (signed) - ;; Background data : 0x8800 -> 0x97FF (signed) - ;; - ;; Tiled 0xFC -> 0xFF are standard tiles (all black -> all white) - ;; - ;; Keys: - ;; Arrow keys : Change the speed (and direction) of the sprite - ;; Arrow keys + A : Change the speed (and direction) of the window - ;; Arrow keys + B : Change the speed (and direction) of the background - ;; START : Open/close the door - ;; SELECT : Basic fading effect - ;; - ;; Note that the window is kept in the lower right part of the screen - ;; since it can't be made transparent - - .include "global.s" - - .globl .init_vram - .globl .copy_vram - .globl .init_wtt - .globl .init_btt - .globl .set_xy_wtt - .globl .mv_sprite - .globl .set_sprite_prop - .globl .set_sprite_tile - .globl .jpad - - .NBDFRAMES = .endfilm-.film ; Nb frames for the door - .NBSFRAMES = 0x07 ; Nb frames for the sprite - .WINSZX = 0x80 ; Size of the picture in the window - .WINSZY = 0x50 - .MINWINX = .MAXWNDPOSX-.WINSZX+1 ; Bounds of the window origin - .MINWINY = .MAXWNDPOSY-.WINSZY+1 - .MAXWINX = .MAXWNDPOSX - .MAXWINY = .MAXWNDPOSY - .FADESTEP = 0x10 ; Nb steps for the fading effect - .STARTFADE = 0x06*.FADESTEP ; Initial value for the fading effect - - .CLOSED = 0x00 - .OPENING = 0x01 - .OPENED = 0x02 - .CLOSING = 0x03 - - .module Space - - .area _DATA - -.time: ; Global "time" value (counter) - .ds 0x01 - -.doorstate: ; State of the door (OPENED, CLOSED...) - .ds 0x01 -.doorpos: ; Current position in the door animation - .ds 0x01 - -.color: ; Current color for fading effect - .ds 0x01 - -.sframe: ; Current frame of the sprite - .ds 0x01 - -.bposx: ; Background position (fixed point) - .ds 0x02 -.bposy: - .ds 0x02 -.bspx: ; Background speed (fixed point) - .ds 0x02 -.bspy: - .ds 0x02 - -.wposx: ; Window position (fixed point) - .ds 0x02 -.wposy: - .ds 0x02 -.wspx: ; Window speed (fixed point) - .ds 0x02 -.wspy: - .ds 0x02 - -.sposx: ; Sprite position (fixed point) - .ds 0x02 -.sposy: - .ds 0x02 -.sspx: ; Sprite speed (fixed point) - .ds 0x02 -.sspy: - .ds 0x02 - - .area _CODE - -_main:: - DI ; Disable interrupts - ;; Turn the screen off - CALL .display_off - - XOR A - LD (.time),A - LD (.color),A - - LD A,#0b11100100 - LDH (.BGP),A - LDH (.OBP0),A - - ; Initialize tiles - LD HL,#0x8000 - LD DE,#0x1000 - LD B,#0x00 - CALL .init_vram ; Init the tile set at 0x8000 with 0x00 - LD B,#0xFF - CALL .init_btt ; Init the tiles tables with 0xFF - CALL .init_wtt - - LD HL,#.tp0 ; Move tiles (standard tiles) - LD DE,#0x9000-(.endtp0-.tp0) - LD BC,#.endtp0-.tp0 - CALL .copy_vram - - LD HL,#.tp1 ; Move tiles (earth) - LD DE,#0x8000 - LD BC,#.endtp1-.tp1 - CALL .copy_vram - - LD HL,#.tp2 ; Move tiles (door) - LD DE,#0x8800 - LD BC,#.endtp2-.tp2 - CALL .copy_vram - - LD HL,#.tp3 ; Move tiles (background) - LD DE,#0x9000 - LD BC,#.endtp3-.tp3 - CALL .copy_vram - - ;; Draw the background - LD HL,#.bkg_tiles - LD DE,#0x9800 - LD BC,#0x0400 ; One whole GB Screen - CALL .copy_vram - - ;; Draw the frame in the window - LD BC,#.frame_tiles - LD DE,#0x0000/8 ; Place image at (0x00,0x00) - LD HL,#0x8050/8 ; Image size is 0x80 x 0x50 - CALL .set_xy_wtt - - ;; Draw the door in the window - LD BC,#.door1_tiles - LD DE,#0x1010/8 ; Place image at (0x10,0x10) - LD HL,#0x6030/8 ; Image size is 0x60 x 0x30 - CALL .set_xy_wtt - LD A,#.CLOSED - LD (.doorstate),A - - ; Initialize background - XOR A - LD (.bposx),A - LDH (.SCX),A - LD (.bposx+1),A - LD (.bposy),A - LDH (.SCY),A - LD (.bposy+1),A - LD A,#-0x01 - LD (.bspx),A - XOR A - LD (.bspx+1),A - XOR A - LD (.bspy),A - LD A,#0x80 - LD (.bspy+1),A - - ; Initialize window - LD A,#.MAXWNDPOSX - LD (.wposx),A - LDH (.WX),A - XOR A - LD (.wposx+1),A - LD A,#.MAXWNDPOSY - LD (.wposy),A - LDH (.WY),A - XOR A - LD (.wposy+1),A - LD A,#-0x01 - LD (.wspx),A - LD A,#0x80 - LD (.wspx+1),A - LD A,#-0x01 - LD (.wspy),A - LD A,#0xC0 - LD (.wspy+1),A - - ; Initialize sprite - XOR A - LD (.sframe),A - LD C,#0x00 ; Sprite 0x00 - LD D,#0x00 ; Default sprite properties - CALL .set_sprite_prop - LD C,#0x01 ; Sprite 0x01 - LD D,#0x00 ; Default sprite properties - CALL .set_sprite_prop - - LD A,#0x10 - LD (.sposx),A - XOR A - LD (.sposx+1),A - LD A,#0x10 - LD (.sposy),A - XOR A - LD (.sposy+1),A - XOR A - LD (.sspx),A - LD A,#0x40 - LD (.sspx+1),A - XOR A - LD (.sspy),A - LD A,#0x40 - LD (.sspy+1),A - CALL .tile_sprite ; Set sprite tiles - CALL .place_sprite ; Place sprites - - LD A,#0b11100111 ; LCD = On - ; WindowBank = 0x9C00 - ; Window = On - ; BG Chr = 0x8800 - ; BG Bank = 0x9800 - ; OBJ = 8x16 - ; OBJ = On - ; BG = On - LDH (.LCDC),A - EI ; Enable interrupts -1$: - LD A,(.time) - INC A - LD (.time),A - - LD B,#0x04 ; Skip four VBLs (slow down animation) -2$: - CALL .wait_vbl_done - DEC B - JR NZ,2$ - - CALL .fade - CALL .door - CALL .scroll - CALL .animate_sprite - - CALL .jpad - LD D,A - - AND #.B ; Is B pressed ? - JP NZ,10$ - - LD A,D - AND #.A ; Is A pressed ? - JP NZ,20$ - - LD A,D - AND #.SELECT ; Is SELECT pressed ? - JR Z,3$ - LD A,#.STARTFADE - LD (.color),A -3$: - LD A,D - AND #.START ; Is START pressed ? - JR Z,5$ - LD A,(.doorstate) - CP #.CLOSED - JR NZ,4$ - LD A,#.OPENING - LD (.doorstate),A - XOR A - LD (.doorpos),A - JR 5$ -4$: - CP #.OPENED - JR NZ,5$ - LD A,#.CLOSING - LD (.doorstate),A - LD A,#.NBDFRAMES - LD (.doorpos),A -5$: - LD A,D - AND #.UP ; Is UP pressed ? - JR Z,6$ - LD BC,#0x0010 - LD A,(.sspy) ; Load speed into HL - LD H,A - LD A,(.sspy+1) - LD L,A - LD A,L ; Substract BC from HL - SUB C - LD (.sspy+1),A - LD A,H - SBC B - LD (.sspy),A ; Store new speed - JR 7$ -6$: - LD A,D - AND #.DOWN ; Is DOWN pressed ? - JR Z,7$ - LD BC,#0x0010 - LD A,(.sspy) ; Load speed into HL - LD H,A - LD A,(.sspy+1) - LD L,A - ADD HL,BC ; Add them - LD A,H ; Store new speed - LD (.sspy),A - LD A,L - LD (.sspy+1),A -7$: - LD A,D - AND #.LEFT ; Is LEFT pressed ? - JR Z,8$ - LD BC,#0x0010 - LD A,(.sspx) ; Load speed into HL - LD H,A - LD A,(.sspx+1) - LD L,A - LD A,L ; Substract BC from HL - SUB C - LD (.sspx+1),A - LD A,H - SBC B - LD (.sspx),A ; Store new speed - JP 1$ -8$: - LD A,D - AND #.RIGHT ; Is RIGHT pressed ? - JP Z,1$ - LD BC,#0x0010 - LD A,(.sspx) ; Load speed into HL - LD H,A - LD A,(.sspx+1) - LD L,A - ADD HL,BC ; Add them - LD A,H ; Store new speed - LD (.sspx),A - LD A,L - LD (.sspx+1),A - JP 1$ - -10$: - LD A,D - AND #.UP ; Is UP pressed ? - JP Z,11$ - LD BC,#0x0010 - LD A,(.bspy) ; Load speed into HL - LD H,A - LD A,(.bspy+1) - LD L,A - LD A,L ; Substract BC from HL - SUB C - LD (.bspy+1),A - LD A,H - SBC B - LD (.bspy),A ; Store new speed - JR 12$ -11$: - LD A,D - AND #.DOWN ; Is DOWN pressed ? - JP Z,12$ - LD BC,#0x0010 - LD A,(.bspy) ; Load speed into HL - LD H,A - LD A,(.bspy+1) - LD L,A - ADD HL,BC ; Add them - LD A,H ; Store new speed - LD (.bspy),A - LD A,L - LD (.bspy+1),A -12$: - LD A,D - AND #.LEFT ; Is LEFT pressed ? - JP Z,13$ - LD BC,#0x0010 - LD A,(.bspx) ; Load speed into HL - LD H,A - LD A,(.bspx+1) - LD L,A - LD A,L ; Substract BC from HL - SUB C - LD (.bspx+1),A - LD A,H - SBC B - LD (.bspx),A ; Store new speed - JP 1$ -13$: - LD A,D - AND #.RIGHT ; Is RIGHT pressed ? - JP Z,1$ - LD BC,#0x0010 - LD A,(.bspx) ; Load speed into HL - LD H,A - LD A,(.bspx+1) - LD L,A - ADD HL,BC ; Add them - LD A,H ; Store new speed - LD (.bspx),A - LD A,L - LD (.bspx+1),A - JP 1$ - -20$: - LD A,D - AND #.UP ; Is UP pressed ? - JP Z,21$ - LD BC,#0x0010 - LD A,(.wspy) ; Load speed into HL - LD H,A - LD A,(.wspy+1) - LD L,A - LD A,L ; Substract BC from HL - SUB C - LD (.wspy+1),A - LD A,H - SBC B - LD (.wspy),A ; Store new speed - JR 22$ -21$: - LD A,D - AND #.DOWN ; Is DOWN pressed ? - JP Z,22$ - LD BC,#0x0010 - LD A,(.wspy) ; Load speed into HL - LD H,A - LD A,(.wspy+1) - LD L,A - ADD HL,BC ; Add them - LD A,H ; Store new speed - LD (.wspy),A - LD A,L - LD (.wspy+1),A -22$: - LD A,D - AND #.LEFT ; Is LEFT pressed ? - JP Z,23$ - LD BC,#0x0010 - LD A,(.wspx) ; Load speed into HL - LD H,A - LD A,(.wspx+1) - LD L,A - LD A,L ; Substract BC from HL - SUB C - LD (.wspx+1),A - LD A,H - SBC B - LD (.wspx),A ; Store new speed - JP 1$ -23$: - LD A,D - AND #.RIGHT ; Is RIGHT pressed ? - JP Z,1$ - LD BC,#0x0010 - LD A,(.wspx) ; Load speed into HL - LD H,A - LD A,(.wspx+1) - LD L,A - ADD HL,BC ; Add them - LD A,H ; Store new speed - LD (.wspx),A - LD A,L - LD (.wspx+1),A - JP 1$ - - RET - - ;; Fade the screen (off and on) -.fade: - - LD A,(.color) ; Load color into A - CP #0x00 - RET Z - CP #.STARTFADE - JR NZ,1$ - LD A,#0b11111001 - JR 6$ -1$: - CP #.STARTFADE-.FADESTEP - JR NZ,2$ - LD A,#0b11111110 - JR 6$ -2$: - CP #.STARTFADE-0x02*.FADESTEP - JR NZ,3$ - LD A,#0b11111111 - JR 6$ -3$: - CP #.STARTFADE-0x03*.FADESTEP - JR NZ,4$ - LD A,#0b11111110 - JR 6$ -4$: - CP #.STARTFADE-0x04*.FADESTEP - JR NZ,5$ - LD A,#0b11111001 - JR 6$ -5$: - CP #.STARTFADE-0x05*.FADESTEP - JR NZ,7$ - LD A,#0b11100100 -6$: - LDH (.BGP),A -7$: - LD A,(.color) - DEC A - LD (.color),A - RET - - ;; Scroll the background, the window and the sprite -.scroll: - - ;; Update background - LD A,(.bposx) ; Load background position into HL - LD H,A - LD A,(.bposx+1) - LD L,A - LD A,(.bspx) ; Load background speed into BC - LD B,A - LD A,(.bspx+1) - LD C,A - ADD HL,BC ; Add them - LD A,L ; Store new background position - LD (.bposx+1),A - LD A,H - LD (.bposx),A - LDH (.SCX),A ; Update position - - LD A,(.bposy) ; Load background position into HL - LD H,A - LD A,(.bposy+1) - LD L,A - LD A,(.bspy) ; Load background speed into BC - LD B,A - LD A,(.bspy+1) - LD C,A - ADD HL,BC ; Add them - LD A,L ; Store new background position - LD (.bposy+1),A - LD A,H - LD (.bposy),A - LDH (.SCY),A ; Update position - - ;; Update window - LD A,(.wspx) ; Load window speed into BC - LD B,A - LD A,(.wspx+1) - LD C,A - LD A,(.wposx) ; Load window position into HL - LD H,A - LD A,(.wposx+1) - LD L,A - ADD HL,BC ; Add them - LD A,L ; Store new window position - LD (.wposx+1),A - LD A,H - LD (.wposx),A - - ;; X position - LD A,(.wposx) ; Check window position - LD H,#0x00 ; We must use 16 bit registers since the - LD L,A ; window is not less than 0x80 pixels - LD BC,#.MAXWINX - LD A,L ; Substract BC from HL - SUB C - LD A,H - SBC B - AND #0x80 - JR NZ,1$ ; Maximum value ? - LD A,#.MAXWINX - LD (.wposx),A ; Correct window position - LD A,(.wspx+1) ; Load window speed into BC - LD C,A - LD A,(.wspx) - LD B,A - AND #0x80 ; Speed is already negative ? - JR NZ,3$ - JR 2$ -1$: - LD A,(.wposx) ; Check window position - LD H,#0x00 ; We must use 16 bit registers since the - LD L,A ; window is not less than 0x80 pixels - LD BC,#.MINWINX+1 - LD A,L ; Substract BC from HL - SUB C - LD A,H - SBC B - AND #0x80 - JR Z,3$ ; Minimum value ? - LD A,#.MINWINX - LD (.wposx),A ; Correct window position - LD A,(.wspx+1) ; Load window speed into BC - LD C,A - LD A,(.wspx) - LD B,A - AND #0x80 ; Speed is already positive ? - JR Z,3$ -2$: - LD HL,#0x00 ; Invert speed - LD A,L ; Substract BC from HL - SUB C - LD (.wspx+1),A - LD A,H - SBC B - LD (.wspx),A ; Store new speed -3$: - LD A,(.wposx) - LDH (.WX),A ; Update position - - LD A,(.wspy) ; Load window speed into BC - LD B,A - LD A,(.wspy+1) - LD C,A - LD A,(.wposy) ; Load window position into HL - LD H,A - LD A,(.wposy+1) - LD L,A - ADD HL,BC ; Add them - LD A,L ; Store new window position - LD (.wposy+1),A - LD A,H - LD (.wposy),A - - ;; Y position - LD A,(.wposy) ; Check window position - LD H,#0x00 ; We must use 16 bit registers since the - LD L,A ; window is not less than 0x80 pixels - LD BC,#.MAXWINY - LD A,L ; Substract BC from HL - SUB C - LD A,H - SBC B - AND #0x80 - JR NZ,4$ ; Maximum value ? - LD A,#.MAXWINY - LD (.wposy),A ; Correct window position - LD A,(.wspy+1) ; Load window speed into BC - LD C,A - LD A,(.wspy) - LD B,A - AND #0x80 ; Speed is already negative ? - JR NZ,6$ - JR 5$ -4$: - LD A,(.wposy) ; Check window position - LD H,#0x00 ; We must use 16 bit registers since the - LD L,A ; window is not less than 0x80 pixels - LD BC,#.MINWINY+1 - LD A,L ; Substract BC from HL - SUB C - LD A,H - SBC B - AND #0x80 - JR Z,6$ ; Minimum value ? - LD A,#.MINWINY - LD (.wposy),A ; Correct window position - LD A,(.wspy+1) ; Load window speed into BC - LD C,A - LD A,(.wspy) - LD B,A - AND #0x80 ; Speed is already positive ? - JR Z,6$ -5$: - LD HL,#0x00 ; Invert speed - LD A,L ; Substract BC from HL - SUB C - LD (.wspy+1),A - LD A,H - SBC B - LD (.wspy),A ; Store new speed -6$: - LD A,(.wposy) - LDH (.WY),A ; Update position - - ;; Update sprite - LD A,(.sposx) ; Load sprite position into HL - LD H,A - LD A,(.sposx+1) - LD L,A - LD A,(.sspx) ; Load sprite speed into BC - LD B,A - LD A,(.sspx+1) - LD C,A - ADD HL,BC ; Add them - LD A,L ; Store new sprite position - LD (.sposx+1),A - LD A,H - LD (.sposx),A - - LD A,(.sposy) ; Load sprite position into HL - LD H,A - LD A,(.sposy+1) - LD L,A - LD A,(.sspy) ; Load sprite speed into BC - LD B,A - LD A,(.sspy+1) - LD C,A - ADD HL,BC ; Add them - LD A,L ; Store new sprite position - LD (.sposy+1),A - LD A,H - LD (.sposy),A - CALL .place_sprite ; Update position - - RET - - ;; Open and close the door -.door: - LD A,(.doorstate) - CP #.OPENING - JP Z,.open_door - CP #.CLOSING - JP Z,.close_door - RET - -.open_door: - LD A,(.doorpos) - LD HL,#.film+0x02 - LD B,#0x00 - LD C,A - ADD HL,BC - LD C,(HL) - INC HL - LD B,(HL) - LD DE,#0x1010/8 ; Place image at (0x10,0x10) - LD HL,#0x6030/8 ; Image size is 0x60 x 0x30 - CALL .set_xy_wtt - - LD A,(.doorpos) - ADD A,#0x02 - LD (.doorpos),A - CP #.NBDFRAMES - RET NZ - LD A,#.OPENED - LD (.doorstate),A - RET - -.close_door: - LD A,(.doorpos) - LD HL,#.film-0x02 - LD B,#0x00 - LD C,A - ADD HL,BC - LD C,(HL) - INC HL - LD B,(HL) - LD DE,#0x1010/8 ; Place image at (0x10,0x10) - LD HL,#0x6030/8 ; Image size is 0x60 x 0x30 - CALL .set_xy_wtt - - LD A,(.doorpos) - SUB A,#0x02 - LD (.doorpos),A - RET NZ - LD A,#.CLOSED - LD (.doorstate),A - RET - - ;; Animate sprite -.animate_sprite: - LD A,(.time) - AND #0x07 - RET NZ - - LD A,(.sframe) - INC A - CP #.NBSFRAMES - JR NZ,1$ - XOR A -1$: - LD (.sframe),A - - CALL .tile_sprite - RET - - ;; Set sprite tiles -.tile_sprite: - LD A,(.sframe) - LD HL,#.earth_tiles - RLCA - LD B,#0x00 - LD C,A - ADD HL,BC - LD C,#0x00 ; Sprite 0x00 - LD A,(HL+) - LD D,A - PUSH HL - CALL .set_sprite_tile - POP HL - - LD C,#0x01 ; Sprite 0x01 - LD A,(HL+) - LD D,A - CALL .set_sprite_tile - - RET - - ;; Place sprite -.place_sprite: - LD C,#0x00 ; Sprite 0x00 - LD A,(.sposx) - LD D,A - LD A,(.sposy) - LD E,A - PUSH DE ; Store position - CALL .mv_sprite - - LD C,#0x01 ; Sprite 0x01 - POP DE ; Restore position - LD A,#0x08 - ADD A,D - LD D,A - CALL .mv_sprite - - RET - - .area _LIT - -.tp0: - -.std_data: - - ; Basic tiles (0xFC to 0xFF) - - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00 - .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - -.endtp0: - -.tp1: - -.earth_data: - - ; Tile 0x00 - .byte 0x07,0x07,0x18,0x1F,0x32,0x2D,0x71,0x4E,0x70,0x4F,0xF8,0x87,0xF8,0x87,0xF8,0x87 - .byte 0xFC,0x83,0xFE,0x81,0x7F,0x40,0x7F,0x40,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00 - .byte 0xC0,0xC0,0xF0,0x30,0x78,0x88,0x3C,0xC4,0x5C,0xA4,0x9E,0x62,0x3E,0xC2,0x3E,0xC2 - .byte 0x5E,0xA2,0x7E,0x82,0x0C,0xF4,0x0C,0xF4,0x98,0x68,0xB0,0x70,0xC0,0xC0,0x00,0x00 - .byte 0x07,0x07,0x1F,0x18,0x2F,0x30,0x4F,0x70,0x6F,0x50,0x9F,0xE0,0x9F,0xE0,0xBF,0xC0 - .byte 0xFF,0x80,0xB7,0xC8,0x63,0x5C,0x43,0x7C,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00 - .byte 0xC0,0xC0,0xB0,0x70,0x18,0xE8,0x0C,0xF4,0x0C,0xF4,0x82,0x7E,0x82,0x7E,0x86,0x7A - .byte 0xC6,0x3A,0xE6,0x1A,0xF4,0x0C,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 - - ; Tile 0x08 - .byte 0x07,0x07,0x1E,0x19,0x20,0x3F,0x40,0x7F,0x42,0x7D,0x81,0xFE,0x81,0xFE,0x83,0xFC - .byte 0xD7,0xA8,0xBB,0xC4,0x6E,0x51,0x7C,0x43,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00 - .byte 0xC0,0xC0,0x70,0xB0,0xE8,0x18,0xF4,0x0C,0xF4,0x0C,0xFE,0x02,0xFE,0x02,0xFE,0x02 - .byte 0xFE,0x02,0x7E,0x82,0x3C,0xC4,0x3C,0xC4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 - .byte 0x07,0x07,0x1B,0x1C,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xE0,0x9F,0x90,0xEF,0x89,0xF6 - .byte 0x8D,0xF2,0x9F,0xE0,0x5E,0x61,0x6F,0x50,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00 - .byte 0xC0,0xC0,0xB0,0x70,0x28,0xD8,0x04,0xFC,0x2C,0xD4,0x1E,0xE2,0x1E,0xE2,0x3E,0xC2 - .byte 0x7E,0x82,0xB6,0x4A,0xE4,0x1C,0xC4,0x3C,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 - - ; Tile 0x10 - .byte 0x07,0x07,0x18,0x1F,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xEE,0x91,0xF1,0x8E,0xE0,0x9F - .byte 0xE0,0x9F,0xF1,0x8E,0x71,0x4E,0x72,0x4D,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00 - .byte 0xC0,0xC0,0xF0,0x30,0x08,0xF8,0x04,0xFC,0x04,0xFC,0x02,0xFE,0x02,0xFE,0x92,0x6E - .byte 0xD6,0x2A,0xFE,0x02,0xEC,0x14,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 - .byte 0x07,0x07,0x1D,0x1A,0x36,0x29,0x5C,0x63,0x6C,0x53,0xCE,0xB1,0x9F,0xE0,0x9E,0xE1 - .byte 0xAE,0xD1,0xBF,0xC0,0x47,0x78,0x47,0x78,0x2F,0x30,0x1F,0x18,0x07,0x07,0x00,0x00 - .byte 0xC0,0xC0,0x70,0xB0,0x08,0xF8,0x04,0xFC,0x04,0xFC,0xE2,0x1E,0x32,0xCE,0x0E,0xF2 - .byte 0x0E,0xF2,0x1E,0xE2,0x1C,0xE4,0x2C,0xD4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 - - ; Tile 0x18 - .byte 0x07,0x07,0x1E,0x19,0x33,0x2C,0x49,0x76,0x42,0x7D,0xC4,0xBB,0xC1,0xBE,0xC1,0xBE - .byte 0xE2,0x9D,0xF3,0x8C,0x78,0x47,0x78,0x47,0x3C,0x23,0x1C,0x1B,0x07,0x07,0x00,0x00 - .byte 0xC0,0xC0,0x70,0xB0,0x68,0x98,0xC4,0x3C,0xC4,0x3C,0xEE,0x12,0xF2,0x0E,0xE2,0x1E - .byte 0xE2,0x1E,0xF2,0x0E,0x7C,0x84,0x7C,0x84,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 - -.endtp1: - -.tp2: - -.frame_data: - - ; Tile 0x00 - .byte 0xFF,0x00,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F - .byte 0xFF,0x00,0x01,0xFE,0x03,0xFC,0x07,0xF8,0x0F,0xF0,0x1F,0xE0,0x3F,0xC0,0x7F,0x80 - .byte 0xFF,0x00,0xFE,0x01,0xFC,0x03,0xF8,0x07,0xF0,0x0F,0xE0,0x1F,0xC0,0x3F,0x80,0x7F - .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF - .byte 0xFF,0x00,0xFF,0x01,0xFD,0x03,0xF9,0x07,0xF1,0x0F,0xE1,0x1F,0xC1,0x3F,0x81,0x7F - .byte 0x80,0x7F,0x81,0x7E,0x83,0x7C,0x87,0x78,0x8F,0x70,0x9F,0x60,0xBF,0x40,0xFF,0x00 - .byte 0xFF,0x70,0xFF,0x98,0xEF,0xB8,0xCF,0xF8,0xFF,0x70,0xFF,0x00,0xFF,0x00,0xFF,0x01 - .byte 0xFF,0x00,0xFE,0x01,0xFC,0x03,0xF8,0x07,0xF0,0x0F,0xE0,0x1F,0xC0,0x3F,0xFF,0xFF - - ; Tile 0x08 - .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF - .byte 0x00,0xFF,0x01,0xFE,0x03,0xFC,0x07,0xF8,0x0F,0xF0,0x1F,0xE0,0x3F,0xC0,0xFF,0xFF - .byte 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF - .byte 0xFF,0x0E,0xFF,0x13,0xFD,0x17,0xF9,0x1F,0xFE,0x0F,0xE0,0x1F,0xC0,0x3F,0x80,0xFF - .byte 0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF - .byte 0xFF,0x01,0xFF,0x01,0xFD,0x03,0xF9,0x07,0xF1,0x0F,0xE1,0x1F,0xC1,0x3F,0x81,0x7F - .byte 0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F - .byte 0x01,0xFF,0x01,0xFF,0x03,0xFD,0x07,0xF9,0x0F,0xF1,0x1F,0xE1,0x3F,0xC1,0x7F,0x81 - - ; Tile 0x10 - .byte 0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01 - .byte 0x01,0xFF,0x01,0xFE,0x03,0xFC,0x77,0xF8,0xFF,0x98,0xEF,0xB8,0xCF,0xF8,0x7F,0xF0 - .byte 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x0E,0xFF,0x13,0xFD,0x17,0xF9,0x1F,0xFF,0x0E - .byte 0x80,0x7F,0x81,0x7E,0x83,0x7C,0x87,0x78,0x8F,0x70,0x9F,0x60,0xBF,0x40,0xFF,0x7F - .byte 0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0xFF,0xFF - -.door1_data: - - ; Tile 0x15 - .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF - .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF - .byte 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF - -.door2_data: - - ; Tile 0x18 - .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF - .byte 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF - .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF - .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - -.door3_data: - - ; Tile 0x1C - .byte 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF - .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF - .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF - .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - -.door4_data: - - ; Tile 0x20 - .byte 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - -.endtp2: - -.tp3: - -.bkg_data: - - ; Tile 0x00 - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xDF,0xFF,0xEF,0xFF,0xFF,0xF7,0xFF,0xFB,0xFF,0xFD,0xFF,0xFE,0xFE,0xFF - - ; Tile 0x08 - .byte 0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7D,0xFE,0x7C,0x39 - .byte 0xFF,0xFF,0xF7,0xFF,0xEF,0xFF,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFD - .byte 0xBB,0x01,0xC7,0x83,0xC7,0x83,0xC7,0x83,0xBB,0x01,0x7C,0x39,0x7D,0xFE,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F - .byte 0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFB,0xAF,0x77,0x27,0x8F,0xDF,0x8F,0x27,0x8F - - ; Tile 0x10 - .byte 0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFB,0xFF,0xF7,0xEF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xBF,0xFF,0xDF,0xEF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xAF,0x77,0xFF,0xFB,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF - - ; Tile 0x18 - .byte 0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7D,0xFE,0x7C,0x39 - .byte 0xFF,0xFF,0xF7,0xFF,0xEF,0xFF,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFD - - ; Tile 0x20 - .byte 0xFF,0xFF,0xDF,0xFF,0xEF,0xFF,0xFF,0xF7,0xFF,0xFB,0xFE,0xFD,0xFD,0xFE,0xFE,0xFF - .byte 0xAB,0x11,0xC7,0x83,0x83,0xC7,0xC7,0x83,0xAB,0x11,0x7C,0x39,0x7D,0xFE,0xFE,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFB,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F - .byte 0xFB,0xFF,0xFF,0xFD,0xFE,0xFE,0xFE,0xFF,0xFE,0xFE,0xFF,0xFD,0xFB,0xFF,0xFF,0xFF - .byte 0xEF,0xFF,0xFF,0xDF,0x3F,0xBF,0x3F,0x7F,0x3F,0xBF,0xFF,0xDF,0xEF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFB,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFE,0xFD - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF - - ; Tile 0x28 - .byte 0xF7,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - .byte 0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF - -.endtp3: - - ; Image size: 0x40 x 0x40 - ; Number of tiles (total - unique): 0x40 - 0x2D - -.bkg_tiles: - - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC - - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A - - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC - - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14 - - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC - - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20 - - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26 - - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11 - - ; Image size: 0x10 x 0x70 - ; Number of tiles (total - unique): 0x1C - 0x1C - -.earth_tiles: - - .byte 0x00,0x02 - .byte 0x04,0x06 - .byte 0x08,0x0A - .byte 0x0C,0x0E - .byte 0x10,0x12 - .byte 0x14,0x16 - .byte 0x18,0x1A - - ; Image size: 0x80 x 0x50 - ; Number of tiles (total - unique): 0xA0 - 0x15 - -.frame_tiles: - - .byte 0x80,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x84 - .byte 0x85,0x86,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x8B,0x8C - .byte 0xFD,0x8D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8E,0x8F - .byte 0x82,0x8C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x85,0x90 - .byte 0x8E,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x8D - .byte 0x85,0x90,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x82,0x8C - .byte 0xFD,0x8D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8E,0x8F - .byte 0x82,0x8C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x85,0x90 - .byte 0x8E,0x91,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0x92,0x8D - .byte 0x93,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x94 - - ; Image size: 0x60 x 0x30 - ; Number of tiles (total - unique): 0x48 - 0x03 - -.door1_tiles: - - .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95 - .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96 - .byte 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97 - .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95 - .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96 - .byte 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97 - - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - - ; Image size: 0x60 x 0x30 - ; Number of tiles (total - unique): 0x48 - 0x04 - -.door2_tiles: - - .byte 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98 - .byte 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99 - .byte 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A - .byte 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98 - .byte 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99 - .byte 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B - - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - - ; Image size: 0x60 x 0x30 - ; Number of tiles (total - unique): 0x48 - 0x04 - -.door3_tiles: - - .byte 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C - .byte 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D - .byte 0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E - .byte 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C - .byte 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D - .byte 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F - - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - - ; Image size: 0x60 x 0x30 - ; Number of tiles (total - unique): 0x48 - 0x01 - -.door4_tiles: - - .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95 - .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96 - .byte 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97 - .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95 - .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96 - .byte 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0 - - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC - -.film: - .word .door1_tiles+0x0C*0 - .word .door2_tiles+0x0C*0 - .word .door3_tiles+0x0C*0 - .word .door4_tiles+0x0C*0 - .word .door1_tiles+0x0C*1 - .word .door2_tiles+0x0C*1 - .word .door3_tiles+0x0C*1 - .word .door4_tiles+0x0C*1 - .word .door1_tiles+0x0C*2 - .word .door2_tiles+0x0C*2 - .word .door3_tiles+0x0C*2 - .word .door4_tiles+0x0C*2 - .word .door1_tiles+0x0C*3 - .word .door2_tiles+0x0C*3 - .word .door3_tiles+0x0C*3 - .word .door4_tiles+0x0C*3 - .word .door1_tiles+0x0C*4 - .word .door2_tiles+0x0C*4 - .word .door3_tiles+0x0C*4 - .word .door4_tiles+0x0C*4 - .word .door1_tiles+0x0C*5 - .word .door2_tiles+0x0C*5 - .word .door3_tiles+0x0C*5 - .word .door4_tiles+0x0C*5 -.endfilm: - .word .door1_tiles+0x0C*6 diff --git a/gbdk-lib/examples/ap/template_minimal/Makefile b/gbdk-lib/examples/ap/template_minimal/Makefile @@ -1,33 +0,0 @@ -# -# Simple Makefile that compiles all .c and .s files in the same folder -# - -# If you move this project you can change the directory -# to match your GBDK root directory (ex: GBDK_HOME = "C:/GBDK/" -GBDK_HOME = ../../../ - -LCC = $(GBDK_HOME)bin/lcc -msm83:ap - -# You can uncomment the line below to turn on debug output -# LCC += -debug - -# You can set the name of the .pocket ROM file here -PROJECTNAME = Example - -BINS = $(PROJECTNAME).pocket -CSOURCES := $(wildcard *.c) -ASMSOURCES := $(wildcard *.s) - -all: $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link all source files in a single call to LCC -$(BINS): $(CSOURCES) $(ASMSOURCES) - $(LCC) -o $@ $(CSOURCES) $(ASMSOURCES) - -clean: - rm -f *.o *.lst *.map *.pocket *.ihx *.sym *.cdb *.adb *.asm - diff --git a/gbdk-lib/examples/ap/template_minimal/Readme.md b/gbdk-lib/examples/ap/template_minimal/Readme.md @@ -1,7 +0,0 @@ - -An minimal template project with a Makefile that only compiles files in the same directory - -The Makefile will automatically detect and compile new source files as long -as they are placed in the same directory as the Makefile - - diff --git a/gbdk-lib/examples/ap/template_minimal/main.c b/gbdk-lib/examples/ap/template_minimal/main.c @@ -1,17 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> - - -void main(void) -{ - // Loop forever - while(1) { - - - // Game main loop processing goes here - - - // Done processing, yield CPU and wait for start of next frame - vsync(); - } -} diff --git a/gbdk-lib/examples/ap/template_subfolders/Makefile b/gbdk-lib/examples/ap/template_subfolders/Makefile @@ -1,61 +0,0 @@ -# -# A Makefile that compiles all .c and .s files in "src" and "res" -# subdirectories and places the output in a "obj" subdirectory -# - -# If you move this project you can change the directory -# to match your GBDK root directory (ex: GBDK_HOME = "C:/GBDK/" -GBDK_HOME = ../../../ - -LCC = $(GBDK_HOME)bin/lcc - -LCCFLAGS = -msm83:ap -# You can set flags for LCC here -# For example, you can uncomment the line below to turn on debug output -# LCCFLAGS += -debug - -# You can set the name of the .pocket ROM file here -PROJECTNAME = Example - -SRCDIR = src -OBJDIR = obj -RESDIR = res -BINS = $(OBJDIR)/$(PROJECTNAME).pocket -CSOURCES = $(foreach dir,$(SRCDIR),$(notdir $(wildcard $(dir)/*.c))) $(foreach dir,$(RESDIR),$(notdir $(wildcard $(dir)/*.c))) -ASMSOURCES = $(foreach dir,$(SRCDIR),$(notdir $(wildcard $(dir)/*.s))) -OBJS = $(CSOURCES:%.c=$(OBJDIR)/%.o) $(ASMSOURCES:%.s=$(OBJDIR)/%.o) - -all: prepare $(BINS) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile .c files in "src/" to .o object files -$(OBJDIR)/%.o: $(SRCDIR)/%.c - $(LCC) $(LCCFLAGS) -c -o $@ $< - -# Compile .c files in "res/" to .o object files -$(OBJDIR)/%.o: $(RESDIR)/%.c - $(LCC) $(LCCFLAGS) -c -o $@ $< - -# Compile .s assembly files in "src/" to .o object files -$(OBJDIR)/%.o: $(SRCDIR)/%.s - $(LCC) $(LCCFLAGS) -c -o $@ $< - -# If needed, compile .c files in "src/" to .s assembly files -# (not required if .c is compiled directly to .o) -$(OBJDIR)/%.s: $(SRCDIR)/%.c - $(LCC) $(LCCFLAGS) -S -o $@ $< - -# Link the compiled object files into a .pocket ROM file -$(BINS): $(OBJS) - $(LCC) $(LCCFLAGS) -o $(BINS) $(OBJS) - -prepare: - mkdir -p $(OBJDIR) - -clean: -# rm -f *.pocket *.ihx *.cdb *.adb *.noi *.map - rm -f $(OBJDIR)/*.* - diff --git a/gbdk-lib/examples/ap/template_subfolders/Readme.md b/gbdk-lib/examples/ap/template_subfolders/Readme.md @@ -1,18 +0,0 @@ - -A template project with a Makefile that supports sub-directories. - -The Makefile will automatically detect and compile new source files -when they are added to the "src" and "res" directories. - -Project directories - - src: Main program source files (.c, .h, .s) can go here - - res: Program graphics and audio source files (.c, .h, .s) can go here - - obj: Compiled ROM (.gb) and debug files go in this directory - - -== Sprite and Background tiles from: == - -https://sondanielson.itch.io/gameboy-simple-rpg-tileset -"Licence is under CCA so you can use these assets both privately and commercially" -"You are free to use them as is or modify them to your liking. All i ask is you credit me if you do use them please :)" - diff --git a/gbdk-lib/examples/ap/template_subfolders/res/dungeon_32x32.gbm b/gbdk-lib/examples/ap/template_subfolders/res/dungeon_32x32.gbm Binary files differ. diff --git a/gbdk-lib/examples/ap/template_subfolders/res/dungeon_32x32.gbr b/gbdk-lib/examples/ap/template_subfolders/res/dungeon_32x32.gbr Binary files differ. diff --git a/gbdk-lib/examples/ap/template_subfolders/res/dungeon_map.c b/gbdk-lib/examples/ap/template_subfolders/res/dungeon_map.c @@ -1,133 +0,0 @@ -/* - - DUNGEON_MAP.C - - Map Source File. - - Info: - Section : - Bank : 0 - Map size : 32 x 32 - Tile set : dungeon_32x32.gbr - Plane count : 1 plane (8 bits) - Plane order : Planes are continues - Tile offset : 0 - Split data : No - - This file was generated by GBMB v1.8 - -*/ - -#define dungeon_mapWidth 32 -#define dungeon_mapHeight 32 -#define dungeon_mapBank 0 - -#define dungeon_map dungeon_mapPLN0 -const unsigned char dungeon_mapPLN0[] = -{ - 0x0A,0x0B,0x07,0x05,0x06,0x04,0x07,0x03,0x04,0x07, - 0x03,0x04,0x07,0x08,0x09,0x01,0x0A,0x0B,0x07,0x07, - 0x03,0x04,0x07,0x03,0x04,0x07,0x03,0x04,0x03,0x0C, - 0x08,0x09,0x0D,0x0E,0x0F,0x12,0x13,0x11,0x0F,0x10, - 0x11,0x0F,0x10,0x11,0x0F,0x14,0x15,0x01,0x0D,0x0E, - 0x0F,0x0F,0x10,0x11,0x0F,0x10,0x11,0x0F,0x10,0x11, - 0x10,0x16,0x14,0x15,0x17,0x18,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x1A,0x01, - 0x1B,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x1D,0x1E,0x1F,0x1C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19, - 0x1A,0x01,0x1F,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x1A,0x1B,0x20, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x21,0x22,0x01,0x1F,0x1C,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x22, - 0x1F,0x1C,0x00,0x00,0x00,0x23,0x24,0x25,0x24,0x26, - 0x00,0x00,0x00,0x27,0x28,0x01,0x17,0x18,0x00,0x00, - 0x00,0x23,0x24,0x25,0x24,0x26,0x00,0x00,0x00,0x00, - 0x27,0x28,0x17,0x18,0x00,0x00,0x00,0x19,0x2B,0x2C, - 0x2D,0x20,0x00,0x00,0x00,0x19,0x1A,0x01,0x1F,0x1C, - 0x00,0x00,0x00,0x19,0x2B,0x2C,0x2D,0x20,0x00,0x00, - 0x00,0x00,0x19,0x1A,0x1F,0x1C,0x00,0x00,0x00,0x21, - 0x22,0x01,0x1F,0x1C,0x00,0x00,0x00,0x21,0x15,0x01, - 0x0D,0x1C,0x00,0x00,0x00,0x21,0x22,0x01,0x1F,0x1C, - 0x00,0x00,0x00,0x00,0x21,0x22,0x1B,0x20,0x00,0x00, - 0x00,0x27,0x28,0x01,0x17,0x18,0x00,0x00,0x00,0x30, - 0x31,0x32,0x33,0x20,0x00,0x00,0x00,0x21,0x22,0x01, - 0x1F,0x1C,0x00,0x00,0x00,0x00,0x19,0x1A,0x1F,0x1C, - 0x00,0x00,0x00,0x19,0x1A,0x01,0x1F,0x1C,0x00,0x00, - 0x00,0x34,0x35,0x0F,0x10,0x36,0x00,0x00,0x00,0x27, - 0x28,0x01,0x17,0x18,0x00,0x00,0x00,0x00,0x21,0x22, - 0x1F,0x1C,0x00,0x00,0x00,0x21,0x22,0x01,0x1B,0x20, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x19,0x1A,0x01,0x1F,0x1C,0x00,0x00,0x00,0x00, - 0x19,0x1A,0x1F,0x1C,0x00,0x00,0x00,0x19,0x1A,0x01, - 0x1F,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x21,0x22,0x01,0x1B,0x20,0x00,0x00, - 0x00,0x00,0x21,0x22,0x1B,0x20,0x00,0x00,0x00,0x21, - 0x22,0x01,0x1F,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x19,0x1A,0x01,0x1F,0x1C, - 0x00,0x00,0x00,0x00,0x27,0x28,0x1F,0x1C,0x00,0x00, - 0x00,0x19,0x1A,0x01,0x37,0x38,0x24,0x26,0x00,0x00, - 0x00,0x23,0x24,0x24,0x25,0x24,0x39,0x3A,0x3B,0x01, - 0x1F,0x1C,0x00,0x00,0x00,0x00,0x19,0x1A,0x1B,0x20, - 0x00,0x00,0x00,0x21,0x22,0x01,0x3C,0x3D,0x2D,0x20, - 0x00,0x00,0x00,0x19,0x2B,0x3E,0x3F,0x3E,0x40,0x41, - 0x42,0x01,0x1B,0x20,0x00,0x00,0x00,0x00,0x21,0x22, - 0x1F,0x1C,0x00,0x00,0x00,0x27,0x15,0x01,0x01,0x01, - 0x1F,0x1C,0x00,0x00,0x00,0x21,0x22,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x0D,0x20,0x00,0x00,0x00,0x00, - 0x19,0x1A,0x1F,0x1C,0x00,0x00,0x00,0x30,0x31,0x0B, - 0x03,0x07,0x33,0x20,0x00,0x00,0x00,0x30,0x31,0x08, - 0x09,0x01,0x0A,0x0B,0x07,0x0B,0x33,0x20,0x00,0x00, - 0x00,0x00,0x21,0x22,0x1F,0x1C,0x00,0x00,0x00,0x34, - 0x35,0x0F,0x10,0x0F,0x10,0x36,0x00,0x00,0x00,0x34, - 0x35,0x14,0x15,0x01,0x0D,0x0E,0x0F,0x0F,0x10,0x36, - 0x00,0x00,0x00,0x00,0x19,0x22,0x29,0x2A,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x19,0x1A,0x01,0x1F,0x1C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x44,0x2E,0x2F, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x19,0x1A,0x01,0x1F,0x1C, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x45,0x46, - 0x1B,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x31,0x32, - 0x33,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x21,0x22,0x37,0x38,0x24,0x24,0x24,0x24,0x24,0x25, - 0x24,0x39,0x24,0x25,0x24,0x26,0x00,0x00,0x00,0x34, - 0x35,0x0F,0x10,0x36,0x00,0x00,0x00,0x23,0x24,0x24, - 0x24,0x24,0x3A,0x3B,0x3C,0x3D,0x3E,0x3E,0x3E,0x3E, - 0x3E,0x3F,0x3E,0x40,0x3E,0x2C,0x2D,0x20,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19, - 0x2B,0x41,0x3E,0x3E,0x41,0x42,0x01,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1F,0x1C, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x21,0x22,0x01,0x01,0x01,0x01,0x01,0x0A,0x0B, - 0x07,0x03,0x07,0x03,0x04,0x07,0x03,0x04,0x0B,0x0B, - 0x33,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x30,0x31,0x0B,0x07,0x03,0x08,0x09, - 0x0D,0x0E,0x0F,0x10,0x0F,0x10,0x11,0x0F,0x10,0x11, - 0x10,0x0F,0x10,0x36,0x00,0x00,0x00,0x23,0x24,0x25, - 0x24,0x26,0x00,0x00,0x00,0x34,0x35,0x10,0x0F,0x10, - 0x14,0x15,0x1F,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19, - 0x2B,0x2C,0x2D,0x20,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x27,0x28,0x1F,0x1C,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x27,0x28,0x01,0x17,0x18,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x19,0x1A,0x1B,0x20,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x19,0x1A,0x01,0x1F,0x1C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x22,0x47,0x48, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x21,0x22,0x01,0x1B,0x20, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x22, - 0x37,0x38,0x49,0x4A,0x4B,0x24,0x39,0x24,0x24,0x24, - 0x25,0x24,0x39,0x24,0x24,0x39,0x25,0x3A,0x3B,0x01, - 0x37,0x38,0x24,0x25,0x24,0x39,0x24,0x25,0x24,0x39, - 0x3A,0x3B,0x3C,0x3D,0x4C,0x4D,0x4E,0x3E,0x40,0x3E, - 0x3E,0x3E,0x3F,0x3E,0x40,0x3E,0x3E,0x40,0x3F,0x41, - 0x42,0x01,0x3C,0x3D,0x3E,0x3F,0x3E,0x40,0x3E,0x3F, - 0x3E,0x40,0x41,0x42 -}; - -/* End of DUNGEON_MAP.C */ diff --git a/gbdk-lib/examples/ap/template_subfolders/res/dungeon_map.h b/gbdk-lib/examples/ap/template_subfolders/res/dungeon_map.h @@ -1,28 +0,0 @@ -/* - - DUNGEON_MAP.H - - Map Include File. - - Info: - Section : - Bank : 0 - Map size : 32 x 32 - Tile set : dungeon_32x32.gbr - Plane count : 1 plane (8 bits) - Plane order : Planes are continues - Tile offset : 0 - Split data : No - - This file was generated by GBMB v1.8 - -*/ - -#define dungeon_mapWidth 32 -#define dungeon_mapHeight 32 -#define dungeon_mapBank 0 - -#define dungeon_map dungeon_mapPLN0 -extern const unsigned char dungeon_mapPLN0[]; - -/* End of DUNGEON_MAP.H */ diff --git a/gbdk-lib/examples/ap/template_subfolders/res/dungeon_tiles.c b/gbdk-lib/examples/ap/template_subfolders/res/dungeon_tiles.c @@ -1,188 +0,0 @@ -/* - - DUNGEON_TILES.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 78 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : None. - - Convert to metatiles : No. - - This file was generated by GBTD v2.2 - -*/ - -/* Start of tile array. */ -const unsigned char dungeon_tiles[] = -{ - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x08,0x08,0x08,0x08,0xEB,0x1C, - 0xFF,0xFF,0x80,0x80,0xFF,0x80,0xFF,0x80, - 0xFF,0xFF,0x10,0x10,0x10,0x10,0xD7,0x38, - 0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0xFF,0x78,0x37,0xF3,0x6F,0x67,0xDF, - 0xCF,0xFF,0x4F,0x7F,0xDF,0x7F,0xDF,0x7F, - 0xFF,0xFF,0x1E,0xEC,0xCF,0xF6,0xE6,0xFB, - 0xF3,0xFF,0xF2,0xFE,0xFB,0xFE,0xFB,0xFE, - 0xFF,0xFF,0x90,0x90,0x90,0x90,0xD7,0xB8, - 0xFF,0xFF,0x80,0x80,0xFF,0x80,0xFF,0x80, - 0xFF,0xFF,0x00,0x00,0x00,0x00,0x7F,0x80, - 0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0xFF,0x03,0x03,0x05,0x05,0xE9,0x19, - 0xF1,0xF9,0x39,0x31,0xD9,0x51,0xD9,0x91, - 0xFF,0xFF,0xC0,0xC0,0xA0,0xA0,0x97,0x98, - 0x8F,0x9F,0x9C,0x8C,0x9B,0x8A,0x9B,0x89, - 0xFF,0xFF,0x00,0x00,0x00,0x00,0xFE,0x01, - 0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00, - 0xFF,0xFF,0x09,0x09,0x09,0x09,0xEB,0x1D, - 0xFF,0xFF,0x81,0x81,0xFF,0x81,0xFF,0x81, - 0x9B,0x88,0x9B,0x88,0x9B,0x88,0x9B,0x88, - 0x9B,0x88,0x9B,0x88,0x9B,0x88,0x8B,0x98, - 0x80,0xFF,0x61,0xFF,0x7F,0xFF,0x3F,0xF0, - 0x38,0xEF,0x34,0xEF,0x33,0xEF,0x73,0xEF, - 0x80,0xFF,0xC1,0xFF,0xFF,0xFF,0xFF,0x88, - 0x88,0xFF,0x88,0xFF,0xCC,0xFF,0xFF,0xFF, - 0x80,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0x20, - 0x20,0xFF,0x20,0xFF,0x70,0xFF,0xFF,0xFF, - 0x00,0xFF,0x01,0xFF,0xFF,0xFF,0xFF,0x08, - 0x08,0xFF,0x08,0xFF,0x1C,0xFF,0xFF,0xFF, - 0xDF,0x7F,0x5F,0xFF,0xD5,0xFF,0x5F,0x7F, - 0xDA,0x7F,0xD5,0x7F,0x5F,0xFF,0xE0,0xDF, - 0xFB,0xFE,0xFA,0xFF,0x5B,0xFF,0xFA,0xFE, - 0xAB,0xFE,0x5B,0xFE,0xFA,0xFF,0x07,0xFB, - 0x01,0xFF,0x86,0xFF,0xFE,0xFF,0xFC,0x0F, - 0x1C,0xF7,0x2C,0xF7,0xCC,0xF7,0xCE,0xF7, - 0xD9,0x11,0xD9,0x11,0xD9,0x11,0xD9,0x11, - 0xD9,0x11,0xD9,0x11,0xD9,0x11,0xD1,0x19, - 0x81,0xFF,0xC3,0xFF,0xFF,0xFF,0xFF,0x21, - 0x21,0xFF,0x21,0xFF,0x73,0xFF,0xFF,0xFF, - 0xFF,0xFF,0x9B,0x88,0x8B,0x98,0xFB,0xF8, - 0x8B,0x98,0x9B,0x88,0x9B,0x88,0x9F,0x8F, - 0xFF,0xFF,0x73,0xEF,0x31,0xEF,0x31,0xEF, - 0x33,0xEF,0x3F,0xFF,0x73,0xEF,0xF1,0xEF, - 0x8F,0xF7,0xCE,0xF7,0xFC,0xFF,0xCC,0xF7, - 0x8C,0xF7,0x8C,0xF7,0x8C,0xF7,0x8C,0xF7, - 0xF9,0xF1,0xD9,0x11,0xD9,0x11,0xD1,0x19, - 0xDF,0x1F,0xD1,0x19,0xD9,0x11,0xD9,0x11, - 0x9B,0x88,0x9B,0x88,0x8B,0x98,0xFB,0xF8, - 0x8B,0x98,0x9B,0x88,0x9B,0x88,0x9F,0x8F, - 0x71,0xEF,0x31,0xEF,0x33,0xEF,0x3F,0xFF, - 0x33,0xEF,0x31,0xEF,0x31,0xEF,0x31,0xEF, - 0xFF,0xFF,0xCE,0xF7,0x8C,0xF7,0x8C,0xF7, - 0xFC,0xFF,0xCC,0xF7,0x8C,0xF7,0x8E,0xF7, - 0xFF,0xFF,0xD9,0x11,0xD1,0x19,0xDF,0x1F, - 0xD1,0x19,0xD9,0x11,0xD9,0x11,0xD9,0x11, - 0x9B,0x88,0x9B,0x88,0x9B,0x88,0x8B,0x98, - 0xFB,0xF8,0x8B,0x98,0x9B,0x88,0x9B,0x88, - 0x31,0xEF,0x31,0xEF,0x31,0xEF,0x31,0xEF, - 0x33,0xEF,0x3F,0xFF,0x73,0xEF,0xF1,0xEF, - 0x8C,0xF7,0x8C,0xF7,0x8C,0xF7,0xCC,0xF7, - 0xFC,0xFF,0xCC,0xF7,0x8C,0xF7,0x8E,0xF7, - 0xD9,0x11,0xD9,0x11,0xD1,0x19,0xDF,0x1F, - 0xD1,0x19,0xD9,0x11,0xD9,0x11,0xD9,0x11, - 0xFF,0xFF,0xC0,0xFF,0xA0,0xFF,0x90,0xFF, - 0x8F,0xF8,0x8F,0xF7,0x8E,0xF7,0x8D,0xF7, - 0xFF,0xFF,0x0E,0xFF,0x04,0xFF,0x04,0xFF, - 0xFF,0x04,0xFF,0xFF,0x03,0xFF,0x01,0xFF, - 0xFF,0xFF,0x38,0xFF,0x10,0xFF,0x10,0xFF, - 0xFF,0x10,0xFF,0xFF,0x80,0xFF,0x00,0xFF, - 0xFF,0xFF,0x03,0xFF,0x05,0xFF,0x09,0xFF, - 0xF1,0x1F,0xF1,0xEF,0x71,0xEF,0xB1,0xEF, - 0x8F,0xF7,0xCE,0xF7,0xFC,0xFF,0xCC,0xF7, - 0x8C,0xF7,0x8C,0xF7,0xCE,0xF7,0xFF,0xFF, - 0xF9,0xF1,0xD9,0x11,0xD9,0x11,0xD1,0x19, - 0xDF,0x1F,0xD1,0x19,0xD9,0x11,0xFF,0xFF, - 0xAB,0x98,0xFF,0xBF,0xF0,0xEF,0xE3,0xDF, - 0xCF,0xBF,0x9F,0xFF,0xBF,0xFF,0xBF,0xFF, - 0xAD,0x63,0xFF,0xFF,0x01,0xFE,0xFE,0xFF, - 0xF6,0xFF,0xDA,0xFF,0xF6,0xFF,0xDA,0xFF, - 0xFF,0x80,0xFF,0x40,0xE0,0x20,0xDF,0x1F, - 0xDF,0x18,0xDC,0x14,0xDA,0x12,0xD9,0x11, - 0xFF,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF, - 0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, - 0xFF,0x01,0xFF,0x02,0x07,0x04,0xFB,0xF8, - 0xFB,0x18,0x3B,0x28,0x5B,0x48,0x9B,0x88, - 0xBF,0xFF,0xBF,0xFF,0x9F,0xFF,0xCF,0xBF, - 0xE3,0xDF,0xF0,0xEF,0xFF,0xBF,0xAB,0x98, - 0xF6,0xFF,0xDA,0xFF,0xF6,0xFF,0xDA,0xFF, - 0xFE,0xFF,0x01,0xFE,0xFF,0xFF,0xAD,0x63, - 0x8C,0xF7,0x8C,0xF7,0x8C,0xF7,0x8C,0xF7, - 0xCC,0xF7,0xFC,0xFF,0xCE,0xF7,0x8F,0xF7, - 0xD9,0x11,0xDA,0x12,0xDC,0x14,0xDF,0x18, - 0xDF,0x1F,0xE0,0x20,0xFF,0x40,0xFF,0x80, - 0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0x00, - 0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00, - 0x9B,0x88,0x5B,0x48,0x3B,0x28,0xFB,0x18, - 0xFB,0xF8,0x07,0x04,0xFF,0x02,0xFF,0x01, - 0x8D,0xF7,0x8E,0xF7,0x8F,0xF7,0x8F,0xF8, - 0x90,0xFF,0xA0,0xFF,0xC0,0xFF,0xFF,0xFF, - 0x01,0xFF,0x03,0xFF,0xFF,0xFF,0xFF,0x04, - 0x04,0xFF,0x04,0xFF,0x0E,0xFF,0xFF,0xFF, - 0xB1,0xEF,0x71,0xEF,0xF1,0xEF,0xF1,0x1F, - 0x09,0xFF,0x05,0xFF,0x03,0xFF,0xFF,0xFF, - 0x8B,0x98,0x9B,0x88,0x9B,0x88,0x9B,0x88, - 0x9B,0x88,0x9B,0x88,0x9B,0x88,0x9B,0x88, - 0x73,0xEF,0x33,0xEF,0x34,0xEF,0x38,0xEF, - 0x3F,0xF0,0x7F,0xFF,0x61,0xFF,0x80,0xFF, - 0xFF,0xFF,0x33,0xFF,0x11,0xFF,0x11,0xFF, - 0xFF,0x11,0xFF,0xFF,0x83,0xFF,0x01,0xFF, - 0xCE,0xF7,0xCC,0xF7,0x2C,0xF7,0x1C,0xF7, - 0xFC,0x0F,0xFE,0xFF,0x86,0xFF,0x01,0xFF, - 0xD1,0x19,0xD9,0x11,0xD9,0x11,0xD9,0x11, - 0xD9,0x11,0xD9,0x11,0xD9,0x11,0xD9,0x11, - 0x9B,0x89,0x9B,0x8A,0x9C,0x8C,0x8F,0x9F, - 0x97,0x98,0xA0,0xA0,0xC0,0xC0,0xFF,0xFF, - 0xFF,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF, - 0xFE,0x01,0x00,0x00,0x00,0x00,0xFF,0xFF, - 0xFF,0x01,0xFF,0x01,0x01,0x01,0xFF,0xFF, - 0xD7,0x38,0x10,0x10,0x10,0x10,0xFF,0xFF, - 0xFF,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF, - 0xEB,0x1C,0x08,0x08,0x08,0x08,0xFF,0xFF, - 0xFF,0x01,0xFF,0x01,0x01,0x01,0xFF,0xFF, - 0xEB,0x1D,0x09,0x09,0x09,0x09,0xFF,0xFF, - 0xFF,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF, - 0x7F,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF, - 0xD9,0x91,0xD9,0x51,0x39,0x31,0xF1,0xF9, - 0xE9,0x19,0x05,0x05,0x03,0x03,0xFF,0xFF, - 0xB5,0xC6,0xFF,0xFF,0x80,0x7F,0x7F,0xFF, - 0x5B,0xFF,0x6F,0xFF,0x5B,0xFF,0x6F,0xFF, - 0xD5,0x19,0xFF,0xFD,0x0F,0xF7,0xC7,0xFB, - 0xF3,0xFD,0xF9,0xFF,0xFD,0xFF,0xFD,0xFF, - 0x5B,0xFF,0x6F,0xFF,0x5B,0xFF,0x6F,0xFF, - 0x7F,0xFF,0x80,0x7F,0xFF,0xFF,0xB5,0xC6, - 0xFD,0xFF,0xFD,0xFF,0xF9,0xFF,0xF3,0xFD, - 0xC7,0xFB,0x0F,0xF7,0xFF,0xFD,0xD5,0x19, - 0x9B,0x88,0x9B,0x88,0x9B,0x88,0x8B,0x98, - 0xFB,0xF8,0x8B,0x98,0x9B,0x88,0xFF,0xFF, - 0x71,0xEF,0x31,0xEF,0x33,0xEF,0x3F,0xFF, - 0x31,0xEF,0x31,0xEF,0x73,0xEF,0xFF,0xFF, - 0xFF,0xFF,0xCE,0xFF,0x84,0xFF,0x84,0xFF, - 0xFF,0x84,0xFF,0xFF,0xC3,0xFF,0x81,0xFF, - 0xE0,0xDF,0x5F,0xFF,0xDA,0x7F,0xD5,0x7F, - 0x5F,0x7F,0xDA,0xFF,0x5F,0xFF,0xDF,0x7F, - 0x07,0xFB,0xFA,0xFF,0xAB,0xFE,0x5B,0xFE, - 0xFA,0xFE,0xAB,0xFF,0xFA,0xFF,0xFB,0xFE, - 0xFF,0x81,0xFF,0x81,0x81,0x81,0xFF,0xFF, - 0xD7,0xB8,0x90,0x90,0x90,0x90,0xFF,0xFF, - 0xDF,0x7F,0xDF,0x7F,0x4F,0x7F,0xCF,0xFF, - 0x67,0xDF,0xF3,0x6F,0x78,0x37,0xFF,0xFF, - 0xFB,0xFE,0xFB,0xFE,0xF2,0xFE,0xF3,0xFF, - 0xE6,0xFB,0xCF,0xF6,0x1E,0xEC,0xFF,0xFF -}; - -/* End of DUNGEON_TILES.C */ diff --git a/gbdk-lib/examples/ap/template_subfolders/res/dungeon_tiles.h b/gbdk-lib/examples/ap/template_subfolders/res/dungeon_tiles.h @@ -1,103 +0,0 @@ -/* - - DUNGEON_TILES.H - - Include File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 78 - - Palette colors : Included. - SGB Palette : None. - CGB Palette : None. - - Convert to metatiles : No. - - This file was generated by GBTD v2.2 - -*/ - - -/* Bank of tiles. */ -#define dungeon_tilesBank 0 - -/* Super Gameboy palette 0 */ -#define dungeon_tilesSGBPal0c0 0 -#define dungeon_tilesSGBPal0c1 0 -#define dungeon_tilesSGBPal0c2 22528 -#define dungeon_tilesSGBPal0c3 44 - -/* Super Gameboy palette 1 */ -#define dungeon_tilesSGBPal1c0 6076 -#define dungeon_tilesSGBPal1c1 8935 -#define dungeon_tilesSGBPal1c2 6596 -#define dungeon_tilesSGBPal1c3 5344 - -/* Super Gameboy palette 2 */ -#define dungeon_tilesSGBPal2c0 6076 -#define dungeon_tilesSGBPal2c1 8935 -#define dungeon_tilesSGBPal2c2 6596 -#define dungeon_tilesSGBPal2c3 5344 - -/* Super Gameboy palette 3 */ -#define dungeon_tilesSGBPal3c0 6076 -#define dungeon_tilesSGBPal3c1 8935 -#define dungeon_tilesSGBPal3c2 6596 -#define dungeon_tilesSGBPal3c3 5344 - -/* Gameboy Color palette 0 */ -#define dungeon_tilesCGBPal0c0 26620 -#define dungeon_tilesCGBPal0c1 14096 -#define dungeon_tilesCGBPal0c2 10662 -#define dungeon_tilesCGBPal0c3 2112 - -/* Gameboy Color palette 1 */ -#define dungeon_tilesCGBPal1c0 6076 -#define dungeon_tilesCGBPal1c1 8935 -#define dungeon_tilesCGBPal1c2 6596 -#define dungeon_tilesCGBPal1c3 5344 - -/* Gameboy Color palette 2 */ -#define dungeon_tilesCGBPal2c0 6076 -#define dungeon_tilesCGBPal2c1 8935 -#define dungeon_tilesCGBPal2c2 6596 -#define dungeon_tilesCGBPal2c3 5344 - -/* Gameboy Color palette 3 */ -#define dungeon_tilesCGBPal3c0 6076 -#define dungeon_tilesCGBPal3c1 8935 -#define dungeon_tilesCGBPal3c2 6596 -#define dungeon_tilesCGBPal3c3 5344 - -/* Gameboy Color palette 4 */ -#define dungeon_tilesCGBPal4c0 6076 -#define dungeon_tilesCGBPal4c1 8935 -#define dungeon_tilesCGBPal4c2 6596 -#define dungeon_tilesCGBPal4c3 5344 - -/* Gameboy Color palette 5 */ -#define dungeon_tilesCGBPal5c0 6076 -#define dungeon_tilesCGBPal5c1 8935 -#define dungeon_tilesCGBPal5c2 6596 -#define dungeon_tilesCGBPal5c3 5344 - -/* Gameboy Color palette 6 */ -#define dungeon_tilesCGBPal6c0 6076 -#define dungeon_tilesCGBPal6c1 8935 -#define dungeon_tilesCGBPal6c2 6596 -#define dungeon_tilesCGBPal6c3 5344 - -/* Gameboy Color palette 7 */ -#define dungeon_tilesCGBPal7c0 6076 -#define dungeon_tilesCGBPal7c1 8935 -#define dungeon_tilesCGBPal7c2 6596 -#define dungeon_tilesCGBPal7c3 5344 -/* Start of tile array. */ -extern const const unsigned char dungeon_tiles[]; - -/* End of DUNGEON_TILES.H */ diff --git a/gbdk-lib/examples/ap/template_subfolders/src/main.c b/gbdk-lib/examples/ap/template_subfolders/src/main.c @@ -1,31 +0,0 @@ -#include <gb/gb.h> -#include <stdint.h> -#include "../res/dungeon_map.h" -#include "../res/dungeon_tiles.h" - - -void init_gfx(void) { - // Load Background tiles and then map - set_bkg_data(0, 79u, dungeon_tiles); - set_bkg_tiles(0, 0, 32u, 32u, dungeon_mapPLN0); - - // Turn the background map on to make it visible - SHOW_BKG; -} - - -void main(void) -{ - init_gfx(); - - // Loop forever - while(1) { - - - // Game main loop processing goes here - - - // Done processing, yield CPU and wait for start of next frame - vsync(); - } -} diff --git a/gbdk-lib/examples/gg/Makefile b/gbdk-lib/examples/gg/Makefile @@ -1,17 +0,0 @@ -# Register all subdirectories in the project's root directory. -SUBDIRS := $(wildcard */.) - -# Top-level phony targets. -all clean compile.bat: $(SUBDIRS) FORCE -# Similar to: -# .PHONY: all clean -# all clean: $(SUBDIRS) -# GNU's .PHONY target is more efficient in that it explicitly declares non-files. - -# Recurse `make` into each subdirectory -# Pass along targets specified at command-line (if any). -$(SUBDIRS): FORCE - $(MAKE) -C $@ $(MAKECMDGOALS) - -# Force targets. -FORCE: - diff --git a/gbdk-lib/examples/gg/compile.bat b/gbdk-lib/examples/gg/compile.bat @@ -1,9 +0,0 @@ -@echo off - -REM Automatically build all Game Gear examples in this directory. - -for /d %%i in (.\*) do ( - pushd "%%i" - .\compile.bat - popd -) diff --git a/gbdk-lib/examples/gg/smoke/Makefile b/gbdk-lib/examples/gg/smoke/Makefile @@ -1,30 +0,0 @@ -CC = ../../../bin/lcc -mz80:gg -Wm-yoA -Wl-m -Wl-j - -BINS = smoketest.gg - -all: $(BINS) - -ASRC = $(wildcard *.s) -CSRC = $(wildcard *.c) - -OBJS = $(CSRC:%.c=%.o) $(ASRC:%.s=%.o) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass - -%.o: %.c - $(CC) -c -o $@ $< - -%.o: %.s - $(CC) -c -o $@ $< - -$(BINS): $(OBJS) - $(CC) -Wm-yS -o $@ $^ - rm -f *.map *.noi *.ihx *.lst - -clean: - rm -f *.o *.lst *.map *.gg *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/gg/smoke/assets.c b/gbdk-lib/examples/gg/smoke/assets.c @@ -1,46 +0,0 @@ -#pragma bank 2 - -#include <sms/sms.h> - -BANKREF(earth_data) -const unsigned char earth_data[] = { - - /* Tile 0x00 */ - 0x07,0x07,0x18,0x1F,0x32,0x2D,0x71,0x4E,0x70,0x4F,0xF8,0x87,0xF8,0x87,0xF8,0x87, - 0xFC,0x83,0xFE,0x81,0x7F,0x40,0x7F,0x40,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xF0,0x30,0x78,0x88,0x3C,0xC4,0x5C,0xA4,0x9E,0x62,0x3E,0xC2,0x3E,0xC2, - 0x5E,0xA2,0x7E,0x82,0x0C,0xF4,0x0C,0xF4,0x98,0x68,0xB0,0x70,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1F,0x18,0x2F,0x30,0x4F,0x70,0x6F,0x50,0x9F,0xE0,0x9F,0xE0,0xBF,0xC0, - 0xFF,0x80,0xB7,0xC8,0x63,0x5C,0x43,0x7C,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xB0,0x70,0x18,0xE8,0x0C,0xF4,0x0C,0xF4,0x82,0x7E,0x82,0x7E,0x86,0x7A, - 0xC6,0x3A,0xE6,0x1A,0xF4,0x0C,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x08 */ - 0x07,0x07,0x1E,0x19,0x20,0x3F,0x40,0x7F,0x42,0x7D,0x81,0xFE,0x81,0xFE,0x83,0xFC, - 0xD7,0xA8,0xBB,0xC4,0x6E,0x51,0x7C,0x43,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0xE8,0x18,0xF4,0x0C,0xF4,0x0C,0xFE,0x02,0xFE,0x02,0xFE,0x02, - 0xFE,0x02,0x7E,0x82,0x3C,0xC4,0x3C,0xC4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1B,0x1C,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xE0,0x9F,0x90,0xEF,0x89,0xF6, - 0x8D,0xF2,0x9F,0xE0,0x5E,0x61,0x6F,0x50,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xB0,0x70,0x28,0xD8,0x04,0xFC,0x2C,0xD4,0x1E,0xE2,0x1E,0xE2,0x3E,0xC2, - 0x7E,0x82,0xB6,0x4A,0xE4,0x1C,0xC4,0x3C,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x10 */ - 0x07,0x07,0x18,0x1F,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xEE,0x91,0xF1,0x8E,0xE0,0x9F, - 0xE0,0x9F,0xF1,0x8E,0x71,0x4E,0x72,0x4D,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xF0,0x30,0x08,0xF8,0x04,0xFC,0x04,0xFC,0x02,0xFE,0x02,0xFE,0x92,0x6E, - 0xD6,0x2A,0xFE,0x02,0xEC,0x14,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1D,0x1A,0x36,0x29,0x5C,0x63,0x6C,0x53,0xCE,0xB1,0x9F,0xE0,0x9E,0xE1, - 0xAE,0xD1,0xBF,0xC0,0x47,0x78,0x47,0x78,0x2F,0x30,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0x08,0xF8,0x04,0xFC,0x04,0xFC,0xE2,0x1E,0x32,0xCE,0x0E,0xF2, - 0x0E,0xF2,0x1E,0xE2,0x1C,0xE4,0x2C,0xD4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x18 */ - 0x07,0x07,0x1E,0x19,0x33,0x2C,0x49,0x76,0x42,0x7D,0xC4,0xBB,0xC1,0xBE,0xC1,0xBE, - 0xE2,0x9D,0xF3,0x8C,0x78,0x47,0x78,0x47,0x3C,0x23,0x1C,0x1B,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0x68,0x98,0xC4,0x3C,0xC4,0x3C,0xEE,0x12,0xF2,0x0E,0xE2,0x1E, - 0xE2,0x1E,0xF2,0x0E,0x7C,0x84,0x7C,0x84,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 -}; - -BANKREF(earth_data_size) -const unsigned int earth_data_size = sizeof(earth_data); diff --git a/gbdk-lib/examples/gg/smoke/banked.c b/gbdk-lib/examples/gg/smoke/banked.c @@ -1,7 +0,0 @@ -#pragma bank 3 - -#include <stdint.h> - -uint16_t banked_func(uint8_t be, uint8_t ef) __banked { - return ((be << 8) | ef); -} - diff --git a/gbdk-lib/examples/gg/smoke/smoketest.c b/gbdk-lib/examples/gg/smoke/smoketest.c @@ -1,90 +0,0 @@ -#include <sms/sms.h> - -BANKREF_EXTERN(earth_data) -extern const unsigned char earth_data[]; - -BANKREF_EXTERN(earth_data_size) -extern const unsigned int earth_data_size; - -const uint8_t tilemap[] = {2, 4, 6, 8, 3, 5, 7, 9}; -const uint16_t tilemapw[] = {2, 4, 6, 8, 3, 5, 7, 9}; - -uint16_t banked_func(uint8_t be, uint8_t ef) __banked; - -int16_t x = 8 << 4, y = 0; -int8_t xspd = 0, yspd = 0; - -uint8_t anim = 0, tick = 0; - -joypads_t joy; -void main(void) { - HIDE_LEFT_COLUMN; - SPRITES_8x16; - DISPLAY_ON; - -// vmemcpy(0x4000, earth_data, sizeof(earth_data)); - - SWITCH_ROM(BANK(earth_data)); - if (banked_func(0xBE, 0xEF) == 0xBEEF) { - set_bkg_data(2, earth_data_size >> 4, earth_data); - set_sprite_data(0, earth_data_size >> 4, earth_data); - set_sprite_tile(0, 0); - set_sprite_tile(1, 2); - } - - set_bkg_tiles(4, 10, 4, 2, tilemap); - - set_tile_map(4, 16, 4, 2, tilemapw); - - joypad_init(2, &joy); - - while(TRUE) { - joypad_ex(&joy); - - if (joy.joy0 & J_LEFT) { - if (xspd > -32) xspd -= 2; - } else if (joy.joy0 & J_RIGHT) { - if (xspd < 32) xspd += 2; - } else { - if (xspd < 0) xspd++; else if (xspd > 0) xspd--; - } - - if (joy.joy0 & J_UP) { - if (yspd > -32) yspd -= 2; - } else if (joy.joy0 & J_DOWN) { - if (yspd < 32) yspd += 2; - } else { - if (yspd < 0) yspd++; else if (yspd > 0) yspd--; - } - - x += xspd; - if (x < (8 << 4)) x = 8 << 4; else if (x > (30 * 8) << 4) x = (30 * 8) << 4; - - - y += yspd; - if (y < 0) y = 0; else if (y > (22 * 8) << 4) y = (22 * 8) << 4; - - tick++; tick &= 7; - if (!tick) { - anim++; if (anim == 7) anim = 0; - set_sprite_tile(0, anim << 2); - set_sprite_tile(1, (anim << 2) + 2); - } - - move_sprite(0, x >> 4, y >> 4); - move_sprite(1, (x >> 4) + 8, y >> 4); - - if (joy.joy1 & J_LEFT) { - scroll_bkg(-1, 0); - } else if (joy.joy1 & J_RIGHT) { - scroll_bkg(1, 0); - } - if (joy.joy1 & J_UP) { - scroll_bkg(0, -1); - } else if (joy.joy1 & J_DOWN) { - scroll_bkg(0, 1); - } - - vsync(); - } -} diff --git a/gbdk-lib/examples/sms/smoke/Makefile b/gbdk-lib/examples/sms/smoke/Makefile @@ -1,30 +0,0 @@ -CC = ../../../bin/lcc -mz80:sms -Wm-yoA -Wl-j - -BINS = smoketest.sms - -all: $(BINS) - -ASRC = $(wildcard *.s) -CSRC = $(wildcard *.c) - -OBJS = $(CSRC:%.c=%.o) $(ASRC:%.s=%.o) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass - -%.o: %.c - $(CC) -c -o $@ $< - -%.o: %.s - $(CC) -c -o $@ $< - -$(BINS): $(OBJS) - $(CC) -Wm-yS -o $@ $^ - rm -f *.map *.noi *.ihx *.lst - -clean: - rm -f *.o *.lst *.map *.sms *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/sms/smoke/assets.c b/gbdk-lib/examples/sms/smoke/assets.c @@ -1,46 +0,0 @@ -#pragma bank 2 - -#include <sms/sms.h> - -BANKREF(earth_data) -const unsigned char earth_data[] = { - - /* Tile 0x00 */ - 0x07,0x07,0x18,0x1F,0x32,0x2D,0x71,0x4E,0x70,0x4F,0xF8,0x87,0xF8,0x87,0xF8,0x87, - 0xFC,0x83,0xFE,0x81,0x7F,0x40,0x7F,0x40,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xF0,0x30,0x78,0x88,0x3C,0xC4,0x5C,0xA4,0x9E,0x62,0x3E,0xC2,0x3E,0xC2, - 0x5E,0xA2,0x7E,0x82,0x0C,0xF4,0x0C,0xF4,0x98,0x68,0xB0,0x70,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1F,0x18,0x2F,0x30,0x4F,0x70,0x6F,0x50,0x9F,0xE0,0x9F,0xE0,0xBF,0xC0, - 0xFF,0x80,0xB7,0xC8,0x63,0x5C,0x43,0x7C,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xB0,0x70,0x18,0xE8,0x0C,0xF4,0x0C,0xF4,0x82,0x7E,0x82,0x7E,0x86,0x7A, - 0xC6,0x3A,0xE6,0x1A,0xF4,0x0C,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x08 */ - 0x07,0x07,0x1E,0x19,0x20,0x3F,0x40,0x7F,0x42,0x7D,0x81,0xFE,0x81,0xFE,0x83,0xFC, - 0xD7,0xA8,0xBB,0xC4,0x6E,0x51,0x7C,0x43,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0xE8,0x18,0xF4,0x0C,0xF4,0x0C,0xFE,0x02,0xFE,0x02,0xFE,0x02, - 0xFE,0x02,0x7E,0x82,0x3C,0xC4,0x3C,0xC4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1B,0x1C,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xE0,0x9F,0x90,0xEF,0x89,0xF6, - 0x8D,0xF2,0x9F,0xE0,0x5E,0x61,0x6F,0x50,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xB0,0x70,0x28,0xD8,0x04,0xFC,0x2C,0xD4,0x1E,0xE2,0x1E,0xE2,0x3E,0xC2, - 0x7E,0x82,0xB6,0x4A,0xE4,0x1C,0xC4,0x3C,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x10 */ - 0x07,0x07,0x18,0x1F,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xEE,0x91,0xF1,0x8E,0xE0,0x9F, - 0xE0,0x9F,0xF1,0x8E,0x71,0x4E,0x72,0x4D,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0xF0,0x30,0x08,0xF8,0x04,0xFC,0x04,0xFC,0x02,0xFE,0x02,0xFE,0x92,0x6E, - 0xD6,0x2A,0xFE,0x02,0xEC,0x14,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - 0x07,0x07,0x1D,0x1A,0x36,0x29,0x5C,0x63,0x6C,0x53,0xCE,0xB1,0x9F,0xE0,0x9E,0xE1, - 0xAE,0xD1,0xBF,0xC0,0x47,0x78,0x47,0x78,0x2F,0x30,0x1F,0x18,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0x08,0xF8,0x04,0xFC,0x04,0xFC,0xE2,0x1E,0x32,0xCE,0x0E,0xF2, - 0x0E,0xF2,0x1E,0xE2,0x1C,0xE4,0x2C,0xD4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00, - - /* Tile 0x18 */ - 0x07,0x07,0x1E,0x19,0x33,0x2C,0x49,0x76,0x42,0x7D,0xC4,0xBB,0xC1,0xBE,0xC1,0xBE, - 0xE2,0x9D,0xF3,0x8C,0x78,0x47,0x78,0x47,0x3C,0x23,0x1C,0x1B,0x07,0x07,0x00,0x00, - 0xC0,0xC0,0x70,0xB0,0x68,0x98,0xC4,0x3C,0xC4,0x3C,0xEE,0x12,0xF2,0x0E,0xE2,0x1E, - 0xE2,0x1E,0xF2,0x0E,0x7C,0x84,0x7C,0x84,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00 -}; - -BANKREF(earth_data_size) -const unsigned int earth_data_size = sizeof(earth_data); diff --git a/gbdk-lib/examples/sms/smoke/banked.c b/gbdk-lib/examples/sms/smoke/banked.c @@ -1,7 +0,0 @@ -#pragma bank 3 - -#include <stdint.h> - -uint16_t banked_func(uint8_t be, uint8_t ef) __banked { - return ((be << 8) | ef); -} - diff --git a/gbdk-lib/examples/sms/smoke/ram_bank0.s b/gbdk-lib/examples/sms/smoke/ram_bank0.s @@ -1,6 +0,0 @@ - .area _DATA_0 - -_array0:: - .ds 0x10 -_array1:: - .ds 0x10 - diff --git a/gbdk-lib/examples/sms/smoke/ram_bank1.s b/gbdk-lib/examples/sms/smoke/ram_bank1.s @@ -1,6 +0,0 @@ - .area _DATA_1 - -_array2:: - .ds 0x04 -_array3:: - .ds 0x06 - diff --git a/gbdk-lib/examples/sms/smoke/smoketest.c b/gbdk-lib/examples/sms/smoke/smoketest.c @@ -1,90 +0,0 @@ -#include <sms/sms.h> - -BANKREF_EXTERN(earth_data) -extern const unsigned char earth_data[]; - -BANKREF_EXTERN(earth_data_size) -extern const unsigned int earth_data_size; - -const uint8_t tilemap[] = {2, 4, 6, 8, 3, 5, 7, 9}; -const uint16_t tilemapw[] = {2, 4, 6, 8, 3, 5, 7, 9}; - -uint16_t banked_func(uint8_t be, uint8_t ef) __banked; - -int16_t x = 8 << 4, y = 0; -int8_t xspd = 0, yspd = 0; - -uint8_t anim = 0, tick = 0; - -joypads_t joy; -void main(void) { - HIDE_LEFT_COLUMN; - SPRITES_8x16; - DISPLAY_ON; - -// vmemcpy(0x4000, earth_data, sizeof(earth_data)); - - SWITCH_ROM(BANK(earth_data)); - if (banked_func(0xBE, 0xEF) == 0xBEEF) { - set_bkg_data(2, earth_data_size >> 4, earth_data); - set_sprite_data(0, earth_data_size >> 4, earth_data); - set_sprite_tile(0, 0); - set_sprite_tile(1, 2); - } - - set_bkg_tiles(4, 10, 4, 2, tilemap); - - set_tile_map(4, 16, 4, 2, tilemapw); - - joypad_init(2, &joy); - - while(TRUE) { - joypad_ex(&joy); - - if (joy.joy0 & J_LEFT) { - if (xspd > -32) xspd -= 2; - } else if (joy.joy0 & J_RIGHT) { - if (xspd < 32) xspd += 2; - } else { - if (xspd < 0) xspd++; else if (xspd > 0) xspd--; - } - - if (joy.joy0 & J_UP) { - if (yspd > -32) yspd -= 2; - } else if (joy.joy0 & J_DOWN) { - if (yspd < 32) yspd += 2; - } else { - if (yspd < 0) yspd++; else if (yspd > 0) yspd--; - } - - x += xspd; - if (x < (8 << 4)) x = 8 << 4; else if (x > (30 * 8) << 4) x = (30 * 8) << 4; - - - y += yspd; - if (y < 0) y = 0; else if (y > (22 * 8) << 4) y = (22 * 8) << 4; - - tick++; tick &= 7; - if (!tick) { - anim++; if (anim == 7) anim = 0; - set_sprite_tile(0, anim << 2); - set_sprite_tile(1, (anim << 2) + 2); - } - - move_sprite(0, x >> 4, y >> 4); - move_sprite(1, (x >> 4) + 8, y >> 4); - - if (joy.joy1 & J_LEFT) { - scroll_bkg(-1, 0); - } else if (joy.joy1 & J_RIGHT) { - scroll_bkg(1, 0); - } - if (joy.joy1 & J_UP) { - scroll_bkg(0, -1); - } else if (joy.joy1 & J_DOWN) { - scroll_bkg(0, 1); - } - - vsync(); - } -} diff --git a/gbdk-lib/examples/sms/test/Makefile b/gbdk-lib/examples/sms/test/Makefile @@ -1,30 +0,0 @@ -CC = ../../../bin/lcc -mz80:sms -Wm-yoA -Wl-j - -BINS = test.sms - -all: $(BINS) - -ASRC = $(wildcard *.s) -CSRC = $(wildcard *.c) - -OBJS = $(CSRC:%.c=%.o) $(ASRC:%.s=%.o) - -compile.bat: Makefile - @echo "REM Automatically generated from Makefile" > compile.bat - @make -sn | sed y/\\//\\\\/ | sed s/mkdir\ -p\/mkdir\/ | grep -v make >> compile.bat - -# Compile and link single file in one pass - -%.o: %.c - $(CC) -c -o $@ $< - -%.o: %.s - $(CC) -c -o $@ $< - -$(BINS): $(OBJS) - $(CC) -Wm-yS -o $@ $^ - rm -f *.map *.noi *.ihx *.lst - -clean: - rm -f *.o *.lst *.map *.sms *~ *.rel *.cdb *.ihx *.lnk *.sym *.asm *.noi - diff --git a/gbdk-lib/examples/sms/test/test.c b/gbdk-lib/examples/sms/test/test.c @@ -1,11 +0,0 @@ -#include <sms/sms.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -void main(void) { - uint8_t data[32]; - uint16_t score = 75; - printf("%d %s", strlen(uitoa(score, data, 10)), data); -}
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.