> /7G>/Gx>0GC* "   *    A "    A *  C1?1?BaIIBBB2ßD>|| ; Tile size : 8 xZff s nٙgcnܙ3>KIRBY XXLG*ºĀȀˀ̀΀ъӊԊ֊܊ 뀀캺Ā񀀀򀀀̀΀ ! >"  ! A >"  >GHI!> w,$C2,$C2 DB $FC,$C2,$C2,$FC,$00,$3C,$66,$02 DB $C0,$C4,$66,$3C,$00,$F8,$CC,$02 DB $C6,$C9,$CC,$F8,$00,$FE,$C0,$C0 DB $FC,$C0,$C0,$FE,$86,$F8,$FF,$CB DB $C0,$00,$7C,$C6,$C0,$DE,$C6,$C6 DB $7C,$00,$C6,$C6,$83,$C9,$FF,$C2 DB $C6,$00,$7\L<<<<'F>(= ̀>@>G>'H>I>!eͭ  ́ f ̀>@A>E>v>B>C̀D(!< >!'_*_V >PX! A ""  Ë}ix= >#=! " >C>B>E>BC>EBC( =& O= >&GO< >==P ><<>I 2>}E> -> (> #>@ .> )> $> >((> (<(=ɀwelcometokirbyxxl}contestorforthegameboycompetition`_~soyouthoughtspritescouldbeonly_xX]pixelswide|well}hereisa__x`]pixelswidekirbytoprovethatthegameboyiscapableofalotmorethanyouthink|anditdoesnotendhere|youcanchangehisspeedbyusingthekeypad}sowhynotlookatkirbymovingattopspeedbypressingupacoupleoftimes~kirbyxxlwaswrittenusingrgbds|thegraphicsweredrawnusingseveralgraphic~editorsandexportedusinggbtd~havealookatmyhomepageathome|worldonline|nl{hpmulder{gb{main|htmlforgbprogrammingandotherdemos~greetingstoallmembersofthegb~mailinglist~harrymulder= Z>< J>og# } !}|MD! >> >ù !A *= >>>>#>>!VpL! ! >W >"z"Wx">" Г!!!ƚ=A z"  !J<>'"z"Wx">" P!!@A >U" !!""">" ;<??C|?8ǀpԀ ?0`Q8tBAa3 ĀͿ`0@`C ``C??~{v`p0Ј }Dž?r?|bL~~q  8D0ǀp bqaр @ǽ~p]΀@o<tH"?`?__C/??? B@_`/p88 (G8p@y0?S 8˿O7x >???Pp+.$(p8&0?`vrqxԀ0 a  ?0/0? ? 8C ? 0$f>DXB=~x0?`-Bƿ,?426`@|@? 3{vlXp`0? 0LBhxr€@p7Zj?`o񿆴À`db 0 B   .00$B$88lD>]cAABÿB@  }B BdLïhBB@?  D@^a?࿠Fο LLB<<8B3BgB~~`@@*(i 3w ?> 8 ldh [$46],a ld a,$28 .Wait\@: dec a jr nz,.Wait\@ IF (STRCMP(STRUPR("\2"), "AUTO") == 0) pop af reti ELSE ret ENDC .SpriteCopyEnd\@: .L3\@: te)SetupSpriteHandler== "-" ) db Minus ENDC IF ( TXTCHR == "." ) db Period ENDC ;IF ( TXTCHR == "," ) ; Doesn't work; seems to be a bug in RGBDS ; db Komma ;ENDC IF ( TXTCHR == "/" ) db Slash ENDC TXTCN;b] call $FF80 )SpriteRefreshVh)CloudSkipCnt#BD)CloudYIPB+)TextSkipPBh!" "!" " _15!" " _16!" " _17 _18_19<8P8PLoadGBCompressPatterns ;* setup sprites * ld hl,SpriteRAM + (7 * 4) ld de,BackMap ;de = background info table ld c,30 .L1:ld a,[de] ld [hl+],a inc de ld a,[de] ld [hl+],a inc de ld a,[de] ld [hl+],a inc de ld a,%10000000 ld [hl+],a dec c jr nz, .L1 ret ;* End of KIRBYXXL.Z80 * ld hl, ScrollerTxt ; Reset to first c_8P8P WaitForVRAM ld a,[hl+] ld [de],a inc de inc bc pop af dec a jr nz, .L1 .L9: ret ;***************************************** ;* * ;* SETUP FUNCTIONS * ;* * ;***************************************** InitVars: ;**************************************************** ;* Initialize all variables to their default values * ;**************************************************** ld a,FrameSkipDefault ld [FrameSkipCnt],a ld [FrameSkip],a ld a, TextSkipCnt ld [TextSkip],a ld a,CloudXStart ld [CloudX],a ld a,CloudSkipCnt ld [CloudSkip],a ld a,6 ld [KirbyYTop],a ld [KirbyYChg],a ld a,0 ld [UpdateFrame],a ld [KirbyFrame],a ld [KirbyY],a ld [KirbyX],a ld [KirbyYDir],a ld [TextPos],a ld [TextPos+1],a ld [TextX],a ret SetupChars: ;************************ ;* Load text characters * ;************************ ld hl,TextTiles ld de,$8800 + ((256 - (10+26+5)) * 16) call LoadBWGBCompressPatterns ret SetupKirby: ;***************************** ;* Do initial work for Kirby * ;***************************** ;* load patterns * ld hl,KirbyTiles ld de,$8800 call LoadGBCompressPatterns ret SetupCloud: ;********************************* ;* Do initial work for the cloud * ;********************************* ;* setup the sprites * ld hl, SpriteRAM + ( 3 * 4 ) ld a,CloudXStart ld d,a ; d = x-pos ld e,8 ; x-pos vector ld b,32 ; first cloud-tile ld c,4 .L1:ld a, CloudY ; Y pos ld [hl+],a ld a,d ; X pos ld [hl+],a add e ld d,a ld a,b ; Tile ld [hl+],a inc b inc b ld a,%10000000 ld [hl+],a dec c jr nz, .L1 ret SetupTitle: ;********************************* ;* Do initial work for the cloud * ;********************************* ;* load patterns for top part * ld de, $8800 + ((256 - (43 + 24)) *16) ld hl, TitleTiles call LoadGBCompressPatterns ;* load patterns for bottom part * ld hl,XXLTiles ld de,$8000 + (30 * 2 * 16 ) call LoadGBCompressPatterns ld hl,$9800 + ((11 + 11) * 32) + 6 ld d, -128 + (256 - (43 + 24)) ;* setup top part * ld b, 3 .L1: ld c, 8 .L2: WaitForVRAM ld a,d ld [hl+],a inc d dec c jr nz, .L2 push de ld de,32-8 add hl,de pop de dec b jr nz, .L1 ;* setup bottom part * ld hl, SpriteRAM ld d,74 ld e,8 ld b, 30*2 ld c, 3 .L3:ld a, 39 ld [hl+],a ld a,d ld [hl+],a add e ld d,a ld a,b ld [hl+],a inc b inc b ld a,%00010000 ld [hl+],a dec c jr nz, .L3 ret SetupBase: ;************************************* ;* Do initial work for the base-line * ;************************************* ;* load patterns for bottom part * ld de, $8800 + ((256 - (41 + 2)) *16) ld hl, ExtraTiles call LoadGBCompressPatterns ;* draw the line on screen * ld hl,$9800 + ((7 + 11) * 32) ld c,20 .L1:WaitForVRAM ld a, -128+(256 - (41 + 2)) ld [hl+],a dec c jr nz, .L1 ret SetupBackGround: ;************************************** ;* Do initial work for the background * ;************************************** ;* load patterns * ld hl,BackTiles ld de,$8000 )TextSkipCntB8[(TextPosB$8)TextPosB(TextXB)TextXB,h CLKirbyB?)CLKirbyBT@ nB<@)CLBase}B8(CLText}B!)CLTextBxSpaceBD)SpaceBP<,BC)TilteB(MinusB)Minus~BxQPKomma~B:)Komma}Bi(<}B)Period|BT(Slash|B,  ty TXTCNT SET 1 REPT STRLEN("\1") TXTCHR SET STRSUB("\1", TXTCNT, 1) IF ( TXTCHR >= "0" ) && ( TXTCHR <= "9" ) db (128-10-26-5) + TXTCHR - "0" ENDC IF ( TXTCHR >= "A" ) && ( TXTCHR <= "Z" ) db (128-10-26-5) + TXTCHR - "A" + 10 ENDC IF ( TXTCHR == " " ) db Space ENDC IF ( TXTCHR == "~" ) db Tilte ENDC IF ( TXTCHR == "-" ) db Minus ENDC IF ( TXTCHR == "." ) db Period ENDC IF ( TXTCHR == "/" ) db Slash ENDC TXTCNT SET TXTCNT + 1 ENDR )Txt8Po)VBlank_int*************************************************** ;* * ;* GBTD Library * ;* * ;* iA,GlG )