summaryrefslogtreecommitdiff
path: root/engine/sprites.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/sprites.asm')
-rwxr-xr-xengine/sprites.asm4031
1 files changed, 2719 insertions, 1312 deletions
diff --git a/engine/sprites.asm b/engine/sprites.asm
index 517428007..38b8ed82f 100755
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -1,1480 +1,2887 @@
-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
+InitSpriteAnimStruct:: ; 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
+ 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, SPRITE_ANIM_SEQ_01, $00 ; 00
+ db $07, SPRITE_ANIM_SEQ_04, $00 ; 01
+ db $08, SPRITE_ANIM_SEQ_05, $05 ; 02
+ db $0a, SPRITE_ANIM_SEQ_06, $00 ; 03
+ db $0b, SPRITE_ANIM_SEQ_07, $06 ; 04
+ db $0c, SPRITE_ANIM_SEQ_08, $06 ; 05
+ db $0d, SPRITE_ANIM_SEQ_09, $07 ; 06
+ db $0e, SPRITE_ANIM_SEQ_0A, $07 ; 07
+ db $10, SPRITE_ANIM_SEQ_0B, $07 ; 08
+ db $08, SPRITE_ANIM_SEQ_0C, $05 ; 09
+ db $11, SPRITE_ANIM_SEQ_00, $00 ; 0a
+ db $12, SPRITE_ANIM_SEQ_0D, $08 ; 0b
+ db $12, SPRITE_ANIM_SEQ_0E, $08 ; 0c
+ db $12, SPRITE_ANIM_SEQ_0F, $08 ; 0d
+ db $13, SPRITE_ANIM_SEQ_10, $00 ; 0e
+ db $15, SPRITE_ANIM_SEQ_00, $00 ; 0f
+ db $16, SPRITE_ANIM_SEQ_11, $00 ; 10
+ db $17, SPRITE_ANIM_SEQ_12, $00 ; 11
+ db $18, SPRITE_ANIM_SEQ_12, $00 ; 12
+ db $19, SPRITE_ANIM_SEQ_13, $00 ; 13
+ db $1a, SPRITE_ANIM_SEQ_14, $00 ; 14
+ db $1b, SPRITE_ANIM_SEQ_00, $00 ; 15
+ db $1d, SPRITE_ANIM_SEQ_15, $00 ; 16
+ db $1e, SPRITE_ANIM_SEQ_00, $00 ; 17
+ db $1d, SPRITE_ANIM_SEQ_17, $00 ; 18
+ db $1f, SPRITE_ANIM_SEQ_00, $00 ; 19
+ db $24, SPRITE_ANIM_SEQ_19, $00 ; 1a
+ db $25, SPRITE_ANIM_SEQ_00, $00 ; 1b
+ db $20, SPRITE_ANIM_SEQ_13, $00 ; 1c
+ db $26, SPRITE_ANIM_SEQ_1A, $00 ; 1d
+ db $2d, SPRITE_ANIM_SEQ_00, $00 ; 1e
+ db $2e, SPRITE_ANIM_SEQ_00, $00 ; 1f
+ db $2f, SPRITE_ANIM_SEQ_00, $00 ; 20
+ db $30, SPRITE_ANIM_SEQ_00, $00 ; 21
+ db $31, SPRITE_ANIM_SEQ_00, $00 ; 22
+ db $32, SPRITE_ANIM_SEQ_1B, $00 ; 23
+ db $33, SPRITE_ANIM_SEQ_1C, $00 ; 24
+ db $34, SPRITE_ANIM_SEQ_00, $00 ; 25
+ db $35, SPRITE_ANIM_SEQ_1D, $00 ; 26
+ db $37, SPRITE_ANIM_SEQ_1E, $00 ; 27
+ db $38, SPRITE_ANIM_SEQ_1E, $00 ; 28
+ db $39, SPRITE_ANIM_SEQ_20, $00 ; 29
+ db $3f, SPRITE_ANIM_SEQ_21, $00 ; 2a
+ db $3e, SPRITE_ANIM_SEQ_22, $00 ; 2b
+ db $40, SPRITE_ANIM_SEQ_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