From 1478a597cf15ee3554d554023fd1d8c53f93c7b5 Mon Sep 17 00:00:00 2001 From: Brian Buller Date: Sat, 11 Jul 2020 08:41:14 -0500 Subject: [PATCH] Initial Commit --- background/Makefile | 16 + background/background.c | 13 + background/background.gb | Bin 0 -> 32768 bytes background/background.lst | 2642 ++++++++++++++ background/bg_data.c | 132 + beep/Makefile | 16 + beep/beep.gb | Bin 0 -> 32768 bytes beep/main.c | 29 + beep/main.lst | 235 ++ big_sprite/Makefile | 16 + big_sprite/big_sprite.c | 11 + big_sprite/big_sprite.gb | Bin 0 -> 32768 bytes big_sprite/big_sprite.lst | 220 ++ big_sprite/sprite.c | 11 + big_sprite_animation/Makefile | 16 + big_sprite_animation/big_sprite_animation.c | 21 + big_sprite_animation/big_sprite_animation.gb | Bin 0 -> 32768 bytes big_sprite_animation/big_sprite_animation.lst | 290 ++ big_sprite_animation/cards.c | 19 + blank/Makefile | 16 + blank/blank.c | 2 + blank/blank.gb | Bin 0 -> 32768 bytes blank/blank.lst | 90 + hello_world/Makefile | 16 + hello_world/hello_world.c | 7 + hello_world/hello_world.gb | Bin 0 -> 32768 bytes hello_world/hello_world.lst | 118 + input_state/Makefile | 16 + input_state/input_state.c | 39 + input_state/input_state.gb | Bin 0 -> 32768 bytes input_state/input_state.lst | 334 ++ input_wait/Makefile | 16 + input_wait/input_wait.c | 15 + input_wait/input_wait.gb | Bin 0 -> 32768 bytes input_wait/input_wait.lst | 184 + move_sprite/Makefile | 16 + move_sprite/move_sprite.c | 36 + move_sprite/move_sprite.gb | Bin 0 -> 32768 bytes move_sprite/move_sprite.lst | 443 +++ move_sprite/ufo.c | 5 + small_sprite/Makefile | 16 + small_sprite/small_sprite.c | 10 + small_sprite/small_sprite.gb | Bin 0 -> 32768 bytes small_sprite/small_sprite.lst | 192 + small_sprite/sprite.c | 1 + small_sprite/sprite.lst | 87 + small_sprite/sprite.png | Bin 0 -> 192 bytes window/Makefile | 16 + window/bg.c | 153 + window/border.c | 21 + window/main.c | 16 + window/main.lst | 3232 +++++++++++++++++ window/window.c | 15 + window/window.gb | Bin 0 -> 32768 bytes z_gbdk_playground_original/README.md | 39 + .../background/Makefile | 17 + .../background/README.md | 94 + .../background/background.c | 37 + .../background/bg_data.c | 142 + .../background/bg_data.pcx | Bin 0 -> 3017 bytes z_gbdk_playground_original/background/docs.sh | 2 + .../background/screenshot.png | Bin 0 -> 30167 bytes z_gbdk_playground_original/beep/Makefile | 17 + z_gbdk_playground_original/beep/README.md | 6 + z_gbdk_playground_original/beep/beep.c | 31 + .../beep/screenshot.png | Bin 0 -> 29457 bytes .../big_sprite/Makefile | 17 + .../big_sprite/README.md | 178 + .../big_sprite/big_sprite.c | 51 + z_gbdk_playground_original/big_sprite/docs.sh | 2 + .../big_sprite/screenshot.png | Bin 0 -> 29208 bytes .../big_sprite/sprite.c | 38 + .../big_sprite/sprite.h | 31 + .../big_sprite_animation/Makefile | 17 + .../big_sprite_animation/README.md | 6 + .../big_sprite_animation.c | 21 + .../big_sprite_animation/cards.c | 46 + .../big_sprite_animation/cards.gbr | Bin 0 -> 9301 bytes .../big_sprite_animation/cards.h | 31 + .../big_sprite_animation/screenshot.gif | Bin 0 -> 14739 bytes z_gbdk_playground_original/blank/Makefile | 17 + z_gbdk_playground_original/blank/README.md | 35 + z_gbdk_playground_original/blank/blank.c | 13 + z_gbdk_playground_original/blank/docs.sh | 2 + .../blank/screenshot.png | Bin 0 -> 29197 bytes z_gbdk_playground_original/color/Makefile | 17 + z_gbdk_playground_original/color/README.md | 6 + z_gbdk_playground_original/color/bg_data.c | 142 + z_gbdk_playground_original/color/color.c | 39 + .../color/screenshot.png | Bin 0 -> 30062 bytes z_gbdk_playground_original/detect_gb/Makefile | 16 + .../detect_gb/README.md | 5 + .../detect_gb/detect_gb.c | 21 + .../detect_gb/screenshot.png | Bin 0 -> 32156 bytes .../docs/res/more_coming_soon.png | Bin 0 -> 19976 bytes .../docs/res/readme_c.jst | 15 + z_gbdk_playground_original/drawing/Makefile | 16 + z_gbdk_playground_original/drawing/README.md | 5 + z_gbdk_playground_original/drawing/drawing.c | 41 + .../drawing/screenshot.png | Bin 0 -> 33039 bytes z_gbdk_playground_original/font/Makefile | 16 + z_gbdk_playground_original/font/README.md | 5 + z_gbdk_playground_original/font/font.c | 9 + .../font/screenshot.png | Bin 0 -> 32042 bytes .../hello_world/Makefile | 17 + .../hello_world/README.md | 95 + .../hello_world/docs.sh | 3 + .../hello_world/hello_world.c | 24 + .../hello_world/screenshot.png | Bin 0 -> 29592 bytes .../huge_sprite/Makefile | 17 + .../huge_sprite/README.md | 99 + z_gbdk_playground_original/huge_sprite/bg.h | 67 + z_gbdk_playground_original/huge_sprite/bg.png | Bin 0 -> 495 bytes .../huge_sprite/docs.sh | 2 + .../huge_sprite/huge_sprite.c | 84 + .../huge_sprite/screenshot.png | Bin 0 -> 28083 bytes .../huge_sprite/sprite.h | 82 + .../huge_sprite/sprite.png | Bin 0 -> 1005 bytes .../input_state/Makefile | 17 + .../input_state/README.md | 6 + .../input_state/input_state.c | 41 + .../input_state/screenshot.png | Bin 0 -> 29850 bytes .../input_wait/Makefile | 17 + .../input_wait/README.md | 6 + .../input_wait/input_wait.c | 15 + .../input_wait/screenshot.png | Bin 0 -> 30272 bytes z_gbdk_playground_original/link/Makefile | 17 + z_gbdk_playground_original/link/README.md | 6 + z_gbdk_playground_original/link/link.c | 30 + .../link/screenshot.png | Bin 0 -> 33129 bytes .../move_sprite/Makefile | 17 + .../move_sprite/README.md | 6 + .../move_sprite/move_sprite.c | 37 + .../move_sprite/screenshot.gif | Bin 0 -> 15695 bytes z_gbdk_playground_original/move_sprite/ufo.c | 32 + .../move_sprite/ufo.gbr | Bin 0 -> 10069 bytes z_gbdk_playground_original/move_sprite/ufo.h | 31 + z_gbdk_playground_original/save_ram/Makefile | 16 + z_gbdk_playground_original/save_ram/README.md | 5 + .../save_ram/save_ram.c | 22 + .../save_ram/screenshot.png | Bin 0 -> 32245 bytes .../simple_shmup/Makefile | 17 + .../simple_shmup/README.md | 8 + .../simple_shmup/background.bmp | Bin 0 -> 24186 bytes .../simple_shmup/backgrounds.gbr | Bin 0 -> 10069 bytes .../simple_shmup/bank2.c | 154 + .../simple_shmup/bank3.c | 90 + .../simple_shmup/bg_tile.c | 32 + .../simple_shmup/bg_tile.h | 31 + .../simple_shmup/bg_title.c | 170 + .../simple_shmup/make.bat | 8 + .../simple_shmup/screenshot.png | Bin 0 -> 30431 bytes .../simple_shmup/simple_shmup.c | 58 + .../simple_shmup/spr_tiles.c | 36 + .../simple_shmup/spr_tiles.h | 31 + .../simple_shmup/sprites.gbr | Bin 0 -> 10069 bytes .../small_sprite/Makefile | 17 + .../small_sprite/README.md | 6 + .../small_sprite/screenshot.png | Bin 0 -> 29207 bytes .../small_sprite/small_sprite.c | 10 + .../small_sprite/sprite.c | 32 + .../small_sprite/sprite.gbr | Bin 0 -> 10069 bytes .../small_sprite/sprite.h | 31 + .../small_sprite/sprite.png | Bin 0 -> 192 bytes z_gbdk_playground_original/window/Makefile | 17 + z_gbdk_playground_original/window/README.md | 7 + z_gbdk_playground_original/window/bg.c | 163 + z_gbdk_playground_original/window/bg.pcx | Bin 0 -> 8998 bytes z_gbdk_playground_original/window/border.c | 48 + z_gbdk_playground_original/window/border.gbr | Bin 0 -> 10069 bytes z_gbdk_playground_original/window/border.h | 31 + z_gbdk_playground_original/window/main.c | 19 + .../window/screenshot.png | Bin 0 -> 33035 bytes z_gbdk_playground_original/window/window.c | 37 + z_gbdk_playground_original/window/window.gbm | Bin 0 -> 2656 bytes z_gbdk_playground_original/window/window.h | 27 + 176 files changed, 11933 insertions(+) create mode 100644 background/Makefile create mode 100644 background/background.c create mode 100644 background/background.gb create mode 100644 background/background.lst create mode 100644 background/bg_data.c create mode 100644 beep/Makefile create mode 100644 beep/beep.gb create mode 100644 beep/main.c create mode 100644 beep/main.lst create mode 100644 big_sprite/Makefile create mode 100644 big_sprite/big_sprite.c create mode 100644 big_sprite/big_sprite.gb create mode 100644 big_sprite/big_sprite.lst create mode 100644 big_sprite/sprite.c create mode 100644 big_sprite_animation/Makefile create mode 100644 big_sprite_animation/big_sprite_animation.c create mode 100644 big_sprite_animation/big_sprite_animation.gb create mode 100644 big_sprite_animation/big_sprite_animation.lst create mode 100644 big_sprite_animation/cards.c create mode 100644 blank/Makefile create mode 100644 blank/blank.c create mode 100644 blank/blank.gb create mode 100644 blank/blank.lst create mode 100644 hello_world/Makefile create mode 100644 hello_world/hello_world.c create mode 100644 hello_world/hello_world.gb create mode 100644 hello_world/hello_world.lst create mode 100644 input_state/Makefile create mode 100644 input_state/input_state.c create mode 100644 input_state/input_state.gb create mode 100644 input_state/input_state.lst create mode 100644 input_wait/Makefile create mode 100644 input_wait/input_wait.c create mode 100644 input_wait/input_wait.gb create mode 100644 input_wait/input_wait.lst create mode 100644 move_sprite/Makefile create mode 100644 move_sprite/move_sprite.c create mode 100644 move_sprite/move_sprite.gb create mode 100644 move_sprite/move_sprite.lst create mode 100644 move_sprite/ufo.c create mode 100644 small_sprite/Makefile create mode 100644 small_sprite/small_sprite.c create mode 100644 small_sprite/small_sprite.gb create mode 100644 small_sprite/small_sprite.lst create mode 100644 small_sprite/sprite.c create mode 100644 small_sprite/sprite.lst create mode 100644 small_sprite/sprite.png create mode 100644 window/Makefile create mode 100644 window/bg.c create mode 100644 window/border.c create mode 100644 window/main.c create mode 100644 window/main.lst create mode 100644 window/window.c create mode 100644 window/window.gb create mode 100644 z_gbdk_playground_original/README.md create mode 100644 z_gbdk_playground_original/background/Makefile create mode 100644 z_gbdk_playground_original/background/README.md create mode 100644 z_gbdk_playground_original/background/background.c create mode 100644 z_gbdk_playground_original/background/bg_data.c create mode 100644 z_gbdk_playground_original/background/bg_data.pcx create mode 100644 z_gbdk_playground_original/background/docs.sh create mode 100644 z_gbdk_playground_original/background/screenshot.png create mode 100644 z_gbdk_playground_original/beep/Makefile create mode 100644 z_gbdk_playground_original/beep/README.md create mode 100644 z_gbdk_playground_original/beep/beep.c create mode 100644 z_gbdk_playground_original/beep/screenshot.png create mode 100644 z_gbdk_playground_original/big_sprite/Makefile create mode 100644 z_gbdk_playground_original/big_sprite/README.md create mode 100644 z_gbdk_playground_original/big_sprite/big_sprite.c create mode 100644 z_gbdk_playground_original/big_sprite/docs.sh create mode 100644 z_gbdk_playground_original/big_sprite/screenshot.png create mode 100644 z_gbdk_playground_original/big_sprite/sprite.c create mode 100644 z_gbdk_playground_original/big_sprite/sprite.h create mode 100644 z_gbdk_playground_original/big_sprite_animation/Makefile create mode 100644 z_gbdk_playground_original/big_sprite_animation/README.md create mode 100644 z_gbdk_playground_original/big_sprite_animation/big_sprite_animation.c create mode 100644 z_gbdk_playground_original/big_sprite_animation/cards.c create mode 100644 z_gbdk_playground_original/big_sprite_animation/cards.gbr create mode 100644 z_gbdk_playground_original/big_sprite_animation/cards.h create mode 100644 z_gbdk_playground_original/big_sprite_animation/screenshot.gif create mode 100644 z_gbdk_playground_original/blank/Makefile create mode 100644 z_gbdk_playground_original/blank/README.md create mode 100644 z_gbdk_playground_original/blank/blank.c create mode 100644 z_gbdk_playground_original/blank/docs.sh create mode 100644 z_gbdk_playground_original/blank/screenshot.png create mode 100644 z_gbdk_playground_original/color/Makefile create mode 100644 z_gbdk_playground_original/color/README.md create mode 100644 z_gbdk_playground_original/color/bg_data.c create mode 100644 z_gbdk_playground_original/color/color.c create mode 100644 z_gbdk_playground_original/color/screenshot.png create mode 100644 z_gbdk_playground_original/detect_gb/Makefile create mode 100644 z_gbdk_playground_original/detect_gb/README.md create mode 100644 z_gbdk_playground_original/detect_gb/detect_gb.c create mode 100644 z_gbdk_playground_original/detect_gb/screenshot.png create mode 100644 z_gbdk_playground_original/docs/res/more_coming_soon.png create mode 100644 z_gbdk_playground_original/docs/res/readme_c.jst create mode 100644 z_gbdk_playground_original/drawing/Makefile create mode 100644 z_gbdk_playground_original/drawing/README.md create mode 100644 z_gbdk_playground_original/drawing/drawing.c create mode 100644 z_gbdk_playground_original/drawing/screenshot.png create mode 100644 z_gbdk_playground_original/font/Makefile create mode 100644 z_gbdk_playground_original/font/README.md create mode 100644 z_gbdk_playground_original/font/font.c create mode 100644 z_gbdk_playground_original/font/screenshot.png create mode 100644 z_gbdk_playground_original/hello_world/Makefile create mode 100644 z_gbdk_playground_original/hello_world/README.md create mode 100644 z_gbdk_playground_original/hello_world/docs.sh create mode 100644 z_gbdk_playground_original/hello_world/hello_world.c create mode 100644 z_gbdk_playground_original/hello_world/screenshot.png create mode 100644 z_gbdk_playground_original/huge_sprite/Makefile create mode 100644 z_gbdk_playground_original/huge_sprite/README.md create mode 100644 z_gbdk_playground_original/huge_sprite/bg.h create mode 100644 z_gbdk_playground_original/huge_sprite/bg.png create mode 100755 z_gbdk_playground_original/huge_sprite/docs.sh create mode 100644 z_gbdk_playground_original/huge_sprite/huge_sprite.c create mode 100644 z_gbdk_playground_original/huge_sprite/screenshot.png create mode 100644 z_gbdk_playground_original/huge_sprite/sprite.h create mode 100644 z_gbdk_playground_original/huge_sprite/sprite.png create mode 100644 z_gbdk_playground_original/input_state/Makefile create mode 100644 z_gbdk_playground_original/input_state/README.md create mode 100644 z_gbdk_playground_original/input_state/input_state.c create mode 100644 z_gbdk_playground_original/input_state/screenshot.png create mode 100644 z_gbdk_playground_original/input_wait/Makefile create mode 100644 z_gbdk_playground_original/input_wait/README.md create mode 100644 z_gbdk_playground_original/input_wait/input_wait.c create mode 100644 z_gbdk_playground_original/input_wait/screenshot.png create mode 100644 z_gbdk_playground_original/link/Makefile create mode 100644 z_gbdk_playground_original/link/README.md create mode 100644 z_gbdk_playground_original/link/link.c create mode 100644 z_gbdk_playground_original/link/screenshot.png create mode 100644 z_gbdk_playground_original/move_sprite/Makefile create mode 100644 z_gbdk_playground_original/move_sprite/README.md create mode 100644 z_gbdk_playground_original/move_sprite/move_sprite.c create mode 100644 z_gbdk_playground_original/move_sprite/screenshot.gif create mode 100644 z_gbdk_playground_original/move_sprite/ufo.c create mode 100644 z_gbdk_playground_original/move_sprite/ufo.gbr create mode 100644 z_gbdk_playground_original/move_sprite/ufo.h create mode 100644 z_gbdk_playground_original/save_ram/Makefile create mode 100644 z_gbdk_playground_original/save_ram/README.md create mode 100644 z_gbdk_playground_original/save_ram/save_ram.c create mode 100644 z_gbdk_playground_original/save_ram/screenshot.png create mode 100644 z_gbdk_playground_original/simple_shmup/Makefile create mode 100644 z_gbdk_playground_original/simple_shmup/README.md create mode 100644 z_gbdk_playground_original/simple_shmup/background.bmp create mode 100644 z_gbdk_playground_original/simple_shmup/backgrounds.gbr create mode 100644 z_gbdk_playground_original/simple_shmup/bank2.c create mode 100644 z_gbdk_playground_original/simple_shmup/bank3.c create mode 100644 z_gbdk_playground_original/simple_shmup/bg_tile.c create mode 100644 z_gbdk_playground_original/simple_shmup/bg_tile.h create mode 100644 z_gbdk_playground_original/simple_shmup/bg_title.c create mode 100644 z_gbdk_playground_original/simple_shmup/make.bat create mode 100644 z_gbdk_playground_original/simple_shmup/screenshot.png create mode 100644 z_gbdk_playground_original/simple_shmup/simple_shmup.c create mode 100644 z_gbdk_playground_original/simple_shmup/spr_tiles.c create mode 100644 z_gbdk_playground_original/simple_shmup/spr_tiles.h create mode 100644 z_gbdk_playground_original/simple_shmup/sprites.gbr create mode 100644 z_gbdk_playground_original/small_sprite/Makefile create mode 100644 z_gbdk_playground_original/small_sprite/README.md create mode 100644 z_gbdk_playground_original/small_sprite/screenshot.png create mode 100644 z_gbdk_playground_original/small_sprite/small_sprite.c create mode 100644 z_gbdk_playground_original/small_sprite/sprite.c create mode 100644 z_gbdk_playground_original/small_sprite/sprite.gbr create mode 100644 z_gbdk_playground_original/small_sprite/sprite.h create mode 100644 z_gbdk_playground_original/small_sprite/sprite.png create mode 100644 z_gbdk_playground_original/window/Makefile create mode 100644 z_gbdk_playground_original/window/README.md create mode 100644 z_gbdk_playground_original/window/bg.c create mode 100644 z_gbdk_playground_original/window/bg.pcx create mode 100644 z_gbdk_playground_original/window/border.c create mode 100644 z_gbdk_playground_original/window/border.gbr create mode 100644 z_gbdk_playground_original/window/border.h create mode 100644 z_gbdk_playground_original/window/main.c create mode 100644 z_gbdk_playground_original/window/screenshot.png create mode 100644 z_gbdk_playground_original/window/window.c create mode 100644 z_gbdk_playground_original/window/window.gbm create mode 100644 z_gbdk_playground_original/window/window.h diff --git a/background/Makefile b/background/Makefile new file mode 100644 index 0000000..62c6241 --- /dev/null +++ b/background/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = background.gb +OBJS = background.o + +all: $(BIN) + +$.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ diff --git a/background/background.c b/background/background.c new file mode 100644 index 0000000..a8d5803 --- /dev/null +++ b/background/background.c @@ -0,0 +1,13 @@ +#include +#include "bg_data.c" +#include "bg_data.map" + +void main() { + set_bkg_data(0, 131, tiledata); + VBK_REG = 1; + VBK_REG = 0; + set_bkg_tiles(0, 0, 20, 18, tilemap); + + SHOW_BKG; + DISPLAY_ON; +} diff --git a/background/background.gb b/background/background.gb new file mode 100644 index 0000000000000000000000000000000000000000..998ee972fb1498028a0e35c2f56e786387dba7a2 GIT binary patch literal 32768 zcmeH~Z)_Y#6~N!_t@rNi^PS_Q?UFxuuSbk~E^u{2FeN>2{*W{YB&8%Sl*YNH#ij%t zmp~HICby*@`16S(A+-{stw;-eI@Cx&$d@&hrJkHa^g}*GYLqqVMX>?tQWMzP=R4lJ zx$&;;2tFY3={?CaZ{EC__vSZqv*TiYso0j;5z$mdQME{iY1vDASGLN@UpsG&K)sy2 z(5#Ei`bx8&rux>z<@9fR+R6`%j+D;ARLZ#d&iKu#E7L0{{6AaZt%sFA{e5`&QaiMT zj>8KOgLa6l>iWSCA^z^A(d$>QUU~WA#gQjR3j%Y7)j&fT4LT&v(FvQf8QaJyYKJM1c1 z+f@stKg8!t&$WZ9zzJg^z_1w5Z>Qc^NIs^Plkh^h^z-%`nzFy1Ra7cLP5!90oLtk1 zolq`qiQmu_tL`bAt<>gv?@(%RZEx?%{6Epzs;8D2ZS_W|xC9M0u3Z}+cTn7>h-?N1 z5(z~i-(Yt6d{gL_rCK!YGLZg{d^eYe*<0y+mEFClWym z#mMKwVQG^w^LgPX+oDb+mbN`F*mhmHo@%vH5i`1OFjE;t){2rybaf4&Uv#97FIvHrp020;gh1sU0tF6-cTu#K7v1lGu)immokI^fehn z>~;u+b{vn^64A5>N=FCfC1<2eb)9+)!;d6-MHYe$ty5SjKdFh@wjIYb4MUu=#G*8h z^ZMF1g_U#Lb}rZ7AB*{Sj+nu=T{n}V^Cg5%cqrtPu2g8RDRVl< z6bF}Y8HTQhmfdmUtP*LOL9AGmB9h!I`la~UucUwK6#c&Fd_*GgIL##QH@Ye4H=fT^ zPISjfp}Z(F$=z`*i)Ns6y)sYNrIU9%dw;*M%l()8AmfPIwu3wcWEbr<;fFbg^ohNr=4X zW!tvt8!cNhp5ut<^z}_71an21n({nF4be~0mli!7foN-6ti5TACpuPju3iJsc?ZCq zcim-tNaVCuTZh*P>Kgz)+$C(LrX}xA0el3#HwsfXPV>76)i6;(W3vzK z2H3NE@8_D<&y#H*!2X8;zVOHw8`cA8JBZp~qxI;QsQNP6Fqg;DUwOP?J+uR>Ax%3B zeK}0yi6dlv@~I>6RZSa)5o*EL8YMja^`n~hjc<+~8++zk$B%#eJ10(_`tE6fXP-NB zHjlIVVn6@AGc&I_*F(n?SDD;6xiLCT5BO}1p6^)V;~h(Ux?_nCcPz1YsL_ih_F{>> zSYq!`EPZ(J&9|SuVE*g$@6Fjl-^ncp4y{Y2J9n*4cdq`;+r}+?^M_K#2V=d@6qCPn zHkoQ_Q_02`=FIC(v0{Dy&xKjk=1;)f>(1|byn-}WcGP~7nZxqM{<(^EJ?~mYeEIIo z_B?1V6z9%4HPwt(l$l>RSuo-?#k{kk)DHG&SHW51@-=6u zIA5GC&b{j3qkq;@@g;rMtvRdcTO?$El^ z=gk|mw*NFsH#Fz4qvNHu@$ur4;qT+<=pbf5dC)&`~VH-YHdID`_O!=hQ zl7yFxHA(oHks!liVF;mNqHw+^te6npU{-b56CHo2e0ed_9p*o#4oq$6X`LXC@$zNk zJq*%D^J8pJyNuydX^cLGk^b9%HvY}S8WUgwOn?b60Vco%m;e)C0!)AjFaajO1egF5 zU;<2l2`~XBzyz286JP>NfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5 zU;<2l2`~XBzyz286JP>NfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5 zU;<2l2`~XBzyz286JP>NfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1pXHS F{|2f+GDQFY literal 0 HcmV?d00001 diff --git a/background/background.lst b/background/background.lst new file mode 100644 index 0000000..a41a031 --- /dev/null +++ b/background/background.lst @@ -0,0 +1,2642 @@ + 1 ;-------------------------------------------------------- + 2 ; File Created by SDCC : FreeWare ANSI-C Compiler + 3 ; Version 2.3.1 Wed Jul 8 08:46:26 2020 + 4 + 5 ;-------------------------------------------------------- + 6 .module lcc2248360 + 7 + 8 ;-------------------------------------------------------- + 9 ; Public variables in this module + 10 ;-------------------------------------------------------- + 11 .globl _main + 12 .globl _tilemap + 13 .globl _tiledata + 14 ;-------------------------------------------------------- + 15 ; special function registers + 16 ;-------------------------------------------------------- + 17 ;-------------------------------------------------------- + 18 ; special function bits + 19 ;-------------------------------------------------------- + 20 ;-------------------------------------------------------- + 21 ; internal ram data + 22 ;-------------------------------------------------------- + 23 .area _DATA + 24 ;-------------------------------------------------------- + 25 ; overlayable items in internal ram + 26 ;-------------------------------------------------------- + 27 .area _OVERLAY + 28 ;-------------------------------------------------------- + 29 ; indirectly addressable internal ram data + 30 ;-------------------------------------------------------- + 31 .area _ISEG + 32 ;-------------------------------------------------------- + 33 ; bit data + 34 ;-------------------------------------------------------- + 35 .area _BSEG + 36 ;-------------------------------------------------------- + 37 ; external ram data + 38 ;-------------------------------------------------------- + 39 .area _XSEG + 40 ;-------------------------------------------------------- + 41 ; global & static initialisations + 42 ;-------------------------------------------------------- + 43 .area _GSINIT + 44 .area _GSFINAL + 45 .area _GSINIT + 46 ;-------------------------------------------------------- + 47 ; Home + 48 ;-------------------------------------------------------- + 49 .area _HOME + 50 .area _CODE + 51 ;-------------------------------------------------------- + 52 ; code + 53 ;-------------------------------------------------------- + 54 .area _CODE + 55 ; background.c 5 + 56 ; genLabel + 57 ; genFunction + 58 ; --------------------------------- + 59 ; Function main + 60 ; --------------------------------- + 0000 61 ___main_start: + 0000 62 _main: + 0000 E8 FD 63 lda sp,-3(sp) + 64 ; background.c 6 + 65 ; genIpush + 66 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0002 21 5A 00 67 ld hl,#_tiledata + 0005 E5 68 push hl + 69 ; genIpush + 0006 21 00 83 70 ld hl,#0x8300 + 0009 E5 71 push hl + 72 ; genCall + 000A CD 00 00 73 call _set_bkg_data + 000D E8 04 74 lda sp,4(sp) + 75 ; background.c 7 + 76 ; genAssign + 000F 01 4F FF 77 ld bc,#0xFF4F + 78 ; genAssign (pointer) + 0012 3E 01 79 ld a,#0x01 + 0014 02 80 ld (bc),a + 81 ; background.c 8 + 82 ; genAssign + 0015 01 4F FF 83 ld bc,#0xFF4F + 84 ; genAssign (pointer) + 0018 3E 00 85 ld a,#0x00 + 001A 02 86 ld (bc),a + 87 ; background.c 9 + 88 ; genIpush + 89 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 001B 21 8A 08 90 ld hl,#_tilemap + 001E E5 91 push hl + 92 ; genIpush + 001F 21 14 12 93 ld hl,#0x1214 + 0022 E5 94 push hl + 95 ; genIpush + 0023 21 00 00 96 ld hl,#0x0000 + 0026 E5 97 push hl + 98 ; genCall + 0027 CD 00 00 99 call _set_bkg_tiles + 002A E8 06 100 lda sp,6(sp) + 101 ; background.c 11 + 102 ; genAssign + 002C 01 40 FF 103 ld bc,#0xFF40 + 104 ; genAssign + 105 ; AOP_STK for _main_sloc0_1_0 + 002F F8 01 106 lda hl,1(sp) + 0031 36 40 107 ld (hl),#0x40 + 0033 23 108 inc hl + 0034 36 FF 109 ld (hl),#0xFF + 110 ; genPointerGet + 111 ; AOP_STK for _main_sloc0_1_0 + 112 ; AOP_STK for _main_sloc1_1_0 + 0036 2B 113 dec hl + 0037 5E 114 ld e,(hl) + 0038 23 115 inc hl + 0039 56 116 ld d,(hl) + 003A 1A 117 ld a,(de) + 003B 2B 118 dec hl + 003C 2B 119 dec hl + 120 ; genOr + 121 ; AOP_STK for _main_sloc1_1_0 + 003D 77 122 ld (hl),a + 003E 7F 123 ld a,a + 003F F6 01 124 or a,#0x01 + 125 ; genAssign (pointer) + 0041 02 126 ld (bc),a + 127 ; background.c 12 + 128 ; genAssign + 0042 01 40 FF 129 ld bc,#0xFF40 + 130 ; genAssign + 131 ; AOP_STK for _main_sloc0_1_0 + 0045 23 132 inc hl + 0046 36 40 133 ld (hl),#0x40 + 0048 23 134 inc hl + 0049 36 FF 135 ld (hl),#0xFF + 136 ; genPointerGet + 137 ; AOP_STK for _main_sloc0_1_0 + 138 ; AOP_STK for _main_sloc1_1_0 + 004B 2B 139 dec hl + 004C 5E 140 ld e,(hl) + 004D 23 141 inc hl + 004E 56 142 ld d,(hl) + 004F 1A 143 ld a,(de) + 0050 2B 144 dec hl + 0051 2B 145 dec hl + 146 ; genOr + 147 ; AOP_STK for _main_sloc1_1_0 + 0052 77 148 ld (hl),a + 0053 7F 149 ld a,a + 0054 F6 80 150 or a,#0x80 + 151 ; genAssign (pointer) + 0056 02 152 ld (bc),a + 153 ; genLabel + 0057 154 00101$: + 155 ; genEndFunction + 0057 E8 03 156 lda sp,3(sp) + 0059 C9 157 ret + 005A 158 ___main_end: + 005A 159 _tiledata: + 005A 00 160 .db #0x00 + 005B 00 161 .db #0x00 + 005C 00 162 .db #0x00 + 005D 00 163 .db #0x00 + 005E 00 164 .db #0x00 + 005F 00 165 .db #0x00 + 0060 00 166 .db #0x00 + 0061 00 167 .db #0x00 + 0062 00 168 .db #0x00 + 0063 00 169 .db #0x00 + 0064 00 170 .db #0x00 + 0065 00 171 .db #0x00 + 0066 00 172 .db #0x00 + 0067 00 173 .db #0x00 + 0068 00 174 .db #0x00 + 0069 00 175 .db #0x00 + 006A DF 176 .db #0xDF + 006B DF 177 .db #0xDF + 006C C1 178 .db #0xC1 + 006D C1 179 .db #0xC1 + 006E C0 180 .db #0xC0 + 006F C0 181 .db #0xC0 + 0070 C0 182 .db #0xC0 + 0071 C0 183 .db #0xC0 + 0072 E0 184 .db #0xE0 + 0073 E0 185 .db #0xE0 + 0074 E0 186 .db #0xE0 + 0075 E0 187 .db #0xE0 + 0076 E0 188 .db #0xE0 + 0077 E0 189 .db #0xE0 + 0078 E0 190 .db #0xE0 + 0079 E0 191 .db #0xE0 + 007A FF 192 .db #0xFF + 007B FF 193 .db #0xFF + 007C FF 194 .db #0xFF + 007D FF 195 .db #0xFF + 007E FF 196 .db #0xFF + 007F FF 197 .db #0xFF + 0080 3F 198 .db #0x3F + 0081 3F 199 .db #0x3F + 0082 0F 200 .db #0x0F + 0083 0F 201 .db #0x0F + 0084 01 202 .db #0x01 + 0085 01 203 .db #0x01 + 0086 00 204 .db #0x00 + 0087 00 205 .db #0x00 + 0088 00 206 .db #0x00 + 0089 00 207 .db #0x00 + 008A FF 208 .db #0xFF + 008B FF 209 .db #0xFF + 008C FF 210 .db #0xFF + 008D FF 211 .db #0xFF + 008E FF 212 .db #0xFF + 008F FF 213 .db #0xFF + 0090 FF 214 .db #0xFF + 0091 FF 215 .db #0xFF + 0092 FF 216 .db #0xFF + 0093 FF 217 .db #0xFF + 0094 FF 218 .db #0xFF + 0095 FF 219 .db #0xFF + 0096 7F 220 .db #0x7F + 0097 7F 221 .db #0x7F + 0098 1F 222 .db #0x1F + 0099 1F 223 .db #0x1F + 009A FF 224 .db #0xFF + 009B FF 225 .db #0xFF + 009C FF 226 .db #0xFF + 009D FF 227 .db #0xFF + 009E FF 228 .db #0xFF + 009F FF 229 .db #0xFF + 00A0 FF 230 .db #0xFF + 00A1 FF 231 .db #0xFF + 00A2 FF 232 .db #0xFF + 00A3 FF 233 .db #0xFF + 00A4 FF 234 .db #0xFF + 00A5 FF 235 .db #0xFF + 00A6 FF 236 .db #0xFF + 00A7 FF 237 .db #0xFF + 00A8 FF 238 .db #0xFF + 00A9 FF 239 .db #0xFF + 00AA FF 240 .db #0xFF + 00AB FF 241 .db #0xFF + 00AC FF 242 .db #0xFF + 00AD FF 243 .db #0xFF + 00AE FF 244 .db #0xFF + 00AF FF 245 .db #0xFF + 00B0 FF 246 .db #0xFF + 00B1 FF 247 .db #0xFF + 00B2 FF 248 .db #0xFF + 00B3 FF 249 .db #0xFF + 00B4 FF 250 .db #0xFF + 00B5 FF 251 .db #0xFF + 00B6 FE 252 .db #0xFE + 00B7 FE 253 .db #0xFE + 00B8 F8 254 .db #0xF8 + 00B9 F8 255 .db #0xF8 + 00BA FE 256 .db #0xFE + 00BB FE 257 .db #0xFE + 00BC FC 258 .db #0xFC + 00BD FC 259 .db #0xFC + 00BE F8 260 .db #0xF8 + 00BF F8 261 .db #0xF8 + 00C0 F0 262 .db #0xF0 + 00C1 F0 263 .db #0xF0 + 00C2 C0 264 .db #0xC0 + 00C3 C0 265 .db #0xC0 + 00C4 00 266 .db #0x00 + 00C5 00 267 .db #0x00 + 00C6 00 268 .db #0x00 + 00C7 00 269 .db #0x00 + 00C8 00 270 .db #0x00 + 00C9 00 271 .db #0x00 + 00CA 00 272 .db #0x00 + 00CB 00 273 .db #0x00 + 00CC 00 274 .db #0x00 + 00CD 00 275 .db #0x00 + 00CE 01 276 .db #0x01 + 00CF 01 277 .db #0x01 + 00D0 01 278 .db #0x01 + 00D1 01 279 .db #0x01 + 00D2 03 280 .db #0x03 + 00D3 03 281 .db #0x03 + 00D4 07 282 .db #0x07 + 00D5 07 283 .db #0x07 + 00D6 07 284 .db #0x07 + 00D7 07 285 .db #0x07 + 00D8 0F 286 .db #0x0F + 00D9 0F 287 .db #0x0F + 00DA E0 288 .db #0xE0 + 00DB E0 289 .db #0xE0 + 00DC E0 290 .db #0xE0 + 00DD E0 291 .db #0xE0 + 00DE F0 292 .db #0xF0 + 00DF F0 293 .db #0xF0 + 00E0 F0 294 .db #0xF0 + 00E1 F0 295 .db #0xF0 + 00E2 F0 296 .db #0xF0 + 00E3 F0 297 .db #0xF0 + 00E4 F8 298 .db #0xF8 + 00E5 F8 299 .db #0xF8 + 00E6 F8 300 .db #0xF8 + 00E7 F8 301 .db #0xF8 + 00E8 F8 302 .db #0xF8 + 00E9 F8 303 .db #0xF8 + 00EA 03 304 .db #0x03 + 00EB 03 305 .db #0x03 + 00EC 00 306 .db #0x00 + 00ED 00 307 .db #0x00 + 00EE 00 308 .db #0x00 + 00EF 00 309 .db #0x00 + 00F0 00 310 .db #0x00 + 00F1 00 311 .db #0x00 + 00F2 00 312 .db #0x00 + 00F3 00 313 .db #0x00 + 00F4 00 314 .db #0x00 + 00F5 00 315 .db #0x00 + 00F6 00 316 .db #0x00 + 00F7 00 317 .db #0x00 + 00F8 00 318 .db #0x00 + 00F9 00 319 .db #0x00 + 00FA FF 320 .db #0xFF + 00FB FF 321 .db #0xFF + 00FC 0F 322 .db #0x0F + 00FD 0F 323 .db #0x0F + 00FE 00 324 .db #0x00 + 00FF 00 325 .db #0x00 + 0100 00 326 .db #0x00 + 0101 00 327 .db #0x00 + 0102 00 328 .db #0x00 + 0103 00 329 .db #0x00 + 0104 00 330 .db #0x00 + 0105 00 331 .db #0x00 + 0106 00 332 .db #0x00 + 0107 00 333 .db #0x00 + 0108 00 334 .db #0x00 + 0109 00 335 .db #0x00 + 010A FF 336 .db #0xFF + 010B FF 337 .db #0xFF + 010C FF 338 .db #0xFF + 010D FF 339 .db #0xFF + 010E 7F 340 .db #0x7F + 010F 7F 341 .db #0x7F + 0110 07 342 .db #0x07 + 0111 07 343 .db #0x07 + 0112 00 344 .db #0x00 + 0113 00 345 .db #0x00 + 0114 00 346 .db #0x00 + 0115 00 347 .db #0x00 + 0116 00 348 .db #0x00 + 0117 00 349 .db #0x00 + 0118 00 350 .db #0x00 + 0119 00 351 .db #0x00 + 011A FF 352 .db #0xFF + 011B FF 353 .db #0xFF + 011C FF 354 .db #0xFF + 011D FF 355 .db #0xFF + 011E FF 356 .db #0xFF + 011F FF 357 .db #0xFF + 0120 FF 358 .db #0xFF + 0121 FF 359 .db #0xFF + 0122 7F 360 .db #0x7F + 0123 7F 361 .db #0x7F + 0124 0F 362 .db #0x0F + 0125 0F 363 .db #0x0F + 0126 00 364 .db #0x00 + 0127 00 365 .db #0x00 + 0128 00 366 .db #0x00 + 0129 00 367 .db #0x00 + 012A FF 368 .db #0xFF + 012B FF 369 .db #0xFF + 012C FF 370 .db #0xFF + 012D FF 371 .db #0xFF + 012E FF 372 .db #0xFF + 012F FF 373 .db #0xFF + 0130 FF 374 .db #0xFF + 0131 FF 375 .db #0xFF + 0132 FF 376 .db #0xFF + 0133 FF 377 .db #0xFF + 0134 FF 378 .db #0xFF + 0135 FF 379 .db #0xFF + 0136 FF 380 .db #0xFF + 0137 FF 381 .db #0xFF + 0138 0F 382 .db #0x0F + 0139 0F 383 .db #0x0F + 013A FF 384 .db #0xFF + 013B FF 385 .db #0xFF + 013C FF 386 .db #0xFF + 013D FF 387 .db #0xFF + 013E FF 388 .db #0xFF + 013F FF 389 .db #0xFF + 0140 FF 390 .db #0xFF + 0141 FF 391 .db #0xFF + 0142 FF 392 .db #0xFF + 0143 FF 393 .db #0xFF + 0144 FF 394 .db #0xFF + 0145 FF 395 .db #0xFF + 0146 FF 396 .db #0xFF + 0147 FF 397 .db #0xFF + 0148 F8 398 .db #0xF8 + 0149 F8 399 .db #0xF8 + 014A FF 400 .db #0xFF + 014B FF 401 .db #0xFF + 014C FF 402 .db #0xFF + 014D FF 403 .db #0xFF + 014E FF 404 .db #0xFF + 014F FF 405 .db #0xFF + 0150 FF 406 .db #0xFF + 0151 FF 407 .db #0xFF + 0152 FF 408 .db #0xFF + 0153 FF 409 .db #0xFF + 0154 FF 410 .db #0xFF + 0155 FF 411 .db #0xFF + 0156 E0 412 .db #0xE0 + 0157 E0 413 .db #0xE0 + 0158 00 414 .db #0x00 + 0159 00 415 .db #0x00 + 015A FF 416 .db #0xFF + 015B FF 417 .db #0xFF + 015C FF 418 .db #0xFF + 015D FF 419 .db #0xFF + 015E FF 420 .db #0xFF + 015F FF 421 .db #0xFF + 0160 FC 422 .db #0xFC + 0161 FC 423 .db #0xFC + 0162 F0 424 .db #0xF0 + 0163 F0 425 .db #0xF0 + 0164 00 426 .db #0x00 + 0165 00 427 .db #0x00 + 0166 00 428 .db #0x00 + 0167 00 429 .db #0x00 + 0168 00 430 .db #0x00 + 0169 00 431 .db #0x00 + 016A E0 432 .db #0xE0 + 016B E0 433 .db #0xE0 + 016C C0 434 .db #0xC0 + 016D C0 435 .db #0xC0 + 016E 00 436 .db #0x00 + 016F 00 437 .db #0x00 + 0170 00 438 .db #0x00 + 0171 00 439 .db #0x00 + 0172 00 440 .db #0x00 + 0173 00 441 .db #0x00 + 0174 00 442 .db #0x00 + 0175 00 443 .db #0x00 + 0176 00 444 .db #0x00 + 0177 00 445 .db #0x00 + 0178 00 446 .db #0x00 + 0179 00 447 .db #0x00 + 017A 00 448 .db #0x00 + 017B 00 449 .db #0x00 + 017C 00 450 .db #0x00 + 017D 00 451 .db #0x00 + 017E 00 452 .db #0x00 + 017F 00 453 .db #0x00 + 0180 00 454 .db #0x00 + 0181 00 455 .db #0x00 + 0182 00 456 .db #0x00 + 0183 00 457 .db #0x00 + 0184 00 458 .db #0x00 + 0185 00 459 .db #0x00 + 0186 00 460 .db #0x00 + 0187 00 461 .db #0x00 + 0188 01 462 .db #0x01 + 0189 01 463 .db #0x01 + 018A 0F 464 .db #0x0F + 018B 0F 465 .db #0x0F + 018C 1F 466 .db #0x1F + 018D 1F 467 .db #0x1F + 018E 3F 468 .db #0x3F + 018F 3F 469 .db #0x3F + 0190 3F 470 .db #0x3F + 0191 3F 471 .db #0x3F + 0192 7F 472 .db #0x7F + 0193 7F 473 .db #0x7F + 0194 FF 474 .db #0xFF + 0195 FF 475 .db #0xFF + 0196 FF 476 .db #0xFF + 0197 FF 477 .db #0xFF + 0198 FF 478 .db #0xFF + 0199 FF 479 .db #0xFF + 019A F8 480 .db #0xF8 + 019B F8 481 .db #0xF8 + 019C FC 482 .db #0xFC + 019D FC 483 .db #0xFC + 019E FC 484 .db #0xFC + 019F FC 485 .db #0xFC + 01A0 FC 486 .db #0xFC + 01A1 FC 487 .db #0xFC + 01A2 FC 488 .db #0xFC + 01A3 FC 489 .db #0xFC + 01A4 FC 490 .db #0xFC + 01A5 FC 491 .db #0xFC + 01A6 FC 492 .db #0xFC + 01A7 FC 493 .db #0xFC + 01A8 FE 494 .db #0xFE + 01A9 FE 495 .db #0xFE + 01AA 00 496 .db #0x00 + 01AB 00 497 .db #0x00 + 01AC 00 498 .db #0x00 + 01AD 00 499 .db #0x00 + 01AE 00 500 .db #0x00 + 01AF 00 501 .db #0x00 + 01B0 00 502 .db #0x00 + 01B1 00 503 .db #0x00 + 01B2 40 504 .db #0x40 + 01B3 40 505 .db #0x40 + 01B4 40 506 .db #0x40 + 01B5 40 507 .db #0x40 + 01B6 C0 508 .db #0xC0 + 01B7 C0 509 .db #0xC0 + 01B8 80 510 .db #0x80 + 01B9 80 511 .db #0x80 + 01BA FF 512 .db #0xFF + 01BB FF 513 .db #0xFF + 01BC 01 514 .db #0x01 + 01BD 01 515 .db #0x01 + 01BE 00 516 .db #0x00 + 01BF 00 517 .db #0x00 + 01C0 00 518 .db #0x00 + 01C1 00 519 .db #0x00 + 01C2 00 520 .db #0x00 + 01C3 00 521 .db #0x00 + 01C4 00 522 .db #0x00 + 01C5 00 523 .db #0x00 + 01C6 00 524 .db #0x00 + 01C7 00 525 .db #0x00 + 01C8 00 526 .db #0x00 + 01C9 00 527 .db #0x00 + 01CA FF 528 .db #0xFF + 01CB FF 529 .db #0xFF + 01CC FF 530 .db #0xFF + 01CD FF 531 .db #0xFF + 01CE 00 532 .db #0x00 + 01CF 00 533 .db #0x00 + 01D0 00 534 .db #0x00 + 01D1 00 535 .db #0x00 + 01D2 00 536 .db #0x00 + 01D3 00 537 .db #0x00 + 01D4 00 538 .db #0x00 + 01D5 00 539 .db #0x00 + 01D6 00 540 .db #0x00 + 01D7 00 541 .db #0x00 + 01D8 00 542 .db #0x00 + 01D9 00 543 .db #0x00 + 01DA FF 544 .db #0xFF + 01DB FF 545 .db #0xFF + 01DC F0 546 .db #0xF0 + 01DD F0 547 .db #0xF0 + 01DE 00 548 .db #0x00 + 01DF 00 549 .db #0x00 + 01E0 00 550 .db #0x00 + 01E1 00 551 .db #0x00 + 01E2 00 552 .db #0x00 + 01E3 00 553 .db #0x00 + 01E4 00 554 .db #0x00 + 01E5 00 555 .db #0x00 + 01E6 00 556 .db #0x00 + 01E7 00 557 .db #0x00 + 01E8 00 558 .db #0x00 + 01E9 00 559 .db #0x00 + 01EA C0 560 .db #0xC0 + 01EB C0 561 .db #0xC0 + 01EC 00 562 .db #0x00 + 01ED 00 563 .db #0x00 + 01EE 00 564 .db #0x00 + 01EF 00 565 .db #0x00 + 01F0 00 566 .db #0x00 + 01F1 00 567 .db #0x00 + 01F2 00 568 .db #0x00 + 01F3 00 569 .db #0x00 + 01F4 04 570 .db #0x04 + 01F5 04 571 .db #0x04 + 01F6 0C 572 .db #0x0C + 01F7 0C 573 .db #0x0C + 01F8 18 574 .db #0x18 + 01F9 18 575 .db #0x18 + 01FA 01 576 .db #0x01 + 01FB 01 577 .db #0x01 + 01FC 03 578 .db #0x03 + 01FD 03 579 .db #0x03 + 01FE 07 580 .db #0x07 + 01FF 07 581 .db #0x07 + 0200 07 582 .db #0x07 + 0201 07 583 .db #0x07 + 0202 0F 584 .db #0x0F + 0203 0F 585 .db #0x0F + 0204 0F 586 .db #0x0F + 0205 0F 587 .db #0x0F + 0206 1F 588 .db #0x1F + 0207 1F 589 .db #0x1F + 0208 1F 590 .db #0x1F + 0209 1F 591 .db #0x1F + 020A FE 592 .db #0xFE + 020B FE 593 .db #0xFE + 020C FE 594 .db #0xFE + 020D FE 595 .db #0xFE + 020E FE 596 .db #0xFE + 020F FE 597 .db #0xFE + 0210 FF 598 .db #0xFF + 0211 FF 599 .db #0xFF + 0212 FF 600 .db #0xFF + 0213 FF 601 .db #0xFF + 0214 FF 602 .db #0xFF + 0215 FF 603 .db #0xFF + 0216 FF 604 .db #0xFF + 0217 FF 605 .db #0xFF + 0218 FF 606 .db #0xFF + 0219 FF 607 .db #0xFF + 021A 02 608 .db #0x02 + 021B 02 609 .db #0x02 + 021C 06 610 .db #0x06 + 021D 06 611 .db #0x06 + 021E 0C 612 .db #0x0C + 021F 0C 613 .db #0x0C + 0220 08 614 .db #0x08 + 0221 08 615 .db #0x08 + 0222 18 616 .db #0x18 + 0223 18 617 .db #0x18 + 0224 30 618 .db #0x30 + 0225 30 619 .db #0x30 + 0226 20 620 .db #0x20 + 0227 20 621 .db #0x20 + 0228 20 622 .db #0x20 + 0229 20 623 .db #0x20 + 022A 0C 624 .db #0x0C + 022B 0C 625 .db #0x0C + 022C 18 626 .db #0x18 + 022D 18 627 .db #0x18 + 022E 10 628 .db #0x10 + 022F 10 629 .db #0x10 + 0230 20 630 .db #0x20 + 0231 20 631 .db #0x20 + 0232 60 632 .db #0x60 + 0233 60 633 .db #0x60 + 0234 40 634 .db #0x40 + 0235 40 635 .db #0x40 + 0236 C0 636 .db #0xC0 + 0237 C0 637 .db #0xC0 + 0238 80 638 .db #0x80 + 0239 80 639 .db #0x80 + 023A 00 640 .db #0x00 + 023B 00 641 .db #0x00 + 023C 00 642 .db #0x00 + 023D 00 643 .db #0x00 + 023E 00 644 .db #0x00 + 023F 00 645 .db #0x00 + 0240 00 646 .db #0x00 + 0241 00 647 .db #0x00 + 0242 01 648 .db #0x01 + 0243 01 649 .db #0x01 + 0244 03 650 .db #0x03 + 0245 03 651 .db #0x03 + 0246 02 652 .db #0x02 + 0247 02 653 .db #0x02 + 0248 04 654 .db #0x04 + 0249 04 655 .db #0x04 + 024A 30 656 .db #0x30 + 024B 30 657 .db #0x30 + 024C 20 658 .db #0x20 + 024D 20 659 .db #0x20 + 024E 60 660 .db #0x60 + 024F 60 661 .db #0x60 + 0250 C0 662 .db #0xC0 + 0251 C0 663 .db #0xC0 + 0252 80 664 .db #0x80 + 0253 80 665 .db #0x80 + 0254 00 666 .db #0x00 + 0255 00 667 .db #0x00 + 0256 00 668 .db #0x00 + 0257 00 669 .db #0x00 + 0258 00 670 .db #0x00 + 0259 00 671 .db #0x00 + 025A 3F 672 .db #0x3F + 025B 3F 673 .db #0x3F + 025C 3F 674 .db #0x3F + 025D 3F 675 .db #0x3F + 025E 3F 676 .db #0x3F + 025F 3F 677 .db #0x3F + 0260 7F 678 .db #0x7F + 0261 7F 679 .db #0x7F + 0262 7F 680 .db #0x7F + 0263 7F 681 .db #0x7F + 0264 FF 682 .db #0xFF + 0265 FF 683 .db #0xFF + 0266 FF 684 .db #0xFF + 0267 FF 685 .db #0xFF + 0268 FF 686 .db #0xFF + 0269 FF 687 .db #0xFF + 026A 00 688 .db #0x00 + 026B 00 689 .db #0x00 + 026C 00 690 .db #0x00 + 026D 00 691 .db #0x00 + 026E 80 692 .db #0x80 + 026F 80 693 .db #0x80 + 0270 80 694 .db #0x80 + 0271 80 695 .db #0x80 + 0272 80 696 .db #0x80 + 0273 80 697 .db #0x80 + 0274 80 698 .db #0x80 + 0275 80 699 .db #0x80 + 0276 80 700 .db #0x80 + 0277 80 701 .db #0x80 + 0278 80 702 .db #0x80 + 0279 80 703 .db #0x80 + 027A 00 704 .db #0x00 + 027B 00 705 .db #0x00 + 027C 00 706 .db #0x00 + 027D 00 707 .db #0x00 + 027E 00 708 .db #0x00 + 027F 00 709 .db #0x00 + 0280 00 710 .db #0x00 + 0281 00 711 .db #0x00 + 0282 01 712 .db #0x01 + 0283 01 713 .db #0x01 + 0284 02 714 .db #0x02 + 0285 02 715 .db #0x02 + 0286 02 716 .db #0x02 + 0287 02 717 .db #0x02 + 0288 06 718 .db #0x06 + 0289 06 719 .db #0x06 + 028A 40 720 .db #0x40 + 028B 40 721 .db #0x40 + 028C C0 722 .db #0xC0 + 028D C0 723 .db #0xC0 + 028E 80 724 .db #0x80 + 028F 80 725 .db #0x80 + 0290 80 726 .db #0x80 + 0291 80 727 .db #0x80 + 0292 80 728 .db #0x80 + 0293 80 729 .db #0x80 + 0294 00 730 .db #0x00 + 0295 00 731 .db #0x00 + 0296 00 732 .db #0x00 + 0297 00 733 .db #0x00 + 0298 00 734 .db #0x00 + 0299 00 735 .db #0x00 + 029A 01 736 .db #0x01 + 029B 01 737 .db #0x01 + 029C 02 738 .db #0x02 + 029D 02 739 .db #0x02 + 029E 06 740 .db #0x06 + 029F 06 741 .db #0x06 + 02A0 08 742 .db #0x08 + 02A1 08 743 .db #0x08 + 02A2 18 744 .db #0x18 + 02A3 18 745 .db #0x18 + 02A4 30 746 .db #0x30 + 02A5 30 747 .db #0x30 + 02A6 60 748 .db #0x60 + 02A7 60 749 .db #0x60 + 02A8 40 750 .db #0x40 + 02A9 40 751 .db #0x40 + 02AA 08 752 .db #0x08 + 02AB 08 753 .db #0x08 + 02AC 18 754 .db #0x18 + 02AD 18 755 .db #0x18 + 02AE 30 756 .db #0x30 + 02AF 30 757 .db #0x30 + 02B0 60 758 .db #0x60 + 02B1 60 759 .db #0x60 + 02B2 40 760 .db #0x40 + 02B3 40 761 .db #0x40 + 02B4 C0 762 .db #0xC0 + 02B5 C0 763 .db #0xC0 + 02B6 80 764 .db #0x80 + 02B7 80 765 .db #0x80 + 02B8 00 766 .db #0x00 + 02B9 00 767 .db #0x00 + 02BA 00 768 .db #0x00 + 02BB 00 769 .db #0x00 + 02BC 01 770 .db #0x01 + 02BD 01 771 .db #0x01 + 02BE 01 772 .db #0x01 + 02BF 01 773 .db #0x01 + 02C0 03 774 .db #0x03 + 02C1 03 775 .db #0x03 + 02C2 03 776 .db #0x03 + 02C3 03 777 .db #0x03 + 02C4 03 778 .db #0x03 + 02C5 03 779 .db #0x03 + 02C6 07 780 .db #0x07 + 02C7 07 781 .db #0x07 + 02C8 07 782 .db #0x07 + 02C9 07 783 .db #0x07 + 02CA C0 784 .db #0xC0 + 02CB C0 785 .db #0xC0 + 02CC C0 786 .db #0xC0 + 02CD C0 787 .db #0xC0 + 02CE C0 788 .db #0xC0 + 02CF C0 789 .db #0xC0 + 02D0 C0 790 .db #0xC0 + 02D1 C0 791 .db #0xC0 + 02D2 C0 792 .db #0xC0 + 02D3 C0 793 .db #0xC0 + 02D4 C0 794 .db #0xC0 + 02D5 C0 795 .db #0xC0 + 02D6 C0 796 .db #0xC0 + 02D7 C0 797 .db #0xC0 + 02D8 C0 798 .db #0xC0 + 02D9 C0 799 .db #0xC0 + 02DA 04 800 .db #0x04 + 02DB 04 801 .db #0x04 + 02DC 08 802 .db #0x08 + 02DD 08 803 .db #0x08 + 02DE 08 804 .db #0x08 + 02DF 08 805 .db #0x08 + 02E0 10 806 .db #0x10 + 02E1 10 807 .db #0x10 + 02E2 30 808 .db #0x30 + 02E3 30 809 .db #0x30 + 02E4 20 810 .db #0x20 + 02E5 20 811 .db #0x20 + 02E6 00 812 .db #0x00 + 02E7 00 813 .db #0x00 + 02E8 00 814 .db #0x00 + 02E9 00 815 .db #0x00 + 02EA 00 816 .db #0x00 + 02EB 00 817 .db #0x00 + 02EC 01 818 .db #0x01 + 02ED 01 819 .db #0x01 + 02EE 03 820 .db #0x03 + 02EF 03 821 .db #0x03 + 02F0 02 822 .db #0x02 + 02F1 02 823 .db #0x02 + 02F2 06 824 .db #0x06 + 02F3 06 825 .db #0x06 + 02F4 04 826 .db #0x04 + 02F5 04 827 .db #0x04 + 02F6 08 828 .db #0x08 + 02F7 08 829 .db #0x08 + 02F8 18 830 .db #0x18 + 02F9 18 831 .db #0x18 + 02FA 80 832 .db #0x80 + 02FB 80 833 .db #0x80 + 02FC 80 834 .db #0x80 + 02FD 80 835 .db #0x80 + 02FE 00 836 .db #0x00 + 02FF 00 837 .db #0x00 + 0300 00 838 .db #0x00 + 0301 00 839 .db #0x00 + 0302 00 840 .db #0x00 + 0303 00 841 .db #0x00 + 0304 00 842 .db #0x00 + 0305 00 843 .db #0x00 + 0306 00 844 .db #0x00 + 0307 00 845 .db #0x00 + 0308 00 846 .db #0x00 + 0309 00 847 .db #0x00 + 030A 02 848 .db #0x02 + 030B 02 849 .db #0x02 + 030C 02 850 .db #0x02 + 030D 02 851 .db #0x02 + 030E 06 852 .db #0x06 + 030F 06 853 .db #0x06 + 0310 04 854 .db #0x04 + 0311 04 855 .db #0x04 + 0312 0C 856 .db #0x0C + 0313 0C 857 .db #0x0C + 0314 18 858 .db #0x18 + 0315 18 859 .db #0x18 + 0316 10 860 .db #0x10 + 0317 10 861 .db #0x10 + 0318 20 862 .db #0x20 + 0319 20 863 .db #0x20 + 031A 00 864 .db #0x00 + 031B 00 865 .db #0x00 + 031C 00 866 .db #0x00 + 031D 00 867 .db #0x00 + 031E 00 868 .db #0x00 + 031F 00 869 .db #0x00 + 0320 00 870 .db #0x00 + 0321 00 871 .db #0x00 + 0322 01 872 .db #0x01 + 0323 01 873 .db #0x01 + 0324 00 874 .db #0x00 + 0325 00 875 .db #0x00 + 0326 00 876 .db #0x00 + 0327 00 877 .db #0x00 + 0328 00 878 .db #0x00 + 0329 00 879 .db #0x00 + 032A 00 880 .db #0x00 + 032B 00 881 .db #0x00 + 032C 00 882 .db #0x00 + 032D 00 883 .db #0x00 + 032E 00 884 .db #0x00 + 032F 00 885 .db #0x00 + 0330 00 886 .db #0x00 + 0331 00 887 .db #0x00 + 0332 80 888 .db #0x80 + 0333 80 889 .db #0x80 + 0334 C0 890 .db #0xC0 + 0335 C0 891 .db #0xC0 + 0336 20 892 .db #0x20 + 0337 20 893 .db #0x20 + 0338 18 894 .db #0x18 + 0339 18 895 .db #0x18 + 033A 07 896 .db #0x07 + 033B 07 897 .db #0x07 + 033C 07 898 .db #0x07 + 033D 07 899 .db #0x07 + 033E 0F 900 .db #0x0F + 033F 0F 901 .db #0x0F + 0340 0F 902 .db #0x0F + 0341 0F 903 .db #0x0F + 0342 0F 904 .db #0x0F + 0343 0F 905 .db #0x0F + 0344 0F 906 .db #0x0F + 0345 0F 907 .db #0x0F + 0346 0F 908 .db #0x0F + 0347 0F 909 .db #0x0F + 0348 0F 910 .db #0x0F + 0349 0F 911 .db #0x0F + 034A E0 912 .db #0xE0 + 034B E0 913 .db #0xE0 + 034C E0 914 .db #0xE0 + 034D E0 915 .db #0xE0 + 034E E0 916 .db #0xE0 + 034F E0 917 .db #0xE0 + 0350 E0 918 .db #0xE0 + 0351 E0 919 .db #0xE0 + 0352 E0 920 .db #0xE0 + 0353 E0 921 .db #0xE0 + 0354 E0 922 .db #0xE0 + 0355 E0 923 .db #0xE0 + 0356 E0 924 .db #0xE0 + 0357 E0 925 .db #0xE0 + 0358 E0 926 .db #0xE0 + 0359 E0 927 .db #0xE0 + 035A 00 928 .db #0x00 + 035B 00 929 .db #0x00 + 035C 00 930 .db #0x00 + 035D 00 931 .db #0x00 + 035E 00 932 .db #0x00 + 035F 00 933 .db #0x00 + 0360 00 934 .db #0x00 + 0361 00 935 .db #0x00 + 0362 00 936 .db #0x00 + 0363 00 937 .db #0x00 + 0364 00 938 .db #0x00 + 0365 00 939 .db #0x00 + 0366 01 940 .db #0x01 + 0367 01 941 .db #0x01 + 0368 01 942 .db #0x01 + 0369 01 943 .db #0x01 + 036A 10 944 .db #0x10 + 036B 10 945 .db #0x10 + 036C 20 946 .db #0x20 + 036D 20 947 .db #0x20 + 036E 20 948 .db #0x20 + 036F 20 949 .db #0x20 + 0370 40 950 .db #0x40 + 0371 40 951 .db #0x40 + 0372 C0 952 .db #0xC0 + 0373 C0 953 .db #0xC0 + 0374 80 954 .db #0x80 + 0375 80 955 .db #0x80 + 0376 80 956 .db #0x80 + 0377 80 957 .db #0x80 + 0378 00 958 .db #0x00 + 0379 00 959 .db #0x00 + 037A 00 960 .db #0x00 + 037B 00 961 .db #0x00 + 037C 00 962 .db #0x00 + 037D 00 963 .db #0x00 + 037E 00 964 .db #0x00 + 037F 00 965 .db #0x00 + 0380 00 966 .db #0x00 + 0381 00 967 .db #0x00 + 0382 00 968 .db #0x00 + 0383 00 969 .db #0x00 + 0384 01 970 .db #0x01 + 0385 01 971 .db #0x01 + 0386 01 972 .db #0x01 + 0387 01 973 .db #0x01 + 0388 02 974 .db #0x02 + 0389 02 975 .db #0x02 + 038A 60 976 .db #0x60 + 038B 60 977 .db #0x60 + 038C 40 978 .db #0x40 + 038D 40 979 .db #0x40 + 038E 40 980 .db #0x40 + 038F 40 981 .db #0x40 + 0390 C0 982 .db #0xC0 + 0391 C0 983 .db #0xC0 + 0392 80 984 .db #0x80 + 0393 80 985 .db #0x80 + 0394 00 986 .db #0x00 + 0395 00 987 .db #0x00 + 0396 00 988 .db #0x00 + 0397 00 989 .db #0x00 + 0398 00 990 .db #0x00 + 0399 00 991 .db #0x00 + 039A 0C 992 .db #0x0C + 039B 0C 993 .db #0x0C + 039C 02 994 .db #0x02 + 039D 02 995 .db #0x02 + 039E 01 996 .db #0x01 + 039F 01 997 .db #0x01 + 03A0 00 998 .db #0x00 + 03A1 00 999 .db #0x00 + 03A2 00 1000 .db #0x00 + 03A3 00 1001 .db #0x00 + 03A4 00 1002 .db #0x00 + 03A5 00 1003 .db #0x00 + 03A6 00 1004 .db #0x00 + 03A7 00 1005 .db #0x00 + 03A8 00 1006 .db #0x00 + 03A9 00 1007 .db #0x00 + 03AA 00 1008 .db #0x00 + 03AB 00 1009 .db #0x00 + 03AC 00 1010 .db #0x00 + 03AD 00 1011 .db #0x00 + 03AE 80 1012 .db #0x80 + 03AF 80 1013 .db #0x80 + 03B0 80 1014 .db #0x80 + 03B1 80 1015 .db #0x80 + 03B2 60 1016 .db #0x60 + 03B3 60 1017 .db #0x60 + 03B4 18 1018 .db #0x18 + 03B5 18 1019 .db #0x18 + 03B6 04 1020 .db #0x04 + 03B7 04 1021 .db #0x04 + 03B8 03 1022 .db #0x03 + 03B9 03 1023 .db #0x03 + 03BA 1F 1024 .db #0x1F + 03BB 1F 1025 .db #0x1F + 03BC 1F 1026 .db #0x1F + 03BD 1F 1027 .db #0x1F + 03BE 1F 1028 .db #0x1F + 03BF 1F 1029 .db #0x1F + 03C0 1F 1030 .db #0x1F + 03C1 1F 1031 .db #0x1F + 03C2 1F 1032 .db #0x1F + 03C3 1F 1033 .db #0x1F + 03C4 1F 1034 .db #0x1F + 03C5 1F 1035 .db #0x1F + 03C6 1F 1036 .db #0x1F + 03C7 1F 1037 .db #0x1F + 03C8 1F 1038 .db #0x1F + 03C9 1F 1039 .db #0x1F + 03CA E0 1040 .db #0xE0 + 03CB E0 1041 .db #0xE0 + 03CC E0 1042 .db #0xE0 + 03CD E0 1043 .db #0xE0 + 03CE E0 1044 .db #0xE0 + 03CF E0 1045 .db #0xE0 + 03D0 E0 1046 .db #0xE0 + 03D1 E0 1047 .db #0xE0 + 03D2 E0 1048 .db #0xE0 + 03D3 E0 1049 .db #0xE0 + 03D4 F0 1050 .db #0xF0 + 03D5 F0 1051 .db #0xF0 + 03D6 F0 1052 .db #0xF0 + 03D7 F0 1053 .db #0xF0 + 03D8 F0 1054 .db #0xF0 + 03D9 F0 1055 .db #0xF0 + 03DA 02 1056 .db #0x02 + 03DB 02 1057 .db #0x02 + 03DC 06 1058 .db #0x06 + 03DD 06 1059 .db #0x06 + 03DE 0C 1060 .db #0x0C + 03DF 0C 1061 .db #0x0C + 03E0 08 1062 .db #0x08 + 03E1 08 1063 .db #0x08 + 03E2 18 1064 .db #0x18 + 03E3 18 1065 .db #0x18 + 03E4 30 1066 .db #0x30 + 03E5 30 1067 .db #0x30 + 03E6 20 1068 .db #0x20 + 03E7 20 1069 .db #0x20 + 03E8 40 1070 .db #0x40 + 03E9 40 1071 .db #0x40 + 03EA 02 1072 .db #0x02 + 03EB 02 1073 .db #0x02 + 03EC 06 1074 .db #0x06 + 03ED 06 1075 .db #0x06 + 03EE 0C 1076 .db #0x0C + 03EF 0C 1077 .db #0x0C + 03F0 08 1078 .db #0x08 + 03F1 08 1079 .db #0x08 + 03F2 18 1080 .db #0x18 + 03F3 18 1081 .db #0x18 + 03F4 10 1082 .db #0x10 + 03F5 10 1083 .db #0x10 + 03F6 10 1084 .db #0x10 + 03F7 10 1085 .db #0x10 + 03F8 20 1086 .db #0x20 + 03F9 20 1087 .db #0x20 + 03FA 01 1088 .db #0x01 + 03FB 01 1089 .db #0x01 + 03FC 00 1090 .db #0x00 + 03FD 00 1091 .db #0x00 + 03FE 00 1092 .db #0x00 + 03FF 00 1093 .db #0x00 + 0400 00 1094 .db #0x00 + 0401 00 1095 .db #0x00 + 0402 00 1096 .db #0x00 + 0403 00 1097 .db #0x00 + 0404 00 1098 .db #0x00 + 0405 00 1099 .db #0x00 + 0406 00 1100 .db #0x00 + 0407 00 1101 .db #0x00 + 0408 00 1102 .db #0x00 + 0409 00 1103 .db #0x00 + 040A 80 1104 .db #0x80 + 040B 80 1105 .db #0x80 + 040C 60 1106 .db #0x60 + 040D 60 1107 .db #0x60 + 040E 30 1108 .db #0x30 + 040F 30 1109 .db #0x30 + 0410 18 1110 .db #0x18 + 0411 18 1111 .db #0x18 + 0412 0E 1112 .db #0x0E + 0413 0E 1113 .db #0x0E + 0414 01 1114 .db #0x01 + 0415 01 1115 .db #0x01 + 0416 00 1116 .db #0x00 + 0417 00 1117 .db #0x00 + 0418 00 1118 .db #0x00 + 0419 00 1119 .db #0x00 + 041A 00 1120 .db #0x00 + 041B 00 1121 .db #0x00 + 041C 00 1122 .db #0x00 + 041D 00 1123 .db #0x00 + 041E 00 1124 .db #0x00 + 041F 00 1125 .db #0x00 + 0420 00 1126 .db #0x00 + 0421 00 1127 .db #0x00 + 0422 00 1128 .db #0x00 + 0423 00 1129 .db #0x00 + 0424 80 1130 .db #0x80 + 0425 80 1131 .db #0x80 + 0426 C0 1132 .db #0xC0 + 0427 C0 1133 .db #0xC0 + 0428 60 1134 .db #0x60 + 0429 60 1135 .db #0x60 + 042A 1F 1136 .db #0x1F + 042B 1F 1137 .db #0x1F + 042C 1F 1138 .db #0x1F + 042D 1F 1139 .db #0x1F + 042E 3F 1140 .db #0x3F + 042F 3F 1141 .db #0x3F + 0430 3F 1142 .db #0x3F + 0431 3F 1143 .db #0x3F + 0432 3F 1144 .db #0x3F + 0433 3F 1145 .db #0x3F + 0434 3F 1146 .db #0x3F + 0435 3F 1147 .db #0x3F + 0436 3F 1148 .db #0x3F + 0437 3F 1149 .db #0x3F + 0438 3F 1150 .db #0x3F + 0439 3F 1151 .db #0x3F + 043A F0 1152 .db #0xF0 + 043B F0 1153 .db #0xF0 + 043C F0 1154 .db #0xF0 + 043D F0 1155 .db #0xF0 + 043E F0 1156 .db #0xF0 + 043F F0 1157 .db #0xF0 + 0440 F0 1158 .db #0xF0 + 0441 F0 1159 .db #0xF0 + 0442 F0 1160 .db #0xF0 + 0443 F0 1161 .db #0xF0 + 0444 F0 1162 .db #0xF0 + 0445 F0 1163 .db #0xF0 + 0446 F0 1164 .db #0xF0 + 0447 F0 1165 .db #0xF0 + 0448 F0 1166 .db #0xF0 + 0449 F0 1167 .db #0xF0 + 044A 00 1168 .db #0x00 + 044B 00 1169 .db #0x00 + 044C 00 1170 .db #0x00 + 044D 00 1171 .db #0x00 + 044E 00 1172 .db #0x00 + 044F 00 1173 .db #0x00 + 0450 01 1174 .db #0x01 + 0451 01 1175 .db #0x01 + 0452 01 1176 .db #0x01 + 0453 01 1177 .db #0x01 + 0454 02 1178 .db #0x02 + 0455 02 1179 .db #0x02 + 0456 02 1180 .db #0x02 + 0457 02 1181 .db #0x02 + 0458 04 1182 .db #0x04 + 0459 04 1183 .db #0x04 + 045A 40 1184 .db #0x40 + 045B 40 1185 .db #0x40 + 045C 80 1186 .db #0x80 + 045D 80 1187 .db #0x80 + 045E 80 1188 .db #0x80 + 045F 80 1189 .db #0x80 + 0460 00 1190 .db #0x00 + 0461 00 1191 .db #0x00 + 0462 00 1192 .db #0x00 + 0463 00 1193 .db #0x00 + 0464 00 1194 .db #0x00 + 0465 00 1195 .db #0x00 + 0466 00 1196 .db #0x00 + 0467 00 1197 .db #0x00 + 0468 00 1198 .db #0x00 + 0469 00 1199 .db #0x00 + 046A 40 1200 .db #0x40 + 046B 40 1201 .db #0x40 + 046C 40 1202 .db #0x40 + 046D 40 1203 .db #0x40 + 046E 80 1204 .db #0x80 + 046F 80 1205 .db #0x80 + 0470 00 1206 .db #0x00 + 0471 00 1207 .db #0x00 + 0472 00 1208 .db #0x00 + 0473 00 1209 .db #0x00 + 0474 00 1210 .db #0x00 + 0475 00 1211 .db #0x00 + 0476 00 1212 .db #0x00 + 0477 00 1213 .db #0x00 + 0478 00 1214 .db #0x00 + 0479 00 1215 .db #0x00 + 047A 1C 1216 .db #0x1C + 047B 1C 1217 .db #0x1C + 047C 06 1218 .db #0x06 + 047D 06 1219 .db #0x06 + 047E 01 1220 .db #0x01 + 047F 01 1221 .db #0x01 + 0480 00 1222 .db #0x00 + 0481 00 1223 .db #0x00 + 0482 00 1224 .db #0x00 + 0483 00 1225 .db #0x00 + 0484 00 1226 .db #0x00 + 0485 00 1227 .db #0x00 + 0486 00 1228 .db #0x00 + 0487 00 1229 .db #0x00 + 0488 00 1230 .db #0x00 + 0489 00 1231 .db #0x00 + 048A 00 1232 .db #0x00 + 048B 00 1233 .db #0x00 + 048C 00 1234 .db #0x00 + 048D 00 1235 .db #0x00 + 048E C0 1236 .db #0xC0 + 048F C0 1237 .db #0xC0 + 0490 70 1238 .db #0x70 + 0491 70 1239 .db #0x70 + 0492 1C 1240 .db #0x1C + 0493 1C 1241 .db #0x1C + 0494 07 1242 .db #0x07 + 0495 07 1243 .db #0x07 + 0496 01 1244 .db #0x01 + 0497 01 1245 .db #0x01 + 0498 00 1246 .db #0x00 + 0499 00 1247 .db #0x00 + 049A 00 1248 .db #0x00 + 049B 00 1249 .db #0x00 + 049C 00 1250 .db #0x00 + 049D 00 1251 .db #0x00 + 049E 00 1252 .db #0x00 + 049F 00 1253 .db #0x00 + 04A0 00 1254 .db #0x00 + 04A1 00 1255 .db #0x00 + 04A2 00 1256 .db #0x00 + 04A3 00 1257 .db #0x00 + 04A4 00 1258 .db #0x00 + 04A5 00 1259 .db #0x00 + 04A6 C0 1260 .db #0xC0 + 04A7 C0 1261 .db #0xC0 + 04A8 60 1262 .db #0x60 + 04A9 60 1263 .db #0x60 + 04AA 3F 1264 .db #0x3F + 04AB 3F 1265 .db #0x3F + 04AC 3F 1266 .db #0x3F + 04AD 3F 1267 .db #0x3F + 04AE 3F 1268 .db #0x3F + 04AF 3F 1269 .db #0x3F + 04B0 3F 1270 .db #0x3F + 04B1 3F 1271 .db #0x3F + 04B2 3F 1272 .db #0x3F + 04B3 3F 1273 .db #0x3F + 04B4 3F 1274 .db #0x3F + 04B5 3F 1275 .db #0x3F + 04B6 1F 1276 .db #0x1F + 04B7 1F 1277 .db #0x1F + 04B8 1F 1278 .db #0x1F + 04B9 1F 1279 .db #0x1F + 04BA 08 1280 .db #0x08 + 04BB 08 1281 .db #0x08 + 04BC 10 1282 .db #0x10 + 04BD 10 1283 .db #0x10 + 04BE 10 1284 .db #0x10 + 04BF 10 1285 .db #0x10 + 04C0 10 1286 .db #0x10 + 04C1 10 1287 .db #0x10 + 04C2 20 1288 .db #0x20 + 04C3 20 1289 .db #0x20 + 04C4 20 1290 .db #0x20 + 04C5 20 1291 .db #0x20 + 04C6 40 1292 .db #0x40 + 04C7 40 1293 .db #0x40 + 04C8 40 1294 .db #0x40 + 04C9 40 1295 .db #0x40 + 04CA 0C 1296 .db #0x0C + 04CB 0C 1297 .db #0x0C + 04CC 08 1298 .db #0x08 + 04CD 08 1299 .db #0x08 + 04CE 10 1300 .db #0x10 + 04CF 10 1301 .db #0x10 + 04D0 10 1302 .db #0x10 + 04D1 10 1303 .db #0x10 + 04D2 30 1304 .db #0x30 + 04D3 30 1305 .db #0x30 + 04D4 60 1306 .db #0x60 + 04D5 60 1307 .db #0x60 + 04D6 40 1308 .db #0x40 + 04D7 40 1309 .db #0x40 + 04D8 40 1310 .db #0x40 + 04D9 40 1311 .db #0x40 + 04DA 00 1312 .db #0x00 + 04DB 00 1313 .db #0x00 + 04DC 01 1314 .db #0x01 + 04DD 01 1315 .db #0x01 + 04DE 01 1316 .db #0x01 + 04DF 01 1317 .db #0x01 + 04E0 03 1318 .db #0x03 + 04E1 03 1319 .db #0x03 + 04E2 02 1320 .db #0x02 + 04E3 02 1321 .db #0x02 + 04E4 04 1322 .db #0x04 + 04E5 04 1323 .db #0x04 + 04E6 04 1324 .db #0x04 + 04E7 04 1325 .db #0x04 + 04E8 08 1326 .db #0x08 + 04E9 08 1327 .db #0x08 + 04EA 80 1328 .db #0x80 + 04EB 80 1329 .db #0x80 + 04EC 00 1330 .db #0x00 + 04ED 00 1331 .db #0x00 + 04EE 00 1332 .db #0x00 + 04EF 00 1333 .db #0x00 + 04F0 00 1334 .db #0x00 + 04F1 00 1335 .db #0x00 + 04F2 00 1336 .db #0x00 + 04F3 00 1337 .db #0x00 + 04F4 00 1338 .db #0x00 + 04F5 00 1339 .db #0x00 + 04F6 00 1340 .db #0x00 + 04F7 00 1341 .db #0x00 + 04F8 00 1342 .db #0x00 + 04F9 00 1343 .db #0x00 + 04FA 01 1344 .db #0x01 + 04FB 01 1345 .db #0x01 + 04FC 01 1346 .db #0x01 + 04FD 01 1347 .db #0x01 + 04FE 01 1348 .db #0x01 + 04FF 01 1349 .db #0x01 + 0500 02 1350 .db #0x02 + 0501 02 1351 .db #0x02 + 0502 04 1352 .db #0x04 + 0503 04 1353 .db #0x04 + 0504 04 1354 .db #0x04 + 0505 04 1355 .db #0x04 + 0506 08 1356 .db #0x08 + 0507 08 1357 .db #0x08 + 0508 10 1358 .db #0x10 + 0509 10 1359 .db #0x10 + 050A 00 1360 .db #0x00 + 050B 00 1361 .db #0x00 + 050C 00 1362 .db #0x00 + 050D 00 1363 .db #0x00 + 050E 0E 1364 .db #0x0E + 050F 0E 1365 .db #0x0E + 0510 01 1366 .db #0x01 + 0511 01 1367 .db #0x01 + 0512 00 1368 .db #0x00 + 0513 00 1369 .db #0x00 + 0514 00 1370 .db #0x00 + 0515 00 1371 .db #0x00 + 0516 00 1372 .db #0x00 + 0517 00 1373 .db #0x00 + 0518 00 1374 .db #0x00 + 0519 00 1375 .db #0x00 + 051A 00 1376 .db #0x00 + 051B 00 1377 .db #0x00 + 051C 00 1378 .db #0x00 + 051D 00 1379 .db #0x00 + 051E 00 1380 .db #0x00 + 051F 00 1381 .db #0x00 + 0520 00 1382 .db #0x00 + 0521 00 1383 .db #0x00 + 0522 80 1384 .db #0x80 + 0523 80 1385 .db #0x80 + 0524 40 1386 .db #0x40 + 0525 40 1387 .db #0x40 + 0526 30 1388 .db #0x30 + 0527 30 1389 .db #0x30 + 0528 08 1390 .db #0x08 + 0529 08 1391 .db #0x08 + 052A 1F 1392 .db #0x1F + 052B 1F 1393 .db #0x1F + 052C 1F 1394 .db #0x1F + 052D 1F 1395 .db #0x1F + 052E 0F 1396 .db #0x0F + 052F 0F 1397 .db #0x0F + 0530 0F 1398 .db #0x0F + 0531 0F 1399 .db #0x0F + 0532 0F 1400 .db #0x0F + 0533 0F 1401 .db #0x0F + 0534 0F 1402 .db #0x0F + 0535 0F 1403 .db #0x0F + 0536 0F 1404 .db #0x0F + 0537 0F 1405 .db #0x0F + 0538 0F 1406 .db #0x0F + 0539 0F 1407 .db #0x0F + 053A 08 1408 .db #0x08 + 053B 08 1409 .db #0x08 + 053C 10 1410 .db #0x10 + 053D 10 1411 .db #0x10 + 053E 20 1412 .db #0x20 + 053F 20 1413 .db #0x20 + 0540 00 1414 .db #0x00 + 0541 00 1415 .db #0x00 + 0542 00 1416 .db #0x00 + 0543 00 1417 .db #0x00 + 0544 00 1418 .db #0x00 + 0545 00 1419 .db #0x00 + 0546 00 1420 .db #0x00 + 0547 00 1421 .db #0x00 + 0548 00 1422 .db #0x00 + 0549 00 1423 .db #0x00 + 054A 00 1424 .db #0x00 + 054B 00 1425 .db #0x00 + 054C 00 1426 .db #0x00 + 054D 00 1427 .db #0x00 + 054E 00 1428 .db #0x00 + 054F 00 1429 .db #0x00 + 0550 00 1430 .db #0x00 + 0551 00 1431 .db #0x00 + 0552 00 1432 .db #0x00 + 0553 00 1433 .db #0x00 + 0554 00 1434 .db #0x00 + 0555 00 1435 .db #0x00 + 0556 03 1436 .db #0x03 + 0557 03 1437 .db #0x03 + 0558 02 1438 .db #0x02 + 0559 02 1439 .db #0x02 + 055A 10 1440 .db #0x10 + 055B 10 1441 .db #0x10 + 055C 20 1442 .db #0x20 + 055D 20 1443 .db #0x20 + 055E 60 1444 .db #0x60 + 055F 60 1445 .db #0x60 + 0560 40 1446 .db #0x40 + 0561 40 1447 .db #0x40 + 0562 80 1448 .db #0x80 + 0563 80 1449 .db #0x80 + 0564 80 1450 .db #0x80 + 0565 80 1451 .db #0x80 + 0566 00 1452 .db #0x00 + 0567 00 1453 .db #0x00 + 0568 00 1454 .db #0x00 + 0569 00 1455 .db #0x00 + 056A 0E 1456 .db #0x0E + 056B 0E 1457 .db #0x0E + 056C 01 1458 .db #0x01 + 056D 01 1459 .db #0x01 + 056E 00 1460 .db #0x00 + 056F 00 1461 .db #0x00 + 0570 00 1462 .db #0x00 + 0571 00 1463 .db #0x00 + 0572 00 1464 .db #0x00 + 0573 00 1465 .db #0x00 + 0574 00 1466 .db #0x00 + 0575 00 1467 .db #0x00 + 0576 00 1468 .db #0x00 + 0577 00 1469 .db #0x00 + 0578 00 1470 .db #0x00 + 0579 00 1471 .db #0x00 + 057A 00 1472 .db #0x00 + 057B 00 1473 .db #0x00 + 057C 80 1474 .db #0x80 + 057D 80 1475 .db #0x80 + 057E 60 1476 .db #0x60 + 057F 60 1477 .db #0x60 + 0580 38 1478 .db #0x38 + 0581 38 1479 .db #0x38 + 0582 0C 1480 .db #0x0C + 0583 0C 1481 .db #0x0C + 0584 07 1482 .db #0x07 + 0585 07 1483 .db #0x07 + 0586 00 1484 .db #0x00 + 0587 00 1485 .db #0x00 + 0588 00 1486 .db #0x00 + 0589 00 1487 .db #0x00 + 058A 00 1488 .db #0x00 + 058B 00 1489 .db #0x00 + 058C 00 1490 .db #0x00 + 058D 00 1491 .db #0x00 + 058E 00 1492 .db #0x00 + 058F 00 1493 .db #0x00 + 0590 00 1494 .db #0x00 + 0591 00 1495 .db #0x00 + 0592 00 1496 .db #0x00 + 0593 00 1497 .db #0x00 + 0594 80 1498 .db #0x80 + 0595 80 1499 .db #0x80 + 0596 E0 1500 .db #0xE0 + 0597 E0 1501 .db #0xE0 + 0598 30 1502 .db #0x30 + 0599 30 1503 .db #0x30 + 059A 07 1504 .db #0x07 + 059B 07 1505 .db #0x07 + 059C 07 1506 .db #0x07 + 059D 07 1507 .db #0x07 + 059E 07 1508 .db #0x07 + 059F 07 1509 .db #0x07 + 05A0 07 1510 .db #0x07 + 05A1 07 1511 .db #0x07 + 05A2 07 1512 .db #0x07 + 05A3 07 1513 .db #0x07 + 05A4 03 1514 .db #0x03 + 05A5 03 1515 .db #0x03 + 05A6 03 1516 .db #0x03 + 05A7 03 1517 .db #0x03 + 05A8 03 1518 .db #0x03 + 05A9 03 1519 .db #0x03 + 05AA F0 1520 .db #0xF0 + 05AB F0 1521 .db #0xF0 + 05AC F0 1522 .db #0xF0 + 05AD F0 1523 .db #0xF0 + 05AE F0 1524 .db #0xF0 + 05AF F0 1525 .db #0xF0 + 05B0 F0 1526 .db #0xF0 + 05B1 F0 1527 .db #0xF0 + 05B2 F0 1528 .db #0xF0 + 05B3 F0 1529 .db #0xF0 + 05B4 F0 1530 .db #0xF0 + 05B5 F0 1531 .db #0xF0 + 05B6 E0 1532 .db #0xE0 + 05B7 E0 1533 .db #0xE0 + 05B8 E0 1534 .db #0xE0 + 05B9 E0 1535 .db #0xE0 + 05BA 02 1536 .db #0x02 + 05BB 02 1537 .db #0x02 + 05BC 04 1538 .db #0x04 + 05BD 04 1539 .db #0x04 + 05BE 08 1540 .db #0x08 + 05BF 08 1541 .db #0x08 + 05C0 18 1542 .db #0x18 + 05C1 18 1543 .db #0x18 + 05C2 10 1544 .db #0x10 + 05C3 10 1545 .db #0x10 + 05C4 20 1546 .db #0x20 + 05C5 20 1547 .db #0x20 + 05C6 40 1548 .db #0x40 + 05C7 40 1549 .db #0x40 + 05C8 40 1550 .db #0x40 + 05C9 40 1551 .db #0x40 + 05CA 18 1552 .db #0x18 + 05CB 18 1553 .db #0x18 + 05CC 06 1554 .db #0x06 + 05CD 06 1555 .db #0x06 + 05CE 03 1556 .db #0x03 + 05CF 03 1557 .db #0x03 + 05D0 00 1558 .db #0x00 + 05D1 00 1559 .db #0x00 + 05D2 00 1560 .db #0x00 + 05D3 00 1561 .db #0x00 + 05D4 00 1562 .db #0x00 + 05D5 00 1563 .db #0x00 + 05D6 00 1564 .db #0x00 + 05D7 00 1565 .db #0x00 + 05D8 00 1566 .db #0x00 + 05D9 00 1567 .db #0x00 + 05DA 00 1568 .db #0x00 + 05DB 00 1569 .db #0x00 + 05DC 00 1570 .db #0x00 + 05DD 00 1571 .db #0x00 + 05DE 80 1572 .db #0x80 + 05DF 80 1573 .db #0x80 + 05E0 C0 1574 .db #0xC0 + 05E1 C0 1575 .db #0xC0 + 05E2 20 1576 .db #0x20 + 05E3 20 1577 .db #0x20 + 05E4 1C 1578 .db #0x1C + 05E5 1C 1579 .db #0x1C + 05E6 06 1580 .db #0x06 + 05E7 06 1581 .db #0x06 + 05E8 03 1582 .db #0x03 + 05E9 03 1583 .db #0x03 + 05EA 03 1584 .db #0x03 + 05EB 03 1585 .db #0x03 + 05EC 01 1586 .db #0x01 + 05ED 01 1587 .db #0x01 + 05EE 01 1588 .db #0x01 + 05EF 01 1589 .db #0x01 + 05F0 01 1590 .db #0x01 + 05F1 01 1591 .db #0x01 + 05F2 01 1592 .db #0x01 + 05F3 01 1593 .db #0x01 + 05F4 01 1594 .db #0x01 + 05F5 01 1595 .db #0x01 + 05F6 01 1596 .db #0x01 + 05F7 01 1597 .db #0x01 + 05F8 00 1598 .db #0x00 + 05F9 00 1599 .db #0x00 + 05FA 00 1600 .db #0x00 + 05FB 00 1601 .db #0x00 + 05FC 00 1602 .db #0x00 + 05FD 00 1603 .db #0x00 + 05FE 01 1604 .db #0x01 + 05FF 01 1605 .db #0x01 + 0600 02 1606 .db #0x02 + 0601 02 1607 .db #0x02 + 0602 02 1608 .db #0x02 + 0603 02 1609 .db #0x02 + 0604 04 1610 .db #0x04 + 0605 04 1611 .db #0x04 + 0606 08 1612 .db #0x08 + 0607 08 1613 .db #0x08 + 0608 08 1614 .db #0x08 + 0609 08 1615 .db #0x08 + 060A 00 1616 .db #0x00 + 060B 00 1617 .db #0x00 + 060C 00 1618 .db #0x00 + 060D 00 1619 .db #0x00 + 060E 00 1620 .db #0x00 + 060F 00 1621 .db #0x00 + 0610 00 1622 .db #0x00 + 0611 00 1623 .db #0x00 + 0612 00 1624 .db #0x00 + 0613 00 1625 .db #0x00 + 0614 01 1626 .db #0x01 + 0615 01 1627 .db #0x01 + 0616 00 1628 .db #0x00 + 0617 00 1629 .db #0x00 + 0618 00 1630 .db #0x00 + 0619 00 1631 .db #0x00 + 061A 00 1632 .db #0x00 + 061B 00 1633 .db #0x00 + 061C 00 1634 .db #0x00 + 061D 00 1635 .db #0x00 + 061E 00 1636 .db #0x00 + 061F 00 1637 .db #0x00 + 0620 00 1638 .db #0x00 + 0621 00 1639 .db #0x00 + 0622 00 1640 .db #0x00 + 0623 00 1641 .db #0x00 + 0624 C0 1642 .db #0xC0 + 0625 C0 1643 .db #0xC0 + 0626 78 1644 .db #0x78 + 0627 78 1645 .db #0x78 + 0628 07 1646 .db #0x07 + 0629 07 1647 .db #0x07 + 062A C0 1648 .db #0xC0 + 062B C0 1649 .db #0xC0 + 062C 60 1650 .db #0x60 + 062D 60 1651 .db #0x60 + 062E 30 1652 .db #0x30 + 062F 30 1653 .db #0x30 + 0630 08 1654 .db #0x08 + 0631 08 1655 .db #0x08 + 0632 0E 1656 .db #0x0E + 0633 0E 1657 .db #0x0E + 0634 03 1658 .db #0x03 + 0635 03 1659 .db #0x03 + 0636 01 1660 .db #0x01 + 0637 01 1661 .db #0x01 + 0638 00 1662 .db #0x00 + 0639 00 1663 .db #0x00 + 063A FF 1664 .db #0xFF + 063B FF 1665 .db #0xFF + 063C FF 1666 .db #0xFF + 063D FF 1667 .db #0xFF + 063E FF 1668 .db #0xFF + 063F FF 1669 .db #0xFF + 0640 FF 1670 .db #0xFF + 0641 FF 1671 .db #0xFF + 0642 FF 1672 .db #0xFF + 0643 FF 1673 .db #0xFF + 0644 7F 1674 .db #0x7F + 0645 7F 1675 .db #0x7F + 0646 7F 1676 .db #0x7F + 0647 7F 1677 .db #0x7F + 0648 7F 1678 .db #0x7F + 0649 7F 1679 .db #0x7F + 064A E0 1680 .db #0xE0 + 064B E0 1681 .db #0xE0 + 064C E0 1682 .db #0xE0 + 064D E0 1683 .db #0xE0 + 064E E0 1684 .db #0xE0 + 064F E0 1685 .db #0xE0 + 0650 C0 1686 .db #0xC0 + 0651 C0 1687 .db #0xC0 + 0652 C0 1688 .db #0xC0 + 0653 C0 1689 .db #0xC0 + 0654 C0 1690 .db #0xC0 + 0655 C0 1691 .db #0xC0 + 0656 C0 1692 .db #0xC0 + 0657 C0 1693 .db #0xC0 + 0658 C0 1694 .db #0xC0 + 0659 C0 1695 .db #0xC0 + 065A 10 1696 .db #0x10 + 065B 10 1697 .db #0x10 + 065C 20 1698 .db #0x20 + 065D 20 1699 .db #0x20 + 065E 20 1700 .db #0x20 + 065F 20 1701 .db #0x20 + 0660 40 1702 .db #0x40 + 0661 40 1703 .db #0x40 + 0662 80 1704 .db #0x80 + 0663 80 1705 .db #0x80 + 0664 00 1706 .db #0x00 + 0665 00 1707 .db #0x00 + 0666 00 1708 .db #0x00 + 0667 00 1709 .db #0x00 + 0668 00 1710 .db #0x00 + 0669 00 1711 .db #0x00 + 066A C0 1712 .db #0xC0 + 066B C0 1713 .db #0xC0 + 066C 40 1714 .db #0x40 + 066D 40 1715 .db #0x40 + 066E 60 1716 .db #0x60 + 066F 60 1717 .db #0x60 + 0670 30 1718 .db #0x30 + 0671 30 1719 .db #0x30 + 0672 0C 1720 .db #0x0C + 0673 0C 1721 .db #0x0C + 0674 02 1722 .db #0x02 + 0675 02 1723 .db #0x02 + 0676 03 1724 .db #0x03 + 0677 03 1725 .db #0x03 + 0678 00 1726 .db #0x00 + 0679 00 1727 .db #0x00 + 067A 00 1728 .db #0x00 + 067B 00 1729 .db #0x00 + 067C 00 1730 .db #0x00 + 067D 00 1731 .db #0x00 + 067E 00 1732 .db #0x00 + 067F 00 1733 .db #0x00 + 0680 00 1734 .db #0x00 + 0681 00 1735 .db #0x00 + 0682 00 1736 .db #0x00 + 0683 00 1737 .db #0x00 + 0684 00 1738 .db #0x00 + 0685 00 1739 .db #0x00 + 0686 80 1740 .db #0x80 + 0687 80 1741 .db #0x80 + 0688 E0 1742 .db #0xE0 + 0689 E0 1743 .db #0xE0 + 068A 18 1744 .db #0x18 + 068B 18 1745 .db #0x18 + 068C 0E 1746 .db #0x0E + 068D 0E 1747 .db #0x0E + 068E 03 1748 .db #0x03 + 068F 03 1749 .db #0x03 + 0690 00 1750 .db #0x00 + 0691 00 1751 .db #0x00 + 0692 00 1752 .db #0x00 + 0693 00 1753 .db #0x00 + 0694 00 1754 .db #0x00 + 0695 00 1755 .db #0x00 + 0696 00 1756 .db #0x00 + 0697 00 1757 .db #0x00 + 0698 00 1758 .db #0x00 + 0699 00 1759 .db #0x00 + 069A 00 1760 .db #0x00 + 069B 00 1761 .db #0x00 + 069C 00 1762 .db #0x00 + 069D 00 1763 .db #0x00 + 069E 80 1764 .db #0x80 + 069F 80 1765 .db #0x80 + 06A0 E0 1766 .db #0xE0 + 06A1 E0 1767 .db #0xE0 + 06A2 38 1768 .db #0x38 + 06A3 38 1769 .db #0x38 + 06A4 0E 1770 .db #0x0E + 06A5 0E 1771 .db #0x0E + 06A6 03 1772 .db #0x03 + 06A7 03 1773 .db #0x03 + 06A8 00 1774 .db #0x00 + 06A9 00 1775 .db #0x00 + 06AA 3F 1776 .db #0x3F + 06AB 3F 1777 .db #0x3F + 06AC 3F 1778 .db #0x3F + 06AD 3F 1779 .db #0x3F + 06AE 3F 1780 .db #0x3F + 06AF 3F 1781 .db #0x3F + 06B0 3F 1782 .db #0x3F + 06B1 3F 1783 .db #0x3F + 06B2 1F 1784 .db #0x1F + 06B3 1F 1785 .db #0x1F + 06B4 1F 1786 .db #0x1F + 06B5 1F 1787 .db #0x1F + 06B6 0F 1788 .db #0x0F + 06B7 0F 1789 .db #0x0F + 06B8 0F 1790 .db #0x0F + 06B9 0F 1791 .db #0x0F + 06BA C0 1792 .db #0xC0 + 06BB C0 1793 .db #0xC0 + 06BC C0 1794 .db #0xC0 + 06BD C0 1795 .db #0xC0 + 06BE C0 1796 .db #0xC0 + 06BF C0 1797 .db #0xC0 + 06C0 C0 1798 .db #0xC0 + 06C1 C0 1799 .db #0xC0 + 06C2 C0 1800 .db #0xC0 + 06C3 C0 1801 .db #0xC0 + 06C4 C0 1802 .db #0xC0 + 06C5 C0 1803 .db #0xC0 + 06C6 C0 1804 .db #0xC0 + 06C7 C0 1805 .db #0xC0 + 06C8 80 1806 .db #0x80 + 06C9 80 1807 .db #0x80 + 06CA 02 1808 .db #0x02 + 06CB 02 1809 .db #0x02 + 06CC 04 1810 .db #0x04 + 06CD 04 1811 .db #0x04 + 06CE 08 1812 .db #0x08 + 06CF 08 1813 .db #0x08 + 06D0 18 1814 .db #0x18 + 06D1 18 1815 .db #0x18 + 06D2 10 1816 .db #0x10 + 06D3 10 1817 .db #0x10 + 06D4 20 1818 .db #0x20 + 06D5 20 1819 .db #0x20 + 06D6 20 1820 .db #0x20 + 06D7 20 1821 .db #0x20 + 06D8 40 1822 .db #0x40 + 06D9 40 1823 .db #0x40 + 06DA 38 1824 .db #0x38 + 06DB 38 1825 .db #0x38 + 06DC 0C 1826 .db #0x0C + 06DD 0C 1827 .db #0x0C + 06DE 00 1828 .db #0x00 + 06DF 00 1829 .db #0x00 + 06E0 00 1830 .db #0x00 + 06E1 00 1831 .db #0x00 + 06E2 00 1832 .db #0x00 + 06E3 00 1833 .db #0x00 + 06E4 00 1834 .db #0x00 + 06E5 00 1835 .db #0x00 + 06E6 00 1836 .db #0x00 + 06E7 00 1837 .db #0x00 + 06E8 00 1838 .db #0x00 + 06E9 00 1839 .db #0x00 + 06EA 38 1840 .db #0x38 + 06EB 38 1841 .db #0x38 + 06EC 06 1842 .db #0x06 + 06ED 06 1843 .db #0x06 + 06EE 03 1844 .db #0x03 + 06EF 03 1845 .db #0x03 + 06F0 00 1846 .db #0x00 + 06F1 00 1847 .db #0x00 + 06F2 00 1848 .db #0x00 + 06F3 00 1849 .db #0x00 + 06F4 00 1850 .db #0x00 + 06F5 00 1851 .db #0x00 + 06F6 00 1852 .db #0x00 + 06F7 00 1853 .db #0x00 + 06F8 00 1854 .db #0x00 + 06F9 00 1855 .db #0x00 + 06FA 00 1856 .db #0x00 + 06FB 00 1857 .db #0x00 + 06FC 00 1858 .db #0x00 + 06FD 00 1859 .db #0x00 + 06FE 80 1860 .db #0x80 + 06FF 80 1861 .db #0x80 + 0700 C0 1862 .db #0xC0 + 0701 C0 1863 .db #0xC0 + 0702 40 1864 .db #0x40 + 0703 40 1865 .db #0x40 + 0704 00 1866 .db #0x00 + 0705 00 1867 .db #0x00 + 0706 00 1868 .db #0x00 + 0707 00 1869 .db #0x00 + 0708 00 1870 .db #0x00 + 0709 00 1871 .db #0x00 + 070A 07 1872 .db #0x07 + 070B 07 1873 .db #0x07 + 070C 07 1874 .db #0x07 + 070D 07 1875 .db #0x07 + 070E 03 1876 .db #0x03 + 070F 03 1877 .db #0x03 + 0710 03 1878 .db #0x03 + 0711 03 1879 .db #0x03 + 0712 03 1880 .db #0x03 + 0713 03 1881 .db #0x03 + 0714 01 1882 .db #0x01 + 0715 01 1883 .db #0x01 + 0716 01 1884 .db #0x01 + 0717 01 1885 .db #0x01 + 0718 00 1886 .db #0x00 + 0719 00 1887 .db #0x00 + 071A 80 1888 .db #0x80 + 071B 80 1889 .db #0x80 + 071C 80 1890 .db #0x80 + 071D 80 1891 .db #0x80 + 071E 80 1892 .db #0x80 + 071F 80 1893 .db #0x80 + 0720 00 1894 .db #0x00 + 0721 00 1895 .db #0x00 + 0722 00 1896 .db #0x00 + 0723 00 1897 .db #0x00 + 0724 00 1898 .db #0x00 + 0725 00 1899 .db #0x00 + 0726 00 1900 .db #0x00 + 0727 00 1901 .db #0x00 + 0728 00 1902 .db #0x00 + 0729 00 1903 .db #0x00 + 072A 00 1904 .db #0x00 + 072B 00 1905 .db #0x00 + 072C 01 1906 .db #0x01 + 072D 01 1907 .db #0x01 + 072E 03 1908 .db #0x03 + 072F 03 1909 .db #0x03 + 0730 00 1910 .db #0x00 + 0731 00 1911 .db #0x00 + 0732 00 1912 .db #0x00 + 0733 00 1913 .db #0x00 + 0734 00 1914 .db #0x00 + 0735 00 1915 .db #0x00 + 0736 00 1916 .db #0x00 + 0737 00 1917 .db #0x00 + 0738 00 1918 .db #0x00 + 0739 00 1919 .db #0x00 + 073A 80 1920 .db #0x80 + 073B 80 1921 .db #0x80 + 073C 80 1922 .db #0x80 + 073D 80 1923 .db #0x80 + 073E 00 1924 .db #0x00 + 073F 00 1925 .db #0x00 + 0740 00 1926 .db #0x00 + 0741 00 1927 .db #0x00 + 0742 00 1928 .db #0x00 + 0743 00 1929 .db #0x00 + 0744 00 1930 .db #0x00 + 0745 00 1931 .db #0x00 + 0746 03 1932 .db #0x03 + 0747 03 1933 .db #0x03 + 0748 0F 1934 .db #0x0F + 0749 0F 1935 .db #0x0F + 074A 00 1936 .db #0x00 + 074B 00 1937 .db #0x00 + 074C 00 1938 .db #0x00 + 074D 00 1939 .db #0x00 + 074E 00 1940 .db #0x00 + 074F 00 1941 .db #0x00 + 0750 00 1942 .db #0x00 + 0751 00 1943 .db #0x00 + 0752 00 1944 .db #0x00 + 0753 00 1945 .db #0x00 + 0754 0F 1946 .db #0x0F + 0755 0F 1947 .db #0x0F + 0756 FF 1948 .db #0xFF + 0757 FF 1949 .db #0xFF + 0758 FF 1950 .db #0xFF + 0759 FF 1951 .db #0xFF + 075A 00 1952 .db #0x00 + 075B 00 1953 .db #0x00 + 075C 00 1954 .db #0x00 + 075D 00 1955 .db #0x00 + 075E 00 1956 .db #0x00 + 075F 00 1957 .db #0x00 + 0760 00 1958 .db #0x00 + 0761 00 1959 .db #0x00 + 0762 3F 1960 .db #0x3F + 0763 3F 1961 .db #0x3F + 0764 FF 1962 .db #0xFF + 0765 FF 1963 .db #0xFF + 0766 FF 1964 .db #0xFF + 0767 FF 1965 .db #0xFF + 0768 FF 1966 .db #0xFF + 0769 FF 1967 .db #0xFF + 076A 00 1968 .db #0x00 + 076B 00 1969 .db #0x00 + 076C 00 1970 .db #0x00 + 076D 00 1971 .db #0x00 + 076E 00 1972 .db #0x00 + 076F 00 1973 .db #0x00 + 0770 3F 1974 .db #0x3F + 0771 3F 1975 .db #0x3F + 0772 FF 1976 .db #0xFF + 0773 FF 1977 .db #0xFF + 0774 FF 1978 .db #0xFF + 0775 FF 1979 .db #0xFF + 0776 FF 1980 .db #0xFF + 0777 FF 1981 .db #0xFF + 0778 FF 1982 .db #0xFF + 0779 FF 1983 .db #0xFF + 077A 00 1984 .db #0x00 + 077B 00 1985 .db #0x00 + 077C 00 1986 .db #0x00 + 077D 00 1987 .db #0x00 + 077E 1F 1988 .db #0x1F + 077F 1F 1989 .db #0x1F + 0780 FF 1990 .db #0xFF + 0781 FF 1991 .db #0xFF + 0782 FF 1992 .db #0xFF + 0783 FF 1993 .db #0xFF + 0784 FF 1994 .db #0xFF + 0785 FF 1995 .db #0xFF + 0786 FF 1996 .db #0xFF + 0787 FF 1997 .db #0xFF + 0788 FF 1998 .db #0xFF + 0789 FF 1999 .db #0xFF + 078A 00 2000 .db #0x00 + 078B 00 2001 .db #0x00 + 078C 00 2002 .db #0x00 + 078D 00 2003 .db #0x00 + 078E FF 2004 .db #0xFF + 078F FF 2005 .db #0xFF + 0790 FF 2006 .db #0xFF + 0791 FF 2007 .db #0xFF + 0792 FF 2008 .db #0xFF + 0793 FF 2009 .db #0xFF + 0794 FF 2010 .db #0xFF + 0795 FF 2011 .db #0xFF + 0796 FF 2012 .db #0xFF + 0797 FF 2013 .db #0xFF + 0798 FF 2014 .db #0xFF + 0799 FF 2015 .db #0xFF + 079A 00 2016 .db #0x00 + 079B 00 2017 .db #0x00 + 079C 00 2018 .db #0x00 + 079D 00 2019 .db #0x00 + 079E F0 2020 .db #0xF0 + 079F F0 2021 .db #0xF0 + 07A0 FF 2022 .db #0xFF + 07A1 FF 2023 .db #0xFF + 07A2 FF 2024 .db #0xFF + 07A3 FF 2025 .db #0xFF + 07A4 FF 2026 .db #0xFF + 07A5 FF 2027 .db #0xFF + 07A6 FF 2028 .db #0xFF + 07A7 FF 2029 .db #0xFF + 07A8 FF 2030 .db #0xFF + 07A9 FF 2031 .db #0xFF + 07AA 00 2032 .db #0x00 + 07AB 00 2033 .db #0x00 + 07AC 00 2034 .db #0x00 + 07AD 00 2035 .db #0x00 + 07AE 00 2036 .db #0x00 + 07AF 00 2037 .db #0x00 + 07B0 FF 2038 .db #0xFF + 07B1 FF 2039 .db #0xFF + 07B2 FF 2040 .db #0xFF + 07B3 FF 2041 .db #0xFF + 07B4 FF 2042 .db #0xFF + 07B5 FF 2043 .db #0xFF + 07B6 FF 2044 .db #0xFF + 07B7 FF 2045 .db #0xFF + 07B8 FF 2046 .db #0xFF + 07B9 FF 2047 .db #0xFF + 07BA 00 2048 .db #0x00 + 07BB 00 2049 .db #0x00 + 07BC 00 2050 .db #0x00 + 07BD 00 2051 .db #0x00 + 07BE 00 2052 .db #0x00 + 07BF 00 2053 .db #0x00 + 07C0 80 2054 .db #0x80 + 07C1 80 2055 .db #0x80 + 07C2 FF 2056 .db #0xFF + 07C3 FF 2057 .db #0xFF + 07C4 FF 2058 .db #0xFF + 07C5 FF 2059 .db #0xFF + 07C6 FF 2060 .db #0xFF + 07C7 FF 2061 .db #0xFF + 07C8 FF 2062 .db #0xFF + 07C9 FF 2063 .db #0xFF + 07CA 00 2064 .db #0x00 + 07CB 00 2065 .db #0x00 + 07CC 00 2066 .db #0x00 + 07CD 00 2067 .db #0x00 + 07CE 00 2068 .db #0x00 + 07CF 00 2069 .db #0x00 + 07D0 00 2070 .db #0x00 + 07D1 00 2071 .db #0x00 + 07D2 FF 2072 .db #0xFF + 07D3 FF 2073 .db #0xFF + 07D4 FF 2074 .db #0xFF + 07D5 FF 2075 .db #0xFF + 07D6 FF 2076 .db #0xFF + 07D7 FF 2077 .db #0xFF + 07D8 FF 2078 .db #0xFF + 07D9 FF 2079 .db #0xFF + 07DA 00 2080 .db #0x00 + 07DB 00 2081 .db #0x00 + 07DC 00 2082 .db #0x00 + 07DD 00 2083 .db #0x00 + 07DE 00 2084 .db #0x00 + 07DF 00 2085 .db #0x00 + 07E0 00 2086 .db #0x00 + 07E1 00 2087 .db #0x00 + 07E2 F8 2088 .db #0xF8 + 07E3 F8 2089 .db #0xF8 + 07E4 FF 2090 .db #0xFF + 07E5 FF 2091 .db #0xFF + 07E6 FF 2092 .db #0xFF + 07E7 FF 2093 .db #0xFF + 07E8 FF 2094 .db #0xFF + 07E9 FF 2095 .db #0xFF + 07EA 00 2096 .db #0x00 + 07EB 00 2097 .db #0x00 + 07EC 00 2098 .db #0x00 + 07ED 00 2099 .db #0x00 + 07EE 00 2100 .db #0x00 + 07EF 00 2101 .db #0x00 + 07F0 00 2102 .db #0x00 + 07F1 00 2103 .db #0x00 + 07F2 00 2104 .db #0x00 + 07F3 00 2105 .db #0x00 + 07F4 FC 2106 .db #0xFC + 07F5 FC 2107 .db #0xFC + 07F6 FF 2108 .db #0xFF + 07F7 FF 2109 .db #0xFF + 07F8 FF 2110 .db #0xFF + 07F9 FF 2111 .db #0xFF + 07FA 00 2112 .db #0x00 + 07FB 00 2113 .db #0x00 + 07FC 00 2114 .db #0x00 + 07FD 00 2115 .db #0x00 + 07FE 00 2116 .db #0x00 + 07FF 00 2117 .db #0x00 + 0800 00 2118 .db #0x00 + 0801 00 2119 .db #0x00 + 0802 00 2120 .db #0x00 + 0803 00 2121 .db #0x00 + 0804 00 2122 .db #0x00 + 0805 00 2123 .db #0x00 + 0806 C0 2124 .db #0xC0 + 0807 C0 2125 .db #0xC0 + 0808 FE 2126 .db #0xFE + 0809 FE 2127 .db #0xFE + 080A FF 2128 .db #0xFF + 080B FF 2129 .db #0xFF + 080C 7F 2130 .db #0x7F + 080D 7F 2131 .db #0x7F + 080E 7F 2132 .db #0x7F + 080F 7F 2133 .db #0x7F + 0810 7F 2134 .db #0x7F + 0811 7F 2135 .db #0x7F + 0812 3F 2136 .db #0x3F + 0813 3F 2137 .db #0x3F + 0814 3F 2138 .db #0x3F + 0815 3F 2139 .db #0x3F + 0816 1F 2140 .db #0x1F + 0817 1F 2141 .db #0x1F + 0818 1F 2142 .db #0x1F + 0819 1F 2143 .db #0x1F + 081A FF 2144 .db #0xFF + 081B FF 2145 .db #0xFF + 081C FE 2146 .db #0xFE + 081D FE 2147 .db #0xFE + 081E FE 2148 .db #0xFE + 081F FE 2149 .db #0xFE + 0820 FE 2150 .db #0xFE + 0821 FE 2151 .db #0xFE + 0822 FE 2152 .db #0xFE + 0823 FE 2153 .db #0xFE + 0824 FE 2154 .db #0xFE + 0825 FE 2155 .db #0xFE + 0826 FC 2156 .db #0xFC + 0827 FC 2157 .db #0xFC + 0828 FD 2158 .db #0xFD + 0829 FD 2159 .db #0xFD + 082A 00 2160 .db #0x00 + 082B 00 2161 .db #0x00 + 082C 00 2162 .db #0x00 + 082D 00 2163 .db #0x00 + 082E 00 2164 .db #0x00 + 082F 00 2165 .db #0x00 + 0830 00 2166 .db #0x00 + 0831 00 2167 .db #0x00 + 0832 03 2168 .db #0x03 + 0833 03 2169 .db #0x03 + 0834 1F 2170 .db #0x1F + 0835 1F 2171 .db #0x1F + 0836 7F 2172 .db #0x7F + 0837 7F 2173 .db #0x7F + 0838 FF 2174 .db #0xFF + 0839 FF 2175 .db #0xFF + 083A 00 2176 .db #0x00 + 083B 00 2177 .db #0x00 + 083C 03 2178 .db #0x03 + 083D 03 2179 .db #0x03 + 083E 0F 2180 .db #0x0F + 083F 0F 2181 .db #0x0F + 0840 FF 2182 .db #0xFF + 0841 FF 2183 .db #0xFF + 0842 FF 2184 .db #0xFF + 0843 FF 2185 .db #0xFF + 0844 FF 2186 .db #0xFF + 0845 FF 2187 .db #0xFF + 0846 FF 2188 .db #0xFF + 0847 FF 2189 .db #0xFF + 0848 FF 2190 .db #0xFF + 0849 FF 2191 .db #0xFF + 084A 7F 2192 .db #0x7F + 084B 7F 2193 .db #0x7F + 084C FF 2194 .db #0xFF + 084D FF 2195 .db #0xFF + 084E FF 2196 .db #0xFF + 084F FF 2197 .db #0xFF + 0850 FF 2198 .db #0xFF + 0851 FF 2199 .db #0xFF + 0852 FF 2200 .db #0xFF + 0853 FF 2201 .db #0xFF + 0854 FF 2202 .db #0xFF + 0855 FF 2203 .db #0xFF + 0856 FF 2204 .db #0xFF + 0857 FF 2205 .db #0xFF + 0858 FF 2206 .db #0xFF + 0859 FF 2207 .db #0xFF + 085A 80 2208 .db #0x80 + 085B 80 2209 .db #0x80 + 085C F8 2210 .db #0xF8 + 085D F8 2211 .db #0xF8 + 085E FE 2212 .db #0xFE + 085F FE 2213 .db #0xFE + 0860 FF 2214 .db #0xFF + 0861 FF 2215 .db #0xFF + 0862 FF 2216 .db #0xFF + 0863 FF 2217 .db #0xFF + 0864 FF 2218 .db #0xFF + 0865 FF 2219 .db #0xFF + 0866 FF 2220 .db #0xFF + 0867 FF 2221 .db #0xFF + 0868 FF 2222 .db #0xFF + 0869 FF 2223 .db #0xFF + 086A 00 2224 .db #0x00 + 086B 00 2225 .db #0x00 + 086C 00 2226 .db #0x00 + 086D 00 2227 .db #0x00 + 086E 00 2228 .db #0x00 + 086F 00 2229 .db #0x00 + 0870 C0 2230 .db #0xC0 + 0871 C0 2231 .db #0xC0 + 0872 FC 2232 .db #0xFC + 0873 FC 2233 .db #0xFC + 0874 FF 2234 .db #0xFF + 0875 FF 2235 .db #0xFF + 0876 FF 2236 .db #0xFF + 0877 FF 2237 .db #0xFF + 0878 FF 2238 .db #0xFF + 0879 FF 2239 .db #0xFF + 087A 0F 2240 .db #0x0F + 087B 0F 2241 .db #0x0F + 087C 0F 2242 .db #0x0F + 087D 0F 2243 .db #0x0F + 087E 07 2244 .db #0x07 + 087F 07 2245 .db #0x07 + 0880 07 2246 .db #0x07 + 0881 07 2247 .db #0x07 + 0882 03 2248 .db #0x03 + 0883 03 2249 .db #0x03 + 0884 01 2250 .db #0x01 + 0885 01 2251 .db #0x01 + 0886 E1 2252 .db #0xE1 + 0887 E1 2253 .db #0xE1 + 0888 F8 2254 .db #0xF8 + 0889 F8 2255 .db #0xF8 + 088A 2256 _tilemap: + 088A 01 2257 .db #0x01 + 088B 02 2258 .db #0x02 + 088C 03 2259 .db #0x03 + 088D 04 2260 .db #0x04 + 088E 04 2261 .db #0x04 + 088F 04 2262 .db #0x04 + 0890 04 2263 .db #0x04 + 0891 04 2264 .db #0x04 + 0892 04 2265 .db #0x04 + 0893 04 2266 .db #0x04 + 0894 04 2267 .db #0x04 + 0895 04 2268 .db #0x04 + 0896 04 2269 .db #0x04 + 0897 04 2270 .db #0x04 + 0898 04 2271 .db #0x04 + 0899 04 2272 .db #0x04 + 089A 04 2273 .db #0x04 + 089B 05 2274 .db #0x05 + 089C 06 2275 .db #0x06 + 089D 07 2276 .db #0x07 + 089E 08 2277 .db #0x08 + 089F 00 2278 .db #0x00 + 08A0 09 2279 .db #0x09 + 08A1 0A 2280 .db #0x0A + 08A2 0B 2281 .db #0x0B + 08A3 0C 2282 .db #0x0C + 08A4 0D 2283 .db #0x0D + 08A5 04 2284 .db #0x04 + 08A6 04 2285 .db #0x04 + 08A7 04 2286 .db #0x04 + 08A8 04 2287 .db #0x04 + 08A9 04 2288 .db #0x04 + 08AA 04 2289 .db #0x04 + 08AB 04 2290 .db #0x04 + 08AC 0E 2291 .db #0x0E + 08AD 0F 2292 .db #0x0F + 08AE 10 2293 .db #0x10 + 08AF 11 2294 .db #0x11 + 08B0 12 2295 .db #0x12 + 08B1 13 2296 .db #0x13 + 08B2 14 2297 .db #0x14 + 08B3 00 2298 .db #0x00 + 08B4 00 2299 .db #0x00 + 08B5 12 2300 .db #0x12 + 08B6 15 2301 .db #0x15 + 08B7 00 2302 .db #0x00 + 08B8 00 2303 .db #0x00 + 08B9 16 2304 .db #0x16 + 08BA 17 2305 .db #0x17 + 08BB 17 2306 .db #0x17 + 08BC 18 2307 .db #0x18 + 08BD 19 2308 .db #0x19 + 08BE 00 2309 .db #0x00 + 08BF 00 2310 .db #0x00 + 08C0 00 2311 .db #0x00 + 08C1 00 2312 .db #0x00 + 08C2 00 2313 .db #0x00 + 08C3 00 2314 .db #0x00 + 08C4 1A 2315 .db #0x1A + 08C5 04 2316 .db #0x04 + 08C6 1B 2317 .db #0x1B + 08C7 00 2318 .db #0x00 + 08C8 00 2319 .db #0x00 + 08C9 1C 2320 .db #0x1C + 08CA 00 2321 .db #0x00 + 08CB 00 2322 .db #0x00 + 08CC 00 2323 .db #0x00 + 08CD 1D 2324 .db #0x1D + 08CE 00 2325 .db #0x00 + 08CF 00 2326 .db #0x00 + 08D0 1E 2327 .db #0x1E + 08D1 1F 2328 .db #0x1F + 08D2 00 2329 .db #0x00 + 08D3 00 2330 .db #0x00 + 08D4 00 2331 .db #0x00 + 08D5 00 2332 .db #0x00 + 08D6 00 2333 .db #0x00 + 08D7 00 2334 .db #0x00 + 08D8 20 2335 .db #0x20 + 08D9 04 2336 .db #0x04 + 08DA 04 2337 .db #0x04 + 08DB 21 2338 .db #0x21 + 08DC 22 2339 .db #0x22 + 08DD 23 2340 .db #0x23 + 08DE 00 2341 .db #0x00 + 08DF 00 2342 .db #0x00 + 08E0 24 2343 .db #0x24 + 08E1 00 2344 .db #0x00 + 08E2 00 2345 .db #0x00 + 08E3 12 2346 .db #0x12 + 08E4 25 2347 .db #0x25 + 08E5 00 2348 .db #0x00 + 08E6 00 2349 .db #0x00 + 08E7 00 2350 .db #0x00 + 08E8 00 2351 .db #0x00 + 08E9 00 2352 .db #0x00 + 08EA 00 2353 .db #0x00 + 08EB 26 2354 .db #0x26 + 08EC 04 2355 .db #0x04 + 08ED 04 2356 .db #0x04 + 08EE 04 2357 .db #0x04 + 08EF 27 2358 .db #0x27 + 08F0 28 2359 .db #0x28 + 08F1 00 2360 .db #0x00 + 08F2 00 2361 .db #0x00 + 08F3 29 2362 .db #0x29 + 08F4 2A 2363 .db #0x2A + 08F5 00 2364 .db #0x00 + 08F6 00 2365 .db #0x00 + 08F7 2B 2366 .db #0x2B + 08F8 2C 2367 .db #0x2C + 08F9 2D 2368 .db #0x2D + 08FA 00 2369 .db #0x00 + 08FB 00 2370 .db #0x00 + 08FC 00 2371 .db #0x00 + 08FD 00 2372 .db #0x00 + 08FE 00 2373 .db #0x00 + 08FF 2E 2374 .db #0x2E + 0900 04 2375 .db #0x04 + 0901 04 2376 .db #0x04 + 0902 04 2377 .db #0x04 + 0903 2F 2378 .db #0x2F + 0904 00 2379 .db #0x00 + 0905 00 2380 .db #0x00 + 0906 30 2381 .db #0x30 + 0907 31 2382 .db #0x31 + 0908 00 2383 .db #0x00 + 0909 00 2384 .db #0x00 + 090A 32 2385 .db #0x32 + 090B 33 2386 .db #0x33 + 090C 00 2387 .db #0x00 + 090D 34 2388 .db #0x34 + 090E 35 2389 .db #0x35 + 090F 00 2390 .db #0x00 + 0910 00 2391 .db #0x00 + 0911 00 2392 .db #0x00 + 0912 00 2393 .db #0x00 + 0913 36 2394 .db #0x36 + 0914 04 2395 .db #0x04 + 0915 04 2396 .db #0x04 + 0916 04 2397 .db #0x04 + 0917 37 2398 .db #0x37 + 0918 00 2399 .db #0x00 + 0919 00 2400 .db #0x00 + 091A 38 2401 .db #0x38 + 091B 00 2402 .db #0x00 + 091C 00 2403 .db #0x00 + 091D 00 2404 .db #0x00 + 091E 39 2405 .db #0x39 + 091F 00 2406 .db #0x00 + 0920 00 2407 .db #0x00 + 0921 00 2408 .db #0x00 + 0922 3A 2409 .db #0x3A + 0923 3B 2410 .db #0x3B + 0924 3C 2411 .db #0x3C + 0925 00 2412 .db #0x00 + 0926 00 2413 .db #0x00 + 0927 3D 2414 .db #0x3D + 0928 04 2415 .db #0x04 + 0929 04 2416 .db #0x04 + 092A 04 2417 .db #0x04 + 092B 3E 2418 .db #0x3E + 092C 00 2419 .db #0x00 + 092D 3F 2420 .db #0x3F + 092E 40 2421 .db #0x40 + 092F 00 2422 .db #0x00 + 0930 00 2423 .db #0x00 + 0931 3F 2424 .db #0x3F + 0932 41 2425 .db #0x41 + 0933 00 2426 .db #0x00 + 0934 00 2427 .db #0x00 + 0935 00 2428 .db #0x00 + 0936 00 2429 .db #0x00 + 0937 00 2430 .db #0x00 + 0938 42 2431 .db #0x42 + 0939 43 2432 .db #0x43 + 093A 44 2433 .db #0x44 + 093B 45 2434 .db #0x45 + 093C 04 2435 .db #0x04 + 093D 04 2436 .db #0x04 + 093E 04 2437 .db #0x04 + 093F 3E 2438 .db #0x3E + 0940 00 2439 .db #0x00 + 0941 46 2440 .db #0x46 + 0942 00 2441 .db #0x00 + 0943 00 2442 .db #0x00 + 0944 00 2443 .db #0x00 + 0945 47 2444 .db #0x47 + 0946 00 2445 .db #0x00 + 0947 00 2446 .db #0x00 + 0948 00 2447 .db #0x00 + 0949 00 2448 .db #0x00 + 094A 00 2449 .db #0x00 + 094B 00 2450 .db #0x00 + 094C 00 2451 .db #0x00 + 094D 00 2452 .db #0x00 + 094E 00 2453 .db #0x00 + 094F 36 2454 .db #0x36 + 0950 04 2455 .db #0x04 + 0951 04 2456 .db #0x04 + 0952 04 2457 .db #0x04 + 0953 3E 2458 .db #0x3E + 0954 48 2459 .db #0x48 + 0955 49 2460 .db #0x49 + 0956 00 2461 .db #0x00 + 0957 00 2462 .db #0x00 + 0958 4A 2463 .db #0x4A + 0959 49 2464 .db #0x49 + 095A 4B 2465 .db #0x4B + 095B 4C 2466 .db #0x4C + 095C 00 2467 .db #0x00 + 095D 00 2468 .db #0x00 + 095E 00 2469 .db #0x00 + 095F 00 2470 .db #0x00 + 0960 00 2471 .db #0x00 + 0961 00 2472 .db #0x00 + 0962 00 2473 .db #0x00 + 0963 4D 2474 .db #0x4D + 0964 04 2475 .db #0x04 + 0965 04 2476 .db #0x04 + 0966 04 2477 .db #0x04 + 0967 3E 2478 .db #0x3E + 0968 4E 2479 .db #0x4E + 0969 00 2480 .db #0x00 + 096A 00 2481 .db #0x00 + 096B 4F 2482 .db #0x4F + 096C 50 2483 .db #0x50 + 096D 00 2484 .db #0x00 + 096E 00 2485 .db #0x00 + 096F 51 2486 .db #0x51 + 0970 52 2487 .db #0x52 + 0971 53 2488 .db #0x53 + 0972 00 2489 .db #0x00 + 0973 00 2490 .db #0x00 + 0974 00 2491 .db #0x00 + 0975 00 2492 .db #0x00 + 0976 00 2493 .db #0x00 + 0977 54 2494 .db #0x54 + 0978 04 2495 .db #0x04 + 0979 04 2496 .db #0x04 + 097A 04 2497 .db #0x04 + 097B 55 2498 .db #0x55 + 097C 00 2499 .db #0x00 + 097D 00 2500 .db #0x00 + 097E 00 2501 .db #0x00 + 097F 56 2502 .db #0x56 + 0980 00 2503 .db #0x00 + 0981 00 2504 .db #0x00 + 0982 00 2505 .db #0x00 + 0983 00 2506 .db #0x00 + 0984 00 2507 .db #0x00 + 0985 57 2508 .db #0x57 + 0986 58 2509 .db #0x58 + 0987 00 2510 .db #0x00 + 0988 00 2511 .db #0x00 + 0989 00 2512 .db #0x00 + 098A 00 2513 .db #0x00 + 098B 59 2514 .db #0x59 + 098C 04 2515 .db #0x04 + 098D 04 2516 .db #0x04 + 098E 04 2517 .db #0x04 + 098F 2F 2518 .db #0x2F + 0990 00 2519 .db #0x00 + 0991 00 2520 .db #0x00 + 0992 5A 2521 .db #0x5A + 0993 2A 2522 .db #0x2A + 0994 5B 2523 .db #0x5B + 0995 5C 2524 .db #0x5C + 0996 00 2525 .db #0x00 + 0997 00 2526 .db #0x00 + 0998 00 2527 .db #0x00 + 0999 00 2528 .db #0x00 + 099A 00 2529 .db #0x00 + 099B 5D 2530 .db #0x5D + 099C 44 2531 .db #0x44 + 099D 00 2532 .db #0x00 + 099E 00 2533 .db #0x00 + 099F 00 2534 .db #0x00 + 09A0 5E 2535 .db #0x5E + 09A1 04 2536 .db #0x04 + 09A2 04 2537 .db #0x04 + 09A3 5F 2538 .db #0x5F + 09A4 00 2539 .db #0x00 + 09A5 32 2540 .db #0x32 + 09A6 60 2541 .db #0x60 + 09A7 00 2542 .db #0x00 + 09A8 00 2543 .db #0x00 + 09A9 3A 2544 .db #0x3A + 09AA 61 2545 .db #0x61 + 09AB 62 2546 .db #0x62 + 09AC 00 2547 .db #0x00 + 09AD 00 2548 .db #0x00 + 09AE 00 2549 .db #0x00 + 09AF 00 2550 .db #0x00 + 09B0 63 2551 .db #0x63 + 09B1 64 2552 .db #0x64 + 09B2 62 2553 .db #0x62 + 09B3 00 2554 .db #0x00 + 09B4 65 2555 .db #0x65 + 09B5 04 2556 .db #0x04 + 09B6 04 2557 .db #0x04 + 09B7 66 2558 .db #0x66 + 09B8 00 2559 .db #0x00 + 09B9 67 2560 .db #0x67 + 09BA 00 2561 .db #0x00 + 09BB 00 2562 .db #0x00 + 09BC 00 2563 .db #0x00 + 09BD 00 2564 .db #0x00 + 09BE 00 2565 .db #0x00 + 09BF 68 2566 .db #0x68 + 09C0 00 2567 .db #0x00 + 09C1 00 2568 .db #0x00 + 09C2 00 2569 .db #0x00 + 09C3 00 2570 .db #0x00 + 09C4 00 2571 .db #0x00 + 09C5 00 2572 .db #0x00 + 09C6 69 2573 .db #0x69 + 09C7 6A 2574 .db #0x6A + 09C8 6B 2575 .db #0x6B + 09C9 04 2576 .db #0x04 + 09CA 04 2577 .db #0x04 + 09CB 6C 2578 .db #0x6C + 09CC 6D 2579 .db #0x6D + 09CD 6E 2580 .db #0x6E + 09CE 6F 2581 .db #0x6F + 09CF 70 2582 .db #0x70 + 09D0 71 2583 .db #0x71 + 09D1 72 2584 .db #0x72 + 09D2 73 2585 .db #0x73 + 09D3 73 2586 .db #0x73 + 09D4 74 2587 .db #0x74 + 09D5 75 2588 .db #0x75 + 09D6 76 2589 .db #0x76 + 09D7 77 2590 .db #0x77 + 09D8 78 2591 .db #0x78 + 09D9 79 2592 .db #0x79 + 09DA 7A 2593 .db #0x7A + 09DB 00 2594 .db #0x00 + 09DC 00 2595 .db #0x00 + 09DD 7B 2596 .db #0x7B + 09DE 7C 2597 .db #0x7C + 09DF 7D 2598 .db #0x7D + 09E0 7E 2599 .db #0x7E + 09E1 7F 2600 .db #0x7F + 09E2 04 2601 .db #0x04 + 09E3 04 2602 .db #0x04 + 09E4 04 2603 .db #0x04 + 09E5 04 2604 .db #0x04 + 09E6 04 2605 .db #0x04 + 09E7 04 2606 .db #0x04 + 09E8 04 2607 .db #0x04 + 09E9 04 2608 .db #0x04 + 09EA 04 2609 .db #0x04 + 09EB 04 2610 .db #0x04 + 09EC 04 2611 .db #0x04 + 09ED 04 2612 .db #0x04 + 09EE 04 2613 .db #0x04 + 09EF 80 2614 .db #0x80 + 09F0 81 2615 .db #0x81 + 09F1 82 2616 .db #0x82 + 2617 .area _CODE + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 1. + +Symbol Table + + 0 ___main_end 005A R + 0 ___main_start 0000 R + 0 _main 0000 GR + _set_bkg_data **** GX + _set_bkg_tiles **** GX + 0 _tiledata 005A GR + 0 _tilemap 088A GR + + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 2. + +Area Table + + 0 _CODE size 9F2 flags 0 + 1 _DATA size 0 flags 0 + 2 _OVERLAY size 0 flags 0 + 3 _ISEG size 0 flags 0 + 4 _BSEG size 0 flags 0 + 5 _XSEG size 0 flags 0 + 6 _GSINIT size 0 flags 0 + 7 _GSFINAL size 0 flags 0 + 8 _HOME size 0 flags 0 diff --git a/background/bg_data.c b/background/bg_data.c new file mode 100644 index 0000000..f2da816 --- /dev/null +++ b/background/bg_data.c @@ -0,0 +1,132 @@ +unsigned const char tiledata[] = { +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xDF,0xDF,0xC1,0xC1,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x0F,0x0F,0x01,0x01,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x1F, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xF8,0xF8, +0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F, +0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8, +0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x0F,0x0F,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, +0xE0,0xE0,0xC0,0xC0,0x00,0x00,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, +0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80, +0xFF,0xFF,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x0C,0x0C,0x18,0x18, +0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F, +0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x20,0x20, +0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04, +0x30,0x30,0x20,0x20,0x60,0x60,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x06,0x06, +0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x01,0x02,0x02,0x06,0x06,0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40, +0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00, +0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07, +0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, +0x04,0x04,0x08,0x08,0x08,0x08,0x10,0x10,0x30,0x30,0x20,0x20,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x06,0x06,0x04,0x04,0x08,0x08,0x18,0x18, +0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x02,0x02,0x06,0x06,0x04,0x04,0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x18,0x18, +0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, +0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02, +0x60,0x60,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0x0C,0x0C,0x02,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x60,0x60,0x18,0x18,0x04,0x04,0x03,0x03, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, +0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, +0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x40,0x40, +0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x10,0x10,0x10,0x10,0x20,0x20, +0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x80,0x80,0x60,0x60,0x30,0x30,0x18,0x18,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x60,0x60, +0x1F,0x1F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04, +0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x40,0x40,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1C,0x1C,0x06,0x06,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xC0,0xC0,0x70,0x70,0x1C,0x1C,0x07,0x07,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x60,0x60, +0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F, +0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x40,0x40, +0x0C,0x0C,0x08,0x08,0x10,0x10,0x10,0x10,0x30,0x30,0x60,0x60,0x40,0x40,0x40,0x40, +0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08, +0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x10, +0x00,0x00,0x00,0x00,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x40,0x30,0x30,0x08,0x08, +0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x02,0x02, +0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00, +0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x80,0x80,0x60,0x60,0x38,0x38,0x0C,0x0C,0x07,0x07,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x30,0x30, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0, +0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x40, +0x18,0x18,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x1C,0x1C,0x06,0x06,0x03,0x03, +0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04,0x08,0x08,0x08,0x08, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x78,0x78,0x07,0x07, +0xC0,0xC0,0x60,0x60,0x30,0x30,0x08,0x08,0x0E,0x0E,0x03,0x03,0x01,0x01,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F, +0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, +0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0xC0,0xC0,0x40,0x40,0x60,0x60,0x30,0x30,0x0C,0x0C,0x02,0x02,0x03,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0, +0x18,0x18,0x0E,0x0E,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x38,0x38,0x0E,0x0E,0x03,0x03,0x00,0x00, +0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F, +0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80, +0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40, +0x38,0x38,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x38,0x38,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00, +0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x00,0x00, +0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x01,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x0F,0x0F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFE,0xFE, +0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F, +0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0xFD,0xFD, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x1F,0x1F,0x7F,0x7F,0xFF,0xFF, +0x00,0x00,0x03,0x03,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x80,0x80,0xF8,0xF8,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x03,0x03,0x01,0x01,0xE1,0xE1,0xF8,0xF8}; diff --git a/beep/Makefile b/beep/Makefile new file mode 100644 index 0000000..b006540 --- /dev/null +++ b/beep/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = beep.gb +OBJS = main.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ diff --git a/beep/beep.gb b/beep/beep.gb new file mode 100644 index 0000000000000000000000000000000000000000..a0f1139d36a16e61649114452a665fcf90f8cfc3 GIT binary patch literal 32768 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 +#include + +void main() { + NR50_REG = 0xFF; + NR51_REG = 0xFF; + NR52_REG = 0x80; + + gotogxy(1, 1); + gprintf("====== Beep ======"); + + gotogxy(2, 3); + gprintf("Press any button"); + + while(1) { + UBYTE joypad_state = joypad(); + if(joypad_state) { + NR10_REG = 0x38U; + NR11_REG = 0x70U; + NR12_REG = 0xE0U; + NR13_REG = 0x0AU; + NR14_REG = 0xC6U; + + NR51_REG |= 0x11; + + delay(200); + } + } +} diff --git a/beep/main.lst b/beep/main.lst new file mode 100644 index 0000000..61de547 --- /dev/null +++ b/beep/main.lst @@ -0,0 +1,235 @@ + 1 ;-------------------------------------------------------- + 2 ; File Created by SDCC : FreeWare ANSI-C Compiler + 3 ; Version 2.3.1 Wed Jul 8 09:50:25 2020 + 4 + 5 ;-------------------------------------------------------- + 6 .module lcc2312250 + 7 + 8 ;-------------------------------------------------------- + 9 ; Public variables in this module + 10 ;-------------------------------------------------------- + 11 .globl _main + 12 ;-------------------------------------------------------- + 13 ; special function registers + 14 ;-------------------------------------------------------- + 15 ;-------------------------------------------------------- + 16 ; special function bits + 17 ;-------------------------------------------------------- + 18 ;-------------------------------------------------------- + 19 ; internal ram data + 20 ;-------------------------------------------------------- + 21 .area _DATA + 22 ;-------------------------------------------------------- + 23 ; overlayable items in internal ram + 24 ;-------------------------------------------------------- + 25 .area _OVERLAY + 26 ;-------------------------------------------------------- + 27 ; indirectly addressable internal ram data + 28 ;-------------------------------------------------------- + 29 .area _ISEG + 30 ;-------------------------------------------------------- + 31 ; bit data + 32 ;-------------------------------------------------------- + 33 .area _BSEG + 34 ;-------------------------------------------------------- + 35 ; external ram data + 36 ;-------------------------------------------------------- + 37 .area _XSEG + 38 ;-------------------------------------------------------- + 39 ; global & static initialisations + 40 ;-------------------------------------------------------- + 41 .area _GSINIT + 42 .area _GSFINAL + 43 .area _GSINIT + 44 ;-------------------------------------------------------- + 45 ; Home + 46 ;-------------------------------------------------------- + 47 .area _HOME + 48 .area _CODE + 49 ;-------------------------------------------------------- + 50 ; code + 51 ;-------------------------------------------------------- + 52 .area _CODE + 53 ; main.c 4 + 54 ; genLabel + 55 ; genFunction + 56 ; --------------------------------- + 57 ; Function main + 58 ; --------------------------------- + 0000 59 ___main_start: + 0000 60 _main: + 0000 E8 FD 61 lda sp,-3(sp) + 62 ; main.c 5 + 63 ; genAssign + 0002 01 24 FF 64 ld bc,#0xFF24 + 65 ; genAssign (pointer) + 0005 3E FF 66 ld a,#0xFF + 0007 02 67 ld (bc),a + 68 ; main.c 6 + 69 ; genAssign + 0008 01 25 FF 70 ld bc,#0xFF25 + 71 ; genAssign (pointer) + 000B 3E FF 72 ld a,#0xFF + 000D 02 73 ld (bc),a + 74 ; main.c 7 + 75 ; genAssign + 000E 01 26 FF 76 ld bc,#0xFF26 + 77 ; genAssign (pointer) + 0011 3E 80 78 ld a,#0x80 + 0013 02 79 ld (bc),a + 80 ; main.c 9 + 81 ; genIpush + 82 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0014 21 01 01 83 ld hl,#0x0101 + 0017 E5 84 push hl + 85 ; genCall + 0018 CD 00 00 86 call _gotogxy + 001B E8 02 87 lda sp,2(sp) + 88 ; main.c 10 + 89 ; genIpush + 90 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 001D 21 84 00 91 ld hl,#__str_0 + 0020 E5 92 push hl + 93 ; genCall + 0021 CD 00 00 94 call _gprintf + 0024 E8 02 95 lda sp,2(sp) + 96 ; main.c 12 + 97 ; genIpush + 98 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0026 21 02 03 99 ld hl,#0x0302 + 0029 E5 100 push hl + 101 ; genCall + 002A CD 00 00 102 call _gotogxy + 002D E8 02 103 lda sp,2(sp) + 104 ; main.c 13 + 105 ; genIpush + 106 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 002F 21 97 00 107 ld hl,#__str_1 + 0032 E5 108 push hl + 109 ; genCall + 0033 CD 00 00 110 call _gprintf + 0036 E8 02 111 lda sp,2(sp) + 112 ; main.c 15 + 113 ; genLabel + 0038 114 00104$: + 115 ; main.c 16 + 116 ; genCall + 117 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0038 CD 00 00 118 call _joypad + 003B 4B 119 ld c,e + 120 ; genAssign + 003C 79 121 ld a,c + 122 ; main.c 17 + 123 ; genIfx + 003D B7 124 or a,a + 003E CA 38 00 125 jp z,00104$ + 126 ; main.c 18 + 127 ; genAssign + 0041 01 10 FF 128 ld bc,#0xFF10 + 129 ; genAssign (pointer) + 0044 3E 38 130 ld a,#0x38 + 0046 02 131 ld (bc),a + 132 ; main.c 19 + 133 ; genAssign + 0047 01 11 FF 134 ld bc,#0xFF11 + 135 ; genAssign (pointer) + 004A 3E 70 136 ld a,#0x70 + 004C 02 137 ld (bc),a + 138 ; main.c 20 + 139 ; genAssign + 004D 01 12 FF 140 ld bc,#0xFF12 + 141 ; genAssign (pointer) + 0050 3E E0 142 ld a,#0xE0 + 0052 02 143 ld (bc),a + 144 ; main.c 21 + 145 ; genAssign + 0053 01 13 FF 146 ld bc,#0xFF13 + 147 ; genAssign (pointer) + 0056 3E 0A 148 ld a,#0x0A + 0058 02 149 ld (bc),a + 150 ; main.c 22 + 151 ; genAssign + 0059 01 14 FF 152 ld bc,#0xFF14 + 153 ; genAssign (pointer) + 005C 3E C6 154 ld a,#0xC6 + 005E 02 155 ld (bc),a + 156 ; main.c 24 + 157 ; genAssign + 005F 01 25 FF 158 ld bc,#0xFF25 + 159 ; genAssign + 160 ; AOP_STK for _main_sloc0_1_0 + 0062 F8 01 161 lda hl,1(sp) + 0064 36 25 162 ld (hl),#0x25 + 0066 23 163 inc hl + 0067 36 FF 164 ld (hl),#0xFF + 165 ; genPointerGet + 166 ; AOP_STK for _main_sloc0_1_0 + 167 ; AOP_STK for _main_sloc1_1_0 + 0069 2B 168 dec hl + 006A 5E 169 ld e,(hl) + 006B 23 170 inc hl + 006C 56 171 ld d,(hl) + 006D 1A 172 ld a,(de) + 006E 2B 173 dec hl + 006F 2B 174 dec hl + 175 ; genOr + 176 ; AOP_STK for _main_sloc1_1_0 + 0070 77 177 ld (hl),a + 0071 7F 178 ld a,a + 0072 F6 11 179 or a,#0x11 + 180 ; genAssign (pointer) + 0074 02 181 ld (bc),a + 182 ; main.c 26 + 183 ; genIpush + 184 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0075 21 C8 00 185 ld hl,#0x00C8 + 0078 E5 186 push hl + 187 ; genCall + 0079 CD 00 00 188 call _delay + 007C E8 02 189 lda sp,2(sp) + 190 ; genGoto + 007E C3 38 00 191 jp 00104$ + 192 ; genLabel + 0081 193 00106$: + 194 ; genEndFunction + 0081 E8 03 195 lda sp,3(sp) + 0083 C9 196 ret + 0084 197 ___main_end: + 0084 198 __str_0: + 0084 3D 3D 3D 3D 3D 3D 199 .ascii "====== Beep ======" + 20 42 65 65 70 20 + 3D 3D 3D 3D 3D 3D + 0096 00 200 .db 0x00 + 0097 201 __str_1: + 0097 50 72 65 73 73 20 202 .ascii "Press any button" + 61 6E 79 20 62 75 + 74 74 6F 6E + 00A7 00 203 .db 0x00 + 204 .area _CODE + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 1. + +Symbol Table + + 0 ___main_end 0084 R + 0 ___main_start 0000 R + 0 __str_0 0084 R + 0 __str_1 0097 R + _delay **** GX + _gotogxy **** GX + _gprintf **** GX + _joypad **** GX + 0 _main 0000 GR + + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 2. + +Area Table + + 0 _CODE size A8 flags 0 + 1 _DATA size 0 flags 0 + 2 _OVERLAY size 0 flags 0 + 3 _ISEG size 0 flags 0 + 4 _BSEG size 0 flags 0 + 5 _XSEG size 0 flags 0 + 6 _GSINIT size 0 flags 0 + 7 _GSFINAL size 0 flags 0 + 8 _HOME size 0 flags 0 diff --git a/big_sprite/Makefile b/big_sprite/Makefile new file mode 100644 index 0000000..6946e93 --- /dev/null +++ b/big_sprite/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = big_sprite.gb +OBJS = big_sprite.o + +all: $(BIN) + +$.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ diff --git a/big_sprite/big_sprite.c b/big_sprite/big_sprite.c new file mode 100644 index 0000000..78163a0 --- /dev/null +++ b/big_sprite/big_sprite.c @@ -0,0 +1,11 @@ +#include +#include "sprite.c" +void main() { + SPRITES_8x16; + set_sprite_data(0, 4, sprite); + set_sprite_tile(0, 0); + move_sprite(0, 75, 75); + set_sprite_tile(1, 2); + move_sprite(1, 75 + 8, 75); + SHOW_SPRITES; +} diff --git a/big_sprite/big_sprite.gb b/big_sprite/big_sprite.gb new file mode 100644 index 0000000000000000000000000000000000000000..504ee04584b57f92591b5b6256c0ec0447b9165a GIT binary patch literal 32768 zcmeIyUuYaf90%~3+0CD8^RFqCt5Mv|(r~?dsck8ucDZUztA_7Vc!URLy>g+ha~HG5u;7Vf-8FL&nF+2q2dBd}oH6oBQnSS>Dqv5mnk6WkxBJ8{3p<;_20mBUfE8r(?u()un15NUn}|R{Pz4 zzc_O@d^5DweQ7Xej}S)-=6_D+o%;(LH~f!h$n|&m zSES{^>|lCs?*668$=HX3EstjB9$dOSd2643;`lp9dtWCT8f|SqUwF@WfpFFPrA4VH zd+U_Hnw2HhtE^_#^Xe1+WIW4FJ0KbSRsI@3#NX5#cn?i@sv^~I2|sMAQ%clf_C-d+ zl6{@&^ZW>ZL+{{6b(2R8-l_+w6BE{v#R_1?;=sA5%A zu_~%qy~o0*`o6n8d`tN={)195_71($d$L0dw;$OaZr^_6c5qSLHAxFDeH!`9Qhzh| zD@@yOCp?{IUDL`%$A2;kB9+gOl52h+DjI9kxx)h*e~RUBv#FS*m09TV<UC9@!MLwT8r0f@rH;3q7W|kow6*a zlr|T|v)00zn@yWpqNvTXd-{U~Coi&?S$O-f)32q5??mJgjY-c=b;{E_Wn<#b%PZsO zruO(_*HVd@Qd4R@2@H3}J6C^1pVn_5l#_xv6`Q&y&lDTFBgZ2BkwMp(Q0lgkwqT%( zoZc;3?@8xu!{wMCXDInPkW9TFs!x3sVyUaSLusazwscAz@d+j4^Ze5;U8K54B9OEn zi|I=;+wk`1q62CcjIp z{1sCADB0*Z`8=hbNB-^Q+U$kH90VW$0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa l0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fWZG+;BS-Y8h!u( literal 0 HcmV?d00001 diff --git a/big_sprite/big_sprite.lst b/big_sprite/big_sprite.lst new file mode 100644 index 0000000..2f95632 --- /dev/null +++ b/big_sprite/big_sprite.lst @@ -0,0 +1,220 @@ + 1 ;-------------------------------------------------------- + 2 ; File Created by SDCC : FreeWare ANSI-C Compiler + 3 ; Version 2.3.1 Wed Jul 8 08:00:47 2020 + 4 + 5 ;-------------------------------------------------------- + 6 .module lcc2194330 + 7 + 8 ;-------------------------------------------------------- + 9 ; Public variables in this module + 10 ;-------------------------------------------------------- + 11 .globl _main + 12 .globl _sprite + 13 ;-------------------------------------------------------- + 14 ; special function registers + 15 ;-------------------------------------------------------- + 16 ;-------------------------------------------------------- + 17 ; special function bits + 18 ;-------------------------------------------------------- + 19 ;-------------------------------------------------------- + 20 ; internal ram data + 21 ;-------------------------------------------------------- + 22 .area _DATA + 0000 23 _sprite:: + 0000 24 .ds 64 + 25 ;-------------------------------------------------------- + 26 ; overlayable items in internal ram + 27 ;-------------------------------------------------------- + 28 .area _OVERLAY + 29 ;-------------------------------------------------------- + 30 ; indirectly addressable internal ram data + 31 ;-------------------------------------------------------- + 32 .area _ISEG + 33 ;-------------------------------------------------------- + 34 ; bit data + 35 ;-------------------------------------------------------- + 36 .area _BSEG + 37 ;-------------------------------------------------------- + 38 ; external ram data + 39 ;-------------------------------------------------------- + 40 .area _XSEG + 41 ;-------------------------------------------------------- + 42 ; global & static initialisations + 43 ;-------------------------------------------------------- + 44 .area _GSINIT + 45 .area _GSFINAL + 46 .area _GSINIT + 47 ; big_sprite.c 1 + 48 ; big_sprite.c 12 + 49 ; genArrayInit + 50 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0000 21 00 00 51 ld hl,#_sprite + 0003 CD 00 00 52 call __initrleblock + 0006 0C 53 .db 12 + 0007 FF FF 80 80 80 80 54 .db 0xFF, 0xFF, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81 + 81 81 + 000F 83 83 87 87 55 .db 0x83, 0x83, 0x87, 0x87 + 0013 F4 81 56 .db -12,0x81 + 0015 0C 57 .db 12 + 0016 83 83 87 87 80 80 58 .db 0x83, 0x83, 0x87, 0x87, 0x80, 0x80, 0xFF, 0xFF + FF FF + 001E FF FF 01 01 59 .db 0xFF, 0xFF, 0x01, 0x01 + 0022 EC C1 60 .db -20,0xC1 + 0024 08 61 .db 8 + 0025 E1 E1 F1 F1 01 01 62 .db 0xE1, 0xE1, 0xF1, 0xF1, 0x01, 0x01, 0xFF, 0xFF + FF FF + 002D 00 63 .db 0 + 64 ;-------------------------------------------------------- + 65 ; Home + 66 ;-------------------------------------------------------- + 67 .area _HOME + 68 .area _CODE + 69 ;-------------------------------------------------------- + 70 ; code + 71 ;-------------------------------------------------------- + 72 .area _CODE + 73 ; big_sprite.c 3 + 74 ; genLabel + 75 ; genFunction + 76 ; --------------------------------- + 77 ; Function main + 78 ; --------------------------------- + 0000 79 ___main_start: + 0000 80 _main: + 0000 E8 FD 81 lda sp,-3(sp) + 82 ; big_sprite.c 4 + 83 ; genAssign + 0002 01 40 FF 84 ld bc,#0xFF40 + 85 ; genAssign + 86 ; AOP_STK for _main_sloc0_1_0 + 0005 F8 01 87 lda hl,1(sp) + 0007 36 40 88 ld (hl),#0x40 + 0009 23 89 inc hl + 000A 36 FF 90 ld (hl),#0xFF + 91 ; genPointerGet + 92 ; AOP_STK for _main_sloc0_1_0 + 93 ; AOP_STK for _main_sloc1_1_0 + 000C 2B 94 dec hl + 000D 5E 95 ld e,(hl) + 000E 23 96 inc hl + 000F 56 97 ld d,(hl) + 0010 1A 98 ld a,(de) + 0011 2B 99 dec hl + 0012 2B 100 dec hl + 101 ; genOr + 102 ; AOP_STK for _main_sloc1_1_0 + 0013 77 103 ld (hl),a + 0014 7F 104 ld a,a + 0015 F6 04 105 or a,#0x04 + 106 ; genAssign (pointer) + 0017 02 107 ld (bc),a + 108 ; big_sprite.c 5 + 109 ; genIpush + 110 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0018 21 00 00 111 ld hl,#_sprite + 001B E5 112 push hl + 113 ; genIpush + 001C 21 00 04 114 ld hl,#0x0400 + 001F E5 115 push hl + 116 ; genCall + 0020 CD 00 00 117 call _set_sprite_data + 0023 E8 04 118 lda sp,4(sp) + 119 ; big_sprite.c 6 + 120 ; genIpush + 121 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0025 21 00 00 122 ld hl,#0x0000 + 0028 E5 123 push hl + 124 ; genCall + 0029 CD 00 00 125 call _set_sprite_tile + 002C E8 02 126 lda sp,2(sp) + 127 ; big_sprite.c 7 + 128 ; genIpush + 129 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 002E 21 4B 4B 130 ld hl,#0x4B4B + 0031 E5 131 push hl + 132 ; genIpush + 0032 3E 00 133 ld a,#0x00 + 0034 F5 134 push af + 0035 33 135 inc sp + 136 ; genCall + 0036 CD 00 00 137 call _move_sprite + 0039 E8 03 138 lda sp,3(sp) + 139 ; big_sprite.c 8 + 140 ; genIpush + 141 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 003B 21 01 02 142 ld hl,#0x0201 + 003E E5 143 push hl + 144 ; genCall + 003F CD 00 00 145 call _set_sprite_tile + 0042 E8 02 146 lda sp,2(sp) + 147 ; big_sprite.c 9 + 148 ; genIpush + 149 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0044 21 53 4B 150 ld hl,#0x4B53 + 0047 E5 151 push hl + 152 ; genIpush + 0048 3E 01 153 ld a,#0x01 + 004A F5 154 push af + 004B 33 155 inc sp + 156 ; genCall + 004C CD 00 00 157 call _move_sprite + 004F E8 03 158 lda sp,3(sp) + 159 ; big_sprite.c 10 + 160 ; genAssign + 0051 01 40 FF 161 ld bc,#0xFF40 + 162 ; genAssign + 163 ; AOP_STK for _main_sloc0_1_0 + 0054 F8 01 164 lda hl,1(sp) + 0056 36 40 165 ld (hl),#0x40 + 0058 23 166 inc hl + 0059 36 FF 167 ld (hl),#0xFF + 168 ; genPointerGet + 169 ; AOP_STK for _main_sloc0_1_0 + 170 ; AOP_STK for _main_sloc1_1_0 + 005B 2B 171 dec hl + 005C 5E 172 ld e,(hl) + 005D 23 173 inc hl + 005E 56 174 ld d,(hl) + 005F 1A 175 ld a,(de) + 0060 2B 176 dec hl + 0061 2B 177 dec hl + 178 ; genOr + 179 ; AOP_STK for _main_sloc1_1_0 + 0062 77 180 ld (hl),a + 0063 7F 181 ld a,a + 0064 F6 02 182 or a,#0x02 + 183 ; genAssign (pointer) + 0066 02 184 ld (bc),a + 185 ; genLabel + 0067 186 00101$: + 187 ; genEndFunction + 0067 E8 03 188 lda sp,3(sp) + 0069 C9 189 ret + 006A 190 ___main_end: + 191 .area _CODE + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 1. + +Symbol Table + + 0 ___main_end 006A R + 0 ___main_start 0000 R + __initrleblock **** GX + 0 _main 0000 GR + _move_sprite **** GX + _set_sprite_data **** GX + _set_sprite_tile **** GX + 1 _sprite 0000 GR + + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 2. + +Area Table + + 0 _CODE size 6A flags 0 + 1 _DATA size 40 flags 0 + 2 _OVERLAY size 0 flags 0 + 3 _ISEG size 0 flags 0 + 4 _BSEG size 0 flags 0 + 5 _XSEG size 0 flags 0 + 6 _GSINIT size 2E flags 0 + 7 _GSFINAL size 0 flags 0 + 8 _HOME size 0 flags 0 diff --git a/big_sprite/sprite.c b/big_sprite/sprite.c new file mode 100644 index 0000000..2342495 --- /dev/null +++ b/big_sprite/sprite.c @@ -0,0 +1,11 @@ +unsigned char sprite[] = +{ + 0xFF,0xFF,0x80,0x80,0x80,0x80,0x81,0x81, + 0x83,0x83,0x87,0x87,0x81,0x81,0x81,0x81, + 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, + 0x83,0x83,0x87,0x87,0x80,0x80,0xFF,0xFF, + 0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xC1,0xC1, + 0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1, + 0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1, + 0xE1,0xE1,0xF1,0xF1,0x01,0x01,0xFF,0xFF +}; diff --git a/big_sprite_animation/Makefile b/big_sprite_animation/Makefile new file mode 100644 index 0000000..c1cdaef --- /dev/null +++ b/big_sprite_animation/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = big_sprite_animation.gb +OBJS = big_sprite_animation.o + +all: $(BIN) + +$.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ diff --git a/big_sprite_animation/big_sprite_animation.c b/big_sprite_animation/big_sprite_animation.c new file mode 100644 index 0000000..61c2a3d --- /dev/null +++ b/big_sprite_animation/big_sprite_animation.c @@ -0,0 +1,21 @@ +#include +#include "cards.c" + +void main() { + SPRITES_8x16; + set_sprite_data(0, 8, cards); + set_sprite_tile(0, 0); + move_sprite(0, 75, 75); + set_sprite_tile(1, 2); + move_sprite(1, 75 + 8, 75); + SHOW_SPRITES; + + while(1) { + set_sprite_tile(0, 3); + set_sprite_tile(1, 5); + delay(500); + set_sprite_tile(0, 0); + set_sprite_tile(1, 2); + delay(500); + } +} diff --git a/big_sprite_animation/big_sprite_animation.gb b/big_sprite_animation/big_sprite_animation.gb new file mode 100644 index 0000000000000000000000000000000000000000..8b5db10c00051b2ec162aa8ae07fb8c080cd5f64 GIT binary patch literal 32768 zcmeIyZ)h8390%~{dG0Q4w*K2DBdm&dyESHsf@{Z6(IeePXD#bQYh~y3**Vc*yW7N z(I5RceA^Sxb%)GB5?4K$Sv?cKwe;|U|8a&)y-dIVwX<`kl57{=Bg3SERFd)?kAL_P zsk%MWy*M{_>&p0e=uCIjote4YSFVnaHE4~k&Bq(tnoqQn&5bsF{zdln$N^$0_I#D> zBK4B|SEYPUvDY?Y#kO5xC)uBpb@Q+gu?|~DtVZi4t;}knVOu#VxVHI!u8`zB-6NQ@ zjGht91*ZLC9kX84YOQ8%!U{&LYRzrg5zA{at<$1f*kTd$V`;^FN+gVuUeD?ShQ-Bq zL7}XWeU)cvA-mObj44DYTuY@waF-^`x12TaFMfZ$VreSGl7ewQrRa;oJJh1Fx>%ii z$vJVqG3UJTo}V_}^Rvc#e$sf)tJQ*2zI#tJQ-4bo=$`fid~d{%_@Mq`vR@ zwo|pLf9J7X{++wNp7t#BLn^4Ad+!E%4CM*^pv=^RX4uwfs!li3!I2*#SstzQl6;;1 zjV~7|rqf5)K6^UP`%jm>L0&cT`}8#?yVEqK>KgG>txBVrY z6n<9`}b~a zqFwDUdqsyi7Mh$Fqq(xCKx?2Q(4B~k%F+%}<8gb*x&6Ggor<3?yBc!BC?%h`_1K#} zSM02h#lA{6E;2d4ZLd(DG_~RX4DQ`pLR7AOCBOkHcQ1T7jleynO@1*bZ5Ww#og_EbIul>cjEewUz;#b zh!wUS=51(bcz9&w?ofp@gx6ogl-|)FiN`Y;N}YdlIP8=zUAlNN7v8;b`Q^*SD|I~{ z@9D`OsOjm6$8~*ZD8rlcJ@Riagsol@$Uy)C5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb o2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZaf&Y=f-}mRA7XSbN literal 0 HcmV?d00001 diff --git a/big_sprite_animation/big_sprite_animation.lst b/big_sprite_animation/big_sprite_animation.lst new file mode 100644 index 0000000..1e5d782 --- /dev/null +++ b/big_sprite_animation/big_sprite_animation.lst @@ -0,0 +1,290 @@ + 1 ;-------------------------------------------------------- + 2 ; File Created by SDCC : FreeWare ANSI-C Compiler + 3 ; Version 2.3.1 Wed Jul 8 08:05:34 2020 + 4 + 5 ;-------------------------------------------------------- + 6 .module lcc2202740 + 7 + 8 ;-------------------------------------------------------- + 9 ; Public variables in this module + 10 ;-------------------------------------------------------- + 11 .globl _main + 12 .globl _cards + 13 ;-------------------------------------------------------- + 14 ; special function registers + 15 ;-------------------------------------------------------- + 16 ;-------------------------------------------------------- + 17 ; special function bits + 18 ;-------------------------------------------------------- + 19 ;-------------------------------------------------------- + 20 ; internal ram data + 21 ;-------------------------------------------------------- + 22 .area _DATA + 0000 23 _cards:: + 0000 24 .ds 128 + 25 ;-------------------------------------------------------- + 26 ; overlayable items in internal ram + 27 ;-------------------------------------------------------- + 28 .area _OVERLAY + 29 ;-------------------------------------------------------- + 30 ; indirectly addressable internal ram data + 31 ;-------------------------------------------------------- + 32 .area _ISEG + 33 ;-------------------------------------------------------- + 34 ; bit data + 35 ;-------------------------------------------------------- + 36 .area _BSEG + 37 ;-------------------------------------------------------- + 38 ; external ram data + 39 ;-------------------------------------------------------- + 40 .area _XSEG + 41 ;-------------------------------------------------------- + 42 ; global & static initialisations + 43 ;-------------------------------------------------------- + 44 .area _GSINIT + 45 .area _GSFINAL + 46 .area _GSINIT + 47 ; big_sprite_animation.c 1 + 48 ; big_sprite_animation.c 22 + 49 ; genArrayInit + 50 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0000 21 00 00 51 ld hl,#_cards + 0003 CD 00 00 52 call __initrleblock + 0006 0C 53 .db 12 + 0007 FF FF 80 80 80 80 54 .db 0xFF, 0xFF, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81 + 81 81 + 000F 83 83 87 87 55 .db 0x83, 0x83, 0x87, 0x87 + 0013 F4 81 56 .db -12,0x81 + 0015 0C 57 .db 12 + 0016 83 83 87 87 80 80 58 .db 0x83, 0x83, 0x87, 0x87, 0x80, 0x80, 0xFF, 0xFF + FF FF + 001E FF FF 01 01 59 .db 0xFF, 0xFF, 0x01, 0x01 + 0022 EC C1 60 .db -20,0xC1 + 0024 14 61 .db 20 + 0025 E1 E1 F1 F1 01 01 62 .db 0xE1, 0xE1, 0xF1, 0xF1, 0x01, 0x01, 0xFF, 0xFF + FF FF + 002D FF FF 80 80 83 83 63 .db 0xFF, 0xFF, 0x80, 0x80, 0x83, 0x83, 0x87, 0x87 + 87 87 + 0035 8E 8E 8C 8C 64 .db 0x8E, 0x8E, 0x8C, 0x8C + 0039 F8 80 65 .db -8,0x80 + 003B 16 66 .db 22 + 003C 81 81 83 83 87 87 67 .db 0x81, 0x81, 0x83, 0x83, 0x87, 0x87, 0x8F, 0x8F + 8F 8F + 0044 80 80 FF FF FF FF 68 .db 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01 + 01 01 + 004C C1 C1 E1 E1 71 71 69 .db 0xC1, 0xC1, 0xE1, 0xE1, 0x71, 0x71 + 0052 FA 31 70 .db -6,0x31 + 0054 10 71 .db 16 + 0055 71 71 E1 E1 C1 C1 72 .db 0x71, 0x71, 0xE1, 0xE1, 0xC1, 0xC1, 0x81, 0x81 + 81 81 + 005D F1 F1 F1 F1 01 01 73 .db 0xF1, 0xF1, 0xF1, 0xF1, 0x01, 0x01, 0xFF, 0xFF + FF FF + 0065 00 74 .db 0 + 75 ;-------------------------------------------------------- + 76 ; Home + 77 ;-------------------------------------------------------- + 78 .area _HOME + 79 .area _CODE + 80 ;-------------------------------------------------------- + 81 ; code + 82 ;-------------------------------------------------------- + 83 .area _CODE + 84 ; big_sprite_animation.c 4 + 85 ; genLabel + 86 ; genFunction + 87 ; --------------------------------- + 88 ; Function main + 89 ; --------------------------------- + 0000 90 ___main_start: + 0000 91 _main: + 0000 E8 FD 92 lda sp,-3(sp) + 93 ; big_sprite_animation.c 5 + 94 ; genAssign + 0002 01 40 FF 95 ld bc,#0xFF40 + 96 ; genAssign + 97 ; AOP_STK for _main_sloc0_1_0 + 0005 F8 01 98 lda hl,1(sp) + 0007 36 40 99 ld (hl),#0x40 + 0009 23 100 inc hl + 000A 36 FF 101 ld (hl),#0xFF + 102 ; genPointerGet + 103 ; AOP_STK for _main_sloc0_1_0 + 104 ; AOP_STK for _main_sloc1_1_0 + 000C 2B 105 dec hl + 000D 5E 106 ld e,(hl) + 000E 23 107 inc hl + 000F 56 108 ld d,(hl) + 0010 1A 109 ld a,(de) + 0011 2B 110 dec hl + 0012 2B 111 dec hl + 112 ; genOr + 113 ; AOP_STK for _main_sloc1_1_0 + 0013 77 114 ld (hl),a + 0014 7F 115 ld a,a + 0015 F6 04 116 or a,#0x04 + 117 ; genAssign (pointer) + 0017 02 118 ld (bc),a + 119 ; big_sprite_animation.c 6 + 120 ; genIpush + 121 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0018 21 00 00 122 ld hl,#_cards + 001B E5 123 push hl + 124 ; genIpush + 001C 21 00 08 125 ld hl,#0x0800 + 001F E5 126 push hl + 127 ; genCall + 0020 CD 00 00 128 call _set_sprite_data + 0023 E8 04 129 lda sp,4(sp) + 130 ; big_sprite_animation.c 7 + 131 ; genIpush + 132 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0025 21 00 00 133 ld hl,#0x0000 + 0028 E5 134 push hl + 135 ; genCall + 0029 CD 00 00 136 call _set_sprite_tile + 002C E8 02 137 lda sp,2(sp) + 138 ; big_sprite_animation.c 8 + 139 ; genIpush + 140 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 002E 21 4B 4B 141 ld hl,#0x4B4B + 0031 E5 142 push hl + 143 ; genIpush + 0032 3E 00 144 ld a,#0x00 + 0034 F5 145 push af + 0035 33 146 inc sp + 147 ; genCall + 0036 CD 00 00 148 call _move_sprite + 0039 E8 03 149 lda sp,3(sp) + 150 ; big_sprite_animation.c 9 + 151 ; genIpush + 152 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 003B 21 01 02 153 ld hl,#0x0201 + 003E E5 154 push hl + 155 ; genCall + 003F CD 00 00 156 call _set_sprite_tile + 0042 E8 02 157 lda sp,2(sp) + 158 ; big_sprite_animation.c 10 + 159 ; genIpush + 160 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0044 21 53 4B 161 ld hl,#0x4B53 + 0047 E5 162 push hl + 163 ; genIpush + 0048 3E 01 164 ld a,#0x01 + 004A F5 165 push af + 004B 33 166 inc sp + 167 ; genCall + 004C CD 00 00 168 call _move_sprite + 004F E8 03 169 lda sp,3(sp) + 170 ; big_sprite_animation.c 11 + 171 ; genAssign + 0051 01 40 FF 172 ld bc,#0xFF40 + 173 ; genAssign + 174 ; AOP_STK for _main_sloc0_1_0 + 0054 F8 01 175 lda hl,1(sp) + 0056 36 40 176 ld (hl),#0x40 + 0058 23 177 inc hl + 0059 36 FF 178 ld (hl),#0xFF + 179 ; genPointerGet + 180 ; AOP_STK for _main_sloc0_1_0 + 181 ; AOP_STK for _main_sloc1_1_0 + 005B 2B 182 dec hl + 005C 5E 183 ld e,(hl) + 005D 23 184 inc hl + 005E 56 185 ld d,(hl) + 005F 1A 186 ld a,(de) + 0060 2B 187 dec hl + 0061 2B 188 dec hl + 189 ; genOr + 190 ; AOP_STK for _main_sloc1_1_0 + 0062 77 191 ld (hl),a + 0063 7F 192 ld a,a + 0064 F6 02 193 or a,#0x02 + 194 ; genAssign (pointer) + 0066 02 195 ld (bc),a + 196 ; big_sprite_animation.c 13 + 197 ; genLabel + 0067 198 00102$: + 199 ; big_sprite_animation.c 14 + 200 ; genIpush + 201 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0067 21 00 03 202 ld hl,#0x0300 + 006A E5 203 push hl + 204 ; genCall + 006B CD 00 00 205 call _set_sprite_tile + 006E E8 02 206 lda sp,2(sp) + 207 ; big_sprite_animation.c 15 + 208 ; genIpush + 209 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0070 21 01 05 210 ld hl,#0x0501 + 0073 E5 211 push hl + 212 ; genCall + 0074 CD 00 00 213 call _set_sprite_tile + 0077 E8 02 214 lda sp,2(sp) + 215 ; big_sprite_animation.c 16 + 216 ; genIpush + 217 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0079 21 F4 01 218 ld hl,#0x01F4 + 007C E5 219 push hl + 220 ; genCall + 007D CD 00 00 221 call _delay + 0080 E8 02 222 lda sp,2(sp) + 223 ; big_sprite_animation.c 17 + 224 ; genIpush + 225 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0082 21 00 00 226 ld hl,#0x0000 + 0085 E5 227 push hl + 228 ; genCall + 0086 CD 00 00 229 call _set_sprite_tile + 0089 E8 02 230 lda sp,2(sp) + 231 ; big_sprite_animation.c 18 + 232 ; genIpush + 233 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 008B 21 01 02 234 ld hl,#0x0201 + 008E E5 235 push hl + 236 ; genCall + 008F CD 00 00 237 call _set_sprite_tile + 0092 E8 02 238 lda sp,2(sp) + 239 ; big_sprite_animation.c 19 + 240 ; genIpush + 241 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0094 21 F4 01 242 ld hl,#0x01F4 + 0097 E5 243 push hl + 244 ; genCall + 0098 CD 00 00 245 call _delay + 009B E8 02 246 lda sp,2(sp) + 247 ; genGoto + 009D C3 67 00 248 jp 00102$ + 249 ; genLabel + 00A0 250 00104$: + 251 ; genEndFunction + 00A0 E8 03 252 lda sp,3(sp) + 00A2 C9 253 ret + 00A3 254 ___main_end: + 255 .area _CODE + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 1. + +Symbol Table + + 0 ___main_end 00A3 R + 0 ___main_start 0000 R + __initrleblock **** GX + 1 _cards 0000 GR + _delay **** GX + 0 _main 0000 GR + _move_sprite **** GX + _set_sprite_data **** GX + _set_sprite_tile **** GX + + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 2. + +Area Table + + 0 _CODE size A3 flags 0 + 1 _DATA size 80 flags 0 + 2 _OVERLAY size 0 flags 0 + 3 _ISEG size 0 flags 0 + 4 _BSEG size 0 flags 0 + 5 _XSEG size 0 flags 0 + 6 _GSINIT size 66 flags 0 + 7 _GSFINAL size 0 flags 0 + 8 _HOME size 0 flags 0 diff --git a/big_sprite_animation/cards.c b/big_sprite_animation/cards.c new file mode 100644 index 0000000..3b7c13c --- /dev/null +++ b/big_sprite_animation/cards.c @@ -0,0 +1,19 @@ +unsigned char cards[] = +{ + 0xFF,0xFF,0x80,0x80,0x80,0x80,0x81,0x81, + 0x83,0x83,0x87,0x87,0x81,0x81,0x81,0x81, + 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, + 0x83,0x83,0x87,0x87,0x80,0x80,0xFF,0xFF, + 0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xC1,0xC1, + 0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1, + 0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1, + 0xE1,0xE1,0xF1,0xF1,0x01,0x01,0xFF,0xFF, + 0xFF,0xFF,0x80,0x80,0x83,0x83,0x87,0x87, + 0x8E,0x8E,0x8C,0x8C,0x80,0x80,0x80,0x80, + 0x80,0x80,0x80,0x80,0x81,0x81,0x83,0x83, + 0x87,0x87,0x8F,0x8F,0x80,0x80,0xFF,0xFF, + 0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xE1,0xE1, + 0x71,0x71,0x31,0x31,0x31,0x31,0x31,0x31, + 0x71,0x71,0xE1,0xE1,0xC1,0xC1,0x81,0x81, + 0xF1,0xF1,0xF1,0xF1,0x01,0x01,0xFF,0xFF +}; diff --git a/blank/Makefile b/blank/Makefile new file mode 100644 index 0000000..f20e938 --- /dev/null +++ b/blank/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = blank.gb +OBJS = blank.o + +all: $(BIN) + +$.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ diff --git a/blank/blank.c b/blank/blank.c new file mode 100644 index 0000000..34f46e2 --- /dev/null +++ b/blank/blank.c @@ -0,0 +1,2 @@ +void main() { +} diff --git a/blank/blank.gb b/blank/blank.gb new file mode 100644 index 0000000000000000000000000000000000000000..e7f9c97d6b5af971e5f913fe322a5a939b36af4e GIT binary patch literal 32768 zcmeIwPe>F|90&0C-ma#p>p!Rk31=7-+YXi)M1O`|3#}~aPwOUTNi{$HX%?6I_^|pY0nP>%1ED ze4m-0>w7*ndQfjT8)#`JTMzABsZ3ll4iKT*Upz`KsmoDTij-y5&iu)$ZRduv&7N4l zY4tNhG>8)-AkOGJL^BQ9>Ilo->HAukqon8^X4Nt}&a42_zlkPsO0N*7byN5aQLN_+ z+Yr@)=^cXVA;ApmwJU8saS=vIw|8}eA>WX>9vfGqZ z?ow8{Nm=C{WtG#e-&0xTR8~2aRZhE@uf6r{)ZJ0#XU}^jVbt9|cHwe`<|}I|_m!2u zner~lC*ab&%QyDj +#include + +void main() { + printf("Hello World!"); + printf("\n\nPress Start"); +} diff --git a/hello_world/hello_world.gb b/hello_world/hello_world.gb new file mode 100644 index 0000000000000000000000000000000000000000..24e6f9bfe8c64b61666e2a85f21ab606df854c0e GIT binary patch literal 32768 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 +#include + +void printAndWait(char* text) { + printf(text); + delay(100); +} + +void main() { + while(1) { + switch(joypad()) { + case J_LEFT: + printAndWait("Left!\n"); + break; + case J_RIGHT: + printAndWait("Right!\n"); + break; + case J_UP: + printAndWait("Up!\n"); + break; + case J_DOWN: + printAndWait("Down!\n"); + break; + case J_START: + printAndWait("Start!\n"); + break; + case J_SELECT: + printAndWait("Select!\n"); + break; + case J_A: + printAndWait("A!\n"); + break; + case J_B: + printAndWait("B!\n"); + break; + } + } +} + diff --git a/input_state/input_state.gb b/input_state/input_state.gb new file mode 100644 index 0000000000000000000000000000000000000000..fcb1d86a5a3ce974f09208c87f73ea0b616cf43c GIT binary patch literal 32768 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 +#include + +void main() { + while(1) { + printf("Press Start\n\n"); + waitpad(J_START); + + printf("Please hold down A!\n\n"); + waitpad(J_A); + printf("Holding down A!\n\n"); + waitpadup(); + printf("Tired already?\n\n\n"); + } +} diff --git a/input_wait/input_wait.gb b/input_wait/input_wait.gb new file mode 100644 index 0000000000000000000000000000000000000000..dcf7e4eff33b9c47e4708b7c1b8ce93a8a72c09a GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/input_wait/input_wait.lst b/input_wait/input_wait.lst new file mode 100644 index 0000000..5b0917e --- /dev/null +++ b/input_wait/input_wait.lst @@ -0,0 +1,184 @@ + 1 ;-------------------------------------------------------- + 2 ; File Created by SDCC : FreeWare ANSI-C Compiler + 3 ; Version 2.3.1 Wed Jul 8 08:38:44 2020 + 4 + 5 ;-------------------------------------------------------- + 6 .module lcc2236500 + 7 + 8 ;-------------------------------------------------------- + 9 ; Public variables in this module + 10 ;-------------------------------------------------------- + 11 .globl _main + 12 ;-------------------------------------------------------- + 13 ; special function registers + 14 ;-------------------------------------------------------- + 15 ;-------------------------------------------------------- + 16 ; special function bits + 17 ;-------------------------------------------------------- + 18 ;-------------------------------------------------------- + 19 ; internal ram data + 20 ;-------------------------------------------------------- + 21 .area _DATA + 22 ;-------------------------------------------------------- + 23 ; overlayable items in internal ram + 24 ;-------------------------------------------------------- + 25 .area _OVERLAY + 26 ;-------------------------------------------------------- + 27 ; indirectly addressable internal ram data + 28 ;-------------------------------------------------------- + 29 .area _ISEG + 30 ;-------------------------------------------------------- + 31 ; bit data + 32 ;-------------------------------------------------------- + 33 .area _BSEG + 34 ;-------------------------------------------------------- + 35 ; external ram data + 36 ;-------------------------------------------------------- + 37 .area _XSEG + 38 ;-------------------------------------------------------- + 39 ; global & static initialisations + 40 ;-------------------------------------------------------- + 41 .area _GSINIT + 42 .area _GSFINAL + 43 .area _GSINIT + 44 ;-------------------------------------------------------- + 45 ; Home + 46 ;-------------------------------------------------------- + 47 .area _HOME + 48 .area _CODE + 49 ;-------------------------------------------------------- + 50 ; code + 51 ;-------------------------------------------------------- + 52 .area _CODE + 53 ; input_wait.c 4 + 54 ; genLabel + 55 ; genFunction + 56 ; --------------------------------- + 57 ; Function main + 58 ; --------------------------------- + 0000 59 ___main_start: + 0000 60 _main: + 61 + 62 ; input_wait.c 5 + 63 ; genLabel + 0000 64 00102$: + 65 ; input_wait.c 6 + 66 ; genIpush + 67 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0000 21 3D 00 68 ld hl,#__str_0 + 0003 E5 69 push hl + 70 ; genCall + 0004 CD 00 00 71 call _printf + 0007 E8 02 72 lda sp,2(sp) + 73 ; input_wait.c 7 + 74 ; genIpush + 75 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0009 3E 80 76 ld a,#0x80 + 000B F5 77 push af + 000C 33 78 inc sp + 79 ; genCall + 000D CD 00 00 80 call _waitpad + 0010 E8 01 81 lda sp,1(sp) + 82 ; input_wait.c 9 + 83 ; genIpush + 84 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0012 21 4B 00 85 ld hl,#__str_1 + 0015 E5 86 push hl + 87 ; genCall + 0016 CD 00 00 88 call _printf + 0019 E8 02 89 lda sp,2(sp) + 90 ; input_wait.c 10 + 91 ; genIpush + 92 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 001B 3E 10 93 ld a,#0x10 + 001D F5 94 push af + 001E 33 95 inc sp + 96 ; genCall + 001F CD 00 00 97 call _waitpad + 0022 E8 01 98 lda sp,1(sp) + 99 ; input_wait.c 11 + 100 ; genIpush + 101 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0024 21 61 00 102 ld hl,#__str_2 + 0027 E5 103 push hl + 104 ; genCall + 0028 CD 00 00 105 call _printf + 002B E8 02 106 lda sp,2(sp) + 107 ; input_wait.c 12 + 108 ; genCall + 109 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 002D CD 00 00 110 call _waitpadup + 111 ; input_wait.c 13 + 112 ; genIpush + 113 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0030 21 73 00 114 ld hl,#__str_3 + 0033 E5 115 push hl + 116 ; genCall + 0034 CD 00 00 117 call _printf + 0037 E8 02 118 lda sp,2(sp) + 119 ; genGoto + 0039 C3 00 00 120 jp 00102$ + 121 ; genLabel + 003C 122 00104$: + 123 ; genEndFunction + 124 + 003C C9 125 ret + 003D 126 ___main_end: + 003D 127 __str_0: + 003D 50 72 65 73 73 20 128 .ascii "Press Start" + 53 74 61 72 74 + 0048 0A 129 .db 0x0A + 0049 0A 130 .db 0x0A + 004A 00 131 .db 0x00 + 004B 132 __str_1: + 004B 50 6C 65 61 73 65 133 .ascii "Please hold down A!" + 20 68 6F 6C 64 20 + 64 6F 77 6E 20 41 + 21 + 005E 0A 134 .db 0x0A + 005F 0A 135 .db 0x0A + 0060 00 136 .db 0x00 + 0061 137 __str_2: + 0061 48 6F 6C 64 69 6E 138 .ascii "Holding down A!" + 67 20 64 6F 77 6E + 20 41 21 + 0070 0A 139 .db 0x0A + 0071 0A 140 .db 0x0A + 0072 00 141 .db 0x00 + 0073 142 __str_3: + 0073 54 69 72 65 64 20 143 .ascii "Tired already?" + 61 6C 72 65 61 64 + 79 3F + 0081 0A 144 .db 0x0A + 0082 0A 145 .db 0x0A + 0083 0A 146 .db 0x0A + 0084 00 147 .db 0x00 + 148 .area _CODE + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 1. + +Symbol Table + + 0 ___main_end 003D R + 0 ___main_start 0000 R + 0 __str_0 003D R + 0 __str_1 004B R + 0 __str_2 0061 R + 0 __str_3 0073 R + 0 _main 0000 GR + _printf **** GX + _waitpad **** GX + _waitpadup **** GX + + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 2. + +Area Table + + 0 _CODE size 85 flags 0 + 1 _DATA size 0 flags 0 + 2 _OVERLAY size 0 flags 0 + 3 _ISEG size 0 flags 0 + 4 _BSEG size 0 flags 0 + 5 _XSEG size 0 flags 0 + 6 _GSINIT size 0 flags 0 + 7 _GSFINAL size 0 flags 0 + 8 _HOME size 0 flags 0 diff --git a/move_sprite/Makefile b/move_sprite/Makefile new file mode 100644 index 0000000..b6cfd2f --- /dev/null +++ b/move_sprite/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = move_sprite.gb +OBJS = move_sprite.o + +all: $(BIN) + +$.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ diff --git a/move_sprite/move_sprite.c b/move_sprite/move_sprite.c new file mode 100644 index 0000000..cd2aecf --- /dev/null +++ b/move_sprite/move_sprite.c @@ -0,0 +1,36 @@ +#include +#include "ufo.c" + +void main() { + int x = 55; + int y = 75; + + SPRITES_8x8; + set_sprite_data(0, 0, ufo); + set_sprite_tile(0, 0); + move_sprite(0, x, y); + SHOW_SPRITES; + + while(1) { + if(joypad() & J_RIGHT) { + x++; + move_sprite(0, x, y); + delay(10); + } + if(joypad() & J_LEFT) { + x--; + move_sprite(0, x, y); + delay(10); + } + if(joypad() & J_UP) { + y--; + move_sprite(0, x, y); + delay(10); + } + if(joypad() & J_DOWN) { + y++; + move_sprite(0, x, y); + delay(10); + } + } +} diff --git a/move_sprite/move_sprite.gb b/move_sprite/move_sprite.gb new file mode 100644 index 0000000000000000000000000000000000000000..4b47200fb64c96ef59617d81b6ebd12697d694c4 GIT binary patch literal 32768 zcmeIyUu+ab90%~(zwH%T4oJ+!YTWIHdfp|9loVs?<|x<-jik|96H?j)O{lL*rJs^LnCQJx{iG(sj1I^Jr*<7k&Ef zB{RR7+27pGXJ<#Z*Iwa(xE*yKlhNScIN9}dV6Q8$p-Ei`G{;J)ueLs6Q6ua zYHrK~lXG*kLlYByZv<;@&&=HzIyW)ipuXDv%D#>l$$b~IY0sYQ>yc-PDce8PNFv!G zNPksJOR~MZ8q2mVhMmq(dPFk}E@C#Dd(7SDezn4EW5Tw4ixaDSKW-GHJTuH0T^#c( zX9PL*mf32)q}H1IRLu-T%uTAxv?FG{$*R33qlQg3V!SODjH^6h8FJin_Z~z2o_M`5 zwPXp6yOc&^agA-XVgk0sGzOGL+uyBpKI-@PpH3E7`Mj2p2}u}7gcQFLED0%A-qn^+ zNv^?g3n^}$#6MZqm=oGgCK-vFI>TDRPKi}^THFCeX*ro|IFW1kCtI$fldEE?n84D6 zuV?~&gj)YG<^6}r;c3nt*5XPz{s;d}B~9s}DG%{n^uAPueky%IOLFfpCKKNl-{x9y zHh+k7wmvQC#-}CS_Ozs%o|bgdx$4{(O6$mY+SB&jgaE&45mKO^fP%LAtBwFKNrHS~GNsE+sm2R=YdSX1y>GB1wTQBHYJwKw+4<>7|bQcbqc0rF>`~juKP`PL++*=O! zm&5jQ*jWy{%HiR1_*OX#mctKdNFlPmLT8Vz&*!gbIr^#smGm-gE)y*-$7PYY2I@j}tBdGV zx(!B%Qs#KydM+l~#+SmFWC_xp=%OA|C6i?6 z@0sML_^wvfz1nhmioGLF_jZ$ha=8tN}D)VNKT88c*2 z+~FampDFnCd4v)JG1B zgc#rR?t@J?n?D@-dAKm#JM>fY!6x#c18TiP3w;oP00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ t009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafK;S +#include "sprite.c" + +void main() { + SPRITES_8x8; + set_sprite_data(0, 8, sprite); + set_sprite_tile(0, 0); + move_sprite(0, 50, 50); + SHOW_SPRITES; +} diff --git a/small_sprite/small_sprite.gb b/small_sprite/small_sprite.gb new file mode 100644 index 0000000000000000000000000000000000000000..5ab1e83282db6e9a41b5ea4ae4a4d57bb1a7a862 GIT binary patch literal 32768 zcmeIyZ)h8390%~{p1Y<^*MIw?gjMmbM{7*pXg7+;JTje~QyfEU_GZgqjs_gWiO@po zx;S4r-$<3csc+U7`uc_ib@YW#nq}^GJ<%5;WvgCf7m}cm8tT%-=6uqnq@zXO3Bvav zzx&?v#AW*5TM-C+(>~6hs6oaLr#C4R##yQ_OuQtx!B=4`J ze++!--{CwHi&~Q;qxzPANG@j<^IIqUk4H%AnDE{2qoWI*WQX_;d7pHUPSUpXu}dG4 zt~(2{?9$TW^xRzZjab)j3rlyVugqQBr@eOU)gvP>kS&MMz2|u8xc(He75A4e*+T|f zJI*FJ2&sP)=MG-ii%yIb?xu5J(5R2#JgEn!pLT9vBS&my4$8S|}eGBh^j?P6|C z2)SipD5MU#!H62(8w`$L$X2N`!yJXQIo6bvlN3T6YeC9UWpL2Z$jUxzNXm)Z-1sM@ zIng*@NV2T>mS78JzuE82*SE+Ft#1%s`S#$IZw_Ah*5H+Q*?N~(-sP2ddF5S31E<1Y z+?=>3--~}Om-NB$10yGU)xfU9y92v+U%lyD;k!yyeXHk!ZyUm{D5W2BO1U-`@W#&Gda?UN@fyng(2r5MUyutNs79oGEM%48Q*Qji_Lhc89!>q%gy*Hj~t>DsD@7&My7Iut?;L+22`hT zgB6IZ+!LL%r}LR*p7}`rl|z|`YEImGNSais_{e;RloBO<_E!J;^`rB9>(`E<5N0Z- z;vwFNzIfmL9}!j~*5gu=Gn>)*DJflU9S$B1MuIU%pOss7k{+LTfSi4TA0sC-=UcBt z>oF~mDR0s|;rEzl{M7uccrZ)lN_(H!8=sYPb)J8kWq>s1NO+UhPyD+Ty0NbKcw<%8 zH}y4bp7syk@rL=z>g%ij1FhdV!z?28OpFdh=fK!mm$m08ft_eUP+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g z9Vl+*>Eal|aXtCR|Nr*PYzgTe~DWM4f0b@6E literal 0 HcmV?d00001 diff --git a/window/Makefile b/window/Makefile new file mode 100644 index 0000000..fdeba1f --- /dev/null +++ b/window/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = window.gb +OBJS = main.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ diff --git a/window/bg.c b/window/bg.c new file mode 100644 index 0000000..ca50244 --- /dev/null +++ b/window/bg.c @@ -0,0 +1,153 @@ +const unsigned char bg_tiledata[] = { +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, +0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3F,0xFF,0x1F,0xFF,0x3F,0xFF, +0x3F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFD,0xFF,0xFA,0xFF,0xF9,0xFF,0xD4,0xFF,0xAA,0xFF, +0x00,0xFF,0x80,0xFF,0x00,0xFF,0x80,0xFF,0x80,0xFF,0x20,0xFF,0x40,0xFF,0x20,0xFF, +0x00,0xFF,0x00,0xFF,0x02,0xFF,0x00,0xFF,0x23,0xFF,0x01,0xFF,0x20,0xFF,0x15,0xFF, +0x80,0xFF,0x00,0xFF,0x81,0xFF,0x81,0xFF,0x04,0xFF,0x84,0xFF,0x88,0xFF,0x40,0xFF, +0x9E,0xFF,0x82,0xFF,0x3B,0xFE,0x12,0xFF,0x00,0xFF,0x04,0xFB,0x00,0xFF,0x40,0xFF, +0xFC,0x03,0xED,0x12,0xBC,0x43,0xEE,0x11,0x38,0xC7,0x0E,0xF1,0x01,0xFE,0x00,0xFF, +0x4A,0xB5,0x55,0xAA,0x2A,0xD5,0xAA,0x55,0x95,0x6A,0xCA,0xB5,0x2A,0xD5,0xAA,0x55, +0xB6,0x49,0x5B,0xA4,0xD5,0x2A,0xAF,0x50,0x4B,0xB4,0xAA,0x55,0xB7,0x58,0xA1,0x5E, +0x1F,0xE0,0xCD,0x32,0x5F,0xA0,0xED,0x12,0xBF,0x40,0x8F,0x70,0x16,0xE9,0xD7,0x28, +0xFF,0x00,0xF7,0x08,0xBE,0x41,0xFF,0x00,0xDF,0x20,0xED,0x12,0xFF,0x00,0xFF,0x00, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, +0x78,0xFF,0xB8,0xFF,0x78,0xFF,0x78,0xFF,0x58,0xFF,0x58,0xFF,0x78,0xFF,0x58,0xFF, +0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFC,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFE,0xFF, +0x3F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1E,0xFF,0x1E,0xFF,0x1F,0xFF, +0xD4,0xFF,0xC4,0xFF,0x90,0xFF,0x04,0xFF,0x08,0xFF,0x08,0xFF,0x00,0xFF,0x08,0xFF, +0x01,0xFF,0x00,0xFF,0x01,0xFF,0x08,0xFF,0x01,0xFF,0x00,0xFF,0x02,0xFF,0x00,0xFF, +0x20,0xFF,0xD0,0xFF,0x40,0xFF,0x48,0xF7,0x82,0xFF,0x88,0xF7,0x80,0xFF,0x0A,0xF7, +0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x04,0xFB,0x01,0xFE,0x00,0xFF, +0x01,0xFE,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x02,0xFD,0x40,0xBF,0x20,0xDF,0x10,0xEF, +0x55,0xAA,0x55,0xAA,0xAD,0x5A,0x2A,0xD5,0x2A,0xD5,0x2D,0xD6,0x15,0xEA,0x15,0xEE, +0x57,0xA8,0x48,0xB7,0x35,0xCA,0x95,0x6A,0xAA,0x5D,0x33,0xDC,0x8A,0xF5,0xB2,0xFD, +0xB7,0x48,0x93,0x6C,0x6F,0xD0,0xB6,0x49,0x7B,0xC4,0x89,0x76,0xBE,0x61,0xC6,0x39, +0xDB,0x24,0xFF,0x00,0xFD,0x02,0xDF,0x20,0xF5,0x0A,0x5F,0xA0,0xD5,0x2A,0xBD,0x42, +0x78,0xFF,0x58,0xFF,0x78,0xFF,0xB8,0xFF,0x78,0xFF,0x38,0xFF,0x78,0xFF,0x28,0xFF, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x06,0xF9,0x02,0xFD, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xFD,0xFF,0xFF,0xFF,0x6F,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xEC,0xFF,0xFE,0xFF,0xCC,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1F,0xFF,0x1E,0xFF, +0x00,0xFF,0x00,0xFF,0x08,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x01,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x01,0xFF,0x00,0xFF,0x00,0xFF, +0x00,0xFF,0x84,0xFF,0x00,0xFF,0x00,0xFF,0x20,0xFF,0x00,0xFF,0x00,0xFF,0x80,0xFF, +0x00,0xFF,0x3B,0xC4,0x3C,0xC3,0x3F,0xC0,0x70,0x8F,0x7C,0x83,0x7D,0x82,0xFF,0x00, +0x10,0xEF,0x9F,0x60,0x51,0xAE,0x29,0xD6,0x60,0x9F,0x70,0x8F,0xFF,0x00,0xF7,0x08, +0x0C,0xF7,0x0B,0xF6,0x06,0xFD,0xA2,0xDD,0x0C,0xFB,0x8D,0x7B,0x42,0xFF,0x15,0xEB, +0x55,0xEA,0x78,0xFF,0x96,0xED,0xF4,0x6F,0x1B,0xFE,0xCB,0x7F,0xB5,0xFF,0xBD,0x6F, +0x15,0xEA,0xB6,0x5B,0xAA,0x55,0xA7,0x5A,0x1C,0xEB,0xA6,0x5B,0x5A,0xAD,0x8A,0x75, +0xC5,0x3A,0x25,0xDA,0xF5,0xAA,0x49,0xF6,0xB5,0xEA,0xF5,0x7E,0xBD,0xFA,0xBD,0x5E, +0x78,0xFF,0x58,0xFF,0x70,0xFF,0x58,0xFF,0x78,0xFF,0x59,0xFE,0xFB,0xFC,0x5B,0xFC, +0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0xFF,0x00,0xFF,0x00,0xFF,0x00, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x40,0xBF,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F, +0x00,0xFF,0x00,0xFF,0x1F,0xFF,0x07,0xFF,0x30,0xFF,0x2B,0xFC,0x1A,0xF5,0x15,0xFA, +0x1F,0xFF,0x1E,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,0xFF,0xF5,0x0A,0x11,0xEE,0xAD,0x52, +0x00,0xFF,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0x2B,0xFF,0xA9,0x57,0x13,0xEF,0x45,0xBB, +0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x80,0x7F, +0x04,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x22,0xDD,0x80,0xFF,0x01,0xFE,0x80,0xFF,0x10,0xFF,0x09,0xFE,0x00,0xFF,0x00,0xFF, +0xFE,0x01,0xFE,0x01,0xFD,0x02,0xFF,0x00,0xFD,0x02,0xFE,0x01,0xFD,0x02,0xFF,0x00, +0xD7,0x28,0x03,0xFC,0xDA,0x25,0xE9,0x16,0x04,0xFB,0x06,0xF9,0x00,0xFF,0x1E,0xFF, +0x1A,0xF7,0x9A,0x77,0x17,0xED,0x15,0xEA,0x14,0xFF,0x87,0xFD,0x04,0xFB,0x05,0xFA, +0xF5,0xFF,0xAA,0xFF,0xB5,0x5F,0xAD,0xD7,0x92,0x7F,0x5D,0xAB,0xB2,0x5D,0x1A,0xED, +0x5B,0xAD,0x49,0xB6,0x92,0x6D,0x4B,0xB4,0xB2,0x6D,0x5D,0xA6,0xA2,0x5F,0x56,0xAB, +0x55,0xFE,0x5D,0xAE,0xEB,0xBE,0x7D,0xAE,0x17,0xFC,0xFD,0xAE,0x95,0xFE,0xDD,0xFE, +0x73,0xFC,0x5B,0xFC,0xF3,0x7C,0xBB,0xFC,0xDB,0x7C,0x5B,0xFC,0xDB,0x7C,0x5B,0xFC, +0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F, +0x00,0xFF,0xD0,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0x80,0xFF,0x3F,0xC0,0xBF,0xC0, +0x00,0xFF,0x02,0xFF,0xFF,0xFF,0xFF,0xFF,0x95,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0x00, +0x00,0xFF,0x00,0xFF,0xF0,0xFF,0xF8,0xFF,0x30,0xFF,0x10,0xFF,0x98,0x7F,0xB0,0x5F, +0x1A,0xF5,0x13,0xFC,0x2A,0xF5,0x1A,0xF5,0x0E,0xF9,0x12,0xFD,0x26,0xF9,0x3A,0xFD, +0xA2,0x5D,0x48,0xB7,0xB5,0x4E,0xA9,0x56,0x94,0x6B,0xAB,0x55,0x8A,0x7F,0xAB,0x57, +0x21,0xDF,0xA9,0x57,0x0B,0xF5,0x40,0xBF,0x56,0xEB,0x11,0xFF,0xCB,0x75,0x50,0xFF, +0x00,0xFF,0x80,0xFF,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x80,0xFF, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x1F,0xFF,0x3B,0xC7, +0x80,0xFF,0x01,0xFE,0x03,0xFC,0x87,0xF8,0xBF,0xC0,0xBF,0xC0,0xBF,0xC0,0xDF,0xE0, +0xBF,0x7F,0xBF,0x7F,0xBF,0x7F,0x3F,0xFF,0x6D,0x97,0x6F,0x97,0xDE,0x27,0xF7,0x08, +0x35,0xEA,0x05,0xFA,0x39,0xEF,0x8C,0x7B,0x6A,0xD5,0x17,0xED,0xA8,0x57,0xCF,0x35, +0x4A,0xB5,0x3B,0xD5,0x92,0x6D,0xAA,0x55,0x6A,0xB5,0x52,0xBD,0x2B,0xD5,0x42,0xFD, +0x95,0x6F,0x56,0xAB,0xAB,0x5F,0x9D,0x6B,0xA7,0x5B,0x35,0xEF,0xDF,0x6B,0x8D,0x7B, +0xB5,0xFE,0xDF,0xFE,0x75,0xFE,0xBF,0xFE,0xF5,0xFE,0x7D,0xBE,0x6D,0xFA,0x7B,0xDC, +0x7B,0xFC,0x9B,0xFC,0x7B,0xFC,0x5B,0xFC,0x7B,0xFC,0x5B,0xFC,0x7B,0xFC,0x5B,0xFC, +0xE0,0x1F,0xE0,0x1F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F, +0xBF,0xC0,0xBF,0xC0,0xBE,0xC1,0x8F,0xF0,0xB5,0xCA,0xAA,0xD5,0xAA,0xD5,0xAA,0xD7, +0x7F,0x80,0xBF,0xC0,0x9F,0xE0,0xEF,0xB0,0x37,0xD8,0x27,0xD8,0xAF,0x50,0xAF,0xD0, +0xA8,0x5F,0x88,0x7F,0xD0,0x3F,0xA8,0x5F,0xB8,0x5F,0xC8,0x3F,0xB8,0x5F,0x88,0x7F, +0x0A,0xF5,0x2B,0xFC,0x12,0xFD,0x1B,0xFC,0x12,0xFD,0x2B,0xFC,0x12,0xFD,0x2B,0xFC, +0x45,0xFF,0x26,0xFD,0xA9,0xDE,0xA5,0xDF,0x4D,0xBE,0x54,0xEF,0x55,0xFF,0x4E,0xBB, +0x2B,0xF5,0xB2,0xFD,0xA9,0xF7,0x7B,0xF5,0x81,0xFF,0xFA,0x75,0x51,0xFF,0xBA,0xF5, +0x00,0xFF,0x80,0xFF,0x01,0xFE,0x81,0xFE,0x03,0xFC,0x83,0xFC,0x83,0xFC,0x83,0xFC, +0xFF,0x03,0xFD,0x03,0x7E,0x81,0x5E,0xA1,0xFF,0x00,0xBC,0x43,0x79,0x86,0xFD,0x02, +0xEF,0xF0,0xF7,0xF8,0xFF,0xF8,0xFB,0xFC,0xF9,0x7E,0x3D,0xFE,0x7F,0xBE,0x3E,0xFF, +0x61,0x9F,0x15,0xFB,0xF1,0x1E,0xFC,0x1F,0xF5,0x1A,0xED,0x1E,0xDA,0x3D,0xFC,0x1F, +0xA8,0x57,0x6D,0xDA,0x49,0xBF,0xD6,0xAD,0x34,0xEF,0x57,0xAD,0xC8,0x77,0xDE,0x75, +0x5B,0xEF,0x57,0xED,0x1F,0xFB,0xA5,0xDF,0x1D,0xFA,0xD6,0x6D,0x5A,0xB5,0xDF,0xAA, +0x69,0xF6,0x75,0xDA,0x93,0xEC,0xDB,0x74,0x55,0xAA,0x77,0xA8,0xAB,0x54,0x6F,0xB0, +0x7B,0xFC,0x9B,0xFC,0x7B,0xFC,0x58,0xFF,0xD8,0xFF,0x70,0xFF,0xB8,0xFF,0xD8,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xF0,0x0F,0xF0,0x0F,0xC0,0x3F,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x97,0xEC,0xA2,0xDF,0x94,0xEF,0xAB,0xD4,0x9A,0xEF,0xAA,0xD7,0x9A,0xED,0xD6,0xEF, +0x57,0xA8,0xA7,0x58,0x7B,0xAC,0x23,0xFC,0xFB,0x74,0x51,0xFE,0xAB,0x54,0x89,0x76, +0xC8,0x3F,0xC8,0x3F,0x98,0x7F,0xC8,0x3F,0xA8,0x5F,0xC8,0x3F,0x98,0x7F,0xE8,0x1F, +0x12,0xFD,0x2B,0xFC,0x12,0xFD,0x1B,0xFC,0x15,0xFA,0x39,0xFE,0x16,0xF9,0x1B,0xFC, +0x31,0xEF,0xD5,0x3A,0xA8,0x57,0x4B,0xB4,0xF4,0x0B,0x55,0xAA,0xB5,0x4A,0xDA,0x25, +0xA1,0xFF,0xBB,0xF5,0xA0,0xFF,0x4A,0xB5,0xAB,0x55,0x50,0xAF,0x53,0xAD,0xA8,0x57, +0x07,0xF8,0x83,0xFC,0x86,0xF9,0x83,0xFC,0x85,0xFA,0x87,0xF8,0x83,0xFC,0x85,0xFA, +0x72,0x8D,0xF2,0x0D,0xF8,0x07,0xD4,0x2B,0xEF,0x19,0xF6,0x09,0xFF,0x00,0xFD,0x02, +0x3F,0xFF,0xBF,0x7F,0x9F,0x7F,0x3F,0xFF,0xDF,0x7F,0xDF,0x7F,0x8F,0xFF,0xAF,0x7F, +0x7F,0x80,0x7F,0x80,0xBF,0xC0,0xBF,0xC0,0xDF,0xE0,0x6F,0xF0,0xE7,0xF8,0x7F,0xF8, +0xFF,0x00,0xFE,0x01,0xFD,0x02,0xFD,0x02,0xFA,0x05,0xF9,0x06,0xF1,0x0E,0xF3,0x0C, +0xDA,0x3D,0x9D,0x7E,0x7F,0xBC,0x7D,0xBE,0x7D,0xBE,0x5D,0xFE,0x6F,0xFC,0xE9,0x7E, +0xA2,0x5F,0xFF,0x03,0x7A,0x85,0xFD,0x02,0xFF,0x00,0xFF,0x00,0x7F,0x80,0xFF,0x00, +0x54,0xEB,0xFF,0x00,0xFF,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, +0x78,0xFF,0x58,0xFF,0xF0,0xFF,0x38,0xFF,0xF8,0xFF,0x38,0xFF,0xF8,0xFF,0x98,0xFF, +0x93,0xEE,0xEE,0xD3,0x8B,0xF4,0xD0,0xEF,0xAA,0xD5,0xCA,0xF5,0x92,0xED,0x8A,0xF5, +0x65,0xDA,0x35,0xFA,0xAB,0x74,0xD5,0x2A,0x55,0xAA,0x94,0x6B,0xAA,0x55,0x95,0x6A, +0x88,0x7F,0xC8,0x3F,0xC8,0x3F,0x48,0xBF,0x88,0x7F,0xE8,0x1F,0x88,0x7F,0x48,0xBF, +0x12,0xFD,0x12,0xFD,0x1B,0xFC,0x0B,0xFF,0x2F,0xFF,0x16,0xFF,0x00,0xFF,0x00,0xFF, +0xAA,0x55,0xEA,0x15,0x10,0xEF,0x7F,0xFF,0xFF,0xFF,0xBA,0xFF,0x00,0xFF,0x00,0xFF, +0x52,0xAD,0xAA,0x55,0x57,0xFF,0xFF,0xFF,0xFE,0xFF,0xA8,0xFF,0x04,0xFF,0x00,0xFF, +0x83,0xFC,0x81,0xFE,0x41,0xFE,0x83,0xFC,0x83,0xFC,0x01,0xFE,0x01,0xFE,0x01,0xFE, +0x4F,0xBF,0xC7,0x3E,0xCF,0x3F,0xE6,0x1F,0xD7,0x2F,0xD6,0x2F,0xE7,0x1F,0xA6,0x5F, +0xD7,0xF8,0xFF,0xF0,0xEF,0xB0,0xEF,0xF0,0x7F,0xD0,0xBF,0xC8,0x7F,0x82,0xFF,0x00, +0xE7,0x18,0xE1,0x1F,0xEF,0x1F,0xAD,0x5F,0xD7,0x3F,0x9B,0x7F,0x3F,0xFB,0x3F,0xFF, +0x7F,0xFC,0xD9,0xFE,0xFB,0xEC,0xF9,0xFE,0xBA,0xED,0xE9,0xFE,0xF5,0x7E,0xF9,0xFE, +0x7F,0x80,0xFF,0x00,0x4A,0xB5,0xFF,0x3F,0xBF,0x7F,0xFF,0x3F,0x7F,0xBF,0x80,0x7F, +0xFF,0x00,0xFF,0x00,0x5F,0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x10,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF, +0x70,0xFF,0xF8,0xFF,0xB8,0xFF,0xF8,0xFF,0xD8,0xFF,0xF0,0xFF,0xF8,0xFF,0x50,0xFF, +0x00,0xFF,0x00,0xFF,0x04,0xFF,0x00,0xFF,0x04,0xFF,0x00,0xFF,0x2A,0xFF,0x00,0xFF, +0xB2,0xDD,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0xFF, +0x44,0xBB,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x6A,0xFF,0x01,0xFF, +0x18,0xFF,0x18,0xFF,0xF8,0xFF,0xF8,0xFF,0xF8,0xFF,0xC0,0xFF,0x00,0xFF,0x00,0xFF, +0x08,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0x3F,0xC0,0x7F,0x80,0x7F,0x80,0x3F,0xC0,0x3F,0xC0, +0xD5,0x2E,0xC3,0x3C,0x87,0x78,0x9F,0x60,0x7F,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x00, +0xF8,0x07,0xFF,0x00,0xFA,0x05,0xFF,0x01,0xE9,0x17,0xFD,0x03,0xAB,0x57,0xDB,0x27, +0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xBD,0xFE,0xF5,0xFE,0xFD,0xBE,0xFD,0xFE,0xFC,0xFF,0xFD,0xFE,0xF9,0xFE,0xF0,0xFF, +0x40,0xBF,0x40,0xBF,0x80,0x7F,0x80,0x7F,0xC0,0x3F,0x40,0xBF,0x80,0x7F,0xC2,0x3F, +0x10,0xFF,0x14,0xFF,0x80,0xFF,0x28,0xFF,0x10,0xFF,0x88,0xFF,0x00,0xFF,0x00,0xFF, +0x1F,0xE0,0x1F,0xE0,0x1F,0xE0,0x0F,0xF0,0x0E,0xF1,0x07,0xF8,0x07,0xF8,0x03,0xFC, +0xFF,0x00,0xFF,0x00,0xFE,0x01,0xFE,0x01,0xF5,0x0A,0xF5,0x0A,0xD8,0x27,0xEA,0x15, +0x6F,0x97,0xA7,0x5F,0xAF,0x5F,0x9F,0x7F,0x5F,0xBF,0x3F,0xFF,0xBF,0x7F,0x7F,0xFF, +0xF3,0xFC,0xF0,0xFF,0xE9,0xFE,0xF0,0xFF,0xE1,0xFE,0xF8,0xFF,0xF1,0xFE,0xF8,0xFF, +0x94,0x7F,0xDF,0x3F,0x9F,0x7F,0xDF,0x3F,0x5F,0xBF,0x5F,0xBF,0x7F,0x9F,0x4F,0xBF, +0x07,0xF8,0x01,0xFE,0x04,0xFF,0x06,0xFF,0x07,0xFF,0x07,0xFF,0x07,0xFF,0x03,0xFF, +0x84,0x7B,0x45,0xBB,0x13,0xEF,0x07,0xFF,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF, +0xF9,0xFE,0xFC,0xFF,0xF9,0xFE,0xFE,0xFF,0xFC,0xFF,0xFF,0xFF,0xFD,0xFF,0xFD,0xFF, +0x6F,0x9F,0x2F,0xDF,0x57,0xAF,0x57,0xAF,0x17,0xEF,0x17,0xEF,0x2B,0xD7,0x8B,0xF7, +0x0F,0xFF,0x07,0xFF,0x0F,0xFF,0x07,0xFF,0x0F,0xFF,0x0F,0xFF,0x5F,0xFF,0x0F,0xF7, +0xAB,0xD7,0xCB,0xF7,0xDB,0xE7,0x4B,0xF7,0xCD,0xF3,0xC5,0xFB,0xC9,0x77,0xED,0xF3, +0x1F,0xFE,0x0F,0xFF,0x1B,0xFF,0x0F,0xFF,0x1F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1F,0xEF, +0xE5,0xFB,0xF5,0xFB,0xF5,0xFB,0xF5,0xFB,0xE4,0xFB,0xF2,0xFD,0xF2,0xFD,0xF0,0xFF, +0x3F,0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xFF,0x5F,0xFF,0x3F,0xFF,0x3F,0xFF,0x1F,0xFF, +0xF2,0xFD,0xF8,0xFF,0xF8,0xFF,0xFA,0xFD,0xF8,0xFF,0xF8,0xFF,0xF9,0xFE,0xFC,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF}; diff --git a/window/border.c b/window/border.c new file mode 100644 index 0000000..7b542b6 --- /dev/null +++ b/window/border.c @@ -0,0 +1,21 @@ +const unsigned char border[] = +{ + 0x00,0x00,0x1F,0x1F,0x20,0x20,0x4F,0x4F, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x4F,0x4F,0x20,0x20,0x1F,0x1F,0x00,0x00, + 0x00,0x00,0xF8,0xF8,0x04,0x04,0xF2,0xF2, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0xF2,0xF2,0x04,0x04,0xF8,0xF8,0x00,0x00, + 0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; diff --git a/window/main.c b/window/main.c new file mode 100644 index 0000000..108bf26 --- /dev/null +++ b/window/main.c @@ -0,0 +1,16 @@ +#include +#include "bg.c" +#include "bg.map" +#include "border.c" +#include "window.c" + +void main() { + set_bkg_data(0, 152, bg_tiledata); + set_bkg_tiles(0, 0, 20, 18, bg_tilemap); + SHOW_BKG; + + set_win_data(152, 9, border); + set_win_tiles(0, 0, 20, 4, window); + move_win(7, 112); + SHOW_WIN; +} diff --git a/window/main.lst b/window/main.lst new file mode 100644 index 0000000..59a0b85 --- /dev/null +++ b/window/main.lst @@ -0,0 +1,3232 @@ + 1 ;-------------------------------------------------------- + 2 ; File Created by SDCC : FreeWare ANSI-C Compiler + 3 ; Version 2.3.1 Wed Jul 8 08:59:48 2020 + 4 + 5 ;-------------------------------------------------------- + 6 .module lcc2264200 + 7 + 8 ;-------------------------------------------------------- + 9 ; Public variables in this module + 10 ;-------------------------------------------------------- + 11 .globl _main + 12 .globl _window + 13 .globl _border + 14 .globl _bg_tilemap + 15 .globl _bg_tiledata + 16 ;-------------------------------------------------------- + 17 ; special function registers + 18 ;-------------------------------------------------------- + 19 ;-------------------------------------------------------- + 20 ; special function bits + 21 ;-------------------------------------------------------- + 22 ;-------------------------------------------------------- + 23 ; internal ram data + 24 ;-------------------------------------------------------- + 25 .area _DATA + 26 ;-------------------------------------------------------- + 27 ; overlayable items in internal ram + 28 ;-------------------------------------------------------- + 29 .area _OVERLAY + 30 ;-------------------------------------------------------- + 31 ; indirectly addressable internal ram data + 32 ;-------------------------------------------------------- + 33 .area _ISEG + 34 ;-------------------------------------------------------- + 35 ; bit data + 36 ;-------------------------------------------------------- + 37 .area _BSEG + 38 ;-------------------------------------------------------- + 39 ; external ram data + 40 ;-------------------------------------------------------- + 41 .area _XSEG + 42 ;-------------------------------------------------------- + 43 ; global & static initialisations + 44 ;-------------------------------------------------------- + 45 .area _GSINIT + 46 .area _GSFINAL + 47 .area _GSINIT + 48 ;-------------------------------------------------------- + 49 ; Home + 50 ;-------------------------------------------------------- + 51 .area _HOME + 52 .area _CODE + 53 ;-------------------------------------------------------- + 54 ; code + 55 ;-------------------------------------------------------- + 56 .area _CODE + 57 ; main.c 7 + 58 ; genLabel + 59 ; genFunction + 60 ; --------------------------------- + 61 ; Function main + 62 ; --------------------------------- + 0000 63 ___main_start: + 0000 64 _main: + 0000 E8 FD 65 lda sp,-3(sp) + 66 ; main.c 8 + 67 ; genIpush + 68 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0002 21 76 00 69 ld hl,#_bg_tiledata + 0005 E5 70 push hl + 71 ; genIpush + 0006 21 00 98 72 ld hl,#0x9800 + 0009 E5 73 push hl + 74 ; genCall + 000A CD 00 00 75 call _set_bkg_data + 000D E8 04 76 lda sp,4(sp) + 77 ; main.c 9 + 78 ; genIpush + 79 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 000F 21 F6 09 80 ld hl,#_bg_tilemap + 0012 E5 81 push hl + 82 ; genIpush + 0013 21 14 12 83 ld hl,#0x1214 + 0016 E5 84 push hl + 85 ; genIpush + 0017 21 00 00 86 ld hl,#0x0000 + 001A E5 87 push hl + 88 ; genCall + 001B CD 00 00 89 call _set_bkg_tiles + 001E E8 06 90 lda sp,6(sp) + 91 ; main.c 10 + 92 ; genAssign + 0020 01 40 FF 93 ld bc,#0xFF40 + 94 ; genAssign + 95 ; AOP_STK for _main_sloc0_1_0 + 0023 F8 01 96 lda hl,1(sp) + 0025 36 40 97 ld (hl),#0x40 + 0027 23 98 inc hl + 0028 36 FF 99 ld (hl),#0xFF + 100 ; genPointerGet + 101 ; AOP_STK for _main_sloc0_1_0 + 102 ; AOP_STK for _main_sloc1_1_0 + 002A 2B 103 dec hl + 002B 5E 104 ld e,(hl) + 002C 23 105 inc hl + 002D 56 106 ld d,(hl) + 002E 1A 107 ld a,(de) + 002F 2B 108 dec hl + 0030 2B 109 dec hl + 110 ; genOr + 111 ; AOP_STK for _main_sloc1_1_0 + 0031 77 112 ld (hl),a + 0032 7F 113 ld a,a + 0033 F6 01 114 or a,#0x01 + 115 ; genAssign (pointer) + 0035 02 116 ld (bc),a + 117 ; main.c 12 + 118 ; genIpush + 119 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0036 21 5E 0B 120 ld hl,#_border + 0039 E5 121 push hl + 122 ; genIpush + 003A 21 98 09 123 ld hl,#0x0998 + 003D E5 124 push hl + 125 ; genCall + 003E CD 00 00 126 call _set_win_data + 0041 E8 04 127 lda sp,4(sp) + 128 ; main.c 13 + 129 ; genIpush + 130 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0043 21 EE 0B 131 ld hl,#_window + 0046 E5 132 push hl + 133 ; genIpush + 0047 21 14 04 134 ld hl,#0x0414 + 004A E5 135 push hl + 136 ; genIpush + 004B 21 00 00 137 ld hl,#0x0000 + 004E E5 138 push hl + 139 ; genCall + 004F CD 00 00 140 call _set_win_tiles + 0052 E8 06 141 lda sp,6(sp) + 142 ; main.c 14 + 143 ; genIpush + 144 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0 + 0054 21 07 70 145 ld hl,#0x7007 + 0057 E5 146 push hl + 147 ; genCall + 0058 CD 00 00 148 call _move_win + 005B E8 02 149 lda sp,2(sp) + 150 ; main.c 15 + 151 ; genAssign + 005D 01 40 FF 152 ld bc,#0xFF40 + 153 ; genAssign + 154 ; AOP_STK for _main_sloc0_1_0 + 0060 F8 01 155 lda hl,1(sp) + 0062 36 40 156 ld (hl),#0x40 + 0064 23 157 inc hl + 0065 36 FF 158 ld (hl),#0xFF + 159 ; genPointerGet + 160 ; AOP_STK for _main_sloc0_1_0 + 161 ; AOP_STK for _main_sloc1_1_0 + 0067 2B 162 dec hl + 0068 5E 163 ld e,(hl) + 0069 23 164 inc hl + 006A 56 165 ld d,(hl) + 006B 1A 166 ld a,(de) + 006C 2B 167 dec hl + 006D 2B 168 dec hl + 169 ; genOr + 170 ; AOP_STK for _main_sloc1_1_0 + 006E 77 171 ld (hl),a + 006F 7F 172 ld a,a + 0070 F6 20 173 or a,#0x20 + 174 ; genAssign (pointer) + 0072 02 175 ld (bc),a + 176 ; genLabel + 0073 177 00101$: + 178 ; genEndFunction + 0073 E8 03 179 lda sp,3(sp) + 0075 C9 180 ret + 0076 181 ___main_end: + 0076 182 _bg_tiledata: + 0076 00 183 .db #0x00 + 0077 00 184 .db #0x00 + 0078 00 185 .db #0x00 + 0079 00 186 .db #0x00 + 007A 00 187 .db #0x00 + 007B 00 188 .db #0x00 + 007C 00 189 .db #0x00 + 007D 00 190 .db #0x00 + 007E 00 191 .db #0x00 + 007F 00 192 .db #0x00 + 0080 00 193 .db #0x00 + 0081 00 194 .db #0x00 + 0082 00 195 .db #0x00 + 0083 00 196 .db #0x00 + 0084 00 197 .db #0x00 + 0085 00 198 .db #0x00 + 0086 FF 199 .db #0xFF + 0087 FF 200 .db #0xFF + 0088 FF 201 .db #0xFF + 0089 FF 202 .db #0xFF + 008A FF 203 .db #0xFF + 008B FF 204 .db #0xFF + 008C FF 205 .db #0xFF + 008D FF 206 .db #0xFF + 008E FF 207 .db #0xFF + 008F FF 208 .db #0xFF + 0090 FF 209 .db #0xFF + 0091 FF 210 .db #0xFF + 0092 FF 211 .db #0xFF + 0093 FF 212 .db #0xFF + 0094 FF 213 .db #0xFF + 0095 FF 214 .db #0xFF + 0096 FC 215 .db #0xFC + 0097 FF 216 .db #0xFF + 0098 FE 217 .db #0xFE + 0099 FF 218 .db #0xFF + 009A FC 219 .db #0xFC + 009B FF 220 .db #0xFF + 009C FE 221 .db #0xFE + 009D FF 222 .db #0xFF + 009E FC 223 .db #0xFC + 009F FF 224 .db #0xFF + 00A0 FE 225 .db #0xFE + 00A1 FF 226 .db #0xFF + 00A2 FC 227 .db #0xFC + 00A3 FF 228 .db #0xFF + 00A4 FE 229 .db #0xFE + 00A5 FF 230 .db #0xFF + 00A6 00 231 .db #0x00 + 00A7 FF 232 .db #0xFF + 00A8 00 233 .db #0x00 + 00A9 FF 234 .db #0xFF + 00AA 00 235 .db #0x00 + 00AB FF 236 .db #0xFF + 00AC 00 237 .db #0x00 + 00AD FF 238 .db #0xFF + 00AE 00 239 .db #0x00 + 00AF FF 240 .db #0xFF + 00B0 00 241 .db #0x00 + 00B1 FF 242 .db #0xFF + 00B2 00 243 .db #0x00 + 00B3 FF 244 .db #0xFF + 00B4 00 245 .db #0x00 + 00B5 FF 246 .db #0xFF + 00B6 3E 247 .db #0x3E + 00B7 FF 248 .db #0xFF + 00B8 3E 249 .db #0x3E + 00B9 FF 250 .db #0xFF + 00BA 3E 251 .db #0x3E + 00BB FF 252 .db #0xFF + 00BC 3E 253 .db #0x3E + 00BD FF 254 .db #0xFF + 00BE 3E 255 .db #0x3E + 00BF FF 256 .db #0xFF + 00C0 3F 257 .db #0x3F + 00C1 FF 258 .db #0xFF + 00C2 1F 259 .db #0x1F + 00C3 FF 260 .db #0xFF + 00C4 3F 261 .db #0x3F + 00C5 FF 262 .db #0xFF + 00C6 3F 263 .db #0x3F + 00C7 FF 264 .db #0xFF + 00C8 7F 265 .db #0x7F + 00C9 FF 266 .db #0xFF + 00CA 7F 267 .db #0x7F + 00CB FF 268 .db #0xFF + 00CC FD 269 .db #0xFD + 00CD FF 270 .db #0xFF + 00CE FA 271 .db #0xFA + 00CF FF 272 .db #0xFF + 00D0 F9 273 .db #0xF9 + 00D1 FF 274 .db #0xFF + 00D2 D4 275 .db #0xD4 + 00D3 FF 276 .db #0xFF + 00D4 AA 277 .db #0xAA + 00D5 FF 278 .db #0xFF + 00D6 00 279 .db #0x00 + 00D7 FF 280 .db #0xFF + 00D8 80 281 .db #0x80 + 00D9 FF 282 .db #0xFF + 00DA 00 283 .db #0x00 + 00DB FF 284 .db #0xFF + 00DC 80 285 .db #0x80 + 00DD FF 286 .db #0xFF + 00DE 80 287 .db #0x80 + 00DF FF 288 .db #0xFF + 00E0 20 289 .db #0x20 + 00E1 FF 290 .db #0xFF + 00E2 40 291 .db #0x40 + 00E3 FF 292 .db #0xFF + 00E4 20 293 .db #0x20 + 00E5 FF 294 .db #0xFF + 00E6 00 295 .db #0x00 + 00E7 FF 296 .db #0xFF + 00E8 00 297 .db #0x00 + 00E9 FF 298 .db #0xFF + 00EA 02 299 .db #0x02 + 00EB FF 300 .db #0xFF + 00EC 00 301 .db #0x00 + 00ED FF 302 .db #0xFF + 00EE 23 303 .db #0x23 + 00EF FF 304 .db #0xFF + 00F0 01 305 .db #0x01 + 00F1 FF 306 .db #0xFF + 00F2 20 307 .db #0x20 + 00F3 FF 308 .db #0xFF + 00F4 15 309 .db #0x15 + 00F5 FF 310 .db #0xFF + 00F6 80 311 .db #0x80 + 00F7 FF 312 .db #0xFF + 00F8 00 313 .db #0x00 + 00F9 FF 314 .db #0xFF + 00FA 81 315 .db #0x81 + 00FB FF 316 .db #0xFF + 00FC 81 317 .db #0x81 + 00FD FF 318 .db #0xFF + 00FE 04 319 .db #0x04 + 00FF FF 320 .db #0xFF + 0100 84 321 .db #0x84 + 0101 FF 322 .db #0xFF + 0102 88 323 .db #0x88 + 0103 FF 324 .db #0xFF + 0104 40 325 .db #0x40 + 0105 FF 326 .db #0xFF + 0106 9E 327 .db #0x9E + 0107 FF 328 .db #0xFF + 0108 82 329 .db #0x82 + 0109 FF 330 .db #0xFF + 010A 3B 331 .db #0x3B + 010B FE 332 .db #0xFE + 010C 12 333 .db #0x12 + 010D FF 334 .db #0xFF + 010E 00 335 .db #0x00 + 010F FF 336 .db #0xFF + 0110 04 337 .db #0x04 + 0111 FB 338 .db #0xFB + 0112 00 339 .db #0x00 + 0113 FF 340 .db #0xFF + 0114 40 341 .db #0x40 + 0115 FF 342 .db #0xFF + 0116 FC 343 .db #0xFC + 0117 03 344 .db #0x03 + 0118 ED 345 .db #0xED + 0119 12 346 .db #0x12 + 011A BC 347 .db #0xBC + 011B 43 348 .db #0x43 + 011C EE 349 .db #0xEE + 011D 11 350 .db #0x11 + 011E 38 351 .db #0x38 + 011F C7 352 .db #0xC7 + 0120 0E 353 .db #0x0E + 0121 F1 354 .db #0xF1 + 0122 01 355 .db #0x01 + 0123 FE 356 .db #0xFE + 0124 00 357 .db #0x00 + 0125 FF 358 .db #0xFF + 0126 4A 359 .db #0x4A + 0127 B5 360 .db #0xB5 + 0128 55 361 .db #0x55 + 0129 AA 362 .db #0xAA + 012A 2A 363 .db #0x2A + 012B D5 364 .db #0xD5 + 012C AA 365 .db #0xAA + 012D 55 366 .db #0x55 + 012E 95 367 .db #0x95 + 012F 6A 368 .db #0x6A + 0130 CA 369 .db #0xCA + 0131 B5 370 .db #0xB5 + 0132 2A 371 .db #0x2A + 0133 D5 372 .db #0xD5 + 0134 AA 373 .db #0xAA + 0135 55 374 .db #0x55 + 0136 B6 375 .db #0xB6 + 0137 49 376 .db #0x49 + 0138 5B 377 .db #0x5B + 0139 A4 378 .db #0xA4 + 013A D5 379 .db #0xD5 + 013B 2A 380 .db #0x2A + 013C AF 381 .db #0xAF + 013D 50 382 .db #0x50 + 013E 4B 383 .db #0x4B + 013F B4 384 .db #0xB4 + 0140 AA 385 .db #0xAA + 0141 55 386 .db #0x55 + 0142 B7 387 .db #0xB7 + 0143 58 388 .db #0x58 + 0144 A1 389 .db #0xA1 + 0145 5E 390 .db #0x5E + 0146 1F 391 .db #0x1F + 0147 E0 392 .db #0xE0 + 0148 CD 393 .db #0xCD + 0149 32 394 .db #0x32 + 014A 5F 395 .db #0x5F + 014B A0 396 .db #0xA0 + 014C ED 397 .db #0xED + 014D 12 398 .db #0x12 + 014E BF 399 .db #0xBF + 014F 40 400 .db #0x40 + 0150 8F 401 .db #0x8F + 0151 70 402 .db #0x70 + 0152 16 403 .db #0x16 + 0153 E9 404 .db #0xE9 + 0154 D7 405 .db #0xD7 + 0155 28 406 .db #0x28 + 0156 FF 407 .db #0xFF + 0157 00 408 .db #0x00 + 0158 F7 409 .db #0xF7 + 0159 08 410 .db #0x08 + 015A BE 411 .db #0xBE + 015B 41 412 .db #0x41 + 015C FF 413 .db #0xFF + 015D 00 414 .db #0x00 + 015E DF 415 .db #0xDF + 015F 20 416 .db #0x20 + 0160 ED 417 .db #0xED + 0161 12 418 .db #0x12 + 0162 FF 419 .db #0xFF + 0163 00 420 .db #0x00 + 0164 FF 421 .db #0xFF + 0165 00 422 .db #0x00 + 0166 FF 423 .db #0xFF + 0167 00 424 .db #0x00 + 0168 FF 425 .db #0xFF + 0169 00 426 .db #0x00 + 016A FF 427 .db #0xFF + 016B 00 428 .db #0x00 + 016C FF 429 .db #0xFF + 016D 00 430 .db #0x00 + 016E FF 431 .db #0xFF + 016F 00 432 .db #0x00 + 0170 FF 433 .db #0xFF + 0171 00 434 .db #0x00 + 0172 FF 435 .db #0xFF + 0173 00 436 .db #0x00 + 0174 FF 437 .db #0xFF + 0175 00 438 .db #0x00 + 0176 78 439 .db #0x78 + 0177 FF 440 .db #0xFF + 0178 B8 441 .db #0xB8 + 0179 FF 442 .db #0xFF + 017A 78 443 .db #0x78 + 017B FF 444 .db #0xFF + 017C 78 445 .db #0x78 + 017D FF 446 .db #0xFF + 017E 58 447 .db #0x58 + 017F FF 448 .db #0xFF + 0180 58 449 .db #0x58 + 0181 FF 450 .db #0xFF + 0182 78 451 .db #0x78 + 0183 FF 452 .db #0xFF + 0184 58 453 .db #0x58 + 0185 FF 454 .db #0xFF + 0186 FC 455 .db #0xFC + 0187 FF 456 .db #0xFF + 0188 FE 457 .db #0xFE + 0189 FF 458 .db #0xFF + 018A FC 459 .db #0xFC + 018B FF 460 .db #0xFF + 018C FC 461 .db #0xFC + 018D FF 462 .db #0xFF + 018E FE 463 .db #0xFE + 018F FF 464 .db #0xFF + 0190 FE 465 .db #0xFE + 0191 FF 466 .db #0xFF + 0192 FA 467 .db #0xFA + 0193 FF 468 .db #0xFF + 0194 FE 469 .db #0xFE + 0195 FF 470 .db #0xFF + 0196 3F 471 .db #0x3F + 0197 FF 472 .db #0xFF + 0198 1F 473 .db #0x1F + 0199 FF 474 .db #0xFF + 019A 3F 475 .db #0x3F + 019B FF 476 .db #0xFF + 019C 1F 477 .db #0x1F + 019D FF 478 .db #0xFF + 019E 3F 479 .db #0x3F + 019F FF 480 .db #0xFF + 01A0 1E 481 .db #0x1E + 01A1 FF 482 .db #0xFF + 01A2 1E 483 .db #0x1E + 01A3 FF 484 .db #0xFF + 01A4 1F 485 .db #0x1F + 01A5 FF 486 .db #0xFF + 01A6 D4 487 .db #0xD4 + 01A7 FF 488 .db #0xFF + 01A8 C4 489 .db #0xC4 + 01A9 FF 490 .db #0xFF + 01AA 90 491 .db #0x90 + 01AB FF 492 .db #0xFF + 01AC 04 493 .db #0x04 + 01AD FF 494 .db #0xFF + 01AE 08 495 .db #0x08 + 01AF FF 496 .db #0xFF + 01B0 08 497 .db #0x08 + 01B1 FF 498 .db #0xFF + 01B2 00 499 .db #0x00 + 01B3 FF 500 .db #0xFF + 01B4 08 501 .db #0x08 + 01B5 FF 502 .db #0xFF + 01B6 01 503 .db #0x01 + 01B7 FF 504 .db #0xFF + 01B8 00 505 .db #0x00 + 01B9 FF 506 .db #0xFF + 01BA 01 507 .db #0x01 + 01BB FF 508 .db #0xFF + 01BC 08 509 .db #0x08 + 01BD FF 510 .db #0xFF + 01BE 01 511 .db #0x01 + 01BF FF 512 .db #0xFF + 01C0 00 513 .db #0x00 + 01C1 FF 514 .db #0xFF + 01C2 02 515 .db #0x02 + 01C3 FF 516 .db #0xFF + 01C4 00 517 .db #0x00 + 01C5 FF 518 .db #0xFF + 01C6 20 519 .db #0x20 + 01C7 FF 520 .db #0xFF + 01C8 D0 521 .db #0xD0 + 01C9 FF 522 .db #0xFF + 01CA 40 523 .db #0x40 + 01CB FF 524 .db #0xFF + 01CC 48 525 .db #0x48 + 01CD F7 526 .db #0xF7 + 01CE 82 527 .db #0x82 + 01CF FF 528 .db #0xFF + 01D0 88 529 .db #0x88 + 01D1 F7 530 .db #0xF7 + 01D2 80 531 .db #0x80 + 01D3 FF 532 .db #0xFF + 01D4 0A 533 .db #0x0A + 01D5 F7 534 .db #0xF7 + 01D6 00 535 .db #0x00 + 01D7 FF 536 .db #0xFF + 01D8 80 537 .db #0x80 + 01D9 FF 538 .db #0xFF + 01DA 00 539 .db #0x00 + 01DB FF 540 .db #0xFF + 01DC 00 541 .db #0x00 + 01DD FF 542 .db #0xFF + 01DE 00 543 .db #0x00 + 01DF FF 544 .db #0xFF + 01E0 04 545 .db #0x04 + 01E1 FB 546 .db #0xFB + 01E2 01 547 .db #0x01 + 01E3 FE 548 .db #0xFE + 01E4 00 549 .db #0x00 + 01E5 FF 550 .db #0xFF + 01E6 01 551 .db #0x01 + 01E7 FE 552 .db #0xFE + 01E8 00 553 .db #0x00 + 01E9 FF 554 .db #0xFF + 01EA 00 555 .db #0x00 + 01EB FF 556 .db #0xFF + 01EC 00 557 .db #0x00 + 01ED FF 558 .db #0xFF + 01EE 02 559 .db #0x02 + 01EF FD 560 .db #0xFD + 01F0 40 561 .db #0x40 + 01F1 BF 562 .db #0xBF + 01F2 20 563 .db #0x20 + 01F3 DF 564 .db #0xDF + 01F4 10 565 .db #0x10 + 01F5 EF 566 .db #0xEF + 01F6 55 567 .db #0x55 + 01F7 AA 568 .db #0xAA + 01F8 55 569 .db #0x55 + 01F9 AA 570 .db #0xAA + 01FA AD 571 .db #0xAD + 01FB 5A 572 .db #0x5A + 01FC 2A 573 .db #0x2A + 01FD D5 574 .db #0xD5 + 01FE 2A 575 .db #0x2A + 01FF D5 576 .db #0xD5 + 0200 2D 577 .db #0x2D + 0201 D6 578 .db #0xD6 + 0202 15 579 .db #0x15 + 0203 EA 580 .db #0xEA + 0204 15 581 .db #0x15 + 0205 EE 582 .db #0xEE + 0206 57 583 .db #0x57 + 0207 A8 584 .db #0xA8 + 0208 48 585 .db #0x48 + 0209 B7 586 .db #0xB7 + 020A 35 587 .db #0x35 + 020B CA 588 .db #0xCA + 020C 95 589 .db #0x95 + 020D 6A 590 .db #0x6A + 020E AA 591 .db #0xAA + 020F 5D 592 .db #0x5D + 0210 33 593 .db #0x33 + 0211 DC 594 .db #0xDC + 0212 8A 595 .db #0x8A + 0213 F5 596 .db #0xF5 + 0214 B2 597 .db #0xB2 + 0215 FD 598 .db #0xFD + 0216 B7 599 .db #0xB7 + 0217 48 600 .db #0x48 + 0218 93 601 .db #0x93 + 0219 6C 602 .db #0x6C + 021A 6F 603 .db #0x6F + 021B D0 604 .db #0xD0 + 021C B6 605 .db #0xB6 + 021D 49 606 .db #0x49 + 021E 7B 607 .db #0x7B + 021F C4 608 .db #0xC4 + 0220 89 609 .db #0x89 + 0221 76 610 .db #0x76 + 0222 BE 611 .db #0xBE + 0223 61 612 .db #0x61 + 0224 C6 613 .db #0xC6 + 0225 39 614 .db #0x39 + 0226 DB 615 .db #0xDB + 0227 24 616 .db #0x24 + 0228 FF 617 .db #0xFF + 0229 00 618 .db #0x00 + 022A FD 619 .db #0xFD + 022B 02 620 .db #0x02 + 022C DF 621 .db #0xDF + 022D 20 622 .db #0x20 + 022E F5 623 .db #0xF5 + 022F 0A 624 .db #0x0A + 0230 5F 625 .db #0x5F + 0231 A0 626 .db #0xA0 + 0232 D5 627 .db #0xD5 + 0233 2A 628 .db #0x2A + 0234 BD 629 .db #0xBD + 0235 42 630 .db #0x42 + 0236 78 631 .db #0x78 + 0237 FF 632 .db #0xFF + 0238 58 633 .db #0x58 + 0239 FF 634 .db #0xFF + 023A 78 635 .db #0x78 + 023B FF 636 .db #0xFF + 023C B8 637 .db #0xB8 + 023D FF 638 .db #0xFF + 023E 78 639 .db #0x78 + 023F FF 640 .db #0xFF + 0240 38 641 .db #0x38 + 0241 FF 642 .db #0xFF + 0242 78 643 .db #0x78 + 0243 FF 644 .db #0xFF + 0244 28 645 .db #0x28 + 0245 FF 646 .db #0xFF + 0246 00 647 .db #0x00 + 0247 FF 648 .db #0xFF + 0248 00 649 .db #0x00 + 0249 FF 650 .db #0xFF + 024A 00 651 .db #0x00 + 024B FF 652 .db #0xFF + 024C 00 653 .db #0x00 + 024D FF 654 .db #0xFF + 024E 00 655 .db #0x00 + 024F FF 656 .db #0xFF + 0250 00 657 .db #0x00 + 0251 FF 658 .db #0xFF + 0252 06 659 .db #0x06 + 0253 F9 660 .db #0xF9 + 0254 02 661 .db #0x02 + 0255 FD 662 .db #0xFD + 0256 FF 663 .db #0xFF + 0257 FF 664 .db #0xFF + 0258 FF 665 .db #0xFF + 0259 FF 666 .db #0xFF + 025A FF 667 .db #0xFF + 025B FF 668 .db #0xFF + 025C 00 669 .db #0x00 + 025D FF 670 .db #0xFF + 025E 00 671 .db #0x00 + 025F FF 672 .db #0xFF + 0260 00 673 .db #0x00 + 0261 FF 674 .db #0xFF + 0262 00 675 .db #0x00 + 0263 FF 676 .db #0xFF + 0264 00 677 .db #0x00 + 0265 FF 678 .db #0xFF + 0266 FD 679 .db #0xFD + 0267 FF 680 .db #0xFF + 0268 FF 681 .db #0xFF + 0269 FF 682 .db #0xFF + 026A 6F 683 .db #0x6F + 026B FF 684 .db #0xFF + 026C 00 685 .db #0x00 + 026D FF 686 .db #0xFF + 026E 00 687 .db #0x00 + 026F FF 688 .db #0xFF + 0270 00 689 .db #0x00 + 0271 FF 690 .db #0xFF + 0272 00 691 .db #0x00 + 0273 FF 692 .db #0xFF + 0274 00 693 .db #0x00 + 0275 FF 694 .db #0xFF + 0276 EC 695 .db #0xEC + 0277 FF 696 .db #0xFF + 0278 FE 697 .db #0xFE + 0279 FF 698 .db #0xFF + 027A CC 699 .db #0xCC + 027B FF 700 .db #0xFF + 027C 00 701 .db #0x00 + 027D FF 702 .db #0xFF + 027E 00 703 .db #0x00 + 027F FF 704 .db #0xFF + 0280 00 705 .db #0x00 + 0281 FF 706 .db #0xFF + 0282 00 707 .db #0x00 + 0283 FF 708 .db #0xFF + 0284 00 709 .db #0x00 + 0285 FF 710 .db #0xFF + 0286 1E 711 .db #0x1E + 0287 FF 712 .db #0xFF + 0288 1E 713 .db #0x1E + 0289 FF 714 .db #0xFF + 028A 1E 715 .db #0x1E + 028B FF 716 .db #0xFF + 028C 1E 717 .db #0x1E + 028D FF 718 .db #0xFF + 028E 1E 719 .db #0x1E + 028F FF 720 .db #0xFF + 0290 1E 721 .db #0x1E + 0291 FF 722 .db #0xFF + 0292 1F 723 .db #0x1F + 0293 FF 724 .db #0xFF + 0294 1E 725 .db #0x1E + 0295 FF 726 .db #0xFF + 0296 00 727 .db #0x00 + 0297 FF 728 .db #0xFF + 0298 00 729 .db #0x00 + 0299 FF 730 .db #0xFF + 029A 08 731 .db #0x08 + 029B FF 732 .db #0xFF + 029C 00 733 .db #0x00 + 029D FF 734 .db #0xFF + 029E 00 735 .db #0x00 + 029F FF 736 .db #0xFF + 02A0 00 737 .db #0x00 + 02A1 FF 738 .db #0xFF + 02A2 00 739 .db #0x00 + 02A3 FF 740 .db #0xFF + 02A4 00 741 .db #0x00 + 02A5 FF 742 .db #0xFF + 02A6 00 743 .db #0x00 + 02A7 FF 744 .db #0xFF + 02A8 00 745 .db #0x00 + 02A9 FF 746 .db #0xFF + 02AA 80 747 .db #0x80 + 02AB FF 748 .db #0xFF + 02AC 00 749 .db #0x00 + 02AD FF 750 .db #0xFF + 02AE 00 751 .db #0x00 + 02AF FF 752 .db #0xFF + 02B0 00 753 .db #0x00 + 02B1 FF 754 .db #0xFF + 02B2 00 755 .db #0x00 + 02B3 FF 756 .db #0xFF + 02B4 00 757 .db #0x00 + 02B5 FF 758 .db #0xFF + 02B6 01 759 .db #0x01 + 02B7 FF 760 .db #0xFF + 02B8 00 761 .db #0x00 + 02B9 FF 762 .db #0xFF + 02BA 00 763 .db #0x00 + 02BB FF 764 .db #0xFF + 02BC 00 765 .db #0x00 + 02BD FF 766 .db #0xFF + 02BE 00 767 .db #0x00 + 02BF FF 768 .db #0xFF + 02C0 01 769 .db #0x01 + 02C1 FF 770 .db #0xFF + 02C2 00 771 .db #0x00 + 02C3 FF 772 .db #0xFF + 02C4 00 773 .db #0x00 + 02C5 FF 774 .db #0xFF + 02C6 00 775 .db #0x00 + 02C7 FF 776 .db #0xFF + 02C8 84 777 .db #0x84 + 02C9 FF 778 .db #0xFF + 02CA 00 779 .db #0x00 + 02CB FF 780 .db #0xFF + 02CC 00 781 .db #0x00 + 02CD FF 782 .db #0xFF + 02CE 20 783 .db #0x20 + 02CF FF 784 .db #0xFF + 02D0 00 785 .db #0x00 + 02D1 FF 786 .db #0xFF + 02D2 00 787 .db #0x00 + 02D3 FF 788 .db #0xFF + 02D4 80 789 .db #0x80 + 02D5 FF 790 .db #0xFF + 02D6 00 791 .db #0x00 + 02D7 FF 792 .db #0xFF + 02D8 3B 793 .db #0x3B + 02D9 C4 794 .db #0xC4 + 02DA 3C 795 .db #0x3C + 02DB C3 796 .db #0xC3 + 02DC 3F 797 .db #0x3F + 02DD C0 798 .db #0xC0 + 02DE 70 799 .db #0x70 + 02DF 8F 800 .db #0x8F + 02E0 7C 801 .db #0x7C + 02E1 83 802 .db #0x83 + 02E2 7D 803 .db #0x7D + 02E3 82 804 .db #0x82 + 02E4 FF 805 .db #0xFF + 02E5 00 806 .db #0x00 + 02E6 10 807 .db #0x10 + 02E7 EF 808 .db #0xEF + 02E8 9F 809 .db #0x9F + 02E9 60 810 .db #0x60 + 02EA 51 811 .db #0x51 + 02EB AE 812 .db #0xAE + 02EC 29 813 .db #0x29 + 02ED D6 814 .db #0xD6 + 02EE 60 815 .db #0x60 + 02EF 9F 816 .db #0x9F + 02F0 70 817 .db #0x70 + 02F1 8F 818 .db #0x8F + 02F2 FF 819 .db #0xFF + 02F3 00 820 .db #0x00 + 02F4 F7 821 .db #0xF7 + 02F5 08 822 .db #0x08 + 02F6 0C 823 .db #0x0C + 02F7 F7 824 .db #0xF7 + 02F8 0B 825 .db #0x0B + 02F9 F6 826 .db #0xF6 + 02FA 06 827 .db #0x06 + 02FB FD 828 .db #0xFD + 02FC A2 829 .db #0xA2 + 02FD DD 830 .db #0xDD + 02FE 0C 831 .db #0x0C + 02FF FB 832 .db #0xFB + 0300 8D 833 .db #0x8D + 0301 7B 834 .db #0x7B + 0302 42 835 .db #0x42 + 0303 FF 836 .db #0xFF + 0304 15 837 .db #0x15 + 0305 EB 838 .db #0xEB + 0306 55 839 .db #0x55 + 0307 EA 840 .db #0xEA + 0308 78 841 .db #0x78 + 0309 FF 842 .db #0xFF + 030A 96 843 .db #0x96 + 030B ED 844 .db #0xED + 030C F4 845 .db #0xF4 + 030D 6F 846 .db #0x6F + 030E 1B 847 .db #0x1B + 030F FE 848 .db #0xFE + 0310 CB 849 .db #0xCB + 0311 7F 850 .db #0x7F + 0312 B5 851 .db #0xB5 + 0313 FF 852 .db #0xFF + 0314 BD 853 .db #0xBD + 0315 6F 854 .db #0x6F + 0316 15 855 .db #0x15 + 0317 EA 856 .db #0xEA + 0318 B6 857 .db #0xB6 + 0319 5B 858 .db #0x5B + 031A AA 859 .db #0xAA + 031B 55 860 .db #0x55 + 031C A7 861 .db #0xA7 + 031D 5A 862 .db #0x5A + 031E 1C 863 .db #0x1C + 031F EB 864 .db #0xEB + 0320 A6 865 .db #0xA6 + 0321 5B 866 .db #0x5B + 0322 5A 867 .db #0x5A + 0323 AD 868 .db #0xAD + 0324 8A 869 .db #0x8A + 0325 75 870 .db #0x75 + 0326 C5 871 .db #0xC5 + 0327 3A 872 .db #0x3A + 0328 25 873 .db #0x25 + 0329 DA 874 .db #0xDA + 032A F5 875 .db #0xF5 + 032B AA 876 .db #0xAA + 032C 49 877 .db #0x49 + 032D F6 878 .db #0xF6 + 032E B5 879 .db #0xB5 + 032F EA 880 .db #0xEA + 0330 F5 881 .db #0xF5 + 0331 7E 882 .db #0x7E + 0332 BD 883 .db #0xBD + 0333 FA 884 .db #0xFA + 0334 BD 885 .db #0xBD + 0335 5E 886 .db #0x5E + 0336 78 887 .db #0x78 + 0337 FF 888 .db #0xFF + 0338 58 889 .db #0x58 + 0339 FF 890 .db #0xFF + 033A 70 891 .db #0x70 + 033B FF 892 .db #0xFF + 033C 58 893 .db #0x58 + 033D FF 894 .db #0xFF + 033E 78 895 .db #0x78 + 033F FF 896 .db #0xFF + 0340 59 897 .db #0x59 + 0341 FE 898 .db #0xFE + 0342 FB 899 .db #0xFB + 0343 FC 900 .db #0xFC + 0344 5B 901 .db #0x5B + 0345 FC 902 .db #0xFC + 0346 03 903 .db #0x03 + 0347 FC 904 .db #0xFC + 0348 03 905 .db #0x03 + 0349 FC 906 .db #0xFC + 034A 03 907 .db #0x03 + 034B FC 908 .db #0xFC + 034C 03 909 .db #0x03 + 034D FC 910 .db #0xFC + 034E 03 911 .db #0x03 + 034F FC 912 .db #0xFC + 0350 FF 913 .db #0xFF + 0351 00 914 .db #0x00 + 0352 FF 915 .db #0xFF + 0353 00 916 .db #0x00 + 0354 FF 917 .db #0xFF + 0355 00 918 .db #0x00 + 0356 00 919 .db #0x00 + 0357 FF 920 .db #0xFF + 0358 00 921 .db #0x00 + 0359 FF 922 .db #0xFF + 035A 00 923 .db #0x00 + 035B FF 924 .db #0xFF + 035C 00 925 .db #0x00 + 035D FF 926 .db #0xFF + 035E 40 927 .db #0x40 + 035F BF 928 .db #0xBF + 0360 F0 929 .db #0xF0 + 0361 0F 930 .db #0x0F + 0362 F0 931 .db #0xF0 + 0363 0F 932 .db #0x0F + 0364 F0 933 .db #0xF0 + 0365 0F 934 .db #0x0F + 0366 00 935 .db #0x00 + 0367 FF 936 .db #0xFF + 0368 00 937 .db #0x00 + 0369 FF 938 .db #0xFF + 036A 1F 939 .db #0x1F + 036B FF 940 .db #0xFF + 036C 07 941 .db #0x07 + 036D FF 942 .db #0xFF + 036E 30 943 .db #0x30 + 036F FF 944 .db #0xFF + 0370 2B 945 .db #0x2B + 0371 FC 946 .db #0xFC + 0372 1A 947 .db #0x1A + 0373 F5 948 .db #0xF5 + 0374 15 949 .db #0x15 + 0375 FA 950 .db #0xFA + 0376 1F 951 .db #0x1F + 0377 FF 952 .db #0xFF + 0378 1E 953 .db #0x1E + 0379 FF 954 .db #0xFF + 037A FF 955 .db #0xFF + 037B FF 956 .db #0xFF + 037C FF 957 .db #0xFF + 037D FF 958 .db #0xFF + 037E 02 959 .db #0x02 + 037F FF 960 .db #0xFF + 0380 F5 961 .db #0xF5 + 0381 0A 962 .db #0x0A + 0382 11 963 .db #0x11 + 0383 EE 964 .db #0xEE + 0384 AD 965 .db #0xAD + 0385 52 966 .db #0x52 + 0386 00 967 .db #0x00 + 0387 FF 968 .db #0xFF + 0388 08 969 .db #0x08 + 0389 FF 970 .db #0xFF + 038A FF 971 .db #0xFF + 038B FF 972 .db #0xFF + 038C FF 973 .db #0xFF + 038D FF 974 .db #0xFF + 038E 2B 975 .db #0x2B + 038F FF 976 .db #0xFF + 0390 A9 977 .db #0xA9 + 0391 57 978 .db #0x57 + 0392 13 979 .db #0x13 + 0393 EF 980 .db #0xEF + 0394 45 981 .db #0x45 + 0395 BB 982 .db #0xBB + 0396 00 983 .db #0x00 + 0397 FF 984 .db #0xFF + 0398 00 985 .db #0x00 + 0399 FF 986 .db #0xFF + 039A 80 987 .db #0x80 + 039B FF 988 .db #0xFF + 039C 00 989 .db #0x00 + 039D FF 990 .db #0xFF + 039E 00 991 .db #0x00 + 039F FF 992 .db #0xFF + 03A0 00 993 .db #0x00 + 03A1 FF 994 .db #0xFF + 03A2 00 995 .db #0x00 + 03A3 FF 996 .db #0xFF + 03A4 80 997 .db #0x80 + 03A5 7F 998 .db #0x7F + 03A6 04 999 .db #0x04 + 03A7 FF 1000 .db #0xFF + 03A8 00 1001 .db #0x00 + 03A9 FF 1002 .db #0xFF + 03AA 00 1003 .db #0x00 + 03AB FF 1004 .db #0xFF + 03AC 00 1005 .db #0x00 + 03AD FF 1006 .db #0xFF + 03AE 00 1007 .db #0x00 + 03AF FF 1008 .db #0xFF + 03B0 00 1009 .db #0x00 + 03B1 FF 1010 .db #0xFF + 03B2 00 1011 .db #0x00 + 03B3 FF 1012 .db #0xFF + 03B4 00 1013 .db #0x00 + 03B5 FF 1014 .db #0xFF + 03B6 22 1015 .db #0x22 + 03B7 DD 1016 .db #0xDD + 03B8 80 1017 .db #0x80 + 03B9 FF 1018 .db #0xFF + 03BA 01 1019 .db #0x01 + 03BB FE 1020 .db #0xFE + 03BC 80 1021 .db #0x80 + 03BD FF 1022 .db #0xFF + 03BE 10 1023 .db #0x10 + 03BF FF 1024 .db #0xFF + 03C0 09 1025 .db #0x09 + 03C1 FE 1026 .db #0xFE + 03C2 00 1027 .db #0x00 + 03C3 FF 1028 .db #0xFF + 03C4 00 1029 .db #0x00 + 03C5 FF 1030 .db #0xFF + 03C6 FE 1031 .db #0xFE + 03C7 01 1032 .db #0x01 + 03C8 FE 1033 .db #0xFE + 03C9 01 1034 .db #0x01 + 03CA FD 1035 .db #0xFD + 03CB 02 1036 .db #0x02 + 03CC FF 1037 .db #0xFF + 03CD 00 1038 .db #0x00 + 03CE FD 1039 .db #0xFD + 03CF 02 1040 .db #0x02 + 03D0 FE 1041 .db #0xFE + 03D1 01 1042 .db #0x01 + 03D2 FD 1043 .db #0xFD + 03D3 02 1044 .db #0x02 + 03D4 FF 1045 .db #0xFF + 03D5 00 1046 .db #0x00 + 03D6 D7 1047 .db #0xD7 + 03D7 28 1048 .db #0x28 + 03D8 03 1049 .db #0x03 + 03D9 FC 1050 .db #0xFC + 03DA DA 1051 .db #0xDA + 03DB 25 1052 .db #0x25 + 03DC E9 1053 .db #0xE9 + 03DD 16 1054 .db #0x16 + 03DE 04 1055 .db #0x04 + 03DF FB 1056 .db #0xFB + 03E0 06 1057 .db #0x06 + 03E1 F9 1058 .db #0xF9 + 03E2 00 1059 .db #0x00 + 03E3 FF 1060 .db #0xFF + 03E4 1E 1061 .db #0x1E + 03E5 FF 1062 .db #0xFF + 03E6 1A 1063 .db #0x1A + 03E7 F7 1064 .db #0xF7 + 03E8 9A 1065 .db #0x9A + 03E9 77 1066 .db #0x77 + 03EA 17 1067 .db #0x17 + 03EB ED 1068 .db #0xED + 03EC 15 1069 .db #0x15 + 03ED EA 1070 .db #0xEA + 03EE 14 1071 .db #0x14 + 03EF FF 1072 .db #0xFF + 03F0 87 1073 .db #0x87 + 03F1 FD 1074 .db #0xFD + 03F2 04 1075 .db #0x04 + 03F3 FB 1076 .db #0xFB + 03F4 05 1077 .db #0x05 + 03F5 FA 1078 .db #0xFA + 03F6 F5 1079 .db #0xF5 + 03F7 FF 1080 .db #0xFF + 03F8 AA 1081 .db #0xAA + 03F9 FF 1082 .db #0xFF + 03FA B5 1083 .db #0xB5 + 03FB 5F 1084 .db #0x5F + 03FC AD 1085 .db #0xAD + 03FD D7 1086 .db #0xD7 + 03FE 92 1087 .db #0x92 + 03FF 7F 1088 .db #0x7F + 0400 5D 1089 .db #0x5D + 0401 AB 1090 .db #0xAB + 0402 B2 1091 .db #0xB2 + 0403 5D 1092 .db #0x5D + 0404 1A 1093 .db #0x1A + 0405 ED 1094 .db #0xED + 0406 5B 1095 .db #0x5B + 0407 AD 1096 .db #0xAD + 0408 49 1097 .db #0x49 + 0409 B6 1098 .db #0xB6 + 040A 92 1099 .db #0x92 + 040B 6D 1100 .db #0x6D + 040C 4B 1101 .db #0x4B + 040D B4 1102 .db #0xB4 + 040E B2 1103 .db #0xB2 + 040F 6D 1104 .db #0x6D + 0410 5D 1105 .db #0x5D + 0411 A6 1106 .db #0xA6 + 0412 A2 1107 .db #0xA2 + 0413 5F 1108 .db #0x5F + 0414 56 1109 .db #0x56 + 0415 AB 1110 .db #0xAB + 0416 55 1111 .db #0x55 + 0417 FE 1112 .db #0xFE + 0418 5D 1113 .db #0x5D + 0419 AE 1114 .db #0xAE + 041A EB 1115 .db #0xEB + 041B BE 1116 .db #0xBE + 041C 7D 1117 .db #0x7D + 041D AE 1118 .db #0xAE + 041E 17 1119 .db #0x17 + 041F FC 1120 .db #0xFC + 0420 FD 1121 .db #0xFD + 0421 AE 1122 .db #0xAE + 0422 95 1123 .db #0x95 + 0423 FE 1124 .db #0xFE + 0424 DD 1125 .db #0xDD + 0425 FE 1126 .db #0xFE + 0426 73 1127 .db #0x73 + 0427 FC 1128 .db #0xFC + 0428 5B 1129 .db #0x5B + 0429 FC 1130 .db #0xFC + 042A F3 1131 .db #0xF3 + 042B 7C 1132 .db #0x7C + 042C BB 1133 .db #0xBB + 042D FC 1134 .db #0xFC + 042E DB 1135 .db #0xDB + 042F 7C 1136 .db #0x7C + 0430 5B 1137 .db #0x5B + 0431 FC 1138 .db #0xFC + 0432 DB 1139 .db #0xDB + 0433 7C 1140 .db #0x7C + 0434 5B 1141 .db #0x5B + 0435 FC 1142 .db #0xFC + 0436 F0 1143 .db #0xF0 + 0437 0F 1144 .db #0x0F + 0438 F0 1145 .db #0xF0 + 0439 0F 1146 .db #0x0F + 043A F0 1147 .db #0xF0 + 043B 0F 1148 .db #0x0F + 043C F0 1149 .db #0xF0 + 043D 0F 1150 .db #0x0F + 043E F0 1151 .db #0xF0 + 043F 0F 1152 .db #0x0F + 0440 F0 1153 .db #0xF0 + 0441 0F 1154 .db #0x0F + 0442 F0 1155 .db #0xF0 + 0443 0F 1156 .db #0x0F + 0444 F0 1157 .db #0xF0 + 0445 0F 1158 .db #0x0F + 0446 00 1159 .db #0x00 + 0447 FF 1160 .db #0xFF + 0448 D0 1161 .db #0xD0 + 0449 FF 1162 .db #0xFF + 044A FF 1163 .db #0xFF + 044B FF 1164 .db #0xFF + 044C FF 1165 .db #0xFF + 044D FF 1166 .db #0xFF + 044E EA 1167 .db #0xEA + 044F FF 1168 .db #0xFF + 0450 80 1169 .db #0x80 + 0451 FF 1170 .db #0xFF + 0452 3F 1171 .db #0x3F + 0453 C0 1172 .db #0xC0 + 0454 BF 1173 .db #0xBF + 0455 C0 1174 .db #0xC0 + 0456 00 1175 .db #0x00 + 0457 FF 1176 .db #0xFF + 0458 02 1177 .db #0x02 + 0459 FF 1178 .db #0xFF + 045A FF 1179 .db #0xFF + 045B FF 1180 .db #0xFF + 045C FF 1181 .db #0xFF + 045D FF 1182 .db #0xFF + 045E 95 1183 .db #0x95 + 045F FF 1184 .db #0xFF + 0460 00 1185 .db #0x00 + 0461 FF 1186 .db #0xFF + 0462 FF 1187 .db #0xFF + 0463 00 1188 .db #0x00 + 0464 FF 1189 .db #0xFF + 0465 00 1190 .db #0x00 + 0466 00 1191 .db #0x00 + 0467 FF 1192 .db #0xFF + 0468 00 1193 .db #0x00 + 0469 FF 1194 .db #0xFF + 046A F0 1195 .db #0xF0 + 046B FF 1196 .db #0xFF + 046C F8 1197 .db #0xF8 + 046D FF 1198 .db #0xFF + 046E 30 1199 .db #0x30 + 046F FF 1200 .db #0xFF + 0470 10 1201 .db #0x10 + 0471 FF 1202 .db #0xFF + 0472 98 1203 .db #0x98 + 0473 7F 1204 .db #0x7F + 0474 B0 1205 .db #0xB0 + 0475 5F 1206 .db #0x5F + 0476 1A 1207 .db #0x1A + 0477 F5 1208 .db #0xF5 + 0478 13 1209 .db #0x13 + 0479 FC 1210 .db #0xFC + 047A 2A 1211 .db #0x2A + 047B F5 1212 .db #0xF5 + 047C 1A 1213 .db #0x1A + 047D F5 1214 .db #0xF5 + 047E 0E 1215 .db #0x0E + 047F F9 1216 .db #0xF9 + 0480 12 1217 .db #0x12 + 0481 FD 1218 .db #0xFD + 0482 26 1219 .db #0x26 + 0483 F9 1220 .db #0xF9 + 0484 3A 1221 .db #0x3A + 0485 FD 1222 .db #0xFD + 0486 A2 1223 .db #0xA2 + 0487 5D 1224 .db #0x5D + 0488 48 1225 .db #0x48 + 0489 B7 1226 .db #0xB7 + 048A B5 1227 .db #0xB5 + 048B 4E 1228 .db #0x4E + 048C A9 1229 .db #0xA9 + 048D 56 1230 .db #0x56 + 048E 94 1231 .db #0x94 + 048F 6B 1232 .db #0x6B + 0490 AB 1233 .db #0xAB + 0491 55 1234 .db #0x55 + 0492 8A 1235 .db #0x8A + 0493 7F 1236 .db #0x7F + 0494 AB 1237 .db #0xAB + 0495 57 1238 .db #0x57 + 0496 21 1239 .db #0x21 + 0497 DF 1240 .db #0xDF + 0498 A9 1241 .db #0xA9 + 0499 57 1242 .db #0x57 + 049A 0B 1243 .db #0x0B + 049B F5 1244 .db #0xF5 + 049C 40 1245 .db #0x40 + 049D BF 1246 .db #0xBF + 049E 56 1247 .db #0x56 + 049F EB 1248 .db #0xEB + 04A0 11 1249 .db #0x11 + 04A1 FF 1250 .db #0xFF + 04A2 CB 1251 .db #0xCB + 04A3 75 1252 .db #0x75 + 04A4 50 1253 .db #0x50 + 04A5 FF 1254 .db #0xFF + 04A6 00 1255 .db #0x00 + 04A7 FF 1256 .db #0xFF + 04A8 80 1257 .db #0x80 + 04A9 FF 1258 .db #0xFF + 04AA 80 1259 .db #0x80 + 04AB 7F 1260 .db #0x7F + 04AC 80 1261 .db #0x80 + 04AD FF 1262 .db #0xFF + 04AE 00 1263 .db #0x00 + 04AF FF 1264 .db #0xFF + 04B0 80 1265 .db #0x80 + 04B1 FF 1266 .db #0xFF + 04B2 00 1267 .db #0x00 + 04B3 FF 1268 .db #0xFF + 04B4 80 1269 .db #0x80 + 04B5 FF 1270 .db #0xFF + 04B6 00 1271 .db #0x00 + 04B7 FF 1272 .db #0xFF + 04B8 00 1273 .db #0x00 + 04B9 FF 1274 .db #0xFF + 04BA 00 1275 .db #0x00 + 04BB FF 1276 .db #0xFF + 04BC 00 1277 .db #0x00 + 04BD FF 1278 .db #0xFF + 04BE 00 1279 .db #0x00 + 04BF FF 1280 .db #0xFF + 04C0 00 1281 .db #0x00 + 04C1 FF 1282 .db #0xFF + 04C2 1F 1283 .db #0x1F + 04C3 FF 1284 .db #0xFF + 04C4 3B 1285 .db #0x3B + 04C5 C7 1286 .db #0xC7 + 04C6 80 1287 .db #0x80 + 04C7 FF 1288 .db #0xFF + 04C8 01 1289 .db #0x01 + 04C9 FE 1290 .db #0xFE + 04CA 03 1291 .db #0x03 + 04CB FC 1292 .db #0xFC + 04CC 87 1293 .db #0x87 + 04CD F8 1294 .db #0xF8 + 04CE BF 1295 .db #0xBF + 04CF C0 1296 .db #0xC0 + 04D0 BF 1297 .db #0xBF + 04D1 C0 1298 .db #0xC0 + 04D2 BF 1299 .db #0xBF + 04D3 C0 1300 .db #0xC0 + 04D4 DF 1301 .db #0xDF + 04D5 E0 1302 .db #0xE0 + 04D6 BF 1303 .db #0xBF + 04D7 7F 1304 .db #0x7F + 04D8 BF 1305 .db #0xBF + 04D9 7F 1306 .db #0x7F + 04DA BF 1307 .db #0xBF + 04DB 7F 1308 .db #0x7F + 04DC 3F 1309 .db #0x3F + 04DD FF 1310 .db #0xFF + 04DE 6D 1311 .db #0x6D + 04DF 97 1312 .db #0x97 + 04E0 6F 1313 .db #0x6F + 04E1 97 1314 .db #0x97 + 04E2 DE 1315 .db #0xDE + 04E3 27 1316 .db #0x27 + 04E4 F7 1317 .db #0xF7 + 04E5 08 1318 .db #0x08 + 04E6 35 1319 .db #0x35 + 04E7 EA 1320 .db #0xEA + 04E8 05 1321 .db #0x05 + 04E9 FA 1322 .db #0xFA + 04EA 39 1323 .db #0x39 + 04EB EF 1324 .db #0xEF + 04EC 8C 1325 .db #0x8C + 04ED 7B 1326 .db #0x7B + 04EE 6A 1327 .db #0x6A + 04EF D5 1328 .db #0xD5 + 04F0 17 1329 .db #0x17 + 04F1 ED 1330 .db #0xED + 04F2 A8 1331 .db #0xA8 + 04F3 57 1332 .db #0x57 + 04F4 CF 1333 .db #0xCF + 04F5 35 1334 .db #0x35 + 04F6 4A 1335 .db #0x4A + 04F7 B5 1336 .db #0xB5 + 04F8 3B 1337 .db #0x3B + 04F9 D5 1338 .db #0xD5 + 04FA 92 1339 .db #0x92 + 04FB 6D 1340 .db #0x6D + 04FC AA 1341 .db #0xAA + 04FD 55 1342 .db #0x55 + 04FE 6A 1343 .db #0x6A + 04FF B5 1344 .db #0xB5 + 0500 52 1345 .db #0x52 + 0501 BD 1346 .db #0xBD + 0502 2B 1347 .db #0x2B + 0503 D5 1348 .db #0xD5 + 0504 42 1349 .db #0x42 + 0505 FD 1350 .db #0xFD + 0506 95 1351 .db #0x95 + 0507 6F 1352 .db #0x6F + 0508 56 1353 .db #0x56 + 0509 AB 1354 .db #0xAB + 050A AB 1355 .db #0xAB + 050B 5F 1356 .db #0x5F + 050C 9D 1357 .db #0x9D + 050D 6B 1358 .db #0x6B + 050E A7 1359 .db #0xA7 + 050F 5B 1360 .db #0x5B + 0510 35 1361 .db #0x35 + 0511 EF 1362 .db #0xEF + 0512 DF 1363 .db #0xDF + 0513 6B 1364 .db #0x6B + 0514 8D 1365 .db #0x8D + 0515 7B 1366 .db #0x7B + 0516 B5 1367 .db #0xB5 + 0517 FE 1368 .db #0xFE + 0518 DF 1369 .db #0xDF + 0519 FE 1370 .db #0xFE + 051A 75 1371 .db #0x75 + 051B FE 1372 .db #0xFE + 051C BF 1373 .db #0xBF + 051D FE 1374 .db #0xFE + 051E F5 1375 .db #0xF5 + 051F FE 1376 .db #0xFE + 0520 7D 1377 .db #0x7D + 0521 BE 1378 .db #0xBE + 0522 6D 1379 .db #0x6D + 0523 FA 1380 .db #0xFA + 0524 7B 1381 .db #0x7B + 0525 DC 1382 .db #0xDC + 0526 7B 1383 .db #0x7B + 0527 FC 1384 .db #0xFC + 0528 9B 1385 .db #0x9B + 0529 FC 1386 .db #0xFC + 052A 7B 1387 .db #0x7B + 052B FC 1388 .db #0xFC + 052C 5B 1389 .db #0x5B + 052D FC 1390 .db #0xFC + 052E 7B 1391 .db #0x7B + 052F FC 1392 .db #0xFC + 0530 5B 1393 .db #0x5B + 0531 FC 1394 .db #0xFC + 0532 7B 1395 .db #0x7B + 0533 FC 1396 .db #0xFC + 0534 5B 1397 .db #0x5B + 0535 FC 1398 .db #0xFC + 0536 E0 1399 .db #0xE0 + 0537 1F 1400 .db #0x1F + 0538 E0 1401 .db #0xE0 + 0539 1F 1402 .db #0x1F + 053A F0 1403 .db #0xF0 + 053B 0F 1404 .db #0x0F + 053C F0 1405 .db #0xF0 + 053D 0F 1406 .db #0x0F + 053E F0 1407 .db #0xF0 + 053F 0F 1408 .db #0x0F + 0540 F0 1409 .db #0xF0 + 0541 0F 1410 .db #0x0F + 0542 F0 1411 .db #0xF0 + 0543 0F 1412 .db #0x0F + 0544 F0 1413 .db #0xF0 + 0545 0F 1414 .db #0x0F + 0546 BF 1415 .db #0xBF + 0547 C0 1416 .db #0xC0 + 0548 BF 1417 .db #0xBF + 0549 C0 1418 .db #0xC0 + 054A BE 1419 .db #0xBE + 054B C1 1420 .db #0xC1 + 054C 8F 1421 .db #0x8F + 054D F0 1422 .db #0xF0 + 054E B5 1423 .db #0xB5 + 054F CA 1424 .db #0xCA + 0550 AA 1425 .db #0xAA + 0551 D5 1426 .db #0xD5 + 0552 AA 1427 .db #0xAA + 0553 D5 1428 .db #0xD5 + 0554 AA 1429 .db #0xAA + 0555 D7 1430 .db #0xD7 + 0556 7F 1431 .db #0x7F + 0557 80 1432 .db #0x80 + 0558 BF 1433 .db #0xBF + 0559 C0 1434 .db #0xC0 + 055A 9F 1435 .db #0x9F + 055B E0 1436 .db #0xE0 + 055C EF 1437 .db #0xEF + 055D B0 1438 .db #0xB0 + 055E 37 1439 .db #0x37 + 055F D8 1440 .db #0xD8 + 0560 27 1441 .db #0x27 + 0561 D8 1442 .db #0xD8 + 0562 AF 1443 .db #0xAF + 0563 50 1444 .db #0x50 + 0564 AF 1445 .db #0xAF + 0565 D0 1446 .db #0xD0 + 0566 A8 1447 .db #0xA8 + 0567 5F 1448 .db #0x5F + 0568 88 1449 .db #0x88 + 0569 7F 1450 .db #0x7F + 056A D0 1451 .db #0xD0 + 056B 3F 1452 .db #0x3F + 056C A8 1453 .db #0xA8 + 056D 5F 1454 .db #0x5F + 056E B8 1455 .db #0xB8 + 056F 5F 1456 .db #0x5F + 0570 C8 1457 .db #0xC8 + 0571 3F 1458 .db #0x3F + 0572 B8 1459 .db #0xB8 + 0573 5F 1460 .db #0x5F + 0574 88 1461 .db #0x88 + 0575 7F 1462 .db #0x7F + 0576 0A 1463 .db #0x0A + 0577 F5 1464 .db #0xF5 + 0578 2B 1465 .db #0x2B + 0579 FC 1466 .db #0xFC + 057A 12 1467 .db #0x12 + 057B FD 1468 .db #0xFD + 057C 1B 1469 .db #0x1B + 057D FC 1470 .db #0xFC + 057E 12 1471 .db #0x12 + 057F FD 1472 .db #0xFD + 0580 2B 1473 .db #0x2B + 0581 FC 1474 .db #0xFC + 0582 12 1475 .db #0x12 + 0583 FD 1476 .db #0xFD + 0584 2B 1477 .db #0x2B + 0585 FC 1478 .db #0xFC + 0586 45 1479 .db #0x45 + 0587 FF 1480 .db #0xFF + 0588 26 1481 .db #0x26 + 0589 FD 1482 .db #0xFD + 058A A9 1483 .db #0xA9 + 058B DE 1484 .db #0xDE + 058C A5 1485 .db #0xA5 + 058D DF 1486 .db #0xDF + 058E 4D 1487 .db #0x4D + 058F BE 1488 .db #0xBE + 0590 54 1489 .db #0x54 + 0591 EF 1490 .db #0xEF + 0592 55 1491 .db #0x55 + 0593 FF 1492 .db #0xFF + 0594 4E 1493 .db #0x4E + 0595 BB 1494 .db #0xBB + 0596 2B 1495 .db #0x2B + 0597 F5 1496 .db #0xF5 + 0598 B2 1497 .db #0xB2 + 0599 FD 1498 .db #0xFD + 059A A9 1499 .db #0xA9 + 059B F7 1500 .db #0xF7 + 059C 7B 1501 .db #0x7B + 059D F5 1502 .db #0xF5 + 059E 81 1503 .db #0x81 + 059F FF 1504 .db #0xFF + 05A0 FA 1505 .db #0xFA + 05A1 75 1506 .db #0x75 + 05A2 51 1507 .db #0x51 + 05A3 FF 1508 .db #0xFF + 05A4 BA 1509 .db #0xBA + 05A5 F5 1510 .db #0xF5 + 05A6 00 1511 .db #0x00 + 05A7 FF 1512 .db #0xFF + 05A8 80 1513 .db #0x80 + 05A9 FF 1514 .db #0xFF + 05AA 01 1515 .db #0x01 + 05AB FE 1516 .db #0xFE + 05AC 81 1517 .db #0x81 + 05AD FE 1518 .db #0xFE + 05AE 03 1519 .db #0x03 + 05AF FC 1520 .db #0xFC + 05B0 83 1521 .db #0x83 + 05B1 FC 1522 .db #0xFC + 05B2 83 1523 .db #0x83 + 05B3 FC 1524 .db #0xFC + 05B4 83 1525 .db #0x83 + 05B5 FC 1526 .db #0xFC + 05B6 FF 1527 .db #0xFF + 05B7 03 1528 .db #0x03 + 05B8 FD 1529 .db #0xFD + 05B9 03 1530 .db #0x03 + 05BA 7E 1531 .db #0x7E + 05BB 81 1532 .db #0x81 + 05BC 5E 1533 .db #0x5E + 05BD A1 1534 .db #0xA1 + 05BE FF 1535 .db #0xFF + 05BF 00 1536 .db #0x00 + 05C0 BC 1537 .db #0xBC + 05C1 43 1538 .db #0x43 + 05C2 79 1539 .db #0x79 + 05C3 86 1540 .db #0x86 + 05C4 FD 1541 .db #0xFD + 05C5 02 1542 .db #0x02 + 05C6 EF 1543 .db #0xEF + 05C7 F0 1544 .db #0xF0 + 05C8 F7 1545 .db #0xF7 + 05C9 F8 1546 .db #0xF8 + 05CA FF 1547 .db #0xFF + 05CB F8 1548 .db #0xF8 + 05CC FB 1549 .db #0xFB + 05CD FC 1550 .db #0xFC + 05CE F9 1551 .db #0xF9 + 05CF 7E 1552 .db #0x7E + 05D0 3D 1553 .db #0x3D + 05D1 FE 1554 .db #0xFE + 05D2 7F 1555 .db #0x7F + 05D3 BE 1556 .db #0xBE + 05D4 3E 1557 .db #0x3E + 05D5 FF 1558 .db #0xFF + 05D6 61 1559 .db #0x61 + 05D7 9F 1560 .db #0x9F + 05D8 15 1561 .db #0x15 + 05D9 FB 1562 .db #0xFB + 05DA F1 1563 .db #0xF1 + 05DB 1E 1564 .db #0x1E + 05DC FC 1565 .db #0xFC + 05DD 1F 1566 .db #0x1F + 05DE F5 1567 .db #0xF5 + 05DF 1A 1568 .db #0x1A + 05E0 ED 1569 .db #0xED + 05E1 1E 1570 .db #0x1E + 05E2 DA 1571 .db #0xDA + 05E3 3D 1572 .db #0x3D + 05E4 FC 1573 .db #0xFC + 05E5 1F 1574 .db #0x1F + 05E6 A8 1575 .db #0xA8 + 05E7 57 1576 .db #0x57 + 05E8 6D 1577 .db #0x6D + 05E9 DA 1578 .db #0xDA + 05EA 49 1579 .db #0x49 + 05EB BF 1580 .db #0xBF + 05EC D6 1581 .db #0xD6 + 05ED AD 1582 .db #0xAD + 05EE 34 1583 .db #0x34 + 05EF EF 1584 .db #0xEF + 05F0 57 1585 .db #0x57 + 05F1 AD 1586 .db #0xAD + 05F2 C8 1587 .db #0xC8 + 05F3 77 1588 .db #0x77 + 05F4 DE 1589 .db #0xDE + 05F5 75 1590 .db #0x75 + 05F6 5B 1591 .db #0x5B + 05F7 EF 1592 .db #0xEF + 05F8 57 1593 .db #0x57 + 05F9 ED 1594 .db #0xED + 05FA 1F 1595 .db #0x1F + 05FB FB 1596 .db #0xFB + 05FC A5 1597 .db #0xA5 + 05FD DF 1598 .db #0xDF + 05FE 1D 1599 .db #0x1D + 05FF FA 1600 .db #0xFA + 0600 D6 1601 .db #0xD6 + 0601 6D 1602 .db #0x6D + 0602 5A 1603 .db #0x5A + 0603 B5 1604 .db #0xB5 + 0604 DF 1605 .db #0xDF + 0605 AA 1606 .db #0xAA + 0606 69 1607 .db #0x69 + 0607 F6 1608 .db #0xF6 + 0608 75 1609 .db #0x75 + 0609 DA 1610 .db #0xDA + 060A 93 1611 .db #0x93 + 060B EC 1612 .db #0xEC + 060C DB 1613 .db #0xDB + 060D 74 1614 .db #0x74 + 060E 55 1615 .db #0x55 + 060F AA 1616 .db #0xAA + 0610 77 1617 .db #0x77 + 0611 A8 1618 .db #0xA8 + 0612 AB 1619 .db #0xAB + 0613 54 1620 .db #0x54 + 0614 6F 1621 .db #0x6F + 0615 B0 1622 .db #0xB0 + 0616 7B 1623 .db #0x7B + 0617 FC 1624 .db #0xFC + 0618 9B 1625 .db #0x9B + 0619 FC 1626 .db #0xFC + 061A 7B 1627 .db #0x7B + 061B FC 1628 .db #0xFC + 061C 58 1629 .db #0x58 + 061D FF 1630 .db #0xFF + 061E D8 1631 .db #0xD8 + 061F FF 1632 .db #0xFF + 0620 70 1633 .db #0x70 + 0621 FF 1634 .db #0xFF + 0622 B8 1635 .db #0xB8 + 0623 FF 1636 .db #0xFF + 0624 D8 1637 .db #0xD8 + 0625 FF 1638 .db #0xFF + 0626 FF 1639 .db #0xFF + 0627 00 1640 .db #0x00 + 0628 FF 1641 .db #0xFF + 0629 00 1642 .db #0x00 + 062A FF 1643 .db #0xFF + 062B 00 1644 .db #0x00 + 062C 00 1645 .db #0x00 + 062D FF 1646 .db #0xFF + 062E 00 1647 .db #0x00 + 062F FF 1648 .db #0xFF + 0630 00 1649 .db #0x00 + 0631 FF 1650 .db #0xFF + 0632 00 1651 .db #0x00 + 0633 FF 1652 .db #0xFF + 0634 00 1653 .db #0x00 + 0635 FF 1654 .db #0xFF + 0636 F0 1655 .db #0xF0 + 0637 0F 1656 .db #0x0F + 0638 F0 1657 .db #0xF0 + 0639 0F 1658 .db #0x0F + 063A C0 1659 .db #0xC0 + 063B 3F 1660 .db #0x3F + 063C 00 1661 .db #0x00 + 063D FF 1662 .db #0xFF + 063E 00 1663 .db #0x00 + 063F FF 1664 .db #0xFF + 0640 00 1665 .db #0x00 + 0641 FF 1666 .db #0xFF + 0642 00 1667 .db #0x00 + 0643 FF 1668 .db #0xFF + 0644 00 1669 .db #0x00 + 0645 FF 1670 .db #0xFF + 0646 97 1671 .db #0x97 + 0647 EC 1672 .db #0xEC + 0648 A2 1673 .db #0xA2 + 0649 DF 1674 .db #0xDF + 064A 94 1675 .db #0x94 + 064B EF 1676 .db #0xEF + 064C AB 1677 .db #0xAB + 064D D4 1678 .db #0xD4 + 064E 9A 1679 .db #0x9A + 064F EF 1680 .db #0xEF + 0650 AA 1681 .db #0xAA + 0651 D7 1682 .db #0xD7 + 0652 9A 1683 .db #0x9A + 0653 ED 1684 .db #0xED + 0654 D6 1685 .db #0xD6 + 0655 EF 1686 .db #0xEF + 0656 57 1687 .db #0x57 + 0657 A8 1688 .db #0xA8 + 0658 A7 1689 .db #0xA7 + 0659 58 1690 .db #0x58 + 065A 7B 1691 .db #0x7B + 065B AC 1692 .db #0xAC + 065C 23 1693 .db #0x23 + 065D FC 1694 .db #0xFC + 065E FB 1695 .db #0xFB + 065F 74 1696 .db #0x74 + 0660 51 1697 .db #0x51 + 0661 FE 1698 .db #0xFE + 0662 AB 1699 .db #0xAB + 0663 54 1700 .db #0x54 + 0664 89 1701 .db #0x89 + 0665 76 1702 .db #0x76 + 0666 C8 1703 .db #0xC8 + 0667 3F 1704 .db #0x3F + 0668 C8 1705 .db #0xC8 + 0669 3F 1706 .db #0x3F + 066A 98 1707 .db #0x98 + 066B 7F 1708 .db #0x7F + 066C C8 1709 .db #0xC8 + 066D 3F 1710 .db #0x3F + 066E A8 1711 .db #0xA8 + 066F 5F 1712 .db #0x5F + 0670 C8 1713 .db #0xC8 + 0671 3F 1714 .db #0x3F + 0672 98 1715 .db #0x98 + 0673 7F 1716 .db #0x7F + 0674 E8 1717 .db #0xE8 + 0675 1F 1718 .db #0x1F + 0676 12 1719 .db #0x12 + 0677 FD 1720 .db #0xFD + 0678 2B 1721 .db #0x2B + 0679 FC 1722 .db #0xFC + 067A 12 1723 .db #0x12 + 067B FD 1724 .db #0xFD + 067C 1B 1725 .db #0x1B + 067D FC 1726 .db #0xFC + 067E 15 1727 .db #0x15 + 067F FA 1728 .db #0xFA + 0680 39 1729 .db #0x39 + 0681 FE 1730 .db #0xFE + 0682 16 1731 .db #0x16 + 0683 F9 1732 .db #0xF9 + 0684 1B 1733 .db #0x1B + 0685 FC 1734 .db #0xFC + 0686 31 1735 .db #0x31 + 0687 EF 1736 .db #0xEF + 0688 D5 1737 .db #0xD5 + 0689 3A 1738 .db #0x3A + 068A A8 1739 .db #0xA8 + 068B 57 1740 .db #0x57 + 068C 4B 1741 .db #0x4B + 068D B4 1742 .db #0xB4 + 068E F4 1743 .db #0xF4 + 068F 0B 1744 .db #0x0B + 0690 55 1745 .db #0x55 + 0691 AA 1746 .db #0xAA + 0692 B5 1747 .db #0xB5 + 0693 4A 1748 .db #0x4A + 0694 DA 1749 .db #0xDA + 0695 25 1750 .db #0x25 + 0696 A1 1751 .db #0xA1 + 0697 FF 1752 .db #0xFF + 0698 BB 1753 .db #0xBB + 0699 F5 1754 .db #0xF5 + 069A A0 1755 .db #0xA0 + 069B FF 1756 .db #0xFF + 069C 4A 1757 .db #0x4A + 069D B5 1758 .db #0xB5 + 069E AB 1759 .db #0xAB + 069F 55 1760 .db #0x55 + 06A0 50 1761 .db #0x50 + 06A1 AF 1762 .db #0xAF + 06A2 53 1763 .db #0x53 + 06A3 AD 1764 .db #0xAD + 06A4 A8 1765 .db #0xA8 + 06A5 57 1766 .db #0x57 + 06A6 07 1767 .db #0x07 + 06A7 F8 1768 .db #0xF8 + 06A8 83 1769 .db #0x83 + 06A9 FC 1770 .db #0xFC + 06AA 86 1771 .db #0x86 + 06AB F9 1772 .db #0xF9 + 06AC 83 1773 .db #0x83 + 06AD FC 1774 .db #0xFC + 06AE 85 1775 .db #0x85 + 06AF FA 1776 .db #0xFA + 06B0 87 1777 .db #0x87 + 06B1 F8 1778 .db #0xF8 + 06B2 83 1779 .db #0x83 + 06B3 FC 1780 .db #0xFC + 06B4 85 1781 .db #0x85 + 06B5 FA 1782 .db #0xFA + 06B6 72 1783 .db #0x72 + 06B7 8D 1784 .db #0x8D + 06B8 F2 1785 .db #0xF2 + 06B9 0D 1786 .db #0x0D + 06BA F8 1787 .db #0xF8 + 06BB 07 1788 .db #0x07 + 06BC D4 1789 .db #0xD4 + 06BD 2B 1790 .db #0x2B + 06BE EF 1791 .db #0xEF + 06BF 19 1792 .db #0x19 + 06C0 F6 1793 .db #0xF6 + 06C1 09 1794 .db #0x09 + 06C2 FF 1795 .db #0xFF + 06C3 00 1796 .db #0x00 + 06C4 FD 1797 .db #0xFD + 06C5 02 1798 .db #0x02 + 06C6 3F 1799 .db #0x3F + 06C7 FF 1800 .db #0xFF + 06C8 BF 1801 .db #0xBF + 06C9 7F 1802 .db #0x7F + 06CA 9F 1803 .db #0x9F + 06CB 7F 1804 .db #0x7F + 06CC 3F 1805 .db #0x3F + 06CD FF 1806 .db #0xFF + 06CE DF 1807 .db #0xDF + 06CF 7F 1808 .db #0x7F + 06D0 DF 1809 .db #0xDF + 06D1 7F 1810 .db #0x7F + 06D2 8F 1811 .db #0x8F + 06D3 FF 1812 .db #0xFF + 06D4 AF 1813 .db #0xAF + 06D5 7F 1814 .db #0x7F + 06D6 7F 1815 .db #0x7F + 06D7 80 1816 .db #0x80 + 06D8 7F 1817 .db #0x7F + 06D9 80 1818 .db #0x80 + 06DA BF 1819 .db #0xBF + 06DB C0 1820 .db #0xC0 + 06DC BF 1821 .db #0xBF + 06DD C0 1822 .db #0xC0 + 06DE DF 1823 .db #0xDF + 06DF E0 1824 .db #0xE0 + 06E0 6F 1825 .db #0x6F + 06E1 F0 1826 .db #0xF0 + 06E2 E7 1827 .db #0xE7 + 06E3 F8 1828 .db #0xF8 + 06E4 7F 1829 .db #0x7F + 06E5 F8 1830 .db #0xF8 + 06E6 FF 1831 .db #0xFF + 06E7 00 1832 .db #0x00 + 06E8 FE 1833 .db #0xFE + 06E9 01 1834 .db #0x01 + 06EA FD 1835 .db #0xFD + 06EB 02 1836 .db #0x02 + 06EC FD 1837 .db #0xFD + 06ED 02 1838 .db #0x02 + 06EE FA 1839 .db #0xFA + 06EF 05 1840 .db #0x05 + 06F0 F9 1841 .db #0xF9 + 06F1 06 1842 .db #0x06 + 06F2 F1 1843 .db #0xF1 + 06F3 0E 1844 .db #0x0E + 06F4 F3 1845 .db #0xF3 + 06F5 0C 1846 .db #0x0C + 06F6 DA 1847 .db #0xDA + 06F7 3D 1848 .db #0x3D + 06F8 9D 1849 .db #0x9D + 06F9 7E 1850 .db #0x7E + 06FA 7F 1851 .db #0x7F + 06FB BC 1852 .db #0xBC + 06FC 7D 1853 .db #0x7D + 06FD BE 1854 .db #0xBE + 06FE 7D 1855 .db #0x7D + 06FF BE 1856 .db #0xBE + 0700 5D 1857 .db #0x5D + 0701 FE 1858 .db #0xFE + 0702 6F 1859 .db #0x6F + 0703 FC 1860 .db #0xFC + 0704 E9 1861 .db #0xE9 + 0705 7E 1862 .db #0x7E + 0706 A2 1863 .db #0xA2 + 0707 5F 1864 .db #0x5F + 0708 FF 1865 .db #0xFF + 0709 03 1866 .db #0x03 + 070A 7A 1867 .db #0x7A + 070B 85 1868 .db #0x85 + 070C FD 1869 .db #0xFD + 070D 02 1870 .db #0x02 + 070E FF 1871 .db #0xFF + 070F 00 1872 .db #0x00 + 0710 FF 1873 .db #0xFF + 0711 00 1874 .db #0x00 + 0712 7F 1875 .db #0x7F + 0713 80 1876 .db #0x80 + 0714 FF 1877 .db #0xFF + 0715 00 1878 .db #0x00 + 0716 54 1879 .db #0x54 + 0717 EB 1880 .db #0xEB + 0718 FF 1881 .db #0xFF + 0719 00 1882 .db #0x00 + 071A FF 1883 .db #0xFF + 071B 80 1884 .db #0x80 + 071C 7F 1885 .db #0x7F + 071D 80 1886 .db #0x80 + 071E FF 1887 .db #0xFF + 071F 00 1888 .db #0x00 + 0720 FF 1889 .db #0xFF + 0721 00 1890 .db #0x00 + 0722 FF 1891 .db #0xFF + 0723 00 1892 .db #0x00 + 0724 FF 1893 .db #0xFF + 0725 00 1894 .db #0x00 + 0726 78 1895 .db #0x78 + 0727 FF 1896 .db #0xFF + 0728 58 1897 .db #0x58 + 0729 FF 1898 .db #0xFF + 072A F0 1899 .db #0xF0 + 072B FF 1900 .db #0xFF + 072C 38 1901 .db #0x38 + 072D FF 1902 .db #0xFF + 072E F8 1903 .db #0xF8 + 072F FF 1904 .db #0xFF + 0730 38 1905 .db #0x38 + 0731 FF 1906 .db #0xFF + 0732 F8 1907 .db #0xF8 + 0733 FF 1908 .db #0xFF + 0734 98 1909 .db #0x98 + 0735 FF 1910 .db #0xFF + 0736 93 1911 .db #0x93 + 0737 EE 1912 .db #0xEE + 0738 EE 1913 .db #0xEE + 0739 D3 1914 .db #0xD3 + 073A 8B 1915 .db #0x8B + 073B F4 1916 .db #0xF4 + 073C D0 1917 .db #0xD0 + 073D EF 1918 .db #0xEF + 073E AA 1919 .db #0xAA + 073F D5 1920 .db #0xD5 + 0740 CA 1921 .db #0xCA + 0741 F5 1922 .db #0xF5 + 0742 92 1923 .db #0x92 + 0743 ED 1924 .db #0xED + 0744 8A 1925 .db #0x8A + 0745 F5 1926 .db #0xF5 + 0746 65 1927 .db #0x65 + 0747 DA 1928 .db #0xDA + 0748 35 1929 .db #0x35 + 0749 FA 1930 .db #0xFA + 074A AB 1931 .db #0xAB + 074B 74 1932 .db #0x74 + 074C D5 1933 .db #0xD5 + 074D 2A 1934 .db #0x2A + 074E 55 1935 .db #0x55 + 074F AA 1936 .db #0xAA + 0750 94 1937 .db #0x94 + 0751 6B 1938 .db #0x6B + 0752 AA 1939 .db #0xAA + 0753 55 1940 .db #0x55 + 0754 95 1941 .db #0x95 + 0755 6A 1942 .db #0x6A + 0756 88 1943 .db #0x88 + 0757 7F 1944 .db #0x7F + 0758 C8 1945 .db #0xC8 + 0759 3F 1946 .db #0x3F + 075A C8 1947 .db #0xC8 + 075B 3F 1948 .db #0x3F + 075C 48 1949 .db #0x48 + 075D BF 1950 .db #0xBF + 075E 88 1951 .db #0x88 + 075F 7F 1952 .db #0x7F + 0760 E8 1953 .db #0xE8 + 0761 1F 1954 .db #0x1F + 0762 88 1955 .db #0x88 + 0763 7F 1956 .db #0x7F + 0764 48 1957 .db #0x48 + 0765 BF 1958 .db #0xBF + 0766 12 1959 .db #0x12 + 0767 FD 1960 .db #0xFD + 0768 12 1961 .db #0x12 + 0769 FD 1962 .db #0xFD + 076A 1B 1963 .db #0x1B + 076B FC 1964 .db #0xFC + 076C 0B 1965 .db #0x0B + 076D FF 1966 .db #0xFF + 076E 2F 1967 .db #0x2F + 076F FF 1968 .db #0xFF + 0770 16 1969 .db #0x16 + 0771 FF 1970 .db #0xFF + 0772 00 1971 .db #0x00 + 0773 FF 1972 .db #0xFF + 0774 00 1973 .db #0x00 + 0775 FF 1974 .db #0xFF + 0776 AA 1975 .db #0xAA + 0777 55 1976 .db #0x55 + 0778 EA 1977 .db #0xEA + 0779 15 1978 .db #0x15 + 077A 10 1979 .db #0x10 + 077B EF 1980 .db #0xEF + 077C 7F 1981 .db #0x7F + 077D FF 1982 .db #0xFF + 077E FF 1983 .db #0xFF + 077F FF 1984 .db #0xFF + 0780 BA 1985 .db #0xBA + 0781 FF 1986 .db #0xFF + 0782 00 1987 .db #0x00 + 0783 FF 1988 .db #0xFF + 0784 00 1989 .db #0x00 + 0785 FF 1990 .db #0xFF + 0786 52 1991 .db #0x52 + 0787 AD 1992 .db #0xAD + 0788 AA 1993 .db #0xAA + 0789 55 1994 .db #0x55 + 078A 57 1995 .db #0x57 + 078B FF 1996 .db #0xFF + 078C FF 1997 .db #0xFF + 078D FF 1998 .db #0xFF + 078E FE 1999 .db #0xFE + 078F FF 2000 .db #0xFF + 0790 A8 2001 .db #0xA8 + 0791 FF 2002 .db #0xFF + 0792 04 2003 .db #0x04 + 0793 FF 2004 .db #0xFF + 0794 00 2005 .db #0x00 + 0795 FF 2006 .db #0xFF + 0796 83 2007 .db #0x83 + 0797 FC 2008 .db #0xFC + 0798 81 2009 .db #0x81 + 0799 FE 2010 .db #0xFE + 079A 41 2011 .db #0x41 + 079B FE 2012 .db #0xFE + 079C 83 2013 .db #0x83 + 079D FC 2014 .db #0xFC + 079E 83 2015 .db #0x83 + 079F FC 2016 .db #0xFC + 07A0 01 2017 .db #0x01 + 07A1 FE 2018 .db #0xFE + 07A2 01 2019 .db #0x01 + 07A3 FE 2020 .db #0xFE + 07A4 01 2021 .db #0x01 + 07A5 FE 2022 .db #0xFE + 07A6 4F 2023 .db #0x4F + 07A7 BF 2024 .db #0xBF + 07A8 C7 2025 .db #0xC7 + 07A9 3E 2026 .db #0x3E + 07AA CF 2027 .db #0xCF + 07AB 3F 2028 .db #0x3F + 07AC E6 2029 .db #0xE6 + 07AD 1F 2030 .db #0x1F + 07AE D7 2031 .db #0xD7 + 07AF 2F 2032 .db #0x2F + 07B0 D6 2033 .db #0xD6 + 07B1 2F 2034 .db #0x2F + 07B2 E7 2035 .db #0xE7 + 07B3 1F 2036 .db #0x1F + 07B4 A6 2037 .db #0xA6 + 07B5 5F 2038 .db #0x5F + 07B6 D7 2039 .db #0xD7 + 07B7 F8 2040 .db #0xF8 + 07B8 FF 2041 .db #0xFF + 07B9 F0 2042 .db #0xF0 + 07BA EF 2043 .db #0xEF + 07BB B0 2044 .db #0xB0 + 07BC EF 2045 .db #0xEF + 07BD F0 2046 .db #0xF0 + 07BE 7F 2047 .db #0x7F + 07BF D0 2048 .db #0xD0 + 07C0 BF 2049 .db #0xBF + 07C1 C8 2050 .db #0xC8 + 07C2 7F 2051 .db #0x7F + 07C3 82 2052 .db #0x82 + 07C4 FF 2053 .db #0xFF + 07C5 00 2054 .db #0x00 + 07C6 E7 2055 .db #0xE7 + 07C7 18 2056 .db #0x18 + 07C8 E1 2057 .db #0xE1 + 07C9 1F 2058 .db #0x1F + 07CA EF 2059 .db #0xEF + 07CB 1F 2060 .db #0x1F + 07CC AD 2061 .db #0xAD + 07CD 5F 2062 .db #0x5F + 07CE D7 2063 .db #0xD7 + 07CF 3F 2064 .db #0x3F + 07D0 9B 2065 .db #0x9B + 07D1 7F 2066 .db #0x7F + 07D2 3F 2067 .db #0x3F + 07D3 FB 2068 .db #0xFB + 07D4 3F 2069 .db #0x3F + 07D5 FF 2070 .db #0xFF + 07D6 7F 2071 .db #0x7F + 07D7 FC 2072 .db #0xFC + 07D8 D9 2073 .db #0xD9 + 07D9 FE 2074 .db #0xFE + 07DA FB 2075 .db #0xFB + 07DB EC 2076 .db #0xEC + 07DC F9 2077 .db #0xF9 + 07DD FE 2078 .db #0xFE + 07DE BA 2079 .db #0xBA + 07DF ED 2080 .db #0xED + 07E0 E9 2081 .db #0xE9 + 07E1 FE 2082 .db #0xFE + 07E2 F5 2083 .db #0xF5 + 07E3 7E 2084 .db #0x7E + 07E4 F9 2085 .db #0xF9 + 07E5 FE 2086 .db #0xFE + 07E6 7F 2087 .db #0x7F + 07E7 80 2088 .db #0x80 + 07E8 FF 2089 .db #0xFF + 07E9 00 2090 .db #0x00 + 07EA 4A 2091 .db #0x4A + 07EB B5 2092 .db #0xB5 + 07EC FF 2093 .db #0xFF + 07ED 3F 2094 .db #0x3F + 07EE BF 2095 .db #0xBF + 07EF 7F 2096 .db #0x7F + 07F0 FF 2097 .db #0xFF + 07F1 3F 2098 .db #0x3F + 07F2 7F 2099 .db #0x7F + 07F3 BF 2100 .db #0xBF + 07F4 80 2101 .db #0x80 + 07F5 7F 2102 .db #0x7F + 07F6 FF 2103 .db #0xFF + 07F7 00 2104 .db #0x00 + 07F8 FF 2105 .db #0xFF + 07F9 00 2106 .db #0x00 + 07FA 5F 2107 .db #0x5F + 07FB A0 2108 .db #0xA0 + 07FC FF 2109 .db #0xFF + 07FD FF 2110 .db #0xFF + 07FE FF 2111 .db #0xFF + 07FF FF 2112 .db #0xFF + 0800 FF 2113 .db #0xFF + 0801 FF 2114 .db #0xFF + 0802 FF 2115 .db #0xFF + 0803 FF 2116 .db #0xFF + 0804 00 2117 .db #0x00 + 0805 FF 2118 .db #0xFF + 0806 FF 2119 .db #0xFF + 0807 00 2120 .db #0x00 + 0808 FF 2121 .db #0xFF + 0809 00 2122 .db #0x00 + 080A FF 2123 .db #0xFF + 080B 00 2124 .db #0x00 + 080C FF 2125 .db #0xFF + 080D FF 2126 .db #0xFF + 080E FF 2127 .db #0xFF + 080F FF 2128 .db #0xFF + 0810 FF 2129 .db #0xFF + 0811 FF 2130 .db #0xFF + 0812 FF 2131 .db #0xFF + 0813 FF 2132 .db #0xFF + 0814 10 2133 .db #0x10 + 0815 FF 2134 .db #0xFF + 0816 FF 2135 .db #0xFF + 0817 00 2136 .db #0x00 + 0818 FF 2137 .db #0xFF + 0819 00 2138 .db #0x00 + 081A FF 2139 .db #0xFF + 081B 00 2140 .db #0x00 + 081C FB 2141 .db #0xFB + 081D FF 2142 .db #0xFF + 081E FF 2143 .db #0xFF + 081F FF 2144 .db #0xFF + 0820 FF 2145 .db #0xFF + 0821 FF 2146 .db #0xFF + 0822 FF 2147 .db #0xFF + 0823 FF 2148 .db #0xFF + 0824 AD 2149 .db #0xAD + 0825 FF 2150 .db #0xFF + 0826 70 2151 .db #0x70 + 0827 FF 2152 .db #0xFF + 0828 F8 2153 .db #0xF8 + 0829 FF 2154 .db #0xFF + 082A B8 2155 .db #0xB8 + 082B FF 2156 .db #0xFF + 082C F8 2157 .db #0xF8 + 082D FF 2158 .db #0xFF + 082E D8 2159 .db #0xD8 + 082F FF 2160 .db #0xFF + 0830 F0 2161 .db #0xF0 + 0831 FF 2162 .db #0xFF + 0832 F8 2163 .db #0xF8 + 0833 FF 2164 .db #0xFF + 0834 50 2165 .db #0x50 + 0835 FF 2166 .db #0xFF + 0836 00 2167 .db #0x00 + 0837 FF 2168 .db #0xFF + 0838 00 2169 .db #0x00 + 0839 FF 2170 .db #0xFF + 083A 04 2171 .db #0x04 + 083B FF 2172 .db #0xFF + 083C 00 2173 .db #0x00 + 083D FF 2174 .db #0xFF + 083E 04 2175 .db #0x04 + 083F FF 2176 .db #0xFF + 0840 00 2177 .db #0x00 + 0841 FF 2178 .db #0xFF + 0842 2A 2179 .db #0x2A + 0843 FF 2180 .db #0xFF + 0844 00 2181 .db #0x00 + 0845 FF 2182 .db #0xFF + 0846 B2 2183 .db #0xB2 + 0847 DD 2184 .db #0xDD + 0848 80 2185 .db #0x80 + 0849 FF 2186 .db #0xFF + 084A FF 2187 .db #0xFF + 084B FF 2188 .db #0xFF + 084C FF 2189 .db #0xFF + 084D FF 2190 .db #0xFF + 084E FF 2191 .db #0xFF + 084F FF 2192 .db #0xFF + 0850 FF 2193 .db #0xFF + 0851 FF 2194 .db #0xFF + 0852 FF 2195 .db #0xFF + 0853 FF 2196 .db #0xFF + 0854 80 2197 .db #0x80 + 0855 FF 2198 .db #0xFF + 0856 44 2199 .db #0x44 + 0857 BB 2200 .db #0xBB + 0858 00 2201 .db #0x00 + 0859 FF 2202 .db #0xFF + 085A FF 2203 .db #0xFF + 085B FF 2204 .db #0xFF + 085C FF 2205 .db #0xFF + 085D FF 2206 .db #0xFF + 085E FF 2207 .db #0xFF + 085F FF 2208 .db #0xFF + 0860 FF 2209 .db #0xFF + 0861 FF 2210 .db #0xFF + 0862 6A 2211 .db #0x6A + 0863 FF 2212 .db #0xFF + 0864 01 2213 .db #0x01 + 0865 FF 2214 .db #0xFF + 0866 18 2215 .db #0x18 + 0867 FF 2216 .db #0xFF + 0868 18 2217 .db #0x18 + 0869 FF 2218 .db #0xFF + 086A F8 2219 .db #0xF8 + 086B FF 2220 .db #0xFF + 086C F8 2221 .db #0xF8 + 086D FF 2222 .db #0xFF + 086E F8 2223 .db #0xF8 + 086F FF 2224 .db #0xFF + 0870 C0 2225 .db #0xC0 + 0871 FF 2226 .db #0xFF + 0872 00 2227 .db #0x00 + 0873 FF 2228 .db #0xFF + 0874 00 2229 .db #0x00 + 0875 FF 2230 .db #0xFF + 0876 08 2231 .db #0x08 + 0877 FF 2232 .db #0xFF + 0878 00 2233 .db #0x00 + 0879 FF 2234 .db #0xFF + 087A 00 2235 .db #0x00 + 087B FF 2236 .db #0xFF + 087C 00 2237 .db #0x00 + 087D FF 2238 .db #0xFF + 087E 00 2239 .db #0x00 + 087F FF 2240 .db #0xFF + 0880 00 2241 .db #0x00 + 0881 FF 2242 .db #0xFF + 0882 00 2243 .db #0x00 + 0883 FF 2244 .db #0xFF + 0884 00 2245 .db #0x00 + 0885 FF 2246 .db #0xFF + 0886 FF 2247 .db #0xFF + 0887 00 2248 .db #0x00 + 0888 FF 2249 .db #0xFF + 0889 00 2250 .db #0x00 + 088A FF 2251 .db #0xFF + 088B 00 2252 .db #0x00 + 088C 3F 2253 .db #0x3F + 088D C0 2254 .db #0xC0 + 088E 7F 2255 .db #0x7F + 088F 80 2256 .db #0x80 + 0890 7F 2257 .db #0x7F + 0891 80 2258 .db #0x80 + 0892 3F 2259 .db #0x3F + 0893 C0 2260 .db #0xC0 + 0894 3F 2261 .db #0x3F + 0895 C0 2262 .db #0xC0 + 0896 D5 2263 .db #0xD5 + 0897 2E 2264 .db #0x2E + 0898 C3 2265 .db #0xC3 + 0899 3C 2266 .db #0x3C + 089A 87 2267 .db #0x87 + 089B 78 2268 .db #0x78 + 089C 9F 2269 .db #0x9F + 089D 60 2270 .db #0x60 + 089E 7F 2271 .db #0x7F + 089F 80 2272 .db #0x80 + 08A0 7F 2273 .db #0x7F + 08A1 80 2274 .db #0x80 + 08A2 FF 2275 .db #0xFF + 08A3 00 2276 .db #0x00 + 08A4 FF 2277 .db #0xFF + 08A5 00 2278 .db #0x00 + 08A6 F8 2279 .db #0xF8 + 08A7 07 2280 .db #0x07 + 08A8 FF 2281 .db #0xFF + 08A9 00 2282 .db #0x00 + 08AA FA 2283 .db #0xFA + 08AB 05 2284 .db #0x05 + 08AC FF 2285 .db #0xFF + 08AD 01 2286 .db #0x01 + 08AE E9 2287 .db #0xE9 + 08AF 17 2288 .db #0x17 + 08B0 FD 2289 .db #0xFD + 08B1 03 2290 .db #0x03 + 08B2 AB 2291 .db #0xAB + 08B3 57 2292 .db #0x57 + 08B4 DB 2293 .db #0xDB + 08B5 27 2294 .db #0x27 + 08B6 FF 2295 .db #0xFF + 08B7 7F 2296 .db #0x7F + 08B8 7F 2297 .db #0x7F + 08B9 FF 2298 .db #0xFF + 08BA FF 2299 .db #0xFF + 08BB FF 2300 .db #0xFF + 08BC FF 2301 .db #0xFF + 08BD FF 2302 .db #0xFF + 08BE FF 2303 .db #0xFF + 08BF FF 2304 .db #0xFF + 08C0 FF 2305 .db #0xFF + 08C1 FF 2306 .db #0xFF + 08C2 FF 2307 .db #0xFF + 08C3 FF 2308 .db #0xFF + 08C4 FF 2309 .db #0xFF + 08C5 FF 2310 .db #0xFF + 08C6 BD 2311 .db #0xBD + 08C7 FE 2312 .db #0xFE + 08C8 F5 2313 .db #0xF5 + 08C9 FE 2314 .db #0xFE + 08CA FD 2315 .db #0xFD + 08CB BE 2316 .db #0xBE + 08CC FD 2317 .db #0xFD + 08CD FE 2318 .db #0xFE + 08CE FC 2319 .db #0xFC + 08CF FF 2320 .db #0xFF + 08D0 FD 2321 .db #0xFD + 08D1 FE 2322 .db #0xFE + 08D2 F9 2323 .db #0xF9 + 08D3 FE 2324 .db #0xFE + 08D4 F0 2325 .db #0xF0 + 08D5 FF 2326 .db #0xFF + 08D6 40 2327 .db #0x40 + 08D7 BF 2328 .db #0xBF + 08D8 40 2329 .db #0x40 + 08D9 BF 2330 .db #0xBF + 08DA 80 2331 .db #0x80 + 08DB 7F 2332 .db #0x7F + 08DC 80 2333 .db #0x80 + 08DD 7F 2334 .db #0x7F + 08DE C0 2335 .db #0xC0 + 08DF 3F 2336 .db #0x3F + 08E0 40 2337 .db #0x40 + 08E1 BF 2338 .db #0xBF + 08E2 80 2339 .db #0x80 + 08E3 7F 2340 .db #0x7F + 08E4 C2 2341 .db #0xC2 + 08E5 3F 2342 .db #0x3F + 08E6 10 2343 .db #0x10 + 08E7 FF 2344 .db #0xFF + 08E8 14 2345 .db #0x14 + 08E9 FF 2346 .db #0xFF + 08EA 80 2347 .db #0x80 + 08EB FF 2348 .db #0xFF + 08EC 28 2349 .db #0x28 + 08ED FF 2350 .db #0xFF + 08EE 10 2351 .db #0x10 + 08EF FF 2352 .db #0xFF + 08F0 88 2353 .db #0x88 + 08F1 FF 2354 .db #0xFF + 08F2 00 2355 .db #0x00 + 08F3 FF 2356 .db #0xFF + 08F4 00 2357 .db #0x00 + 08F5 FF 2358 .db #0xFF + 08F6 1F 2359 .db #0x1F + 08F7 E0 2360 .db #0xE0 + 08F8 1F 2361 .db #0x1F + 08F9 E0 2362 .db #0xE0 + 08FA 1F 2363 .db #0x1F + 08FB E0 2364 .db #0xE0 + 08FC 0F 2365 .db #0x0F + 08FD F0 2366 .db #0xF0 + 08FE 0E 2367 .db #0x0E + 08FF F1 2368 .db #0xF1 + 0900 07 2369 .db #0x07 + 0901 F8 2370 .db #0xF8 + 0902 07 2371 .db #0x07 + 0903 F8 2372 .db #0xF8 + 0904 03 2373 .db #0x03 + 0905 FC 2374 .db #0xFC + 0906 FF 2375 .db #0xFF + 0907 00 2376 .db #0x00 + 0908 FF 2377 .db #0xFF + 0909 00 2378 .db #0x00 + 090A FE 2379 .db #0xFE + 090B 01 2380 .db #0x01 + 090C FE 2381 .db #0xFE + 090D 01 2382 .db #0x01 + 090E F5 2383 .db #0xF5 + 090F 0A 2384 .db #0x0A + 0910 F5 2385 .db #0xF5 + 0911 0A 2386 .db #0x0A + 0912 D8 2387 .db #0xD8 + 0913 27 2388 .db #0x27 + 0914 EA 2389 .db #0xEA + 0915 15 2390 .db #0x15 + 0916 6F 2391 .db #0x6F + 0917 97 2392 .db #0x97 + 0918 A7 2393 .db #0xA7 + 0919 5F 2394 .db #0x5F + 091A AF 2395 .db #0xAF + 091B 5F 2396 .db #0x5F + 091C 9F 2397 .db #0x9F + 091D 7F 2398 .db #0x7F + 091E 5F 2399 .db #0x5F + 091F BF 2400 .db #0xBF + 0920 3F 2401 .db #0x3F + 0921 FF 2402 .db #0xFF + 0922 BF 2403 .db #0xBF + 0923 7F 2404 .db #0x7F + 0924 7F 2405 .db #0x7F + 0925 FF 2406 .db #0xFF + 0926 F3 2407 .db #0xF3 + 0927 FC 2408 .db #0xFC + 0928 F0 2409 .db #0xF0 + 0929 FF 2410 .db #0xFF + 092A E9 2411 .db #0xE9 + 092B FE 2412 .db #0xFE + 092C F0 2413 .db #0xF0 + 092D FF 2414 .db #0xFF + 092E E1 2415 .db #0xE1 + 092F FE 2416 .db #0xFE + 0930 F8 2417 .db #0xF8 + 0931 FF 2418 .db #0xFF + 0932 F1 2419 .db #0xF1 + 0933 FE 2420 .db #0xFE + 0934 F8 2421 .db #0xF8 + 0935 FF 2422 .db #0xFF + 0936 94 2423 .db #0x94 + 0937 7F 2424 .db #0x7F + 0938 DF 2425 .db #0xDF + 0939 3F 2426 .db #0x3F + 093A 9F 2427 .db #0x9F + 093B 7F 2428 .db #0x7F + 093C DF 2429 .db #0xDF + 093D 3F 2430 .db #0x3F + 093E 5F 2431 .db #0x5F + 093F BF 2432 .db #0xBF + 0940 5F 2433 .db #0x5F + 0941 BF 2434 .db #0xBF + 0942 7F 2435 .db #0x7F + 0943 9F 2436 .db #0x9F + 0944 4F 2437 .db #0x4F + 0945 BF 2438 .db #0xBF + 0946 07 2439 .db #0x07 + 0947 F8 2440 .db #0xF8 + 0948 01 2441 .db #0x01 + 0949 FE 2442 .db #0xFE + 094A 04 2443 .db #0x04 + 094B FF 2444 .db #0xFF + 094C 06 2445 .db #0x06 + 094D FF 2446 .db #0xFF + 094E 07 2447 .db #0x07 + 094F FF 2448 .db #0xFF + 0950 07 2449 .db #0x07 + 0951 FF 2450 .db #0xFF + 0952 07 2451 .db #0x07 + 0953 FF 2452 .db #0xFF + 0954 03 2453 .db #0x03 + 0955 FF 2454 .db #0xFF + 0956 84 2455 .db #0x84 + 0957 7B 2456 .db #0x7B + 0958 45 2457 .db #0x45 + 0959 BB 2458 .db #0xBB + 095A 13 2459 .db #0x13 + 095B EF 2460 .db #0xEF + 095C 07 2461 .db #0x07 + 095D FF 2462 .db #0xFF + 095E 0F 2463 .db #0x0F + 095F FF 2464 .db #0xFF + 0960 FF 2465 .db #0xFF + 0961 FF 2466 .db #0xFF + 0962 FF 2467 .db #0xFF + 0963 FF 2468 .db #0xFF + 0964 BF 2469 .db #0xBF + 0965 FF 2470 .db #0xFF + 0966 F9 2471 .db #0xF9 + 0967 FE 2472 .db #0xFE + 0968 FC 2473 .db #0xFC + 0969 FF 2474 .db #0xFF + 096A F9 2475 .db #0xF9 + 096B FE 2476 .db #0xFE + 096C FE 2477 .db #0xFE + 096D FF 2478 .db #0xFF + 096E FC 2479 .db #0xFC + 096F FF 2480 .db #0xFF + 0970 FF 2481 .db #0xFF + 0971 FF 2482 .db #0xFF + 0972 FD 2483 .db #0xFD + 0973 FF 2484 .db #0xFF + 0974 FD 2485 .db #0xFD + 0975 FF 2486 .db #0xFF + 0976 6F 2487 .db #0x6F + 0977 9F 2488 .db #0x9F + 0978 2F 2489 .db #0x2F + 0979 DF 2490 .db #0xDF + 097A 57 2491 .db #0x57 + 097B AF 2492 .db #0xAF + 097C 57 2493 .db #0x57 + 097D AF 2494 .db #0xAF + 097E 17 2495 .db #0x17 + 097F EF 2496 .db #0xEF + 0980 17 2497 .db #0x17 + 0981 EF 2498 .db #0xEF + 0982 2B 2499 .db #0x2B + 0983 D7 2500 .db #0xD7 + 0984 8B 2501 .db #0x8B + 0985 F7 2502 .db #0xF7 + 0986 0F 2503 .db #0x0F + 0987 FF 2504 .db #0xFF + 0988 07 2505 .db #0x07 + 0989 FF 2506 .db #0xFF + 098A 0F 2507 .db #0x0F + 098B FF 2508 .db #0xFF + 098C 07 2509 .db #0x07 + 098D FF 2510 .db #0xFF + 098E 0F 2511 .db #0x0F + 098F FF 2512 .db #0xFF + 0990 0F 2513 .db #0x0F + 0991 FF 2514 .db #0xFF + 0992 5F 2515 .db #0x5F + 0993 FF 2516 .db #0xFF + 0994 0F 2517 .db #0x0F + 0995 F7 2518 .db #0xF7 + 0996 AB 2519 .db #0xAB + 0997 D7 2520 .db #0xD7 + 0998 CB 2521 .db #0xCB + 0999 F7 2522 .db #0xF7 + 099A DB 2523 .db #0xDB + 099B E7 2524 .db #0xE7 + 099C 4B 2525 .db #0x4B + 099D F7 2526 .db #0xF7 + 099E CD 2527 .db #0xCD + 099F F3 2528 .db #0xF3 + 09A0 C5 2529 .db #0xC5 + 09A1 FB 2530 .db #0xFB + 09A2 C9 2531 .db #0xC9 + 09A3 77 2532 .db #0x77 + 09A4 ED 2533 .db #0xED + 09A5 F3 2534 .db #0xF3 + 09A6 1F 2535 .db #0x1F + 09A7 FE 2536 .db #0xFE + 09A8 0F 2537 .db #0x0F + 09A9 FF 2538 .db #0xFF + 09AA 1B 2539 .db #0x1B + 09AB FF 2540 .db #0xFF + 09AC 0F 2541 .db #0x0F + 09AD FF 2542 .db #0xFF + 09AE 1F 2543 .db #0x1F + 09AF FF 2544 .db #0xFF + 09B0 1F 2545 .db #0x1F + 09B1 FF 2546 .db #0xFF + 09B2 3F 2547 .db #0x3F + 09B3 FF 2548 .db #0xFF + 09B4 1F 2549 .db #0x1F + 09B5 EF 2550 .db #0xEF + 09B6 E5 2551 .db #0xE5 + 09B7 FB 2552 .db #0xFB + 09B8 F5 2553 .db #0xF5 + 09B9 FB 2554 .db #0xFB + 09BA F5 2555 .db #0xF5 + 09BB FB 2556 .db #0xFB + 09BC F5 2557 .db #0xF5 + 09BD FB 2558 .db #0xFB + 09BE E4 2559 .db #0xE4 + 09BF FB 2560 .db #0xFB + 09C0 F2 2561 .db #0xF2 + 09C1 FD 2562 .db #0xFD + 09C2 F2 2563 .db #0xF2 + 09C3 FD 2564 .db #0xFD + 09C4 F0 2565 .db #0xF0 + 09C5 FF 2566 .db #0xFF + 09C6 3F 2567 .db #0x3F + 09C7 FF 2568 .db #0xFF + 09C8 1F 2569 .db #0x1F + 09C9 FF 2570 .db #0xFF + 09CA 1F 2571 .db #0x1F + 09CB FF 2572 .db #0xFF + 09CC 1F 2573 .db #0x1F + 09CD FF 2574 .db #0xFF + 09CE 5F 2575 .db #0x5F + 09CF FF 2576 .db #0xFF + 09D0 3F 2577 .db #0x3F + 09D1 FF 2578 .db #0xFF + 09D2 3F 2579 .db #0x3F + 09D3 FF 2580 .db #0xFF + 09D4 1F 2581 .db #0x1F + 09D5 FF 2582 .db #0xFF + 09D6 F2 2583 .db #0xF2 + 09D7 FD 2584 .db #0xFD + 09D8 F8 2585 .db #0xF8 + 09D9 FF 2586 .db #0xFF + 09DA F8 2587 .db #0xF8 + 09DB FF 2588 .db #0xFF + 09DC FA 2589 .db #0xFA + 09DD FD 2590 .db #0xFD + 09DE F8 2591 .db #0xF8 + 09DF FF 2592 .db #0xFF + 09E0 F8 2593 .db #0xF8 + 09E1 FF 2594 .db #0xFF + 09E2 F9 2595 .db #0xF9 + 09E3 FE 2596 .db #0xFE + 09E4 FC 2597 .db #0xFC + 09E5 FF 2598 .db #0xFF + 09E6 FF 2599 .db #0xFF + 09E7 FF 2600 .db #0xFF + 09E8 FF 2601 .db #0xFF + 09E9 FF 2602 .db #0xFF + 09EA FF 2603 .db #0xFF + 09EB FF 2604 .db #0xFF + 09EC FF 2605 .db #0xFF + 09ED FF 2606 .db #0xFF + 09EE FF 2607 .db #0xFF + 09EF FF 2608 .db #0xFF + 09F0 7F 2609 .db #0x7F + 09F1 FF 2610 .db #0xFF + 09F2 7F 2611 .db #0x7F + 09F3 FF 2612 .db #0xFF + 09F4 7F 2613 .db #0x7F + 09F5 FF 2614 .db #0xFF + 09F6 2615 _bg_tilemap: + 09F6 01 2616 .db #0x01 + 09F7 01 2617 .db #0x01 + 09F8 02 2618 .db #0x02 + 09F9 03 2619 .db #0x03 + 09FA 03 2620 .db #0x03 + 09FB 04 2621 .db #0x04 + 09FC 05 2622 .db #0x05 + 09FD 06 2623 .db #0x06 + 09FE 07 2624 .db #0x07 + 09FF 08 2625 .db #0x08 + 0A00 09 2626 .db #0x09 + 0A01 0A 2627 .db #0x0A + 0A02 0B 2628 .db #0x0B + 0A03 0C 2629 .db #0x0C + 0A04 0D 2630 .db #0x0D + 0A05 0E 2631 .db #0x0E + 0A06 0F 2632 .db #0x0F + 0A07 10 2633 .db #0x10 + 0A08 03 2634 .db #0x03 + 0A09 03 2635 .db #0x03 + 0A0A 01 2636 .db #0x01 + 0A0B 01 2637 .db #0x01 + 0A0C 11 2638 .db #0x11 + 0A0D 03 2639 .db #0x03 + 0A0E 03 2640 .db #0x03 + 0A0F 12 2641 .db #0x12 + 0A10 13 2642 .db #0x13 + 0A11 03 2643 .db #0x03 + 0A12 14 2644 .db #0x14 + 0A13 15 2645 .db #0x15 + 0A14 16 2646 .db #0x16 + 0A15 17 2647 .db #0x17 + 0A16 18 2648 .db #0x18 + 0A17 19 2649 .db #0x19 + 0A18 1A 2650 .db #0x1A + 0A19 1B 2651 .db #0x1B + 0A1A 0F 2652 .db #0x0F + 0A1B 1C 2653 .db #0x1C + 0A1C 1D 2654 .db #0x1D + 0A1D 03 2655 .db #0x03 + 0A1E 1E 2656 .db #0x1E + 0A1F 1F 2657 .db #0x1F + 0A20 20 2658 .db #0x20 + 0A21 03 2659 .db #0x03 + 0A22 03 2660 .db #0x03 + 0A23 21 2661 .db #0x21 + 0A24 22 2662 .db #0x22 + 0A25 23 2663 .db #0x23 + 0A26 24 2664 .db #0x24 + 0A27 25 2665 .db #0x25 + 0A28 26 2666 .db #0x26 + 0A29 27 2667 .db #0x27 + 0A2A 28 2668 .db #0x28 + 0A2B 29 2669 .db #0x29 + 0A2C 2A 2670 .db #0x2A + 0A2D 2B 2671 .db #0x2B + 0A2E 0F 2672 .db #0x0F + 0A2F 2C 2673 .db #0x2C + 0A30 2D 2674 .db #0x2D + 0A31 2E 2675 .db #0x2E + 0A32 03 2676 .db #0x03 + 0A33 03 2677 .db #0x03 + 0A34 03 2678 .db #0x03 + 0A35 03 2679 .db #0x03 + 0A36 2F 2680 .db #0x2F + 0A37 30 2681 .db #0x30 + 0A38 31 2682 .db #0x31 + 0A39 32 2683 .db #0x32 + 0A3A 33 2684 .db #0x33 + 0A3B 34 2685 .db #0x34 + 0A3C 35 2686 .db #0x35 + 0A3D 36 2687 .db #0x36 + 0A3E 37 2688 .db #0x37 + 0A3F 38 2689 .db #0x38 + 0A40 39 2690 .db #0x39 + 0A41 3A 2691 .db #0x3A + 0A42 0F 2692 .db #0x0F + 0A43 3B 2693 .db #0x3B + 0A44 0F 2694 .db #0x0F + 0A45 3C 2695 .db #0x3C + 0A46 3D 2696 .db #0x3D + 0A47 3E 2697 .db #0x3E + 0A48 3F 2698 .db #0x3F + 0A49 03 2699 .db #0x03 + 0A4A 40 2700 .db #0x40 + 0A4B 41 2701 .db #0x41 + 0A4C 42 2702 .db #0x42 + 0A4D 43 2703 .db #0x43 + 0A4E 44 2704 .db #0x44 + 0A4F 45 2705 .db #0x45 + 0A50 0F 2706 .db #0x0F + 0A51 46 2707 .db #0x46 + 0A52 47 2708 .db #0x47 + 0A53 48 2709 .db #0x48 + 0A54 49 2710 .db #0x49 + 0A55 4A 2711 .db #0x4A + 0A56 0F 2712 .db #0x0F + 0A57 4B 2713 .db #0x4B + 0A58 0F 2714 .db #0x0F + 0A59 4C 2715 .db #0x4C + 0A5A 4D 2716 .db #0x4D + 0A5B 4E 2717 .db #0x4E + 0A5C 4F 2718 .db #0x4F + 0A5D 03 2719 .db #0x03 + 0A5E 50 2720 .db #0x50 + 0A5F 51 2721 .db #0x51 + 0A60 52 2722 .db #0x52 + 0A61 53 2723 .db #0x53 + 0A62 54 2724 .db #0x54 + 0A63 55 2725 .db #0x55 + 0A64 0F 2726 .db #0x0F + 0A65 0F 2727 .db #0x0F + 0A66 56 2728 .db #0x56 + 0A67 57 2729 .db #0x57 + 0A68 58 2730 .db #0x58 + 0A69 59 2731 .db #0x59 + 0A6A 0F 2732 .db #0x0F + 0A6B 5A 2733 .db #0x5A + 0A6C 5B 2734 .db #0x5B + 0A6D 5C 2735 .db #0x5C + 0A6E 5D 2736 .db #0x5D + 0A6F 5E 2737 .db #0x5E + 0A70 5F 2738 .db #0x5F + 0A71 03 2739 .db #0x03 + 0A72 60 2740 .db #0x60 + 0A73 61 2741 .db #0x61 + 0A74 62 2742 .db #0x62 + 0A75 63 2743 .db #0x63 + 0A76 64 2744 .db #0x64 + 0A77 65 2745 .db #0x65 + 0A78 66 2746 .db #0x66 + 0A79 67 2747 .db #0x67 + 0A7A 68 2748 .db #0x68 + 0A7B 69 2749 .db #0x69 + 0A7C 6A 2750 .db #0x6A + 0A7D 0F 2751 .db #0x0F + 0A7E 0F 2752 .db #0x0F + 0A7F 6B 2753 .db #0x6B + 0A80 03 2754 .db #0x03 + 0A81 03 2755 .db #0x03 + 0A82 6C 2756 .db #0x6C + 0A83 6D 2757 .db #0x6D + 0A84 6E 2758 .db #0x6E + 0A85 03 2759 .db #0x03 + 0A86 6F 2760 .db #0x6F + 0A87 70 2761 .db #0x70 + 0A88 71 2762 .db #0x71 + 0A89 72 2763 .db #0x72 + 0A8A 0F 2764 .db #0x0F + 0A8B 73 2765 .db #0x73 + 0A8C 74 2766 .db #0x74 + 0A8D 75 2767 .db #0x75 + 0A8E 76 2768 .db #0x76 + 0A8F 77 2769 .db #0x77 + 0A90 78 2770 .db #0x78 + 0A91 79 2771 .db #0x79 + 0A92 7A 2772 .db #0x7A + 0A93 7B 2773 .db #0x7B + 0A94 03 2774 .db #0x03 + 0A95 7C 2775 .db #0x7C + 0A96 7D 2776 .db #0x7D + 0A97 7E 2777 .db #0x7E + 0A98 7F 2778 .db #0x7F + 0A99 03 2779 .db #0x03 + 0A9A 03 2780 .db #0x03 + 0A9B 03 2781 .db #0x03 + 0A9C 80 2782 .db #0x80 + 0A9D 03 2783 .db #0x03 + 0A9E 81 2784 .db #0x81 + 0A9F 82 2785 .db #0x82 + 0AA0 83 2786 .db #0x83 + 0AA1 84 2787 .db #0x84 + 0AA2 85 2788 .db #0x85 + 0AA3 86 2789 .db #0x86 + 0AA4 03 2790 .db #0x03 + 0AA5 03 2791 .db #0x03 + 0AA6 03 2792 .db #0x03 + 0AA7 03 2793 .db #0x03 + 0AA8 03 2794 .db #0x03 + 0AA9 87 2795 .db #0x87 + 0AAA 03 2796 .db #0x03 + 0AAB 03 2797 .db #0x03 + 0AAC 03 2798 .db #0x03 + 0AAD 03 2799 .db #0x03 + 0AAE 03 2800 .db #0x03 + 0AAF 03 2801 .db #0x03 + 0AB0 03 2802 .db #0x03 + 0AB1 03 2803 .db #0x03 + 0AB2 88 2804 .db #0x88 + 0AB3 89 2805 .db #0x89 + 0AB4 8A 2806 .db #0x8A + 0AB5 01 2807 .db #0x01 + 0AB6 8B 2808 .db #0x8B + 0AB7 8C 2809 .db #0x8C + 0AB8 01 2810 .db #0x01 + 0AB9 01 2811 .db #0x01 + 0ABA 01 2812 .db #0x01 + 0ABB 01 2813 .db #0x01 + 0ABC 01 2814 .db #0x01 + 0ABD 01 2815 .db #0x01 + 0ABE 03 2816 .db #0x03 + 0ABF 03 2817 .db #0x03 + 0AC0 03 2818 .db #0x03 + 0AC1 03 2819 .db #0x03 + 0AC2 03 2820 .db #0x03 + 0AC3 03 2821 .db #0x03 + 0AC4 03 2822 .db #0x03 + 0AC5 03 2823 .db #0x03 + 0AC6 8D 2824 .db #0x8D + 0AC7 8E 2825 .db #0x8E + 0AC8 01 2826 .db #0x01 + 0AC9 01 2827 .db #0x01 + 0ACA 8F 2828 .db #0x8F + 0ACB 90 2829 .db #0x90 + 0ACC 01 2830 .db #0x01 + 0ACD 01 2831 .db #0x01 + 0ACE 01 2832 .db #0x01 + 0ACF 01 2833 .db #0x01 + 0AD0 01 2834 .db #0x01 + 0AD1 01 2835 .db #0x01 + 0AD2 03 2836 .db #0x03 + 0AD3 03 2837 .db #0x03 + 0AD4 03 2838 .db #0x03 + 0AD5 03 2839 .db #0x03 + 0AD6 03 2840 .db #0x03 + 0AD7 03 2841 .db #0x03 + 0AD8 03 2842 .db #0x03 + 0AD9 03 2843 .db #0x03 + 0ADA 91 2844 .db #0x91 + 0ADB 01 2845 .db #0x01 + 0ADC 01 2846 .db #0x01 + 0ADD 01 2847 .db #0x01 + 0ADE 01 2848 .db #0x01 + 0ADF 92 2849 .db #0x92 + 0AE0 01 2850 .db #0x01 + 0AE1 01 2851 .db #0x01 + 0AE2 01 2852 .db #0x01 + 0AE3 01 2853 .db #0x01 + 0AE4 01 2854 .db #0x01 + 0AE5 01 2855 .db #0x01 + 0AE6 03 2856 .db #0x03 + 0AE7 03 2857 .db #0x03 + 0AE8 03 2858 .db #0x03 + 0AE9 03 2859 .db #0x03 + 0AEA 03 2860 .db #0x03 + 0AEB 03 2861 .db #0x03 + 0AEC 03 2862 .db #0x03 + 0AED 03 2863 .db #0x03 + 0AEE 93 2864 .db #0x93 + 0AEF 01 2865 .db #0x01 + 0AF0 01 2866 .db #0x01 + 0AF1 01 2867 .db #0x01 + 0AF2 01 2868 .db #0x01 + 0AF3 94 2869 .db #0x94 + 0AF4 01 2870 .db #0x01 + 0AF5 01 2871 .db #0x01 + 0AF6 01 2872 .db #0x01 + 0AF7 01 2873 .db #0x01 + 0AF8 01 2874 .db #0x01 + 0AF9 01 2875 .db #0x01 + 0AFA 03 2876 .db #0x03 + 0AFB 03 2877 .db #0x03 + 0AFC 03 2878 .db #0x03 + 0AFD 03 2879 .db #0x03 + 0AFE 03 2880 .db #0x03 + 0AFF 03 2881 .db #0x03 + 0B00 03 2882 .db #0x03 + 0B01 03 2883 .db #0x03 + 0B02 95 2884 .db #0x95 + 0B03 01 2885 .db #0x01 + 0B04 01 2886 .db #0x01 + 0B05 01 2887 .db #0x01 + 0B06 01 2888 .db #0x01 + 0B07 96 2889 .db #0x96 + 0B08 97 2890 .db #0x97 + 0B09 01 2891 .db #0x01 + 0B0A 01 2892 .db #0x01 + 0B0B 01 2893 .db #0x01 + 0B0C 01 2894 .db #0x01 + 0B0D 01 2895 .db #0x01 + 0B0E 01 2896 .db #0x01 + 0B0F 01 2897 .db #0x01 + 0B10 01 2898 .db #0x01 + 0B11 01 2899 .db #0x01 + 0B12 01 2900 .db #0x01 + 0B13 01 2901 .db #0x01 + 0B14 01 2902 .db #0x01 + 0B15 01 2903 .db #0x01 + 0B16 01 2904 .db #0x01 + 0B17 01 2905 .db #0x01 + 0B18 01 2906 .db #0x01 + 0B19 01 2907 .db #0x01 + 0B1A 01 2908 .db #0x01 + 0B1B 01 2909 .db #0x01 + 0B1C 01 2910 .db #0x01 + 0B1D 01 2911 .db #0x01 + 0B1E 01 2912 .db #0x01 + 0B1F 01 2913 .db #0x01 + 0B20 01 2914 .db #0x01 + 0B21 01 2915 .db #0x01 + 0B22 01 2916 .db #0x01 + 0B23 01 2917 .db #0x01 + 0B24 01 2918 .db #0x01 + 0B25 01 2919 .db #0x01 + 0B26 01 2920 .db #0x01 + 0B27 01 2921 .db #0x01 + 0B28 01 2922 .db #0x01 + 0B29 01 2923 .db #0x01 + 0B2A 01 2924 .db #0x01 + 0B2B 01 2925 .db #0x01 + 0B2C 01 2926 .db #0x01 + 0B2D 01 2927 .db #0x01 + 0B2E 01 2928 .db #0x01 + 0B2F 01 2929 .db #0x01 + 0B30 01 2930 .db #0x01 + 0B31 01 2931 .db #0x01 + 0B32 01 2932 .db #0x01 + 0B33 01 2933 .db #0x01 + 0B34 01 2934 .db #0x01 + 0B35 01 2935 .db #0x01 + 0B36 01 2936 .db #0x01 + 0B37 01 2937 .db #0x01 + 0B38 01 2938 .db #0x01 + 0B39 01 2939 .db #0x01 + 0B3A 01 2940 .db #0x01 + 0B3B 01 2941 .db #0x01 + 0B3C 01 2942 .db #0x01 + 0B3D 01 2943 .db #0x01 + 0B3E 01 2944 .db #0x01 + 0B3F 01 2945 .db #0x01 + 0B40 01 2946 .db #0x01 + 0B41 01 2947 .db #0x01 + 0B42 01 2948 .db #0x01 + 0B43 01 2949 .db #0x01 + 0B44 01 2950 .db #0x01 + 0B45 01 2951 .db #0x01 + 0B46 01 2952 .db #0x01 + 0B47 01 2953 .db #0x01 + 0B48 01 2954 .db #0x01 + 0B49 01 2955 .db #0x01 + 0B4A 01 2956 .db #0x01 + 0B4B 01 2957 .db #0x01 + 0B4C 01 2958 .db #0x01 + 0B4D 01 2959 .db #0x01 + 0B4E 01 2960 .db #0x01 + 0B4F 01 2961 .db #0x01 + 0B50 01 2962 .db #0x01 + 0B51 01 2963 .db #0x01 + 0B52 01 2964 .db #0x01 + 0B53 01 2965 .db #0x01 + 0B54 01 2966 .db #0x01 + 0B55 01 2967 .db #0x01 + 0B56 01 2968 .db #0x01 + 0B57 01 2969 .db #0x01 + 0B58 01 2970 .db #0x01 + 0B59 01 2971 .db #0x01 + 0B5A 01 2972 .db #0x01 + 0B5B 01 2973 .db #0x01 + 0B5C 01 2974 .db #0x01 + 0B5D 01 2975 .db #0x01 + 0B5E 2976 _border: + 0B5E 00 2977 .db #0x00 + 0B5F 00 2978 .db #0x00 + 0B60 1F 2979 .db #0x1F + 0B61 1F 2980 .db #0x1F + 0B62 20 2981 .db #0x20 + 0B63 20 2982 .db #0x20 + 0B64 4F 2983 .db #0x4F + 0B65 4F 2984 .db #0x4F + 0B66 50 2985 .db #0x50 + 0B67 50 2986 .db #0x50 + 0B68 50 2987 .db #0x50 + 0B69 50 2988 .db #0x50 + 0B6A 50 2989 .db #0x50 + 0B6B 50 2990 .db #0x50 + 0B6C 50 2991 .db #0x50 + 0B6D 50 2992 .db #0x50 + 0B6E 50 2993 .db #0x50 + 0B6F 50 2994 .db #0x50 + 0B70 50 2995 .db #0x50 + 0B71 50 2996 .db #0x50 + 0B72 50 2997 .db #0x50 + 0B73 50 2998 .db #0x50 + 0B74 50 2999 .db #0x50 + 0B75 50 3000 .db #0x50 + 0B76 4F 3001 .db #0x4F + 0B77 4F 3002 .db #0x4F + 0B78 20 3003 .db #0x20 + 0B79 20 3004 .db #0x20 + 0B7A 1F 3005 .db #0x1F + 0B7B 1F 3006 .db #0x1F + 0B7C 00 3007 .db #0x00 + 0B7D 00 3008 .db #0x00 + 0B7E 00 3009 .db #0x00 + 0B7F 00 3010 .db #0x00 + 0B80 F8 3011 .db #0xF8 + 0B81 F8 3012 .db #0xF8 + 0B82 04 3013 .db #0x04 + 0B83 04 3014 .db #0x04 + 0B84 F2 3015 .db #0xF2 + 0B85 F2 3016 .db #0xF2 + 0B86 0A 3017 .db #0x0A + 0B87 0A 3018 .db #0x0A + 0B88 0A 3019 .db #0x0A + 0B89 0A 3020 .db #0x0A + 0B8A 0A 3021 .db #0x0A + 0B8B 0A 3022 .db #0x0A + 0B8C 0A 3023 .db #0x0A + 0B8D 0A 3024 .db #0x0A + 0B8E 0A 3025 .db #0x0A + 0B8F 0A 3026 .db #0x0A + 0B90 0A 3027 .db #0x0A + 0B91 0A 3028 .db #0x0A + 0B92 0A 3029 .db #0x0A + 0B93 0A 3030 .db #0x0A + 0B94 0A 3031 .db #0x0A + 0B95 0A 3032 .db #0x0A + 0B96 F2 3033 .db #0xF2 + 0B97 F2 3034 .db #0xF2 + 0B98 04 3035 .db #0x04 + 0B99 04 3036 .db #0x04 + 0B9A F8 3037 .db #0xF8 + 0B9B F8 3038 .db #0xF8 + 0B9C 00 3039 .db #0x00 + 0B9D 00 3040 .db #0x00 + 0B9E 00 3041 .db #0x00 + 0B9F 00 3042 .db #0x00 + 0BA0 FF 3043 .db #0xFF + 0BA1 FF 3044 .db #0xFF + 0BA2 00 3045 .db #0x00 + 0BA3 00 3046 .db #0x00 + 0BA4 FF 3047 .db #0xFF + 0BA5 FF 3048 .db #0xFF + 0BA6 00 3049 .db #0x00 + 0BA7 00 3050 .db #0x00 + 0BA8 00 3051 .db #0x00 + 0BA9 00 3052 .db #0x00 + 0BAA 00 3053 .db #0x00 + 0BAB 00 3054 .db #0x00 + 0BAC 00 3055 .db #0x00 + 0BAD 00 3056 .db #0x00 + 0BAE 00 3057 .db #0x00 + 0BAF 00 3058 .db #0x00 + 0BB0 00 3059 .db #0x00 + 0BB1 00 3060 .db #0x00 + 0BB2 00 3061 .db #0x00 + 0BB3 00 3062 .db #0x00 + 0BB4 00 3063 .db #0x00 + 0BB5 00 3064 .db #0x00 + 0BB6 FF 3065 .db #0xFF + 0BB7 FF 3066 .db #0xFF + 0BB8 00 3067 .db #0x00 + 0BB9 00 3068 .db #0x00 + 0BBA FF 3069 .db #0xFF + 0BBB FF 3070 .db #0xFF + 0BBC 00 3071 .db #0x00 + 0BBD 00 3072 .db #0x00 + 0BBE 50 3073 .db #0x50 + 0BBF 50 3074 .db #0x50 + 0BC0 50 3075 .db #0x50 + 0BC1 50 3076 .db #0x50 + 0BC2 50 3077 .db #0x50 + 0BC3 50 3078 .db #0x50 + 0BC4 50 3079 .db #0x50 + 0BC5 50 3080 .db #0x50 + 0BC6 50 3081 .db #0x50 + 0BC7 50 3082 .db #0x50 + 0BC8 50 3083 .db #0x50 + 0BC9 50 3084 .db #0x50 + 0BCA 50 3085 .db #0x50 + 0BCB 50 3086 .db #0x50 + 0BCC 50 3087 .db #0x50 + 0BCD 50 3088 .db #0x50 + 0BCE 0A 3089 .db #0x0A + 0BCF 0A 3090 .db #0x0A + 0BD0 0A 3091 .db #0x0A + 0BD1 0A 3092 .db #0x0A + 0BD2 0A 3093 .db #0x0A + 0BD3 0A 3094 .db #0x0A + 0BD4 0A 3095 .db #0x0A + 0BD5 0A 3096 .db #0x0A + 0BD6 0A 3097 .db #0x0A + 0BD7 0A 3098 .db #0x0A + 0BD8 0A 3099 .db #0x0A + 0BD9 0A 3100 .db #0x0A + 0BDA 0A 3101 .db #0x0A + 0BDB 0A 3102 .db #0x0A + 0BDC 0A 3103 .db #0x0A + 0BDD 0A 3104 .db #0x0A + 0BDE 00 3105 .db #0x00 + 0BDF 00 3106 .db #0x00 + 0BE0 00 3107 .db #0x00 + 0BE1 00 3108 .db #0x00 + 0BE2 00 3109 .db #0x00 + 0BE3 00 3110 .db #0x00 + 0BE4 00 3111 .db #0x00 + 0BE5 00 3112 .db #0x00 + 0BE6 00 3113 .db #0x00 + 0BE7 00 3114 .db #0x00 + 0BE8 00 3115 .db #0x00 + 0BE9 00 3116 .db #0x00 + 0BEA 00 3117 .db #0x00 + 0BEB 00 3118 .db #0x00 + 0BEC 00 3119 .db #0x00 + 0BED 00 3120 .db #0x00 + 0BEE 3121 _window: + 0BEE 98 3122 .db #0x98 + 0BEF 9C 3123 .db #0x9C + 0BF0 9C 3124 .db #0x9C + 0BF1 9C 3125 .db #0x9C + 0BF2 9C 3126 .db #0x9C + 0BF3 9C 3127 .db #0x9C + 0BF4 9C 3128 .db #0x9C + 0BF5 9C 3129 .db #0x9C + 0BF6 9C 3130 .db #0x9C + 0BF7 9C 3131 .db #0x9C + 0BF8 9C 3132 .db #0x9C + 0BF9 9C 3133 .db #0x9C + 0BFA 9C 3134 .db #0x9C + 0BFB 9C 3135 .db #0x9C + 0BFC 9C 3136 .db #0x9C + 0BFD 9C 3137 .db #0x9C + 0BFE 9C 3138 .db #0x9C + 0BFF 9C 3139 .db #0x9C + 0C00 9C 3140 .db #0x9C + 0C01 9A 3141 .db #0x9A + 0C02 9E 3142 .db #0x9E + 0C03 A0 3143 .db #0xA0 + 0C04 A0 3144 .db #0xA0 + 0C05 A0 3145 .db #0xA0 + 0C06 A0 3146 .db #0xA0 + 0C07 A0 3147 .db #0xA0 + 0C08 A0 3148 .db #0xA0 + 0C09 A0 3149 .db #0xA0 + 0C0A A0 3150 .db #0xA0 + 0C0B A0 3151 .db #0xA0 + 0C0C A0 3152 .db #0xA0 + 0C0D A0 3153 .db #0xA0 + 0C0E A0 3154 .db #0xA0 + 0C0F A0 3155 .db #0xA0 + 0C10 A0 3156 .db #0xA0 + 0C11 A0 3157 .db #0xA0 + 0C12 A0 3158 .db #0xA0 + 0C13 A0 3159 .db #0xA0 + 0C14 A0 3160 .db #0xA0 + 0C15 9F 3161 .db #0x9F + 0C16 9E 3162 .db #0x9E + 0C17 A0 3163 .db #0xA0 + 0C18 A0 3164 .db #0xA0 + 0C19 A0 3165 .db #0xA0 + 0C1A A0 3166 .db #0xA0 + 0C1B A0 3167 .db #0xA0 + 0C1C A0 3168 .db #0xA0 + 0C1D A0 3169 .db #0xA0 + 0C1E A0 3170 .db #0xA0 + 0C1F A0 3171 .db #0xA0 + 0C20 A0 3172 .db #0xA0 + 0C21 A0 3173 .db #0xA0 + 0C22 A0 3174 .db #0xA0 + 0C23 A0 3175 .db #0xA0 + 0C24 A0 3176 .db #0xA0 + 0C25 A0 3177 .db #0xA0 + 0C26 A0 3178 .db #0xA0 + 0C27 A0 3179 .db #0xA0 + 0C28 A0 3180 .db #0xA0 + 0C29 9F 3181 .db #0x9F + 0C2A 99 3182 .db #0x99 + 0C2B 9D 3183 .db #0x9D + 0C2C 9D 3184 .db #0x9D + 0C2D 9D 3185 .db #0x9D + 0C2E 9D 3186 .db #0x9D + 0C2F 9D 3187 .db #0x9D + 0C30 9D 3188 .db #0x9D + 0C31 9D 3189 .db #0x9D + 0C32 9D 3190 .db #0x9D + 0C33 9D 3191 .db #0x9D + 0C34 9D 3192 .db #0x9D + 0C35 9D 3193 .db #0x9D + 0C36 9D 3194 .db #0x9D + 0C37 9D 3195 .db #0x9D + 0C38 9D 3196 .db #0x9D + 0C39 9D 3197 .db #0x9D + 0C3A 9D 3198 .db #0x9D + 0C3B 9D 3199 .db #0x9D + 0C3C 9D 3200 .db #0x9D + 0C3D 9B 3201 .db #0x9B + 3202 .area _CODE + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 1. + +Symbol Table + + 0 ___main_end 0076 R + 0 ___main_start 0000 R + 0 _bg_tiledata 0076 GR + 0 _bg_tilemap 09F6 GR + 0 _border 0B5E GR + 0 _main 0000 GR + _move_win **** GX + _set_bkg_data **** GX + _set_bkg_tiles **** GX + _set_win_data **** GX + _set_win_tiles **** GX + 0 _window 0BEE GR + + ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 2. + +Area Table + + 0 _CODE size C3E flags 0 + 1 _DATA size 0 flags 0 + 2 _OVERLAY size 0 flags 0 + 3 _ISEG size 0 flags 0 + 4 _BSEG size 0 flags 0 + 5 _XSEG size 0 flags 0 + 6 _GSINIT size 0 flags 0 + 7 _GSFINAL size 0 flags 0 + 8 _HOME size 0 flags 0 diff --git a/window/window.c b/window/window.c new file mode 100644 index 0000000..4ba0834 --- /dev/null +++ b/window/window.c @@ -0,0 +1,15 @@ +#define windowWidth 20 +#define windowHeight 4 +#define windowBank 0 + +const unsigned char window[] = +{ + 0x98,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C, + 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9A, + 0x9E,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0, + 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0x9F, + 0x9E,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0, + 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0x9F, + 0x99,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, + 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9B +}; diff --git a/window/window.gb b/window/window.gb new file mode 100644 index 0000000000000000000000000000000000000000..ebfad6d84185ffdd05686a8128fcde3814313e82 GIT binary patch literal 32768 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 + +Renders a full-screen background image. + +## Source + + + + +```c + +#include + +#include "bg_data.c" +#include "bg_data.map" + +void main() { + +``` + + + + + + + +First load the tile patterns in the Background Tile Pattern table. This +means that we load all the 8x8 images that make up our picture (131 of them +to be exact). + + + + +```c + set_bkg_data(0, 131, tiledata); + + VBK_REG = 1; + VBK_REG = 0; + + +``` + + + + + + + +Then we set the tile pattern in the background tile table. The variable +`tilemap` contains an array of tile numbers that reference to the the tiles +we loaded previously using `set_bkg_data`. + +Our image is `20` tiles wide and `18` tiles high, thus having a total of 360 +tiles. How is that possible when we only loaded `131` tiles? + +Well, that is because some in the image are identical. So instead the tile +is only saved once in the `tiledata` variable and reused multiple times in +the `tilemap` variable. + + + + +```c + set_bkg_tiles(0, 0, 20, 18, tilemap); + +``` + + + + + + + +In order for the background to actually show up we call `SHOW_BKG`. + + + + +```c + SHOW_BKG; + + DISPLAY_ON; +} + + +``` + + + diff --git a/z_gbdk_playground_original/background/background.c b/z_gbdk_playground_original/background/background.c new file mode 100644 index 0000000..f666c7c --- /dev/null +++ b/z_gbdk_playground_original/background/background.c @@ -0,0 +1,37 @@ +// # Background +//
+// +// Renders a full-screen background image. +// +// ## Source + +#include + +#include "bg_data.c" +#include "bg_data.map" + +void main() { +// First load the tile patterns in the Background Tile Pattern table. This +// means that we load all the 8x8 images that make up our picture (131 of them +// to be exact). + set_bkg_data(0, 131, tiledata); + + VBK_REG = 1; + VBK_REG = 0; + +// Then we set the tile pattern in the background tile table. The variable +// `tilemap` contains an array of tile numbers that reference to the the tiles +// we loaded previously using `set_bkg_data`. +// +// Our image is `20` tiles wide and `18` tiles high, thus having a total of 360 +// tiles. How is that possible when we only loaded `131` tiles? +// +// Well, that is because some in the image are identical. So instead the tile +// is only saved once in the `tiledata` variable and reused multiple times in +// the `tilemap` variable. + set_bkg_tiles(0, 0, 20, 18, tilemap); +// In order for the background to actually show up we call `SHOW_BKG`. + SHOW_BKG; + + DISPLAY_ON; +} diff --git a/z_gbdk_playground_original/background/bg_data.c b/z_gbdk_playground_original/background/bg_data.c new file mode 100644 index 0000000..9d18c45 --- /dev/null +++ b/z_gbdk_playground_original/background/bg_data.c @@ -0,0 +1,142 @@ +/* + Advanced PCX to GameBoy converter v2.15 + + Tiles data + Original PCX File : "BG_DATA.PCX" + + Number of Tiles : 131 + TileMap Size : 20x18 +*/ + +unsigned const char tiledata[] = { +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xDF,0xDF,0xC1,0xC1,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x0F,0x0F,0x01,0x01,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x1F, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xF8,0xF8, +0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F, +0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8, +0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x0F,0x0F,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, +0xE0,0xE0,0xC0,0xC0,0x00,0x00,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, +0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80, +0xFF,0xFF,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x0C,0x0C,0x18,0x18, +0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F, +0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x20,0x20, +0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04, +0x30,0x30,0x20,0x20,0x60,0x60,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x06,0x06, +0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x01,0x02,0x02,0x06,0x06,0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40, +0x08,0x08,0x18,0x18,0x30,0x30,0x60,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00, +0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07, +0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, +0x04,0x04,0x08,0x08,0x08,0x08,0x10,0x10,0x30,0x30,0x20,0x20,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x06,0x06,0x04,0x04,0x08,0x08,0x18,0x18, +0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x02,0x02,0x06,0x06,0x04,0x04,0x0C,0x0C,0x18,0x18,0x10,0x10,0x20,0x20, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x18,0x18, +0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, +0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02, +0x60,0x60,0x40,0x40,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0x0C,0x0C,0x02,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x60,0x60,0x18,0x18,0x04,0x04,0x03,0x03, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, +0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, +0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x30,0x30,0x20,0x20,0x40,0x40, +0x02,0x02,0x06,0x06,0x0C,0x0C,0x08,0x08,0x18,0x18,0x10,0x10,0x10,0x10,0x20,0x20, +0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x80,0x80,0x60,0x60,0x30,0x30,0x18,0x18,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x60,0x60, +0x1F,0x1F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04, +0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x40,0x40,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1C,0x1C,0x06,0x06,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xC0,0xC0,0x70,0x70,0x1C,0x1C,0x07,0x07,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x60,0x60, +0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F, +0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x40,0x40, +0x0C,0x0C,0x08,0x08,0x10,0x10,0x10,0x10,0x30,0x30,0x60,0x60,0x40,0x40,0x40,0x40, +0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08, +0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x10, +0x00,0x00,0x00,0x00,0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x40,0x30,0x30,0x08,0x08, +0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x02,0x02, +0x10,0x10,0x20,0x20,0x60,0x60,0x40,0x40,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00, +0x0E,0x0E,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x80,0x80,0x60,0x60,0x38,0x38,0x0C,0x0C,0x07,0x07,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x30,0x30, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03, +0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0, +0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x40, +0x18,0x18,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x20,0x20,0x1C,0x1C,0x06,0x06,0x03,0x03, +0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02,0x02,0x04,0x04,0x08,0x08,0x08,0x08, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x78,0x78,0x07,0x07, +0xC0,0xC0,0x60,0x60,0x30,0x30,0x08,0x08,0x0E,0x0E,0x03,0x03,0x01,0x01,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F, +0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, +0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +0xC0,0xC0,0x40,0x40,0x60,0x60,0x30,0x30,0x0C,0x0C,0x02,0x02,0x03,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0, +0x18,0x18,0x0E,0x0E,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE0,0x38,0x38,0x0E,0x0E,0x03,0x03,0x00,0x00, +0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F, +0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x80, +0x02,0x02,0x04,0x04,0x08,0x08,0x18,0x18,0x10,0x10,0x20,0x20,0x20,0x20,0x40,0x40, +0x38,0x38,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x38,0x38,0x06,0x06,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00, +0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x00,0x00, +0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x01,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x0F,0x0F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFE,0xFE, +0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F, +0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0xFD,0xFD, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x1F,0x1F,0x7F,0x7F,0xFF,0xFF, +0x00,0x00,0x03,0x03,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x80,0x80,0xF8,0xF8,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x03,0x03,0x01,0x01,0xE1,0xE1,0xF8,0xF8}; diff --git a/z_gbdk_playground_original/background/bg_data.pcx b/z_gbdk_playground_original/background/bg_data.pcx new file mode 100644 index 0000000000000000000000000000000000000000..cc10795057b417357dbcd73e122b6748f551ddf3 GIT binary patch literal 3017 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⁢<}(*OhhIJC3Ox=t{hYjeek}E=&+AYx z`jR_8XSt`Nskh~ciqayrl{}-Vgw;7mtXmVqK%x*&^j+Z{&pBgVQ~1G)qn&Bm7S&7$ z3E#Bj91-Ukh92iUDQBzzO~Zz*z#fmm

GkoM4}tVSL&az=MZA52T@|^3kPvl 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 +#include + +void main() { + NR50_REG = 0xFF; + NR51_REG = 0xFF; + NR52_REG = 0x80; + + gotogxy(1, 1); + gprintf("====== Beep ======"); + + gotogxy(2, 3); + gprintf("Press any button"); + + while(1) { + UBYTE joypad_state = joypad(); + + if(joypad_state) { + NR10_REG = 0x38U; + NR11_REG = 0x70U; + NR12_REG = 0xE0U; + NR13_REG = 0x0AU; + NR14_REG = 0xC6U; + + NR51_REG |= 0x11; + + delay(200); + } + } +} + diff --git a/z_gbdk_playground_original/beep/screenshot.png b/z_gbdk_playground_original/beep/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7c65bb3e0556b1afcca58fe8d39a55d0af2742 GIT binary patch literal 29457 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 Na?(mtl@i85{{grJ^p^kt literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/big_sprite/Makefile b/z_gbdk_playground_original/big_sprite/Makefile new file mode 100644 index 0000000..b452375 --- /dev/null +++ b/z_gbdk_playground_original/big_sprite/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = big_sprite.gb +OBJS = big_sprite.o sprite.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ + diff --git a/z_gbdk_playground_original/big_sprite/README.md b/z_gbdk_playground_original/big_sprite/README.md new file mode 100644 index 0000000..febf0fc --- /dev/null +++ b/z_gbdk_playground_original/big_sprite/README.md @@ -0,0 +1,178 @@ + + + + +# Big Sprite +

+ +Renders a big sprite of 16x16. Since the Game Boy hardware does not directly +support sprites that large + +## Source +Start by including `gb/gb.h` this file defines most important functions you +are going to need when develop Game Boy games. + + + + +```c +#include + +``` + + + + + + + +The `sprite.c` file defines the sprite data in the form of an unsigned char +array. Most of the time you want to generate this file using tools such as +GBTD. + + + + +```c +#include "sprite.c" + +void main() { + +``` + + + + + + + +Set the sprite size to 8x16 pixels, two tiles one above the other. Internally +sets bit 2 of the LCDC register to 1. + + + + +```c + SPRITES_8x16; + +``` + + + + + + + +Loads the tile patterns stored in `sprite` into the Sprite Tile Pattern +table. + +* first parameter `0` determines at which position we should start loading. +* second parameter `4` determines how many tiles we want to loading +* third parameter `sprite` sets the variable to load from + +This means that we are loading 4 tiles starting at 0 from the variable +sprite. + + + + +```c + set_sprite_data(0, 4, sprite); + +``` + + + + + + + +Tell sprite `0` to display sprite `0`. Since we are loading 8x16 tiles this +will make sprite 0 show tile `0` and tile `1`. + + + + +```c + set_sprite_tile(0, 0); + +``` + + + + + + + +Finally move a sprite to a position that we can see. + + + + +```c + move_sprite(0, 75, 75); + + +``` + + + + + + + +We want to display a 16x16 sprite. Unfortunately the Game Boy hardware does +not directly support a sprite that large. So in order to have a sprite of +that size we are simply displaying two 8x16 tiles next to each other! + +Since we've already loaded our entire sprite in line 16 we can now simply +tell sprite `1` to display our second sprite. Again, since we are displaying +8x16 tiles this statement will display tile `2` and tile `3`. + + + + +```c + set_sprite_tile(1, 2); + +``` + + + + + + + +In order to form the illusion of a bigger sprite we display the second tile +directly next to the other simply by offsetting the position 8 pixels to the +right. + + + + +```c + move_sprite(1, 75 + 8, 75); + +``` + + + + + + + +As always, in order for the sprites to display we need to call +`SHOW_SPRITES` once. + + + + +```c + SHOW_SPRITES; +} + + +``` + + + diff --git a/z_gbdk_playground_original/big_sprite/big_sprite.c b/z_gbdk_playground_original/big_sprite/big_sprite.c new file mode 100644 index 0000000..6c77496 --- /dev/null +++ b/z_gbdk_playground_original/big_sprite/big_sprite.c @@ -0,0 +1,51 @@ +// # Big Sprite +//
+// +// Renders a big sprite of 16x16. Since the Game Boy hardware does not directly +// support sprites that large +// +// ## Source +// Start by including `gb/gb.h` this file defines most important functions you +// are going to need when develop Game Boy games. +#include +// The `sprite.c` file defines the sprite data in the form of an unsigned char +// array. Most of the time you want to generate this file using tools such as +// GBTD. +#include "sprite.c" + +void main() { +// Set the sprite size to 8x16 pixels, two tiles one above the other. Internally +// sets bit 2 of the LCDC register to 1. + SPRITES_8x16; +// Loads the tile patterns stored in `sprite` into the Sprite Tile Pattern +// table. +// +// * first parameter `0` determines at which position we should start loading. +// * second parameter `4` determines how many tiles we want to loading +// * third parameter `sprite` sets the variable to load from +// +// This means that we are loading 4 tiles starting at 0 from the variable +// sprite. + set_sprite_data(0, 4, sprite); +// Tell sprite `0` to display sprite `0`. Since we are loading 8x16 tiles this +// will make sprite 0 show tile `0` and tile `1`. + set_sprite_tile(0, 0); +// Finally move a sprite to a position that we can see. + move_sprite(0, 75, 75); + +// We want to display a 16x16 sprite. Unfortunately the Game Boy hardware does +// not directly support a sprite that large. So in order to have a sprite of +// that size we are simply displaying two 8x16 tiles next to each other! +// +// Since we've already loaded our entire sprite in line 16 we can now simply +// tell sprite `1` to display our second sprite. Again, since we are displaying +// 8x16 tiles this statement will display tile `2` and tile `3`. + set_sprite_tile(1, 2); +// In order to form the illusion of a bigger sprite we display the second tile +// directly next to the other simply by offsetting the position 8 pixels to the +// right. + move_sprite(1, 75 + 8, 75); +// As always, in order for the sprites to display we need to call +// `SHOW_SPRITES` once. + SHOW_SPRITES; +} diff --git a/z_gbdk_playground_original/big_sprite/docs.sh b/z_gbdk_playground_original/big_sprite/docs.sh new file mode 100644 index 0000000..c30add2 --- /dev/null +++ b/z_gbdk_playground_original/big_sprite/docs.sh @@ -0,0 +1,2 @@ +docco -t ../docs/res/readme_c.jst -o ./ big_sprite.c +mv big_sprite.html README.md diff --git a/z_gbdk_playground_original/big_sprite/screenshot.png b/z_gbdk_playground_original/big_sprite/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3933542145d3ac34747d60997e34218d4f3c6e08 GIT binary patch literal 29208 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 S11XJJ2%hT5K0~| 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 +#include "cards.c" + +void main() { + SPRITES_8x16; + set_sprite_data(0, 8, cards); + set_sprite_tile(0, 0); + move_sprite(0, 75, 75); + set_sprite_tile(1, 2); + move_sprite(1, 75 + 8, 75); + SHOW_SPRITES; + + while(1) { + set_sprite_tile(0, 4); + set_sprite_tile(1, 6); + delay(500); + set_sprite_tile(0, 0); + set_sprite_tile(1, 2); + delay(500); + } +} diff --git a/z_gbdk_playground_original/big_sprite_animation/cards.c b/z_gbdk_playground_original/big_sprite_animation/cards.c new file mode 100644 index 0000000..495b7fe --- /dev/null +++ b/z_gbdk_playground_original/big_sprite_animation/cards.c @@ -0,0 +1,46 @@ +/* + + CARDS.C + + Tile Source File. + + Info: + Form : All tiles as one unit. + Format : Gameboy 4 color. + Compression : None. + Counter : None. + Tile size : 16 x 16 + Tiles : 0 to 1 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ + +/* Start of tile array. */ +unsigned char cards[] = +{ + 0xFF,0xFF,0x80,0x80,0x80,0x80,0x81,0x81, + 0x83,0x83,0x87,0x87,0x81,0x81,0x81,0x81, + 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81, + 0x83,0x83,0x87,0x87,0x80,0x80,0xFF,0xFF, + 0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xC1,0xC1, + 0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1, + 0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1, + 0xE1,0xE1,0xF1,0xF1,0x01,0x01,0xFF,0xFF, + 0xFF,0xFF,0x80,0x80,0x83,0x83,0x87,0x87, + 0x8E,0x8E,0x8C,0x8C,0x80,0x80,0x80,0x80, + 0x80,0x80,0x80,0x80,0x81,0x81,0x83,0x83, + 0x87,0x87,0x8F,0x8F,0x80,0x80,0xFF,0xFF, + 0xFF,0xFF,0x01,0x01,0xC1,0xC1,0xE1,0xE1, + 0x71,0x71,0x31,0x31,0x31,0x31,0x31,0x31, + 0x71,0x71,0xE1,0xE1,0xC1,0xC1,0x81,0x81, + 0xF1,0xF1,0xF1,0xF1,0x01,0x01,0xFF,0xFF +}; + +/* End of CARDS.C */ diff --git a/z_gbdk_playground_original/big_sprite_animation/cards.gbr b/z_gbdk_playground_original/big_sprite_animation/cards.gbr new file mode 100644 index 0000000000000000000000000000000000000000..20665efb8a509d276eb5493cb129756ee83bdc7c GIT binary patch literal 9301 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ðH@ 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 + +This example contains the minimal amount of code needed to create a working +Game Boy game. Though not a very exciting one. + +## Source + + + + + + + + +All a GBDK game needs to compile and run (any C-program, in fact) is a main +function. This is the entry point into your program. + + + + +```c +void main() { + +} + + +``` + + + diff --git a/z_gbdk_playground_original/blank/blank.c b/z_gbdk_playground_original/blank/blank.c new file mode 100644 index 0000000..ed4d041 --- /dev/null +++ b/z_gbdk_playground_original/blank/blank.c @@ -0,0 +1,13 @@ +// # Blank +//
+// +// This example contains the minimal amount of code needed to create a working +// Game Boy game. Though not a very exciting one. +// +// ## Source + +// All a GBDK game needs to compile and run (any C-program, in fact) is a main +// function. This is the entry point into your program. +void main() { + +} diff --git a/z_gbdk_playground_original/blank/docs.sh b/z_gbdk_playground_original/blank/docs.sh new file mode 100644 index 0000000..150d0ab --- /dev/null +++ b/z_gbdk_playground_original/blank/docs.sh @@ -0,0 +1,2 @@ +docco -t ../docs/res/readme_c.jst -o ./ blank.c +mv blank.html README.md diff --git a/z_gbdk_playground_original/blank/screenshot.png b/z_gbdk_playground_original/blank/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..814c7ddfc095763b9ce48b8bc92e48c9278cdf02 GIT binary patch literal 29197 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 +#include // Include cgb functions + +// Background taken from 'background' example +#include "bg_data.c" +#include "bg_data.map" + +// Sprite taken from 'small_sprite' example +const unsigned char sprite[] = +{ + 0x7E,0x7E,0x99,0x99,0x81,0x81,0xA5,0xA5, + 0x81,0x81,0xDB,0xDB,0xC3,0xC3,0x3C,0x3C +}; + +// These palettes replace the default palette with the appropriate colors. See cgb.h for more defined colors. + +UWORD bkgPalette[] = { + RGB_PURPLE, RGB_BLACK, RGB_ORANGE, RGB_BROWN +}; + +UWORD sprPalette[] = { + RGB_GREEN, RGB_BLUE, RGB_RED, RGB_YELLOW +}; + +void main(void){ + + set_bkg_palette(0, 1, bkgPalette); // UBYTE first_palette, UBYTE nb_palettes, UWORD *rgb_data + set_bkg_data(0, 131, tiledata); + set_bkg_tiles(0, 0, 20, 18, tilemap); + SHOW_BKG; + + set_sprite_palette(0, 1, sprPalette); // UBYTE first_palette, UBYTE nb_palettes, UWORD *rgb_data + set_sprite_data(0, 1, sprite); + set_sprite_tile(0, 0); + move_sprite(0, 50, 50); + SHOW_SPRITES; + + DISPLAY_ON; +} \ No newline at end of file diff --git a/z_gbdk_playground_original/color/screenshot.png b/z_gbdk_playground_original/color/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..699b11ca62d034f7cc4c6299ae1441581ce8d6e4 GIT binary patch literal 30062 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 literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/detect_gb/Makefile b/z_gbdk_playground_original/detect_gb/Makefile new file mode 100644 index 0000000..0d25e92 --- /dev/null +++ b/z_gbdk_playground_original/detect_gb/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = detect_gb.gb +OBJS = detect_gb.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ \ No newline at end of file diff --git a/z_gbdk_playground_original/detect_gb/README.md b/z_gbdk_playground_original/detect_gb/README.md new file mode 100644 index 0000000..4d6884d --- /dev/null +++ b/z_gbdk_playground_original/detect_gb/README.md @@ -0,0 +1,5 @@ +# Detect GB + +![](screenshot.png) + +Detect which GB is being used/emulated. \ No newline at end of file diff --git a/z_gbdk_playground_original/detect_gb/detect_gb.c b/z_gbdk_playground_original/detect_gb/detect_gb.c new file mode 100644 index 0000000..33955c5 --- /dev/null +++ b/z_gbdk_playground_original/detect_gb/detect_gb.c @@ -0,0 +1,21 @@ +#include +#include + +extern UBYTE _cpu; + +void main() { + switch (_cpu) { + case 0x01: + printf("DMG or SGB"); + break; + case 0xFF: + printf("POCKET or SGB2"); + break; + case 0x11: + printf("COLOR"); + break; + default: + printf("OTHER"); + break; + } +} \ No newline at end of file diff --git a/z_gbdk_playground_original/detect_gb/screenshot.png b/z_gbdk_playground_original/detect_gb/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..612d3b7658aa38981d3846f0a57bac283eb8696b GIT binary patch literal 32156 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 literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/docs/res/more_coming_soon.png b/z_gbdk_playground_original/docs/res/more_coming_soon.png new file mode 100644 index 0000000000000000000000000000000000000000..08075766665b416abb01535eb0d1ecb375f4eff9 GIT binary patch literal 19976 zcmXuL1zgn6_dUD@An-w?kx-;_Dd|$u1s0@h>4v3CkWeY<&Lxy?q)WP_OF+82y9EEk z_xC(6VHfwcG4Gi>cg{WM+zooKAcKQNh6RB@aA5BwmBIZb_-%WF4sK02a9h9~x{;iW zB;?=yzi*AXG2jtQ`*&JS5C}HG{qF-vatbMU5W^V;m%>=Y#K++jqRC3xP;Dni@Krnozk}I$Kc5z~Jvqpr#lQ2o(e-`BwGA^q$wpAG&H@|2B3{ zL^qnETj(AvOJ&J_gOPo2sr*X4$^UfV(1NneRPcRQb^Nqz78ilk#-w&goQ#eiu?bdi zY-_awlN#v`hp=p!x}|$!!e=Z=Jxp4@i?nXhq1zjpt0K>fUTy1Af@cc5+T3pYjT^h& z)7GU2Hz&8=P8+FidgV?V3KUNLoO$Yn@1h?o5x#=q6JnvAdWe8qTG$r^G|;;_f-x8Z zQ6eo{vZ0IRYw8B5Gm&dU6)i((bB;c2Y>Mg zx85)75KkeIw3zjC(BRIDWEKb^mjCaK6c)(Yls&&BG(lzI#O`jvwnhn>@ZimySo%=r z!a=4gGx#KG82*{SP|W1c#SJ4N*7hI0(%kjjQftw48Sqm&sWQ3bQuo3Uhu^V|VwqpM z4x!LkYE<@BA=ek&F4=!&4E{acQ?+)4P#GkG)X$Y@Kk`oRTjL=8?>%$eZ{gMHK9@z2 zH8L>VDhzpRsto~(r{g!H7p(>y?+;jlsViq}RKfGENwCnW(5prIZo6-eULZoiOc<5r z4MyE$X|j?{ewtje6D1#tv2Jl$yJ058vVwZzBE*_x+;59`z*Lg+*>)(&Q2IZ7S+8E0 zt%uJ(*txd8$Qk|N>QlBdrf=&Tw)gp}$|yCc->k)7)`Y(AlRNnbb@`BQs?7NZ{2F=* zsPv7Vuz?*nLCPw|6dIDa?w%c4@nx^tA1N%80p!t>Ba@%xW2`%?Vs@DLu+wAM|T zw|>(#z2&TYBd-5w(8kC}T!g!nW%AR8BhD|XUx(^ssnOno+{@C`?cY~H9Dy;sgJrfFeBuwkA3UNC{n(whRfP-}{n76o z7ZAp0O|(vyH8WN?S@hjrojbiei}XMtE1A zFFu~{!Z=I3o71N;ltWe)5wO{4!{1gsr#D_z=oE9dBn}jrV_SJAJ&AR={BGXr%yG}8 z@UZ+JGRFl^pUn1|Fy4CqgVd`{Pr7fUChYzxdn9(@Bo-)}onb3}rc|KgIP&W@hW0JE z^wH!P8aHO*5UUeMhipMMHLWI9Z+0~@Q3#z1h@{DE!7eHKSCNeQdL$v8u~sY_g<{lg#uC?Wy*=?~S1I|dnpC&6>L4ubqwgu*#Gapa;jVd}Sg4`fv+-nzxjQ0LLre?QGc z)A{zbycvSj^dB{`7u@FXM1HAUI4Bg+&R2~k8@#1W;@a}R$O(v29&xHeY%f_#*k=rw z5v)0C+1v#MVS+Ssb>*&Fs0OkQa=H@pyw7;ApMKc-5uOf?i0|(MM0l2i=ydr*4hx*TcokKTrha^fKY{-fy6ci#Jy-<|yt&_b`D=Ca+9L=S^r5*K-(4Aw2u}iT2sFXr<5bmGJZ)uSesH?K8o<4WBy<6t7KNFcAybK}z|m zPv38?*^NcI=2d!~t-#Z_Hm=jygS5RFO3kll%r_@_Q(4l-ox``T5GNy)0VT#>>D?Cs z0x`h-5fN(?51$~Z=ysuL^|`k z9|sR6*WoWh zo>Swxj+8&?*^mksd^uC)In<|3L;f~YmMX_Ox#`3`&DT9$)X!9Bi0@0Hd{@$g z`>s_q(>e^^pF6p;v>Kz>6;3I1==<_7L%FqVL_anA7D%yF$P^IDw zLG@zwxILL%^2T-t3YO*hIwyu|l&uD+jy&7f+E6;R4#%czkGID6+Cdr2K)cp4W(@;$RuT!Y} z(0Y6S>CO~sUn|F3a=gU;8dmWbiG_Bpjjf#|y1F%i`hb}1aFjd?Y;~r_u6s0FuFPde zJ;kBx`MYRIOoM>$&)-HmqZ|)M$u*$~aT>|j!Yd7<)4KqbF7Qk#tin1p5B7S zx#xptR_dL6&IvL(vB^jNV7{9q6Z;XWvTBcQCXEMEfP_10h^drrTlHpxpu6u$jrQ4UTQwh6xM+^&>!qkb%SG# zcTL;bP2QtUwlpQI=J7#GSNy|>>MU46@~#u5%=dI_Z6N{)drrDk!^FR6(3sBZp;H&~ zar7EYfdpU81s#wz$F0<)o{^SkO|YSrhd)qyJorBN=kpa?E>SshM4KeM!-U#{r0fbm zb3mwI!J6=+mbY}bf6z0;B(Du~0&`Aj#QvWs30b2tX^PHvB&x8dF01fTYskuos^kK! z!Pyz-K=-NWs_>;K{6N-wgW3WmIXU^u%ojzf93P)s8uJsJYVV^{9+!?4$F8Go+2)cr zEgaB<8`G6xKKb@m@n$xMt6sDQ?~9z38RgFO8!hIX2+Jr_?g%b<=9Ha!DC#$_dCckw zrb_)^OeoA)XH2Qxk-qJCL>|HH6OX=>$&*;AbUO`Y$Qx=HM+@0!j6HH?iezeq)r_Lj z`qs`rj$mpsIKrqMJQ~x)S&xkBvCMS-n=v~oo06W&g1XElC?(dG4FtTNYtIsG;7#vy ztr-~TUU#t+;uWvFl9s=CO}AZ}7<z7ew@tgIH*YUji}_stMN?J zD-E=&D)3_+SaqyR>81O%aguMLLCbAVn+zj6IrGqkfB9n@BQs^nH>Juq_T`2@>-6UG zA)ow3|M8%iz?tWsG>PF%n!d*uUGk}fSF#x4Ju|xvFq`w7y`M!tq7H6;dqFZ0lk1f{ zx|1&OI(02Q&)e%9w>*Zgn-|%`*{kcgO5US>QFR3V;)bOpsfl{|^uGqit*Vqi*tx&0 zyOPK4->Lh}j*>OSZmi>VohXA22e9xW%R613md^M#eSm263x^1padITk8!OwbIsN*l zd)|oodYK^q2VQZXcft--O@qX>b*<86Z;mykD{o^;9ya&NTKi?e#(jpNL#iw4$7|W6 ziLl3O>38H1%rKYLX1>d2y_qF0_#q(Z`DD@**9^}OPIro9n)F*EA!ei!=J}SU(Tvh~8t-43IASV0Et)FWC5YAmwq<;~f$v?Dx*E#2f6efx2%^XaOGLw6p~8TGH%nS>5a zK01gN)N-xB_2^xTEr%tu8oVcd-+`9=V=BJMH6Q9OQ*{GZ&>(=mnU^RS(ORUK{CjHM zQ^hwo+3~LYeVm|#Q*oW;%fwIoT2@}sv|m>=-3Np8%=a){r6@nwDjetXXs-CN z0ganSlW}Q<+oa5H{8SQ7gA&bW%hpo}UH^0rjKrC+pwT423m0E4DPlqOT1{6rg|=r8 zHjpL^In~WuPf*y5j+-pke&XVFPVak;)X~Y1XNkjdJ(v%(stN{3Q@6pD$v!0QQ95nU z-4|SLZtemPbT#|CKI;cprZc5eN@HEsSZwYIOcb z+*_0s!<|j5Rc&I@cvE}S1}m>C##BxI1%f$FIosFLr*GL8L#O49+u+n;8-~s++E5N} z?RMh*lOV}IuMr9V-crBIo|3DNMSH8|6_j}Pu4_PZTx$9W{x4{u=X508L;MSjs0ObY zW{TTE*;OlhSR~5{%}Q3hRBguX%ZO4>BBaL_rC8*MrFg6C{r&y>dH$)yPirx7Jp~>>$h4&kQj8(C6>SZw%2t2F&;)4}dOIzwyrSr<7_O3sCTX9k^d)FKbx~U+N#7c3gQ1gDuj2 zsS4f6y2jW27|&Ic0H>Z&Fr$&)wnP+NuiSEAX+*nEQp^=HtY_#M?&Zb6Voq>fE1>QqO5S0Y^?gWC!xpw-Um4ER8jh~1rx%uzOBudJZRF)5m8?UO-F$_0 zk+v#4m!@tb-p!@cQCyk|gH)(dmHHdkCVO{$7f5Ii6UkShP>1+sD4bW$@rKwUD?N0h zPj6SAKgwB-KxmX({RzUn;!#eJY!OR@!z+)|-Xi?|3^@-1W74X9EmFguQ=>NqJNTQ$ z`G{)ay#v*_crWeO*c{25>aAL9CYH4-bPQI~59i=VJFLGf)vKOqh@383U>hT{FY@&4 zU*62BbIB8H#-dT@yE_d-H{QX(sN@*?*8ONbh`sFLe>&nk>pwK%CC+oSec;Z%%(GBH z5gV|)>k-ED7|3Q19Zhxa+f_6@@3r-d#(vhJa3Q?paGG(G6Ih>Os`aANz$egw@!e6; z@z7rzUla4V0D7Eb#OU`>3)t2`MxJl00sCj}3mvao+`F!M87_F(zlN-$yJtCVA4;qe z9)!H;s+F_5?Urnbegpp~fIT)igee^}fWb7?x8~T}H+bN#KUIPHl(}E828~IX(p(RVs$uxCe3>1d_i77j0jTp z_xI=RyhgzR7aNSNhD8knN$=I>r1-crx4;IVvjD_StlESrrlm>ND> zl;5PXe4>d49dmJe{wO^yOVtTj?!4|!DJlPugqKVp|7&dD+(kv#-Fv^cc_`F1iMG<3ShA|8AKBUB+_YkWa=DBI=(v(ml5G3Ei-0LLI6aY&6*GECUt=((?E3&vK$C z;YrEKZR-OlHR66e8Hxvx5Bqf+96~}NwlyJZeF?e9XpT1i-$(}%;~&`x_0jOGp^#yR zhq|ELI8MhaD0q@`+pGnPn|BHln&eg`MJDhe>YbVNJ}jYuVS_?`;cXqFtFW{wSVPYp zZO!pH*p1c`MGqi<`2Sq`{XaLD!Y5`{>0qLI4AkZJ}= zZ5)6#B4SbhHez7_D)?Z5AG2JTK5M;kn$^hXfM1!v-FI90dot8r*8L*n{&{n@D-tiS zpM{HFTcmv4uam6@o9R1MmDi2$4B3C%V$lvDS^-lh<#Wsp$&a<&N(|xW%$Qo*@(N#wiTr@6;7G93coQ#fVXiLOeN$^P5H9@xu1Z+(9x))Kbg3F zqK3844D&Haw0Jf9r;c=?mxQEMJe08;(e|eFT7W)&nAG?b*3c%FS0xkZ7x#gisoVQuxQl-KaF*I3|sq1a3!Vb;F%tXN&{^XMjQa!dt#Rk~3R z_sruKQk7Ehpbo=$HKzwKzPr;^*e&z+f0masu$sqrTmU^Pub_}IZUqzvd3kw*$r9a2 zfvwYr>V<0lzcBs45CtcmPCU;oJiUIAASwHjWGFj8ez`=InJG3!m_6D(XU9st{lpWyY{j)7ks?_VyIT=EoOK#n$_Rlfe@%HaYZ#jOxMs}_RjEQ*P(Tv= zYt+v)*#fM1p2}!3Yi9iR37A#YM$>iD9rm#gZm(Q27~5zfgufJ))MKUJ%x(a7ugv4j z3S8sz-OWLFuIL$4k$&@wmwy*A9D12@4fdw1YS-d*-h-qE#zI&#>xd2BAv-}Yn0rW= zTkQ?>nLFu9L5{h5pYC~`Z69iR5#L^VHn`}0e@5Qp=3fV@tr+;_NGax2%-nOV}Z1$g@x?lQGC=o7M>)((; z>sIm6f^K)3@2nB7Q>OWPzYP62!_RAankF!{W%b>gwuIc_1zZ2caPDaf&eCRr`U&IR z$;15AUp!sEzrIa)eo@ zJFqe66R;zy@mP({s^d&|QzP%G&9b~&)!P$vU7yE8b%TNS1C{{) z<=tVR!^NDN@yYrC|KG#*GVfcD`|}5I^|>jISUEX4_MJo;2IB>4KoYn-)BooJ(prjr z8z$J(?fY{LkA~?&B}UOFvm0=>%tjxcrh_sLT##d3C}68Q9E#-4N0~}#cy=E$rD{5N z)ozJQrdoCyDVbJoW@@q;%~abkKWjGX#PYnES-3wRLF$jDZEb6N2>4&XwOrqTESWx#1BbtgNKH=5RIC%*H$T?>um;{hHm6c5Ok3o_r4A2XC ze@-@x7HjgDcT5GN_SaD1xK;1|goJrzdtm$0{N17wA&8EwC+xx0U>|02sUZ=}eNzS= z{Q4Nu0MUa@@SpT@agB zuf62kTPDDO7{HdWIpydY>B+G!DQUFD57yH4at;vBB^yv*|G?3%GRjsV_FxySKJwAK z$)C<6F*+O-p$k(UY*WE~bso$!*IW+Jx8;GH3iz{?>2TL-%hHAt)9py{)?PF8auJRo zz0$L;8|lhIcg}*9qE31N3T^g7rNBPr4Z}y9kJnWDuP9K-s z-hH{72lG`7<{hBg(&&|y#VXJDtl)2Ir319$ZfrM z?5PoyM%XxszsWSV5s{0w)F-$7=eq9)WD;g`W^HFUwVv=zHf_}HigxtEI2rpOntq^vFzZdc>v+|ig{$I1qH;r>s!m!?|3JRT z#d4%C@D#BTD)-ups9c zu>B6N1?T@LC-$rgs;V)llDEzXhtr3zsqoN*^2PsZ|KP=3hh4cAeaL&J=RL@(*w(A1 zt49Al(iZktRw^Rn31G~1Bd3g433rb~fSKT5b)imP(13f)e0|DoZ{FBYbqdl-?4D9fWyRsb5 zPkCVnthnEvDpd*0m(%`5!QPbcm)oUW-Koz$iYP%nI4duE>eyh zv|!6R3)d457%9;r2y8tGI3tvA#qT;CLe0q|9ydOF;CHMZW=uby9ce`WGP;nj7Pi^* z>ihg?9j}N;7_R5yqdZ_=$f3znG4pY4&;>~dl(NW~Y8;st?yGv=uq6z^XaHIScp*&s z(YO^+ssaYUE%$__hfV{LZt*Yiv&-L+Pgl$rw%iznMiERI^@M|1FK3K4D|0_Kra6A# z=6wO6E>yd8GLC-GiAXh$lXv|Sx9Mvbeyl9rxY}nlDuiiNw$Or!&!1g~p3aBKY@rgZ zW$Rpgxa;-R!cWg1hi1HkIa&=w+fJp+yF7}Atrc}jGmwwHGc9xJnn6ZStlsgx8ox~X zukOgRXHT41i*$v#Q8&_>{L%15J$xtb;`?L@QJjUoO5&&}!)@<6EnZOAXD5$7tv|1V zsfivPT-<;eU}hiBQutL~T8%MTVd-fl4ayDxxNY>OnbB|fA^tD*z!u_dW5MF#VueFh(-cdF)Icn+RakA$_o9@f~kFxfoSlPTfp`2NOl_^+!l%M_>PV^HTivJ193Ar@rszC-{za@Fh9`e!j zvmvP0QnIfZUm2tit(}=XNmfP?C2X1)my?pelvMJ2=+uDeZ!8SQcL5%p>{u>TKdqP7 zi(wP%Kgd(6sdiGg3|D~#`KqVLK^~M>$v+@}L^{i%5TnHf1-;lY+puAe;!}m(nC)bP z=wH>lWa$bFCDDAXPjQV?#+^{jJ*MWUtR}fg&XAZUF2P1En;_@DkHa@FwmMW835RWK zh&Z`vyHZrlifUiR4CPrQ2wI6?H6*+{MU0Bb>g z*9SoFwy2q5jFauXlCB@Wi6=_*5;ytpsHCVtoskf@kqFJdHT{$JYe1Ts!x`(STH8s@ zZ)S2;Y~!Ex%Ti`1$>R!Ge;@na)j<&SIP4PlCW4b45zxJv%wRI8rq>gXj2^eroW`lf ze-BW*!stx5ok_dzC1KzqRdm=>+vIV-Vo*#0Oh@sirVe3iw?pkQ0_RE9%n8yH%rHUV znkiS<=t;!%8WqkFgUF(7)VI@65~-S|r;U^GO#fy&`;ng_Lph((Gx#Su{NUZX^M<29 zb~M3x*T1CJw(am}f}~{pO&FahqTkH-KEmZriW;|NX*n(PqiapY)d5TX%0{}9Hg&X5 zVK!L2yhoO;vXw3}bxoUTz(x|aW)hh`<7g?NSkCbjZ9_Z$(NxD{#Pp}|hvSwZckHsr zb^l+n%A+}lSu**snBgt8+)6VY!h(ld%ys!X66!Y2lbmm(13AN$XU>}8Y!~o?=t(LM zc=B)MMg~JU4>bi|g-;gG*JDP1Y;gJ&nZeZN2CF-JT@-)rB~taYlgbFqRw=sRsCnni zELMw$;zt3&2oT({RtiMI@=5fKK<9#}Kc>0j^Qse>y}`bypL^FE)jyAw zc2S^KsR$C1`+`cbp+{e`nv}XW_>M6>^*e(uIn0@*@D&S@u6lq0wSev+*vXwUc{hD} zoxF@`ObYwkS$V$Z^5gnoUm;ShnsCtJ^!akPxx{P|Cdwf>#$am{6%;Hl4w#*MDu4oV z1;BHF_*=uk=@y{;jlN>^du@4XrD& zWt20^7DqHse3FQ?lHE3i70og$ie^VhS0v$Lnc|+ev9Z_qpuu3G<@M*3Ca4~y`a$}( zCf?CvzXD>${cJ-8iBu-5;{bW_vV8KA3`bs!WX!tE1m&mT^U7Oo?&w8!cMBTUng4qw z#voG8OPz{zF5>J{ar?36Sa-`arMd6#(>J|=bbTYyq+Vz`jbCyY&qiUUvgC{NqKm&^ zgP!^V&7v+?cvJpOK%7I3K}SEp;hy%fumIr@eZxr&kCg}%gTvKq#KR>Qj35V1{c&XFlX#5JbiP9 zdR1;)Qy2|j=2s`xjLE7V*F9lFH;mbQ`z4UG1b+r2cFj@#hF%@^8^zirzBTyTjy@w# zob7bDCudo;-E^C=P6|+ljd~YW{|X5l)t{S^n_~l>hM%BLPH<-NPtF0{kSjlYY(yF< z$YWKo<=mq5NJD{l-GiH4>fx-Z9{-t-$WjM=l9va^RHSH$)cq1WRo87({UQCdU*zOM zYRY0aMe<{8>l*^ff~;pg{xO7^K-=TZUXOIknEXVIVYtVu6J8S(X`}Ec0q3CH{eHEx zYMIJp*WETdkaCg^w{SL;R%$OdmHKozHb>oapZBjBK9ACo*=W)Yl=?=z)qjSE(o(+%jJ-m8vY?5E0fHV>iE z7@qG&A1c>+7!}AlC~51f)_}CsS5ei|khL(2QOcayir;G-Zv^G=(ICVlTUm*~%!P#O zQKL)LfT5XCmuU!!m?>`qs83FCjWM`Hsgnf@x*`5oTKjlo>OY}+&RW$>=|e2_YhE;D zYyWwTG?`7U(!ye~)2_w1wGc0)bZDH(6HYqw?~_>Grq<0Ux=D|?`L?TvXu4vyZ}hO1 zC|uSZ%h>-zOk!3mViXakF*eK%aJDkoiGgn*=e}f#27SDi zkrr=lTCrt4Z$&4gf!36NTat61WAE{cD8FhYw8*^>lLH#>bhL`T>p^0^%KVGB9w4?x zX9zJSFG_5E8?qYn<6H@)dgbG9+qMWY(e(<)m7U3fjJ2Q9QT`O&S5<}E$RIy?tYxTN z2x(O_@G5HDi2vOYN7wk$dN0lpzKND|>k5e9r7iyOxW{%?+S2v#D%|jlCn_o`vZlZx zoc|wjV{*aij|Npc@)~ZDpZN+Nk;{e@SffI6#ysO9!=)R_N0!Xo<j250CMQv1Mvi zaT(dz*obqst(n0(?y4mV5q@@QM6Ed{ZW8CvTiyzaY>I5x`1S$GpQGz9&}bjM@o#7T zKlxnzI|TBl%6jsFGm072j}3&8EUaq0Cg$(?q1`?FwR*}uvD;hAep$P z_^LoK`+L=`+!8Iv*n~~eED}~fj>h)sR__#W1C+e7yTAk5nIzboc*!Wap%Obd0p)+@ zO1c8=^a_c+tls2u-(<2#dckZwm!*Sc{!kChoL*i*$p&{r=$83^aZ$hMq6hqCCjY%y z19k?$CEF1h&Q!in&tjSLth&m{>SgbXKk)>I{Z&80LH6Puu^KH|4lvLDART*0_kG8~ zuF*$X-Met7p-4XE{s3e^!M;tM*TcdRG#zzZlYZu;q4%adlRX9mm>*Y^U2hMulu`lQ zvQh6|j4|Y_#x+aj)e2Sec|))?Bd%L=_<3;d%VU5wQ<0-}NT-r1`*mLQR}nNc-!R#d z9?^Yh)YHhHV`3G=adwRM_xD$I;-*hZkfl>C99Mnh7~}EXi3)|a+)gP$Asp&JXRFa; z>?PJ9i25V{UY9&Fe@1m+izmUEr8(roL+sizPXgoR*yUBS`rv(u7Oio0oAbIYH^8q| zR1B=g9GA6LB>VkZehQF3U=rgTsnz}Sc+pU%@+g6Y$CdBI&DNf@tsn`0iK|NFQ96(O$M!0xycaYh2G2b&z z%kIsEXw73G6fe95vAAsOGa7lImQ2`oJw+0m#J zoVPr<0012-J$|q5`&Rdp<2y?>6s~ePi_v^SXd4Conn@-}c#N5@v-($q#Lxgw^?=a6 zrs3wXKqeX9yj_qam1oDxx=o{#EA?P3?MobM7tyac-SuVdk|*yME9vzhM`FJ`Q$in8 z+;i6;TjD+0Bgv05u>aB>ZTkiHIory*=IhEK!RtW@@3YM7$Y zTg`#$8%@?m>(|?-vJUxB4wcRvvsyus#Bcy0B-D8Lykzv_gEno5LgcG!n5Tb~uCP}j zx41J~cm(#3um0+hr`(2{Cez-q};~KH7k|w?(UD-u)^PCK0@)tV6 z;&117&Q#q^9_qd;1giL!`jXBnj>#*G7yYVL_qHPM?Q#L+!pt3?T2xj(N5M1!NDcH# z=4Wf%rZIKf)QP*E@mzK_GxuaoQQdzwJG=rz5m^Ir9N1?clES-W@k5)hYX7<{4=^u3 z+dbfT%0o1_esx}aVRx*%|YGskkelW@*E6-;XNRUsoZSh3~7yAgQ zE6xroEL(G!0lhZ*9J-|*@G}$Gj(|J>x-3%6kyc&3c+TaVBPmHNqT!DkWeeEk7mpc1 z0le~_+I!NwdTOe=Tp{@V#phwoM~w(*=Ko}TI(tm{m@q7wj4`XKWad0ZxjL?W`ieeM zjF)uzlIcJ4=_>~x*i8Nh(5G|B6osjl61|3m_*1R)&)P1agTa{vtxU37>gTg|eJ(mU zuh2IZJ@%wsi59_JF8}Aw4IN!aZBJI-Q+bSe^G+>lB_#<*_)}&b(iG!oihp3XbOYO3 zZ6v!Wu*j-&eO#ZZsWLDx#bH1j{z*eXofv9erm5QM;>!KqR*^=38n?PFs66S*Amr3F z?^>e1pyl3&B_N-ZCGT(^<|3y(lJr^OQu!l&S&cT^8c!~RZfR|nHVL3wK--Db@A4KM zfD#Zi;Vbgpp9hQO)2DX#hI?p3C6uCPJWlJ*e+Egfy3wkd#V}QUOcx8ClLqj^WQn*( zQ`Jo=$RQ4G-h_sGE4A-SYVs}?fzr&I3;L(`>6Jr%;Gs>W!Ss%Ya@?LUWrPAXKw$;X zzh~(X>=8QuqO9oE?D1#*2rlFeNrGP$+L3NJF9}J^Niy&ba1tC~39*LOAmtSmb8|K?G7#4Pa-vZXcJAF{1Fx%><2+qjKgdGM9^j z$?zc(x9rg?TV^erF4KQEO{c5}%@Hd@(!15(o7I1sdu+MY?f~O}WssccXE|^NxBiGB zYF*Imlzv7w{?v6q&7752M>D-JUnZ?^D9vULw=0)6J}tKKr{fRX z(OrB9culoOslM}0qKw&mINk)z-9#@hI@hL=PF^cJ(TMo+GCTwIGn|>fUc#x>^#{BQ zzWHrMc0?2}*=Rx{k;Sf_iAM40s~=N+1qL?|B1-KSdO6P$Er-l3Ikax3&zrpmfZzzG z@4rBa*JL<=*9066Rk*R50(_K7?JV{&#wXW?Fr%`>V28fTTE~Wi8~HO)d_xYM_9|A4 zFYpW#m{v{+FKQrGgiAmmseTeTLX@2@uhK+5z6XYtVs#aqSz=;h4o=R`v@qpKv`OzKsVkLvVi!9{MAS9u8t1Bf(8bOZx|9kGXG@T zb-0N}B^CuUiB5+NZt801M0li|D)d~jYL!dIsjkd_e*=PzxnsbZD=U?@XMREo77bd% z3Xgj{Tgw%nD}G~MESxZVum=yZF3eWoNfB#s-D?9@mCrISy$E5^2HoM5m+fMI?@=QxWGSc%C>hlM}tujT0yV;stm>e^VsBNCv$xfV$R(ZpGicHgZoetEgKz zskZY~l$XyF-!4zigey1v?kXZN^=Pe*R*0=U__%O$c;A-;26gX?a%;ZPMSva<%?dLd z&{PSWw)g!#1d76V=4tLZ!Ap-?z|}`!Lu=ohY1zIeyIf@u3j&58V{h*lg&L(@y>To@ zRi$1yZVO&~w#~P$YahXh3d~};>E43z?E2yNO+!1ArQMHkh3{hw_^CX1jbFB3G+l@Q zGYT3Q!J9_C?g;Nw8dlwULdfBT&%cYy#)TV^@t}L%``%?_f6#c5^B2>u%b@9V7^yr@ z3tahq!gbE^)HRPyQb5z~?x}}&^?`iUb8?mEozIg@eNkzXH3W9e3*E*pvSSwe6A&p``r!OzEoMveT3%EjCQ4Dzm_ zEcz4cK?z!~AwPcn_*5|{h>a_J_(^a-^}v%M&FfqX7*T*CA$2UZ2(4)uuX}VLq8Rhc3E+&?et51r{tOz>QYddk`~CM z=<1cMg|F)%{;2=wV{>&S2FB|~@-Ks{WkrW=^*HxUWng*njtpciD0{lRJ60J-L-vg) z|4^7!r}gqaWzW69d@lQ;hGN$_#^#yhmU`$Hd1T_R_WmI zCYAZM+ixWqL*N2*a&nUGU2y28yj&(}{(9hj(EvHmJiE8%0ewsuxJLLvmUsY3zuh%= z0IysEk?!*VV&`)+b41>JMEK< zxxfA;+TU^g+c<4GF7_?{!pWW5^J(h`kb4(Qwe4I1Dem*$dl#h7b*@j_Wb>WN*_GGD zTp&n0O1J+&pY~Ek`Yr3-?ZQ9G2$6GA^%4Xoq;|WY5CXa1!23T>6d)}xZ%1A(-J2Ho zY8FJ5S*MArPge4-;_w>*{fSm$B?`Zvku+gL4ln7g*Ze? zs$;a3$s|aqfuZNG_NQ-#aUF2kY^4HbF!VSy>E7Ppjg?; zP4Aj0)^X@#s{zERG3Xe)PanX4cfTPXK?X%{kigt^?*auWq5b}PR1^fzz}!$aoo2Hy z{b+xx!h8l}Nc9ss_({Mw=S*N*yM*rf?`A<`2p$0ZN{2~9p6KaU{pR=HsJK#3sR5gv ziDKrIcY_|&mbpv$xoLte=s(XUbcoV4MOW%J(n8pDsu$a^**h99=0if*n@II9+ei-o z7)KZmB=dll-xk9_$^hByFMBgJE6sO1&4=?BO(Yc+6^Q`n023^z9Z=1!3C({^|8Aw< zG2Pq6?h|Th({+KHX7~AExvGLnmW3Qz7=j|6n;y@d=$+%htTS{qg3>v@t%*=cM zutO=iQ(T1@fsKSB&ERY&aPbD-}m@>6mv06G1+S-BgG@g8T&;ny=|z~ik39BECaSa}WJPOLARD+(Vy z-mhJG3brj#>0PJ(UnyZ=$Ao+WR<~zhk@?pXjXC)E0`JpyHyCl8S0m`QyzesxbI8n# z{PT@?3pkbEUr;;9k*73$1&kxJ`AZvn*$vQqx;!X!AXzih2{I?x?E4J|qM%v%e*S@g z4XSo*2msVfh&4Rb#Jtr1)CNa&VpNo zk2(ncRG8!1)~ylKwKm_Km9EsTgx_0)q0N6C|AI^KcUz_Ii+8nAPxmkp<-N?q;qs() zjNh0s%c)iMnG3kckNTEAV_S1{Uein|7tgAsum{*h(9UP^{<_bkiez-po?rE*imGu8 z7R|`colPVqwo}DvF5K6Ue5M126T9UfS~thBDf@sm!8kS9&7LK|L=w8;oDj7 zo4pU)`MDfoVi90D!Pg-OpAJjNj;4BFZ-J2tK_K@#o22Ow4TSPhCyB!-jNt*~#m8Mv zfOIHa{}^i4Ic95Dg70Ct_kSaxEB8(VaCwkLKLP~^5no+LzH8brxn`GhW931Ozp73#^QI9GJ zZqd@hGOj(r*E^s|a_iCn;~Q|Ij#w}bprV_ooZyyDlRGY;c`EK>Z;L=Hjig7N_|xjc zH|h;)BuxocGTF+lz$x!nS0{k*Ivc--3{A&zrHeTzTabf(egaX9>vP$Tm8}j0At$g*RNO3ZT1=)3D>oVqeEZwqPQ}4pzyzOoxQ|Alr_OOMIux|gXsEE6#PlvK zEGSMVB`N(1&1MsmlauK8`)IXVDF-59s(fkfc3S~wsNs-%QuCqdP$(2IIXQU%D1+)0 zfeG>%d%Yfdy_#YLQV-gzqC&CJbqyRC$RgrL$7RxXzn5|eaWC=~GIlTYI4qmSMz!D(YpOiZBF zYAJ7Vr_)h?%L$oc!oG{{17CH)_;g7w!vp+|@ok;a5JkrCNqh_~$mZ&V2ihV7ELW@d zXQMRW++49*wu3TBF6Q7fbmp>iO*X4f(uoP}HP)*vgpkdHw0>X~c1ydQZJxPub+%ZdcVuCtcF4 zPLgDAHW^`V1g^8e8P$VMr=z~7Gfr18Y$}gWuI;F?Ra*+52}G0Cm)Td+=tN=T^m>Ah zyq8I8*rE_F71NbKF-ii5FLwK26FqEpw!Y~{DdXkK1YB|aEF$z#?_G?`b}jvPyWK_< zMfk`^KBBZXhO8OYiQ`x$fyt;AiJnqkr(2aUM$RA|3bHnOu~wC=q% z<*2(fGVU>##MSTXiYxnqXR>1THZ|V1cYSjDUF!T`FhHZxz&qaY4xD-BnP|7$suGKg zW7FQI;2{2->N{<3$v_8#fyyjXWs^Axs^f#fKy@^scTYb*HkrD6LQEE#_>h{ z*j|(`$ij7=3s9rK9NUI6sbpD%ljVExg*uM1HYTa7GcF&glm!{hBIGQXsSm==WuCcI z$vp_8_P0wZ)_@3|Ujn@g^ln(9kf!MTD z(hpVTBuQ}Mi6`QO6HdU9M;?j!`FS)N4NOi>rsCgHd#F?@==FN3C=k_l_9&BCWpobf zn)hHZ*b8*w!?1w5$%#M?LPr3ww-DpmXP=E%Uwsu%J@ph`e);9p`FcDst3n+bGQUUMdwUhfge@E83UJdel8(&h)0O_ttpdf*6Z zVK|4GE35&%>9{s}@;OQlk3L778O2M7z{=_$B!4QOBSZ&`C*s?N-S zW7eE}$-E!eL#_d<;_{xlS}xZ>cS2GU$apK?5i<`NVUac~Go4KDi*w*Q$v7_e8t0`K zkEC#so?^KV^fe&3iEF_3B^|L6l_;;p_2>TM`=MRT_rQDbcqW3#QeWL}7mY?k5kKe3 z`BTDIt5pRJC!x#S5T4I9;C_>~wxnC`gM2=}AFA5#_ti_|1*APrVqs1y35i7A@At85 z*RGVEqPWODiBIB@p*8-{=I6u-n&BTv5qtQrJ z4VJ{FgQq0cBaUPBer2H%GL(gd1x4swgI=$PdcCe%a&rx2%``f#d0qAwBlF|?A~TMn zNPQ+9-eg2_FOvx|p{XEiDl7czJ}yNG$rnSXfJAJ`?h0IN5Nj{%X zITfg)sGQb)b_QPp7fxymgpl&3b~+tYDisADAZUj`0CLBAy^c7J6}W|SmC{0{i4Fz> zRTE3bE+vPRYrte3X*==UdcB?^Y$DoH*+2r|APJqBMH0TqdCL^SLZP76Kvu-%Jy>^} zb10Qc%ICsO!s?x520TY<8{8*SqLKj;@IwHG99&y{4Oj<|&%-rf&3>){b0he^cnE)A@WJ`PHje|G#FliHV5`Mc6WXiqcsx&m<+Bl>h-z`)RQwwjzlP^%te=# zU1YmdE&xpg7EjchC&&Vk@+C`dDJ2vc6EW+=WXm<+=A-1*Lt=V%U9nhHYd}UsCMH9Y zat$c8<+I2T2-kocxl}4C%(0$~!~5xLz`044lBypY$rF6RHQ-uBQG|B8tt5nA^PcaQ z(o+`cXEA;X0Lc^pq`*^>`K2m@?t8b?=45Fi>GkHGmA&ruJu3x;Bud$vkAx=e+v?yjQ{`u07*qoM6N<$f?wKQLI3~& literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/docs/res/readme_c.jst b/z_gbdk_playground_original/docs/res/readme_c.jst new file mode 100644 index 0000000..98f7446 --- /dev/null +++ b/z_gbdk_playground_original/docs/res/readme_c.jst @@ -0,0 +1,15 @@ +<% for (var i = 0, l = sections.length; i + +<% var section = sections[i]; %> + +<%= section.docsText %> + +<% if (!(/^\s*$/).test(section.codeText)) { %> + +```c +<%= section.codeText %> +``` + +<% } %> + +<% } %> \ No newline at end of file diff --git a/z_gbdk_playground_original/drawing/Makefile b/z_gbdk_playground_original/drawing/Makefile new file mode 100644 index 0000000..4ffa041 --- /dev/null +++ b/z_gbdk_playground_original/drawing/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = drawing.gb +OBJS = drawing.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ \ No newline at end of file diff --git a/z_gbdk_playground_original/drawing/README.md b/z_gbdk_playground_original/drawing/README.md new file mode 100644 index 0000000..e7ccf62 --- /dev/null +++ b/z_gbdk_playground_original/drawing/README.md @@ -0,0 +1,5 @@ +# Drawing + +![](screenshot.png) + +Demonstrates built-in GBDK drawing functions. Operate the D-Pad to use the plot function to draw on the screen. Press the A Button to change plot point colors (Black, White, Dark Gray, Light Gray). Press the B button to clear the screen. \ No newline at end of file diff --git a/z_gbdk_playground_original/drawing/drawing.c b/z_gbdk_playground_original/drawing/drawing.c new file mode 100644 index 0000000..0abf74f --- /dev/null +++ b/z_gbdk_playground_original/drawing/drawing.c @@ -0,0 +1,41 @@ +#include +#include + +UINT8 x = 1, y = 1, i = 3, j, f; + +void main() { + color(BLACK, WHITE, SOLID); // forecolor, backcolor, mode [Colors: WHITE (0), LTGREY (1), DKGREY(2), BLACK (3)] + circle(100, 60, 30, M_FILL); // x, y, radius, style (M_FILL or M_NOFILL) + line(40, 40, 50, 50); // x1, y1, x2, y2 + box(120, 125, 125, 135, M_NOFILL); // x1, y1, x2, y2, style (M_FILL or M_NOFILL) + plot_point(3, 4); // Plot a single pixel on the screen + gotogxy(18, 15); // Places you at these coordinates + gprintf("Hi"); // When using the drawing library you must use gprintf instead of printf + + while (1) { + if (joypad() == J_UP && y != 0) + y--; + if (joypad() == J_DOWN && y != 143) + y++; + if (joypad() == J_LEFT && x != 0) + x--; + if (joypad() == J_RIGHT && x != 159) + x++; + if (joypad() == J_A) { // Change colors + waitpadup(); + i++; + if (i > 3) + i = 0; + } + if (joypad() == J_B) { // Function to 'clear' the screen + for (j = 0; j < 20; j++) { // GB screen is 20 columns wide and 18 columns tall + for (f = 0; f < 18; f++) { + gotogxy(j, f); + wrtchr(' '); // Use wrtchr to place a character when using the drawing library + } + } + } + plot(x, y, i, SOLID); // Draws a pixel on the screen (x, y, color, mode) + delay(10); + } +} \ No newline at end of file diff --git a/z_gbdk_playground_original/drawing/screenshot.png b/z_gbdk_playground_original/drawing/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..6310c27e8662dbc56b47262caee55d7a718f60fb GIT binary patch literal 33039 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 RA7P*`8A%0+>hFd@{|8MeOuqmC literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/font/Makefile b/z_gbdk_playground_original/font/Makefile new file mode 100644 index 0000000..b4fbc3c --- /dev/null +++ b/z_gbdk_playground_original/font/Makefile @@ -0,0 +1,16 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = font.gb +OBJS = font.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ \ No newline at end of file diff --git a/z_gbdk_playground_original/font/README.md b/z_gbdk_playground_original/font/README.md new file mode 100644 index 0000000..dacb33c --- /dev/null +++ b/z_gbdk_playground_original/font/README.md @@ -0,0 +1,5 @@ +# Font + +![](screenshot.png) + +Demonstrates how to switch from the default font. Be careful when using/loading fonts as they are loaded into VRAM and may overwrite tiles you're using. Built-in fonts include: font_spect, font_italic, font_ibm, font_min. \ No newline at end of file diff --git a/z_gbdk_playground_original/font/font.c b/z_gbdk_playground_original/font/font.c new file mode 100644 index 0000000..3bbcfd3 --- /dev/null +++ b/z_gbdk_playground_original/font/font.c @@ -0,0 +1,9 @@ +#include +#include +#include + +void main() { + font_init(); // Initialize font + font_set(font_load(font_spect)); // Set and load the font + printf("New font!"); +} \ No newline at end of file diff --git a/z_gbdk_playground_original/font/screenshot.png b/z_gbdk_playground_original/font/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2173573ac213a5b332b0a8641b59a2df409bde GIT binary patch literal 32042 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 oQVmP{6MKy-NN;LG4||TeENf2SJu;#sB~S literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/hello_world/Makefile b/z_gbdk_playground_original/hello_world/Makefile new file mode 100644 index 0000000..90125b7 --- /dev/null +++ b/z_gbdk_playground_original/hello_world/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = hello_world.gb +OBJS = hello_world.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ + diff --git a/z_gbdk_playground_original/hello_world/README.md b/z_gbdk_playground_original/hello_world/README.md new file mode 100644 index 0000000..1a367ff --- /dev/null +++ b/z_gbdk_playground_original/hello_world/README.md @@ -0,0 +1,95 @@ + + + + +# Hello World +
+ +Prints `Hello World!` to the screen using GBDK's `printf` function. + +## Source +Includes ``. This file contains all Gameboy specific functions. +It's the one you're going to use the most. + + + + +```c +#include + +``` + + + + + + + +Includes `` it contains funtions for basic file/console input and +output. + + + + +```c +#include + +``` + + + + + + + +A C program always starts by calling the `main()` function. If you are +unfamiliar with this I suggest reading up on C first. + + + + +```c +void main() { + +``` + + + + + + + +Prints the string `Hello World!` to the screen. Internally it uses the +background layer to do so as you can see in the VRAM of your favorite +emulator. + + + + +```c + printf("Hello World!"); + +``` + + + + + + + +Using `\n` you can create a new line. In this case it is used to create some +space between the previous sentence and the next. + + + + +```c + printf("\n\nPress Start"); +} + + + +``` + + + diff --git a/z_gbdk_playground_original/hello_world/docs.sh b/z_gbdk_playground_original/hello_world/docs.sh new file mode 100644 index 0000000..e0ae605 --- /dev/null +++ b/z_gbdk_playground_original/hello_world/docs.sh @@ -0,0 +1,3 @@ +docco -t ../docs/res/readme_c.jst -o ./ hello_world.c +mv hello_world.html README.md + diff --git a/z_gbdk_playground_original/hello_world/hello_world.c b/z_gbdk_playground_original/hello_world/hello_world.c new file mode 100644 index 0000000..7615bba --- /dev/null +++ b/z_gbdk_playground_original/hello_world/hello_world.c @@ -0,0 +1,24 @@ +// # Hello World +//
+// +// Prints `Hello World!` to the screen using GBDK's `printf` function. +// +// ## Source +// Includes ``. This file contains all Gameboy specific functions. +// It's the one you're going to use the most. +#include +// Includes `` it contains funtions for basic file/console input and +//output. +#include +// A C program always starts by calling the `main()` function. If you are +// unfamiliar with this I suggest reading up on C first. +void main() { +// Prints the string `Hello World!` to the screen. Internally it uses the +// background layer to do so as you can see in the VRAM of your favorite +// emulator. + printf("Hello World!"); +// Using `\n` you can create a new line. In this case it is used to create some +// space between the previous sentence and the next. + printf("\n\nPress Start"); +} + diff --git a/z_gbdk_playground_original/hello_world/screenshot.png b/z_gbdk_playground_original/hello_world/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..10c53348418e2283b5043cc702a09bf9bada72ef GIT binary patch literal 29592 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 C>01*3 literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/huge_sprite/Makefile b/z_gbdk_playground_original/huge_sprite/Makefile new file mode 100644 index 0000000..bc7654b --- /dev/null +++ b/z_gbdk_playground_original/huge_sprite/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = huge_sprite.gb +OBJS = huge_sprite.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ *.lst *.map + diff --git a/z_gbdk_playground_original/huge_sprite/README.md b/z_gbdk_playground_original/huge_sprite/README.md new file mode 100644 index 0000000..c886d83 --- /dev/null +++ b/z_gbdk_playground_original/huge_sprite/README.md @@ -0,0 +1,99 @@ + + + + +# Huge Sprite +
+ +Render a huge 40x64 sprite that can be moved around with the D-pad. + +## Source + + + + +```c + +#include +#include + +#include "sprite.h" +#include "bg.h" + +#define SPR_WIDTH 8 +#define SPR_HEIGHT 5 +#define TOTAL_SPR SPR_WIDTH * SPR_HEIGHT + +UINT8 x = 64; +UINT8 y = 96; + +void render_huge_sprite() { + UINT8 i, j; + UINT8 sprite_index; + + set_sprite_tile(0, 1); + + for(i = 0; i < SPR_WIDTH; ++i) { + for(j = 0; j < SPR_HEIGHT; ++j) { + sprite_index = i * SPR_HEIGHT + j; + set_sprite_tile(sprite_index, sprite_index); + move_sprite(sprite_index, x + (j * 8), y + (i * 8)); + } + } +} + +void load_background() { + set_bkg_data(0, 2, bg_tile_data); + set_bkg_tiles(0, 0, 20, 18, bg_map_data); +} + +void move_huge_sprite(UINT8 nx, UINT8 ny) { + UINT8 i, lx, ly; + lx = 0; + ly = 0; + for(i = 0; i < 40; i++) { + if(lx == 40) { + lx = 0; + ly += 8; + } + move_sprite(i, nx + lx, ny + ly); + lx += 8; + } + +} + +void move_right() { + move_huge_sprite(++x, y); +} + +void move_left() { + move_huge_sprite(--x, y); +} + +void main() { + SPRITES_8x8; + set_sprite_data(0, 40, sprite_tile_data); + + render_huge_sprite(); + load_background(); + + SHOW_SPRITES; + SHOW_BKG; + + while(1) { + if(joypad() & J_RIGHT) { + move_right(); + } + if(joypad() & J_LEFT) { + move_left(); + } + delay(10); + } +} + + +``` + + + + diff --git a/z_gbdk_playground_original/huge_sprite/bg.h b/z_gbdk_playground_original/huge_sprite/bg.h new file mode 100644 index 0000000..1d04ea3 --- /dev/null +++ b/z_gbdk_playground_original/huge_sprite/bg.h @@ -0,0 +1,67 @@ +// /////////////////////// +// // // +// // File Attributes // +// // // +// /////////////////////// + +// Filename: bg.png +// Pixel Width: 144px +// Pixel Height: 160px + +// WARNING: Width of input image padded 3px to 144px + +// ///////////////// +// // // +// // Constants // +// // // +// ///////////////// + +const int bg_tile_map_size = 0x0168; +const int bg_tile_map_width = 0x12; +const int bg_tile_map_height = 0x14; + +const int bg_tile_data_size = 0x20; +const int bg_tile_count = 0x0168; + +// //////////////// +// // // +// // Map Data // +// // // +// //////////////// + +const unsigned char bg_map_data[] ={ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01 +}; + +// ///////////////// +// // // +// // Tile Data // +// // // +// ///////////////// + +const unsigned char bg_tile_data[] ={ + 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x01,0x01, + 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00 +}; diff --git a/z_gbdk_playground_original/huge_sprite/bg.png b/z_gbdk_playground_original/huge_sprite/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..150843f9d2c24d348910d4fbd3d8f6893f4dc8aa GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^y+FKxg9%9PjknoD087#RCJT^vIyZoR#}k*h&Lr0wD!uf6{tb9J44co37VK2m4rvw!*L2v8d) z`Ejzh0TyA1!jF?Pe}EifB#A`{T#^^7WOM8MlDbFgmp=gA`)A2#WK!7vqcB*{vWMz( q=Ywp(B +// +// Render a huge 40x64 sprite that can be moved around with the D-pad. +// +// ## Source + +#include +#include + +#include "sprite.h" +#include "bg.h" + +#define SPR_WIDTH 8 +#define SPR_HEIGHT 5 +#define TOTAL_SPR SPR_WIDTH * SPR_HEIGHT + +UINT8 x = 64; +UINT8 y = 96; + +void render_huge_sprite() { + UINT8 i, j; + UINT8 sprite_index; + + set_sprite_tile(0, 1); + + for(i = 0; i < SPR_WIDTH; ++i) { + for(j = 0; j < SPR_HEIGHT; ++j) { + sprite_index = i * SPR_HEIGHT + j; + set_sprite_tile(sprite_index, sprite_index); + move_sprite(sprite_index, x + (j * 8), y + (i * 8)); + } + } +} + +void load_background() { + set_bkg_data(0, 2, bg_tile_data); + set_bkg_tiles(0, 0, 20, 18, bg_map_data); +} + +void move_huge_sprite(UINT8 nx, UINT8 ny) { + UINT8 i, lx, ly; + lx = 0; + ly = 0; + for(i = 0; i < 40; i++) { + if(lx == 40) { + lx = 0; + ly += 8; + } + move_sprite(i, nx + lx, ny + ly); + lx += 8; + } + +} + +void move_right() { + move_huge_sprite(++x, y); +} + +void move_left() { + move_huge_sprite(--x, y); +} + +void main() { + SPRITES_8x8; + set_sprite_data(0, 40, sprite_tile_data); + + render_huge_sprite(); + load_background(); + + SHOW_SPRITES; + SHOW_BKG; + + while(1) { + wait_vbl_done(); + if(joypad() & J_RIGHT) { + move_right(); + } + if(joypad() & J_LEFT) { + move_left(); + } + delay(10); + } +} diff --git a/z_gbdk_playground_original/huge_sprite/screenshot.png b/z_gbdk_playground_original/huge_sprite/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9d50c5578d33736876b997f076ada33f5e44fa6c GIT binary patch literal 28083 zcmXtf2RNJG`+kBFJ28sZjL}kitJ+apH3U_PP%8G`TS;uyVUt#c)TQTogfn8UV3r% zAMrrxq5aGo0Dw#a01Q4r4|0b>Vk3o*j)5k{A`L4&kmDjz;h5OO;bda&qv7uA`qIsZ zcnJV#c)hgsd1=q>@8t7}TT92l$X@g%1pvSe(1EF$1k7wVyY~xEKf8B)sjz0^+v-o~ z57@4%O5Bl&)Q_>HB>RefZC?n+kQGF>Nm{UJzJIO0e~U8QoQ<-NLH!?4*`|-dM(}=~ z2ly2&N%ac~9wu$!1Uz^ufIZs0o6b9qZK(h1pat(c7%py`Dvc(7xzq^JdPl=uV zSEiX9Z`~0C$g=_{1i~AUMIyfA1~eGJ1FGJOb~C3bihp4xLpU>2b zh{9JiUspk&&X2@s_A1@@X50 zDinf>BEG`YSiz~iCcyit7$8r!U_^GNE^QT$It7hAa)sc!1ZM{0X)uuXe)N=q#$paX znIwfrnGB=WV;_5UTAsg_>NGK*R&7=R?D@D%HfS_8q)f3M$0o7s-p(%nCVuo+_*Gx{ zrSHaI5*Yvp0JK3UKU?7eFb^nMRc{3r#lsL^!u_T+8sti*X>25U$C}z6;JrN9v7A*WC6eUGWPgo$D7AH&YYW@Q_GJ6k<*t`Mfd+ z?EmEYDZY!9wHeLL0I4)%*;HMOz;d$nkHI31G}|Lh2K2{;yI)xhD9Gq&BKSJTDxguA zAbS&fMAEQk5*mW%NHa%C_)ERI%jD_dnq{Kv2_Um5=aQ5Y=X*SYE?TUhiqt89Rw<6X z8Q_S39}3MEfB;Ct{(kn1fgBLfNCe!7jXz461Lz>|`U7xXc$uP{0UQD`kf<#K*%Wb- zVDd|N>ah^Xs0Jy>yEpjuev2rf)lY(5a3OAz#q*`2hDZ%=rljpnfu10 znXwO&~0;re=|km~ADfhV2qu$?Qmc-eut`(r3ouZK(MB`7!^!YPkQU)ZYK4 zx&Xy+0s`Lm;e;RwjF3I&inYGa4)AUF1v-nFPd?X$?+{t81%AD1nEeo!>txjR& zzvJ~j%bQ?Qm}KOvDIR4J&u~AZJ|VlP*XA#>S^Yz>zZ>sE2zSQVcf23G5iS&90MtxU z1(h?|N|t}jyj7%1x40#%jelW0rdB~$R{U(1mbVt9rhv!uk9WeS@6mSNu@ZN^yD z8Ta=0ljFf`jhVWGR`1|mvgHP3rSC@A3Yd7LC#fn3?@1cQ@3K6o3kp1;<011RE0gh` zbuG6Ne633I1)Kli^9QItw#Iw3w{sm`?`AhJJFps0*_H(Gsw*$_!B3bllwl+81|ekr zjfjvrjJ-wDco1zR_mac|QL5lr+ORTMU9<>QUr&6Kz<|~9G$u(&Eb>~;mk}Y_O8ntx z-T;w?Usipy7F1uzND%yBugZKfln?=IhkQ)uG%icLCmP8H!PJjgbm>;C&I`b0RDUY1 zpCv7vJ^^t1{XLtVnF|Tl7s=1Y23BgDuixuvw?c>%#=MFdcHNcqOtgQ4KUxq4o${K_ zHV6J&^KN2k;^JwOLgNKkAJ||FVZ1yZ1$t$1!T-5P;2A=lJBkX>fJ3edz=`9cyQA-H zLo>HPf_~dukk$TiSij~yJFC7km3gB`1OuE=c#4Sha1t*`&Xi5AG#Jndib$hzgMoWZ3MNE6wSl^Qlj0yI zkn=Rjr&pLr#P?{1#;h?o94Y6T?SR9_g5_h{jIfP3UCjtqQihC@hmv;w7YnU_X+P_Q zl+Pb#1)-C05V-c|i928JFO9Eab!a`oX$g1fKW}|h6f2*6P#Y|EHGXeCSKUR-z2^WHr&aFCTVPKeaBsu4e7eBHTSl>Z(nErp_mcwrtR3wLv^NH z5MN=McO@5o9c)H_BbO42KXH@uA1BgG_wZk;h)y+KN5W&CD6l8QTZ?Ya+TXpGBtr3N zqJ%HLR-VxZRi)D|>>`_8Rz}7sF`rT8EQG|V!1w&y4hW&wZ7p4#=nQN zL(tJ>&|=x)+O2pgJI7d`^545^?kFUksKaL~EA447%Q93sGsX^uo8zf>9>L}Pc-~67 zleCt1gG}5z&uljwY+jP)$X+n}Vbg8KDsax+x^*4YDS@OL-x-jwvQm%U`ty_Q#={5fF1B&mXjmjzxOBp8$Q=w$|wWzEYUxHHz zTN(0sDy4rGCH5qg1Fk$f$E5RaE^kg&o@BT2DtaXUuVEkjc(L0006<2 z9LllFbJL%nOtnP}M!DhTnHWk54`~t9SFCHig8$24Ey9(I0{jVYiji{WC?_zzSn{@) zcXJoLnB>A$4_BT|kZ896n!PCCa?j4$-E-&}lX^n@#E}h}oVmn0kFkE+Q2A06n)P)} z;V|x{pZeS6I5~xbJFhSJb$Lw;1j4`X!CT8x-nTD_O1BP*pZ2}*7m@o=8-)jeJrCQ% zO29wyI5WENY@7i~42A{boClg^-D*sWK6ctQ%Fg~oH}RBOp&!6ZwY-f)P^$KkBZA`T z4m)QUN=X4yj@As}L)+sg>*U^ZPwZEiT!T46t{ zCH5Bjv1a{t1q*kt1LhXaK7*_~dmf;u6To?-ZjJceyopcG&aRjH9|4!ljk&Dt&xJq8 z8bhO+S7pO~cVtFi=IQ~he|z?jgguOChNy6E2G~%n(J$tTGyq47Up`7K*j>R1c*_9l z@@D(U=qOksl|P)r>ofNnpeYk$CL}DOBj!~ZT?%8S1 z-gkxCbp5$YtGu;>ysCfgsGYYBw|zWKy=$1gyK> zjN49XFwt@1e~fNpPb-<&bc4$f^Ii#?@!?%5>EEksx`XUrd+MXi+S=dbdIy#2`(Q~y zbWe~4zKc^Ciu(mDH8*D;a)*BuKcD_&)=z`XQ*#WN{sZj^h%(FhXP4j&IXQU1?&5QC zW|`w*-nhN=EoI=JCCCum>OEMWxiU5HL4&nGNgUK#C9pynw3dtxm?N?`Y`1BlJyY*~ zuDHdo3pIpOl^xOg+vE$OgwWE(YenRL8B9G6y??^lt#`;6-OV)|%Gn8LEwaIl{ zOR4-OAMuBrrS7dW^~yg~hnXe4i_c5s61bncGlQh3%{5(jo+op-#_x)PG!EnaA6~f2 zW)-$V4uF9=-{SP>C@nLmAp_0yo0-}RY6DYjr#<{9-!u*VX3v;}z2tkU*BIT3Fb*p3 zRqg&B#XPq`ZgWo2^!StJl|C4~Lg{>9eJs=TLYhY4#b-v?1pDYgq2j#$d8O=+s;m_p z_bqEap4)BT?8TbTrPlu2$#7yF5Rb^lMPhtDAUk=$W2|4W;uQWAe9${T?H}8M<`>Et zKkJqv1!d@7l#$U%7>Qz`SA&TjFfgat;o8@Uxd{c}mge81jIliT>Eh{b%;2|I=nMV3 z3apzePDddGmsy2wBa!{Tj9Jc}iWc@sbW8+@(*a8R@DJ2M)-35ZVInJ*Ux-G;PzWscOP{vxN$!hPXG(%Y$m*p{*$MTqc^-e>PEH zq7(Zl#49sOe#yrY_J?p9R+&?o-sjg)Vk#1}y}IO@@1N`UJbCC5?eyP!%_>Jz5iFjv zH=~x(T!ZYY4X1m1d_N(~Nc{$36mNp?&MEwgRY31mlf`PvVn&L)+ikI|goC8Xc1q9Y z7O=OB29@?oMdw!`_N=$xm?Vs0>`@6$A($Mw#ZOoncMuPmI$x;_%umZBJu78L*IU5N zcKE{g(RP8-c*KPcyA-mgVBd04M5ul;`EWV@+A>CeWo~K0^Cw&NBI4Qapp=n%?{UA8 zteiwwbs@{j@E?08$8s_(RNnmtodf^cZN0iTk3uLpyqi;4HkYdPbANUU)_%REP#;W? zl^_T7;=5}ar~SMsziD`Jg<{YxYa0~9iV%FjdfE$8-Lg1#)lT^sFrz0G4S7b^xDC=^ zY>(1aCE%LgXF5|szP=_n?=LW=YF%2X(>Q#_UbYAKh|`d8lqnTzBRPiY&Gc4djFeln zfjsXyKDYCmjTBq;Fj?+VX(`2^IfnYGPG2ja?|s?4k-n}t`>iA(zq(}iJ?FND-fGLw zu40b>Yi{i9PVL10`j->{REiik-fi>OCZBql1N_seph*`LxRy}b{LJ~C1tyd9Lz68X zjOb^vq8~m6`e}Euf8k(xc>{x3CJJZ#%HC>FCb+1Of4Nn&*1OvBDle%=mPl(OYss^H zzI1Mm)!Y|k&`j0hbfVf?AMYt%TePf{OnbA|L2Ew>-~4AKiNf=jN%@X zoxFVmEOt2httVDF;f!cL*rzUiHVK8kyMLHjzbNf%$g?;QxA1NHeUVOsc3zVflYebf zG-78|2JpcyJ9&?$huwTR6Tg$f3*D|RVDI5<_Y^z9^!zyGi**gU^c!)>c<^5_SV6AK zA*fZXonYR!0c%w;c$Rw{nS+k9v?NVGxTn^2puOB+>WvKLl=_g8J{dZZ94F9lfvO?b zQV%&zle2u`TA7w31<2rxEdtc z2cs2ErYG!ZPX>$r7`ktIU+u?=nn!$}GdI_p`_KLw`)W|8!*v?jBiv-Sr?HIwnLBoO zD*^Bg@AGdxTjfHID{p9waW`Z?^x$lOT} z3+9;dd&o4kqNYkbh(fd>D!YV~`!{EwP^89Sps;NmAO#=pFy4<*7kOS#kGi`wHEE^h zAsEQ{^&~#ifOL+ccs!qLFEM4ZYp-%8P{gbB9(?@vGK;`NrKl4Gtst4d*0=e6X+|jx zx*9j2MrAL1M2nczibG6Dm76yK&71H3gZmuoipj@b>`k388eVg*C;T^uISTEbcAnt8 z`kpsQDc0kZGV5e*-Zzb(OVU^w2EeU1HkObGZ!IQ_s!8RKzSt+^4yqN%!j*)CyM^)D z6tQ!zxEzB<3%yysI4eY(ncxP+C;B&GNb($Xw#xGMb;lL^RRYD6wF~PTKR^MP1Ze{; z)kI{l3z}5r{5oHH%q&r(j1HhWw-A!L^_Zf`f0qsdF&>oZ>|{3{tu0H)p(aFwR~5%B ze?J*JXZ+)()EeA9x&=D1j(y=16{B!`%>3>;cig00yPq9Yb=x+o4FotL;MMpX;Ny{x z=B`pO^5jnq1hFWTsf2(OHIL+HCs{4I=};FY35EOX32(wA?!VlS`?z<={WU#sc)#kQ z={;mGeI*D@SnPzf0ZVk)jo~${U*e03k|Z(}c?_oS%G~l7AT(C!^i@YuGV%rqs)wHyj~#+-bQ_~m%d}gf*0wUlJ3JJQQ(GM z?WbiKPBdeB+nQXX`II=LZkOAJN-8^vDHro9zWQEysv~>)e!s1(?!pD3gPkZ&V^lVo z(i;qWNEYn(g*7I9%t9A9nIi=)84IH=0PB|4*pq6>!vnWc?Xrq1j{QW~1(iIyd$yAO zZ}tPS?dG4!!x0B2tM#N%G6Cb4l4Q47M*BafS$GcuvT$>8j&y~MTJQP*Kw%ld?)78| z8FU-Z`!^bB@?J6tet_j+SyIBgqUX2IhH8|+Y7Ew@`rIdp@zvVW;Dmm>k9GNhlf87ZKu0N<#mYPFiQYv$h% zHY~y&=Tx}s!)4U&-(#;kFaU7Owa+PhL;0GG3e}K&LQkLoFPu3a4zTM6sZZ6}tNmjo z^)?cW&;~U;sCnP}2^H44pCR1IC=-*SX_>Qka=wIbeWZjM;Z-zSpa+nC32D@54I9#w z6>L=G$rkeFgURRUqU`MlY4PS7i4x=1%SQ1NDsSXObu zbc?t3Hd{FT&#>=+?8u-wC-y}LJCBp;#~oXJf9J|gfMyhH!zJ-q&ng=L<8L5UP8My? zp0z5Me$g3$7~B#^$KR0_>|zB0fk>1wO$4=iP}8Y^LRZ4sK@ZY>@U(u&b65FVPPB9J zV)ex;A#RcID^qxvp3tAjI;IMv#AZs_W-~yuOjTu>eQl^)C9{h9iM}0uPe?=j?@TIDoNulAxSX*kg*pl zUirnVyN8td3H?1i4#RxU57Z?zV(ftX9M_1K6Z!&oS41+%BZ9s)C zR&`LBz~A2|%4ScgSIBJWQ1Mbfec?N=Mn*iKo2UJ=O%;JBVjHKJ^S*R~M!NaCu5Ieg zXPSqWnwoa{HB82TrX-75WRg_UPZEDL8#3Hv{(>u?nljTYr$C;s6l6XnkxOm)vHcF!yF zuBP)skEb1hHaNWU(U`Hy^|DIX)Od&P?01qiYSd@zG#Q8q{U^P?QbSK?c5OmGA^oz@WSM* z@WXX*8W-Sn7cjqe?dwml#5}sWJZRm!+q!o+`b6bq&Rei>;q2qW+2HQwAbrRpX`TDR zi*nP}^Rm|ScKWb?6yg6U#KgpIlmnNfcCYCx{0$x{$eLn;btwS-eua($en-+5ODzPY zs^yD?t6Q0@s+tDG%*DY^wZMj0URdITbA_GS@-dY%4l7DTCrlVJftfI3yLgF%BByMJ z*PzuGdUe$P0FMZq)rmFmvIn3tqkOK?yuo$F0=SU@SiVp`{MW&CwXT&Hu!M2HsC6%^ zY57Cz9&mH9a6{etk2-sR9O6FTbk=gxyjvHxRVVOCW%;PZI&N|&C5YPhK0xZ*`(P`I z#cy1lw$$lcNhIz12#H&6rp{7Qqu?c(H&*D=&HdzTdaFIUbBcy#lrPY2Ry5s=s1-(d z{%D3S$$IKjrp6BN$2UP1?*gyWZ;mPE5AAL`R01!p+yMbUw7Hf%h{Uyfmb<&rC|Y=! zITS(;m_MrU$7m<+iCr&=*_6H>X5%_J*>hG<3afHlPf_?GFz!X?8>C7F_+%lMEs_D0 zsLx(Th5m7~5?x0m`Zc_!cw3nDidG-WK*R+qCk}NVe}5iBe*Z%4!M_$Cy;xRBJSYIU zf#k|34J^C(3c&OEcQj3b2dl)v`P-?@SA=kNZuBv=Lt8KO#q7DAk@ z(Z3rj!hY3VX4kbG)d9me7Q=CY2Mgg_b+v@D+N+g&DrYs;7d0tL$L8fnxYi3?_##Ev z;zi5u1!wr>-j3fzhstG#d+_XR*wVeQr4cPIr32YY=lQD#zjr^xbDZ*gr2o-ErUB~k zE%b_mKZHq^=es%7xS8!VI*AoHH=jiP|G5CVG%>7TjK;S>N-&uu^Qb<%_ftlhQ8=@u z9f*zzS>0ji#1qpRyqeh>x?P34+0MgXt=(KEEbNPfU-V0b%6BTx?w*8->9ZS&RO?=ndrq0NV~7g4 zUQV&CE)!QaZG)#v`tD-6JVOMDZ*{m#sdTio0S@&=+gFPZ3(vHvL22mMJAYLmX~y1i z@bPRz%+_NkzQXaeC7yE35J+j^E`yREOB~p=Y`iPzBm9nBR1B{UX#!=9WA3$Y4=y~@ z*Zn+yzqwb7ea2gVj8h(NY6pjr0WUr{4UdmcPxBtBTo)*9dd=kwynsrgtQWZ!d-=nlR&@c+Dr zl>CWs{p;7S=XGw)|A;v6hHvy<8`KkPHqmV$Iy;eKoXdw)ZZ3)6Jh?m=T4)KqAmTsq zV(z1&|LXB65foa(H{T(jtmcQB-<7{4pOT}Ifi9)?Q=+rpB3)(#-u>pyOaru&Cvrv2 z&vC$YYgUA?4i`)?FTquCM(R}DVx01r3zzNj_KzXu{a)VIW9Qam$M9oEA{+&eX3rlI z(LH=G!TPc<@3Jo?WQA9(>EF*aB53^YJp8;k{CxhT<>blr%9Gr{)lA}PGx3MnTZhDa zXYIQ5+3*zWgyP1$qhV6@jWSL9$?Y8*qPu^>QIVuhR?NPAGaw>kP~M>HF2&6-Q^L~c zD?_HPstOf2w4joJd@hCd)ao=YKj63s7=*+f^n_pbsGNAKoJgr0NEwVaUEp`a)<4Hx zFVbHx7Kd#Xx7=K`-UPRv1h-zzwq9koo@J|?kEB$XmT_HFab2uysp!IX!*4EbeubYu z(G#q8W(gxk9LBp&!yd6Klc9Q^$O>0VKW@fF2daZ{e)>q?g+Zq}eB0B;W zuiHwtNC%J4BBL{LTi~FQ(I?qdoJ`t za4lNnn35q@Y33DeT!Cil_i?Y?{e|l>&3^6AH*S!#l$PtQn@zDB$<9+^jN`Ae&#SUe zq`}pV;=HiK5v~7`GtvKfmxwM|#PTBG&yIWe1>=)Pp2XLO2*E@zZC&QrH5&h59oAso zWA-6?X#PxvC9v`0d+SP7-bMY8K+~oFRsypy|M0-ZM^CQl=vVeXUa)Mw3mJv~R%zTz zQF&!3Q9k4M4o3%3=(M1Q@YXAqxa@}g3BOtO?^2Zeo$;NIY}o5o1zhjRf4mfAzH%Pk zqfDggl{c0Tp7Rv8UjAy;H_(7tAIMlAV4j35O*`g=Uheg1fc$soo9qAgS+{;fjFR#$ ziF|S~J*0flFO~9Wzn7Z$KJEV!OCc2*YPtxmoE*5N(9h7}1ZtR`Bw?$*`797+C3U3= zi`38+;jx;>CB-;c9Proc3_uY<(+2W|!jN`+_BbtHvfx8*inm#sN^AO^C?hO*q>XLo z@op~s&f_MFa^$w1lv2!a9;3R)3F~rDv!P(&+kWA0dBV5A+5=AM=87I^LTI(yL@Ni< zJ-DKqe21$oPE&FzWQ?YbI1?*-m4qE#Vue>Nc>9Kw94hz`Wqq~V##;sp@b$%LFLJ8e zcOG?Vpr>k+vL%mJMQs+Ih4iI(5Y!ANrXV39fc_UQVzI1ES^ELvuulz7(M69zF-*qP5fYl;uuydJ zn6?N(HmP_wiChN2XY36)+>D4Rcr!j-eO_U4r@!p4m|y(e{$0Gn7yhtM`A0#sY+Uqh zd!#Pxx2xHzvl{YK;t1w)xMT}bZUGXO(i$OXy&%PHUkcN$bcV9v)_I4$!x|<4>AxZ; zlV++~11gD#2cH!WW2HDB$cJ$6#_=@LuO7>v|9Lq7s^m|Df zG!9~H^rO@}cVzG9qqW)L`9hljykGQUX!tYZviMS+{ztST^!`@W--#5 ztSB$cMlu)^0b>G)d#L_dDNg7$EOg4wl$5vhTVI`T6z>0m`X(V=(f>ip!>$bgiHcI z{wnn_`_&}cq>(mCiWl%OwIRC{r{Z(KBlvu!Gg6cJ-k_j5jfA|1V3uB;g^GzLLPWfD z%p(4|M0z$o{;)9hMj>5l8eBo^A;rGov5Z3epP)zICWZc4xD=)gv(B=uJl{>S$QbMQ zd}82Cr%#j!Z`%P@;QVV%77Jhmvl=WL_Uxgm2>)X`nxgOcIgQSYtQ^JFm58k)O>|k= zFPulgk3TYBr1RZEEQjm4kk)!3eEUPE0mJ9LOWJur`QEIL<`Ig;2=_sPH?^(3((y)A zp$Y6T^iT1OD{`^zmC)<}KX><729?3sT_}>SaHYr!$k6lt{@C}IhF2f5c=I7WTYrx8 zLx*ZEa;qbioTMn(tbBfm2)PnFQr8pQO>UFJA(@=L@KPhGI*W9MqNw3DUGjQAS+aHs zd=~MmRHUZB;Z_^_-JeFzaoVE{+)BiX^MCkQjDa&ZeHDL{#Y4c9TZM@T*=7fO#rT_0 zw!aOADnx4S2M3lPy_7!?w{BkUFbz*-4J#R-A27EytqvpRb*lDqa*PlscuC;$Do^K} zYet_zhEgnfn$6GAlRjwCID0=crc9e43+Sy%s-olp!UdWCy)|sLdCe}C@a@%V?pe>p z^{HBYyABUJLDQ=ns}j-h6r=>ZDP=MV)> zru|=u3SLB-I$Gk^<4)GQP(P3ChsEp}Iy5Hn@em6^4nWD~`BD^`)V3Td)1lnvs%FRL ze>L~KO8&otqtDNmrUs6)RvL&XZ>HgH=_00}RIfD{k*_1J#15;GXL!w8rX9~C4!!>) zJ6f0dsk&I;Rz#@B1#lhmbeu#jkv4A8upa_M%lpsH?=q`%)8SU5I*@pGc!2yTwQl;f z;Yq)fhUA6l|3;s{R%DWv>4H6$b1B*3PWa~C;78?KN%f3ap~YNp(|ez69Ad!84xWeL zxUsl1{SNRPEoAO#!Rj1_$^W&oGg!PkBBsz(faG7`h`^S{c+hZ4RD5^jr*xs^gy1e> zw5dSQI_2~UQkgq&U96#y@-MhIv=n$D`EKR}{gTA^DJcwI+OSn{TTWBe+NHX7=;a7& zcC9O*Z(vTOupaMLI8mz;O6cS3U(L$MlYhTPw$n7WPsCgsu4#x?1GwE6outD;Q2356 zam~&RmGGv+q|O-_*v;@v>$iUloPdw&CzwEQkH1lbQuX(L-fGNXh%<3!F8yX=`_Bfb z{~Lc#0;C~+)p=iGd0FkZ_v%BX{&)@1tl9)$UhfJ)ayf+eyRTSc?{1G<)WVoZ829v> zf%ozgj%I*h?#{=EF`k&=3e(UG<+!m5(;k-{&l2hF(CTPsKg+1Vy07%#yISHyJBE%) zn*=VX25}%UA(Bc}zi8gHOy7pL7L%?p?D^+8m!-EDa}{Tb=GtY&S)S){uT~a z==&- znQ7&&;H(~HsAF>JD@G2tiky#u{sH2fY=p6lr=i)T;iIgh8nQd+!|0BBA1HPcT1d~y zD9Ad)*#`>n^sK_W7>_1~s!w+1g4o4ZbIJnh8vH#yKQB3?!kZeK$m)iJYv1dJ_V;D( zB_(ZOw@~+_G>(a?bzU)-${vuMcQq{k$B=bObUd)?#7stTA`5{UtvF9q>&d`bcH(xL zkGdL9(1yO}*A_4)4WAFGGjM}~m^Q%J*9mfy{l}>0L7TizZ92crl5Qa3nbaDlw)%W|g}}gQ{OGIPcwEsfGsZeEps{1p6P^ zp&<-rlU1gQ24ZyQv9C}Q?DE|idZvQ%hE!~PC-t<4pM}D$KCKO-6-KJoh-NyfPx?B( z)lK!~4hgA^K=&WD%wj!9=`3` zyN?$fcu0)Pp@eTQD&api%N&wFZ1DMTI#3kP+yI}Q@gE2|a+1He@r`^DIr{v3v?~2X z;Il8Wl4YlA@4cP?_ru2yaP*m*djAY?6JqpL-bckdtqHp#dYj24-391T)caU5C(rY@@K> zQjFZ=7HvwJLWutUuYQHG;4G$$Xi`avIID$JHJ6Le7$v%oTX=+q?x}ngOYGrKF(tx& z;>Dy4Va*pQpul=i&8PAe7!U#Vr`Wt<(a;_c>MVLoP@e`$qYR*r$Y%~7F`u1=2!n=VMBE?)nn zkea5~D}262&f?<6&3^5+2V)TJGf%^^U6X zK$j}R8Hq&i4r1-r=+Zc#dPb3*(n+C+g$66bQ@{$j@R`oQ(bkW>xwvJd2VrJ^x)b~# z13Si~+^XE&@+kX3l>JB#-Fa9+c=7YP6_ypEoBB(D$St)B&1#%O#YiS=3oM3PEGn z;m-DNEM^4QJm^oiMv|iz&ll>&Y-J3?J3U2qJ=ReS_Uu`MDhb03kC^xnvc);6{6gJhktcf z9RKAqm$Lit*$VfY?MAh^{LS$2!+`zMZOJZY5RCu2{RwgG%zBH_L(LH6faKx-rz#X)plkRcf;?aLOUH}+_VCPem8uw!p zgcLWLTE$o5mCg$NHAI0f}>Q&^T|y` zBQcbRepD!5vOL%>7M)$DCqv3u6!F6Dhd_QpLQQE*YQO7T*CqF+YwFcEXJOA&YHEtT zj>_)03R_av3Uk(l_%r&S+3kC1pSk7zI}6Qo?EE9inZfELac%2#ivlR^5Z}O|Im_4g zxwW+)0BmwsdWjVRT#L<2)d#APW-L|#5>zQv+HN!*c89jrI^^Inuei`HU#nT)C*!k_ znflH`%hFMv%=7#eh8 z6nqpRs2Y)Ce9F5 z{Yu%TKQgI#-yZx`{Ey>x1BJK8v!4|W+cs3kHy&d@JMkEebY!2E8Onwn1{JM|w-7|q zxk3>Xd^r*Gc*Lza^+j-$?!Ys<#49fz9||911n-PvJPm(B&($xy>)5d?&0*CkS8*r3 zttx#z=goBM*{Q_KFE@cF=?i;^uB!#D%b)eCo=+wZ=|-A0yp1SqF8#W#lFLb$Jx|6e z;05q9?E5ColQwqbumvukhajIpI!p?HzMiUA&He72wY4#1c%H|3_e$aE}+^!HK9DM>68+d~D57%Mi^T}mXH27f)k-AFGfO9sqNUG#8-6|W5{;-dQoi(Y=(F6+ zTaI7rq0qls?aAfXQn;GEF%r5~(YKB*{6>=3AaBdrEE(i!mB0*UhrG=I0Wr>k2qr5N z*X9=P>Qqzq3PyX|98p#~cr+aA#2;@pNL&rKNL~?{nmM_3H`Ft?YyUs-tpWu{gstG8 z6XD4x>!ht`RgS@3s~TLvUIDoK`}ck=;-7@|JRnfsMAR?vd|uemGTLb9%N<}Z;oMA$ zyzYvy%FlhO7VkD+{Xm_bxKiyM>zGBMX@07n1R}d~hp4N0f{5K3^VBL8ebe!IZ_Dj{sUZBS#*@&dNmST+X&s&F?#&@_?2d>{m;cus zxcZ(Dr+jRGQ>tbVw6oYUX&$7{Xj%7<6&FPQ_O$ns<3&pJvpJqMI*cY(&Eq6X&R|s9 z0M6{830u;ZesH{k);4jTq~I+{S14iH(Tf%*k(A05QT2OToCh<`jg`;6pyga@i95yR zT_yvsND09n|Fihct+RaoVU5~oyGpa{dy+aRA@5hl$Dsk=dN^(+s75hvF0E35( zb&DRO1^BzQ*-_K)-kIH#5-%%K{^WmuoR%;+2Z)G{-om<~?Py#qfTdfq4!4b$^(68V zT-8!aJ$rnze<({WhKUxeNe0ucs~xbtADAK!F!;KbR^5_3GBbIf^T83t@t-|bJO6uB zZUi^fM1@6lz61N6xt`$inND^LX7!O0W2wu)Tg=?&Em?SiqK6BFG7bNE#jVm(gh^bX zXf*FzPY;X2)?UJX%gvcT*UjPSPR8tX-%*NELp{T)S(wOJb0&;#8D^X(c#9(ICrA@* z4!q?{Yf#AwJSq)Es}o4mQ-`ToY+Y{qFX@a*4XTtka(& z@kh%gEIOYojpBi1FndZ zxolTsfcM1z{3Tq-7o&EYC$dzI6@0f$#vAYgscuWk-=E`shm?x_#%IbV&L`?x#-$IK z?oLr}C@%ZM_28c6APYZX4KS(?Ui4< zM@9B2loAY+9+ctX#!~U35)G~g`+PKjG*5Mf1)*<}3;#6VO7tR3j+Zx53{Hh!47qf= z+KeW>XbiT)JFMql6!!&PF!wbNhj=o5fc<)n@o&p%rr#jbrc$*}^!~Y+bMih%;^iL= zbPTpXCJR}vw;Eb0UnsPlgLumQMWITQ&o1kXjvH7aa~lJ@H9_-wtLxB;FD#?A!tcM_ z_6OlX>#f1E&4VpkdJW|lD$O3*nj{T})7VeCnFhlgu$si{=N5)$uAlhDgx5Ijo7pG_ z3>nk!Q)xLSVM*9-krm9*KA1T;%qm{G4=tMN90o%ex-(M0{wRo$cnnizHT%dF`|!(m zTBQ%+;S5g z^LKdPm~(5$2})NHXVZdB3dY8;jG*}lthZtNHsjkA+16y) zw#tN!p{da8kyotVKOe~~XRv+kXT5QHZB|>yWqP+XxceK!C_P_7u($61r|Lc*(x?0f zaeWScRcH${lXT3tZ=hAB2@Q9X8Yc%pYKDdsuevj)w*dV02cSeqP&VR9r)LY?XIu2$ zFQVip8*VrM!Gg>WZpG74?Da#hCQ`LyeeDlY&*KV*lr&GrC)Ai-SG{+YKFJU?0g8$JX41~MQ*YqR@S&csBm#9J}$i$Vn7SiuK$!$?h zG8|iU4lc@icwKfrrBPnP-AfEN+zI2{G$Ax}C3k(=%zrVf=Hij&u#`LWBIa>MhT}mX z&7a}V8qel-7eD_{WqD776{gZwCB@&pHKlMZ0>D&dPI?2RyJH>R!@obU@~y!pPUWPc{ZL2oIGvq%14pS> zq*uv);s5p9|0r5YOH@&nIj9{xycUiVpyMTJ8%HdSgG0s=qhb=wcc7GLFgjA-5+u z)5*Wrr0#xbH-VxjcqCBtDQ%g_^i`embqr*%)RN_?qFw!m?Hc2^xc^tuS;s~7J$-yZ zS~`~!b_E1P>6TtvkOh|RmJ|Vz?gmMf?pzRL5s*fNrR$3>-AFCn&9nTTe|KN6d+(WZ z<}-88nfKh`l3SiyDjMELAU+5Pp(f8pOIl0uciMT94i{jf7XVFzkClOd)(D`H!#clv zte5z7Jiq%&VfprDgF9(IXa0ayRztR!feXcsUQGRJpZoOMEOSN7{Is+EPTbr|axPXV3e3;?iBqem)WF5y{9d&#`E_D)l_ zmh*1Ik((!rEtNP!mTm?wNuxLxf^Jf!{9UMfFXUv}_v-IAOgxv>y8o-&T1d=2ocNl^ za9hzvO2_Q4Db7_(RX+CLzg32?x87kd6$p3R#KKo9vcBHr#Ukk#yP$x0ey&>nFFJgv z&}bFkwddYa=%`q09sKA1SKaVzZ3Lee`w(WVBeR zDrI+hvY4~jc0cItf3REQVtV)8+h)q_Bg4wc6qe0q}r!hr8RL{v{Z$HNx1$FKxnk$>}#>`k-_+GhZ%HiCx zC^0s9-6WeFIUKDRetIx2Yp9e+09_jv4rDdpbCy=N@Nu)8E=~*=+`*6*qABPRbnEnS zfsZ5Y061B8Up*Eb}~LX9S%lCf>}d(P1ItlhC{8p2(dC! zV}YyMRmpSUq%DS9c_V}HzSkVK4vqq(&AVbBuN9I;2j1hPmT z;MX<|N?90zhAa(DJ<8A+kU~JUY@;1fiuXP|Dg8QJ5WpH1%uy?(A(-JBp04|s!C@U! zl*T5^AK5jlNa5`B>6)+u>CKYX`%TzI{fCtb5YrzCabpaa72_Byev+KEPdDS*rxwXnx-BcCG@nB#~ z(h8;SqF|$-C`6|B{T%zl6Uv;tZ)Vg+S{VY1>3BI$`NjH6Q2vI1|NXlZrYTSH&)?>~ zJx~E7%Ql>ZWs_b`$=B?y$zg%1m!ESe0~skoLZjaiaq+7}^H*R~2!k%V9zXjFQHkb6 z#7@|AWT;X81r~YPzUB%KRta9K0$EeU(5=-b-%VPMA)CPAW>5wMz@9wV;VlJ8i28#3M{2uiG4aN`OQbIrYf3P`FnvyKTq-b&)%} zz4}O9k3L8pmlbw6LKC4+v;P<};1a=K%O|N0ap4w7FPz}N7db5@9s0wrw122Li*t_8 zRCX_&6GS=?McVE(_sr)YZ8l)^Rr&MdKNVeP|627^mui885%kfth}o)0o;Zp9K?Hzi z<1w2q@HO4gv0NWDSI?MG{+tjA_+4y-H+U!KF($F|^t#d1Pq8fT$AdJ7XLt%zZIV<< zq;{Nrs+qU}BGL23A98xU6SIx7pC}FI3wMQt8Z=hGjgwvGUr|yf^D)}!;;E)MTF0eX z=}fAtb5Lxld+{>!OYY~K!4F|ZKD$ypZ-NXl1O4T*QB;q+^? z@AoOsJm9ve029H9xZGc32lI;nIJ<0|7s#=dKD$ppZSmLD65WavE~58kY*u_7RT_lc zyAP|Ol4jA|eU$>8P9J9oGTwMwaW)2;;Jqh=vx1R8O}U5+>v$|yV+6KrJPG!Pg7K2F zXAoQ%1qF`R2+&E#nLLJEo&baw*M+T6P`bPpu?*Hfk?|Ft!OGaEbw0m#3r;=%SN5%A z@iA0F;iDe*x${>S5+_WdjnX~D;A2^SxKj8xcL*E2kcf4}(Aq=|^hn`0-Rz4+9CnWu zmA2s*?i5S_@iG7Y^15I0Y1o+>)YNivFKL)q?E`889e~3G`hKh5GtWYkcm(x1+;^49 z?vkc7fir4NiZn}F)}t!gr0V<`q8+Kg4%z^;+Ilyb8=D(Itq?|_2*q|_LFnRwPZqEW z-(mlVp?XXm(TK9EJ86H1TG4)F6Y|n_&0U<_Q!d+}p^-;oO47KFxvB1x=8ZYfTW0z2 zYwI@IIY?#C4YeC6Mvs<(y<(bM9pWkNJae{A{DCkcWzfKlA)rQBu?rTbX)!|i!XwUu zIhn8$`07IWzc>gd5AQ;=)1#AAsN>!9U)7+SbDyTb-^C&gH;>l!z2LrW=s2t0DNY*G zGS6dR!}XKZrExrTo51eY)_zM#HdJ^q0I>kIRgtx@1n3199zd(SBm3Ai!yz_`A@R7X zT#D;ItWLn-u51Q7IdUzbbV%}8nr#U;5oZ@y?Wfbq-wX-uhkG?oE}H#+NYTDK5BPM> zkpJX`m|*c{w(AEnr{;)e-S5zYqCur6SrRJ9sV+$hegdA(A+A3>L`k~8Qlh~C%FMvm zZV8I3Id!O+!gnA?rA?|hkfIipoHn@rwpGe7MOxL8eq|y>YX)2QDt**ka20@3p$ekQ zUwaE&Bx?gz3Ai+Wk^0l}M2dijfI;4hcEevyE(pDY6C*rW!#K8Q6EdtJ+<*PS&Tv*-*q|x93m6pa75ZW#ae3*6vLt%f3 z^&|koDqM1QD~tlDBy9JA)fv9WHC{2}e&KbbBpz~?=FE(qUBP$!4(H#p+!UpoU)80a z?_Ca~{}@MgU+GldkN0l1yj!HKDAv528Mrz%a*hyZe+gGzc8-=yk9dkD<|H`G&RYoMo)HpU#O2(vN+j_gThwlmz@JGhMjE zCSDi`05i0(B8^A6o`}5z5NgLt73mA$3AtBMJ(9&P%*lB{@gf$%34dK3Uw{;zKGE7O zqANTdaNE5@?$^!dtzSDbJ4|f5DnyAc-c1UhH`Kr@6W__d34)_$;lW<`FRQXl$7YC0 zsG*V>fV%v;(sB;^#9CDSm-x)2p}i4z8X-I3WK#kWF1^3hy6ax7395Yz0MC|VQ?Rkv z`;oljqJfP+I)a@DMj*A6)(&b2de54f~E4ltH z_nx3~=L8CPH|myx1<-UC$qFM#!h%7oICNkcqFBOgAn@jSACbD+I8ZIS>bT^*A>GIc z1`%dhRgij|tU%>UuS%D_B^=g>u%8d1`dttkmLZ?`qUC;R*1Y8tiHy)9)9;g^w%c)4 z5$&9=(@&`M$fsG&6moB71JXg!-|Gp&!($;_e>5h-Fy&oqR*C4+zJy%3l#VUM;XFFkwf+(>BD~SMwhVnwpX#u0?^OG%o;oBK< zm%eX)RjZ%ff?S+#7ZpvcLVA zvrB|DoV2;LO2I=L7!HPQ}NX zZHeq<8hf;xdwMGVa~2n8kIW@qsmJsKx$9x`DZBaLxRJ}W^mr^=2Qsb=LSQ_DDG}n4 z)Q>u!_|}b;EsB{1Ee{^Lzqw^e{>6a93bVDd=BrJMaFRd5%e;IldH->~TSWGQoTx#0 z7o}$eL5!z3Fgg0DuHyW)1B*dZvZJ^Chm@<6>sK}RPMgz>xHGB5Z=3I#>Mw5Vx9=xT zE_fv_vLE4#dPsb|7ed+yI(W3AER>dWTqUxCpg%LlakG@otW60w4Z~%vR}eh%@hBib zJD3_hAJlS9PnY>^7!fz|h@Q%dGp=jqhG{ALi?2D~b5H~yK80*3Y5m7E9wIdEncv)| z*Dyln=g;dPhJ|J_7Qr%{-JmjsJBjW6C|l)(Z3PR=uSS%};(KNjm$1BgvbQ);miR=gZrB|&qhHnG#&qKVF^r@-cLrtR(% z`<**B{@z@j`@N)rdz+TUGN1C^H(S%%lk#{W?Qp*G{K)29`(LEy)chjJFhwEji~qLX zIRDP#mF9_h*-8`)`1!VwR}Hq@jgr`RF`Z0t)R2_S3%KnT4(7;Ho-J)3so9_QZH%vP zo|&uo>E+Kj(t3w(Cw(FjjBY86OtRg#NHpUG!@1{%h9k1Rn#7fQ_CRJtCg=1s?aI=6=;WPk<@o4O!nY=~sW&t}4WwMcR=>8#}1kxP#8@5{Cy7k5H zbWVMn-!OYQ6Zlp2pc&D#DFqZ*R>~`g3!A4hWAJTkW7d15Vc@d8wXkZ2ujN-Pn&jk3 ztA38~bg}vvb7mN*&u%yW<_&U1xlzwe@^ocC_x12Q1TelL;G}w}+@(rk6H8VsL`GfA zSLPpi`n2I7m`eoZvmTxwZqrsaVn0K=7p5qzq1tbtsQ4fCBZjYUe*1lu7eKwR&-E-O z`C?CE{R!T3u`C?Q&tNyXxRGZ!VJJGKEJ^v3FS2~a?4(iKcB(G;uN%vY`19}p)Ryx8 zagw2Z=zL+%ySQBP?I&B$Bx0<_ir`GUpH1*)-$EQ~9_bPfTg<0A=0sF6&i!F%%XpQc z_~Aoi&T~-_QM8XsyfCT<*k>TC7)re{zi;B}%ZBsmlr&SIC+#+;mKIb&i4BK)=waLA z|17gXRd6h23KR2=HLEXX`b`M6w6qL%WlYb_Im;YO)mo?acl+ffGRXwaiHlZn%j#0V zq}uE2YikSOyUzff1qx9^M^x*_m;TbDy=4;>9xw0Ps?p8W$BUKlqlJx8{NONrGE5(z zx8B~3oJ9M#XJ_YPkEW-lIAaS>CoV@*`8QMJV_5#mF*(hdP39+rO{e^3lsdV(4i+y` z-|LCG1U~xMV{g&4sx11v@8tGFOjI@Z= zuyV+Z?E5YoPxy7!8>L8ro|12S{@>}p`6V+5WKA;h)%yjXjer%ZJgvWO{;P}_I-sMe zt}a#EYTdf`)4bn)+gCH+x2BU_H+@eNZ>BL|9q;Xbye|7Yd>&TP?e(XpH9_-6>JanW zZT-Y2Qddi1WPxbo#mv!-As%qu^p5zb&xit<)XBr|n+hxll!!*E%w=El)AI$t8u$X{ z@^1oLY7+x?Fzmwl;c9PIX}{kRys~;`VF9&&if%m~c?>#vxg{afJQ9u+>7I!1kzcY$`&TLQesGI})n}h( zjJ#A!@bS6LZF&Z|_XlrG->z?7k?#cNA>9Zb-D#~SAIqD@B(^Cn0_^*n5yt~55M3`P zCp50U>1hdXz*|4R>t=NI^#k(sQ2U>v{*n+hv~m1Y`O~Z0tv5j!P{4e$z8t%A^k!)E zW@q%ySxpt@{ozA(+u6*sSIdOGpP2oSg1PQ@mmBw&dH0vh-gEAQFBhuR zW))M>Ti{*^Rp}Pm>S{qe5l`OFOhEW-OweB#vyqF#Z1?G5`*TE7FRu}081~oZ5nu-q zV}oVr>iYLQ07jO5|4R0G*ND*%=?DpqTuo8!bS$4wEleL8_M2RbqD}h{UlAu=KV3ge ztw+4zPH`tQy}H=ZXl!VxZao^1+;0^OTB^%Et>O*390Y~W&(HhqHEm!TQ?wnANSYsn z(mA`j+9mq!Ox4znNH|I4?CtF}-23-DH*?>upOnUc8N)1yrlt&Zkg>6G(CuW|LdGj`FCWaswCAnA-XQrQXD)b&dxesWC;&IO(Ff92`;tjIQZbOnR zV8`&@qh5gDL^mc{5la<<189QE%B$5{3U`6dtrALI+lFc+RpWdEIV2-BqufMirWY34 zFW0l~&)n|MMkM#=FtRX+;Ea6$iikkPX)iI5(csILou<)%J(#}f=R8dq?B7Rbzz6RK zHYA7+(0&lX3+POKsw{mN^X7-4+&M9C(^^Vm(9J5~0P(eL2ZIa(0CR!YyQ1@+6Bz3> zHZ?WX)`mpa_|2mOkDdhybliIfZg?*oeQ9jPSg09e%&Pjt0TjkP+h2w>VIFOASrffu z{jol(LwZ|H85TM@-yJYzik2_h>phdUnP=qy5+6-v?go{5y(lBdYUTx%Og(KXTA-7o=?5JUkXX^?w*SVG{)o%k%F z=-Q?oF!wk1b~kEAVWP_}Mr%(#Q!P5_*TP5( z0+@j|Ii}Fa$SH>kwr`@Jh=3iSKc#I7toz+F4fjS#FJUBD82QKR79-HonDOif?E7sT zUt(fd_0JW|PV#f}OEtjHZFr@&n(`+mao-aRE_OA}ay!n_c8FxeP|e=C9wXx7kft5P zpli!+LzZjvmg&Clq`mZU2J!eBiQbogX!HB4$&R~I7_9C7c7N3Ts`C+8w}bVbbqUF9&oBGeU$7}-LyXJ7I=)|`aJsCzdF0P4TgThSXS!YQm62w$^Tfm|Iv33yxYUY{>OG?gE3YwUV=x_KGPBH zq@{Ebsb8KSgxTh_ z&6NM)(wQ98*95po9jCoETEQ4au| zY2f8Q@y|^d6JsqMV!YRD()9dqO`z~<;z*N;u@5F%696#acn|<^f01~9v5cYEGM%ci zf-&)_fAIn-im1a6o^0Fm`X7D;;VMZ;AOT!pW+C@!o_`7^8V&BJv@#Fp4a#v{K7ZC z=%Twrx!t1f$k(KS|L$NL0ocVhbz^fM(3z3e<`Mcgf_BQ<+C1 z?)&5EGbDSBZa(JB{FjJ^jvh@}zU+`Z5+2Nr%>eKk@vxE=8q{!-^ioyCaT;!Qt*YnR z!M;MA#1vF-jD&iNu;KObtR$ax1Z-~s8IjHy83Oy%X<4{%~aLIQc$gDRYP%pBkUDU-$pY~=dw zVRR@D!!6!+@!oV{0`xaHne@fd11uiL+dgGojmY* zgP7R$0I@a(T{l|C*Z2%Oonh5$ru$Y`#*xsI7nO<|h0Nf0usj;nkFDQ*+BPWc5c8y& zVfw?WjmeR8q`N6^tLpF8>5zbJF`h-TE#R?XH`_4 z)d`$Ch3oD2rrM?!k2#6NXfG-fC=6CW*wpfYIrsbClEViX|2KgeWfOEA7d;OV6?R(P zve$g_pE?<{gy*EG_x$_87nlZ)8;Q)44NXnrd87Ax`*$y|$Dd=g0%h!m8(gHE*nTS%EFJII%SiTuUP!AzyfJ!SbGKcy;5nh;qbRODTGK1F=U#Mp zSaUN_^JCu!=AoWfL;y)eT4!)oHbfteh3Eju?2b(Vbc`}4KG%z+G%tI9uT~g5| zVs}T3+PRW#GnkDzoc$-2XQl+Is5o6JU}?^bFcF7A1ga~%tDYxm(Lhvn^lZt5~^iu>PPi{4v6rPHs?KU7A%lJw$HkWJTPk#70n-Fg!f%$SvicyJ!B_Sh=ll z%i8eEg94JVNc;aL5zY2O89vaqZp~Yzm>Cb6ou9vbND1L^@>)!szlaLzQ##AVtR#%- zxnox_i}ZX!X3ss*uUB#*xn@QZBf0*&*&dgHPYciQHph$hKlVyOZ0s@J_%JN{k&*;P zp)pHw@uXBV$9uu2Ch)YtoLM?|&7A zl|HfzNVc@to8S4O)f8x0ef0V2c%N}0>eDF0VvnVjNcm$Ngr~D7J#>{ITV9$PiNpK1 zY7!e!W}Jm!o*~%=&RE}ev`K$qiKs^T#E!9K-gQT*G;8L|FRh~!9zo=djRnR(0`2X~ z)bXdLr~40Vjn!0|kA7l4Mu7Y9jeyyinVGq{x#{V*x3&Bn6F4HGqB?4I(^c&6SR_0- z^Wf2#486I!?)h+Spmc%>e%}*s505(IoVS@u5RO#U^T2MPb^K+~-O~gAtf!c5(|o6s zqMOiL{)+(YEGoy+{qvK(?^?>h`bVyF(u?mgb&rw-ug?D5qFfb18nU~Y>9BUkj|su0I){R z029jzh8)SmqleUD)Y@{kikE7qM19 z_{1|_!{Lr^5MGU!>dK&P1W(k+toTOuAi+9k1~HyC1=_*>cSAUIW{w)YT03}Y53w~B`b(l4S!i3N^%lKDM-md((8)JD@6+YsW^oUp5y0G% zeE!u(JqJ4#J*?#5EL|Ap5U^Vdmg;N9XphB-6bJVo#hqQ8z#Xe9(HWprZBJC_^9XBV zVMFs#d%V9AmFk8KZQZu8Mla@yD;tY-5LLahqDh%adq*A``oS-d(=8n&=}pbJ_1OaD ze$GO(=oAz<*kAW6a`_r8ZT6+@+Pi>p*3%bHX?173`Im$rGw-u+`T~r1R_CLCoRz=j z`v1#wj*7v<`_ax9oMs>|RaYI&&#e-R^rOn8&#yxYpAG>BnG$M|w9z=+Qqoc&w$J4j zxEX!OG)SoN=B%WaZcI$fz_E}&VShE+iYdS@K_ceKYU^O`zL5g&>Dx!>fQ#wtu~(Xr zHGW6q$DDk^#9z<*1t#geM-zW!tR%I|Tu~3J+RWBZFk?^Ou7M2C!|T6!v4@VAHZ52w zlkL&ntIW*L%(N~A`P~Sb)eAnZE(egrDbbFp*gUPY5<(%z2#DfDQQg!ksob%A`IdH? zBrjpSE&jd~xNHJQ#ypluQ#8)&@6LkV=EAqV$S3oZ z*Dd|^|2;)#On-0x)qZ;Q+ik9Q_?!Rgv2L)_twRlrL(8G-BNd>^l*y!*?G zbC|Q_Fx(Ui?f7H<@xtx4*^fFzw&h6)lbx|u=^MXaS&av8XIn^;XmDxxk>&8(2o)Zp zJfK)fVU<`(8iO$HI4hjpT1#PI-$s#U9hPnO3uqC=w5*vqt@U zt(7H5%3n2eabrNihaLSs%}d(4kH&Bo9f)}++f!~MnfC4ed>8gtd0UzXbvu6O#eX}a zvrCKo`0Pim3&kKlzy1f>psk&a)?=VeBI-A~H*CsqR za~N$uk?d_)H}(>idcOZN3F!GNo+l1ms!MCu4R%z6(qxwQci9!jkSFj0gxKBNmvkSo z3fhOc#p$G!>6HL8p4zx|RN+b5TfYWz>@z)^U-%~a(r0)2&Gp=wLQviHZc!Ij^2}_A zN?}TkbGzy83+-L$kuSr~A8%TW_oc`bxFr07mCiib9J8wa>F}cW->tzCIYC>)-rW7? zMBXv6l`!8UKB@cggks`RYQ~?;xlapZDtQ@X{Uk@{E@LSs}nN!IIXJi>QXEpd!Hw zWf89mQ4A+YIOQHE=X-|x?hCD;5KYqS_U|)JbPzTG6bAiJ%^FHB-WWpH-Z$)J3k^>P zR2?^vdU?LdlRgd#@P~Czi8)bLvJXSQo|>g+80zNKHz|PKp3u@j)w{VP1VM;ekqD&3 zR|6h7D-hU8L(R~aY7jvHijMZsRKyJ?hv5)@6XvSLCJ)69Ap#3LL%%BLSRW$x8i^b$ z59Re&t0F=sMT@EPSoDRHXV(omsu*JFRvGhzC=%@-i$TEx$TeZg^g9o}q3!s0yF8hdMZL|#H+2zThnq27RWJIt^?1;Ffoh9@;l3~?KEx44Eh&Cyr ziypi0%vDNw@AH!@b2(iXkWha~&t>bHlcCzCND&XAR8KD>m3rm*Pme+#TbA(NAKGS|B z{QX4uQk=FJed?%50?5vC#3u(kxK>Fx9|uuF^nA@_NjD^MG`)w;Hg+6yvcVY}s-w-e zY#8_-_Yd`GgHfmglH(Q9+*l;>APY47?E3-4mJ&J0?&?>Z zDFA+*)-*n3A5Z%M*IR-Fex%Veu!i8dVg)!D0`a0!+n0aMlh2@-W|&YPL$AZ8lQOK+ zqr=+@1!unI01<@(H>}m7*RtJF*yZnps=qH(awcP!*V{&uSjllJLjP)TKUObw$P@<~ zc5tNt-fc?-i)eh0G-)CPaN$|g_e*kzM$1BJBd6;+J++a=Tp~y#8!U)hztLk>FJ}LL zv4rLF1oa+zzq-fxl33lCIPK~-UtAW#(F_y`(<)pA1zq9*8XDD|K@9+nUSZ~I=oB}S zz=kB27hb9g+X^;uaD)g2KGKC)8uaxG690SEBFW#&UOEUDE1rUSzD#Nh1FWblTaqt#^6!}Ktt3_MMs*p zJQZM%p4rPL=@z@nTPZ8E}Lf`h3M8D(ZdzWgq_@#SP}}7yb0;^9KDY zxnHk4#MI1Dr*WFIRtXazx^=)*<6M9 zi9iM7VDJm5q8f{!2FV^M8cx=$l&Z1-$)KT(G(gtzG^~+na2DhyXI_ z&?{9$1l|YC%&5f`tOPT-5&u2T02pi}6tL%z_5*2!!-q^hk~w7PU}SHCPZ^@!<4*_p zkvke49WVSN-`U6s0@eM-Zuf1#(X0&N8Qp+sa7Qc{hn=jrH0|B)xd(D4YUyngKbAQ5 l-D%w%Vi!C1t!ldqS~hkc-^x}^dH9-|s-h;OTHYe`{{Yp>gcbk* literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/huge_sprite/sprite.h b/z_gbdk_playground_original/huge_sprite/sprite.h new file mode 100644 index 0000000..afb302d --- /dev/null +++ b/z_gbdk_playground_original/huge_sprite/sprite.h @@ -0,0 +1,82 @@ +// /////////////////////// +// // // +// // File Attributes // +// // // +// /////////////////////// + +// Filename: sprite.png +// Pixel Width: 40px +// Pixel Height: 64px + +// ///////////////// +// // // +// // Constants // +// // // +// ///////////////// + +const int sprite_tile_map_size = 0x28; +const int sprite_tile_map_width = 0x05; +const int sprite_tile_map_height = 0x08; + +const int sprite_tile_data_size = 0x0280; +const int sprite_tile_count = 0x28; + +// //////////////// +// // // +// // Map Data // +// // // +// //////////////// + +const unsigned char sprite_map_data[] ={ + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, + 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, + 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27 +}; + +// ///////////////// +// // // +// // Tile Data // +// // // +// ///////////////// + +const unsigned char sprite_tile_data[] ={ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x1F,0x1F, + 0x00,0x00,0x01,0x01,0x0F,0x0F,0x1F,0x1F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x80,0x80,0xE0,0xE0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0, + 0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0E,0x0F,0x0E,0x0F,0x0F,0x0E,0x02,0x03, + 0xFD,0xFF,0xDE,0xBD,0x75,0x9E,0xFF,0x0E,0xDA,0x27,0xC6,0x39,0xDB,0x74,0xBD,0x5A, + 0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xDF,0x3F,0xCF,0x3F,0x1B,0xE7,0xBF,0x5F,0xCF,0x37, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBD,0xFE,0xDE,0xB9,0xF7,0x9A, + 0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0x78,0xF8,0xF8,0x78,0xF8,0x78, + 0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x02,0x02,0x03,0x03,0x02,0x06,0x07,0x00,0x01, + 0x7B,0x9C,0x3D,0xDE,0xB3,0x4C,0xC8,0x37,0xFB,0x04,0xFA,0x05,0xFF,0x00,0xFF,0x00, + 0xDF,0x27,0xFD,0x03,0xF9,0x06,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, + 0x92,0xFF,0xB2,0x5F,0xDC,0x33,0xDA,0x37,0xCA,0x35,0xFF,0x23,0x9F,0x6F,0xBF,0x5F, + 0xF8,0x78,0xF0,0x70,0x70,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0x00,0x7A,0x87,0xFF,0x83,0x7C,0x43,0x0F,0x10,0x04,0x07,0x00,0x01,0x00,0x01, + 0xAF,0x50,0x9F,0xE0,0xBF,0xC0,0x7D,0x83,0xF7,0x0F,0x3E,0xFF,0x5C,0xBF,0xC5,0x3B, + 0x5F,0xBF,0xAF,0x7F,0x7B,0xC7,0xAB,0xD7,0xD7,0x6F,0x17,0xFF,0x9F,0x6F,0x0F,0xFF, + 0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE8,0xE8, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x02,0x03,0x03,0x0C,0x0F,0x10,0x3E,0x21,0x15,0x2A,0x20,0x5F,0x8A,0xF5, + 0x4D,0xB3,0x69,0xB6,0x39,0xE6,0x09,0xF6,0x53,0xAC,0x19,0xE6,0xBD,0x42,0xFC,0x03, + 0xB7,0x4F,0x7B,0x87,0xFD,0x03,0xFE,0x01,0xFF,0x00,0xFF,0x00,0xFE,0x01,0xFB,0x04, + 0xE8,0xE8,0xE4,0xE4,0xF4,0xF4,0x70,0xF0,0xB0,0x70,0xD8,0x38,0xD8,0x38,0xD8,0x38, + 0x00,0x00,0x01,0x01,0x01,0x02,0x01,0x02,0x05,0x06,0x07,0x04,0x03,0x0C,0x1B,0x14, + 0xB7,0xC8,0x77,0x88,0xFB,0x04,0xFB,0x04,0xFA,0x05,0xFB,0x04,0xF9,0x06,0xFB,0x04, + 0xFA,0x05,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, + 0xF7,0x08,0x6F,0x90,0xAF,0x50,0xBF,0x40,0xBF,0x40,0x3F,0xC0,0xAF,0x50,0x3F,0xC0, + 0xDC,0x3C,0xFC,0x1C,0xFC,0x1C,0xFE,0x1E,0xFE,0x1E,0xFE,0x1E,0xFF,0x1F,0xFF,0x1F, + 0x0F,0x10,0x19,0x26,0x10,0x2F,0x3F,0x40,0x3F,0x40,0xFF,0x80,0x7F,0x80,0x3E,0x41, + 0xFD,0x02,0xFE,0x01,0xFF,0x00,0x4F,0xB0,0xC3,0x7C,0x08,0xF7,0x9F,0xE0,0xBE,0xC1, + 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFC,0x03,0x33,0xCC,0x4F,0xB0,0xBF,0xC0, + 0xB7,0x48,0xB7,0x48,0xFF,0x00,0x9F,0x78,0x77,0xF8,0x17,0xE8,0x9F,0x60,0x4F,0xB0, + 0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xEF,0x1F,0xFF,0x1F,0xEF,0x1F,0xFF,0x1F,0xFF,0x1F, + 0x06,0x19,0x00,0x03,0x01,0x01,0x00,0x01,0x01,0x00,0x01,0x02,0x01,0x02,0x03,0x00, + 0x3C,0xC3,0x3C,0xC3,0xBC,0xC3,0x1E,0xE1,0xA0,0x5F,0xFF,0x00,0xFF,0x00,0xFF,0x00, + 0x7F,0x80,0xFF,0x00,0xFE,0x01,0xFF,0x00,0x04,0xFB,0xEF,0x10,0xFF,0x00,0xEF,0x10, + 0xBF,0x40,0x3F,0xC0,0x9F,0x60,0x1F,0xE0,0x4F,0xB0,0x40,0xBF,0x5F,0xAF,0xDF,0x2F, + 0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF}; diff --git a/z_gbdk_playground_original/huge_sprite/sprite.png b/z_gbdk_playground_original/huge_sprite/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5155c6172be14166d50fff75d4c63c4ce6e3eec3 GIT binary patch literal 1005 zcmVQ47KFITP2x7 zp29+l4pOvmric#*+z3gw3J|-0jt0$85=Gf<{U?aO^hiEZkF=>)I_kzwp=*!(XteJ& zTY*{&sM#7+DM<63;52~EPXUtxH9rk31=9Q$a3PSp-vBChSc+bnWxn&@4>07#VK_el zIvn?#fTZhNsizLd{o?=ia@!1KG)brh!*E_)cdlixT`#w)KlQ68ik0&0dbvG?8_sRX zOPh1^^>Uj-3*LisKm(4i9B|)x_TDUjz&i+Qf9k8lalZfr_Z*J<%DJ|3u6+tM5%N z>S`#N=&_TOnV11mko~D&gdFck*@_y%i_1&Nf%%sLCQ1@?(`x!K$7|}XF6ALEX@CZj znwJgm}195@Vu zirmc__t&?VNm6>ScZT6yIoHl!P6=D;LDg)gZtO()#4XC*<2#=PP?g1x`)EGiKTWKG zqP+}wGq)|+tx?}NP+TZerRH%TP2Jc@+>>ae809Ed+?p;>4Ul$!*jrSdQIQb?30_o( z`1S2&!k(c`lSFX9IZ6Q<-fV!eGUGd+Rp;=16sU@Wbz`TH8pb@6C~m4LV<8sXW5lwQ71b$*iMSdM!V#UWi78<7jP zZtP@J+gT}}xLro=K~4piW@hd*D+mxPmDuEJt@5GfAU6pu4YOvSUUYRaokvF(8Xm#3 zp!-6jH?EHnO<19?&DrR&_wk~!3c+=JCN$cJHAP(LsSXTj#gvesAWdpofV~$Qail09 z^*T46v!Mx=q=tdT05WEPc2_Z}j!ja})*2Oa9^BD+;Q!wlZ0U}&`d*B|_NTt+6KiRB zlX}p1KKSWXs&+~}7#+X;{r6|$GBp>Nw9s=LG$q4INis-`i_xff{FW1T&8LVWMJ>tL b(hosjcF5E0ocEag00000NkvXXu0mjfL!i_v literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/input_state/Makefile b/z_gbdk_playground_original/input_state/Makefile new file mode 100644 index 0000000..5d635e6 --- /dev/null +++ b/z_gbdk_playground_original/input_state/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = input_state.gb +OBJS = input_state.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ + diff --git a/z_gbdk_playground_original/input_state/README.md b/z_gbdk_playground_original/input_state/README.md new file mode 100644 index 0000000..9c4b4fc --- /dev/null +++ b/z_gbdk_playground_original/input_state/README.md @@ -0,0 +1,6 @@ +# Input State + +![](screenshot.png) + +Prints the pressed button every 100ms. + diff --git a/z_gbdk_playground_original/input_state/input_state.c b/z_gbdk_playground_original/input_state/input_state.c new file mode 100644 index 0000000..0a3fcaa --- /dev/null +++ b/z_gbdk_playground_original/input_state/input_state.c @@ -0,0 +1,41 @@ +#include +#include + +void main() { + while(1) { + switch(joypad()) { + case J_LEFT: + printf("Left!\n"); + delay(100); + break; + case J_RIGHT: + printf("Right!\n"); + delay(100); + break; + case J_UP: + printf("Up!\n"); + delay(100); + break; + case J_DOWN: + printf("Down!\n"); + delay(100); + break; + case J_START: + printf("Start!\n"); + delay(100); + break; + case J_SELECT: + printf("Select!\n"); + delay(100); + break; + case J_A: + printf("A!\n"); + delay(100); + break; + case J_B: + printf("B!\n"); + delay(100); + break; + } + } +} diff --git a/z_gbdk_playground_original/input_state/screenshot.png b/z_gbdk_playground_original/input_state/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..f82ef94df492da2bb434c31abbd4f50e7abac69a GIT binary patch literal 29850 zcmXt9byQT{*Cr&Ta{%cOM1-NFK|rLtn;Ak%grU2nOC8CPW{?y_K)Qz>N`~$Z>CSK7 z-&)_Ab?4rD{yBG@v-duGKhLvcwKd-n6Vel6U|!GfWp_(tD%cE81}Tx8B* z>yqJAw-&XyG~7E4i%4)C;^cCj@N9Byv!?iBO!y`y7r!H-sPC6HRmo>8ZpSyU=S<6( zveq_l_VJ*!a?Kd2DdCP3ta5C8KE1%{Xxt~y<^XGJG8f`Y^_Qikesq56kP3@3?@7}= z*xDeTrNZoNz)v-U;ZpGf@Llv>eEs8(;JdF?!6#O$a{>4SAB_pD&E)Zg7xPWt5CL%$ zYB6E}!VXj&betSLCTgm5!7|QI1l?{SQ3GUpcNd+7AwPf<0;%WngnFOpXSSWGDm+}Y`HD(Hw zaWiccD;wL77l=lWB&Y!5tH^Q%7@q(b8jeqNkGnO6Pe7ggE!3U&rnT5nDwC2e6@U#Q zLKr_$K4(f_kS6mO_+d}RO2oMM6R4!~(vXerooa>wn1CmYP_=R|tUOM+ffPm1m2z~> zgr8xv4Mf-^ycxP+61yR*My-~Ufo2&8#Yr<&c);avA>F3$66i+#bBOLY370HcI0Tv8 z*g&Q?dGpvFSk;99GVq{BB5Uyz0Ia{8Na>|`@r{cR4=&6NsI^8qREUhMD4a3ib zm?X;~>A){D2Tu=gV<1uGe}hKB<-Kvax(96#;vm`O<}Q4@k@W;Dl%Kwkc-n1(QbIL{ zf%aQS!|T_VECt5RDvBb34?ly`LT(a?HQx$gm7Rb81^H|J1ax7nQ3&lrf;lMk6uVRO zX4b`dQKnDq`l9L_mBl~nc3(%qz3^kxshmHRM*#$t1X;s@xa=7)%<68kzRWQqr9vs~ z#NV!J_zDY=sgpg7qw0ncHK}Ac96m zK;0)9KpJws&Ou`kps)1YvyfHD*#QA{I#KDz zmha08NW<9veLC-1=%fWG5&;>A@>+3~N~uU$DM0oBER{T0BB0~9ySL#PrFK-Dyuz;W zF~3^>bkl9DJhhVRGse!31^72svPUHe5T#%z(t^|hD#rb13fJF3$xfa09rQR9X?syr z0Zh_?n9ia8`!?I#x7m4fWSya}3C4aABqG?Zb>)S>oXQ~y-1rRR?5a+ph9?!|0Rpno>La*DtxkEPCb`w8;s zN*7IH;YulUg>Geg02|6yce_t~t-K=x#Ajaq4CwNw(Lbgpl*So;C>hmSeE3rZxauko zVRL>#`iGFkLk_}Hq`byxNUv&(5qB2!E(Tj+>8oDuIhjIx94MAZ zp}}4Q^SAN)M4|U2^9|+&;z!$`wt!ejDq<#it@;@<`Cb7c02`8!hf|SK>GxuUA|YcY zmR zbW=Y$OBpyi6(n%RD2_v4+zkNc8^@k0%(RJ<^qdspAHvvtUKy_RrEbZ`zC%BjnpjenZnR2J{y!D?gh5ynwugi9A;%vq7A1p-Tu@Y+vUle&H6&4C>L@47LbXIlT)~W6& z4^Rmyw+BSW2oNa%zvZPb1SPxCduZBLWc{%G;}aFk%|){M@yoV?_@m(q+7)@}57_yD zwLTu}1lF>A9!gNYBfUQ5qF-Zcfum7w+wlVw;JV8)^>Uu+M*x_1T?SCU%mYc(H>kh}?Qe@!w8(!5Y$ zW0y>v73RzBCKIUazz@aLi21y58mHqpi|gT@HqhdRDaQ`%M=I9VrH}Vu3B~}$wg6FK z2)|#cTi@i}Lz*uEdcyF{NOxjGK~}{tgz~`W-!C_q&ZH|H%ft_3xAt_(qd%NjNtnodO|NE;5OgXNnoOsazgF6E{f}^-r3+(riHY z(#1~{L*S~Zj+K_f|j{>=>Af`P?qf)#NtW*h>gaPDHdA--(^`szx z05Y70mXj#fdorKUwQ1FVqS~~guM{8{)OS8(_oTzm>g8@B!02Kf5_0Yq7u$MX^xaKo z7y$f(AeV2yRi;?ky@{)H1fs~n>nBJHMamJ`$7i&(&Mv`ykdSN1^)iQ1^K|UObgiC= zt^h53o2@cL?ho8@*S<`0c1c-jxbj?ijJsToVMyWCzfx6qg*Z_f_QDhaL$XNLCkdZd zjY?KwYoED1s!Kj1$=5KT(RDuNPj=l0HrBW`vP&^0(r8Mq*I1{FZED!Zrh zFc9fzM_i_ovC9LQ71ZCd&%qHaaenYgddJyR0Iq&~3U}69ZyG97jX?H7Ky}ZM4FC&8 z^HrlvE8tsv6DR0n6>5X!wmVS+WL{Wgt>3?*;jLg^ecy;;ED6<3;a-BQ56QFwIXfd;{dy$G|%eR*b zA{TR3rUP+@D+sI)C{G!X8G{87=x|=%6H`@m(mb#RS^NxA#B_*nf=+~b5u1Wp5mb*Y z`12G$b@;+{b%=U)hh1`v-0{FKZ}m&hU*-e$biA(cmef!Gn)P3h7#Su133)5k8RlVaiDn~hM4`9DKx!v?>`8=1U$4wRWL*4KqEO*vO3A3*P{^zr@Ht|mv1$v*dl2PZ|+x~S7 zEeFRpm&2xcWq5>NYv0Q4`p6T8D$a1ec9$?sgW*l;Yf?LEax;f-~)De^|-U$#YM zFP_-}W`m{MAHPKomZ_1AmUFj|G!f#amhOY=YkF(wjYs+A>^@4n_3K6Dd6dWf43klr ztVV6<>+-1(MBDAQ8^r6eZROk2m9$Hx6-!CiEd}%T%`e&nukJiv!y zqm2?^sm0fx3sGl8=Wb3uP?oC-6_Sg>W6+NBb6x#swBBkpLG;Qh{i2b)8TJ-IMfkREyF%y?b(lr$+ z*#Y*&=7X%8vTrdpMhHfQi60N&$qejSJ(?Z_K0MlD^y~KiCJJ*I?IOK1UKlJ#T2b7ZaR{C>(Nq@6o_Q_S2M(sv z7+}EDthp*R(+w&F&F7ZK-mNrj`o*Ncg@(0Z>F(8mbQ3;FnTPQk%^=qu8TF|@5KW~^ z>)Y#UflMan!BTSBemwFYV+jyBSxwLNiUg%kFESWyNBi%^;os9PhOb({ z;eI!Zi@>+t_l^q=Wgxs>CeqJ$;!5ocf(RSmw4KLag&Fy-{J%1S#+dVZ) zRBVbx;X20#!q4l?r11TS`Z^&ukP4+JL!_MzZThWtwROHCyx zW%_CV%6Lv>^%;Nj$4@8qXA2_3yI%mIjoJ&h%{O1Wr_t52r}J_cxa?{b#cKdP5VOTsafwHA8|Yc|NawJN}yG zOD9TnUFn5+_t9s}krl}gyfmeo_|u)2C?bsnhWYoUJ&P7`3(shD&`F^4?Z;zk@@P8! z`z$SC$RWcI1(_1xdYzoJ16#J5b(pxl00kX!a{3HPh*#A|jj|?o1Q-d@qsS*h-DbaZ z02(s~D8CpE#(x<=nz(ORzChHy9s>`T8}actBKmY{SKO2}^$#D~bFB$EN~=}Y!!5*Pb$3F|mI@Q2D`r^VwH z0)*W2l6qL|Gt7w)srs;V-Q-{BbGYO=S4U%=A!h1+yMHYkXUDW|`X)v>u<#FNeW!^6 z{^!;vT%L`1)X!Z5V_}Dz(aHH08?NsGL9yf{8Sq{i$;;XD&GZ|Ss=+WOO2O#B&Esm) zw=|tIBu@pzYy$SC8;f&t2$R4x z-TN{N2ril@yPC$xZag?m670&QIBr8pAk`A{Gbpt;eY9L`%G#CVlXJqcn9+4zTa;;Q zJpL;O&M4)H^4J+D0)LMjjGy=SHzMUdJzl7fyz&PJrFxf4U=Dj zSL8#fD3T)~#=51L0k?c?_ETZu^r3_gx;E41%arNX<>dv@Oo-OJDaX$853JE5R@NAS zs5;sAuS?K;U$|Wq?h)jvH!*$uGHTkGT{0--z_)L)g)B59i($|4`M~ZvQtdO0cd+rL zt>NrtQc<}^#iW`(_`h^u)O4=+xaQ1L2!s+&j2qaO=N&THSYT(W(mC)s|JKFw zgwR7=unyTWp1)tNRuOTi<6G!c7&`;E?(yKffV5uecWT{t=y{w%-ZYp2Ln(z@U!_mi zqz+-8dN(H>KStl(HspWS6QovCZ{pa78+KpNt64kd^m`eNm*Pd##Rpu^N^j!y-KB%8VO5~e}Ln{-Z;BNR#pmQQ5%PuS5 zyh-?dL5 z3{){8P>6OmOK|-NPhTo3Yr$^-1n3T3d4DRU3d@D+PQujqD)IqS9%K0TWU9T%JPU#g z@OR}Ml3L2%{B}Gq*{zfUN|2oUyvT{8SI>EBR0WFYl+ZQiWFWReD z3yZ85^TZ~<7!*^ft*@?rN&f~F0+|mRLvf3sY^Yjc4NTJh2Gk})hYP8GzFScR-`P}A z&eSB=3E9WReA7%V&~|brr&>uy4^9%t!ZgvGlC|AgD7+*YOz)+#_w0oEQk6yPXe6!h z7zP)&<%8*R|1uVKZ?Bh1O*KDZAjPTLLPx+FEzIQYcZjyQd1XtKHb|(zjRxY z)5M{iWMH6)Gn*G6Q%|}{=uVP(ZhBqQgt(>HK4@|l#u0W9ok|X6XkGBm`W8?D;GR84 zF5nf7pa7ZY7F01n@b|83cseePp!`H-{Bc!#`>zxR=Cpvt6LQ*cjWyja*H5U5?ZZ5$ zUvym4!43yD8pEm?exU(NW&-cFP-4%A)AG+DrVh<2q`)5F>51|3mf>;FkOZ6o;_tTk zd*v*cnK!@!G}_?hA}iFA&H2VhorRxZQ@q3Dhp>Oi)y}BQpP&#Hc(=VChNk6l9G60)D=ByQ2a7xlR_yR>DiLWu7ct){s) zY9&AENpdU$!w-2r?4Df35H|C1< z=)UpUxv|aA*~-765|zd^ePU6*?XAd@E<62gdV!)syG&>=-STSi`K(-vQovp%RlIi?32iFZi-I1f$EDNSzp6R zCe8*s{!-09v8DlhfGoJfg@QPDI(QFq%(((z5=+o1P58DO-k3TN0LMfLz|z1X3#a{? z-8i_3(Z_KSaj)P1GNTC*gh*4fFg(_?EYO@)u^-dJFO8OGXCw9Vp~i0LIHRdK&^O+^Km2N!6( zBxc36rFtU^#go>zYKFd+)$a;|3rWAC57fkF#-}>EP^1(lF)<}(vDWeLH=VoNru0G&`-qOZ;C+$za!2ci$z)2#mv_@i)a5HckP6Z#N&eDX=@Q9ZxS^`?)p3INNAUc z&~VeBw$h%|m%Wq$bNd_%OHp&##?EV8JYf@prHI50AFdQ$0fx2G#T6 z9MBWkEa$uWD!<7RE9@vH3MA_LSn}4BC-lN&XK32t1|)PlAE5WiN4a2$1|t-Dtix86 zFC2;a_I)$!3O?}bNqf%*V`b$}AE5;gROfPDQX`LaVP{wL2-rf;zvDJf6(_!?Qd89L z!)p~#3F?CEWGAmOhZ7QbcT+7qoyIF0ybp1By2AW3Huwd_h;GWio~yl{*R;BX)9{|z zFaA#z=7%K*OTW39l~+WFC3cyBs}{-iRzV9MUO^fYm3u=)F%TwamdI=uQ{i5QuZn-D z<;-5_d_Nu5a?Rv#8)nmU8$Rb@X9Sh&d2B?RhaLw&wqzz`KU7FB^iEuj<$0_tbS_`? zbFUTYl%H#Z*Ie1Dkx~f}SgaK?k=k@mJTqkcm;^cMupSRBhSHEYVlH82Q8E97vUmavs zM4o+{SmgJ1LwaRt9AkY5vSe}QDk1{>GVK<%eu?9x|N|X)A6NeP5L;M{$g#o}8*d0$>(lRPOUm6>|#> zJ=YS}>O&>ASYG6XbbJ5!F~`JF2GY@gX|pX*SLA9YuO6A=e*OgL(wFIGlb=j?1^Bhe zGZdt%wvZ=v^(87BJiv(&TN5Qa0c5^IWitbv9nS_hw?(2D%Aobw40{27A9Bsl>4)rL*xU%nAD*3h2ICe9cRL zcyTnHil|n9%*IwRm+ufm%ojVM(kSg@-|dY2&dqeYSO09Kc57%eYW_F^q51dZJ>G$=YAf+xcHKHeg;eh14!W8+wLPkRdY6c2={GMzA<@H+uMC5lp9H$euz z0{H}e=6RFoX}JDiievZqxwPwC)r@C1$8XCRx^Ve{9aL`9cPpUK)>Y5YybKpU({qX2 z4XcHR%fGee6j%@iy53G39?}m9B?bkm%xsA&R~O-XW$ysskHdtC*a#Z2=Wc|`YID#` zFC17*iH#p13aj_Y=g9%uq31v`=k2HjAx_g`#4GtuE`vsGER4k3KbbP|z?06W{72oC zTKh6{UW`FYr^_7?3+|PbmC8Kshl?!{zJK*7156o$%dG-$7YAb_a|*T{GEH;%?N_$} z1tGu)eTE8DnaETYvC60On{YDrOiCcOqggJE$MfXL@E?j46puA=g zWQaa`HYUH&_<4?cW0MEclV_~u2x|$z&U6)tpM0>eR(WY|ZhpkucEa0y|Icl!|9K8a zWc%FWg=p(-Q(G4EZ8h`SUhBc$w2SE75$U6V&*9>R^r0WAmdy1!+j5uMWF`Mb6aSX6 z!_DsaZcXNV`b@_KJFoTsYXLIm1V!kQRc1B6%@8Dw3sdOjTUf2aikNR04YSCrkl&zn z!0snJpBC_K>LruiZ6~qz?WJtC{f?GpNSQ58w|D*MmqOiR+{>qEU8d876;!9Uve(-1 zEOCCf)9PQ3o{pSOkun`^*W_$Wh1^g1-Ru-!qulNdv;B8@WUe|$PY!(AvU09sbCzjC zj%gc09%T+g9&fMbw`6*)9?z{#^GJhY1_uZEGd86R_dO0SWhQ`$E%6MAqak+Ph2J2T z@ST0fefQ=P!Gd2_M|O!txxd%x4ft{1n?O216N2fA3C|w@a~?sUshUnOw9+iGfUr2VcZ=i zGr3=W`?-$Ie1-Af2l@?~Ep`fxNOe(aNp&=EEBK^w*mt$L3wbeO2z7_OGMAX_hLd zT_i>mPKkL)3IY9fd7oo|sb%j*3L5aSY8VA_UzAU!IBT}R@irx%Vuqtc)pX#ccg(^WlQap?Nf+8L(P_>&ZqwwPw}2aCVXX$`B4nR z&9{po2DsX?rS-6`<^3j#|1DGC&1DHb&_QA%HLthfprx&$KZIFmXX|Lv&4h5WF$&~w zW#z`=AW-MzZWH7l>jdA!Q^W>NWs~Bh>2bjmYBReL+M&Nula7v}`iA4&t2S}&a2Qcu1)_@0+p4GR!S zU9W$AEz?gs_9O>)1vwM|=l|p_Yrn{E7oD1^p-+h^pWXO zmPiZxk$JS`X0q^IvhQiu5>dO`J<9F)ub$R%#zaIB3$_2`Gx>`KjVPzH_)Gx= zfm~0FK91>;lpCgr{P9k_%x={rbFC<1rYOxo%}J1OPRU<0*iQcSigbJQepqmj9W0i) zca%D62)Mjje;q_wrWKOeYD=P3o%HU1o9Vk-Qv6>G zSSEd7`RO<8eD!en`0(BP5j2|CnJn`(MMxvUwH_Y*OE#*^ed6VpKHkPlD}Q!OHUj^E*t^} z>jR&n!;)=Dw3}J*<7G(B(pBQpbjD8fsG*f6)15x9C6=cYr?w9~U7GjJNYAR4f7qkIN~|G8LW5r+gddYYDmamkJdPt2t4}NI#Tldx7#u@D}->* zlq}+s7-3uaGobt&P;jQuZW4b=oXI|NKiRf2ykzapV}~Zym8g3CC&zuHV_R8TVpynO ziTB{svy!|G9VU9_i5wFi-v7iu%qO{70~@D&_%>R#C3S67{nK@*lEPLhM$ZJ7e4{-8 z@;!BK27AK_ogl`sUos*9v)*rs7)!Iyo!&0_G#xK$%dx=7StCP%I65K>9XC-hA@OgW z7XWP6y?zr%SdrG0e(#E5O@FoW$`=}|0URdKfuq)?uIv>oHb_}6A-S!)5It)~zXSIB z(i)y$3d&0Fit}yXihwkp>S8UGX6)@b8)v@Ys8t%~nouZdm%!0HWCW9w@#1Jjp}e*m(9qn>f#_Rk@@Z&oRWfLR zY>|veU(SD6(U_>3p?VB%v4lK6+!s{!n;|lJ`K7yIdQp}XSkVLeBlI`Vi~~wK{z$V{ z<3vwCY}()bbaGt$Rmob`VXUwhXXc_|3&1Lyq|f_XH2A8v93NM&5L;M70dON|E#RQ< z%*GUf$b)v7L;#wa(B!Ea&%e7Ut&p1uDc_?|tA`D%O?KvMd{Snab%US&)LOFl!a29| zTUW=-kM3wkzdYWr89CVsdDv<`3_4uvVtx=f^zD_rDv-Tl&-UA-TRcwkIXYVDnqdnS z-wZ72s8Lvw7COk#99xDM?g*P!Hb65zgd~TtAwtOlaD-}U7U^)v$=8UZ=#Z=E zyP=UgBH8;1S&g~6<{b^U)q{nmyT!wMCfRd6*`CXwrORXKrBms^UY|g`r3=?31fI+h zCTdSa_Jm!w^S|c=VDp~E;i~N8!J$0>cj$s^*L73!$(U#9VW9o0PzwjKOx=s#D<^i> z=EPJtHRDrJ{MVpWVD_A*n7aBERL}%M;G2cJC56cB?5G;4M_4O*+a1C&(AcRcjy_sJ zK+8$bq!*i1;8OWhb;NOkros}BErI_fqR(vU#!xZxvgI%+aFsG=+TzZsc6BQF-_+Hl z)xE*PRq~^6@d7$ZgwQzi9R_Ym`t6x54NOi_%RZjUj^Hgm2E%IE@nP315y?Uk**JZ& zmj7CeK#ia5=sSe|%@2?Z3sM4VcwA0AtdYxs5s;pRVL~8>uKK!uiY3+H&1$&*wReE9 zgL>@WB4O(a_MRByDkasq_rt{va8@F6{HBhziKmT!{wxwMH9uJvHBA2LEL19&?|S`?nPd71dQ1Z)k}R`;wo{ThW9WgRl| z*nwV7gy_ZDg~kHK=JsD&U2nNPqARkmN8JpInyRKE-k%A@-*)?}YsALNJrgZlVNHIx z*K*&vl{P;EurHkrFAZ5e^jIx7Z=nPK;dLJK4Xez5n>3F%ecYhT#s&QZrdSQ8Wq^D~Di@ksq=mlFMj$4MWiGf!{h-8H(b?s}|7 z>-aFVq|d3)=Sf>cZK_e*&E$_4{LM#LX=!OOeFujlftx~sCtq`3{z0}!;F0=X%sBXT zQEg^wwgMuaBK=N;TJ$M{;y$(R5rJie4XTF9c4WeJ?e}xEsz>R(3JDB&B?XAtqTZ3V z$xT$M)jBTGQmvECXz~c6!0Oe{VSlB(n_9cb1Q!Wd70V+4aZ#G?%V^l2jNMU^IdFE_ zlHb>SJ-@VkYEL@EZm?TB^REH*q4eVI!k)N8^JV;kEx#z~gKqlv-{2FyMcJ+XHbSfq zW?vigf6Zf&Gg5c%w-h(Yp)Be40D;0A11E%lJXe07of>$9!V;-)A{d|CfvD@FhH3`% z$yeP@02&U{IWFTZji+8&J$c2}=`@)yZbK|r$?DsHL*AsnFG!m!#=&SsNcoDow3*8M zRPVOG_jDL}+SOL7e>E(Vy_}nT+u>up{Z3*4fhm?@*zFkmrI$>gt~u3%BNCIWl1Vx| z?z3_JURCQKJ*pqIV$OWIMHw8=zi>5s#kkVlBta=$1EQ%aJA8jsC1iU2{Nid}DM3pP zd*#yHUTq@uomhs}?wQbER-wxc+%e0c%MtZE18TdbnX>Z`@v5n<0sSrLiucb$1@Uht zXc?8qfEeiu+=+5I>Lp)cJYB=`%NWPlE`xp#0vu2Grz1|^S$jigzi3azRlq=6y77gf zo6SOuB#DX^@)iq9ESG?ctPfcWht*cU_(;-iegF${2vdFSXN6kKnFHNq-JB<$+g}UI z%bbtYH=G_Hw#cWeBIt=!6EJ&hTrokOixZbPaGs4&owvf!pQ=4dMxO+Tv@LGyTvb#E zbc}0pco{VSI#Aa_EgInP76;YDr@!1QmTxfjAG4Q@cL?Cuv}z1((8IR*F=dCF=)!h8 z!>@@=)JmhkE%I50AE>p*m>XgdMx?-xBTjyy+(^4g-? zQ@;N>vtH-@)PqCQj1uzOEaVVMh6Z|HO*sozHTY+vlw=;=9z|$d6}k_GP8X)FArVue z!?a1CIeX~?)XjF%-a)cFkmgpd-j2W07@kPd^grk_KR$c=7_IWNEs&wiE8wd`c88n; zVV{_xH#jsJC(YY!sW|)hjnctm%_H$Q!RG=>Z$)f|>d4B4bBy%^#Elq$2X&&G`PNDRG-uz*+>*WfYA%Yc4hRe!>)lM|n>^JF83A6Q zG45}mqw~gvhKzdik?I_oIL_~#cmXB92G+&TyC+|}A8S3(qG&I7IjmWGV%${2o;K)@ ziSq*HQoy}ikDHIH!#{lhf5gKsi@xy1vyvEfr=W$b`OS*@LWw?J+Tr_Y>%-<(y83s< z!1iz(&qWId|CikS|F&Y)B#7%Yu2;0*%`OIHIvVkU;<^jpzslerrenul^3_e?PMx+Q z2O~_MvZY&0s=I161za*!FIl@p)XGocc_fujIqOE*#6+fF+$Z2%Wj4HDc_SON9(~CF zQKIWu-QkAtX1Sn626;8~?_8l}X`)3&vn4S^kx0Sl&ed7%NFDe#Yb&zU<8skrwd##a zgjZ_1E}sQ;hhH>^E=p0>vz-4RwQh{C7zSb?!p=lbH{TTC2DEB{5;EYiU(m>qv~MIN zJiV^}r~xZZ$lf{5GYfEE1&=sx0Z$JI!FA-PI-`jhxml&-zsm$sbJHG#!@h@dFBM|W zf<|suNq|M;T5P%q0$$FzgO;8d-H_IXU}Nv>8~)TGvARvVeDt+a>kv0$F?zJ2;hhIi7xL@%90?E{ZoyZ(*`XNy*-`{fFImSEUUTv$2Xn(D<12TuErMguzD)Pa{r zXT_N1X7+9jZXncV&7{MO)j0Z@vYAG)#E?jx5VlnB zlVA4y`MzjwN9j#n(Xai6k-lo*Nl)X>>1h5K)Az*YG~I_{O6 z>yi0hgrCD}qtZ(Xl!cT86+{O0RL#vTK?yw>1zVbqb4wW@~7Kr%4TbLJZj z9?J^XX(h!tE7$g0n!RVGxXwXu+=WwH=l*{E)`5#?%*uNYCJ+%cu-y#r%?yZU5l>{w zj&MYWNW_sk+pY+Hy-~ExYO;H?YALCVr2ik$1n8GZ{L-@^t#Mt)Ob7yBYzg%J9naAK zTaULU&x)#nDW5`O7*zFj9ME1^vP8e(6M(KUR0M85Kttp{*k`uM$YTE z*NpceN_r1+;E=E^Sf8_X)04K34JIlxXnGpDRc<_GU6{*I3_BVoUfP7osX0}omU2ZI zBWQb|fZcs|2R@WUV`bNCVw6ZESqyL<VD4`|X6;tuF!D^-&zptj5Kle-7(y6tX35YqkqODeFS=1qjsYX>xlXQy344F~M z43I}F&Iz%8Q6HFFqI}aq3vnc4fZcOJWMMPY{OfL0 z^PT?eP~?@Dz8Oh9@B9bMo@9;Gl2EbU@sTrt^KsGd=`TH{Pt`*P*>caK(_U$App&L| zS$$5E)~;QX1<~K!C|TizV9P79t;qg{-#HbAyl5$|Ye(>jCR#cj({oKTIV3<-Sm^cV z&q1;a-8+H?%&aUnLv@Xeg5Zl8Vc7{Va#{^uhZML*e)*2^I!Vs~Ql)``#wvK;njR{f zDBI{=i8{>I5y`)ACR3Q68Q^kON+>#P8own*yT!O`rQ;N@oCCX?K7R!&a7 z44+5AU45Q8CQ!+}?w+``Q?>EAPZ=Ck)7AHgf*<2#8wermC4Z!IE=LvhU7bbkJMOqM zEDUK#IG>;$yfom^q1mAq%i8kA%LiFk%C~6klD;E@7QQqO?(8JJgM~^|Z1JIg)DO?B zX!K|QjS}UPxw^>u2#V zdb4KF*mJLdt!LtW-tb=4fG$CgBUrzT()kf z2z;d9Xyhp$tF7)nIT(|>fXGATTT!`~vv=${8aA~_$lI&z1E%N}I=*^8>;3wlp5g_^ zbmhD!153JRhQ=04Jg`YVl(WPz5@8aNvjYSj03$T99AX(f|GMuxO7^d7lYOXU9gOLr zFVTA|+5HEr%6RW@&E~8Iyb$^aO++H_dEOFZp#4yEr$ zzphqATU6>1ONokbg~c@d$RB#bM{>Q3#wU%woN$DSF75>=kSQg!P$hrqPcJZ&@s$P- zEPwC4j)GB&lNg&xywQ6WqvA~0z#6qDq1sP1+T%fi#w}@q^7RdfxL-S9yF0}ga)UpA zjMH#WB>=83S~mS#O?=%@K5gHa{`31oxj8AlS0NXFr;1<6+BV9B+Uq}KOD*45O7L0` zQG!+`yS(YQK-!_wYf^2vmC0Hi_b}RN9H3-_EJDMW9$NIG0W_yDDpUF?K^lB;jV(+* zG)uS>IVJ9VEF_I`ub(he)(Wyv?1Nsy_$n)EQ(;0pXDRHhj&xB>VATQ@y{30q9(a0y=(eyBj2-9TKUIW)Y3ZgzX@&WCtEA6 zb0j-N<5%S8b|=WD7h=;M-VLYL6+a>8C)6S5`J*treEQGkLfg0em%m%|(Y2Fo@XR z879!;GGi)md-IWkTsldlh=B}V>Zt9rI%Z0nd$nu^~vHh>)& zU!_A3e(&P2k*~$DEtV7vVdRaiZ7XKGRr0`eD1{Oc3ZP4aMpH6%F@4plm9Yozss+xv z0b^8dj!R#;5|~mz@o%r+ZAyOMQBRH_4aR5mm2hzDKZi}Oy4*uzY*;qJJ(_nK!~I`I z6@GK$r7??hpDJ7}uP)R_P!_>rFav8!wfpUM`)Nu=?Baz|(R~95cmYfc#KXRR~H~zEt8bzJF!ze!+F${)lR}TG&4Xj+U-fz3>&l^O$?L2c5ZX zOfBkd2=`8_owGy-9_?7Z1`%?2AY*uXUY6?m3KNy{zdAD9j*4`XviY%)jjsve;Xl_< zBMQqUNU>Pvi|Q+NrR!`jbsb2nL6N@*;GM-3*?-}S@Y`2Wwcd|N#&+{V?u%z_IrtOR zUh+)5*%H3GYH>vdzSj)hxL%Cnp`7=BLW_E#lv&I&JeDlf8@ z{T7}E)#VBJN;s7%ST>mn_4uBx{h8%7n7J&0V}vQUs{%p33j=@u6fBWelD)&6FFM6O z9T6S+w%Bl2V@=ftMd5^9%~xr{iddTy3Ae_9)vPlvrHbQ;ZwNMW7wg}Bq!vttI}+sm zTvJhFy&ZLn(^xX6Qm?D9XAB$Eh~KNvG09A97XE-nDAv){f-2rr5>CoiWIL<#GOCcO zp~T6^0EUJ;(OVsr)XE#QV%CaY8vHqx=Wh$L1Q{HiDbmN4*-Ujo(Cl$6(mj0EFJ0%^ zu9ZTrA0~EToO&DDI_-HKJLnj#_BD3&N+LOz=BwWlXb2@Jii05^ zM>c))kBv$(je<(3))Yb66>43jI}`yMghm+5g*zsB+iTtLSJ!3Zgr;9F#vl8jP5oyi zbMX5dO}@X!&U(y&1TpTnGvyh<_-9$sfW4!CaZonSSVJYcnSpv1W8S6`xDuHk&g6q8zE?n-AZeO#Cc{6S0CJdWel#sgf;6*R=OKEYSwjaqi_Pe{K_$IW?KH%t)o z&vR)8tS{q^S}~7s=i}kj-Im)m7c@(1+nCeWG5F3`yNgJ#K>Zfmsz!dTS^fUJH>{F* zyO9LU2*m9a(8ss4fP(5d<~zG}=!&~^Up#7sZXsd>{#z7!eM!6as!6eWvw_FQk7rfn z*rva|GVGzTC80%@(*DY*1b7UPgmpDju)f_iUWbS4W_Ojs`3ZSMZOYM)sMUzFj+le} z2k4;61;-fFr1$!0=f`qGPeM~a0(;ViRPr7jp7#Tf8mBZiip&)7>f4^@ERitJm%U@o z=}MQlEoW)`@nVs_u1ggI4Y322yrtJv81u<1?i}l$ldw|g+2e$-*nfm!}R zoUCvOEIp}?Edalqn+6}IJdnAs?B+YX4Kb-`xLVDgOm*XEXg?1n1S@eJ zX7ZCC_~mFA2SqOr=tH-`iC8R+U4Cw5_O_0P&<7x?GKl|t|1mc5-ETootTX{H5XXI~MnT=V>C`Goh5la) z5XG9J*ACE{x;$6V)dgjKRH{OGxVsl4NJx^^z6+kPs(2AW5B^gPW(3x|)zfU*CcEi5 z%<0dHVY$^k++7@!(}C-BT)KUQdH*>jlK1$HIJI!uF92fAOuE* z`Tnn@vx;i7Tf#7I#l1j*;7&t}Lt5M|Xz-%N-HN+wa4lM#Leb#Gp+Ip8#jUuzo$#Nv za+Qm3eS7xIyt9*eX4@?$D+85^eP(WjD2l&I-;{_Ei2ozqpV%S)g3085mr*?Y^&K>C z*NJzk2|LF6(}C04a1p5)mD`-$cl(FudNVzeyABD(U8a#_$Xb49iQTJ}5@IoS(yS^q z*Lq@D1Tf_Hp}ZE9!nsO8MNh|^otD%_$qEE9?v()DuL4`)G_Y(#lW0FYeR}p+bLpzFHR5O0BQHe-vpd-#co!T7HN9&e3>Y zf7t~$_}AMp_MX!>tEV@*J#(Pw1tkFeD`%)9@?T!=L71R6)-JL4+r0P`y{`llm;zr54Rch@#EX2 zj?Uw8@?Z@Ly*CZ#S89YvA;y>>Lh;I}KfnSF!+Sh}0!#3wtod7Af;LnDglng4LoT&O zm9^@;Zy>}=Z^idpi^m3`#?k-++o8~rE5RYh_S(-%PI(!1EX6qvc|;ndzM_vISTsoT zJ7uwNr=7F%lgl12h48A2dRtKep2^9*7$aL$+GO$U>a-z}7*a8+DI=-TcE8$|`_WgJ zV9i8lOU)Xi=YDb*K*XcFNqVh4;HySvbn)p;9552%j)WEzt2bq9g z<7PNdNN;PZIT3y&HH1|uRVjjj%2rb|BK^+OhBHAPFG!ouYTM4|G+%BZW2e=r3~kQ% zU4uvID;TU#XX)A_*pa=%n;DNfTZ%GxHWQydrK+@YU{k$7RnC+>c&MaoRBg1FD-@r_ zl%=8eW~Hl+E9Q0E4dvf<~-pS=?A z(F_+jsXjI2q?JZ1Wg_Sw++IGO*@#VTaI2=EC-Wr=p*R3_i?8LRBm)xOzqbXT70LQ2 zg(RR1{~^?Cq9@_e%)l%I>dvzA=)G&R9Y7Z?X=&R1Q-9v=v61wC!Y1EP&TU5AyHegZ z7>|oz!w3rzgkq~Sz@QnXRc^20tnqiNoKTM|ktgtz2{yi*>I^yInn?^nl?&4pCMbkB zH4QTprk~9FCks%}c$PMIT2WB>K0sdAM7ro(g6>Z0_09222M zi3r)x@?ypI3epl0pP}zElrce43sUV9gWDs+&bR^Rx#ih&L7a);wQ?*wR~}LmSv8?< zTFjo3={cQ`CfG>}N>|7I_WC9hjT5Qe1Al)b9#Y*`O4Ac710{$13XV=FS<_ybeDB5A z`GqG&HB^;=R7DsmsdyMnl>c-2iIuL5{*xj6^xAu?L1$fuRE8}tCYiKD6k(E*X@zs+ zM|ADdIW-hjwsObVdRb4Irj=kfNOH(S9Ld$HaG1vL_l4hj`SYR{l%L7h=ImAW^)Iql zwwg|R(`5_#+Swv*uY2iR7^Qtm7jcI&$wZORcRDapDmft>WDIwjN}6LtEie_S?S7V^ zntDqcx}>l6Nf`C&T-$P(~|{-zQ^IlGPO7}+bA(J@-lPCoQE=X>6* zU%o=!Sd-G!t+!#nJ~4Lv&I$mXbnwcBVQhHpTk~@z0wBe9d(s0N3HUDA4pp7~@u=TP088hRm?&cmdN3 z)3Jj@*U-{^rPd4iAo^`tp%~6Xo66LIOW#D2pM7J!Rc(!wt*3chYiF_>JlNewQ}KNS zhblXsbDW|)heS_Bb-CpFdmv&F%_UuqA-kXqez!F*LwtIrOuYt9)pF-RH)_i?;wj%s zH_x4+bIg%G)MQ|U&5QpvVJp`43_EgEhHP!u~ajtXf|FiIha_qo~fZf zoyufgkBcl^l1`pA+vT5am<#T)e2~XR&>ZUOwR6bQUs{_?x{K$Pt(PD=>y~*qN$EO4 z@RFcuVJfm^AC0@+5N(8+Jpcvp#OG?Uy@_9wU(eefX#RnX>=PnJrBN5;o!=MmJ zGA$vovQ?-HBaoq=tgH?OTyt6}#377v#eEYcj_U-8z2sPoU20~i_uwX6PT(6#SV~G)t%KC%ncC72>rpDu-$HuxX3XAhBRHXD$S4}0{`}l$0-=+X#Q#1*$#O=X<=L!IL0ro@^YjcN`d)Q@Z+@zOe`YtKr&I9q+wO(NPI zZxciyk=0xMxN5J@L(x{@)EZT;{(jPET!L7Iiv87_1<6UTlqA~s@|cxXCvJ~T2^9M# z>`h}{;@EbH(I}3y`N@^7(O6vi0&_<~=DWX{By1#7Es3F!MM|sRmH(`dKni9%*W}`M z2ED#7E5fX+N}n+K?yLPF)wQ;4RY#qMnW3!LJ32uqV};JVGg;9tl(I!BCrWYwp-7UA zRZVxJeE_aqmbWO-tq=^|Zw5WBN%)Mwn-teBRX^b?y6CKVt$~O0qmaW%vsNcon+vfI zt>e!LtdD=6h64bmJOJ${fb^{emi~WaQ8pmPVn1BT7}6MzXnF?oQcv zhGxk-TDn=GBKboFUyKNHv|wC`iJsceUUTE*u%TI`f5{Vv{q{c0*7qs1dhNP6Ga8At zQ40r|x4pgl+XkU7)Z(EHT$pvq$(mBBmMF&&6M)c4CD(Z6PWeMtCLoNI7c6)q#_*Q^lw_iyVtjvE6)~B@P7s0Qm zSO0X!R`g;BA`u{pH#E;5`dBn_S7Z_9`M$C zSHwLb_3_Fb)-^ zWOJ?P(Mv#l=tqqYR>C9K8J7^*bEZ9dzul_9I`~e4fi6^j!pS`854GviD^BAWWk=04 zmekP7VB7qbdGbhE+XhK2IW=O;`6GQKn3*7msj=UWLFodK^CFYT-Di(f52W!ZqCfi(ZHNBRr6V^To#X;{ll*A+Bzc?eIxBcz_`j17`aQLICafEAT#D zymHHXvDDXTt9`?m^KC-=Yx zxLBZ4YRyA>BWQeMPzss^v7O3l-b*DA9*fC^CSx4~RtJ^#YzvBL-@PtwKye_FfnC#n zWQ|S6Dr-OjoQ};cDS{mwi?JogO6G*v-UeoqdEWxIu0dgs5p7jRh$wv!kY(L&XTaliQE8k3%hr;j$f#S$4dV^KG*m$Z>kGfU=6u!M1~#QiH_hG3{_M#f>Tv0zDGof6$qKNGW>Sj)0

9Ax0WTes9q9Qvi6n`S@|-SqgJJ+L`bMeO3& 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 +#include + +void main() { + while(1) { + printf("Press Start\n\n"); + waitpad(J_START); + + printf("Please hold down A!\n\n"); + waitpad(J_A); + printf("Holding down A!\n\n"); + waitpadup(); + printf("Tired already?\n\n\n"); + } +} diff --git a/z_gbdk_playground_original/input_wait/screenshot.png b/z_gbdk_playground_original/input_wait/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..1c736a6a7189fd5dff0ec360ad15dd4e5169ab8a GIT binary patch literal 30272 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 F_<#M-qnQ8z literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/link/Makefile b/z_gbdk_playground_original/link/Makefile new file mode 100644 index 0000000..9a83cfc --- /dev/null +++ b/z_gbdk_playground_original/link/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = link.gb +OBJS = link.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ + diff --git a/z_gbdk_playground_original/link/README.md b/z_gbdk_playground_original/link/README.md new file mode 100644 index 0000000..afeca64 --- /dev/null +++ b/z_gbdk_playground_original/link/README.md @@ -0,0 +1,6 @@ +# Link + +![](screenshot.png) + +Demonstrates how to use the Link Cable to send and receive bytes. + diff --git a/z_gbdk_playground_original/link/link.c b/z_gbdk_playground_original/link/link.c new file mode 100644 index 0000000..9ee85e0 --- /dev/null +++ b/z_gbdk_playground_original/link/link.c @@ -0,0 +1,30 @@ +#include +#include + +void main(void) { + printf("A: Send\nB: Receive\n\n"); + _io_out = 1; + while (1) { + if (joypad() == J_A) { + waitpadup(); + send_byte(); // send _io_out + printf("Sending...\n"); + while (_io_status == IO_SENDING); // Wait for Send + if (_io_status == IO_IDLE) // If IO status returns to Idle then success + printf("Sent %d\n", (int)_io_out); + else + printf("Error\n"); // Else print error code + _io_out++; + } + if (joypad() == J_B) { + waitpadup(); + receive_byte(); // receive _io_in + printf("Receiving...\n"); + while (_io_status == IO_RECEIVING); // Wait for Receive + if (_io_status == IO_IDLE) // If IO status returns to Idle then success + printf("Received %d\n", (int)_io_in); + else + printf("Error\n"); // Else print error + } + } +} \ No newline at end of file diff --git a/z_gbdk_playground_original/link/screenshot.png b/z_gbdk_playground_original/link/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0b243fc2c02b224bddf5fe5261ef43212fe20e64 GIT binary patch literal 33129 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 literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/move_sprite/Makefile b/z_gbdk_playground_original/move_sprite/Makefile new file mode 100644 index 0000000..44d1327 --- /dev/null +++ b/z_gbdk_playground_original/move_sprite/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = move_sprite.gb +OBJS = move_sprite.o ufo.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ + diff --git a/z_gbdk_playground_original/move_sprite/README.md b/z_gbdk_playground_original/move_sprite/README.md new file mode 100644 index 0000000..786a2b4 --- /dev/null +++ b/z_gbdk_playground_original/move_sprite/README.md @@ -0,0 +1,6 @@ +# Move Sprite + +![](screenshot.gif) + +Demonstrates how to move a sprite using the d-pad. + diff --git a/z_gbdk_playground_original/move_sprite/move_sprite.c b/z_gbdk_playground_original/move_sprite/move_sprite.c new file mode 100644 index 0000000..20d6a8b --- /dev/null +++ b/z_gbdk_playground_original/move_sprite/move_sprite.c @@ -0,0 +1,37 @@ +#include +#include "ufo.c" + +void main() { + int x = 55; + int y = 75; + + SPRITES_8x8; + set_sprite_data(0, 0, ufo); + set_sprite_tile(0, 0); + move_sprite(0, x, y); + + SHOW_SPRITES; + + while(1) { + if(joypad() & J_RIGHT) { + x++; + move_sprite(0, x, y); + delay(10); + } + if(joypad() & J_LEFT) { + x--; + move_sprite(0, x, y); + delay(10); + } + if(joypad() & J_UP) { + y--; + move_sprite(0, x, y); + delay(10); + } + if(joypad() & J_DOWN) { + y++; + move_sprite(0, x, y); + delay(10); + } + } +} diff --git a/z_gbdk_playground_original/move_sprite/screenshot.gif b/z_gbdk_playground_original/move_sprite/screenshot.gif new file mode 100644 index 0000000000000000000000000000000000000000..5923e6e3f19d2acf104e99aaa902fdf14860cd92 GIT binary patch literal 15695 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 literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/move_sprite/ufo.c b/z_gbdk_playground_original/move_sprite/ufo.c new file mode 100644 index 0000000..f0d3637 --- /dev/null +++ b/z_gbdk_playground_original/move_sprite/ufo.c @@ -0,0 +1,32 @@ +/* + + UFO.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 0 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ + +/* Start of tile array. */ +unsigned char ufo[] = +{ + 0x5A,0x3C,0xE3,0x42,0x7C,0x99,0xEB,0xA5, + 0xFB,0xA5,0x66,0x99,0xE7,0x42,0x5A,0x3C +}; + +/* End of UFO.C */ diff --git a/z_gbdk_playground_original/move_sprite/ufo.gbr b/z_gbdk_playground_original/move_sprite/ufo.gbr new file mode 100644 index 0000000000000000000000000000000000000000..c043f4bf49701cd22bca58651f09b49979af6053 GIT binary patch literal 10069 zcmeI&K~BOz6b9foGZooLOuRssx~a+zmW@f>>B40bQeebJN}HBi*(f*gJg&WnH}DAf zW@KSd(*cWnSG%7>57^AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tZ)_0*WLZ@iP4Hzdg+^fQ3ECAw_R?=(-!4eG2_tS7G3XqyF%|myM&@ zC{N4DFig@1-7B&@p6al?O})XU%T{I=MX@p~ue1`ewf>B8WRJhh%iqJl=4>(eyqx=h z3u{>RCcS^0Q0LVrw>+o)j`#1MowZk77pz4MYB}aToUc0-@^@SSZ@`ZKfEz3S6H +#include + +char *saved = (char *)0xa000; // Pointer to memory address +int *num = (int *)0xa001; + +void main() + +{ + ENABLE_RAM_MBC1; // Enable RAM + + if (saved[0] != 's') { // Check to see if the variable's ever been saved before + num[0]=0; // Assign the variable an initial value + saved[0] = 's'; // Assign saved an 's' value so the if statement isn't executed on next load + } + + printf("The value of num is: %d\n", num[0]); + + num[0]++; // Increment so on next load there's a new number + + DISABLE_RAM_MBC1; // Disable RAM +} diff --git a/z_gbdk_playground_original/save_ram/screenshot.png b/z_gbdk_playground_original/save_ram/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c5a68e942b1ad0b24d1114597f917b86e4c281af GIT binary patch literal 32245 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 Hqu~DmMMTkR literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/simple_shmup/Makefile b/z_gbdk_playground_original/simple_shmup/Makefile new file mode 100644 index 0000000..d9f60b7 --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = simple_shmup.gb +OBJS = simple_shmup.o bank2.o bank3.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ + diff --git a/z_gbdk_playground_original/simple_shmup/README.md b/z_gbdk_playground_original/simple_shmup/README.md new file mode 100644 index 0000000..8000efc --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/README.md @@ -0,0 +1,8 @@ +# Simple SHMUP + +![](screenshot.png) + +A simple side-scrolling shoot 'em up game. This example uses several small +sprites, a scrolling background and a full-screen image. + +Tutorial: [How to write a simple side scrolling game in GBDK](https://pastebin.com/F3tHLj68) by Jason diff --git a/z_gbdk_playground_original/simple_shmup/background.bmp b/z_gbdk_playground_original/simple_shmup/background.bmp new file mode 100644 index 0000000000000000000000000000000000000000..69c95091e84c722e649ded6138021c8993573150 GIT binary patch literal 24186 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 F{13AwD_;Nr literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/simple_shmup/backgrounds.gbr b/z_gbdk_playground_original/simple_shmup/backgrounds.gbr new file mode 100644 index 0000000000000000000000000000000000000000..8edf8eeb1a425da754fc519963db69702ee496d1 GIT binary patch literal 10069 zcmeI&OG?8)7zgk#kJf-#5HFCG=q74+?J@{)r=ZI~NSYxH=0zUFZnQV>Jg&WnH}D8L z6BU|L$s$%L{D*{OzIo<1S$>vzeJ&Bv1HUadW?s6`@4|@bm#hebgylT`RmR4c4rS5z zDvjAxuj|^Fxdn?|BVpy)<2;M2$X^-oGqCe1lSC(aS2v9`S`taJ(kj%dwJNJkt@o~_ z&<+6zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P-ne1r(C$h_AwP z5t>WnBz!c5R8r`*X}X!(B2U4~S#4XU9eDn|lSS?#$kQtE?IMh`h&jbPt}@#ToRa4} z7_&dzx+1bDinR$%OGMX#V*4A)fPc(0kN?uVVZ>HLPv5g2(13;wyGC#Cr!;vnNv|$w qZ({s=UG2SMU$PMmX{3rnTK1g^<9A#Df546(VDIhkAKzwCSn8kd*>Cm$ literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/simple_shmup/bank2.c b/z_gbdk_playground_original/simple_shmup/bank2.c new file mode 100644 index 0000000..c755534 --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/bank2.c @@ -0,0 +1,154 @@ +#include +#include +#include + +const UBYTE badguy_ai[] = { + 32, 32, 33, 34, 35, 35, 36, 37, + 38, 38, 39, 40, 41, 41, 42, 43, + 44, 44, 45, 46, 46, 47, 48, 48, + 49, 50, 50, 51, 51, 52, 53, 53, + 54, 54, 55, 55, 56, 56, 57, 57, + 58, 58, 58, 59, 59, 60, 60, 60, + 61, 61, 61, 61, 62, 62, 62, 62, + 62, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, + 62, 62, 62, 62, 62, 61, 61, 61, + 61, 60, 60, 60, 59, 59, 59, 58, + 58, 57, 57, 56, 56, 55, 55, 54, + 54, 53, 53, 52, 52, 51, 50, 50, + 49, 49, 48, 47, 47, 46, 45, 44, + 44, 43, 42, 42, 41, 40, 39, 39, + 38, 37, 36, 36, 35, 34, 33, 33, + 32, 31, 30, 29, 29, 28, 27, 26, + 26, 25, 24, 23, 23, 22, 21, 20, + 20, 19, 18, 18, 17, 16, 16, 15, + 14, 14, 13, 12, 12, 11, 11, 10, + 9, 9, 8, 8, 7, 7, 6, 6, + 6, 5, 5, 4, 4, 4, 3, 3, + 3, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 2, 2, + 2, 3, 3, 3, 4, 4, 4, 5, + 5, 5, 6, 6, 7, 7, 8, 8, + 9, 9, 10, 11, 11, 12, 12, 13, + 14, 14, 15, 16, 16, 17, 18, 18, + 19, 20, 20, 21, 22, 23, 23, 24, + 25, 26, 26, 27, 28, 29, 29, 30 +}; + +UBYTE playing, joypad_state; + +UBYTE player_x, player_y; + +UBYTE badguy_x, badguy_y, badguy_z, badguy_offset; + +UBYTE player_shot_x, player_shot_y, player_shot_z; + +void update_graphics(void) { + disable_interrupts(); + + scroll_bkg(1, 0); + + move_sprite(0, player_x, player_y); + + move_sprite(1, badguy_x, badguy_y); + + move_sprite(2, player_shot_x, player_shot_y); + + enable_interrupts(); +} + +void update_joypad(void) { + joypad_state = joypad(); + + if(joypad_state & J_LEFT) { + if(player_x > 8) + player_x--; + } + if(joypad_state & J_RIGHT) { + if(player_x < 160) + player_x++; + } + if(joypad_state & J_UP) { + if(player_y > 16) + player_y--; + } + if(joypad_state & J_DOWN) { + if(player_y < 152) + player_y++; + } + + if(joypad_state & J_A) { + if(player_shot_z == 0) { + player_shot_z = 1; + player_shot_x = player_x; + player_shot_y = player_y; + } + } + if(player_shot_z == 1) { + player_shot_x = player_shot_x + 2; + if(player_shot_x > 240) { + player_shot_x = 250; + player_shot_y = 250; + player_shot_z = 0; + } + } +} + +void update_badguy(void) { + badguy_x = badguy_x - 1; + if(badguy_x > 240) { + badguy_offset = rand(); + while(badguy_offset > 134) { + badguy_offset = rand(); + } + + badguy_x = 239; + } + + badguy_y = badguy_offset + badguy_ai[badguy_z]; + + badguy_z++; +} + + +void collision_detection(void) { + if(player_shot_y > badguy_y - 4) { + if(player_shot_y < badguy_y + 4) { + if(player_shot_x > badguy_x - 4) { + if(player_shot_x < badguy_x + 4) { + player_shot_z = 0; + player_shot_x = 250; + player_shot_y = 250; + badguy_x = 255; + } + } + } + } + + if(player_y > badguy_y - 4) { + if(player_y < badguy_y + 4) { + if(player_x > badguy_x - 4) { + if(player_x < badguy_x + 4) { + playing = 0; + delay(1000); + } + } + } + } +} + +void do_gameplay(void) { + playing = 1; + + player_x = GRAPHICS_WIDTH / 2; + player_y = GRAPHICS_HEIGHT / 2; + + while(playing == 1) { + update_joypad(); + update_badguy(); + collision_detection(); + delay(10); + } +} diff --git a/z_gbdk_playground_original/simple_shmup/bank3.c b/z_gbdk_playground_original/simple_shmup/bank3.c new file mode 100644 index 0000000..3d3566e --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/bank3.c @@ -0,0 +1,90 @@ +#include +#include "bg_title.c" +#include "bg_title.map" +#include "bg_tile.c" +#include "spr_tiles.c" + +const UBYTE gamemap[] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; + +const UWORD bgpal[] = { + RGB(0, 0, 0), RGB(10, 10, 10), RGB(20, 20, 20), RGB(30, 30, 30), +}; +const UWORD spritepal[] = { + RGB(0, 0, 0), RGB(10, 10, 10), RGB(20, 20, 20), RGB(30, 30, 30), +}; + +void draw_title_screen(void) { + wait_vbl_done(); + + DISPLAY_OFF; + + set_bkg_data(0, 255, bg_title_tiledata); + set_bkg_tiles(0, 0, 20, 18, bg_title_tilemap); + + SHOW_BKG; + + HIDE_WIN; + + HIDE_SPRITES; + + wait_vbl_done(); + + DISPLAY_ON; + + waitpad(255); +} + +void load_game_tiles(void) { + wait_vbl_done(); + + DISPLAY_OFF; + + set_bkg_data(0, 1, BGTile); + set_bkg_tiles(0, 0, 32, 32, gamemap); + set_bkg_palette(0, 1, &bgpal[0]); + set_sprite_data(0, 3, SpriteTiles); + set_sprite_tile(0, 0); + set_sprite_tile(1, 1); + set_sprite_tile(2, 2); + + SPRITES_8x8; + + SHOW_SPRITES; + + SHOW_BKG; + + DISPLAY_ON; +} diff --git a/z_gbdk_playground_original/simple_shmup/bg_tile.c b/z_gbdk_playground_original/simple_shmup/bg_tile.c new file mode 100644 index 0000000..a898997 --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/bg_tile.c @@ -0,0 +1,32 @@ +/* + + BG_TILE.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 0 + + Palette colors : None. + 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 BGTile[] = +{ + 0xFF,0xFF,0xFB,0xFB,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0x7F,0x7F,0xF7,0xF7,0xFF,0xFF +}; + +/* End of BG_TILE.C */ diff --git a/z_gbdk_playground_original/simple_shmup/bg_tile.h b/z_gbdk_playground_original/simple_shmup/bg_tile.h new file mode 100644 index 0000000..2a14b6a --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/bg_tile.h @@ -0,0 +1,31 @@ +/* + + BG_TILE.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 0 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ + + +/* Bank of tiles. */ +#define BGTileBank 0 +/* Start of tile array. */ +extern unsigned char BGTile[]; + +/* End of BG_TILE.H */ diff --git a/z_gbdk_playground_original/simple_shmup/bg_title.c b/z_gbdk_playground_original/simple_shmup/bg_title.c new file mode 100644 index 0000000..2d51b48 --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/bg_title.c @@ -0,0 +1,170 @@ +/* + Advanced PCX to GameBoy converter v2.15 + + Tiles data + Original PCX File : "BG.PCX" + + Number of Tiles : 159 + TileMap Size : 20x18 +*/ + +const unsigned char bg_title_tiledata[] = { +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,0xFF,0xFF,0xDF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x30,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF, +0xFE,0xFF,0xFF,0xFC,0xF5,0xFB,0xFB,0xF7,0xE7,0xFF,0xFF,0xEF,0xDF,0xEF,0xDF,0xEF, +0xFF,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF, +0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF, +0x87,0x30,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0xCF,0xB7,0x48,0xB7, +0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF, +0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF, +0xFE,0x00,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x01,0xFE, +0x77,0xF8,0x7B,0xF7,0x7F,0xF7,0x6F,0xF7,0x67,0xFF,0x7F,0xEF,0x7F,0xEF,0x4F,0xFF, +0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF, +0xFB,0x07,0xF3,0xFF,0xFF,0xFB,0xFF,0xFB,0xF9,0xFF,0xF9,0xFF,0xFF,0xFD,0xFF,0xFD, +0xFF,0xF8,0x7F,0x7B,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB, +0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFC,0xFE, +0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFF,0xFE,0x01, +0xF7,0x0F,0xEF,0xF3,0xFB,0xFD,0xFD,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0x7F,0x3F,0xFF,0x7F,0xBF, +0xCF,0xFF,0xDF,0xEF,0xFF,0xEF,0xF7,0xEF,0xEF,0xF7,0xF7,0xFB,0xF8,0xFF,0xFE,0xFF, +0xFF,0xFC,0xFE,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF, +0xFF,0x00,0xFF,0xFF,0x7F,0xFF,0x3F,0xFF,0xAF,0xDF,0xF7,0xEF,0xFB,0xF7,0xF7,0xFB, +0xCF,0x30,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0x03,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB, +0xFF,0xFC,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD, +0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x4F,0xFF,0xFF,0xDF,0xFF,0xDF,0x9F,0xFF,0xDF,0xBF,0xFF,0xBF,0xFF,0xBF,0x3F,0xFF, +0xF3,0xFF,0xFF,0xF3,0xFF,0xF3,0xE7,0xFB,0xE1,0xFF,0xFF,0xED,0xFF,0xED,0xCE,0xFD, +0xFC,0xFF,0xFD,0xFE,0xFF,0xFE,0xFF,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0x7F,0xFB,0x7F,0xFB,0xFF,0x7B,0x3F,0xFB, +0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFE,0xFF,0xFE,0x03,0xFC,0xF9,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFA,0xFD, +0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0x3F,0xFF,0xBF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE, +0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x7F,0xBF,0xDF,0xBF,0xDF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFD,0xFB,0xFB,0xFD,0xFF,0xFD,0xFF,0xFD,0xFB,0xFD,0xFD,0xFB,0xF7,0xFB,0xEB,0xF7, +0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB, +0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD, +0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFE,0xFC,0xFF,0xFC,0xFF, +0x3F,0xFF,0xFF,0x7F,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFE,0xC1,0xC1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0x40,0xBF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xBF,0x7F, +0x3F,0xFB,0xFF,0xBB,0xFF,0xBB,0x9F,0xFB,0x9F,0xFB,0xFF,0xDB,0xFF,0xDB,0xCF,0xFB, +0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFC,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE, +0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xBF,0x7F,0x5F,0xBF,0xAF,0xDF,0xD7,0xEF,0xEB,0xF7, +0xED,0xF3,0xEB,0xF7,0xF7,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF, +0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0x7F,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xD7,0xEF,0x6F,0x9F,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF7,0xFB,0xF7,0xFB,0xF7,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFE,0xFD,0xFE,0xFD,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFD,0xFF,0xFD,0xFB,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFE,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0x7F,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x7F,0xBF,0xDF,0xBF,0xFF,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xCF,0xFB,0xDD,0xEB,0xF7,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFD,0xFE,0xFD,0xFE,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF5,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0x7F,0xFF,0x7F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xDF,0xEF,0xDF,0xEF,0xEF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFD,0xFD,0xFB,0xFB,0xF7, +0xFF,0xFF,0xF9,0xFE,0xDC,0xE3,0x6F,0x9F,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xEF,0x1F,0x2F,0xDF,0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0xCE,0xFF,0xCF,0xFE, +0xFF,0xFF,0xF6,0xF7,0xFB,0xFC,0xEB,0xF7,0xBF,0xCF,0x5F,0xBF,0xBF,0x7F,0x7F,0xFF, +0xFF,0xFF,0x39,0xC7,0x03,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,0x6F,0x9F,0xD7,0xEF,0xEB,0xF7,0xFD,0xFB,0xFE,0xFD, +0xFF,0xFF,0xFF,0xE0,0xF0,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF, +0xFE,0xFE,0xFE,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0x7F,0xFF,0xDF,0x3F,0xF7,0xCF,0xEB,0xF7,0xF7,0xFB,0xF9,0xFF,0xFF,0xFD, +0xFF,0xFF,0xFE,0xFF,0xFB,0xFC,0xFF,0xF3,0xF7,0xEF,0xEF,0xDF,0xBF,0xDF,0xDF,0xBF, +0xFF,0xFF,0x7F,0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFD,0xFD,0x7F,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F, +0xEF,0xF7,0xF7,0xEF,0xDF,0xEF,0xCF,0xFF,0xEF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF, +0xFF,0xFF,0xFD,0xFE,0xF6,0xF9,0xEB,0xF7,0xF7,0xEF,0xDF,0xEF,0xCF,0xFF,0xCF,0xFF, +0xCD,0xFE,0xEF,0x1D,0x19,0xFF,0xFD,0xFB,0xFF,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB, +0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFF,0xFD,0xF9,0xFF,0xFD,0xFB,0xFD,0xFB, +0xFF,0xFF,0xB3,0xCF,0xC5,0x3B,0x7F,0xFC,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFD,0xFE,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F, +0xFF,0xEF,0x7F,0xEF,0xFF,0x6F,0xFF,0x6F,0xBF,0x6F,0x3F,0xEF,0x7F,0xAF,0x7F,0xAF, +0xF7,0xF8,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF3,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF7,0x0F,0xEF,0xF3,0xFF,0xFB,0xF7,0xFB,0xFB,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFE,0xFD,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFE,0xFD,0xFF,0xFD,0xFD,0xFB, +0xDF,0xBF,0xFF,0xBF,0xFF,0xBF,0xDF,0xBF,0x9F,0xFF,0xFF,0xDF,0xDF,0xEF,0xE7,0xFF, +0xFF,0xFF,0xFB,0xFC,0xF4,0xFB,0xFD,0xFB,0xFC,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xDF,0xBF,0xEF,0xDF, +0xFF,0xDF,0xEF,0xDF,0xCF,0xFF,0xDF,0xEF,0xF7,0xEF,0xEF,0xF7,0xF7,0xFB,0xFD,0xFB, +0xDF,0xEF,0xF7,0xEF,0xEB,0xF7,0xF6,0xF9,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFB,0xFF,0xFB,0xFD,0xFB,0x1B,0xFD,0x2F,0xDD,0xCD,0xFE,0xCF,0xFE,0xCF,0xFF, +0xFB,0xFD,0xFE,0xFD,0xFD,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xBF,0x7F, +0xFE,0xFF,0xFF,0xFE,0x7F,0xFC,0xCD,0x33,0x87,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFD,0xFE,0xFA,0xFD,0xF5,0xFB, +0x3F,0xEF,0xBF,0x6F,0xFF,0x6F,0xFF,0x6F,0x7F,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xF4,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB, +0xF7,0xFB,0xEB,0xF7,0xBF,0xCF,0xDC,0x3F,0x7A,0xFD,0xFB,0xFD,0xFB,0xFD,0xFB,0xFD, +0xF1,0xFF,0xFC,0xFF,0xFE,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF7,0xEF,0xEF,0xF7,0xFF,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0xEF,0xF7, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0xFF,0xFF, +0xFF,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xBF,0x7F,0x6F,0x9F,0xDC,0xE3,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0x2F,0xDF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x5F,0xBF,0xF7,0xCF,0xED,0xF3,0xFB,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0x78,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xEB,0xF7,0xD7,0xEF,0x7F,0x9F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xF0,0xEF,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF7,0xFB,0xF7,0xFB,0xF7,0xFB,0x0F,0xF3,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFB,0xFD,0xFB,0xFD,0xFB,0xFD,0xFA,0xFD,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xFC,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF7,0xEF,0xAF,0xDF,0x5F,0xBF,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x01, +0xFD,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x1F, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xFF,0xFF, +0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC, +0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x01,0x01,0x01,0x01,0x7F,0x7F,0x7F,0x7F, +0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1, +0xFF,0xFF,0xFF,0xFF,0x07,0x07,0x07,0x07,0xE3,0xE3,0xE3,0xE3,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xC7,0xC7,0xC7,0xC7,0xC0,0xC0,0xC7,0xC7, +0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0x8F,0x8F,0x8F,0x8F,0x0F,0x0F,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0x1F,0x1F,0x1F,0x1F,0xC0,0xC0,0xFE,0xFE, +0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x3F,0x3F,0xFC,0xFC,0xFC,0xFC,0x7F,0x7F,0x3F,0x3F, +0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x01,0x01,0xF8,0xF8, +0xC7,0xC7,0xC7,0xC7,0xC7,0xC7,0xC7,0xC7,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xC7,0xC7, +0x8F,0x8F,0x8F,0x8F,0xFF,0xFF,0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0x8F,0x8F,0x8F,0x8F, +0xE1,0xE1,0xE1,0xE1,0x00,0x00,0x00,0x00,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1, +0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC, +0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x78,0x78, +0xF8,0xF8,0xF8,0xF8,0xC0,0xC0,0xC0,0xC0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8, +0x7F,0x7F,0x7F,0x7F,0x0F,0x0F,0x0F,0x0F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F, +0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xC7,0xC7,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0x1F,0x1F,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFE,0xFE,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x3F,0x3F,0x7C,0x7C,0x7C,0x7C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF8,0xF8,0x01,0x01,0x01,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x8F,0x8F,0x1F,0x1F,0x1F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xE1,0xE1,0xF8,0xF8,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFC,0xFC,0x3F,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x78,0x78,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xF8,0xF8,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x7F,0x7F,0x0F,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; diff --git a/z_gbdk_playground_original/simple_shmup/make.bat b/z_gbdk_playground_original/simple_shmup/make.bat new file mode 100644 index 0000000..fd7d0f5 --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/make.bat @@ -0,0 +1,8 @@ +echo off + +lcc -Wa-l -Wl-m -Wl-j -c -o simple_shmup.o simple_shmup.c +lcc -Wa-l -Wl-m -Wl-j -Wf-bo2 -c -o bank2.o bank2.c +lcc -Wa-l -Wl-m -Wl-j -Wf-bo3 -c -o bank3.o bank3.c +lcc -Wa-l -Wl-m -Wl-j -Wl-yt0x01 -Wl-yo4 -o simple_shmup.gb simple_shmup.o bank2.o bank3.o + +rem -Wl-yp0x143=0x80 diff --git a/z_gbdk_playground_original/simple_shmup/screenshot.png b/z_gbdk_playground_original/simple_shmup/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..5d40183838cc88665cede90ed62afe0a70732b8b GIT binary patch literal 30431 zcmXuK1ymc~*EI|jC|cZ|;#w$D+`YKF1b6q~?h>HI-GjRpFAfEQyE~MkK|X%}?|HM< z|1U|>*j{@Y+-GP4QacYbu2Q{yyM&X2 zgN38}`&Sqk30DhKcMEe$FB^AjN*Ost6>~O=k1#NlFmjS&8r~~s-F9(Y%ese;0=)VF7Df*;QisFi0$pxs)f&GU^H`WQB=?n14ikfpYk?Z3OtAoK9L6zri3d6 zJEY&XPo|GpA`ZEPGAv5AUnf+H7^{yz{ys!agvPxfq}Pogh@yvN1to6-W#!h*(s#V$9{IU$gZK zn}V3Ws8MxLhW#pZ52Fl9QWLd{rF`U12_*TjAydsgNJEKyDI_0Uk6(fo6UH5}A`{2+ zt;{+zNDT!`j3le~vviXu&Gk2cjlZOgs3@cL2|9#TRZ@~K?yq%cevMsBKNVvkhzdUO z4>1@WCF-2`=$x2A?RylB3d*L&w^m6zu`h&pvN~qpSx`a~u_URA?|dku^EHe<0`L@Z zT;7kxR#Y!)ma>cgvrepIOYvpcB)&hgtvkK>6AczXoFue3h$9^noAR9B=46tn#-JdI zhE(Yzh^->43$Yk!3^P>5CY3_lPAx8I_(W1RKaHwn>B4~;G0}rouj_95bD7k;z+LB*GQr&1RCH$3kk9w)}vK}15tS^ zr-aeW$nT@4iRz|%Z#G5F)aj6g(xg~db3EizmQ0YQY{gL{VvOa(XLg7OflO3GFpv*f zq>&YWPZu|vHVaatSi@`3#0(_Ka$r$g;~`_gE5=2Gs5xk}-HMOo%oxT(2&p;txOG^_ zVkD!^fzd-FVOl?vZ5&kOIdA?%Y>}kM`qeUh#ft`6h|O`aD$KHIFUqD+GB&A(9jP#e zAaR6nchEY9B0ZGSMZ;wFBMT#0Y{MYQ%?vjUT5=A|p{NX+&&o$}V5@my;xH)2VaY}R zz?M?Q?2;K&Nk`y-7mvc7s@JhB%_=kj(@9E2`ShB7KT5xjCTxOmDaOmvWrj~dX(eO& zXSsy))N!kdPJPhftEcQtXj;CL#A$_Lijt&=qU6%#gZhaJuEllnf0nEF>%}&HI%MGp z=0L%cl4ZIyjq;wWkts9`6_t+$g-KOh37bpTFdZs693~ZlBwPx0_}3)j1T6&+ypp3( zxLOEg&*KI?OHseUKab)7@}2REsHgPg%f1P9OQFGnapbWX5l=e$BO^*{ zr6z&U&K;z zShQH+V#83`e|Ra>Q`T`~nSHj~SGN(jPb_&KHFgH7Noq85eo-qVURvtBx729bx5XR#FOO>=d!Z%=#l`RdJ&vvpqCCq*U2N;c1iUP;?W=m=YoBgg_%g zhkD2sNurx>18uSvHbb`CV_nho0zd5orfi{JDok~=HMr%T2??U(UtUjFWk&s|n>~IY zxy|CSzJ(Git3`iGm!hH{t%plX34b};B3d<3n;iAWw$qpjNlI6A>_E*3%6ZuXFRr1F zxA3D{-U?l|sA*VFVU7zIl1y`{{cri%Wvaj<{YMJ*3O-@ll`y7M!S9n|54Kt{LqKeU z<{@i=%@;@$9Y}>Yw~!@?kTEty(NGm1K@PXn@Po}F2az`(tZY7D>nui$KLCn*t#p z_3VsFnoMGePt%g5n3XP2;o2x_9`j5?g6JvHrZgypH>YC~Q#!3od8p19@lquG&|GII zUdoTRoBZLw{)3uh@J2Ba%YhXoE#BfUtORn@FkdJJtdtf7FiMv?tMFFL{Pw$^LotIw zh!f`McWMg!=7szut)ayjLO8lAKCbwYAJq+Vc5}HU_Ku7t^*mV;4DlSqa=L1kc)95_ z=yDA{JJnQ@RKtjXj&2n&kQA9i^;?GKIw9wrxLz-uPhjI5q8%Dlm=>HxUN|)>2=sTQ zcJ)P(Q8k^mHIweEJm7{(`_Ud*H061X$qpW3Z5Fcibyvk&O+ofF9g7e=tB2DiLlmlI zTQzm?GPY`!LmLqU12K1F96|)37T<*3B99ou-o74pwGk=wDw&l6wA8cweJl^sP6V)Ek5( z@qW9xyxBY#_l!-AoQ9vp))oGUlH5UyE4pyFc;Hg(%+b?RA``*txyJU-u zJo^5=yM3;1VqO&axNs*7`m2xV{hBFG<9N^3y!bJ7F=&3HR%FwOI%(y;BK-n-BK`h>yPdA;d8{UY+) z5}3t+f7lS1UwNZDGmM?dWS6$G^V@wjEG(*jiRB9mwe`7kO@1X0m)VTQ;2s02f_(a| zuc9uS=-&cVGoR{WB4}YbrnA%GFJ39o!Lq8a5=*uZf~7g?P3c^ zCR8moG3CyxEW`>`#bd01$Yn;NGlsycHL#@1gjt5VFq_3Kj~1iX=%_4c9@N!SZM+Kn z(SC)&AMro8Galh<^|St#!KG}qjp48}XF)h{ddK_kcx~E3gjYK0WuV~_`ibnIe!%6Y z9qH3WPmL>)8HqqX6mpqGdr&6PMJ7QyMYhtIAeVT)Y;j>hacwLOgWiji&wwKQ^0W6~ zh&=#nMETXpKG&BuHj7>SloP70are>Mp&s9?i3RFTa`L=pKKYAZ8ixfd zcaA}Nx+Kw0El?o}aBH>lLw2tdjx4^JZ$F+UGn*J_&#_~YQcd@Ny)oWvpYEB`?)j&h z?)8EpD-VjrE2wZK>|m&dz>z;vU+G!W2Xf zl^tBnSp$!MZ}K;TYv zpm(IrEU=NiC|3#V@y8x9ZF(+xx8WADrjzZN>^xRK1!og*<@ZwXZz45cwQ<5H+B>r9 zZI4eJ^S~DKO|Z|!1c)rYQ2CcSkMkyIH9(nUS54?vH~#E)37D`v`65IHcve5OZ*x>$ zM9jl>C1^?&vZ}hqtDN~}(0=52;6dIi*yu==V>3xF3$!(#6+363_1Q5MY>~)R!VA%gefdlSs#gU&}^HRmGRQ z&Sxc>W$@GvZj0D8(M6yyAwaCVFyCCWN!v1J8j*cVuujhb1xw>bd8PS?(vfBlDx(Q?&1PS87BffKg92_){aTb~94-)7yhOSPLA^X`J z2YRq24SM9_k|`z*!5qOyi`M6LEhVeI=nhYgts6WKqN*&&a)P{z{d(`LXO`?W4ij?!MqVE3W=eoNTkvn2YRJ)F~ObJ&dtE- zMd#wH-uWDzr$74V&AHyl94jLKS{`BmD`T)nLO*dfH_KQ^sc@M-nC9?r>te%j3y*gU zZjEC2d}g+3X4P2J?EC`bFg_(mnM;dJymW=VM1t%@4@%dqxsf>By=Emxvx6qA@EUzC(t(O@af-k0$Mep6$qK{5-js_`kOYUOJxY5`qD z7&Ads`2^;Q!V1Wh4NPgR-@t_HvFkRJIJLmJP%2Fn-}s4QGQlaZHu6rCXF=F(W$J#u zijj_^)a?8#)tv>lqFe??)_H@j-oUhBI_5pOa5C9(&!z4?*66%nsr~uu;S+qzWu^d+ zv)#s-x=kec1<>}UM`ia)paV(n2p|5c|7(gg;c4O&GaHxIF!PxFsD$ z-N^Bit3}u4;I1&B@KF2+&7`oyHfJ<-svM4={kVkbC}XEf z-UqugpW*Bpf$v-;sP~KDN!-vJ>P(K|jb5$5^GMGN+|PU&%XO!JgB zu(Ss9EyLlYL+|tKXU2NnJh(&mRn4sZ=8a6H%w0QPw;V78ciavMQ@md%)48LQQ3IN-gd{)`)xw+ehOrym8+L- z3XA;ek^D(DAfhqL+mUc?gexW1uL4rY_1=+7uQEXMJRKcj9K-8Dc8G6ZHyfaGsE-zR zc^O`>=0&&ARpB*7jW2E%xYt6Vp=cFFX1L>@{N!VdK|74b>r|zL-cOd1W-<^Kz?K}~ z{WG-Q=?2QQb=3?E2x5f(Qyb*o@A_G{Y=N;&TDe5hILb~!*J*DwK-FlGhhcdl7?&2U zl$NAav7cdT7MTr<9Oxu#i!>Rhjs#~^u{5Xc3{Q6Q39X*}amcAhQL|Uqgq?y|;l|n} z!Nt1Dp}oUlJda&fb4jdA5;GKs_>LaXoGD?zGD&8L+s6s`J_iWi&5w~BQr^oBmt(GN z3DX(juf$Iu_%H0L`yyp^C7WEr2wMy4Zh1gFGKzIn(-oB9n`|`yvF%SSW>v3N z$+mwht>hWRj))0DE!t17F zMG<#ns-J8X4RiJ-)9@w6+i0oa&8%JNR>S_0^XE0I!!aIxIV^w4<9;jB$6bwk ze7&81!K(F7KCrm=$8(4qH6*3^^ANPGC5X%+DJf9R{Y`r-ROVLj2)dIG{To}ha{zU1 zJLE{L`cj(h9SI|K$5%X}aYxz*1EwmdhcquD&}?PfyeS>JE5u^2dCKx>&!+XYBgp5q zqOE9nM7T*^ZKS5Cq+6^SMJlAt#}5re)?bx8nw+pnC7#(U&JZFsW!+ z&Cj2lq+tAck8qw(C1Hv=V#^t^2zml$6ATOzY33)vBlBsmcEIeGanJ=i!E;)z&#Iuv zvQ~&VlKJ7{8DHYc)6U>1R#_gFjXmk)C9~}j^Bxxg15x6N= z(@yQTR6_XUw2F0F(Qo^Gz;!zz9qV#`f!PkmMz{Z*gjU0Ep3{EhF{um9lkRYqj1%<6 ztr=ymb+XXo+l}>a#e@)kMY2UpE;KOjz#9d=b|{bnS6BCkft!mwm5uGtf_kuw(1&iK ztWHWMYX026^JN=Ds8^hK32#Z5lO z?iR_5xYp*Y)2wGOV>(0h&%e#<{L67352eF8ktu_zZx0kcL%^7f&6{SlEEdM3FW#5+ zj>%b>SPTZie?l4~KrF>Ik3Ne!NuedK>arw}zI=v=xTfSc-lZc{VVfK~!eKcg2azX+ z2&eo>A7?CsXT|649F*lSFF8DuSMi%SZo$&%L^~zU2@Nc+7j~+J8je)4LH9(A{mW}# z^%_O^Eb`{IF+U0nQXag|CiBQk9Px~T&;gj#Gr!>0)U1te*?c%89WZ7o&8X62ppRLH+Pj%9fCa;fLgo%GNX+L#Rm(-npbI ze!E?CxmHMMJ=^LYBw2+Jy@mm%nYYMl39UA7qCe_ihQhDq1l9-AvYf-b(MOKHTlbRJ zI_?FULffpPly`*)j!O=03^yNr<-oB>N_8s+E_tn~?o>P1Ouw(i_sYR_w^#e*jGJW8qV?vCjzWpC%y`Q$fJbwm^0lf8diq8M-*?Ts;FW3Uh zr8`^Dr=P~dh?jX#)(+)zz6JKJhcpr8_AW78-z85Iu${<B1;#bM&kQ)Y3r5vAuRNFEFCeE(NW0I|al9_e4|==V7KWise9z_y^$xiM#@IK~g{_`n=;b^2&Fb{!@2xfta9_%^%RT*NXWPVN`A7F^>SUMP@7){Xz;Zp=t;Eu4t)YQaf zI3%NBarekk%Xq1uaEB}qy>tt)^*!Qw5H%HDH9l7oyjctZ@%rt;X+dS*px-@S@!1@_ zrJr+dZ|Y6PamP)(HUX_2Glbwb452e zgAF%~=vO;txN=L8H9RKGwy&rxRd|akGOOdP!JKtZlHv-ursqOsiV`@xkchjDn|LRG zz+rdRWJFo6uk9g!Sy|ay573X(!6{*G>c-18KwkXvG@ny5=+DSeUL2)df(<)?!ilYf zro}fm2bL7-f|Ava>v@kM*KH)K=B0{rp=xsfECavod$aYFEndQ1l`(U#&Oad!~)MT#FD^V9$=+*%D&4}~}1RcdVK14Z5ob`QY=Y|xx~&3ap3q{y==x&M_| z&y7GY&ZUsoCXm+&c&hKS3Edd+?UrU7x;UpdMr$;iSaeqb_tKH9+fga@C$~qkH65etqm+9qvm-qHlG&NiW^*MF_Yu?m;km z#{43gBaIa+QWQDTfoRBGKu1AMv+`Ii7^D?XcZ0hF6 z4ye=Hl`v7ox346&sS=X-o*i&4a$QM4Lf!`Du#Y0Q2c$`%a&$TMtD@$__iD){&J=WmBdR99<Oo?i>5A33Hzi;Yal$I%+ICyh4pBW^KMzE~eDo9jdKtiD>C%?0x1Y z;a(y;MX~jHYgPwJq2y;`02)UL4+efp13U!-%82fz4M=SbxM=viY&jql^fXW5wyS=H zbfqnNn|+9>tn9N;WrXnS^6mBVrt45BafIA2?!NmH_`FT=x_!s5EOd+eUrQz}v3G8eB1rUQk0F`jv@ zWEN|0FgCBrSZD^=0?z;xyW#BqRQGFc7#n^)hkiYg6pzUi+mQiBk>2mOY{0T{dnDj& z#JdmG=$F98^{0!D)0)s&{{JC}>`R<;YwqPOA^ne}1klAf=(5cyOM99Z8|-b^j~w?6 zCml8|Q0(Ur45B!xWwb8qbDma1W-i79I9CTwv9ctRY;NHY$?Rq%;?uS8Vs9`vM6c)R zsL1~~*RSnmS7hou@V55h$LLX~>=IZhHG=anN*?Z*|1joog;4uJ}&E#-Jq zctj+#gp`XB*5|Hsp(;hq1&*%zrpX|L`lj2h@sFEyycba6YL0ougfc$u?8TB&L{+v{ znlzZ}IQq9lFIR&D->Zb*X=AKfW^puF*^@tAib`DlLZAZ?e;ZRB$hD_NhrRD;KN4da zK@cyefHB-X&sqt_w>1up9}ZEPl&Tj!^m&-(<41@?JrGjhl>ILfy%!YFFxGAfA;h66 zK_eqLr3w-x2yu@jT1Z%f;HJ-@NLc0 zIx3NJa8&>6ouLHm;w|~_HzqZdsD|PW=0hV)|L`b4`){)7j=K%Y)h}Il8$}+{8n?nG z24dnkfK#e_a;vX#uDa>@->tqGP;POwzRgpk2PW><8q*niw7$n8iik^wf$x z^z>N3q|nGTH1!{4Z&9b{)Gk^B^gC{Uv}ALYl9f<2Kee=u&)&QdjW2M6B+anRCVJx$ zEl7*eK7KZh592P&^O@%Pv?1qwDWoiT4WBe%N>5Ku2tcB8c6XOV3VvTc>Wyl#u>MGb_(=wcQr=dMlxH1A!EnVY+v6Fo zFU`GCCNnL+S~hdc@~?A;%%Z6eOUghzeYR>A|LqsY?%ca8rgnTMyv-l^%= zv+2Km7y(Hm6oJ{j(9Yi7P>N^Dyr=mx@42jv!MxYwyuU|9iGNFZyQ5Q6Q)gqE-WMGC z@?)IabqSk|lJY;$^%wVw%0F&x4uQprS*juKI)^(ImE4NzsWhq}+Kt7BnUX#xkXA9g z;a5s99)oMz53LX<;-*=mWm;*F%R7tPhMwGv{O`kXar1%l>z=arrQhZ_`^z8pcWt=V zf1kPC^PD*FJ#|lXZrrj3JVXZmpm^@1*z4>$?exB_GM@Y|1*MPEirlJ;4E^`H3DR{7 zcG}PD-A3n9486d2DZTbFC@6Tc^`$TdhuWU_jCZ27&hu^iO0Kc1EptW&casBF%xVi_ zTZ|-~7`-DMo28i-YE8vPKuD}fg$(1i&0`x^NhCiQ!zQ25O1Nqm8a13qsQ)>!g#9`- zy5|R}`Co-n?A_$OJ>MM=#3J;*XTkxew>zhsQRM(v=JmkGj6fm)np40{me2aB(a7>L zQSVb#?^vYBKdNeuL(fO}@ael9!ME?z##aO$Lv-txJvkep(w2jWmjkJa0tZ|WJe{n` zbs9{6nh4pLb}o%CEZWRw3au|yHsRF6hzNt2va4TB?yhrcz2HnK?^^S{t0^SeG*?frKT!Msbx=joD zZ=)K+Y$33F!`6BaF+V(vh~$dxBUaA*R|#G2J$YzuhdH-@e(s>olT zS&3x*7p4T=M^b_hTcPjKVQkvCeD(WtqVp#39t*HHN}spp+R^^FC0G-a3RaGjfXn&Y zcCTt6t)R4uHY)cYr2WX8Tzj&Q2i|+> z4tC3o`{%_%?0o@<=$L|%nh09gyr}9>T3(-z3i^|sEBNl!k>f}?AzmR)wm)TVa$(I> z$f{(b28{ziJZ=3{3~`$9#yEv4i+p%&bk_c>6kXbH9s7FJ0&;BB{jTlyt5l;cLN50K zc5d`|i_|^uOsnc%&)!tK94Ky?&EN7Ma4WvH`^){SvClZ^M+&z#k6R)kC!hP3Pf^yV ztjfUEZh96A(Fd6NAz`ORYliV6{8_0+9r7YjDFX_8_(JBpj=$6_U<(ap&$~BP1&!zm z$rO#|J8Ej0Dl+$BnU%{<64B=c5HK(1gZP}(eWM{#Xg~UO*6J>Uf^M3+b)^C=N1%cG ztp0m|yn`YN=)a@4Hx12y`wfDZ#GJpRC={gDwYhoHTUH9XXCR@_Aq76)q23Z5@=(|I zV=*LF7(hI0#!-T!rX=I!Zr%%0ZF}!li5Cz76~&4yg<6$*N(aPfa}q=N*}~`hKf9R( z`@e^0#4Wd#okvOPx_kqX$wo+G=$bhnjD~##zwZ8b{c@T&dZ8z!ri8Zp?Av;-1yf7? zw`#BMkrqy4>=k~s?>Zj~xjJ-$WFc*-({eUb1@3azQ?8(@myWduN>~S({x#A*E1;2$ zS$VV>C);X^;h6i}uZjzFeQL6hZm-xc)g44lz@H;IL~pm>x1iHEQLO9QfQv(XuoA}% z4BW`^ATqBj$@yB#=^d(O4PZoxciLTBu*^xFvi2h!3`>kDWZ`50=(ANeH#_81yfXMsf4pBM~sfXlYVZ_^rcD-DZN%zY#1cjslc*OoydSEj^U=k^~Jg2w&cEm20C7T^J12IyKL#%AT*%V zk_QbB6ghT>mYtaweeCeg1^qc~UmecO`$TpYHpc(atr|HtqrrEGz0SbUi70$bsipAu z%ZS=kVWV_`q8JLE^6PHko+f(>k$XK9&W<%pF}xmC%?+{Aq@Do@>zyBHjOf?RO!CYI zK$)!Xwl(5~&YC0~9K|2LCkneHzPu@W(1<4H90pj;B4a#hZ1!~1)zFL$gYqTpjw4Th#7u+(>+g%ek%4k_K2A`c56ZCaPtYj@`9zEc?(Mu}rE< zO162v5Em@xf1l;wq}FGCU15HUug<*}B66E#%4XGZf)Ik=4Sv7`uaPCn`fY2|hm*YL zEQN|A0HwQtTHsdHX~h=r zkq6bmAzBFi%xsH!dE4ezo1TsT2GP0!BRAooZ(cdqU^4crpTF#Y&vYIf%HMSWfWd+C5T ztVMij{UhhKNB^?h?G<{cXOZm&t2Rzk?9}Vj9By#7!1YQh-99AtZ-L(npS!YTRo(iS zXQ)oGe|A_Wv$WKJMa(8nfA3&t5)ps`!Ul~EcfY&*)-FPCX)Zo}Jn=z^lseb9bdIjh zleilbJh+Zan6le=S^wZf2=VjcJF>}7zeE}oa#j{E6#{TInSA2##vey0)tPyq^CImx zF^JZ}ztoSiINmSR*H_WDin!`A8MVFAWUZ2N~SZMr?n)p;K3;AHMh zbkLha{>Rz(`x~#WjV=?`_jQI;RNM$^I?V!ks$LQ0#N~rA;VewAZ;9pFb*&A-Zc!`< zaah@`ZhT$@AGMJfeN#kJ*1TsTMGe6P=cQW)(ai`9igVs7P-HijO9MrgUvt+CQ!Xby zuS!$OIkyGGJ<6gLz#k_cj&qxX!diHCbLgpP!s}z#v{-m_3zCqSK8VlX(tSl-=bAd)0r2@v z!wdz;Aso6LdH&ZpT{}{l86u~4)&MRlF*I}znkIQJupT+U+`~N#g1Cz9cXit?`9HSed(yf0ygvP!61i`p@Y8E$%~{jskJWS9niXeVn9(IP zRo7A*d1Uaf4r~Bf$neq`?njT@%8vhN;G3Sy4<*qY+C|pjR&RTh76Vab0T6>wgO+aZb4wGLXL4 zm|H;9JbxqP0YaXCQRcmI9d18Ckaq~Llo+rPfmVE}f-*knLtaIY_Xnd1!h*jKfz3@Z zu@BZFTK`rW#XNP)Q?kVKY>(h1pG>!RCq*Tl*>a!EjR;`T)ZC7N1E6-@hi$QA-hp`i z=lgg}J1^%$5;ZF)0p!~8OZ4_v_3ibW>WjoZMvJ-q%V=XMGytwa*SrQehk66ECPd_S-?R=Jz0)&XD>2>X{TUYbA0vg<2L~zn`53G347BCo0|oF z`qjVtBCOLLZ_o;%Z)G+ozg%@y9GGV4J{P12WLVP= zlE^>O%6gr96RKhS3McFd&+Y$M4EF5t*PrXxfr+l+qi>N*_6%uMxsnX1k@wsj-eW_q zsH-$%s@mL&n3a>rRYjWmGj#eS24w$fWhM7IKf|XpgmC8GPr6tY%f0#^C`8EHmw?(DcSvnR> z-UR~>cAu(5nzc(;SE6#xAY9x2zX6V22kQ)mDr^ZWkiL+GOa}A4-J|-cUtu)}#{vw3ZKDq%>}N_*Uru+if@rNEWFFt0(@$T))vkXuT08+NPc4!&8u|YOz!DXj8?f15U za72Ks-6bKhIEW|S0Oz@5A-#278<#p}|AbhcxpI=YC`^$|uRrkt6Ek?h_9yDZ>aexM z1-I7CtB*usz1qjkf12=k?jPA3OAEW-n4w(=REEAyzGdrjEZOLXEE&oTjn> zD^>ewB9CQ()4L zx9MHh%g&?gFC&2KnK)gQBq-s`*2@T}#O0WO@C|iKD6N>)YmFD^+`$QTq;1m!uJ)$y z9`=$0P_r8~n&|;xW;N`w!U?`wRisxmJYK=u3a^Hlten>^!)N__`wQ0KI~aU+7V$;T zX4LN6vv=dQk@n=7dDaM-S3|oQ%{@T;>v~xX#$iODSAML`BMfivu24RUbtHG@5BTtY zC^5j5&qm!3q{R>|czZPBbENNfBL@Dx&2E8`IoxP~E2+xB72a&mV^`S$J8FpDEdRyY z*u7v*f*sFe)ysY>X~`yM<+J0r+K+j=J2!0&Q!O0u>CtNm5`*1|Vte14NoP6vB{Cv0 zqj;!a}I(2TS84hfp zHHXguac!yLj7uHFhe=VA3hXop+!h((lhIrtw5uNu4#CBFZzN0Uqcl_eOD}k9bt#w_ zdjAxHL1EOIEoq1?_9L2w*WAs@9_^vcb{Jv>nth*SG)C8F%+VNg8J3fLP(fwu=ClYb;CvmLJ9 ztXS`UwLcEqzDYBxbNK^$N%&rk4#VhpK z2FhfyrH?P@Y#P7ado^oO!~W^DpOrJ_?1JqKxgcXDz{~&RX>ezix~*8gx>Yy1PY^98 zhJJ>Hk3)Izm5AdjYGTOnzSOOqK5qG7a7LLmKim3d*Y2}6LnaBTOS`m zaSro^h)GlM_V6u1E$4i&&qLX_40huYr0q{}Pf}VlrPShMfIzRW+JPF@!TKYlY(d@+ z?XOMQZzi6wp_eu9^G>l0+xe^BU6Q*9j+1^bX7fo*GNgsS-lFFKbQFGMh zeY85GOya5Fm9NnIwC6QzP%n=lc(fZ{IZA(g0l>PiRXu;QDXt=p=L_DF4eaRlW2v91V7gNt3iqxK`#Cv-mB|f8xG;_Xf#F zk+8as#5RlKwDIb~>0PGsqnbK`sV5DbKHx8gUkSD%mYJpa1TRk#7)7AI^bzYEpqU|$ zjXV}0mVBK@@H&y=u)xVf(0LJHy-wHoxgD6yAQ45bn%Uso-Oo|LK&oeaR{ZT2Q@vh< zh)YPDNZV3_WXWac9dvnle-{fd9$x0*Qf(9xf-PD56U~iphuXv%&4CSEbcU}UUA#Qv zX(_LS5Y9tl*;3j=JqS-_gl?H8l(3Y2g!{GV#TArKx^KVAM4)jM!fVd}A2~ zk8~%RHoy3h-?WMIJS_Qa+;7ZY2$7*XusV3IkXdNzW2sBhWZ3E3i4qW|LA{uBR^xOJ zTYir)9vE2^3`l9q*9!~KmclcdG)YB|q%k)^NXfvm93~E8DemNBnRTsRmBS4J&ZKT& zsE|&1*>2a5^P%@gv$`88U)(y#PqU-+yKe(Bpl6fB0;cskrWp+T6VW(_lR`s-*wn%R z*YX>P`rRtgu0*Fg;fr1YXqYhSo1`FzbjlH02I+_VsAvZ_mnTxIC_=slm{cOs7u$va z36G^drTz92{fvD^CHm^&8CP#(3uZ6KuTXE9gS|2m2?A|-z zxOY`qh0Bn^DaifBsoJxGUR8+ubT%jB=pa z{}(d$ha&`d?X(mec4CjW8TS96o_wp@#z-c{-E=4aAxh^GQiiqg53_huq2GqJKwiyr zjv*8)bdFJcaiWqWOlJ$ZW3+cPPfzjkt+rcaF?5wsB0{nyqL}lOZ;riE_)U+ZnH-I3 zJFnXJlvO^7 z{=?gGdN+b>NEJ-&ZUKz`jYED_B0EBqmp}Xu&dEsS*`9EGJ5?7huV{k2`b@v{xmBKA zOI((+XzOU3BeNj`$O9kMuudh(&~QS?1VpzcOn{#2+7X4!cKCL~&!HcsdXyxF1SK z*ClB&0cOqo;#Fa+>4a5Y&sr<(AwTkM1Q~ssJT*Mld*t?$en?hp5dw6;3HqCT0o?ww zzx_->7(sv58U0RQdjF;i*j~Q;A~7Dv=(=uh6!J$nWdHwqI?J%OnyzhQg&>9CQrw|9 zMT&bN1h?YcNGVQ{;_eXKy?AkV_u}prio1J(FFeP4eE*X@*^@QbTx;)juKAw3*H0!` z>5@~+mN1W%b1M87FfL=_;f( z8~>g!H%c}{LsigSyi(f!Cc1ozE+0I2U$f&S-q2!XCYR>=t&&@}dp;Q@x}y&>t1qY2 zK)%nY22#Vw>1I$+rq9fNmnAFlO?CRmKPwlgm3r_0BKpLVEHZok#-`l*Zc(@s?-$oH(K=#Pr zW~Fv`3ObPgUGaQ<9RXdpfRgQ}d6YV*CgTv?Y@fMdw{z+C%~D^X3`N{$(dRymNc)9O zpO{_u6OT%TEABz535S{E2NCacvw8}f61M%SBZnG~8s4dhe{!V!?%dz1#HF^ps2MS- zxQMp-2`6=+dKw)%$JI|`O6L%oIM@sWbckX3@6dIHELs_>tSoyK=W<`-3^U;#>Ns^^ z#syVN;XSj&T2cQVZe3;;dmW}jCL5J5`fcj>oIAX_(9}N78Ap}mBD8NGN_UZqi+{K2 zc(){=nPGHG^8QiImDOgU!Np9ElcI=`fF9SWgz6kP0s5hw^h*!2(vad(a5&PG4*2KC zl)`IjDzyVr`L7>#QN49PPF&UAnbel^&AVq%AsD2umtSi|+9>1N4KG`tQKInO96H~b z3R)VV`xM2gDN9D73>zo+&?|>PS!GJEg^EJ~z?vF1sW=reYMhAQKm>DiYw0h{`CU56 z!_c}iRnrCuSMAX&*4^`HR{yY*ncX5mtd1|%TnR?Gy0p4OP4h_NyM`2MGv?qh&QJJ!T){|9L?%*48Jhz@3WS_Pk{KP&Og#L> zbgEo;9;fVwnz95QHcP1kw+ZL0pTa%@dn>U{I`9o{r{-&iECg`z;p0!EeR(B_#wK-P zz*r~^AS{L?Pz;n9qX!lcWZj>&oMTmnY@$MwwhTL;XxUm4;>OA) zrEnZ9MHXoXLa&OYXH60FxftJJ%Vl9vjT-OjA=?A15ed~&my=A-ZIa+`4F>Q15y!6eHqm&VC@+1U&)#XT4gi{Gx9YobzE24Ka!Rt;I(_6%znICAUbSCS}C+qs&yRQ6>qi>mA zZz7xO>S=Y@wyV6|eC6eH?SA*k^sI=t-?B_J_N9;{pxcOJyLu}+r#=|KK>maY{LmaJ zo3GvnRT`ccpyM03^4UkerKd|(!7HHQ4zFQ}ozCBHR%{UI#yLSHe_k#9pyyOD3*oi( zN5kJ$@5So)1*xxhuQl_YJF`!_gdSCs>*IRy{{b>%`~LwMwSJO`+)(ggb~7Mpe$Ql( zz8~aTg=kSOi)fNktvZhk3|+T4jjK66*V2_mZ;+!39ZwNpoj_3`MY3* ze4vztpe|E}212Jp{=~~Y@?xk(lFE&A#;m0uPhHwj1Y!cWMonM?7kSKb!YsF;mU8R4 z$&aYpBA$((@=9s9zw-0zvWWDIDbTWNatY)e(uYTnI?jbCfLlX=_A(~rVPk)1a`Pe# z-iE6A%}j=g5HN!vqX|%>gEg37KwbB{2W48zj!QM-g?c)NjaqP&QYXRL4L|Plxtqj_ zrU8#o&G(0$r)8OyZ{C8wTAYw?+QE*P;>_|q^pZnJIhu+LUypt?P=2ue>q$8<*%l49 zE99gPNjXo77$T1iRYlt)75K23(c9_|UGwa=B80j)1fHx?qRV2pyjEU8j~=)!M8+?A z%@KNqq3?5P*d>PZk01a2_~u8`R*R2ULmRBj`6?5r{yn}ZB_$ytzCCbb@-J4xxSR2{ zT#U0Nqc|h7Tktg69-6UiD7&f|J|`7-;%9E*GRG9jr`#B?IvFolt)fy2PvOq2jiO$G z*mIIP@rK-u+`QH0APyU82F)rQW26GJVV^DB(==uNbOej_72@Wx8jJ$k9AjSWJb6R% zMz(uSV{nIb*521W;@z~1KI(kh8CXeBn+GWkea8JiD-H)Ns_TxZG!2gq!VAX60L+^W ztIO^iej0!44*{t{_j)WnKUqq?AQSLtb<26%ryGvWCpJ=>Me&jxAs|K1lAPfTi9=${ zK8r{>;6B`nzBX#cDEI=ySw8Uo#+La=KZ8I;?eFWH^wqgi)}mw|YMFJ>hNqKVH6aFZQMQH2x)noeC)D zo%-fGAAYe;zMK-Mh%IIn2Gl71O@@1nxpLR`jY8BFxBdvtE26?|uH$@?XNCsGl<`h2 zY(Y4tT5T;_Zvzy^zO*`d&=ctoflcBDo3Nhgn*6C-Q>M%+dr~qOUxTLOyZf{=4@d-a=3I~xpK0kZ>o4mb`%y{Ks|zN=M}R*6GX zZ*=?dJkwnKiXBaWUjpi9kL%Oa8Ym;Z%DZCozNEU67vtF*vq7Z2&!-=t=vpOReUjYp|0 z{j0;*F+NkVr?mI)F7L$rcjK}Hkf!96+N8m<)@B!1ZFsa5XHO^)$4Vc^l!<9Lj%5O{ zj-4lork%Rqfm!ps=X&0=myaZXUBGSqnU4Aoq}xp?E7dd&MV_&7>7i%L)OZz|TbYKE zeZlwW8s{;Z1e6FOY90@$96Z3Pv4I3TK6T%{TUsXZjw&VAed>^JNljB=+l6X0QY$0n zs0{xy&99>a`Cc8==8vEAYNSPV-Y~JX$`*K^=l3C|a&EgNy^K2q#=NhHcg}(e%ZxDp zW83Yacd2)6v{vFuC)mFo7*9B@53q-ct@-f&BvyU7;#9HTQNf2()a5b0SLqT^JgVK; z6V4tD$kH=3g~fzJ)@+x41e@z!fmLb(Fot>Xv%EGQP*_@pR*2Djh+7hnHA*x*t(s(} zLAb)+b@G~y_>1ho8W=0GFX{Coft>rrjx#7 zpZmSk#7Cu8Gb`#Y?0vr*&iZt>;NL-R9*0iuA&0fUG~va6Si^AoX~HF0HO4$xRtilT zKwgg13i>@6MQH>^>-wBbnUp>}J(&<7Lye=W7%Ra=grWLht7Gvb-N=Q?Cwc^9O(SzO z9f5B@TMx^NS0p9pzbe_G`j@#_D>D&o~OtpXbPneNO16Z7e7@AH} zV(IYff}Q|5f>Mzmx`j>JSy-~OG96rH1(YKt%Z_Ja-!qiD4&AbH>TOL~MjRmXa(M$u z84G+`&lMjx4=JW3O1~@93KnU!R=8wY{NJMT6g(8JE!sQYON~1o-<*`DIi+KT{K}UA z1>K?2YxnsBam!t@%o101fZoqqY=j04h%U6pvTU+}?#Tv7^FDKat`Cn0%=C>e#njwPGAG%_#V{{|_Lr=N8 znZgvF-BM(mUHFys;TbTE(C_-a%ox>|!jB{g=Gg02z+rp*U!n%!LW*{Iw~m4YpDPyD z=R+H0%t2IGc*(rKn_*`^_f6I4xQIz-K(OI>x0U{%d)Z(rp3zad6-pT4yTn%3qASa} zpcux2QYU9I)N}Z@yCw%6=cIyRURFdZ`mk7P3;W_knco;DpLDD)SCy9+w>vYj7>RL9 zECZp4jy={-sbF_T-Q}K@n-Q~8>fi6Ti59#!++Q$K&(t(+{7%ex4~oASnnk7jK^d7Y zXmO0!5PC;$#+5*9R3~NCYZRlhD3*1AR$Tx1ZwfYbc??1y0zo8t0OaPJx-fg82^=sa z2^Fs=xz+krwDMao-T@Emh8r?rW<0Hpm$|`}t5URUb~6{T(gOXXd&UoXcRTV7ZOVc5 z!DX{$R+ejCUiURD@B70AE^?)*2jtWt`*kg%_YH3C32{Pvc+x{AST7rTH?tWRMz^*tiRdY-G2IdLY2ThV#Zx&XA+5 zvzz-nv)qYy?@zuKs=K1vG-^7z_panq)K4NHWv~AAZ1U4g>q(NUMUM_lnEpv8;d=!v zm8sS#A0`rKR0!p)53vkzNs>fqPzF`EHY%JqFsILi^>b+YFUvR{P|Gx=;F}{gCGsAb zVC$nly8rVa)(_=e!fdI}JG9ZN)o2u{RIg`6QDqLrJfj)^oB$Hu1i-R~x%qPLwpvnt zdpIhKy4HjecSON{H#ij4n$}hYK&%i&%wF$dOc-kAdjh`nQ9qf}EBQyo-k%GpUt!PC zAGobM6#hE$5}X8(MG zN6%)eGG&`maD9)^9&5nUkhs#zrFHFrE!03buALzXJPbaWKB5#nI_jh*O0_vx{UWaW zoaFx6tm{=N<|rwt=vm~m(h7V^89948DS1YhrDuvpuChz$`%mDL2(8Ye!R2r6d`%4? za?-A+E>j`xxAj$rvebZSeT%$Eu+vTW1HR7ZY$Tx7Kdd80Qfo~DFF1UgaV`U0I?Ful zqjD(7*0C+q;qQmnOmk8dp_}tpDa&}3q<0N0vDAMhOa+!`TtjZ)%kgx=q{J9$>A54> z+bb(u5%Y0Bl(QG*)rTz=Z7q<%F!4e_f41the@ktjZp{qA7O|=8NC!G*OI{(8WPZ#eOrfUItug)! z4W!(pwlP>TFnAWE4wl3zaDF%c^)7(IP0<)L65)(yT@Vs`Pf1B1Vj%0+s3y@oc1vi` z8_Y)Xr|`Caf&Qt@vO#+4a`(X|YWwiDy}dpRrue~O>#QSLjeC0+XZ3q6Lf(;X1}cOK zW74Eee|Z9b4>4czYk6(0~p}@=BWc=fI3|QGIlpOSCK@vf6;SL>K=79~5vRI&5^OST1(82YMelg&_m&`9`>LYcDMfS_Okff z(M!_@pvJF4Iz;#+orPup6O<6#ZPZnlLTxPvi2C_UUdJj{)ug;scAN`HayIjB*1I_- zTxg{9a#p*l*%qtpxFN9NsqM3zLkF6{wUDFtn;}#}7j=z3(jJUdq+3`Mp?ze5E?-A- zYR*|OHIiZXL5ZUWWzDL_=|_n!v+|r1C3_csIwQEBV>8j3Y42}7bjVQE3bsd{(dx&ynGorF|y8&6J$Ujt0yaA~KFs^v9!`o`u6r`eg zIuhWbROZI8!Q2JO;W|5dx3sjb|9=Y#lT2h0eX;5f^~uVf{@4b=OUuruCjTDN|E?~z zXw;)rkYwgv$hxy7s&nii=w>kpBJr;RVEsKb%Vu*IH$04hz*#&0IQ9IV6YA|*Ip zQ>H>P%#obLLGg|Oh*w~{C7R=EeBTHg`p~EY9Gyx**ZnR%(gQOHbEz0FJLrT}GRJ~K z^CYP&_2-giI+W$s?1)4sL~mou>#mwHsk)4|=IpL!OaN=tWZkiK4stb63>fNk9#xaL zy6@|uQKoNn18)Ps14Ow>w^ZbM*3mF zS%fxSJ*T7P_|VFoHq%o@wMQkZ->JXS^j5a>MkD+FVhGW+cN_axZmgabyD^W4vOTFF ztvPiERPM17fM}7!AJdLhM8I35(SOcTyffut4l)=_}}la1=pm1!;iNNgsbb&*!MAF=SO^! z!3Av~ZLXw@uaRbdb(py#@LVDk?)|BXcYJcf;|OAEXlVE*a&&*OWo>O8W2Sv|ABM}o zF;K-xN}p5SMXzLSSKHhy2l=t<1&>K45NO$cX3F&+SL&y$yeWVQ`0CY3z)T>M_Z2Hd zvWCS)sI!>n)G2fRWt9NcRiyWC} zp{}}=N7UJFY>eCZlZ14{XDiRO4h*E*B(LYp- zS?vNvGei$5_=7GWha;7WS{Vej_PbKXllHfHZ&WS`;Mo#l@O z;Cfv>$p8B9>fyRbQ~?tEh1@Oh4c{}%!;OujC`&ciQC}f_5iEiV5fRF#@F%g!~Io!tcsY@!D-t`QXii14* zVT$5e{M*FJt1n~>-*t>87aoQUArFa#0f@;AFkJ2U_}Kn$AF9a9MfBCU zOGi8|gCguEXs#CweS`%C1=};FUrW8mMPL7g+p&$0O|ju_YXli7u&yM^B33V0_J}O*d&GC0orQRy~@aw}XDl)5@&S+TK3qSlO9X z>3viB_G7Qc_^whXJcAqCc3AbiA9i38Ys$5`Kb0r+e4w=VdBRN*=loFTfADbj^HO&I z=P!`hwKaX)mIHe7yQaY(|L%XVwH|Y^H9-;n2iIVE?Mt@3KA$O_)FxJnW-2z{E?c>+ zZjlcTioX1K<3oNd=(}*Hf)|&THVfFjn6jUb&6{6eo|+$a(}^Qx{#}W_a+_y56Ttbr z?D>q37~FCN0>MRUQDlMx3!N{{B9Bwi<9)c^z+N3e!rjIveJ6!=+jP@xrWFRyEAJ%K zqqd`iC(@;`8>cOdE6hYSR2jCb?x$0iSPRj-Q9VBqC*mdhz*=&Rp^Q6nD|876#Kk36 zwSYgB_d6Yttu_5j8-geB?QtEJ-nlg}4H$>W?iBp72=>S>lK00Bk!f(F$Gt;xribk} z?#6bv^V8&dAXYn~&_X2F!qnE{^lJUU%KG{)45r+wXg#$QIVvfw_-keOL}I30)7UsD ze7D;B7LEEYYyFPdPkOLbO7h+fHiMWHBBS3w8Qa;}?N%puTojGl_2LJF>`kZ&8 zG~cazJRHE{{Tr*n!>|??d9>T0;JP2sKQi+Dz}Amz^ zbL@i#dJ2JbmDbKp+Ffcyh51~wboZFr&?L*@>#2uXmGMTt z<+I3VIO;h~N$Yvt%n2Q7PyBs6szgz3J+kMw_O$eEZx{C7bMZ#;^?5AvL4d-d*z<8F zJL}@4_0IWWC;6&a$qUVwu=BpZ4Msa7LdONqwr^ML_Bx(UO{}aU#>S9<_9Lu~=V~y5 zZtMs)zE3(|`+-8+7TFmzPM%G!N#_+gN94!fzUljZGMClrPaaj)xD!uVd+mGFHhfA} zl{Jk77IPY_ffYQHjmTI2HW8S=q#ZbvR?Z^mkiM+C;(WVyts|zCW+rZ&r;*B~Q*B|B z*C^&-9iVNDO=U@D8L63%-*!_3V1J+uSp5~L=vIPNYwl%beO|wYuV- zE6zRbarqb5(5xf+0$VRvZ2>yy~`>`41+D=x~IFo}8W6@|}H>Si*hl>*VY(01jsA zxYMDiO0Ebl>uwC3GHjjy91LDAlM(Iv@wLuFeC|UOpe45_%YL;}-}`jeFA3mm+ix^G zE)y$1p(uI%^1Sb**kymcWPgb0)HbbPf`cQVcsnEDK4SMG+UwY)?JD!k`sH=~u4C{G zAbdGJdx`QmZ4N+BVcpZVINr9vI$Tk9`BFOItGLsp;{*qzByPRno%Mf6_Ww)6St`bCt> z`NM=yM_9}P%D52+w7$}dwbJXviWoDb4ThN8RGfS?d;s+yB%MxqOmJsEfMH_6esTqW z*0dERb-lRcJK^(k^(LooZ)Eou(MJ`7>s-Q%0ltpdw|O05@60$kv4IUtiW~rsC43Fc zep=nTzo2;i0b2_~n56t&5eC=PFZcMnFMdS1q7 zO98sy6rCmzIOmmux#3O?@T=MsWJFa(KkLD4 z&hrY>Kj??Ir8)|A&Cr4{$j@X~O}ST1tz+l*Im`pOEk25Z2*LN-HgIRsu@bp!o_Ir015qeEV zQisX$2Xl9&SwH^>3Fq$E*hgb+IwcX&!M4uja`_%k#H>XJGLz^JOU_!-r7Uh)tuyAi zt;QdmPkp3p$*E#EGn2lP5o7XIjTZ)U2&t+zkL1R!FoE9N_mjg&)`j_k?EP&zj4|*qcqr zkql{iI&FO;lqX=WfbPxE&d(FX4+ScD{>66StefK-UPZH!3(BY4jv=fdU&nI?{>u!7S_6G&Y2^bNZ~Gp%uP)4!umvE*3f!%=V!PaXox}dLC*VR!8>xruCrY`c{#aa zaLGKoeUjmM&hU9Ib+7Yb%x-rK26v12{nih=4c48$Zd`L{qt9dBA_E{iY~m^i9|D0+~QX-elmo3Qh6 zAjsdv+SZ2iGz@N>dr-4nNJn!+7p3$~_F%m^zC@93Hmulgop1KO>FUm#3ov}WFH1@3%J0Fj$ z0wR+%1;#+i5w16*y0U)DD*-q@J-tNnIY$}ub2wh)j3WKq^VWt3=KVe2{FuXvO(Q2s zWE!YJXu@qjC#30SUN`+(y`3Bu3vX2X-#@W5|JGr>V!%ABZGVoLi?bdnE$kW|;mRUB z9{-(~9Tc4HO=j`&*>$pfbV$`Q!jCI&J~!GAxG_-w>c||#y#{x&TC=^sw6?NUW@Qk; ziCfeUe^$}kIg*&aVDHTwZo?}hJY zUo-bU&kT{niqNUJ{@_V}?vLyoIVF5W&nuHshZPtFp?=)y)v5w4!-or~cC@y(R^mCi zxHQV8&-Hpt+}`r)>gvMgVEnskfw~%VOMQKiW7LJ~Dj*Q(FByW#b4Mg$#Fd(Vy98R9 z6LI$%b0+VYkAZ#VDV!@j7j{(6z`#IC+D&Wh*2>p~t`sDM4RO9b9f{b!4%fd~G~ zKlR`FS~WzeC%fq@Yy3qy-x81b@#X6y+}1;U6t9nMv!VaY+fhGG(4hq=BNuSfZ=upt zh#?iwsxnJJikVmhz#Xw5O{->&V6c40Q`c*Mq7wOeLN8Wc;`CyTsmT>w{1B0bbcD@k z>0%5jYJ}+MFfVoH8EOqd9&WG1%Qz$yp848&6hGP8nFfTxXT5 zJWi--Xk%^7L5gX9T3$|eWTl%>N``^#SYO47YyyrK(47^UCT#s$aFAcQY^8G5+on3E zvG>?9EY zFRTtOL7m^6Qzw8J*w&wNzRXa4N3 z-aMHs@>PWdsq7JoOC2J6w+Od3^BvGHE1mjyLHbEQwF`dzm$;A_e%8V`!!exvVOQ??)SE&#?TTD*q9QTp-iGI(-Nz_vE1t7>A!+V_8$Pn-Z@o zxlJ=?tN5G#lTU_XP{&Zme%-k|xBaQ2aYE;7Shl+y)Iqzp7i{?IA6iApX~~AxHOBp9 zetwrEHALuaoCz}gSA*7g>ax~8AX4kKkv8fmm|H|@hdUd}AbJ;R9l=mrtK|#E>#7b% zp^Fe;K$6cY`c&@{<;l?}7~=R&#UfA{fIX#}BbDz2>$RlPw;f+p7~f}vV92||f}%x_r_4LpeU+~|kIqTyGDq8Qf0Muj)=1MUm%>s9PoPNd{vhPcQt zCu})iBF5pkO(QV~jujb5E`gWdYREBwQJB*`KjEG+Y#ztVpP9WdJ^_SYUEDUij#7tY z<`4?MhoEE56w8L+?-Zvq4QGSFkP8qgKW17yZN7=Pf zL^?T_MfuTO+r0cb+F|>xgL~lx!s{^oGS(_P`Ta7&Q8fANOqk}!!4W~ZT2WedS}R+4 z(xi*QnP73w?VV=8%UosYS@YT+;ZbuMT;9#yF%`d$ZFV}g)#65l;AB10?ODLCfUS~wz$wS?u z+BoXc*AiDd8XJykfE%f6i{FWcP zG5L)nt<@&7+vZav5apG97DoUNFi|SL=1x^3bx#Cow_}SrT{!1OzBaP0a zvCHw+QT&z0s5vFH!73VtjpdgsLjnYhnb-l+a_8&V@OgCO+HEceKl3d+Mjm;c+pDPD zAw#h^pra4={X!!jzUPW(sp+762N$L$sg=12S$Wg6J>lr^ z&9n=jF0konL=ZS{j^?ePl9Ur%66gHMqpSt$wFU=)nA0*AN)?x^ZtKmd_kb?OR7{IrTV>N)Os%wJHl0aK=FUDyc#`^=NL zeygVZhV2GLJbz&K8G|4p9mXqgg7{8^Ric({y{KkHXoBQAlYTu;_lQ^@gE0NkY zLKT@psOFFYb^?^T)%zHXOGqwDC}&(c#*wg;pSnL35hR~4n-t{2Mn&}C3&|3rUtxj3M3xc~xr*$s6#B>cp;j?{)OZwb53wgn zHZw1uzAup9xCR33(rll16X{!yW1;xZM%)5%Ybb2CO%wHlt1+Gild1SQ9jK_S9!t%1 zZk5_Mcd@vGQD48RJ4u>3w%&vqt*5SJ9F+mx`uv`fgPx4}hsX5nri`I-0-d&qEYumq z$KYa_fu(WvPi{lbLK;FxoggbriL8`Q@Xzu>334G4vxAsXZ>k+!Z}!-eNrNVLzBMeR z*yHT*o&{tk1wYtW#K;szJ$FOck7t8XGyES(dG!uvz$Q>v(+W5^Mk1R!%@n4km|Nc` z0PQ0xaGnkoWLWqmvsK0;p^+Gdl{1|f3lvMQLk{HHG3}MRl+!5pt1Wh(H$}`~E!AA5 z-Z4Mn{||lEO3dng=-AznB(1fQGDtJTS_d(HMvjT8z1 zvG3O}wkXx=Q=QpP0%}Y@k^GlAh=EzS0GPVAlVYlx*L-5=ZI;z0U@VwiR)41#A1=kg z36Nt-C7=r!Rn|#9WnXsUe@Mambq6qywe+237B71U%x2?ddziRbEm{||n0e1kS3S;` zR?53mR&K|JBiYxCP_BTF!HAQWBb(-^!;jo7Q<9OJqHY}$4kX1E&oUFsX9U&7DF%}R)41j^PT&sg|z3jC*s*ua7#lq8!LPV{4(ds$ZRgmRGxlhJ1Ss}55cmMm2a zC?~P(wAnbjY`!aLCZXsH&xRJnFY>>E^}e_dK|{#kBHa9#KbG&Q{l&AimZ^azVxUX} zSt_8HpZZ+4erl9XA#z$ShBe0f932-XGZW82wBlq}hxc(u2n{K@JW{cnneU_yyFToI z3kjIs^>)YPI`!?xsBX3?eG=87!i`o6;!mTBzyCWdC-D2oixOuEw!si7u>^o~!QKw< z^T8rK#oO9_vIjz{zAQ-Ry4m$SR0J+FPHEX7^^z7% z@z8_G;vu|9MWKDSByJ|s54{+(jWDg^Hu31mGMxmIaTV1Q;ia*NC;&^$eA3N zOmzYxVPhj(e-3sIZ1RwH2#yIPLD}Mr>tUwr3Z{QHA0Y~RDyVB z%k<@U=>l+Pj3Y>KOoctvGUi~kk?$s<(f-CQ5nRL#4&wRXd(W96 z{=}O@lIr;2UG0yNShR$cNRS~Qe(KJ^0CG@0e|polBt+p{6PC#|<>vDymd4DhFeiR8 zkhOy98S#^Hu?lM!#xm!nM15>z=G~VB__^@zgcitvoE;_x#F7f?)If4{jj|;Wi_OJV zQseetECY<0mR%-zfW({xu$6MXYLT!m-%ftOoYpDqv;?wsiLLfh@HxVn%}smwHwrOR z0b+*VECr=jk@y2?pm}M?_sm~u!2wk9#U>mafSgptJ7$|qOnfFDgo*p9N{4l-?xkMg a7sJ?%B+B{uwYP(7;pC(hr79$h{Qn +#include +#include + +// bank 0 +void vblint(void); + +// bank 2 +void update_graphics(void); + +void do_gameplay(void); + +void update_joypad(void); + +void update_badguy(void); + +void collision_detection(void); + +// bank 3 +void draw_title_screen(void); + +void load_game_tiles(void); + +fixed seed; + +// main +void main() { + seed.b.l = DIV_REG; + + SWITCH_ROM_MBC1(3); + + draw_title_screen(); + + seed.b.h = DIV_REG; + + initrand(seed.w); + + load_game_tiles(); + + disable_interrupts(); + + add_VBL(vblint); + + SWITCH_ROM_MBC1(2); + + enable_interrupts(); + + do_gameplay(); + + reset(); +} + +void vblint(void) { + SWITCH_ROM_MBC1(2); + + update_graphics(); +} + diff --git a/z_gbdk_playground_original/simple_shmup/spr_tiles.c b/z_gbdk_playground_original/simple_shmup/spr_tiles.c new file mode 100644 index 0000000..9beef84 --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/spr_tiles.c @@ -0,0 +1,36 @@ +/* + + SPR_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 2 + + Palette colors : None. + 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 SpriteTiles[] = +{ + 0x40,0x40,0xE0,0xA0,0xFE,0x80,0xC8,0xB8, + 0x8C,0xF4,0x96,0xEA,0xA9,0xD7,0xFF,0xFF, + 0x02,0x40,0xC5,0xA3,0xE5,0xBB,0xF5,0xAB, + 0xF5,0xAB,0xF5,0xAB,0xFD,0xBB,0x42,0x42, + 0x00,0x00,0x00,0x18,0x18,0x3C,0x3C,0x66, + 0x3C,0x66,0x18,0x3C,0x00,0x18,0x00,0x00 +}; + +/* End of SPR_TILES.C */ diff --git a/z_gbdk_playground_original/simple_shmup/spr_tiles.h b/z_gbdk_playground_original/simple_shmup/spr_tiles.h new file mode 100644 index 0000000..d3936e6 --- /dev/null +++ b/z_gbdk_playground_original/simple_shmup/spr_tiles.h @@ -0,0 +1,31 @@ +/* + + SPR_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 2 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ + + +/* Bank of tiles. */ +#define SpriteTilesBank 0 +/* Start of tile array. */ +extern unsigned char SpriteTiles[]; + +/* End of SPR_TILES.H */ diff --git a/z_gbdk_playground_original/simple_shmup/sprites.gbr b/z_gbdk_playground_original/simple_shmup/sprites.gbr new file mode 100644 index 0000000000000000000000000000000000000000..3e12344ff54c207e475dcc69756efeb65e54ad21 GIT binary patch literal 10069 zcmeI2!A`O0&{z=%`-T7x{`;}X#-@CaGMD)nNewe7iY~kKVv2w4Jj>c1!@qTG-uT7uA zXs>69>bgZyc*9VuB=n|ge*QE`lRO^%N~jXIdWQs^y4z$;YSNNOIFe+kl{_^j9bqTz zg_Im-FIXoXYrJ8tOfsWm20>Er#OMSoOE3QLtf}g*ikl<&BzqK@T4p8r0z9dFwg02D zIT%0y1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY`ofaDMO zC+xWwfj|5UV=l+jL(?y{-&bmvpXs$LQ=K5tz!kW6y5A(u1HoO+u%i?)e^_c3^Fyy%% w8=q1QWA=UbT^C;MhQqxawwgn z`R(()uHPSL=el-n?|IL8-sicW_rC8Ft@TFvF$o>Xy?gf_tE#+$;?C!|qlbt9_h~6e z-i136JF6JD-MdHD_uqk+#zXcD_a&jbs>W-=Kg1M|7)blec!TcUW4@>Q>ZOkN{7$<` zxx=;r8tb>52;MY?@4F?8b(jD9O!p?>y|q?cGLI;2nAveZ%&+y@k#xz7w6&w2aM29ZQ_`Z z%V>~A1qUX|E5Td^_@L~giuIOXxf6v@RIgfJQ+fxJZ5yFb3`?mNYSc&P$tdxUD0X>y z-ZC{*48_*fvo&#!h-;2O9L_<8<1Js4SFE18gfR}l`NL>WNejjI#kQT#x$ zz$k=JhL=e{kgM&2q!bh{b-^=f`zpj1(gqKfUqmDU9&kr>jWan1CMIbe>JtMSzwG;E zA-_nnz@ov-$oFxtgLU>pB$pqsl*ZW;Q1pzi+%Q^D_ro|+T#68LqUlMLU-Q>}Ws-C$ zK-lgV=0M60+)sr`Wsnka;HanjAz#QT;Cv_&mXfvVoa6jY2qC1Qh;q3{UnX7!c4(Z* z@nH9f0_)l#Cu>PD)36LP7XT822W~K~1g|6Rg$jSl?2h8V=;S$Y_6HyHAyrHkK4t#A zToO%ZVF$c)ZlFbFBBHMs!wz#jQ2*DWCpouoG9Nu4mykM91gnNef;LN;QiK{)Ed`c?;pa>^fihQ zgD4AjO6^yDN!kYMk~}kp53L3x8thaglc9YV5hWf((V5in@bUY}&Bv)PweR^AXfkpme_< z3w~kh>ZfhLD4Fs*;gZ7W1_xk7fg>p5W?H+(dhlblf;!_6 zv5qQnj;L-kUl|}Gx10n>R~7cPE}oFtx?kTYZ8ZJy7!h;Pj$mOCBFe`&>S_F=b#vq45W(3?wnaojjFn!0I2|NA5)N(`qH@$9};&l<$CT>6arJso`n=9 zEhyIx`@T&(ETiRIviRWpH^=$+@c@g57DFVG1T`O{{*((nEOy8){3W@T(<_yTO+a)T zzSNB}7#5C;e!qP)_{$G4B$--U0}ltl=7>D`SO}nM5}24kJI?Q`6)b(eBJmL8`Q=N^~GToEEoca5KE@N&1Cp|Ltgd)YP$jd&|NA^{fbdxnNK6+p|;Ny)eXIF zYeGNSTTyfHh&aSX)pWKXpKi<dfjQ&Y%PlVpuJd4t z_C0jnboi9BR}s{HxpIDw;K9B-=384=xdl>yo?vm}i5jAKWX*ALm@PXdB!_C*u$+4A zJ?3#_woRDe`y&4g`@(HM*w){x1O%&;W_6b(X@NH-`yj=1)aI)-zV(pp?=pqSHclNO zQ83btj_{D)0yZ)egB&_rW1psosN@mBSLH)RGFgHYjqqo#RDn1r+2F{uq6-?BQ| zi!?wJjZT5}Ere~pn$cl&UJ4$>8x29Q#(U|jdSh(c53Vn=i-2HGwyYu0B$k1N4EKjO zAv21kcswy2LZllxqWI&h1)`{Y$%A#@#Lceb#^pXD32k0)BAKNXc_M~h!S_)TJVgkA z25`ccoD$@2`^Fpo11cT*{WI4Ip`(-2@Qd*{yvsd#AVJHX{F`JX&DuxnR}Vl|<8w03 zG(1+d2V}YJrvzErGLEeM@@BK$<6i63wmFm*eNixuNph>3O$q9;)EXZQwU28%TWJVp zY`HH6_KE@_c;X%~FrMMoKsNwE zp)jqJ269VXPYtka)XRGpx%+olm#t>Q(l=e$l?Avf-7uM>iAU`H_}Zct$OgTts$CXA zGHF@ZN-)-8shAC98A=Os?lI^j%$kdRfpU5!I_&NWO73 zVAA}7|JRxra|}2k=ROix^E^w4g)^(Nd zK+OQu{zl4AiP@^vY4jHC+h#|Uf2_dDZ_5mV*0KpisI+^4k@Y3M%sK+{6ZFv@qY8&v zJ%Y=jlr6=)9;4|tY)C+_R*w=`Un;PKrL@J`g1bsGR+!oeB7{u$6AW`Fy@RTqmvl!7 zlFFbO2Rs11!7em)Vcg~_b*(hIwhIi6kqJwV%J2G<{wh|E@v{-3u2$c2^*7aUn%(u@ zwKr{9@b3D@+9RX7MH2w`mz7h9#2dxyG-9h0fNZmxxvW{<$D^~&E%O$~!lrkjW-Mrb ziqY4S@-bIBtTJubFhD}JJ!y=6*L+0zQ?P5?ltoP4XabN>1Rk%fwpdw)5G>NS04tCX zTj0M0Ds%xsE@{tElDTkJ+B^~rJ(x`1$Chj0bv|PwZ-S2TQqj7|`|>JtbxFtJXzHmY zMNQ&0`j3eBpK7`Q_@drU#9&rxEVxgHx5mMqtgy+(usylNA=+HN{sW~|_25LP!uMFG zFlx4jCP`AouKCp(yLdY%SK`K3q^LA!BCtMu+?dzOW#wCp8k`ZM2j_6=TvXTJP95V+yU!UlzX$itPP z99lE~XvNtAgg4qC)?TTP1)1#D0}MS*0I)7w#etNj(w^}ZiR9aN>C=Jm0#vNJ{m_51 zBLcbKHOMXI|4lEQ)oZ&Y>{Pi;HCtbhJs`PFV`#l$L>vYGybZtxwI{EQf+%AYbU1jn z<+XOd7v7shGq@cIN;opnKl!)kl!|3^Gxxo&1b-9lkY)6{Mp@jixP6x}jSdJuORXaD za;lj9l6w4<*4Je16w?Y1uVmyNspPv4m7}tUmM?a-UIElrM}HmsJ3IP}&`b98<40K2jGVs9^!@y@g|%@=i_%Gj%w(;p_ingE49QBBB+eao;t-Ot$&<@Xl4E*M-l;Kd^%nSbQrv$oA5SnPNWjl^=ujh|Za0k@+R_1e_d z4yfB1U`o0%HU+2u;tsvh;~sWRmFpCs@4i-z4sW$ z#t7AxF}*>jau`jsD{=qByXK9J&J(mb07eIlSaqS>9!CHcez-*_&Vs-8t0|+PsYQQW zhx^L&lXGw(7j=<%fAa)XoMI_NgWlP?tlarw$J~C3f0PkK?5TPFPp>lqd+R>oY-6{K zitjuDp!Xuca(gEs9iNYVwlL|`t}Xhg0CaJGTb%@>Ya9eEbE?Z&_yO|hWbx+8H|=7V zd%uYVW!8E!g4FQ+`$=Zq7zMghBptt&!pkaIxx3tPI(9&x(Rv@*+&zmFzZLcrxWSLJ zg9N@-lkEaVx+SGp$W1T&&e%r&Dd(#;S5I=yx1$CpRBl7)_2~2H9z1C*nlm|`#{}WS zNgE@{wvA8k?|Dk=P*}X-|6tc$X^rMKG6Z_u(&RsZ*X?wl>^m-#Cd+ypB{_N*$Epa8N`y>E@wRF_kL`%!o z){?wvmCGnUo^Sco;b~`)+v(}5PLb8H0WrI@Siah$JwM93es;EhnKzMR=cU(Iz+<&l zQoK!;-wOsUVgrWyW|v7z4Jj!d7Fc0K1p`?r-p(_rQ}V;<2+CGu#?i=%#%irxpRLJ> zv*xD^#`z|R44U4>;qvB%7Uvz&Mz_Ebj$)HqM#!*eK+>^=={y4E!-(;`a4YB^YM#Xi z=8iQ*^YQJh+0dc}eqkig4`-Ldkw&b55Ki2Ji$oZl3T^sCyFG#j=0KkPYu0zonrVYr z|BF@z>;9<+deaRvbe7IES+2_d?5Q<sp6IU>kh_!PZj zwO%w*|5zI}`hmpI94@#Rje(A`dU#thQ~QM;v$?yDOfqKEK3Q3;rlp;Jsy703^OBuD zdP9rWDM|Ns5S|tWuP@pQPH>KCuBbwc#S3cpRt{&E$r&4gfTPozsoBxT2n zZA1fha}=r!PO4`WXv99RwSNlN%5Vk5s__$8KtONQ|0>VzdanPXN_}r))Oru%@xF5* zIpzHaJ9W2vGeD?x@WM(tOPC6J=_BIo^|se3FK?D`z?S{)L0by{O@Iaks<|X%x%H&+ z^-pkO?H~OI?R7&rv7br@WHYSf-X>kPyg|VEYTId2D?cBnNco6eh}OD7NPNdE^ymCD zP(Hrx7)#Y^eiQ8V&2ju%3So8An}Nl?;RxSFUfQDvZsf|0=N~W;8;%ydwf9;3`4Yhe z1}>G|^C~2bz%`f3e-1&9>H}ygj8ST&$t81CwV+Un8C;X1@YgP$WkQ7P-hNop;zYGz z?Qg$PT{G=2$lN5Mz@+frrJ{ID@xe+is|M5U2w%DnbgO4oing`t^MWF5`L&bHzr9NK zLwBo!u}(MN9Z2+4<8irw!+Q+Ef42$SRycGlg)Nsn{`_BkbTbjwf(!@jOpL21$OK{^ zK2cVSWt8FFCHYSs?~CD_I9dr^9^|eqKft2 z^_8bP(4^|y(43xF%Zadv-sMIjtY?fXA#-!7W1|q>TF>nIZL@{C8I%p<5wFi9E{u=+ z-*;ktsw1s+NyvQ(NsKVom2cVDk0xVSi98_pxae;Rp{VYp-8(7Z{D4 zbvl|38(%W6S)nUai^nsPt^^pF_*!q9x%$V7L8XmKbtgx&7Lwb}hJNAC%#2v#3*0l) zzX@494#3iH(~axQOTdl3q^0B=)nsbZo@WmE2jl0q=s+A7=HsO^G&-qUWs6=~foSsf z501SLSn4l|ix%7IyB_d%R5tyN%^i7)_4H+!LXY)hAsTGt-*n1ByYouoSXQJPZ*;LX z$E*e9d#=WOW#y8vWLg#04PLM=&Ej`y42k`2A3-0zaU$~GSN#?@WxpH4gZ)}} z{9@wJI*p>6nowaxM8htEoMpBA`vYbxQrDC7ut)Fy;vHTXeuME%90K}fXvs}$w&46L ziVy?H-gYzlm&&G5Y^94`bsWd=ll?X5^osFkpKpaOC@IN|jZWG-ln}nq_bA1^H((>R*Zxj#W^^aG@-4^+CR90&x$e+cgb`?&ptv8 zb=~;e>tbNWKXuto6uGJ7O4NV4M>19u>`SxEr7qsik?w{&mbneP`v=GgICpy9IQKG!HTLvy(xG`9T@;6o(g^p>xe3w%Pmlu|!A@(=%wXUn%|V%G1i zj)FIf6CpGnqyKVZnKTWVnE-iJyGTg-W=`Wll2Yc85ns-(f9$DYmo9epx4Hxy$cU+QV9#iIj(IlU?AK98mQLq_YB@DLt!?eUO4-_L zH4?!Wu_0?53z2GPC>X6xNUldH5Q-yNEw%B;H&S}2&G~CGlY4!I8h8Yo*$j9IfcBl zX;B#i^>bj4psN_u7(kE zszl{J8xdmn$@>rz^dwzFt;?sBIwszS#ThU6PiXc4UVZ z#^LQae8~wi(CMXV{cNUAseR^JDE;b00lJe?-?Dxw%bpsr7l7&c9BKHgeth4U@sIJB z5&zy!k%>lcrtMnWtcbW`J8awSWnOjX^WOJPw{vij-6!Tz9>_(8>J=?*JSKpt_o0;| z`2&ZAaq>f=c+0rXpYNWpCnd-e6WOF%XVg?>&{=Gf?{B>s9cCb}e}5bi$T%K&o)qq~ zx1wp%b%920;LWT~5rSq7kE}VYXN6|jnH&LG=QI|TucGkVh9Bs1$ze~56lh$*ye zrpsAUwIX&}jh7j^WvFMxia)e>K7VHvMr-E#2_qh<-M;(i-OD#IkZ<|$<;CUkom_>4 zop~7$;)EQj4A+YKFw2roOYWo9QVcO3MA=R>Mf zrvJhzw$ir{0uT7d$LpgD_lf*Ap*`x2PO<3G=bOq!LbaTPd!6M4fvK^}jJdihT%kkL z(=@y@;{B(h5go0d_~%a)e_qOfm7w%$TnjO$xm*=f zYm>+*PC;{EulW)5i4-c$_x#IB<|7R0jB-X9C%$%j?O82M`r7=EXE4RF>}vsUU$60mfg3Kc8aX;YJeum+uKjlTcCS zgmH|18=7S^L1=6I6d(13BTOEpw$PAf8c7)ci*LFYQ-9F-V6JY6Gx2rz7@qak!q+2p zx!Urb@JIQG3dR1As;D~a!p3iPY1n`u%u~2VcgA6jmfs|Uxdbz^7F{pursrIZ&p~zr zGv>3gUxkR9m;Ihn%53KPfg4ehAdhQ^zW`g_yb~L+2hA^1e!;zFd|G)7rhRAICj?_) zp(imjI~^V+@~&!jeq~~|yLCloA;UUcAdtUvwM1qi4SGV2Xol2yc0=}tPn@)K8X^<+ z9BPIvqPl0@-&asr4_(UDU082j4F{)Iqby7w!4irHXJ`Es%r4)>fj&EZrJ-Ficm(4S zHyArTrHTMNat-67*D^t;S|}4eXl(#_*dL!79eh*J(pqE}P?BLqrF;1dcf? zwe#9Jn?1R4woK9Au9p!vZK95pv#haB)nNP{+d&f{%RbUp*ANS)hCZjqpLr2SRNz@D zX_Rn>8zfD+La_54gP8t))HgwXnm6S#%e02N80i@z$#?nZJTKvpn@q-qjym<8kV~ zv4iuP=zXHs4yK3iR%o@-Z9l!NOli?;16zt_pN|I~b9nh*w!R@c6q{QI8yx6Tr#~8B z$qujtUs zN{6VF+ED3~yu`kb#`I}Mit|l<8z%s*Fb%N_C4+;=7Bn1wQ-Dy;myr7?9b7F{{x)KG zA-A@W<^59SIL-7<3z*rBQinM z;u(yHwD(??eKkFlRJqtG#{ziYd~1l?ZE-Xb@o>g@9ND)3g*s~QX)xA4krU7L9db2$ zXj?wjS=o?lm`VXxpPp-i*y?tU>Qcp`xr zBAN+y%CbK_eF;9N9}UOft|AYvU9wCauxv-~%^Rx?j~?FNYd2$ta~6{VYYh9u-t!`# zG)$D(9cYBwv+&Vh47&{jM?ZZGB4goH;O!h3r{zG!RFhdeuV{X^%q?MbW%?l9%noYmV zEeMHp;|}@TJvW_pT$q3r=aju8TO0qPYBP>y@KI^ku9sImv;`i9q#E2Y9(HJ(Q7e{J%?so%@P?z`oQcp*+FK2? z*2Y`|8+f}uSvmzpiPpnL2St_i5*Mp~!bmkeOUPQRNBAl?0W_v5M;KK4aUSOIIu4K% zeL@kZe_e?f63Pc9E4H=L`AFFRQyf3n=p;FrbBV!i~{Z&H&(=e$$DmqgLg&0DVC%LvL zyNeG~s>t!|%ZMkrqNsl3RvRElpkkV1&58yPHLJo~3PVn&aR)>dWs;OlYB^I>pv@gZ zy=XAfttLOs2kYXiTqGqZw5#*Xfh6=)uRNv91oQg-lovcJOL_J(-XuIsqs*NpN!PBt zfBMoZF1c~pH#Wm8@Zx;AavP`CWSIK?_0Gx8eg;)*JLq|2bNE&KzdCZ#9C-;qPJoo| z{_QlSXPpH$V$PhIzx_a)QNUigv05|Z175S&pr5F%eEj^p|08XbZoeNnd%0*Ik>u+* zigFhTxE8ob|C6Tml!>H`qvD^@Su@Oy*%cl7tTaf?e^+#Q>xBZ*4%YAXwDWe>|Kg_^ zCuT&D)PElvC?Iz%EZ6(Js)M9!#rcoZO+{xv`a&uwQXuH!=YROgU^7kovkmTX>|&8= zwJ5174>>KQ+P%$ca5+)beDh7+bLJ>hE5#A~Qf)IPqog(3`+9f$JWD11h;gs_VhTYof6{IrKXeXW}Gm zZ0(;kx#|F^Uv;2YQS9lR@kn`Mx;r1ZpuJl)`#{n$v{pB>_%bxH-r-Y^pC-hL&E(hpu`6I`)u})A zI*f$Yo087P4y%`DF20f@H*FLTv}pFZ<;>zSJW^39eZGU8&Hto0Yas%t{lm+gyU_a> zsqg7AP7mg)3`vVBNccM>4W9EddR$# zn=Cn!2xF%Z70$Fpv#@d_nm*7HMO?mQo;ZBIB&pDGcFn1fo(@5`X^)CFfydQU02K4 z4h!SXA5$cz-r_A9S4iN(NBP2@D1k@+1BbJ? z5}ZXQwU=+k5Q?fNr>T*EMTx{?tX)M}dw%Zw(%xZKx_E-GXQ~cYow_k0ch9z#j~OSA zG1qCGM|$_p_3r+e9o}L)^Q!zec>Wi-&g-9@{?e#tPHo+q*L|7?-!ubaN<9C5c;}z$ zrS_pC!nE$!X!F_eNv+q7CC$qpfsrNmM#=WeZ1~3O_`oms9Kn__bt1A-5)h$hE4sq|Mr&5K-7a_rL{9V2s>SMG*HzML)dZF^XPiQ>^gSG zG$5^Q;qZIs<@f6gxjT%{Mw%WG%RvAd8*qIOL0x*q&R9-uMqy)VFE>S-dwheNh5q+`rF@v6 zyZ1iuBlD~B@2bbJD2))GiMZVFAfxc=-uL<03bdLNN&3Sh8k<;C7=LT)i zA#I}Lr6iyg*YgnApB8T9a-ug~t|VkU*Bh(mygs$rsC5`@MXK#bV;_S#=RXTPWM>7g z4M~2qjsrzVVB#`+gufb^xO1dXD6pebZsMedtSS&OXPads*F7 zciB*h^CD@91aU3U|3#Q9)+5G)LvyAEl* z<+9_&7ciT;^=LAd2!`{SK;!Z$R<$Y}LcVrMDo=^T4uy&?*FeBOOa5d_x9Bfqeu2G- zmPqpeyp_;Ii;CN_VdXD$2PF$v2X7=$?Q9Wbx?_QQz-T4keTu$*AcX=EP#d7D7^RO+ z0vG8Bue1F5tQc49U<80Xrr!e{NWXRdh8HCJ?nUG8Y*(iv{WSlHpT-7NnDg$j!*o2` z8R(GEN73T$*P?EIezDa!o)RZYs^h`vKL?iHM;b-|aL$F-BFV1As{`s;aOrQ81*A6) zEI_k+{=kTkS+gJp?u{QdW4Y!P9LT}bQ&F%|u57?CPVp%lPUX_{zB!#uq+Jks9H|(+ zkG%@`JLp5$%Nd06x@+(6yt^8^UDHtPP^E;MISK8tdomg64%{_=xzpuasq%Pi@MuA6 zTg_xKYf$i^XRD0DUr5Fmcoh+WwkIL3I0>GFWvWPiF?@6g6d@~SK+*O6UL#ib`hl2q z*}9q5GutT6FkQ{NP7Ug@k-IX;mGMKiqHi2!?=HrU>#G9dnQkVSHm34!MXK7*=*-T0 zXwOedq9lt*PqWvdm?x5hfFfg>yzFd(M?G7do< zQjlLpQ%3_L0u+XscjPV!P=S#L+nu-D*P%fN%`c`T(Si|Jh zpe+|F3#&5EdLaOdA?W?KOczRFuD+Rl|6HqOj#|sb*u;dw;**>xl9@Yl;n^$F4!c<0 zsxYD{s#x$*a-#o3ik1H!s@dgaMgmvo!tS}v-A>-2=G|Yp4e_93@x+-MrrX}2sQUE8 zpzAgNbvCAz&CQ6stLD5l;m(6c5^yen#J>9DJj3l#*Pvtl{Zw3^`9Ube=0!vrm8~TW z>;UxP$QOqC;~(nAu{cTsW{0Y;>m->{|GfPdqjTyhoh4ji`439>JjMPMuRa@oflGO* z=wtIJd2Z3;xu&mC&K@59PIqTc$GA#O5*&0PaL0jb6)=QB2ZR^OcUw$&2gL#b(Rp_l zd6@rJP-)=5(tF;xl6t;~ktOWUgRuKY!#@R%aiuXs4vV>^|KB2A=aL&Ll|2P5 z-|TrE|F;DG10#L-#X+Rp$RmNauEe|Z#N+?&M*?%c5On2Ki{8IT*gq%hI5p}#W%&G> ziSNuS5Q~<&@JV$d5-s4uEL&+b#Idby4kIu~FXDP~bJ>S#4A|1t@WX|zMrQm+G^ z8pOn%0=2J+xt@qrFUgq`J>4(*)x*#?&Q=0o#;sN=7<>HnpH!OGwS*$y$@Rjr9qd)A zx0MczTk&5RzG_MSkh8mH8+PBepE1qXv0B{fj#Hy4p5J5Fxs{Ohg|Ut8VwS+J8nwbL%Rk#D$b)HO?I9s0vC=`2$r0vMny+Sh>95&6HxcNn^R< z?H8V{G^51uukW|51}!^`WWuy|>EAA7ZPyy?YcPHy?lc<6K?RL1Kr>2^s0oWa@B1EE zBR~jgh&B473X4n>#r`wLT)BaIKlfiosyG?ufZllqR$d>BFi**e0;Su57lck2Kpf=@ z1zBo@M&VY!%CRM|&ACn=sCjZnar)yKO29L*OU^{WpPr2~HU9W8mTA`PCYy{|?m}N0WSMDK~w|#Yef{5oCTJp5<;385TB?bIfiieo~B$y`D$ayZo z9rTmB40GP^zM7E3ebmJEW))$feb1{-0Jllar2N3;abUnJ^H{*jafz$)rY<5dZme`v zP|Fvp1tSehiV@GFnlXSu>l#XFOrHOa_RufVq763>rkihcfT*cO^;9}IFNbi(ajR7< zu+To0-#0k=8~%$dH#H)7=y4N7aB)T7;a~gE8u(9*?U1HB>}B)@yHu_w?8xpIB5QCQ zE~E2GaArazLTh_*X{ABr^IJ($C?|V?UH1LqugxF%XMA=QG8PW=K`yzwL@wgCfY#l*ntZ$KHlMe;>K=O--+ejSjCL&F zD5>jVq4i}YRAG7k(k_bz&Y-jHSONOgQyn=k>v(Tu%hVDdbZ&6tA3i=1!%i`QL_u#zNb$zVR77G}AEDM=fUZ==p@V-33hXr;0Ccqg}$k*xT_OV5zy#QkHXXI0!1JUE9E#pqU zT8ZnE`%fCU{Zo}Ky9Z9CN0S69PTfv^AJjPzbRFBj-XuuPCMTzxOK`cT&cDg_et25*Msun9;9n2XAq&R1Ke$4N9F z*xl#HSSSSy-!Cwd?ijL&?bf8dQ4O~Rr{{9-SA(tN7PwT!X;K`^)TZ`GDjKUdctqCP zA5@dFOk!oOzH{{Dd^v)B!Zfa>kUdV`#p$+jp z&7j7gt;Ri2@-IvW>uPOk=dz{WJ(7KXIKog$_l;`1H3|OWBTvFm1H~7I8uLY;N5yki zz#fJ;R}KZDB?ohwdg$qyq)z)N2&VSEvDNB{bj*CETiA}@d%$BILhWv zE~3zHhVJWoG7y316+^=uI4q=O=>g5QQJjRr768QG_VlfO4t%TCs2uc|55Ih(Lxg{@ba^BV;qA(-+Tu5R~+!hGw-Jz!u>3C{3gL ziUvc%H77_dyBgW|=R0vk_iqa}oY>cGFU?YalYcm(#l_5Do@gIVB8ohsLNuyl*7 zrV=5#EI5x(TylpTBEDPSc*gjn7o1|@Jv#-f#6A)Do*HTR2WcK}o`>5>!dBlUzxTqb zF7F@E3lC)P{t0;`|&@1x5Ng?L>~0ZaQ3UT`YAwJ`td}`enjEfkiJ8( zJV(`s8QX7!hpTiODvl(r%Evrq`&7`f0ph5vtO6rf)t_?27j$a>adSN5?H1b=$ao4^ zq8N0c{4N}Ag(Gq&IOaAVgW!sKsUC9Ep?<=&+A5`Xq>iL0KZQ7v<&|<~_Hx}Cg_sZ^ zMCxLk>3O;9(_S%F=&JpL<;Jx7zV{UZ+zH4@ugFU)Xf$$(0W|L(nbq{X#<@rPXTS%& z&o<W!kMIz@@fUB{48QG=wH`IU?F!rxSA0?8*ugO;FqH}{O{}~M`wtPHF8QNUA*!S%|0{GiENOJ90Z4 zPHr#ISF#AnB;(9T=#DA~92Q*R`z%6n!pH`UOt%xN(E2{Br#DdEc=rw?v0f!%b$`{rw+51aN1xWP84Zs_er=1PB*8tphps!ctO0HIA#kktNG>7 z4m8l~7k~L8uNWM$!KB9g#1xJfHuP*4QC#_F@pM6<$TW zMb6y5*}@J+Q2;uDK0rc8%}^GF#ow#Sk-!Ifv$O7zM)NmhS~zCkb`97f)sURF{t+cu z#^28Y0gucyHw;Pj%gEWyXZcif>BEoxC#e&iM;)q0MOZ*!vVrDgAYtEbf-euz?CdPP zBe{r!-!B!5qI)eYxg7$$;Y+*1l~q-$Z-<)YMV6$4OqtUHV!>y;yhn!C{(*{b%1_+m z99K9U(*MJf7R@`2*&X)>`pZw=1?441vqIHA7;2>{Y^j3B_s*1mb3V~TpOU`)OE%Wj z(oy!n!4P(En2*f7|GAuEb_b}iA>&FTSa-!E6j9L05#b!e+AMNf-?c8d2NQBpc2(n| z9eBunyG8LqwLyb1`_x)8w1YqqX-Vz-qR7?wcOSa)IzG?DT7dSyWl5GSu#z(> zlrzVPm?agKn0bG}@}4VyaSh^$&1m(HTO3jNKCWQfaS)sYEwZb$oj)5q1F>>R{igo# zwxs%;oipzve+;-(|J|cj!#NSLM;$|K(7kUTQIs~(QtrR(_UtT$Bs0Q{=mv#g)k@F5 z+eQNQq7>kHzB9(9LnPy?saygubru!wuVu*hr0c(!2sQeE5x4R&(IxFYFK}E@;FhXO zQ>b)qUBMf#FCe;p=wiVAla8c13EJ;Y|0&H!ydh#H+atlROW^?^CXd8};Nm_vPOAgd zn!h3{nx3$nFEt-T)>l*?zX<4cD258*yI1>1|LF9M0TxIt!d^?BR6h@7?TdPDY_j_^ z*oQ+Yd*2iyj4p3$0Jfre5^-YU+M7B)o{dXCrc12PAo-_C^8992Mx&aZ=~L}jYN`uS zlc&kaBfmF>MK{Z>fFzV*PV;K_ey_$+!dQf+=$WxaE6%H6fn5a%_cyL#SvSa=zlM9m zL<9OZwX50E|JoLMl~tH7y(n0;P2C#88fFY#QAOj53FjraU3DBNlv6UXmy3ptz@`GP z;Nf9q!C`tOIS`L!{B^N|Vfkp0PUL9CcSX*A@=u27RQ6sH&uP_?c6PisnJgtH4#(`v zxO@>S&gI#llsiw!<|pR`We9ftTBPyDBq(z9j$1f9~& zPPF6oSQWo}Tw-9w88S!05|it##AtoMlBn>K=OqhgjiAyapv@dDef{{Fl!KQa?JEK<02}5$!hN;q{U=3?%=z8d3is+New~E13{j0;yw+y>2qw#VjA*dTQRCFICBCA?TF-B8(Tjf z=2=ciLY0jr-YN^a;jAgN#UWn;Whe?xt zlYsMrp7<6bsKCKao==`P|HzHgssI_~RQI{Zj^w`=*wu%N+uD!r@5ZHuEm?Pq`-~i7 zCExeE{fUJiO4cSd$_x8YevIlhEZBEEL;)07e;r7Y%9K@ews&v5aLR&Od!16-mB&nP<%!wTN`u}X{Ab1jBKqaL^XJn{wGBsz9jUBF+XhFYjoX;GPuR>A%T7Lo#{Y6&U)XF| zQe*p%?L!a!=rCFH^4D&KcDOePh;CH4jBB=VyFUk#va;&*k2gAWrckxwU5)3)@ZlX# zKj?6pOabf5%_+%upLV3Vg2}K1%6mi;&05NfyjaeCYIr5>55h6LSXBG3*6t_Ya{f#U zH}F-?u^`tLWIn#fJivP_d3n&Vo)KMYEfFb>E0bPN@?cx3GCESWA95C3L=|2QOO zI78gD*w!5AKSn2hM7Q)$aW&;Xv6^d^pCc(lEW~ZOOQwXndD~u3H>bW27-h~Jk*RD4E_-)8EYm=$7q;DQ|v`$-0lC zD8*GZi|Tny;D74v3mp&M)adc^VP&oCp*AP5^+}utUT{(kahyvl5&lFmd%yZ_`eC0S zGq9W*%Z%x9{Q)-;9PJ<4@yU^?pNYK(c$DWSb%^53_Geo?aNBm@D|mA!me@TT3>?5( zkDe&z%Srd@M>=^GQG;IBDOg#4U;g;Mg5E$Qo;h=VB!T9V^$A2B?}_5V`Ou%tNfAbi zJz-F#73HjbkXw!zc=O@W-{r~%g98o5WLLAAKain@;>R#ctckSJG?fhlN)$Mo0%Z*+ zD>_P441E=uk(CMu)L>V%iTB_Ho%wy_+w zjRCF!SSvwo_%nuaYAzFAdb9d$QNZ%>FlA8$(D<>^$riTMxMSUtD~o5lj#0Lh#Iz;z zugDxii{Z_WDV!iN(f`MzBD)NNRUsU>v)N}FBGkN`C`FsAZ^-gQ@t4IkMkJR%d>?d5 zZLuyPocoJ~ZlWyD`g#?>3bu*>43aolsMxU!|Lptl?;`DE=D&yPhj`$Dllv!(@F5Yn zL;)Ei6+ZFb-23QFS_!OOA7vsZKjr9--3?$>^=a4vXLVp*fMqNIjDnoJyiFvy%`vlHW% zQwAbiIH{L>zTqDFTVF}s$MWSl=+9~g zk+3W?(nq^K-z&#)P)0@-XybrUyX_*VaAPJvrhr;#3)j?&86DmsL3wo6x~EVWOg)NgTA6j^8k}9sM|^V^|{RSmj&BxCv@{kZa){ z>>->KOyEdv(rp3IR{PnoQpGA8N`AzjHi`G_q?;NLwsE8`+3DetLfTROUIFgIR4##Hzz6jGnL!i*tqdGJN)eDx#9y zn7KG?DmFgomOH?&^Yf!`D*N>lz0z~;N8y^_M{BB6x$>aTvHi1%i-PJa>t-B^m0X#I z4!baD>c8TO_3;th#{2T6_~GXB7%1n)h-0VXk^Jz}?Rf<@QeCHK<)@;iRUXc`Tw@%R zG>?Dzq-8H%KXRY~%>n~df9)CfQs!+C#a^<2&lPK8vr}+F*3$8X%83kqE^?B`^q&m5 zX9*$eleTUkGnEAlsPI$*_xfDpI^z5C^MD}ch+CpSTUY)jxJE4@=wNW>MV56U^zwbA zxqRJ$w-gs}nQ)dfhbcQ7c-jz5$f~O8xwC`73r8ZqSP9&)G3hAyJSO+ko$094@ zs`dAWh})cObGnUwR`TgsC{b$=v#FIg*SRDta=-r8E)Xb-EHo?`R>!y8As^#W*S<)~ zoP04rvU%JL^fyJDx^?ec)H?ikiB!v08=r0V;-?Fc(onXXNgq`Pv8PndFJiYbYqLFr zhZ#>VF((DVFV?9KQ0dsGv8>Gh*U?$Vwed7@94%5TNP(ikoqwRXI|L{Y+*`D`LxJG# z5?qV6c=6&=T!NJ1Rw!QF{Rz*zeC|c=_IBnsv$yk|4F`mC+6^f7*wO72s)H^(l0{@f7apY1ljg}nARR5EK zC_JClDNJtrQ!RKA+W9kM8mB1h_Ib(oUe6BRdUWm9F+OHscYNPz2!0)rmfh@Oh2o92>6a>DCeiMam%g8sSnAoj^!>WUVQbygE zwqeWx38Q!FFugLd8#i*=NwBlJs$Af;J2cEM@`8CViufM$*^OtlY~LAoH6I_}(alhGUOsFV^xFB*=p?r<6@f#xXs+?zrOk|tAv!7FL8;RI7m);zg{(CCI3pQ5Dk^wcd%q#ZGBp&E2U zx{_XPlEqyMj=sb~_h2c)aMiM!+Q2?ChQ{oFYw?Fax(gkOI79GT3Q!k?uJq&NS#r!G zQ)1*+{s=(0Nc%oS0l#M)hX^Jb0?`c^38OL=F_@*pa#x6CAqu_i^T2_~^D@~P3v>v1 zN^m5@1T#TD8{ecqsQVj&`gnC9OP8I(%&+a9o#amAjzj+y}~n~br|$CB8wKG#%`q|T*T{< zImrJ>8>5_F{_j7KIbn$C1c9_VF%h-MBbk9+r1N&I6H0CBl44z}`3c5}J~E| zOjLROP3B?>c7fq1+mXzB_h6FZI8pa=+{~ZgzybkezjZ&mWE{YN)7)=QBU+g{@X}0N z{2&mx{ok5FKpYJ=xH%2UffvrfjtSynE%hjU9Z%CmMuYcPXEeiT*TAIY8mpTp{}{G~ zp6D61P6Zn#mbI1s)>uZ7#C*i8F_-PRmx_ilmgG)mxHzZBnQ(AV#~vD!8)fM2Akwrc zVcfeFG+;>IfeSOVFTvt)DDGknd~l<5;mNW>B|S4m5>pE(R8Q-k4l@XIO+^!?;7?r8pye)uEs-}z4o z)Z?hi2`;KL#D|2pC6OLoAkDA8=+Gkg+59|k^bR0$`q%&h8Cy2CYzJ9PxinRSSrzuR&u&-*ZOoKU4sO+2Xsd-BT`9p=#PC9a@clPTYRpHKA3eU2vlNRH4L2@et5%r zUt(d)zC7fxuf;I^ik15@VY{nkvS{jfxzRTNfl1Y-H=LS{=XT=v5W|6A&UW{z8V~P*49QPW}sKpcXoqX+w??qM_9A#uB@|Dyfu# zlMB|(cr`PY(aOe{XelH;vuqdWk+&`;KiX;+Oje?LWOpiVuU41!W_NC&TJpM8>c`=H z{Af`%MeWH=UUx6cawesO~009PcJ2a5bH<1h$-u@PBC!#kU9GsBi?GUgv zD}J6V_a!y2zUwsX6-EhfIa?zbi-F82&GMZf|CD)xeWL@6Y4_4}Ka0~CcNKrY!SCqs zb9?6g!CP9Ko~AY<>>?FKK;d;`3l~-|t=20@!5CU0GjD}!HpGs{g^g*#3kVtXHRP@0cg==7IOtcbz8d60r(??cO@I;{3BoSngQxLH2y1D} zS+X}^-u&15od+qyv`qw;l0x=}i~I6DLZ<>^UsGdbQ~&opFXHpemgKU{m{&R^(K=jF z7CW_YbA+K@Y@n6Ypqngry_`#fKJHO5 zYZujEmyh}1%?xJ~^qZAuV0}50*-O$w+xTPmd*R5F&(Z5=q#JfThqqL5G-fL6b-VkK zK0()bG}6iat?!q07^NliNQ-CXsB>Lyf;o8gFnUCaX9SNEAxS$6LBq@QH#*F51`6=E zL5H3mWF>lF{rjHH!}q$H8}_Jnh+u)uU-`X05+HF$fFTn$OaW+hpb z=}yX?S&&tdvf=^TVXZR7yB|vhLf*2HKrj)x0T< z+l0$^u1BH{TAZ@}1v0Z0*VE?u16S3#W<6nn6{rMF5mw>KC21^5=IymYMGCX?EP#^Q zjKWNzMJza}m$VE9N@?1XqZwp+B`T(($=JKwS7>D+8w3Vly>mP9i8QA>UwbZ;jv~fE zyg$_mrQD{B?U<-R+prZ!pW=Pa9=fxD{Fgs*3OIuXpXZT5t_xCTqZRj9U1juj8u7Ua zlQ{=csDCkmq*)4_ z%^q1AM%+XF(ite0@yBD-zDTjz5T@uOm|>1u>8BD_2W@t}gwT{}PZH_CbAkhD5P|Bs z6akpXOl7NJaXojduhuvP^6xO8@w4I2ZTEdMGCQd%zC!{&*XH_-Xe6&`s{?FEleq}j z#gw&elJPq$fv+nbd?J_=j%?mz80iox_s=vg@B*!JEQLq|$Adb@+&{Tn^R?!fSn!3` z+b`v6AJPT!*CoMMS8zgUhKbi_&}p6c1=|*bRsQK$89-jkZf^2L+%|1%!%e6Nmn`S% zyVG5^WSOH8MXkMj3J7xQY0~R13|)#kF!dcj6H_3IErOu<&r0PEOeHNoN=-I zvcSm!f^zgSw8JlPCmBfi9vu2}nJy)Vw$^U*(YKz6-MMSM4=n+e*_LlFP7kgb17n!k zaaMKte9M&wqpyBL@ETpGp`&1}KD_46{0lB^ld9(y>G8U70BfMABaxj))`r zd#FB@1W75t22H*@{8u;svuc!691+q#9CjStWZ~?GCf-_w#CcsLc zHq*V@qnmj5CYh$bIxZq4UNXeq_@nVo$hCe*#B`rbw!*iV_kP?W+l>xB^><2fqvd zw^$Y}V<^OY>OfsMwJJl!6ItOKyS8ncFhJ~c0&#NrqMElLP?x~&KO_0(U~UPNz2zp@ zu%{?B-z_+y6FE-YHaMZLc(J^pH7W=auE+)$ClW+2q14vaASObiCM67@X#D&dm{dEE zW2GP7$OvcNFD1*~&13kHjLE`C03kxhsN|xci}B+WrDUZ9S^G>4yd*mx-Rak|Lj$P7 z^iA9FhrvFagdu9NgSBQYM(V%E2K4jH9ilF4kFdCi99)f`3Vw0H+BYsNSsBx|;9XI)I{Bh|tpFcidkiUEq zp8oG6PROd5DZ_@$Sz8z;i{_U`J5DQrU8QhPd0hrHII@t@ZU$I9>4RC@)XMj(?4!O8 zmUubjzOWw}ul3fP2h6OXdQi*7>?%2L&WtqYh)D^@2#4>y{JS71`%6G}wM%XQpGCOC zVx^AYst5&H?h$G5pYl6LALrf6f_pvE(Rs8eBWni-gD(okV+Yex&pNkGZb*u!OD2Ul^!tU1a92iEno(ahF_zT?I;(vW92Wb<)uaBaiE_vpM z4kKf%J{8W9;8V5^Jau@YwW^5^1F%l+V;m7n-upZC?^dzBKA+(CF`oa(DJ|dMKdfc1 zdUf`8I2MsF>J32uJT+c@ERmV;!}-T^k$2uwL$b9^WkCvPXB@SkgztV7-b@@r=dNlSx|j5R_Y;k74V$XBQkU03dKak zwVxTmxhuwLF_vr;ze@+IKM@RLdwEWANpXhBuGfx=g|a!%HtG~lzYS7G7MPZMTZENb z6LM0K1COAKpm6lD?-dZ+t^Sa1IsEkG@2kSve{^&-;*~4zm$l~(PP05bu!iUKko|P$ zQIe)W0m;L2#75z8JkUVuIZBS83(9YyW3$>1wR#PM*7f8A8CTC+FWHs-bG{0bhi=Bj zBhp|34Mw-n;M0@1cOJ}=d@(e4wd^glJsu-7W+wKxgcPow#dS4AheeI z+d*ZvKiDoe)tmU-A13l!&{7;6z4EoNQL2I!X$LMUZ!&hW3P@88yT_Qt z83bggcmbq8^2o@3NkPonP65ZL?9$tAg9rlKes3e|Sx1z`1gZP*c)q94X1!-fD}%IA#vWg4-+!Q|b^NEm z{D)h7qA~y1y=f6+;;HvS)K!)j64@CJ+%1ou)8(TZof&pXmR??Sdq)5&1N7` zZTUvH&YE|gX$W88j9+Ic`R{i05RDN@Q5gbbhM1L*SrHMkjg~<_jj<(_4gk6fyhhGE zTMF)Yd_+@;0#xCGu}kZVv0~_$aG%e`ME9&J{iuA1F0f9q;$lf?7~+f}!OTZtVh+DYrz)!R0+QTOhNS)}#q|CDGDCd|J@6#Wer=S?_ zPO?CWyCR7V>wqh3fb@4GE+LP7;^zys=RO6AyQ$RAy#amSXX9tFFY^1<4Za>*U#l(v z|4`g7FjSh)@m`44ksj;~k`M5wo@2>7p7lf=dF9%46^%Wi@xO(gBQ9tL;*O?V($zkpYr6*6|> zNn?8Ga`a?4Kg@~QXf}(B&K&-b;g3{K@p)f9Gke$N-=`z_&0I0xGz3nTM@nd|4Anw2ZFC161WU*umyp2A@x;zX)aonvk@NEc)*f<1yy8WU z+hJWdFl<))9p)L+3eN_ibH8`co3|4I;sPt~M2Q4Gu;Jp% zGUTi4>)T7yXAh*Or{ibpz!!sl86tb9-*abm=bf$i?XVikNx5!EG(L146=~URLTuS( zkV^DsJ>=ifQC)p~2tn{%*VE-gH~xd<{jKS3s_CC9CqMS)HGh#8lO?K|?UMO6kt0+O z@^{(E^>Q4ewm0ZApYZ;dbI`ETdX$qrJ1bn}Lo86>go`uYqxaomY$0~)$nKZ?{S83>yd$aF&Qf5P8}G|9=cB#N8b^xoh!F)+n(PgJnbf&#e21*R%tq(u&Q}u zGpptO{W}b+O6$5mYV$rYTpM}ub=rc<^74)Hit1k93BT)=L0o}lq;86}8~LM_9qOl3 znrA>DdrfT~j|kiRW_({BF0r zb4vdmFaNK&Mtq&d0?z!|Kkm=)ZQq5Y}$%G5b#^FhSy=4*XGtvRE<_sZapZ(A?HqnH#(w{wXO1h7L^F`pAPt% zG3IPSTP(?{n#NlBTJ}Rr2J<92u#xOs$+2EkIpdOmaL=qlXup?`ktjp#NAx;ss`ByF z0D&0;uT_|p($ykKl)vf85egYfoP8u${9z8h=m`>-6%khOB_95JVWd7E`>u_e)vhD9 zTb7-F;v#sNLp#&g-3Zwab&G#7KFzQ1|IefCh+ns~Z&Dqv8zVr~bR$jo z8!vLSezoMZ#;OM-5kdUt|YCLya%gTetj8 zR%VF~R-o}qnee}=haxaj8U(w}Iv7v2nOXy7d~vYR0kW`pEqlF zv(522v*bUuoOp!pCmbismk8oazj`FpnOM~1Ud{_eRC|nht)(1LU-Sq~ejDe-^WZ2$ zd}?0nqAXnIBoe(hZN8K#=_+9nSS;F44%PGU>tML&1u$hsLnTKw5QgBU%Akn%YtEky3|*f?lAuOztH?H}4K=oI*&CKM#r^ecm9-A9{&>x?Oj_ z`TH$nZF-2*{Lf&>H&ttQoJddGPEX+p2&}FBEVTyh|B?O0KPvi>O`h-O&NU@2H5FN1 z;I;LzV4x}DiXm?&`B$}k$HseK1ZwQ*>3M^I%p_xzUes&C@5rrvPt|GTzU%q^w$b#S z56J{!F|KQV*NCUz@ju!jkaj+(YOZT*8;uiK9r}qcF{W&CM(Dqn?!Px=Q(aWt7a#o~ z61^87p5>y+R=#HKPn6|kPp=mL*09;F=fPhk_mN+ulpIi)}I;2pl!DGdM{mm#(X2);w$k@UmXX><3ba@%8 zcd6%+zZl(fT=!VM4|?==9esR3w|9=(j<-kHYwXW|zmV@g#jcl8yGKo*ToECwP)B|B zqEz6NUgC^?8G1f$s1id+Xq{dTa9{Vz1<_NhjFaHd8%d2;NI(iI1p!dk@)5_di z2t{i@3FH1dh!B#Nn~j(#(Ai63HtysPtEg_puHwso{AYbTq#)i)pCH!J-;1fgFyFC_X)lT+2HD<#2AgJg3z|DGdIUG&^|_{q-fBeRayH);A|U~i zU(N`iXfW);QXrk03!@!G7N|R}j>hBgrV7zmd*`*KKST8F^%t&$LOyC4Hk&kT5$(ZG z;<}*;TfJ+AEpus!xlURY!zvf4w~*B zziK@+#%iwxByexjHT&NY$wqW@W4BS3bF-VA@yXU?rzmbo? z_8Yfd1^O9E{&wCUZCd+pTmRUM7g_YSf$mv}{=rhyJAgeQ^0bSQ`?ag4=F_I;j>AOB zch$09J#oNp_#lSyb*1jK6p#{vy<$ENrRu+y_)BMha-V(Pv}h8EI&R2I)(AM_BbZmM zjd{An@5c^i*B{u-x#8v>#E4?Gic-=hAK9W_{96X$kd7=viXlscd`CFWQ%n6PSP`b+ zF#xlH7{!4YAgAput;dsjh{$kY(R0{#?4i1$>VS50Yp?WMNi^p%N)fiRPeh%~SUMzf zJ%~W>@jg#<*r9o4K#tV7?|$vs|LDgi-V@@jhCM#|{l7uQuthLIFydvsAiX-0FJ$>i zlo}LqrRC}FV7M-p88Q0y^W0;5ngK+Ew(6?_GV?__mQdPJo|nlGS-X9Y=+SX_c)HZ} zxO5o)ve0f=Iu{EY@0g1wSLJ#-6)%wwCp4N%w8yd*_h;+)rA>?y)b=`7vC-6lzC>e(K0TdMjWG@vwm@;5Or$A*I{XVOy zk0{z4c2Dnj4T`)RAeMTVdwx1U4GM5IIx{tq#$E0Qy{=7V@xH^TFK8t01&pz(>XsTWBc@;Vi_@)Z;c*tYSm zR6FKnS5dTm>TQL)3nISZqj}Fdl~6hjvQQqD+}aH8|Gbd_Dandun4r?a@4NrqzLV0S zXweQ=QSQ7vc^+?^V3~xJuKsK)&p4tqugxgh|5RI*#*zw@m0ds80Aeay3akExPpC*> zLp`WsYifqGX?3pkU~5NC?{K3lg;p_5W0N>W4GyymSa$5Dbbsxo3|rK>IvF3%8!fdO zIcN|U8O)P~fJ#+!tJtZ@qm3y`b}cXu8>??V;*@*On9EGKS8}zk+0>8z61d2Hq$^Zq z?PRj;7Ky;YGqd1J_#By8T2Q6#I< z;(}+;T#3f|>MfpQd863c^1dF{ntI7hY3G>2?{|I$WJ`P5xaPZU;SB?NZ_KDL&5V)z zZ;72LN!lKrI4{V~>kac8LLihz7=GuJcv#26Mt2#L4urjpNGZ72T}MWbYt^C=aYS5Q zr`LkIs!^#J1;eh0Z64?s1Nan^nzI=SoUKkpBh`)IRTa*bYdnPYS1Q|>YiJ^Y%=9{n z0!~^a6J|apSuTAj_Ah>N0RnW8UQYVZ29Me0Rzp3GyR~5XZJlE}Rk_>I`}IjPDr|rE z$0ZMqc~zVABBZzRXD#Qa#&ec$2OegM(0=e^olG*V;3~%b{#H{zl=VeBeYt2NXX$yh zmS^M~dBT3=cS7c=xt-TaEq&&BPi?>zN1NKClj!L}*U)Nv?_Z*CSVUF$1a@>w)+>b5P^cL`)%2TEkia2Q2XQO#W|>uI~S`H@ZO z%8azgn9{pK``6awYqOm~N%0(z9{Z=)E@vIk6n>kSZ*OQoe?9f?X4#oPEw>&BM_*C5 zt^)1;C_a`6pm7P1h*Zv8)clp|Dra+AuXK!cvouq$U=6gK9jTpO< zapT$clvU%CP*&&7JKbn@))5VHyJsAlK@pri{bHf96Z&EJJf-vso9m@1DM zMgZU>0n4(@LAm%iu~v&Hc2+Q?Vo7RCWw0)B zu8yR^rz_Qe&j-&kpe3mfwp}*p#R}HAv3Bp#R!$U+$^?$NtB)iq@(qPnMP?u4x!k7z z^tZjAoc5kBirKkrQQe8{i_13@P!oG6p?ciPA}qaj-+o*Y-a1hQe6$mvTXt)PbMp^o zy&}u)(iP}AHIG=1ou7QVS_$f8bpA}$um&^PuZjp+iUC#|DMw>Pw&wiksJOz50_Ae! ziPmF+!khFzoN)D5+ZWPyU66Bs*eTqeX_H~Gpoo7DGjByPQ`+rzqnE*DqFd15}5@GjE= zSA6R2t~{)d?W3iz_0FB}wL9(Sy$|%Xx!FQFJI4CGm)5O4Rj;;K`hlK9+Z`+QUg#GD zxoZC=9IRUxo4vN1I`dP@;!v62pk}zfa?1Xh)Y>}F+LxAA+0pz&N$KjgfBCD@xFo5( zo0zoLcR?w7Q%!;9*>q|!f4F&qLy!mvz2|_CORr=|vWHywYVHd|!&CZS*ICRNek#{Wih~l&u?E_fstC zA`DJoVT3dlTm908Fo^Qnpkl9nR7s=j7^hT>szwz945{k4?JA_acT2PhI|rhNj$k{u z8(?5VvqC*h+SR^~icT0@HZY>aH@k*ivYL0E&ESu9V0fYjoNvYEBcOjHKBJPjR2 zki0AGV@Cu_BA5UwX%j^}Tz3Lzd__-_I7NhsW=+&R>=-aCir{D%L^J_~K;E|$5LkEnq#&tt6J1~E8q26<2NMn`7@vm^4T4f;krgsR zS6rOc=E zoIFMPo6EoXnVWvJqpx!sJ$^;9i8=2?N)tY`^C!Wasm6lj%3@j8FBTZV;6lY8PjyCx zaZ1UOgg(s+QpBkj@n|ZH zw93+<5!Qip2+C7nxESNi+F}^+(rJAdiJ;-{k{^~M6N}y(Z$51Y!YK)sb`E41a*V&E zR0=G-!(bXUj15bEdwi`~t;8pdpi)V*Wd|QdnA0x2t}VD$eb@s?>7C=_yQw-?gI@2t%!R^x#m(;Rc3LW{&jH z87b|<^&FXRGxSt+z*oWN7X6N5Gyv9g#Z=e<)~rF|TSgRp@d6GiSa0AvEla;udyM_D ze*5I@4=o%Zd6;VaZ=@nZdUHf;OdL|Wyx4_zm$vDcr7*h2n9Da+THq>7DRGTYj0e74 zQ@1^o^R}617c7;W0L4PgfB!80adWh2WK@1=F`^BVoplQ&Ryk{*eN%AsEor-ZZZ=#? zsDL@49;L~skWV%#sQw4-iN<%{ zQGE{10ZgX;&^p(?-9*>4H!X>OTcoiU(lkb(>2y)tg$BiOiz=GydKR>zzlLLPdm$Et zmS-VCi9EM6n5EwFkx3)o#YnKPJ6rAax_AXVJel>CqChaup;XD;;etglKHYd*ied?j zha{LIUlQk%lFX{UuSLf@LW3ZbA-ub;(s{LBWOO0lFeOdpjCHh5<-F`XO~4o&l!EQi z|9rOgRO6I`tZ$@q{)PFFy+l5`L9ty~NT`ef9L@hJ`8SiE`Jzn;0IaD$XwTo@Dya=m zT3na;rYaT(3GO%Rn$2K3T=(FRRE#3VrjcTG=1L?*2QqYtkH+*>y?NX2P`(1-LANM( zjY`BW)AFkdCV;i9zSDeX05CuFNr~TMV8&KznOBYkeo539!tLs3FQC9d_vT? zB2%LBoe&>9^=cf+L~NEs?MhCA{-T5ig2)RUt%P#lvsU#l@MNZgntBY8Io_PNGB%bO zhrLUHlog*!XQA$(z=lIDw}yG*w8*zyP1>|;Eor1N+v`~sI6Msgj%URMaVXn-O-Tkj zCTWq6PS@7+_V`F?!!?9IcAFDprWT~AxT&W@zVa;*Z($aLh3pw&ONrL1sA{^|>x`>Q zcP-JLRFW1g8FSgi)ir#xly+?Tq@Y5NLfb52qBqJ4h!xr-NBVtZ(|gCzl(#|FPr2M~ edsscs7%|g}wy|~%o`^#ok(A`#%T`N&2>u`0T8GF0 literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/small_sprite/small_sprite.c b/z_gbdk_playground_original/small_sprite/small_sprite.c new file mode 100644 index 0000000..ac5472b --- /dev/null +++ b/z_gbdk_playground_original/small_sprite/small_sprite.c @@ -0,0 +1,10 @@ +#include +#include "sprite.c" + +void main() { + SPRITES_8x8; + set_sprite_data(0, 8, sprite); + set_sprite_tile(0, 0); + move_sprite(0, 50, 50); + SHOW_SPRITES; +} diff --git a/z_gbdk_playground_original/small_sprite/sprite.c b/z_gbdk_playground_original/small_sprite/sprite.c new file mode 100644 index 0000000..b01d689 --- /dev/null +++ b/z_gbdk_playground_original/small_sprite/sprite.c @@ -0,0 +1,32 @@ +/* + + SPRITE.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 0 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ + +/* Start of tile array. */ +unsigned char sprite[] = +{ + 0x7E,0x7E,0x99,0x99,0x81,0x81,0xA5,0xA5, + 0x81,0x81,0xDB,0xDB,0xC3,0xC3,0x3C,0x3C +}; + +/* End of SPRITE.C */ diff --git a/z_gbdk_playground_original/small_sprite/sprite.gbr b/z_gbdk_playground_original/small_sprite/sprite.gbr new file mode 100644 index 0000000000000000000000000000000000000000..76ff02e47ad1e96e9e103dd7cd228d72aef913bf GIT binary patch literal 10069 zcmeI&Jx;?g6bJB^I4xP|!UZzI5};c`kM6oQgBp6hr~5I#+c#GglHUT2|K zrGAo3s-lc%+-q<4be}KAWEDlVv19w7ji5aKmevz5^CsfIOmE5f)6na3_fzUoU&@Pe vjL)wN8ofJY)z@?~vJXBsIzO>1*?{^qFr>z!>sH7=asm7Tj{FPU+wp$@z1MAa literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/small_sprite/sprite.h b/z_gbdk_playground_original/small_sprite/sprite.h new file mode 100644 index 0000000..8205443 --- /dev/null +++ b/z_gbdk_playground_original/small_sprite/sprite.h @@ -0,0 +1,31 @@ +/* + + SPRITE.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 0 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ + + +/* Bank of tiles. */ +#define spriteBank 0 +/* Start of tile array. */ +extern unsigned char sprite[]; + +/* End of SPRITE.H */ diff --git a/z_gbdk_playground_original/small_sprite/sprite.png b/z_gbdk_playground_original/small_sprite/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..c9335d61d369ead955625789d715466e75df2eb4 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^&H|6fVg?3oVGw3ym^DWND9B#o z>Fdh=fK!mm$m08ft_eUP+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g z9Vl+*>Eal|aXtCR|Nr*PYzgTe~DWM4f0b@6E literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/window/Makefile b/z_gbdk_playground_original/window/Makefile new file mode 100644 index 0000000..e0092f9 --- /dev/null +++ b/z_gbdk_playground_original/window/Makefile @@ -0,0 +1,17 @@ +AS = lcc -c +CC = lcc -Wa-l -Wl-m + +BIN = window.gb +OBJS = main.o + +all: $(BIN) + +%.s: %.ms + maccer -o $@ $< + +$(BIN): $(OBJS) + $(CC) -o $(BIN) $(OBJS) + +clean: + rm -rf $(BIN) $(OBJS) *~ + diff --git a/z_gbdk_playground_original/window/README.md b/z_gbdk_playground_original/window/README.md new file mode 100644 index 0000000..a7d7c70 --- /dev/null +++ b/z_gbdk_playground_original/window/README.md @@ -0,0 +1,7 @@ +# Window + +![](screenshot.png) + +Demonstrates the use of the window layer along with the background layer. Both +use similar API. + diff --git a/z_gbdk_playground_original/window/bg.c b/z_gbdk_playground_original/window/bg.c new file mode 100644 index 0000000..f7611ea --- /dev/null +++ b/z_gbdk_playground_original/window/bg.c @@ -0,0 +1,163 @@ +/* + Advanced PCX to GameBoy converter v2.15 + + Tiles data + Original PCX File : "BG.PCX" + + Number of Tiles : 152 + TileMap Size : 20x18 +*/ + +const unsigned char bg_tiledata[] = { +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, +0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFE,0xFF, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3E,0xFF,0x3F,0xFF,0x1F,0xFF,0x3F,0xFF, +0x3F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFD,0xFF,0xFA,0xFF,0xF9,0xFF,0xD4,0xFF,0xAA,0xFF, +0x00,0xFF,0x80,0xFF,0x00,0xFF,0x80,0xFF,0x80,0xFF,0x20,0xFF,0x40,0xFF,0x20,0xFF, +0x00,0xFF,0x00,0xFF,0x02,0xFF,0x00,0xFF,0x23,0xFF,0x01,0xFF,0x20,0xFF,0x15,0xFF, +0x80,0xFF,0x00,0xFF,0x81,0xFF,0x81,0xFF,0x04,0xFF,0x84,0xFF,0x88,0xFF,0x40,0xFF, +0x9E,0xFF,0x82,0xFF,0x3B,0xFE,0x12,0xFF,0x00,0xFF,0x04,0xFB,0x00,0xFF,0x40,0xFF, +0xFC,0x03,0xED,0x12,0xBC,0x43,0xEE,0x11,0x38,0xC7,0x0E,0xF1,0x01,0xFE,0x00,0xFF, +0x4A,0xB5,0x55,0xAA,0x2A,0xD5,0xAA,0x55,0x95,0x6A,0xCA,0xB5,0x2A,0xD5,0xAA,0x55, +0xB6,0x49,0x5B,0xA4,0xD5,0x2A,0xAF,0x50,0x4B,0xB4,0xAA,0x55,0xB7,0x58,0xA1,0x5E, +0x1F,0xE0,0xCD,0x32,0x5F,0xA0,0xED,0x12,0xBF,0x40,0x8F,0x70,0x16,0xE9,0xD7,0x28, +0xFF,0x00,0xF7,0x08,0xBE,0x41,0xFF,0x00,0xDF,0x20,0xED,0x12,0xFF,0x00,0xFF,0x00, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, +0x78,0xFF,0xB8,0xFF,0x78,0xFF,0x78,0xFF,0x58,0xFF,0x58,0xFF,0x78,0xFF,0x58,0xFF, +0xFC,0xFF,0xFE,0xFF,0xFC,0xFF,0xFC,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFE,0xFF, +0x3F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1E,0xFF,0x1E,0xFF,0x1F,0xFF, +0xD4,0xFF,0xC4,0xFF,0x90,0xFF,0x04,0xFF,0x08,0xFF,0x08,0xFF,0x00,0xFF,0x08,0xFF, +0x01,0xFF,0x00,0xFF,0x01,0xFF,0x08,0xFF,0x01,0xFF,0x00,0xFF,0x02,0xFF,0x00,0xFF, +0x20,0xFF,0xD0,0xFF,0x40,0xFF,0x48,0xF7,0x82,0xFF,0x88,0xF7,0x80,0xFF,0x0A,0xF7, +0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x04,0xFB,0x01,0xFE,0x00,0xFF, +0x01,0xFE,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x02,0xFD,0x40,0xBF,0x20,0xDF,0x10,0xEF, +0x55,0xAA,0x55,0xAA,0xAD,0x5A,0x2A,0xD5,0x2A,0xD5,0x2D,0xD6,0x15,0xEA,0x15,0xEE, +0x57,0xA8,0x48,0xB7,0x35,0xCA,0x95,0x6A,0xAA,0x5D,0x33,0xDC,0x8A,0xF5,0xB2,0xFD, +0xB7,0x48,0x93,0x6C,0x6F,0xD0,0xB6,0x49,0x7B,0xC4,0x89,0x76,0xBE,0x61,0xC6,0x39, +0xDB,0x24,0xFF,0x00,0xFD,0x02,0xDF,0x20,0xF5,0x0A,0x5F,0xA0,0xD5,0x2A,0xBD,0x42, +0x78,0xFF,0x58,0xFF,0x78,0xFF,0xB8,0xFF,0x78,0xFF,0x38,0xFF,0x78,0xFF,0x28,0xFF, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x06,0xF9,0x02,0xFD, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xFD,0xFF,0xFF,0xFF,0x6F,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xEC,0xFF,0xFE,0xFF,0xCC,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1E,0xFF,0x1F,0xFF,0x1E,0xFF, +0x00,0xFF,0x00,0xFF,0x08,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x01,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x01,0xFF,0x00,0xFF,0x00,0xFF, +0x00,0xFF,0x84,0xFF,0x00,0xFF,0x00,0xFF,0x20,0xFF,0x00,0xFF,0x00,0xFF,0x80,0xFF, +0x00,0xFF,0x3B,0xC4,0x3C,0xC3,0x3F,0xC0,0x70,0x8F,0x7C,0x83,0x7D,0x82,0xFF,0x00, +0x10,0xEF,0x9F,0x60,0x51,0xAE,0x29,0xD6,0x60,0x9F,0x70,0x8F,0xFF,0x00,0xF7,0x08, +0x0C,0xF7,0x0B,0xF6,0x06,0xFD,0xA2,0xDD,0x0C,0xFB,0x8D,0x7B,0x42,0xFF,0x15,0xEB, +0x55,0xEA,0x78,0xFF,0x96,0xED,0xF4,0x6F,0x1B,0xFE,0xCB,0x7F,0xB5,0xFF,0xBD,0x6F, +0x15,0xEA,0xB6,0x5B,0xAA,0x55,0xA7,0x5A,0x1C,0xEB,0xA6,0x5B,0x5A,0xAD,0x8A,0x75, +0xC5,0x3A,0x25,0xDA,0xF5,0xAA,0x49,0xF6,0xB5,0xEA,0xF5,0x7E,0xBD,0xFA,0xBD,0x5E, +0x78,0xFF,0x58,0xFF,0x70,0xFF,0x58,0xFF,0x78,0xFF,0x59,0xFE,0xFB,0xFC,0x5B,0xFC, +0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0xFF,0x00,0xFF,0x00,0xFF,0x00, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x40,0xBF,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F, +0x00,0xFF,0x00,0xFF,0x1F,0xFF,0x07,0xFF,0x30,0xFF,0x2B,0xFC,0x1A,0xF5,0x15,0xFA, +0x1F,0xFF,0x1E,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,0xFF,0xF5,0x0A,0x11,0xEE,0xAD,0x52, +0x00,0xFF,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0x2B,0xFF,0xA9,0x57,0x13,0xEF,0x45,0xBB, +0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x80,0x7F, +0x04,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x22,0xDD,0x80,0xFF,0x01,0xFE,0x80,0xFF,0x10,0xFF,0x09,0xFE,0x00,0xFF,0x00,0xFF, +0xFE,0x01,0xFE,0x01,0xFD,0x02,0xFF,0x00,0xFD,0x02,0xFE,0x01,0xFD,0x02,0xFF,0x00, +0xD7,0x28,0x03,0xFC,0xDA,0x25,0xE9,0x16,0x04,0xFB,0x06,0xF9,0x00,0xFF,0x1E,0xFF, +0x1A,0xF7,0x9A,0x77,0x17,0xED,0x15,0xEA,0x14,0xFF,0x87,0xFD,0x04,0xFB,0x05,0xFA, +0xF5,0xFF,0xAA,0xFF,0xB5,0x5F,0xAD,0xD7,0x92,0x7F,0x5D,0xAB,0xB2,0x5D,0x1A,0xED, +0x5B,0xAD,0x49,0xB6,0x92,0x6D,0x4B,0xB4,0xB2,0x6D,0x5D,0xA6,0xA2,0x5F,0x56,0xAB, +0x55,0xFE,0x5D,0xAE,0xEB,0xBE,0x7D,0xAE,0x17,0xFC,0xFD,0xAE,0x95,0xFE,0xDD,0xFE, +0x73,0xFC,0x5B,0xFC,0xF3,0x7C,0xBB,0xFC,0xDB,0x7C,0x5B,0xFC,0xDB,0x7C,0x5B,0xFC, +0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F, +0x00,0xFF,0xD0,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0x80,0xFF,0x3F,0xC0,0xBF,0xC0, +0x00,0xFF,0x02,0xFF,0xFF,0xFF,0xFF,0xFF,0x95,0xFF,0x00,0xFF,0xFF,0x00,0xFF,0x00, +0x00,0xFF,0x00,0xFF,0xF0,0xFF,0xF8,0xFF,0x30,0xFF,0x10,0xFF,0x98,0x7F,0xB0,0x5F, +0x1A,0xF5,0x13,0xFC,0x2A,0xF5,0x1A,0xF5,0x0E,0xF9,0x12,0xFD,0x26,0xF9,0x3A,0xFD, +0xA2,0x5D,0x48,0xB7,0xB5,0x4E,0xA9,0x56,0x94,0x6B,0xAB,0x55,0x8A,0x7F,0xAB,0x57, +0x21,0xDF,0xA9,0x57,0x0B,0xF5,0x40,0xBF,0x56,0xEB,0x11,0xFF,0xCB,0x75,0x50,0xFF, +0x00,0xFF,0x80,0xFF,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x80,0xFF, +0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x1F,0xFF,0x3B,0xC7, +0x80,0xFF,0x01,0xFE,0x03,0xFC,0x87,0xF8,0xBF,0xC0,0xBF,0xC0,0xBF,0xC0,0xDF,0xE0, +0xBF,0x7F,0xBF,0x7F,0xBF,0x7F,0x3F,0xFF,0x6D,0x97,0x6F,0x97,0xDE,0x27,0xF7,0x08, +0x35,0xEA,0x05,0xFA,0x39,0xEF,0x8C,0x7B,0x6A,0xD5,0x17,0xED,0xA8,0x57,0xCF,0x35, +0x4A,0xB5,0x3B,0xD5,0x92,0x6D,0xAA,0x55,0x6A,0xB5,0x52,0xBD,0x2B,0xD5,0x42,0xFD, +0x95,0x6F,0x56,0xAB,0xAB,0x5F,0x9D,0x6B,0xA7,0x5B,0x35,0xEF,0xDF,0x6B,0x8D,0x7B, +0xB5,0xFE,0xDF,0xFE,0x75,0xFE,0xBF,0xFE,0xF5,0xFE,0x7D,0xBE,0x6D,0xFA,0x7B,0xDC, +0x7B,0xFC,0x9B,0xFC,0x7B,0xFC,0x5B,0xFC,0x7B,0xFC,0x5B,0xFC,0x7B,0xFC,0x5B,0xFC, +0xE0,0x1F,0xE0,0x1F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F, +0xBF,0xC0,0xBF,0xC0,0xBE,0xC1,0x8F,0xF0,0xB5,0xCA,0xAA,0xD5,0xAA,0xD5,0xAA,0xD7, +0x7F,0x80,0xBF,0xC0,0x9F,0xE0,0xEF,0xB0,0x37,0xD8,0x27,0xD8,0xAF,0x50,0xAF,0xD0, +0xA8,0x5F,0x88,0x7F,0xD0,0x3F,0xA8,0x5F,0xB8,0x5F,0xC8,0x3F,0xB8,0x5F,0x88,0x7F, +0x0A,0xF5,0x2B,0xFC,0x12,0xFD,0x1B,0xFC,0x12,0xFD,0x2B,0xFC,0x12,0xFD,0x2B,0xFC, +0x45,0xFF,0x26,0xFD,0xA9,0xDE,0xA5,0xDF,0x4D,0xBE,0x54,0xEF,0x55,0xFF,0x4E,0xBB, +0x2B,0xF5,0xB2,0xFD,0xA9,0xF7,0x7B,0xF5,0x81,0xFF,0xFA,0x75,0x51,0xFF,0xBA,0xF5, +0x00,0xFF,0x80,0xFF,0x01,0xFE,0x81,0xFE,0x03,0xFC,0x83,0xFC,0x83,0xFC,0x83,0xFC, +0xFF,0x03,0xFD,0x03,0x7E,0x81,0x5E,0xA1,0xFF,0x00,0xBC,0x43,0x79,0x86,0xFD,0x02, +0xEF,0xF0,0xF7,0xF8,0xFF,0xF8,0xFB,0xFC,0xF9,0x7E,0x3D,0xFE,0x7F,0xBE,0x3E,0xFF, +0x61,0x9F,0x15,0xFB,0xF1,0x1E,0xFC,0x1F,0xF5,0x1A,0xED,0x1E,0xDA,0x3D,0xFC,0x1F, +0xA8,0x57,0x6D,0xDA,0x49,0xBF,0xD6,0xAD,0x34,0xEF,0x57,0xAD,0xC8,0x77,0xDE,0x75, +0x5B,0xEF,0x57,0xED,0x1F,0xFB,0xA5,0xDF,0x1D,0xFA,0xD6,0x6D,0x5A,0xB5,0xDF,0xAA, +0x69,0xF6,0x75,0xDA,0x93,0xEC,0xDB,0x74,0x55,0xAA,0x77,0xA8,0xAB,0x54,0x6F,0xB0, +0x7B,0xFC,0x9B,0xFC,0x7B,0xFC,0x58,0xFF,0xD8,0xFF,0x70,0xFF,0xB8,0xFF,0xD8,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xF0,0x0F,0xF0,0x0F,0xC0,0x3F,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0x97,0xEC,0xA2,0xDF,0x94,0xEF,0xAB,0xD4,0x9A,0xEF,0xAA,0xD7,0x9A,0xED,0xD6,0xEF, +0x57,0xA8,0xA7,0x58,0x7B,0xAC,0x23,0xFC,0xFB,0x74,0x51,0xFE,0xAB,0x54,0x89,0x76, +0xC8,0x3F,0xC8,0x3F,0x98,0x7F,0xC8,0x3F,0xA8,0x5F,0xC8,0x3F,0x98,0x7F,0xE8,0x1F, +0x12,0xFD,0x2B,0xFC,0x12,0xFD,0x1B,0xFC,0x15,0xFA,0x39,0xFE,0x16,0xF9,0x1B,0xFC, +0x31,0xEF,0xD5,0x3A,0xA8,0x57,0x4B,0xB4,0xF4,0x0B,0x55,0xAA,0xB5,0x4A,0xDA,0x25, +0xA1,0xFF,0xBB,0xF5,0xA0,0xFF,0x4A,0xB5,0xAB,0x55,0x50,0xAF,0x53,0xAD,0xA8,0x57, +0x07,0xF8,0x83,0xFC,0x86,0xF9,0x83,0xFC,0x85,0xFA,0x87,0xF8,0x83,0xFC,0x85,0xFA, +0x72,0x8D,0xF2,0x0D,0xF8,0x07,0xD4,0x2B,0xEF,0x19,0xF6,0x09,0xFF,0x00,0xFD,0x02, +0x3F,0xFF,0xBF,0x7F,0x9F,0x7F,0x3F,0xFF,0xDF,0x7F,0xDF,0x7F,0x8F,0xFF,0xAF,0x7F, +0x7F,0x80,0x7F,0x80,0xBF,0xC0,0xBF,0xC0,0xDF,0xE0,0x6F,0xF0,0xE7,0xF8,0x7F,0xF8, +0xFF,0x00,0xFE,0x01,0xFD,0x02,0xFD,0x02,0xFA,0x05,0xF9,0x06,0xF1,0x0E,0xF3,0x0C, +0xDA,0x3D,0x9D,0x7E,0x7F,0xBC,0x7D,0xBE,0x7D,0xBE,0x5D,0xFE,0x6F,0xFC,0xE9,0x7E, +0xA2,0x5F,0xFF,0x03,0x7A,0x85,0xFD,0x02,0xFF,0x00,0xFF,0x00,0x7F,0x80,0xFF,0x00, +0x54,0xEB,0xFF,0x00,0xFF,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, +0x78,0xFF,0x58,0xFF,0xF0,0xFF,0x38,0xFF,0xF8,0xFF,0x38,0xFF,0xF8,0xFF,0x98,0xFF, +0x93,0xEE,0xEE,0xD3,0x8B,0xF4,0xD0,0xEF,0xAA,0xD5,0xCA,0xF5,0x92,0xED,0x8A,0xF5, +0x65,0xDA,0x35,0xFA,0xAB,0x74,0xD5,0x2A,0x55,0xAA,0x94,0x6B,0xAA,0x55,0x95,0x6A, +0x88,0x7F,0xC8,0x3F,0xC8,0x3F,0x48,0xBF,0x88,0x7F,0xE8,0x1F,0x88,0x7F,0x48,0xBF, +0x12,0xFD,0x12,0xFD,0x1B,0xFC,0x0B,0xFF,0x2F,0xFF,0x16,0xFF,0x00,0xFF,0x00,0xFF, +0xAA,0x55,0xEA,0x15,0x10,0xEF,0x7F,0xFF,0xFF,0xFF,0xBA,0xFF,0x00,0xFF,0x00,0xFF, +0x52,0xAD,0xAA,0x55,0x57,0xFF,0xFF,0xFF,0xFE,0xFF,0xA8,0xFF,0x04,0xFF,0x00,0xFF, +0x83,0xFC,0x81,0xFE,0x41,0xFE,0x83,0xFC,0x83,0xFC,0x01,0xFE,0x01,0xFE,0x01,0xFE, +0x4F,0xBF,0xC7,0x3E,0xCF,0x3F,0xE6,0x1F,0xD7,0x2F,0xD6,0x2F,0xE7,0x1F,0xA6,0x5F, +0xD7,0xF8,0xFF,0xF0,0xEF,0xB0,0xEF,0xF0,0x7F,0xD0,0xBF,0xC8,0x7F,0x82,0xFF,0x00, +0xE7,0x18,0xE1,0x1F,0xEF,0x1F,0xAD,0x5F,0xD7,0x3F,0x9B,0x7F,0x3F,0xFB,0x3F,0xFF, +0x7F,0xFC,0xD9,0xFE,0xFB,0xEC,0xF9,0xFE,0xBA,0xED,0xE9,0xFE,0xF5,0x7E,0xF9,0xFE, +0x7F,0x80,0xFF,0x00,0x4A,0xB5,0xFF,0x3F,0xBF,0x7F,0xFF,0x3F,0x7F,0xBF,0x80,0x7F, +0xFF,0x00,0xFF,0x00,0x5F,0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x10,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAD,0xFF, +0x70,0xFF,0xF8,0xFF,0xB8,0xFF,0xF8,0xFF,0xD8,0xFF,0xF0,0xFF,0xF8,0xFF,0x50,0xFF, +0x00,0xFF,0x00,0xFF,0x04,0xFF,0x00,0xFF,0x04,0xFF,0x00,0xFF,0x2A,0xFF,0x00,0xFF, +0xB2,0xDD,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0xFF, +0x44,0xBB,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x6A,0xFF,0x01,0xFF, +0x18,0xFF,0x18,0xFF,0xF8,0xFF,0xF8,0xFF,0xF8,0xFF,0xC0,0xFF,0x00,0xFF,0x00,0xFF, +0x08,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, +0xFF,0x00,0xFF,0x00,0xFF,0x00,0x3F,0xC0,0x7F,0x80,0x7F,0x80,0x3F,0xC0,0x3F,0xC0, +0xD5,0x2E,0xC3,0x3C,0x87,0x78,0x9F,0x60,0x7F,0x80,0x7F,0x80,0xFF,0x00,0xFF,0x00, +0xF8,0x07,0xFF,0x00,0xFA,0x05,0xFF,0x01,0xE9,0x17,0xFD,0x03,0xAB,0x57,0xDB,0x27, +0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xBD,0xFE,0xF5,0xFE,0xFD,0xBE,0xFD,0xFE,0xFC,0xFF,0xFD,0xFE,0xF9,0xFE,0xF0,0xFF, +0x40,0xBF,0x40,0xBF,0x80,0x7F,0x80,0x7F,0xC0,0x3F,0x40,0xBF,0x80,0x7F,0xC2,0x3F, +0x10,0xFF,0x14,0xFF,0x80,0xFF,0x28,0xFF,0x10,0xFF,0x88,0xFF,0x00,0xFF,0x00,0xFF, +0x1F,0xE0,0x1F,0xE0,0x1F,0xE0,0x0F,0xF0,0x0E,0xF1,0x07,0xF8,0x07,0xF8,0x03,0xFC, +0xFF,0x00,0xFF,0x00,0xFE,0x01,0xFE,0x01,0xF5,0x0A,0xF5,0x0A,0xD8,0x27,0xEA,0x15, +0x6F,0x97,0xA7,0x5F,0xAF,0x5F,0x9F,0x7F,0x5F,0xBF,0x3F,0xFF,0xBF,0x7F,0x7F,0xFF, +0xF3,0xFC,0xF0,0xFF,0xE9,0xFE,0xF0,0xFF,0xE1,0xFE,0xF8,0xFF,0xF1,0xFE,0xF8,0xFF, +0x94,0x7F,0xDF,0x3F,0x9F,0x7F,0xDF,0x3F,0x5F,0xBF,0x5F,0xBF,0x7F,0x9F,0x4F,0xBF, +0x07,0xF8,0x01,0xFE,0x04,0xFF,0x06,0xFF,0x07,0xFF,0x07,0xFF,0x07,0xFF,0x03,0xFF, +0x84,0x7B,0x45,0xBB,0x13,0xEF,0x07,0xFF,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF, +0xF9,0xFE,0xFC,0xFF,0xF9,0xFE,0xFE,0xFF,0xFC,0xFF,0xFF,0xFF,0xFD,0xFF,0xFD,0xFF, +0x6F,0x9F,0x2F,0xDF,0x57,0xAF,0x57,0xAF,0x17,0xEF,0x17,0xEF,0x2B,0xD7,0x8B,0xF7, +0x0F,0xFF,0x07,0xFF,0x0F,0xFF,0x07,0xFF,0x0F,0xFF,0x0F,0xFF,0x5F,0xFF,0x0F,0xF7, +0xAB,0xD7,0xCB,0xF7,0xDB,0xE7,0x4B,0xF7,0xCD,0xF3,0xC5,0xFB,0xC9,0x77,0xED,0xF3, +0x1F,0xFE,0x0F,0xFF,0x1B,0xFF,0x0F,0xFF,0x1F,0xFF,0x1F,0xFF,0x3F,0xFF,0x1F,0xEF, +0xE5,0xFB,0xF5,0xFB,0xF5,0xFB,0xF5,0xFB,0xE4,0xFB,0xF2,0xFD,0xF2,0xFD,0xF0,0xFF, +0x3F,0xFF,0x1F,0xFF,0x1F,0xFF,0x1F,0xFF,0x5F,0xFF,0x3F,0xFF,0x3F,0xFF,0x1F,0xFF, +0xF2,0xFD,0xF8,0xFF,0xF8,0xFF,0xFA,0xFD,0xF8,0xFF,0xF8,0xFF,0xF9,0xFE,0xFC,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF}; diff --git a/z_gbdk_playground_original/window/bg.pcx b/z_gbdk_playground_original/window/bg.pcx new file mode 100644 index 0000000000000000000000000000000000000000..cb70c1a036244ae7ba752c358ea7015d13da3b2e GIT binary patch literal 8998 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 literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/window/border.c b/z_gbdk_playground_original/window/border.c new file mode 100644 index 0000000..d5a10a1 --- /dev/null +++ b/z_gbdk_playground_original/window/border.c @@ -0,0 +1,48 @@ +/* + + BORDER.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 8 + + Palette colors : None. + 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 border[] = +{ + 0x00,0x00,0x1F,0x1F,0x20,0x20,0x4F,0x4F, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x4F,0x4F,0x20,0x20,0x1F,0x1F,0x00,0x00, + 0x00,0x00,0xF8,0xF8,0x04,0x04,0xF2,0xF2, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0xF2,0xF2,0x04,0x04,0xF8,0xF8,0x00,0x00, + 0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +/* End of BORDER.C */ diff --git a/z_gbdk_playground_original/window/border.gbr b/z_gbdk_playground_original/window/border.gbr new file mode 100644 index 0000000000000000000000000000000000000000..44eca1e5a34ceb4135d365e442c2e817dec47a94 GIT binary patch literal 10069 zcmeI2J5Iwu5QZml65J38xPVJ&45Uj+3n_F^P+A~6UWEuhBAdvhf!u)eP;(J(Kn{Qe zyXz-zB00#U_{Wayncba#_FH$Ev2k_QBBCe$8(SW;gQa#ebD4I*qS@4EA&)0E&lE^G-memb!>u%>)@zcb$W!&V z;F{M~|7h|Qwf2TZAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00O&1K%q7r@p5?Ig1kll!nZW)@c*XY<W?p$v4p#@8_g_-UedPNUP?L1d2OF0AIjP9mhWw^8<;UfXM&= literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/window/border.h b/z_gbdk_playground_original/window/border.h new file mode 100644 index 0000000..407e89d --- /dev/null +++ b/z_gbdk_playground_original/window/border.h @@ -0,0 +1,31 @@ +/* + + BORDER.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 8 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ + + +/* Bank of tiles. */ +#define borderBank 0 +/* Start of tile array. */ +extern unsigned char border[]; + +/* End of BORDER.H */ diff --git a/z_gbdk_playground_original/window/main.c b/z_gbdk_playground_original/window/main.c new file mode 100644 index 0000000..ca83891 --- /dev/null +++ b/z_gbdk_playground_original/window/main.c @@ -0,0 +1,19 @@ +#include + +#include "bg.c" +#include "bg.map" +#include "border.c" +#include "window.c" + +void main() { + set_bkg_data(0, 152, bg_tiledata); + set_bkg_tiles(0, 0, 20, 18, bg_tilemap); + + SHOW_BKG; + + set_win_data(152, 9, border); + set_win_tiles(0, 0, 20, 4, window); + move_win(7, 112); + + SHOW_WIN; +} \ No newline at end of file diff --git a/z_gbdk_playground_original/window/screenshot.png b/z_gbdk_playground_original/window/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..67df930bd9b9397f85a390f5d8ff602fed6d7f5b GIT binary patch literal 33035 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 Ximnn;mT)n^$`?>6!?dUlT-pEtalf9U literal 0 HcmV?d00001 diff --git a/z_gbdk_playground_original/window/window.h b/z_gbdk_playground_original/window/window.h new file mode 100644 index 0000000..544ce88 --- /dev/null +++ b/z_gbdk_playground_original/window/window.h @@ -0,0 +1,27 @@ +/* + + WINDOW.H + + Map Include File. + + Info: + Section : + Bank : 0 + Map size : 20 x 4 + Tile set : P:\Homebrew\GB\gbdk_playground\window\border.gbr + Plane count : 1 plane (8 bits) + Plane order : Tiles are continues + Tile offset : 152 + Split data : No + + This file was generated by GBMB v1.8 + +*/ + +#define windowWidth 20 +#define windowHeight 4 +#define windowBank 0 + +extern unsigned char window[]; + +/* End of WINDOW.H */