diff options
Diffstat (limited to 'engine/sprites.asm')
-rwxr-xr-x | engine/sprites.asm | 4032 |
1 files changed, 2720 insertions, 1312 deletions
diff --git a/engine/sprites.asm b/engine/sprites.asm index 517428007..82c50f743 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -1,1480 +1,2888 @@ -GetEmote2bpp: ; 1412a - ld a, $1 - ld [rVBK], a - call Get2bpp - xor a - ld [rVBK], a +Function8cf53: ; 8cf53 + ld hl, wc300 + ld bc, wc3c1 - wc300 +.loop + ld [hl], $0 + inc hl + dec bc + ld a, c + or b + jr nz, .loop ret -; 14135 +; 8cf62 -_ReplaceKrisSprite:: ; 14135 - call GetPlayerSprite - ld a, [UsedSprites] - ld [hUsedSpriteIndex], a - ld a, [UsedSprites + 1] - ld [hUsedSpriteTile], a - call Function143c8 +Function8cf62: ; 8cf62 + call Function8cf69 + call DelayFrame ret -; 14146 +; 8cf69 -Function14146: ; 14146 - ld hl, wSpriteFlags - ld a, [hl] +Function8cf69: ; 8cf69 + push hl + push de + push bc push af - res 7, [hl] - set 6, [hl] - call RunCallback_04 - pop af - ld [wSpriteFlags], a - ret -; 14157 -Function14157: ; 14157 - ld hl, wSpriteFlags - ld a, [hl] - push af - set 7, [hl] - res 6, [hl] - call RunCallback_04 + ld a, $0 + ld [wc3b5], a + call Function8cf7a + pop af - ld [wSpriteFlags], a + pop bc + pop de + pop hl ret -; 14168 +; 8cf7a -RefreshSprites:: ; 14168 - call .Refresh - call RunCallback_04 - ret -; 1416f +Function8cf7a: ; 8cf7a + ld hl, wc314 + ld e, 10 ; There are 10 structs here. -.Refresh: ; 1416f - xor a - ld bc, UsedSpritesEnd - UsedSprites - ld hl, UsedSprites - call ByteFill - call GetPlayerSprite - call AddMapSprites - call LoadAndSortSprites - ret -; 14183 - -GetPlayerSprite: ; 14183 -; Get Chris or Kris's sprite. - ld hl, .Chris - ld a, [wPlayerSpriteSetupFlags] - bit 2, a - jr nz, .go - ld a, [PlayerGender] - bit 0, a - jr z, .go - ld hl, .Kris - -.go - ld a, [PlayerState] - ld c, a .loop - ld a, [hli] - cp c - jr z, .good - inc hl - cp $ff + ld a, [hl] + and a + jr z, .next ; This struct is deinitialized. + ld c, l + ld b, h + push hl + push de + call Function8d24b ; Uses a massive jumptable + call Function8d04c + pop de + pop hl + jr c, .done + +.next + ld bc, $10 + add hl, bc + dec e jr nz, .loop -; Any player state not in the array defaults to Chris's sprite. - xor a ; ld a, PLAYER_NORMAL - ld [PlayerState], a - ld a, SPRITE_CHRIS - jr .finish + ld a, [wc3b5] + ld l, a + ld h, Sprites / $0100 -.good - ld a, [hl] +.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) + ld a, l + cp SpritesEnd % $100 + jr nc, .done + xor a + ld [hli], a + jr .loop2 -.finish - ld [UsedSprites + 0], a - ld [PlayerSprite], a - ld [PlayerObjectSprite], a +.done ret +; 8cfa8 + +Function8cfa8: ; 8cfa8 (23:4fa8) + ld hl, wc314 + ld e, 10 -.Chris - db PLAYER_NORMAL, SPRITE_CHRIS - db PLAYER_BIKE, SPRITE_CHRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff +.loop + ld a, [hl] + and a + jr z, .next + ld c, l + ld b, h + push hl + push de + call Function8d24b ; Uses a massive jumptable + call Function8d04c + pop de + pop hl + jr c, .done -.Kris - db PLAYER_NORMAL, SPRITE_KRIS - db PLAYER_BIKE, SPRITE_KRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff -; 141c9 +.next + ld bc, $10 + add hl, bc + dec e + jr nz, .loop + ld a, [wc3b5] + ld l, a + ld h, (Sprites + $40) / $100 -AddMapSprites: ; 141c9 - call GetMapPermission - call CheckOutdoorMap - jr z, .outdoor - call AddIndoorSprites - ret +.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40) + ld a, l + cp (Sprites + $40) % $100 + jr nc, .done + xor a + ld [hli], a + jr .loop2 -.outdoor - call AddOutdoorSprites +.done ret -; 141d9 - -AddIndoorSprites: ; 141d9 - ld hl, Map1ObjectSprite - ld a, 1 -.loop +Function8cfd6:: ; 8cfd6 +; Find if there's any room in the wc314 array, which is 10x16 + push de push af + ld hl, wc314 + ld e, 10 +.loop ld a, [hl] - call AddSpriteGFX - ld de, OBJECT_LENGTH - add hl, de - pop af - inc a - cp NUM_OBJECTS + and a + jr z, .found + ld bc, $10 + add hl, bc + dec e jr nz, .loop +; We've reached the end. There is no more room here. +; Return carry. + pop af + pop de + scf ret -; 141ee +.found +; Back up the structure address to bc. + ld c, l + ld b, h +; Value [wc3b4] is initially set to -1. Set it to +; the number of objects loaded into this array. + ld hl, wc3b4 + inc [hl] + ld a, [hl] + and a + jr nz, .initialized + inc [hl] -AddOutdoorSprites: ; 141ee - ld a, [MapGroup] - dec a - ld c, a - ld b, 0 - ld hl, OutdoorSprites -rept 2 +.initialized +; Get row a of Unknown_8d1c4, copy the pointer into de + pop af + ld e, a + ld d, 0 + ld hl, Unknown_8d1c4 +rept 3 + add hl, de +endr + ld e, l + ld d, h +; Set hl to the first field (field 0) in the current structure. + ld hl, 0 add hl, bc +; Load the index. + ld a, [wc3b4] + ld [hli], a +; Copy the table entry to the next two fields. + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de +; Look up the third field from the table in the wc300 array (10x2). +; Take the value and load it in + ld a, [de] + call LookUpInwDict_c300 + ld [hli], a + pop de +; Set hl to field 4. Kinda pointless, because we're presumably already here. + ld hl, $4 + add hl, bc +; Load the original value of de into here. + ld a, e + ld [hli], a + ld a, d + ld [hli], a +; load 0 into the next four fields + xor a +rept 2 + ld [hli], a +endr + xor a +rept 2 + ld [hli], a endr +; load -1 into the next field + dec a + ld [hli], a +; load 0 into the last five fields + xor a +rept 4 + ld [hli], a +endr + ld [hl], a +; back up the address of the first field to wc3b8 + ld a, c + ld [wc3b8], a + ld a, b + ld [wc3b8 + 1], a + ret +; 8d036 + +Function8d036: ; 8d036 +; Clear the index field of the struct in bc. + ld hl, 0 + add hl, bc + ld [hl], $0 + ret +; 8d03d + + +Function8d03d: ; 8d03d (23:503d) +; Clear the index field of every struct in the wc314 array. + ld hl, wc314 + ld bc, $10 + ld e, 10 + xor a +.loop + ld [hl], a + add hl, bc + dec e + jr nz, .loop + ret + + +Function8d04c: ; 8d04c +; Populate Sprites with the bouncing mon icons + call Function8d0ec ; init WRAM + call Function8d132 ; read from a memory array + cp -3 + jr z, .done + cp -4 + jr z, .almost + call Function8d1a2 ; read from a pointer table + ld a, [wc3ba] + add [hl] + ld [wc3ba], a + inc hl ld a, [hli] ld h, [hl] ld l, a - ld c, MAX_OUTDOOR_SPRITES -.loop push bc + ld a, [wc3b5] + ld e, a + ld d, Sprites / $100 ld a, [hli] - call AddSpriteGFX - pop bc + ld c, a +.loop + ld a, [wc3bc] + ld b, a + ld a, [wc3be] + add b + ld b, a + ld a, [wc3bf] + add b + ld b, a + call Function8d0be + add b + ld [de], a + inc hl + inc de + ld a, [wc3bb] + ld b, a + ld a, [wc3bd] + add b + ld b, a + ld a, [wc3c0] + add b + ld b, a + call Function8d0ce + add b + ld [de], a + inc hl + inc de + ld a, [wc3ba] + add [hl] + ld [de], a + inc hl + inc de + call Function8d0de + ld [de], a + inc hl + inc de + ld a, e + ld [wc3b5], a + cp SpritesEnd % $100 + jr nc, .outofroom dec c jr nz, .loop - ret -; 14209 + pop bc + jr .done +.almost + call Function8d036 -RunCallback_04: ; 14209 - ld a, $4 - call RunMapCallback - call Function1439b - call Function14215 +.done + and a ret -; 14215 -Function14215: ; 14215 - ld a, [wSpriteFlags] - bit 6, a - ret nz - ld c, EMOTE_08 - callba LoadEmote - call GetMapPermission - call CheckOutdoorMap - ld c, EMOTE_0B - jr z, .outdoor - ld c, EMOTE_0A - -.outdoor - callba LoadEmote +.outofroom + pop bc + scf ret -; 14236 +; 8d0be +Function8d0be: ; 8d0be + push hl + ld a, [hl] + ld hl, wc3b8 + bit 6, [hl] + jr z, .ok + add $8 + xor $ff + inc a +.ok + pop hl + ret +; 8d0ce -SafeGetSprite: ; 14236 +Function8d0ce: ; 8d0ce push hl - call GetSprite + ld a, [hl] + ld hl, wc3b8 + bit 5, [hl] + jr z, .ok + add $8 + xor $ff + inc a + +.ok pop hl ret -; 1423c +; 8d0de -GetSprite: ; 1423c - call GetMonSprite - ret c +Function8d0de: ; 8d0de + ld a, [wc3b8] + ld b, a + ld a, [hl] + xor b + and $e0 + ld b, a + ld a, [hl] + and $1f + or b + ret +; 8d0ec - ld hl, SpriteHeaders ; address - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ; load the address into de +Function8d0ec: ; 8d0ec + xor a + ld [wc3b8], a + ld hl, $3 + add hl, bc ld a, [hli] - ld e, a + ld [wc3ba], a ld a, [hli] - ld d, a - ; load the length into c + ld [wc3bb], a ld a, [hli] - swap a - ld c, a - ; load the sprite bank into both b and h - ld b, [hl] + ld [wc3bc], a ld a, [hli] - ; load the sprite type into l - ld l, [hl] - ld h, a + ld [wc3bd], a + ld a, [hli] + ld [wc3be], a ret -; 14259 +; 8d109 +LookUpInwDict_c300: ; 8d109 +; a = wDict_c300[a] if a in wDict_c300 else 0 + push hl + push bc + ld hl, wDict_c300 + ld b, a + ld c, 10 +.loop + ld a, [hli] + cp b + jr z, .ok + inc hl + dec c + jr nz, .loop + xor a + jr .done -GetMonSprite: ; 14259 -; Return carry if a monster sprite was loaded. +.ok + ld a, [hl] - cp SPRITE_POKEMON - jr c, .Normal - cp SPRITE_DAYCARE_MON_1 - jr z, .wBreedMon1 - cp SPRITE_DAYCARE_MON_2 - jr z, .wBreedMon2 - cp SPRITE_VARS - jr nc, .Variable - jr .Icon +.done + pop bc + pop hl + ret +; 8d120 -.Normal - and a +Function8d120:: ; 8d120 + ld hl, $1 + add hl, bc + ld [hl], a + ld hl, $8 + add hl, bc + ld [hl], $0 + ld hl, $a + add hl, bc + ld [hl], $ff ret +; 8d132 -.Icon - sub SPRITE_POKEMON - ld e, a - ld d, 0 - ld hl, SpriteMons - add hl, de - ld a, [hl] - jr .Mon -.wBreedMon1 - ld a, [wBreedMon1Species] - jr .Mon +Function8d132: ; 8d132 +.loop + ld hl, $8 + add hl, bc + ld a, [hl] + and a + jr z, .ok + dec [hl] + call Function8d189 + ld a, [hli] + push af + jr .skip -.wBreedMon2 - ld a, [wBreedMon2Species] +.ok + ld hl, $a + add hl, bc + inc [hl] + call Function8d189 + ld a, [hli] + cp $fe + jr z, .minus_2 + cp $ff + jr z, .minus_1 + push af + ld a, [hl] + push hl + and $3f + ld hl, $9 + add hl, bc + add [hl] + ld hl, $8 + add hl, bc + ld [hl], a + pop hl -.Mon - ld e, a - and a - jr z, .NoBreedmon +.skip + ld a, [hl] + and $c0 + srl a + ld [wc3b8], a + pop af + ret - callba Function8e82b +.minus_1 + xor a + ld hl, $8 + add hl, bc + ld [hl], a + ld hl, $a + add hl, bc +rept 2 + dec [hl] +endr + jr .loop - ld l, 1 +.minus_2 + xor a + ld hl, $8 + add hl, bc + ld [hl], a + dec a + ld hl, $a + add hl, bc + ld [hl], a + jr .loop +; 8d189 + +Function8d189: ; 8d189 + ; Get the [bc+10]th entry in the data table + ; indexed at [bc+1] in Unknown_8d6e6 + ld hl, $1 + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Unknown_8d6e6 +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $a + add hl, bc + ld l, [hl] ld h, 0 - scf + add hl, hl + add hl, de ret +; 8d1a2 -.Variable - sub SPRITE_VARS +Function8d1a2: ; 8d1a2 ld e, a ld d, 0 - ld hl, VariableSprites + ld hl, Unknown_8d94d +rept 3 add hl, de - ld a, [hl] - and a - jp nz, GetMonSprite - -.NoBreedmon - ld a, 1 - ld l, 1 - ld h, 0 - and a +endr ret -; 142a7 - - -_DoesSpriteHaveFacings:: ; 142a7 -; Checks to see whether we can apply a facing to a sprite. -; Returns carry unless the sprite is a Pokemon or a Still Sprite. - cp SPRITE_POKEMON - jr nc, .only_down +; 8d1ac +Function8d1ac: ; unreferenced push hl + ld l, a + ld h, 0 +rept 2 + add hl, hl +endr + ld de, Unknown_8e706 ; broken 2bpp pointers + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + inc hl + ld e, [hl] + inc hl + ld d, [hl] + pop hl push bc - ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type - dec a - ld c, a - ld b, 0 - ld a, NUM_SPRITEHEADER_FIELDS - call AddNTimes - ld a, [hl] + call Request2bpp pop bc - pop hl - cp STILL_SPRITE - jr nz, .only_down - scf + ret +; 8d1c4 + +Unknown_8d1c4: ; 8d1c4 + db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00 + db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01 + db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02 + db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03 + db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04 + db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05 + db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06 + db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07 + db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08 + db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09 + db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a + db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b + db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c + db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d + db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e + db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f + db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10 + db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11 + db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12 + db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13 + db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14 + db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15 + db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16 + db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17 + db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18 + db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19 + db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a + db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b + db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c + db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d + db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e + db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f + db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20 + db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21 + db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22 + db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23 + db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24 + db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25 + db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26 + db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27 + db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28 + db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29 + db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a + db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b + db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c +; 8d24b + + +Function8d24b: ; 8d24b + ld hl, $2 ; field 2, see the second column in the above table + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, .Jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8d25b + + +.Jumptable: ; 8d25b (23:525b) + dw .zero ; town map + dw .one ; bouncing mon icons + dw .two + dw .three + dw .four + dw .five + dw .six ; Game Freak logo + dw .seven + dw .eight + dw .nine + dw .ten + dw .eleven + dw .twelve + dw .thirteen + dw .fourteen + dw .fifteen + dw .sixteen + dw .seventeen + dw .eighteen + dw .nineteen + dw .twenty + dw .twentyone + dw .twentytwo ; flying sprite + dw .twentythree ; flying leaves + dw .twentyfour + dw .twentyfive + dw .twentysix + dw .twentyseven + dw .twentyeight + dw .twentynine ; intro suicune + dw .thirty ; intro pichu wooper + dw .thirtyone + dw .thirtytwo ; intro unown + dw .thirtythree ; intro unown F with suicune leaping up + dw .thirtyfour ; intro suicune facing away from us + + +.zero: ; 8d2a1 (23:52a1) + ret + +.one: ; 8d2a2 (23:52a2) + ld a, [MenuSelection2] + ld hl, 0 + add hl, bc + cp [hl] + jr z, .two + ld hl, $4 + add hl, bc + ld [hl], $10 + ld hl, $7 + add hl, bc + ld [hl], $0 ret -.only_down +.two: ; 8d2b9 (23:52b9) + ld hl, $4 + add hl, bc + ld [hl], $18 + ld hl, $c + add hl, bc + ld a, [hl] + ld d, a + inc [hl] + and $f + ret nz + ld hl, $d + add hl, bc + ld e, [hl] + ld hl, $7 + add hl, bc + ld a, d + and $10 ; bit 4 + jr z, .asm_8d2df + ld a, e and a + jr z, .asm_8d2e6 + cp $1 + jr z, .asm_8d2e2 +.asm_8d2df + xor a + ld [hl], a + ret +.asm_8d2e2 + ld a, $ff + ld [hl], a + ret +.asm_8d2e6 + ld a, $fe + ld [hl], a ret -; 142c4 +.three: ; 8d2ea (23:52ea) + ld a, [MenuSelection2] + ld hl, 0 + add hl, bc + cp [hl] + jr z, .asm_8d2fb + ld hl, $4 + add hl, bc + ld [hl], $10 + ret +.asm_8d2fb + ld hl, $4 + add hl, bc + ld [hl], $18 + ret -_GetSpritePalette:: ; 142c4 - ld a, c - call GetMonSprite - jr c, .is_pokemon +.four: ; 8d302 (23:5302) + call .anonymous_jumptable + jp [hl] +; 8d306 (23:5306) - ld hl, SpriteHeaders + 5 ; palette - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ld c, [hl] +; Anonymous jumptable (see .anonymous_jumptable) + dw .four_zero + dw .four_one +; 8d30a + +.four_zero: ; 8d30a + call .asm_8d6d8 + ld hl, 0 + add hl, bc + ld a, [hl] + ld hl, $d + add hl, bc + and $3 + ld [hl], a + inc [hl] + swap a + ld hl, $c + add hl, bc + ld [hl], a + +.four_one: ; 8d321 + ld hl, $4 + add hl, bc + ld a, [hl] + cp $a4 + jr nc, .asm_8d356 + ld hl, $d + add hl, bc + add $4 + ld hl, $4 + add hl, bc + ld [hl], a + ld hl, $5 + add hl, bc + inc [hl] + ld hl, $d + add hl, bc + ld a, [hl] + sla a + sla a + ld d, $2 + ld hl, $c + add hl, bc + ld a, [hl] + add $3 + ld [hl], a + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a ret -.is_pokemon - xor a - ld c, a +.asm_8d356 + call Function8d036 ret -; 142db +; 8d35a +.twentyfive: ; 8d35a (23:535a) + ld hl, $c + add hl, bc + ld a, [hl] + inc a + ld [hl], a + ld d, $2 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ret -LoadAndSortSprites: ; 142db - call LoadSpriteGFX - call SortUsedSprites - call ArrangeUsedSprites +.five: ; 8d36c (23:536c) + callab Function11a3b ret -; 142e5 +.twelve: ; 8d373 (23:5373) + callab Function120c1 + ret -AddSpriteGFX: ; 142e5 -; Add any new sprite ids to a list of graphics to be loaded. -; Return carry if the list is full. +.six: ; 8d37a (23:537a) + callab GameFreakLogoJumper + ret - push hl - push bc - ld b, a - ld hl, UsedSprites + 2 - ld c, SPRITE_GFX_LIST_CAPACITY - 1 -.loop +.seven: ; 8d381 (23:5381) + ld hl, $c + add hl, bc ld a, [hl] - cp b - jr z, .exists and a - jr z, .new + jr z, .asm_8d3ba rept 2 - inc hl + dec [hl] endr - dec c - jr nz, .loop - - pop bc - pop hl - scf + ld d, a + and $1f + jr nz, .asm_8d395 + ld hl, $d + add hl, bc + dec [hl] +.asm_8d395 + ld hl, $b + add hl, bc + ld a, [hl] + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ld hl, $d + add hl, bc + ld a, [hl] + ld hl, $b + add hl, bc + add [hl] + ld [hl], a ret - -.exists - pop bc - pop hl - and a +.asm_8d3ba + ld a, $1 + ld [wcf64], a + call Function8d036 ret -.new - ld [hl], b - pop bc - pop hl - and a +.eight: ; 8d3c3 (23:53c3) + ld hl, $c + add hl, bc + ld a, [hli] + or [hl] + jr z, .asm_8d41e + ld hl, $f + add hl, bc + ld d, [hl] + ld hl, $b + add hl, bc + ld a, [hl] + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ld hl, $c + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $e + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, $e + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $c + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $fff0 + add hl, de + ld e, l + ld d, h + ld hl, $c + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $b + add hl, bc + ld a, [hl] + xor $20 + ld [hl], a + ret +.asm_8d41e + call Function8d036 ret -; 14306 - -LoadSpriteGFX: ; 14306 -; Bug: b is not preserved, so -; it's useless as a next count. +.nine: ; 8d422 (23:5422) + callab Function9321d + ret - ld hl, UsedSprites - ld b, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [hli] - and a - jr z, .done - push hl - call .LoadSprite - pop hl - ld [hli], a - dec b - jr nz, .loop +.ten: ; 8d429 (23:5429) + callab Function932ac + ld hl, wcf64 + ld a, [hl] + cp $2 + ret nz + ld [hl], $3 + ld a, $f + call Function8d120 + ret -.done +.eleven: ; 8d43e (23:543e) + ld hl, $b + add hl, bc + ld a, [hl] + dec [hl] + ld e, a + and $1 + jr z, .asm_8d462 + ld hl, $4 + add hl, bc + ld a, [hl] + cp $78 + jr c, .asm_8d461 + call Function8d036 + ld a, $4 + ld [wcf64], a + ld de, SFX_PLACE_PUZZLE_PIECE_DOWN + call PlaySFX + ret +.asm_8d461 + inc [hl] +.asm_8d462 + ld a, e + ld d, $20 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a ret -.LoadSprite - call GetSprite - ld a, l +.thirteen: ; 8d46e (23:546e) + callab Functione00ed ret -; 1431e +.fifteen: ; 8d475 (23:5475) + callab Function90d41 + ret -SortUsedSprites: ; 1431e -; Bubble-sort sprites by type. +.fourteen: ; 8d47c (23:547c) + callab Functione21a1 + ret -; Run backwards through UsedSprites to find the last one. +.sixteen: ; 8d483 (23:5483) + call .anonymous_jumptable + jp [hl] +; 8d487 (23:5487) + +; Anonymous jumptable (see .anonymous_jumptable) + dw .sixteen_zero + dw .sixteen_one + dw .sixteen_two + dw .sixteen_three + dw .sixteen_four + dw .sixteen_five +; 8d493 + +.sixteen_zero: ; 8d493 + ld a, $14 + call Function8d120 + ld hl, $b + add hl, bc + ld [hl], $2 + ld hl, $c + add hl, bc + ld [hl], $20 + ret +; 8d4a5 - ld c, SPRITE_GFX_LIST_CAPACITY - ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2 -.FindLastSprite - ld a, [de] +.sixteen_two: ; 8d4a5 + ld hl, $c + add hl, bc + ld a, [hl] and a - jr nz, .FoundLastSprite -rept 2 - dec de -endr - dec c - jr nz, .FindLastSprite -.FoundLastSprite - dec c - jr z, .quit - -; If the length of the current sprite is -; higher than a later one, swap them. + jr z, .asm_8d4af + dec [hl] + ret - inc de - ld hl, UsedSprites + 1 +.asm_8d4af + call .asm_8d6d8 + ld hl, $c + add hl, bc + ld [hl], $40 -.CheckSprite - push bc - push de - push hl +.sixteen_three: ; 8d4b8 + ld hl, $c + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_8d4cd + dec [hl] + ld d, $28 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ret -.CheckFollowing - ld a, [de] - cp [hl] - jr nc, .loop +.asm_8d4cd + ld de, SFX_GOT_SAFARI_BALLS + call PlaySFX + jr .sixteen_five +; 8d4d5 -; Swap the two sprites. +.sixteen_one: ; 8d4d5 + ld hl, $b + add hl, bc + ld [hl], $4 + ld hl, $c + add hl, bc + ld [hl], $30 + ld hl, $d + add hl, bc + ld [hl], $24 + ret +; 8d4e8 - ld b, a +.sixteen_four: ; 8d4e8 + ld hl, $d + add hl, bc ld a, [hl] - ld [hl], b - ld [de], a - dec de - dec hl - ld a, [de] - ld b, a + and a + jr z, .asm_8d51c + ld d, a + ld hl, $c + add hl, bc ld a, [hl] - ld [hl], b - ld [de], a - inc de - inc hl + call Function8e72c + ld hl, $7 + add hl, bc + ld [hl], a + ld hl, $c + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, $c + add hl, bc + ld [hl], $20 + ld hl, $d + add hl, bc + ld a, [hl] + sub $c + ld [hl], a + ld de, SFX_SWITCH_POKEMON + call PlaySFX + ret -; Keep doing this until everything's in order. +.asm_8d51c + xor a + ld hl, $7 + add hl, bc + ld [hl], a + call .asm_8d6d8 + ret -.loop -rept 2 - dec de -endr - dec c - jr nz, .CheckFollowing +.sixteen_five: ; 8d526 + call Function8d036 + ret +; 8d52a - pop hl +.seventeen: ; 8d52a (23:552a) + ld hl, $4 + add hl, bc + ld a, [hl] rept 2 - inc hl + inc [hl] endr - pop de - pop bc - dec c - jr nz, .CheckSprite - -.quit + cp $b0 + jr nc, .asm_8d53f + and $3 + ret nz + ld de, SFX_POKEBALLS_PLACED_ON_TABLE + call PlaySFX ret -; 14355 +.asm_8d53f + call Function8d036 + ret -ArrangeUsedSprites: ; 14355 -; Get the length of each sprite and space them out in VRAM. -; Crystal introduces a second table in VRAM bank 0. - - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY - ld b, 0 -.FirstTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit +.eighteen: ; 8d543 (23:5543) + callab Function29676 + ret +.nineteen: ; 8d54a (23:554a) + ld hl, $c + add hl, bc ld a, [hl] - call GetSpriteLength - -; Spill over into the second table after $80 tiles. - add b cp $80 - jr z, .loop - jr nc, .SecondTable - -.loop - ld [hl], b - inc hl - ld b, a - -; Assumes the next table will be reached before c hits 0. - dec c - jr nz, .FirstTableLength - -.SecondTable -; The second tile table starts at tile $80. - ld b, $80 - dec hl -.SecondTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit - + jr nc, .asm_8d574 + ld d, a + add $8 + ld [hl], a + ld hl, $b + add hl, bc ld a, [hl] - call GetSpriteLength + xor $20 + ld [hl], a + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret +.asm_8d574 + call Function8d036 + ret -; There are only two tables, so don't go any further than that. - add b - jr c, .quit +.twenty: ; 8d578 (23:5578) + callab Function91640 + ret - ld [hl], b - ld b, a +.twentyone: ; 8d57f (23:557f) + ld hl, $d + add hl, bc + ld e, [hl] inc hl + ld d, [hl] + ld hl, $80 + add hl, de + ld e, l + ld d, h + ld hl, $d + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $c + add hl, bc + ld a, [hl] +rept 3 + inc [hl] +endr + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret - dec c - jr nz, .SecondTableLength +.twentytwo: ; 8d5b0 (23:55b0) + ld hl, $5 + add hl, bc + ld a, [hl] + and a + ret z + ld hl, $d + add hl, bc + ld a, [hl] + inc [hl] + cp $40 + ret c + ld hl, $5 + add hl, bc +rept 2 + dec [hl] +endr + ld hl, $f + add hl, bc + ld a, [hl] + ld d, a + cp $40 + jr nc, .asm_8d5d3 + add $8 + ld [hl], a +.asm_8d5d3 + ld hl, $e + add hl, bc + ld a, [hl] + inc [hl] + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret -.quit +.twentythree: ; 8d5e2 (23:55e2) + ld hl, $4 + add hl, bc + ld a, [hl] + cp $b8 + jr nc, .asm_8d603 +rept 2 + inc [hl] +endr + ld hl, $5 + add hl, bc + dec [hl] + ld d, $40 + ld hl, $c + add hl, bc + ld a, [hl] + inc [hl] + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret +.asm_8d603 + call Function8d036 ret -; 14386 +.twentyfour: ; 8d607 (23:5607) + ld hl, $5 + add hl, bc + ld a, [hl] + cp $54 + ret z + ld hl, $5 + add hl, bc +rept 2 + inc [hl] +endr + ld hl, $f + add hl, bc + ld a, [hl] + ld d, a + and a + jr z, .asm_8d621 + sub $2 + ld [hl], a +.asm_8d621 + ld hl, $e + add hl, bc + ld a, [hl] + inc [hl] + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret -GetSpriteLength: ; 14386 -; Return the length of sprite type a in tiles. +.twentyseven: ; 8d630 (23:5630) + callba Function108bc7 + ret - cp WALKING_SPRITE - jr z, .AnyDirection - cp STANDING_SPRITE - jr z, .AnyDirection - cp STILL_SPRITE - jr z, .OneDirection +.twentyeight: ; 8d637 (23:5637) + callba Function108be0 + ret - ld a, 12 +.twentynine: ; 8d63e (23:563e) + ld a, [wcf65] + and a + jr nz, .asm_8d645 + ret +.asm_8d645 + ld hl, $7 + add hl, bc + ld [hl], $0 + ld hl, $d + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + xor $ff + inc a + ld d, $20 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ld a, $36 + call Function8d120 ret -.AnyDirection - ld a, 12 +.thirty: ; 8d666 (23:5666) + ld hl, $c + add hl, bc + ld a, [hl] + cp $14 + jr nc, .asm_8d67f + add $2 + ld [hl], a + xor $ff + inc a + ld d, $20 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a +.asm_8d67f ret -.OneDirection - ld a, 4 +.thirtytwo: ; 8d680 (23:5680) + ld hl, $b + add hl, bc + ld d, [hl] +rept 3 + inc [hl] +endr + ld hl, $c + add hl, bc + ld a, [hl] + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a ret -; 1439b +.thirtythree: ; 8d6a2 (23:56a2) + ld a, [wcf64] + cp $40 + ret nz + ld a, $3d + call Function8d120 + ret -Function1439b: ; 1439b - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [wSpriteFlags] - res 5, a - ld [wSpriteFlags], a - ld a, [hli] - and a - jr z, .done - ld [hUsedSpriteIndex], a - ld a, [hli] - ld [hUsedSpriteTile], a - bit 7, a - jr z, .dont_set - ld a, [wSpriteFlags] - set 5, a - ld [wSpriteFlags], a - -.dont_set - push bc - push hl - call Function143c8 - pop hl - pop bc - dec c - jr nz, .loop +.thirtyfour: ; 8d6ae (23:56ae) + ld hl, $5 + add hl, bc + ld a, [hl] + add $10 + ld [hl], a + ret -.done +.twentysix: ; 8d6b7 (23:56b7) + callba Function11d0b6 ret -; 143c8 -Function143c8: ; 143c8 - ld a, [hUsedSpriteIndex] - call SafeGetSprite - ld a, [hUsedSpriteTile] - call .GetTileAddr - push hl - push de - push bc - ld a, [wSpriteFlags] - bit 7, a - jr nz, .skip - call .CopyToVram +.thirtyone: ; 8d6be (23:56be) + callba Function49aa2 + ret -.skip - pop bc - ld l, c +.anonymous_jumptable: ; 8d6c5 (23:56c5) + ld hl, [sp+$0] + ld e, [hl] + inc hl + ld d, [hl] + inc de + ld hl, $b + add hl, bc + ld l, [hl] ld h, $0 -rept 4 add hl, hl -endr - pop de add hl, de - ld d, h - ld e, l - pop hl - ld a, [wSpriteFlags] - bit 5, a - jr nz, .done - bit 6, a - jr nz, .done - ld a, [hUsedSpriteIndex] - call _DoesSpriteHaveFacings - jr c, .done - ld a, h - add $8 - ld h, a - call .CopyToVram + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 8d6d8 (23:56d8) -.done +.asm_8d6d8: ; 8d6d8 + ld hl, $b + add hl, bc + inc [hl] ret -; 14406 +; 8d6de -.GetTileAddr: ; 14406 -; Return the address of tile (a) in (hl). - and $7f - ld l, a - ld h, 0 -rept 4 - add hl, hl -endr - ld a, l - add VTiles0 % $100 - ld l, a - ld a, h - adc VTiles0 / $100 - ld h, a +.asm_8d6de: ; 8d6de (23:56de) + call Function8e72c ret -; 14418 -.CopyToVram: ; 14418 - ld a, [rVBK] - push af - ld a, [wSpriteFlags] - bit 5, a - ld a, $1 - jr z, .bankswitch - ld a, $0 +.asm_8d6e2: ; 8d6e2 (23:56e2) + call Function8e72a + ret +; 8d6e6 (23:56e6) + +Unknown_8d6e6: ; 8d6e6 + dw Unknown_8d76a + dw Unknown_8d76d + dw Unknown_8d772 + dw Unknown_8d777 + dw Unknown_8d77c + dw Unknown_8d781 + dw Unknown_8d786 + dw Unknown_8d7a6 + dw Unknown_8d7ab + dw Unknown_8d7b0 + dw Unknown_8d7b5 + dw Unknown_8d7d4 + dw Unknown_8d7d9 + dw Unknown_8d7e2 + dw Unknown_8d7eb + dw Unknown_8d7f4 + dw Unknown_8d7ff + dw Unknown_8d78b + dw Unknown_8d802 + dw Unknown_8d805 + dw Unknown_8d808 + dw Unknown_8d811 + dw Unknown_8d818 + dw Unknown_8d81d + dw Unknown_8d822 + dw Unknown_8d825 + dw Unknown_8d82c + dw Unknown_8d82f + dw Unknown_8d861 + dw Unknown_8d864 + dw Unknown_8d867 + dw Unknown_8d874 + dw Unknown_8d877 + dw Unknown_8d87a + dw Unknown_8d87d + dw Unknown_8d880 + dw Unknown_8d883 + dw Unknown_8d890 + dw Unknown_8d899 + dw Unknown_8d89c + dw Unknown_8d89f + dw Unknown_8d8a2 + dw Unknown_8d8a5 + dw Unknown_8d8a8 + dw Unknown_8d8ab + dw Unknown_8d794 + dw Unknown_8d79d + dw Unknown_8d8ae + dw Unknown_8d8cd + dw Unknown_8d8ec + dw Unknown_8d8f1 + dw Unknown_8d8f4 + dw Unknown_8d8f7 + dw Unknown_8d8fe + dw Unknown_8d907 + dw Unknown_8d90c + dw Unknown_8d913 + dw Unknown_8d916 + dw Unknown_8d91d + dw Unknown_8d924 + dw Unknown_8d92b + dw Unknown_8d932 + dw Unknown_8d93d + dw Unknown_8d940 + dw Unknown_8d943 + dw Unknown_8d948 +; 8d76a + +Unknown_8d76a: dw $2000 + db -1 +Unknown_8d76d: dw $0800, $0801 + db -2 +Unknown_8d772: dw $083d, $083e + db -2 +Unknown_8d777: dw $083f, $0840 + db -2 +Unknown_8d77c: dw $0400, $0401 + db -2 +Unknown_8d781: dw $043d, $043e + db -2 +Unknown_8d786: dw $043f, $0440 + db -2 +Unknown_8d78b: dw $0800, $0801, $0800, $4801 + db -2 +Unknown_8d794: dw $0863, $0864, $0863, $4864 + db -2 +Unknown_8d79d: dw $0865, $0866, $0865, $4866 + db -2 +Unknown_8d7a6: dw $011e, $011f + db -2 +Unknown_8d7ab: dw $0120, $01fd + db -2 +Unknown_8d7b0: dw $0121, $01fd + db -2 +Unknown_8d7b5: dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b + db -1 +Unknown_8d7d4: dw $0323, $8323 + db -2 +Unknown_8d7d9: dw $0224, $0225, $0226, $0225 + db -2 +Unknown_8d7e2: dw $0727, $0728, $8727, $4728 + db -2 +Unknown_8d7eb: dw $0729, $072a, $0729, $072b + db -2 +Unknown_8d7f4: dw $0729, $072c, $072d, $072c, $0729 + db -1 +Unknown_8d7ff: dw $142e + db -1 +Unknown_8d802: dw $202f + db -1 +Unknown_8d805: dw $2030 + db -1 +Unknown_8d808: dw $0330, $0331, $0330, $4331 + db -2 +Unknown_8d811: dw $0432, $0433, $0434 + db -4 +Unknown_8d818: dw $0335, $0336 + db -2 +Unknown_8d81d: dw $0737, $0738 + db -2 +Unknown_8d822: dw $2039 + db -1 +Unknown_8d825: dw $023b, $023a, $023b + db -1 +Unknown_8d82c: dw $203c + db -1 +Unknown_8d82f: dw $0841, $0842, $0841, $4842 + db -2 + dw $0843, $0844 + db -2 + dw $0845, $0846 + db -2 + dw $0847, $0848 + db -2 + dw $0149, $4149, $c149, $8149 + db -2 + dw $204a + db -1 + dw $204b + db -1 + dw $204c + db -1 + dw $204d + db -1 + dw $034e, $03fd + db -2 +Unknown_8d861: dw $20fd + db -1 +Unknown_8d864: dw $204f + db -1 +Unknown_8d867: dw $0250, $1051, $01fd, $0152, $01fd, $0153 + db -4 +Unknown_8d874: dw $2054 + db -1 +Unknown_8d877: dw $2055 + db -1 +Unknown_8d87a: dw $6055 + db -1 +Unknown_8d87d: dw $a055 + db -1 +Unknown_8d880: dw $e055 + db -1 +Unknown_8d883: dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a + db -2 +Unknown_8d890: dw $0250, $025b, $0250, $425b + db -2 +Unknown_8d899: dw $025c + db -1 +Unknown_8d89c: dw $025d + db -1 +Unknown_8d89f: dw $025e + db -1 +Unknown_8d8a2: dw $025f + db -1 +Unknown_8d8a5: dw $0260 + db -1 +Unknown_8d8a8: dw $0261 + db -1 +Unknown_8d8ab: dw $0262 + db -1 +Unknown_8d8ae: dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331 + db -1 +Unknown_8d8cd: dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334 + db -4 +Unknown_8d8ec: dw $0367, $0368 + db -2 +Unknown_8d8f1: dw $036c + db -1 +Unknown_8d8f4: dw $036d + db -1 +Unknown_8d8f7: dw $0269, $026a, $026b + db -4 +Unknown_8d8fe: dw $036e, $036f, $0370, $0371 + db -2 +Unknown_8d907: dw $0371, $076e + db -1 +Unknown_8d90c: dw $2072, $0773, $0774 + db -1 +Unknown_8d913: dw $0375 + db -1 +Unknown_8d916: dw $0376, $0377, $0778 + db -4 +Unknown_8d91d: dw $4376, $4377, $4778 + db -4 +Unknown_8d924: dw $8376, $8377, $8778 + db -4 +Unknown_8d92b: dw $c376, $c377, $c778 + db -4 +Unknown_8d932: dw $0379, $037a, $037b, $077c, $077d + db -1 +Unknown_8d93d: dw $037e + db -1 +Unknown_8d940: dw $00fd + db -1 +Unknown_8d943: dw $087f, $0880 + db -1 +Unknown_8d948: dw $487f, $4880 + db -1 +; 8d94d + +Unknown_8d94d: ; 8d94d + dbw $00, Unknown_8dd8a ; 00 + dbw $04, Unknown_8dd8a ; 01 + dbw $4c, Unknown_8daf1 ; 02 + dbw $5c, Unknown_8daf1 ; 03 + dbw $6c, Unknown_8daf6 ; 04 + dbw $6e, Unknown_8daf6 ; 05 + dbw $2d, Unknown_8ddf0 ; 06 + dbw $4d, Unknown_8ddf0 ; 07 + dbw $60, Unknown_8de09 ; 08 + dbw $00, Unknown_8de09 ; 09 + dbw $00, Unknown_8de09 ; 0a + dbw $06, Unknown_8de09 ; 0b + dbw $0c, Unknown_8de7e ; 0c + dbw $0d, Unknown_8daf1 ; 0d + dbw $00, Unknown_8dc53 ; 0e + dbw $04, Unknown_8dc53 ; 0f + dbw $08, Unknown_8dc53 ; 10 + dbw $40, Unknown_8dc53 ; 11 + dbw $44, Unknown_8dc53 ; 12 + dbw $48, Unknown_8dc53 ; 13 + dbw $4c, Unknown_8dc53 ; 14 + dbw $80, Unknown_8de87 ; 15 + dbw $85, Unknown_8de87 ; 16 + dbw $8a, Unknown_8de87 ; 17 + dbw $00, Unknown_8db29 ; 18 + dbw $01, Unknown_8db5c ; 19 + dbw $09, Unknown_8db9d ; 1a + dbw $10, Unknown_8dc94 ; 1b + dbw $29, Unknown_8dc94 ; 1c + dbw $42, Unknown_8dc94 ; 1d + dbw $f8, Unknown_8e17e ; 1e + dbw $fa, Unknown_8e17e ; 1f + dbw $00, Unknown_8deb2 ; 20 + dbw $00, Unknown_8dec3 ; 21 + dbw $00, Unknown_8deec ; 22 + dbw $0f, Unknown_8db07 ; 23 + dbw $11, Unknown_8daf1 ; 24 + dbw $12, Unknown_8daf1 ; 25 + dbw $13, Unknown_8daf1 ; 26 + dbw $00, Unknown_8df29 ; 27 + dbw $08, Unknown_8df29 ; 28 + dbw $10, Unknown_8df42 ; 29 + dbw $10, Unknown_8df5b ; 2a + dbw $10, Unknown_8df74 ; 2b + dbw $10, Unknown_8df8d ; 2c + dbw $10, Unknown_8dfa6 ; 2d + dbw $3a, Unknown_8daf1 ; 2e + dbw $00, Unknown_8dd8a ; 2f + dbw $00, Unknown_8db18 ; 30 + dbw $02, Unknown_8dd9b ; 31 + dbw $06, Unknown_8db5c ; 32 + dbw $0a, Unknown_8db5c ; 33 + dbw $0e, Unknown_8db5c ; 34 + dbw $12, Unknown_8db3a ; 35 + dbw $13, Unknown_8db3a ; 36 + dbw $00, Unknown_8dd8a ; 37 + dbw $04, Unknown_8dd8a ; 38 + dbw $10, Unknown_8db5c ; 39 + dbw $00, Unknown_8dd9b ; 3a + dbw $04, Unknown_8daf1 ; 3b + dbw $00, Unknown_8dfbf ; 3c + dbw $00, Unknown_8ddac ; 3d + dbw $00, Unknown_8ddbd ; 3e + dbw $00, Unknown_8ddce ; 3f + dbw $00, Unknown_8dddf ; 40 + dbw $00, Unknown_8dd9b ; 41 + dbw $04, Unknown_8dd9b ; 42 + dbw $00, Unknown_8dc2e ; 43 + dbw $30, Unknown_8dc2e ; 44 + dbw $03, Unknown_8dc2e ; 45 + dbw $33, Unknown_8dc2e ; 46 + dbw $06, Unknown_8dc2e ; 47 + dbw $36, Unknown_8dc2e ; 48 + dbw $09, Unknown_8dc2e ; 49 + dbw $39, Unknown_8dc2e ; 4a + dbw $0c, Unknown_8dfcc ; 4b + dbw $0c, Unknown_8dfe5 ; 4c + dbw $3c, Unknown_8daf1 ; 4d + dbw $3e, Unknown_8daf1 ; 4e + dbw $00, Unknown_8de9c ; 4f + dbw $00, Unknown_8dea1 ; 50 + dbw $00, Unknown_8dff6 ; 51 + dbw $00, Unknown_8e007 ; 52 + dbw $00, Unknown_8e018 ; 53 + dbw $00, Unknown_8daf1 ; 54 + dbw $01, Unknown_8daf1 ; 55 + dbw $00, Unknown_8e029 ; 56 + dbw $00, Unknown_8e076 ; 57 + dbw $00, Unknown_8e0b7 ; 58 + dbw $00, Unknown_8e0f4 ; 59 + dbw $00, Unknown_8e139 ; 5a + dbw $04, Unknown_8dea1 ; 5b + dbw $00, Unknown_8e183 ; 5c + dbw $00, Unknown_8e1b4 ; 5d + dbw $00, Unknown_8e1b9 ; 5e + dbw $00, Unknown_8e1ca ; 5f + dbw $00, Unknown_8e1eb ; 60 + dbw $00, Unknown_8e1f0 ; 61 + dbw $00, Unknown_8e1f9 ; 62 + dbw $00, Unknown_8e202 ; 63 + dbw $04, Unknown_8e202 ; 64 + dbw $00, Unknown_8e213 ; 65 + dbw $04, Unknown_8e213 ; 66 + dbw $20, Unknown_8e224 ; 67 + dbw $21, Unknown_8e224 ; 68 + dbw $22, Unknown_8e24b ; 69 + dbw $23, Unknown_8e25c ; 6a + dbw $27, Unknown_8e27d ; 6b + dbw $2a, Unknown_8e229 ; 6c + dbw $2a, Unknown_8e23a ; 6d + dbw $00, Unknown_8e2ae ; 6e + dbw $08, Unknown_8e33f ; 6f + dbw $60, Unknown_8e3b0 ; 70 + dbw $68, Unknown_8e429 ; 71 + dbw $00, Unknown_8e4a6 ; 72 + dbw $05, Unknown_8e4a6 ; 73 + dbw $0a, Unknown_8e4a6 ; 74 + dbw $50, Unknown_8e50b ; 75 + dbw $00, Unknown_8e54c ; 76 + dbw $01, Unknown_8e551 ; 77 + dbw $04, Unknown_8e55e ; 78 + dbw $00, Unknown_8db29 ; 79 + dbw $01, Unknown_8e57b ; 7a + dbw $03, Unknown_8e59c ; 7b + dbw $08, Unknown_8e5cd ; 7c + dbw $1c, Unknown_8e5cd ; 7d + dbw $80, Unknown_8e61e ; 7e + dbw $00, Unknown_8e66f ; 7f + dbw $04, Unknown_8e66f ; 80 + dbw $d0, Unknown_8e680 ; 81 + dbw $d3, Unknown_8e680 ; 82 + dbw $d6, Unknown_8e680 ; 83 + dbw $6c, Unknown_8e6a5 ; 84 + dbw $68, Unknown_8e6a5 ; 85 + dbw $64, Unknown_8e6a5 ; 86 + dbw $60, Unknown_8e6a5 ; 87 + dbw $0c, Unknown_8e6a5 ; 88 + dbw $08, Unknown_8e6a5 ; 89 + dbw $04, Unknown_8e6a5 ; 8a + dbw $00, Unknown_8e6a5 ; 8b +; 8daf1 + + +Unknown_8daf1: ; 8daf1 + db 1 + db $fc, $fc, $00, $00 +; 8daf6 + +Unknown_8daf6: ; 8daf6 + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $10, $00 + db $00, $00, $11, $00 +; 8db07 + +Unknown_8db07: ; 8db07 + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $00, $20 + db $00, $f8, $01, $00 + db $00, $00, $01, $20 +; 8db18 + +Unknown_8db18: ; 8db18 + db 4 + db $f8, $f8, $00, $80 + db $f8, $00, $00, $a0 + db $00, $f8, $01, $80 + db $00, $00, $01, $a0 +; 8db29 + +Unknown_8db29: ; 8db29 + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $00, $20 + db $00, $f8, $00, $40 + db $00, $00, $00, $60 +; 8db3a + +Unknown_8db3a: ; 8db3a + db 4 + db $f8, $f8, $00, $07 + db $f8, $00, $00, $27 + db $00, $f8, $00, $47 + db $00, $00, $00, $67 +; 8db4b + +; 8db4b + db 4 + db $f8, $f8, $00, $80 + db $f8, $00, $00, $a0 + db $00, $f8, $00, $c0 + db $00, $00, $00, $e0 +; 8db5c + +Unknown_8db5c: ; 8db5c + db 16 + db $f0, $f0, $00, $00 + db $f0, $f8, $01, $00 + db $f8, $f0, $02, $00 + db $f8, $f8, $03, $00 + db $f0, $00, $01, $20 + db $f0, $08, $00, $20 + db $f8, $00, $03, $20 + db $f8, $08, $02, $20 + db $00, $f0, $02, $40 + db $00, $f8, $03, $40 + db $08, $f0, $00, $40 + db $08, $f8, $01, $40 + db $00, $00, $03, $60 + db $00, $08, $02, $60 + db $08, $00, $01, $60 + db $08, $08, $00, $60 +; 8db9d + +Unknown_8db9d: ; 8db9d + db 36 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $f0, $e8, $03, $00 + db $f0, $f0, $04, $00 + db $f0, $f8, $05, $00 + db $f8, $e8, $06, $00 + db $f8, $f0, $05, $00 + db $f8, $f8, $05, $00 + db $e8, $00, $02, $20 + db $e8, $08, $01, $20 + db $e8, $10, $00, $20 + db $f0, $00, $05, $20 + db $f0, $08, $04, $20 + db $f0, $10, $03, $20 + db $f8, $00, $05, $20 + db $f8, $08, $05, $20 + db $f8, $10, $06, $20 + db $00, $e8, $06, $40 + db $00, $f0, $05, $40 + db $00, $f8, $05, $40 + db $08, $e8, $03, $40 + db $08, $f0, $04, $40 + db $08, $f8, $05, $40 + db $10, $e8, $00, $40 + db $10, $f0, $01, $40 + db $10, $f8, $02, $40 + db $00, $00, $05, $60 + db $00, $08, $05, $60 + db $00, $10, $06, $60 + db $08, $00, $05, $60 + db $08, $08, $04, $60 + db $08, $10, $03, $60 + db $10, $00, $02, $60 + db $10, $08, $01, $60 + db $10, $10, $00, $60 +; 8dc2e + +Unknown_8dc2e: ; 8dc2e + db 9 + db $f4, $f4, $00, $00 + db $f4, $fc, $01, $00 + db $f4, $04, $02, $00 + db $fc, $f4, $10, $00 + db $fc, $fc, $11, $00 + db $fc, $04, $12, $00 + db $04, $f4, $20, $00 + db $04, $fc, $21, $00 + db $04, $04, $22, $00 +; 8dc53 + +Unknown_8dc53: ; 8dc53 + db 16 + db $f0, $f0, $00, $00 + db $f0, $f8, $01, $00 + db $f0, $00, $02, $00 + db $f0, $08, $03, $00 + db $f8, $f0, $10, $00 + db $f8, $f8, $11, $00 + db $f8, $00, $12, $00 + db $f8, $08, $13, $00 + db $00, $f0, $20, $00 + db $00, $f8, $21, $00 + db $00, $00, $22, $00 + db $00, $08, $23, $00 + db $08, $f0, $30, $00 + db $08, $f8, $31, $00 + db $08, $00, $32, $00 + db $08, $08, $33, $00 +; 8dc94 + +Unknown_8dc94: ; 8dc94 + db 25 + db $ec, $ec, $00, $00 + db $f4, $ec, $01, $00 + db $fc, $ec, $02, $00 + db $04, $ec, $03, $00 + db $0c, $ec, $04, $00 + db $ec, $f4, $05, $00 + db $f4, $f4, $06, $00 + db $fc, $f4, $07, $00 + db $04, $f4, $08, $00 + db $0c, $f4, $09, $00 + db $ec, $fc, $0a, $00 + db $f4, $fc, $0b, $00 + db $fc, $fc, $0c, $00 + db $04, $fc, $0d, $00 + db $0c, $fc, $0e, $00 + db $ec, $04, $0f, $00 + db $f4, $04, $10, $00 + db $fc, $04, $11, $00 + db $04, $04, $12, $00 + db $0c, $04, $13, $00 + db $ec, $0c, $14, $00 + db $f4, $0c, $15, $00 + db $fc, $0c, $16, $00 + db $04, $0c, $17, $00 + db $0c, $0c, $18, $00 +; 8dcf9 + +; 8dcf9 + db 36 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $e8, $00, $03, $00 + db $e8, $08, $04, $00 + db $e8, $10, $05, $00 + db $f0, $e8, $06, $00 + db $f0, $f0, $07, $00 + db $f0, $f8, $08, $00 + db $f0, $00, $09, $00 + db $f0, $08, $0a, $00 + db $f0, $10, $0b, $00 + db $f8, $e8, $0c, $00 + db $f8, $f0, $0d, $00 + db $f8, $f8, $0e, $00 + db $f8, $00, $0f, $00 + db $f8, $08, $10, $00 + db $f8, $10, $11, $00 + db $00, $e8, $12, $00 + db $00, $f0, $13, $00 + db $00, $f8, $14, $00 + db $00, $00, $15, $00 + db $00, $08, $16, $00 + db $00, $10, $17, $00 + db $08, $e8, $18, $00 + db $08, $f0, $19, $00 + db $08, $f8, $1a, $00 + db $08, $00, $1b, $00 + db $08, $08, $1c, $00 + db $08, $10, $1d, $00 + db $10, $e8, $1e, $00 + db $10, $f0, $1f, $00 + db $10, $f8, $20, $00 + db $10, $00, $21, $00 + db $10, $08, $22, $00 + db $10, $10, $23, $00 +; 8dd8a + +Unknown_8dd8a: ; 8dd8a + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $02, $00 + db $00, $00, $03, $00 +; 8dd9b + +Unknown_8dd9b: ; 8dd9b + db 4 + db $f8, $f8, $00, $80 + db $f8, $00, $01, $80 + db $00, $f8, $02, $80 + db $00, $00, $03, $80 +; 8ddac + +Unknown_8ddac: ; 8ddac + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $08, $00 + db $00, $00, $03, $00 +; 8ddbd + +Unknown_8ddbd: ; 8ddbd + db 4 + db $f8, $f8, $04, $00 + db $f8, $00, $05, $00 + db $00, $f8, $08, $00 + db $00, $00, $07, $00 +; 8ddce + +Unknown_8ddce: ; 8ddce + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $09, $00 + db $00, $00, $03, $00 +; 8dddf + +Unknown_8dddf: ; 8dddf + db 4 + db $f8, $f8, $04, $00 + db $f8, $00, $05, $00 + db $00, $f8, $09, $00 + db $00, $00, $07, $00 +; 8ddf0 + +Unknown_8ddf0: ; 8ddf0 + db 6 + db $f8, $f4, $00, $01 + db $f8, $fc, $01, $01 + db $f8, $04, $02, $01 + db $00, $f4, $10, $01 + db $00, $fc, $11, $01 + db $00, $04, $12, $01 +; 8de09 + +Unknown_8de09: ; 8de09 + db 29 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $e8, $00, $03, $00 + db $f0, $e8, $10, $00 + db $f0, $f0, $11, $00 + db $f0, $f8, $12, $00 + db $f0, $00, $13, $00 + db $f8, $e8, $20, $00 + db $f8, $f0, $21, $00 + db $f8, $f8, $22, $00 + db $f8, $00, $23, $00 + db $f8, $08, $24, $00 + db $00, $e8, $30, $80 + db $00, $f0, $31, $80 + db $00, $f8, $32, $80 + db $00, $00, $33, $80 + db $00, $08, $34, $80 + db $08, $e8, $40, $80 + db $08, $f0, $41, $80 + db $08, $f8, $42, $80 + db $08, $00, $43, $80 + db $08, $08, $44, $80 + db $08, $10, $45, $80 + db $10, $f0, $51, $80 + db $10, $f8, $52, $80 + db $10, $00, $53, $80 + db $10, $08, $54, $80 + db $10, $10, $55, $80 +; 8de7e + +Unknown_8de7e: ; 8de7e + db 2 + db $f8, $fc, $00, $00 + db $00, $fc, $10, $00 +; 8de87 + +Unknown_8de87: ; 8de87 + db 5 + db $f0, $18, $00, $00 + db $f0, $20, $01, $00 + db $f8, $10, $02, $00 + db $f8, $18, $03, $00 + db $00, $10, $04, $00 +; 8de9c + +Unknown_8de9c: ; 8de9c + db 1 + db $fc, $fc, $00, $06 +; 8dea1 + +Unknown_8dea1: ; 8dea1 + db 4 + db $f8, $f8, $00, $06 + db $f8, $00, $01, $06 + db $00, $f8, $02, $06 + db $00, $00, $03, $06 +; 8deb2 + +Unknown_8deb2: ; 8deb2 + db 4 + db $ff, $ff, $00, $00 + db $ff, $00, $00, $20 + db $00, $ff, $00, $40 + db $00, $00, $00, $60 +; 8dec3 + +Unknown_8dec3: ; 8dec3 + db 10 + db $ff, $00, $00, $00 + db $ff, $08, $01, $00 + db $ff, $10, $01, $00 + db $ff, $18, $01, $00 + db $ff, $20, $00, $20 + db $00, $00, $00, $40 + db $00, $08, $01, $40 + db $00, $10, $01, $40 + db $00, $18, $01, $40 + db $00, $20, $00, $60 +; 8deec + +Unknown_8deec: ; 8deec + db 15 + db $ec, $f4, $00, $11 + db $ec, $fc, $01, $11 + db $ec, $04, $02, $11 + db $f4, $f4, $03, $11 + db $f4, $fc, $04, $11 + db $f4, $04, $05, $11 + db $fc, $f4, $06, $11 + db $fc, $fc, $07, $11 + db $fc, $04, $08, $11 + db $04, $f4, $09, $11 + db $04, $fc, $0a, $11 + db $04, $04, $0b, $11 + db $0c, $f4, $0c, $11 + db $0c, $fc, $0d, $11 + db $0c, $04, $0e, $11 +; 8df29 + +Unknown_8df29: ; 8df29 + db 6 + db $f4, $f4, $00, $15 + db $f4, $fc, $02, $15 + db $f4, $04, $00, $35 + db $04, $f4, $04, $15 + db $04, $fc, $06, $15 + db $04, $04, $04, $35 +; 8df42 + +Unknown_8df42: ; 8df42 + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $06, $16 + db $04, $fc, $08, $16 + db $04, $04, $0a, $16 +; 8df5b + +Unknown_8df5b: ; 8df5b + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $0c, $16 + db $04, $fc, $0e, $16 + db $04, $04, $10, $16 +; 8df74 + +Unknown_8df74: ; 8df74 + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $12, $16 + db $04, $fc, $14, $16 + db $04, $04, $16, $16 +; 8df8d + +Unknown_8df8d: ; 8df8d + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $18, $16 + db $04, $fc, $1a, $16 + db $04, $04, $1c, $16 +; 8dfa6 + +Unknown_8dfa6: ; 8dfa6 + db 6 + db $f4, $f4, $1e, $16 + db $f4, $fc, $20, $16 + db $f4, $04, $22, $16 + db $04, $f4, $24, $16 + db $04, $fc, $26, $16 + db $04, $04, $28, $16 +; 8dfbf + +Unknown_8dfbf: ; 8dfbf + db 3 + db $f4, $fc, $00, $10 + db $fc, $fc, $00, $10 + db $04, $fc, $00, $10 +; 8dfcc + +Unknown_8dfcc: ; 8dfcc + db 6 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $00, $10, $01, $00 + db $00, $18, $01, $00 + db $00, $20, $02, $00 + db $00, $28, $03, $00 +; 8dfe5 + +Unknown_8dfe5: ; 8dfe5 + db 4 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $00, $10, $02, $00 + db $00, $18, $03, $00 +; 8dff6 + +Unknown_8dff6: ; 8dff6 + db 4 + db $f8, $f6, $00, $06 + db $f8, $02, $01, $06 + db $00, $f6, $02, $06 + db $00, $02, $03, $06 +; 8e007 + +Unknown_8e007: ; 8e007 + db 4 + db $f8, $f4, $00, $06 + db $f8, $04, $01, $06 + db $00, $f4, $02, $06 + db $00, $04, $03, $06 +; 8e018 + +Unknown_8e018: ; 8e018 + db 4 + db $f8, $f0, $00, $06 + db $f8, $08, $01, $06 + db $00, $f0, $02, $06 + db $00, $08, $03, $06 +; 8e029 + +Unknown_8e029: ; 8e029 + db 19 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $e8, $f0, $06, $00 + db $f8, $f0, $08, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $0c, $00 + db $f8, $f8, $0e, $00 + db $08, $f8, $10, $00 + db $e8, $00, $12, $00 + db $f8, $00, $14, $00 + db $08, $00, $16, $00 + db $e8, $08, $18, $00 + db $f8, $08, $1a, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e076 + +Unknown_8e076: ; 8e076 + db 16 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $26, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $28, $00 + db $f8, $f8, $2a, $00 + db $08, $f8, $10, $00 + db $f8, $00, $2c, $00 + db $08, $00, $16, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e0b7 + +Unknown_8e0b7: ; 8e0b7 + db 15 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $32, $00 + db $f8, $f0, $34, $00 + db $08, $f0, $36, $00 + db $f8, $f8, $38, $00 + db $08, $f8, $3a, $00 + db $f8, $00, $3c, $00 + db $08, $00, $3e, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e0f4 + +Unknown_8e0f4: ; 8e0f4 + db 17 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $40, $00 + db $08, $f0, $42, $00 + db $18, $f0, $44, $00 + db $f8, $f8, $46, $00 + db $08, $f8, $48, $00 + db $18, $f8, $4a, $00 + db $f8, $00, $4c, $00 + db $08, $00, $4e, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e139 + +Unknown_8e139: ; 8e139 + db 17 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $50, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $52, $00 + db $f8, $f8, $54, $00 + db $08, $f8, $10, $00 + db $e8, $00, $56, $00 + db $f8, $00, $2e, $00 + db $08, $00, $16, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e17e + +Unknown_8e17e: ; 8e17e + db 1 + db $fc, $fc, $00, $11 +; 8e183 + +Unknown_8e183: ; 8e183 + db 12 + db $00, $00, $30, $00 + db $00, $08, $31, $00 + db $00, $10, $31, $00 + db $00, $18, $31, $00 + db $00, $20, $31, $00 + db $00, $28, $32, $00 + db $08, $00, $33, $00 + db $08, $08, $34, $00 + db $08, $10, $34, $00 + db $08, $18, $34, $00 + db $08, $20, $34, $00 + db $08, $28, $35, $00 +; 8e1b4 + +Unknown_8e1b4: ; 8e1b4 + db 1 + db $00, $00, $ed, $00 +; 8e1b9 + +Unknown_8e1b9: ; 8e1b9 + db 4 + db $ff, $ff, $30, $00 + db $ff, $01, $32, $00 + db $01, $ff, $33, $00 + db $01, $01, $35, $00 +; 8e1ca + +Unknown_8e1ca: ; 8e1ca + db 8 + db $ff, $ff, $30, $00 + db $ff, $04, $31, $00 + db $ff, $0c, $31, $00 + db $ff, $11, $32, $00 + db $01, $ff, $33, $00 + db $01, $04, $34, $00 + db $01, $0c, $34, $00 + db $01, $11, $35, $00 +; 8e1eb + +Unknown_8e1eb: ; 8e1eb + db 1 + db $00, $00, $34, $00 +; 8e1f0 + +Unknown_8e1f0: ; 8e1f0 + db 2 + db $00, $00, $30, $00 + db $08, $00, $33, $00 +; 8e1f9 + +Unknown_8e1f9: ; 8e1f9 + db 2 + db $00, $00, $32, $00 + db $08, $00, $35, $00 +; 8e202 + +Unknown_8e202: ; 8e202 + db 4 + db $f8, $f8, $00, $01 + db $f8, $00, $01, $01 + db $00, $f8, $02, $01 + db $00, $00, $03, $01 +; 8e213 + +Unknown_8e213: ; 8e213 + db 4 + db $f8, $f8, $00, $81 + db $f8, $00, $01, $81 + db $00, $f8, $02, $81 + db $00, $00, $03, $81 +; 8e224 + +Unknown_8e224: ; 8e224 + db 1 + db $fc, $fc, $00, $02 +; 8e229 + +Unknown_8e229: ; 8e229 + db 4 + db $f0, $fc, $00, $03 + db $f8, $fc, $01, $03 + db $00, $fc, $02, $03 + db $08, $fc, $03, $03 +; 8e23a + +Unknown_8e23a: ; 8e23a + db 4 + db $f0, $fc, $03, $44 + db $f8, $fc, $02, $44 + db $00, $fc, $01, $44 + db $08, $fc, $00, $44 +; 8e24b + +Unknown_8e24b: ; 8e24b + db 4 + db $f8, $f8, $00, $01 + db $f8, $00, $00, $21 + db $00, $f8, $00, $41 + db $00, $00, $00, $61 +; 8e25c + +Unknown_8e25c: ; 8e25c + db 8 + db $f4, $f4, $00, $01 + db $f4, $fc, $01, $01 + db $f4, $04, $00, $21 + db $fc, $f4, $02, $01 + db $fc, $04, $02, $21 + db $04, $f4, $00, $41 + db $04, $fc, $01, $41 + db $04, $04, $00, $61 +; 8e27d + +Unknown_8e27d: ; 8e27d + db 12 + db $f0, $f0, $00, $01 + db $f0, $f8, $01, $01 + db $f8, $f0, $02, $01 + db $f0, $00, $01, $21 + db $f0, $08, $00, $21 + db $f8, $08, $02, $21 + db $00, $f0, $02, $41 + db $08, $f0, $00, $41 + db $08, $f8, $01, $41 + db $00, $08, $02, $61 + db $08, $00, $01, $61 + db $08, $08, $00, $61 +; 8e2ae + +Unknown_8e2ae: ; 8e2ae + db 36 + db $e8, $08, $05, $00 + db $e8, $10, $06, $00 + db $e8, $18, $07, $00 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f0, $18, $17, $00 + db $f8, $e0, $20, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $f8, $18, $27, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $00, $10, $36, $00 + db $08, $e0, $40, $00 + db $08, $e8, $41, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $08, $10, $46, $00 + db $08, $18, $47, $00 + db $10, $e0, $50, $00 + db $10, $e8, $51, $00 + db $10, $18, $57, $00 +; 8e33f + +Unknown_8e33f: ; 8e33f + db 28 + db $e8, $00, $04, $00 + db $e8, $08, $05, $00 + db $e8, $10, $06, $00 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $10, $f8, $53, $00 + db $10, $00, $54, $00 + db $10, $08, $55, $00 +; 8e3b0 + +Unknown_8e3b0: ; 8e3b0 + db 30 + db $e8, $00, $04, $00 + db $e8, $08, $05, $00 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f0, $18, $17, $00 + db $f8, $e0, $20, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $10, $f0, $52, $00 + db $10, $f8, $53, $00 + db $10, $00, $54, $00 + db $10, $08, $55, $00 +; 8e429 + +Unknown_8e429: ; 8e429 + db 31 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f0, $18, $17, $00 + db $f8, $e0, $20, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $f8, $18, $27, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $00, $10, $36, $00 + db $08, $e8, $41, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $10, $e8, $51, $00 + db $10, $f0, $52, $00 + db $10, $00, $54, $00 + db $10, $08, $55, $00 +; 8e4a6 + +Unknown_8e4a6: ; 8e4a6 + db 25 + db $ec, $ec, $00, $09 + db $ec, $f4, $01, $09 + db $ec, $fc, $02, $09 + db $ec, $04, $03, $09 + db $ec, $0c, $04, $09 + db $f4, $ec, $10, $09 + db $f4, $f4, $11, $09 + db $f4, $fc, $12, $09 + db $f4, $04, $13, $09 + db $f4, $0c, $14, $09 + db $fc, $ec, $20, $09 + db $fc, $f4, $21, $09 + db $fc, $fc, $22, $09 + db $fc, $04, $23, $09 + db $fc, $0c, $24, $09 + db $04, $ec, $30, $09 + db $04, $f4, $31, $09 + db $04, $fc, $32, $09 + db $04, $04, $33, $09 + db $04, $0c, $34, $09 + db $0c, $ec, $40, $09 + db $0c, $f4, $41, $09 + db $0c, $fc, $42, $09 + db $0c, $04, $43, $09 + db $0c, $0c, $44, $09 +; 8e50b + +Unknown_8e50b: ; 8e50b + db 16 + db $f0, $ec, $00, $0a + db $f0, $f4, $01, $0a + db $f0, $fc, $02, $0a + db $f0, $04, $03, $0a + db $f8, $ec, $04, $0a + db $f8, $f4, $05, $0a + db $f8, $fc, $06, $0a + db $f8, $04, $07, $0a + db $00, $ec, $08, $0a + db $00, $f4, $09, $0a + db $00, $fc, $0a, $0a + db $00, $04, $0b, $0a + db $08, $ec, $0c, $0a + db $08, $f4, $0d, $0a + db $08, $fc, $0e, $0a + db $08, $04, $0f, $0a +; 8e54c + +Unknown_8e54c: ; 8e54c + db 1 + db $fc, $fc, $00, $00 +; 8e551 + +Unknown_8e551: ; 8e551 + db 3 + db $00, $f8, $00, $00 + db $f8, $f8, $01, $00 + db $f8, $00, $02, $00 +; 8e55e + +Unknown_8e55e: ; 8e55e + db 7 + db $08, $f0, $00, $00 + db $00, $f0, $01, $00 + db $f8, $f0, $02, $00 + db $f8, $f8, $03, $00 + db $f0, $f8, $04, $00 + db $f0, $00, $05, $00 + db $f0, $08, $06, $00 +; 8e57b + +Unknown_8e57b: ; 8e57b + db 8 + db $f8, $f0, $00, $00 + db $f8, $f8, $01, $00 + db $f8, $00, $01, $20 + db $f8, $08, $00, $20 + db $00, $f0, $00, $40 + db $00, $f8, $01, $40 + db $00, $00, $01, $60 + db $00, $08, $00, $60 +; 8e59c + +Unknown_8e59c: ; 8e59c + db 12 + db $e8, $f8, $00, $00 + db $f0, $f8, $01, $00 + db $f8, $f8, $02, $00 + db $e8, $00, $00, $20 + db $f0, $00, $01, $20 + db $f8, $00, $02, $20 + db $00, $f8, $02, $40 + db $08, $f8, $01, $40 + db $10, $f8, $00, $40 + db $00, $00, $02, $60 + db $08, $00, $01, $60 + db $10, $00, $00, $60 +; 8e5cd + +Unknown_8e5cd: ; 8e5cd + db 20 + db $ec, $f0, $00, $00 + db $ec, $f8, $01, $00 + db $ec, $00, $02, $00 + db $ec, $08, $03, $00 + db $f4, $f0, $04, $00 + db $f4, $f8, $05, $00 + db $f4, $00, $06, $00 + db $f4, $08, $07, $00 + db $fc, $f0, $08, $00 + db $fc, $f8, $09, $00 + db $fc, $00, $0a, $00 + db $fc, $08, $0b, $00 + db $04, $f0, $0c, $00 + db $04, $f8, $0d, $00 + db $04, $00, $0e, $00 + db $04, $08, $0f, $00 + db $0c, $f0, $10, $00 + db $0c, $f8, $11, $00 + db $0c, $00, $12, $00 + db $0c, $08, $13, $00 +; 8e61e + +Unknown_8e61e: ; 8e61e + db 20 + db $00, $08, $00, $81 + db $08, $10, $00, $81 + db $10, $18, $00, $81 + db $18, $20, $00, $81 + db $20, $28, $00, $81 + db $18, $30, $00, $81 + db $10, $38, $00, $81 + db $08, $40, $00, $81 + db $00, $48, $00, $81 + db $08, $50, $00, $81 + db $10, $58, $00, $81 + db $18, $60, $00, $81 + db $20, $68, $00, $81 + db $18, $70, $00, $81 + db $10, $78, $00, $81 + db $08, $80, $00, $81 + db $00, $88, $00, $81 + db $08, $90, $00, $81 + db $10, $98, $00, $81 + db $18, $a0, $00, $81 +; 8e66f + +Unknown_8e66f: ; 8e66f + db 4 + db $f8, $f8, $00, $02 + db $f8, $00, $01, $02 + db $00, $f8, $02, $02 + db $00, $00, $03, $02 +; 8e680 + +Unknown_8e680: ; 8e680 + db 9 + db $f0, $f4, $00, $01 + db $f0, $fc, $01, $01 + db $f0, $04, $02, $01 + db $f8, $f4, $10, $01 + db $f8, $fc, $11, $01 + db $f8, $04, $12, $01 + db $00, $f4, $20, $01 + db $00, $fc, $21, $01 + db $00, $04, $22, $01 +; 8e6a5 + +Unknown_8e6a5: ; 8e6a5 + db 24 + db $d8, $f4, $00, $01 + db $d8, $fc, $01, $01 + db $d8, $04, $02, $01 + db $d8, $0c, $03, $01 + db $e0, $f4, $10, $01 + db $e0, $fc, $11, $01 + db $e0, $04, $12, $01 + db $e0, $0c, $13, $01 + db $e8, $f4, $20, $01 + db $e8, $fc, $21, $01 + db $e8, $04, $22, $01 + db $e8, $0c, $23, $01 + db $f0, $f4, $30, $01 + db $f0, $fc, $31, $01 + db $f0, $04, $32, $01 + db $f0, $0c, $33, $01 + db $f8, $f4, $40, $01 + db $f8, $fc, $41, $01 + db $f8, $04, $42, $01 + db $f8, $0c, $43, $01 + db $00, $f4, $50, $01 + db $00, $fc, $51, $01 + db $00, $04, $52, $01 + db $00, $0c, $53, $01 +; 8e706 +Unknown_8e706: ; Broken 2bpp pointers + dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply) + dbbw $80, $01, $672a + dbbw $80, $01, $672a + dbbw $80, $01, $672a + dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX) + dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data) + dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data) + dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7) + dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c) + +Function8e72a: ; 8e72a + add $10 +Function8e72c: ; 8e72c + and $3f + cp $20 + jr nc, .asm_8e737 + call Function8e741 + ld a, h + ret -.bankswitch - ld [rVBK], a - call Get2bpp - pop af - ld [rVBK], a +.asm_8e737 + and $1f + call Function8e741 + ld a, h + xor $ff ; cpl + inc a ret -; 1442f +; 8e741 -LoadEmote:: ; 1442f -; Get the address of the pointer to emote c. - ld a, c - ld bc, 6 - ld hl, EmotesPointers - call AddNTimes -; Load the emote address into de +Function8e741: ; 8e741 + ld e, a + ld a, d + ld d, 0 + ld hl, Unknown_8e75d +rept 2 + add hl, de +endr ld e, [hl] inc hl ld d, [hl] -; load the length of the emote (in tiles) into c - inc hl - ld c, [hl] - swap c -; load the emote pointer bank into b - inc hl - ld b, [hl] -; load the VRAM destination into hl - inc hl - ld a, [hli] - ld h, [hl] - ld l, a -; if the emote has a length of 0, do not proceed (error handling) - ld a, c + ld hl, 0 +.asm_8e750 + srl a + jr nc, .asm_8e755 + add hl, de + +.asm_8e755 + sla e + rl d and a - ret z - call GetEmote2bpp - ret -; 1444d - -emote_header: MACRO - dw \1 - db \2 tiles, BANK(\1) - dw \3 -ENDM - -EmotesPointers: ; 144d -; dw source address -; db length, bank -; dw dest address - - emote_header ShockEmote, 4, VTiles1 tile $78 - emote_header QuestionEmote, 4, VTiles1 tile $78 - emote_header HappyEmote, 4, VTiles1 tile $78 - emote_header SadEmote, 4, VTiles1 tile $78 - emote_header HeartEmote, 4, VTiles1 tile $78 - emote_header BoltEmote, 4, VTiles1 tile $78 - emote_header SleepEmote, 4, VTiles1 tile $78 - emote_header FishEmote, 4, VTiles1 tile $78 - emote_header FishingRodGFX1, 1, VTiles1 tile $7c - emote_header FishingRodGFX2, 2, VTiles1 tile $7c - emote_header FishingRodGFX3, 2, VTiles1 tile $7e - emote_header FishingRodGFX4, 1, VTiles1 tile $7e -; 14495 - - -SpriteMons: ; 14495 - db UNOWN - db GEODUDE - db GROWLITHE - db WEEDLE - db SHELLDER - db ODDISH - db GENGAR - db ZUBAT - db MAGIKARP - db SQUIRTLE - db TOGEPI - db BUTTERFREE - db DIGLETT - db POLIWAG - db PIKACHU - db CLEFAIRY - db CHARMANDER - db JYNX - db STARMIE - db BULBASAUR - db JIGGLYPUFF - db GRIMER - db EKANS - db PARAS - db TENTACOOL - db TAUROS - db MACHOP - db VOLTORB - db LAPRAS - db RHYDON - db MOLTRES - db SNORLAX - db GYARADOS - db LUGIA - db HO_OH -; 144b8 - - -OutdoorSprites: ; 144b8 -; Valid sprite IDs for each map group. - - dw Group1Sprites - dw Group2Sprites - dw Group3Sprites - dw Group4Sprites - dw Group5Sprites - dw Group6Sprites - dw Group7Sprites - dw Group8Sprites - dw Group9Sprites - dw Group10Sprites - dw Group11Sprites - dw Group12Sprites - dw Group13Sprites - dw Group14Sprites - dw Group15Sprites - dw Group16Sprites - dw Group17Sprites - dw Group18Sprites - dw Group19Sprites - dw Group20Sprites - dw Group21Sprites - dw Group22Sprites - dw Group23Sprites - dw Group24Sprites - dw Group25Sprites - dw Group26Sprites -; 144ec - - -Group13Sprites: ; 144ec - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14503 - -Group23Sprites: ; 14503 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1451a - -Group14Sprites: ; 1451a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14531 - -Group6Sprites: ; 14531 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14548 - -Group7Sprites: ; 14548 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 1455f - -Group25Sprites: ; 1455f - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 14576 - -Group21Sprites: ; 14576 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_POLIWAG - db SPRITE_TEACHER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_BIKER - db SPRITE_SILVER - db SPRITE_BLUE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1458d - -Group18Sprites: ; 1458d - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145a4 - -Group12Sprites: ; 145a4 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145bb - -Group17Sprites: ; 145bb - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145d2 - -Group16Sprites: ; 145d2 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_BUENA - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_MACHOP - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 145e9 - -Group24Sprites: ; 145e9 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14600 - -Group26Sprites: ; 14600 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14617 - -Group19Sprites: ; 14617 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1462e - -Group10Sprites: ; 1462e - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14645 - -Group4Sprites: ; 14645 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1465c - -Group8Sprites: ; 1465c - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_KURT_OUTSIDE - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_TEACHER - db SPRITE_AZALEA_ROCKET - db SPRITE_LASS - db SPRITE_SILVER - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 14673 - -Group11Sprites: ; 14673 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_POKE_BALL - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_DAYCARE_MON_1 - db SPRITE_COOLTRAINER_F - db SPRITE_ROCKET - db SPRITE_LASS - db SPRITE_DAYCARE_MON_2 - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 1468a - -Group22Sprites: ; 1468a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146a1 - -Group1Sprites: ; 146a1 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146b8 - -Group9Sprites: ; 146b8 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LANCE - db SPRITE_GRAMPS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_LASS - db SPRITE_YOUNGSTER - db SPRITE_GYARADOS - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146cf - -Group2Sprites: ; 146cf - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146e6 - -Group5Sprites: ; 146e6 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146fd - -Group3Sprites: ; 146fd - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_GAMEBOY_KID - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LASS - db SPRITE_POKEFAN_F - db SPRITE_TEACHER - db SPRITE_YOUNGSTER - db SPRITE_GROWLITHE - db SPRITE_POKEFAN_M - db SPRITE_ROCKER - db SPRITE_FISHER - db SPRITE_SCIENTIST - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 14714 - -Group15Sprites: ; 14714 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SAILOR - db SPRITE_FISHING_GURU - db SPRITE_GENTLEMAN - db SPRITE_SUPER_NERD - db SPRITE_HO_OH - db SPRITE_TEACHER - db SPRITE_COOLTRAINER_F - db SPRITE_YOUNGSTER - db SPRITE_FAIRY - db SPRITE_POKE_BALL - db SPRITE_ROCK -; 1472b - -Group20Sprites: ; 1472b - db SPRITE_OAK - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_TWIN - db SPRITE_POKEFAN_M - db SPRITE_GRAMPS - db SPRITE_FAIRY - db SPRITE_SILVER - db SPRITE_FISHING_GURU - db SPRITE_POKE_BALL - db SPRITE_POKEDEX -; 14736 - - -SpriteHeaders: ; 14736 -INCLUDE "gfx/overworld/sprite_headers.asm" -; 1499a + jr nz, .asm_8e750 + ret +; 8e75d + +Unknown_8e75d: ; 8e75d + sine_wave $100 |