shithub: pokecrystal

Download patch

ref: be082943ed8fa746ae345b9f93783e5993550373
parent: 92a8c491c3a8c39a7c51b300d759f93aa5157447
author: PikalaxALT <PikalaxALT@gmail.com>
date: Wed Dec 2 08:24:18 EST 2015

More work interpreting the sprite engine

--- a/battle/core.asm
+++ b/battle/core.asm
@@ -5225,11 +5225,11 @@
 BattleMenu_Pack: ; 3e1c7
 	ld a, [wLinkMode]
 	and a
-	jp nz, ItemsCantBeUsed
+	jp nz, .ItemsCantBeUsed
 
 	ld a, [InBattleTowerBattle]
 	and a
-	jp nz, ItemsCantBeUsed
+	jp nz, .ItemsCantBeUsed
 
 	call LoadStandardMenuDataHeader
 
@@ -5258,7 +5258,7 @@
 	call DoItemEffect
 
 .got_item
-	call Function3e234
+	call .UseItem
 	ret
 
 .didnt_use_item
@@ -5274,23 +5274,23 @@
 	jp BattleMenu
 ; 3e22b
 
-ItemsCantBeUsed: ; 3e22b
+.ItemsCantBeUsed: ; 3e22b
 	ld hl, BattleText_ItemsCantBeUsedHere
 	call StdBattleTextBox
 	jp BattleMenu
 ; 3e234
 
-Function3e234: ; 3e234
+.UseItem: ; 3e234
 	ld a, [wc64e]
 	and a
-	jr nz, .asm_3e279
+	jr nz, .run
 	callab CheckItemPocket
 	ld a, [wItemAttributeParamBuffer]
-	cp $3
-	jr z, .asm_3e24a
+	cp BALL
+	jr z, .ball
 	call ClearBGPalettes
 
-.asm_3e24a
+.ball
 	xor a
 	ld [hBGMapMode], a
 	call _LoadBattleFontsHPBar
@@ -5297,10 +5297,10 @@
 	call ClearSprites
 	ld a, [BattleType]
 	cp BATTLETYPE_TUTORIAL
-	jr z, .asm_3e25d
+	jr z, .tutorial2
 	call GetMonBackpic
 
-.asm_3e25d
+.tutorial2
 	call GetMonFrontpic
 	ld a, $1
 	ld [MenuSelection2], a
@@ -5313,7 +5313,7 @@
 	and a
 	ret
 
-.asm_3e279
+.run
 	xor a
 	ld [wc64e], a
 	ld a, [wBattleResult]
@@ -5331,39 +5331,39 @@
 	call ExitMenu
 	call LoadStandardMenuDataHeader
 	call ClearBGPalettes
-Function3e299:
+BattleMenuPKMN_Loop:
 	call Function3d2fa
 	xor a
 	ld [PartyMenuActionText], a
 	call Function3d313
 	call Function3d329
-	jr c, .asm_3e2da
-.asm_3e2a8
+	jr c, .Cancel
+.loop
 	callba Function8ea4a
-	call Function3e2f5
-	jr c, .asm_3e2c8
+	call .GetMenu
+	jr c, .PressedB
 	call Function1bee
 	ld a, [MenuSelection2]
-	cp $1
-	jp z, Function3e358
-	cp $2
-	jr z, .asm_3e2cf
-	cp $3
-	jr z, .asm_3e2da
-	jr .asm_3e2a8
+	cp $1 ; SWITCH
+	jp z, TryPlayerSwitch
+	cp $2 ; STATS
+	jr z, .Stats
+	cp $3 ; CANCEL
+	jr z, .Cancel
+	jr .loop
 
-.asm_3e2c8
+.PressedB
 	call CheckMobileBattleError
-	jr c, .asm_3e2da
-	jr Function3e299
+	jr c, .Cancel
+	jr BattleMenuPKMN_Loop
 
-.asm_3e2cf
+.Stats
 	call Function3e308
 	call CheckMobileBattleError
-	jr c, .asm_3e2da
+	jr c, .Cancel
 	jp Function3e290
 
-.asm_3e2da
+.Cancel
 	call ClearSprites
 	call ClearPalettes
 	call DelayFrame
@@ -5375,14 +5375,14 @@
 	jp BattleMenu
 ; 3e2f5
 
-Function3e2f5: ; 3e2f5
+.GetMenu: ; 3e2f5
 	call IsMobileBattle
-	jr z, .asm_3e301
-	callba Function24e99
+	jr z, .mobile
+	callba BattleMonMenu
 	ret
 
-.asm_3e301
-	callba Function100d22
+.mobile
+	callba MobileBattleMonMenu
 	ret
 ; 3e308
 
@@ -5394,7 +5394,7 @@
 	call CopyBytes
 	ld hl, VTiles2
 	ld de, VTiles0 tile $11
-	ld bc, $0310
+	ld bc, $31 tiles
 	call CopyBytes
 	call EnableLCD
 	call ClearSprites
@@ -5406,11 +5406,11 @@
 	call DisableLCD
 	ld hl, VTiles0
 	ld de, VTiles2 tile $31
-	ld bc, $0110
+	ld bc, $11 tiles
 	call CopyBytes
 	ld hl, VTiles0 tile $11
 	ld de, VTiles2
-	ld bc, $0310
+	ld bc, $31 tiles
 	call CopyBytes
 	call EnableLCD
 	ret
@@ -5417,32 +5417,32 @@
 ; 3e358
 
 
-Function3e358: ; 3e358
+TryPlayerSwitch: ; 3e358
 	ld a, [CurBattleMon]
 	ld d, a
 	ld a, [CurPartyMon]
 	cp d
-	jr nz, .asm_3e36b
+	jr nz, .check_trapped
 	ld hl, BattleText_PkmnIsAlreadyOut
 	call StdBattleTextBox
-	jp Function3e299
+	jp BattleMenuPKMN_Loop
 
-.asm_3e36b
+.check_trapped
 	ld a, [wPlayerWrapCount]
 	and a
-	jr nz, .asm_3e378
+	jr nz, .trapped
 	ld a, [EnemySubStatus5]
 	bit SUBSTATUS_CANT_RUN, a
-	jr z, .asm_3e381
+	jr z, .try_switch
 
-.asm_3e378
+.trapped
 	ld hl, BattleText_PkmnCantBeRecalled
 	call StdBattleTextBox
-	jp Function3e299
+	jp BattleMenuPKMN_Loop
 
-.asm_3e381
+.try_switch
 	call CheckIfPartyHasPkmnToBattleWith
-	jp z, Function3e299
+	jp z, BattleMenuPKMN_Loop
 	ld a, [CurBattleMon]
 	ld [LastPlayerMon], a
 	ld a, $2
@@ -5456,9 +5456,6 @@
 	call SetPalettes
 	ld a, [CurPartyMon]
 	ld [CurBattleMon], a
-	; fallthrough
-; 3e3ad
-
 PlayerSwitch: ; 3e3ad
 	ld a, 1
 	ld [wPlayerIsSwitching], a
@@ -9479,7 +9476,7 @@
 
 
 GetTrainerBackpic: ; 3fbff
-; Load the player character's backpic (6x6) into VRAM starting from $9310.
+; Load the player character's backpic (6x6) into VRAM starting from VTiles2 tile $31.
 
 ; Special exception for Dude.
 	ld b, BANK(DudeBackpic)
--- a/data/sprite_engine.asm
+++ b/data/sprite_engine.asm
@@ -67,159 +67,289 @@
 	dw Unknown_8d948 ; 41
 ; 8d76a
 
-Unknown_8d76a: 	dw $2000
+Unknown_8d76a: 	db $00, $20
                 db -1
-Unknown_8d76d: 	dw $0800, $0801
+Unknown_8d76d: 	db $00, $08
+                db $01, $08
                 db -2
-Unknown_8d772: 	dw $083d, $083e
+Unknown_8d772: 	db $3d, $08
+                db $3e, $08
                 db -2
-Unknown_8d777: 	dw $083f, $0840
+Unknown_8d777: 	db $3f, $08
+                db $40, $08
                 db -2
-Unknown_8d77c: 	dw $0400, $0401
+Unknown_8d77c: 	db $00, $04
+                db $01, $04
                 db -2
-Unknown_8d781: 	dw $043d, $043e
+Unknown_8d781: 	db $3d, $04
+                db $3e, $04
                 db -2
-Unknown_8d786: 	dw $043f, $0440
+Unknown_8d786: 	db $3f, $04
+                db $40, $04
                 db -2
-Unknown_8d78b: 	dw $0800, $0801, $0800, $4801
+Unknown_8d78b: 	db $00, $08
+                db $01, $08
+                db $00, $08
+                db $01, $48
                 db -2
-Unknown_8d794: 	dw $0863, $0864, $0863, $4864
+Unknown_8d794: 	db $63, $08
+                db $64, $08
+                db $63, $08
+                db $64, $48
                 db -2
-Unknown_8d79d: 	dw $0865, $0866, $0865, $4866
+Unknown_8d79d: 	db $65, $08
+                db $66, $08
+                db $65, $08
+                db $66, $48
                 db -2
-Unknown_8d7a6: 	dw $011e, $011f
+Unknown_8d7a6: 	db $1e, $01
+                db $1f, $01
                 db -2
-Unknown_8d7ab: 	dw $0120, $01fd
+Unknown_8d7ab: 	db $20, $01
+                db $fd, $01
                 db -2
-Unknown_8d7b0: 	dw $0121, $01fd
+Unknown_8d7b0: 	db $21, $01
+                db $fd, $01
                 db -2
-Unknown_8d7b5: 	dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b
+Unknown_8d7b5: 	db $81, $0c
+                db $82, $01
+                db $83, $01
+                db $82, $04
+                db $81, $0c
+                db $82, $0c
+                db $83, $04
+                db $84, $20
+                db $85, $03
+                db $86, $03
+                db $87, $04
+                db $88, $04
+                db $89, $04
+                db $8a, $0a
+                db $8b, $07
                 db -1
-Unknown_8d7d4: 	dw $0323, $8323
+Unknown_8d7d4: 	db $23, $03
+                db $23, $83
                 db -2
-Unknown_8d7d9: 	dw $0224, $0225, $0226, $0225
+Unknown_8d7d9: 	db $24, $02
+                db $25, $02
+                db $26, $02
+                db $25, $02
                 db -2
-Unknown_8d7e2: 	dw $0727, $0728, $8727, $4728
+Unknown_8d7e2: 	db $27, $07
+                db $28, $07
+                db $27, $87
+                db $28, $47
                 db -2
-Unknown_8d7eb: 	dw $0729, $072a, $0729, $072b
+Unknown_8d7eb: 	db $29, $07
+                db $2a, $07
+                db $29, $07
+                db $2b, $07
                 db -2
-Unknown_8d7f4: 	dw $0729, $072c, $072d, $072c, $0729
+Unknown_8d7f4: 	db $29, $07
+                db $2c, $07
+                db $2d, $07
+                db $2c, $07
+                db $29, $07
                 db -1
-Unknown_8d7ff: 	dw $142e
+Unknown_8d7ff: 	db $2e, $14
                 db -1
-Unknown_8d802: 	dw $202f
+Unknown_8d802: 	db $2f, $20
                 db -1
-Unknown_8d805: 	dw $2030
+Unknown_8d805: 	db $30, $20
                 db -1
-Unknown_8d808: 	dw $0330, $0331, $0330, $4331
+Unknown_8d808: 	db $30, $03
+                db $31, $03
+                db $30, $03
+                db $31, $43
                 db -2
-Unknown_8d811: 	dw $0432, $0433, $0434
+Unknown_8d811: 	db $32, $04
+                db $33, $04
+                db $34, $04
                 db -4
-Unknown_8d818: 	dw $0335, $0336
+Unknown_8d818: 	db $35, $03
+                db $36, $03
                 db -2
-Unknown_8d81d: 	dw $0737, $0738
+Unknown_8d81d: 	db $37, $07
+                db $38, $07
                 db -2
-Unknown_8d822: 	dw $2039
+Unknown_8d822: 	db $39, $20
                 db -1
-Unknown_8d825: 	dw $023b, $023a, $023b
+Unknown_8d825: 	db $3b, $02
+                db $3a, $02
+                db $3b, $02
                 db -1
-Unknown_8d82c: 	dw $203c
+Unknown_8d82c: 	db $3c, $20
                 db -1
-Unknown_8d82f: 	dw $0841, $0842, $0841, $4842
+Unknown_8d82f: 	db $41, $08
+                db $42, $08
+                db $41, $08
+                db $42, $48
                 db -2
-                dw $0843, $0844
+                db $43, $08
+                db $44, $08
                 db -2
-                dw $0845, $0846
+                db $45, $08
+                db $46, $08
                 db -2
-                dw $0847, $0848
+                db $47, $08
+                db $48, $08
                 db -2
-                dw $0149, $4149, $c149, $8149
+                db $49, $01
+                db $49, $41
+                db $49, $c1
+                db $49, $81
                 db -2
-                dw $204a
+                db $4a, $20
                 db -1
-                dw $204b
+                db $4b, $20
                 db -1
-                dw $204c
+                db $4c, $20
                 db -1
-                dw $204d
+                db $4d, $20
                 db -1
-                dw $034e, $03fd
+                db $4e, $03
+                db $fd, $03
                 db -2
-Unknown_8d861: 	dw $20fd
+Unknown_8d861: 	db $fd, $20
                 db -1
-Unknown_8d864: 	dw $204f
+Unknown_8d864: 	db $4f, $20
                 db -1
-Unknown_8d867: 	dw $0250, $1051, $01fd, $0152, $01fd, $0153
+Unknown_8d867: 	db $50, $02
+                db $51, $10
+                db $fd, $01
+                db $52, $01
+                db $fd, $01
+                db $53, $01
                 db -4
-Unknown_8d874: 	dw $2054
+Unknown_8d874: 	db $54, $20
                 db -1
-Unknown_8d877: 	dw $2055
+Unknown_8d877: 	db $55, $20
                 db -1
-Unknown_8d87a: 	dw $6055
+Unknown_8d87a: 	db $55, $60
                 db -1
-Unknown_8d87d: 	dw $a055
+Unknown_8d87d: 	db $55, $a0
                 db -1
-Unknown_8d880: 	dw $e055
+Unknown_8d880: 	db $55, $e0
                 db -1
-Unknown_8d883: 	dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a
+Unknown_8d883: 	db $56, $0a
+                db $57, $09
+                db $58, $0a
+                db $59, $0a
+                db $58, $09
+                db $5a, $0a
                 db -2
-Unknown_8d890: 	dw $0250, $025b, $0250, $425b
+Unknown_8d890: 	db $50, $02
+                db $5b, $02
+                db $50, $02
+                db $5b, $42
                 db -2
-Unknown_8d899: 	dw $025c
+Unknown_8d899: 	db $5c, $02
                 db -1
-Unknown_8d89c: 	dw $025d
+Unknown_8d89c: 	db $5d, $02
                 db -1
-Unknown_8d89f: 	dw $025e
+Unknown_8d89f: 	db $5e, $02
                 db -1
-Unknown_8d8a2: 	dw $025f
+Unknown_8d8a2: 	db $5f, $02
                 db -1
-Unknown_8d8a5: 	dw $0260
+Unknown_8d8a5: 	db $60, $02
                 db -1
-Unknown_8d8a8: 	dw $0261
+Unknown_8d8a8: 	db $61, $02
                 db -1
-Unknown_8d8ab: 	dw $0262
+Unknown_8d8ab: 	db $62, $02
                 db -1
-Unknown_8d8ae: 	dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331
+Unknown_8d8ae: 	db $32, $03
+                db $33, $03
+                db $34, $03
+                db $30, $03
+                db $31, $03
+                db $30, $03
+                db $31, $43
+                db $30, $03
+                db $31, $03
+                db $30, $03
+                db $31, $43
+                db $30, $03
+                db $31, $03
+                db $30, $03
+                db $31, $43
                 db -1
-Unknown_8d8cd: 	dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334
+Unknown_8d8cd: 	db $30, $03
+                db $31, $03
+                db $30, $03
+                db $31, $43
+                db $30, $03
+                db $31, $03
+                db $30, $03
+                db $31, $43
+                db $30, $03
+                db $31, $03
+                db $30, $03
+                db $31, $43
+                db $32, $03
+                db $33, $03
+                db $34, $03
                 db -4
-Unknown_8d8ec: 	dw $0367, $0368
+Unknown_8d8ec: 	db $67, $03
+                db $68, $03
                 db -2
-Unknown_8d8f1: 	dw $036c
+Unknown_8d8f1: 	db $6c, $03
                 db -1
-Unknown_8d8f4: 	dw $036d
+Unknown_8d8f4: 	db $6d, $03
                 db -1
-Unknown_8d8f7: 	dw $0269, $026a, $026b
+Unknown_8d8f7: 	db $69, $02
+                db $6a, $02
+                db $6b, $02
                 db -4
-Unknown_8d8fe: 	dw $036e, $036f, $0370, $0371
+Unknown_8d8fe: 	db $6e, $03
+                db $6f, $03
+                db $70, $03
+                db $71, $03
                 db -2
-Unknown_8d907: 	dw $0371, $076e
+Unknown_8d907: 	db $71, $03
+                db $6e, $07
                 db -1
-Unknown_8d90c: 	dw $2072, $0773, $0774
+Unknown_8d90c: 	db $72, $20
+                db $73, $07
+                db $74, $07
                 db -1
-Unknown_8d913: 	dw $0375
+Unknown_8d913: 	db $75, $03
                 db -1
-Unknown_8d916: 	dw $0376, $0377, $0778
+Unknown_8d916: 	db $76, $03
+                db $77, $03
+                db $78, $07
                 db -4
-Unknown_8d91d: 	dw $4376, $4377, $4778
+Unknown_8d91d: 	db $76, $43
+                db $77, $43
+                db $78, $47
                 db -4
-Unknown_8d924: 	dw $8376, $8377, $8778
+Unknown_8d924: 	db $76, $83
+                db $77, $83
+                db $78, $87
                 db -4
-Unknown_8d92b: 	dw $c376, $c377, $c778
+Unknown_8d92b: 	db $76, $c3
+                db $77, $c3
+                db $78, $c7
                 db -4
-Unknown_8d932: 	dw $0379, $037a, $037b, $077c, $077d
+Unknown_8d932: 	db $79, $03
+                db $7a, $03
+                db $7b, $03
+                db $7c, $07
+                db $7d, $07
                 db -1
-Unknown_8d93d: 	dw $037e
+Unknown_8d93d: 	db $7e, $03
                 db -1
-Unknown_8d940: 	dw $00fd
+Unknown_8d940: 	db $fd, $00
                 db -1
-Unknown_8d943: 	dw $087f, $0880
+Unknown_8d943: 	db $7f, $08
+                db $80, $08
                 db -1
-Unknown_8d948: 	dw $487f, $4880
+Unknown_8d948: 	db $7f, $48
+                db $80, $48
                 db -1
 ; 8d94d
 
 Unknown_8d94d: ; 8d94d
+	; vtile offset, pointer
 	dbw $00, Unknown_8dd8a ; 00
 	dbw $04, Unknown_8dd8a ; 01
 	dbw $4c, Unknown_8daf1 ; 02
@@ -365,1064 +495,1069 @@
 
 Unknown_8daf1: ; 8daf1
 	db 1
-	db $fc, $fc, $00, $00
+	dsprite -1,  4, -1,  4, $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
+	dsprite -1,  0, -1,  0, $00, $00
+	dsprite -1,  0,  0,  0, $01, $00
+	dsprite  0,  0, -1,  0, $10, $00
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $00
+	dsprite -1,  0,  0,  0, $00, $20
+	dsprite  0,  0, -1,  0, $01, $00
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $80
+	dsprite -1,  0,  0,  0, $00, $a0
+	dsprite  0,  0, -1,  0, $01, $80
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $00
+	dsprite -1,  0,  0,  0, $00, $20
+	dsprite  0,  0, -1,  0, $00, $40
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $07
+	dsprite -1,  0,  0,  0, $00, $27
+	dsprite  0,  0, -1,  0, $00, $47
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $80
+	dsprite -1,  0,  0,  0, $00, $a0
+	dsprite  0,  0, -1,  0, $00, $c0
+	dsprite  0,  0,  0,  0, $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
+	dsprite -2,  0, -2,  0, $00, $00
+	dsprite -2,  0, -1,  0, $01, $00
+	dsprite -1,  0, -2,  0, $02, $00
+	dsprite -1,  0, -1,  0, $03, $00
+	dsprite -2,  0,  0,  0, $01, $20
+	dsprite -2,  0,  1,  0, $00, $20
+	dsprite -1,  0,  0,  0, $03, $20
+	dsprite -1,  0,  1,  0, $02, $20
+	dsprite  0,  0, -2,  0, $02, $40
+	dsprite  0,  0, -1,  0, $03, $40
+	dsprite  1,  0, -2,  0, $00, $40
+	dsprite  1,  0, -1,  0, $01, $40
+	dsprite  0,  0,  0,  0, $03, $60
+	dsprite  0,  0,  1,  0, $02, $60
+	dsprite  1,  0,  0,  0, $01, $60
+	dsprite  1,  0,  1,  0, $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
+	dsprite -3,  0, -3,  0, $00, $00
+	dsprite -3,  0, -2,  0, $01, $00
+	dsprite -3,  0, -1,  0, $02, $00
+	dsprite -2,  0, -3,  0, $03, $00
+	dsprite -2,  0, -2,  0, $04, $00
+	dsprite -2,  0, -1,  0, $05, $00
+	dsprite -1,  0, -3,  0, $06, $00
+	dsprite -1,  0, -2,  0, $05, $00
+	dsprite -1,  0, -1,  0, $05, $00
+	dsprite -3,  0,  0,  0, $02, $20
+	dsprite -3,  0,  1,  0, $01, $20
+	dsprite -3,  0,  2,  0, $00, $20
+	dsprite -2,  0,  0,  0, $05, $20
+	dsprite -2,  0,  1,  0, $04, $20
+	dsprite -2,  0,  2,  0, $03, $20
+	dsprite -1,  0,  0,  0, $05, $20
+	dsprite -1,  0,  1,  0, $05, $20
+	dsprite -1,  0,  2,  0, $06, $20
+	dsprite  0,  0, -3,  0, $06, $40
+	dsprite  0,  0, -2,  0, $05, $40
+	dsprite  0,  0, -1,  0, $05, $40
+	dsprite  1,  0, -3,  0, $03, $40
+	dsprite  1,  0, -2,  0, $04, $40
+	dsprite  1,  0, -1,  0, $05, $40
+	dsprite  2,  0, -3,  0, $00, $40
+	dsprite  2,  0, -2,  0, $01, $40
+	dsprite  2,  0, -1,  0, $02, $40
+	dsprite  0,  0,  0,  0, $05, $60
+	dsprite  0,  0,  1,  0, $05, $60
+	dsprite  0,  0,  2,  0, $06, $60
+	dsprite  1,  0,  0,  0, $05, $60
+	dsprite  1,  0,  1,  0, $04, $60
+	dsprite  1,  0,  2,  0, $03, $60
+	dsprite  2,  0,  0,  0, $02, $60
+	dsprite  2,  0,  1,  0, $01, $60
+	dsprite  2,  0,  2,  0, $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
+	dsprite -2,  4, -2,  4, $00, $00
+	dsprite -2,  4, -1,  4, $01, $00
+	dsprite -2,  4,  0,  4, $02, $00
+	dsprite -1,  4, -2,  4, $10, $00
+	dsprite -1,  4, -1,  4, $11, $00
+	dsprite -1,  4,  0,  4, $12, $00
+	dsprite  0,  4, -2,  4, $20, $00
+	dsprite  0,  4, -1,  4, $21, $00
+	dsprite  0,  4,  0,  4, $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
+	dsprite -2,  0, -2,  0, $00, $00
+	dsprite -2,  0, -1,  0, $01, $00
+	dsprite -2,  0,  0,  0, $02, $00
+	dsprite -2,  0,  1,  0, $03, $00
+	dsprite -1,  0, -2,  0, $10, $00
+	dsprite -1,  0, -1,  0, $11, $00
+	dsprite -1,  0,  0,  0, $12, $00
+	dsprite -1,  0,  1,  0, $13, $00
+	dsprite  0,  0, -2,  0, $20, $00
+	dsprite  0,  0, -1,  0, $21, $00
+	dsprite  0,  0,  0,  0, $22, $00
+	dsprite  0,  0,  1,  0, $23, $00
+	dsprite  1,  0, -2,  0, $30, $00
+	dsprite  1,  0, -1,  0, $31, $00
+	dsprite  1,  0,  0,  0, $32, $00
+	dsprite  1,  0,  1,  0, $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
+	dsprite -3,  4, -3,  4, $00, $00
+	dsprite -2,  4, -3,  4, $01, $00
+	dsprite -1,  4, -3,  4, $02, $00
+	dsprite  0,  4, -3,  4, $03, $00
+	dsprite  1,  4, -3,  4, $04, $00
+	dsprite -3,  4, -2,  4, $05, $00
+	dsprite -2,  4, -2,  4, $06, $00
+	dsprite -1,  4, -2,  4, $07, $00
+	dsprite  0,  4, -2,  4, $08, $00
+	dsprite  1,  4, -2,  4, $09, $00
+	dsprite -3,  4, -1,  4, $0a, $00
+	dsprite -2,  4, -1,  4, $0b, $00
+	dsprite -1,  4, -1,  4, $0c, $00
+	dsprite  0,  4, -1,  4, $0d, $00
+	dsprite  1,  4, -1,  4, $0e, $00
+	dsprite -3,  4,  0,  4, $0f, $00
+	dsprite -2,  4,  0,  4, $10, $00
+	dsprite -1,  4,  0,  4, $11, $00
+	dsprite  0,  4,  0,  4, $12, $00
+	dsprite  1,  4,  0,  4, $13, $00
+	dsprite -3,  4,  1,  4, $14, $00
+	dsprite -2,  4,  1,  4, $15, $00
+	dsprite -1,  4,  1,  4, $16, $00
+	dsprite  0,  4,  1,  4, $17, $00
+	dsprite  1,  4,  1,  4, $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
+	dsprite -3,  0, -3,  0, $00, $00
+	dsprite -3,  0, -2,  0, $01, $00
+	dsprite -3,  0, -1,  0, $02, $00
+	dsprite -3,  0,  0,  0, $03, $00
+	dsprite -3,  0,  1,  0, $04, $00
+	dsprite -3,  0,  2,  0, $05, $00
+	dsprite -2,  0, -3,  0, $06, $00
+	dsprite -2,  0, -2,  0, $07, $00
+	dsprite -2,  0, -1,  0, $08, $00
+	dsprite -2,  0,  0,  0, $09, $00
+	dsprite -2,  0,  1,  0, $0a, $00
+	dsprite -2,  0,  2,  0, $0b, $00
+	dsprite -1,  0, -3,  0, $0c, $00
+	dsprite -1,  0, -2,  0, $0d, $00
+	dsprite -1,  0, -1,  0, $0e, $00
+	dsprite -1,  0,  0,  0, $0f, $00
+	dsprite -1,  0,  1,  0, $10, $00
+	dsprite -1,  0,  2,  0, $11, $00
+	dsprite  0,  0, -3,  0, $12, $00
+	dsprite  0,  0, -2,  0, $13, $00
+	dsprite  0,  0, -1,  0, $14, $00
+	dsprite  0,  0,  0,  0, $15, $00
+	dsprite  0,  0,  1,  0, $16, $00
+	dsprite  0,  0,  2,  0, $17, $00
+	dsprite  1,  0, -3,  0, $18, $00
+	dsprite  1,  0, -2,  0, $19, $00
+	dsprite  1,  0, -1,  0, $1a, $00
+	dsprite  1,  0,  0,  0, $1b, $00
+	dsprite  1,  0,  1,  0, $1c, $00
+	dsprite  1,  0,  2,  0, $1d, $00
+	dsprite  2,  0, -3,  0, $1e, $00
+	dsprite  2,  0, -2,  0, $1f, $00
+	dsprite  2,  0, -1,  0, $20, $00
+	dsprite  2,  0,  0,  0, $21, $00
+	dsprite  2,  0,  1,  0, $22, $00
+	dsprite  2,  0,  2,  0, $23, $00
 ; 8dd8a
 
 Unknown_8dd8a: ; 8dd8a
+; party menu icons
 	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $01, $00
-	db $00, $f8, $02, $00
-	db $00, $00, $03, $00
+	dsprite -1,  0, -1,  0, $00, $00
+	dsprite -1,  0,  0,  0, $01, $00
+	dsprite  0,  0, -1,  0, $02, $00
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $80
+	dsprite -1,  0,  0,  0, $01, $80
+	dsprite  0,  0, -1,  0, $02, $80
+	dsprite  0,  0,  0,  0, $03, $80
 ; 8ddac
 
 Unknown_8ddac: ; 8ddac
+; party menu icon with mail, frame 1
 	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $01, $00
-	db $00, $f8, $08, $00
-	db $00, $00, $03, $00
+	dsprite -1,  0, -1,  0, $00, $00
+	dsprite -1,  0,  0,  0, $01, $00
+	dsprite  0,  0, -1,  0, $08, $00
+	dsprite  0,  0,  0,  0, $03, $00
 ; 8ddbd
 
 Unknown_8ddbd: ; 8ddbd
+; party menu icon with mail, frame 2
 	db 4
-	db $f8, $f8, $04, $00
-	db $f8, $00, $05, $00
-	db $00, $f8, $08, $00
-	db $00, $00, $07, $00
+	dsprite -1,  0, -1,  0, $04, $00
+	dsprite -1,  0,  0,  0, $05, $00
+	dsprite  0,  0, -1,  0, $08, $00
+	dsprite  0,  0,  0,  0, $07, $00
 ; 8ddce
 
 Unknown_8ddce: ; 8ddce
+; party menu icon with item, frame 1
 	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $01, $00
-	db $00, $f8, $09, $00
-	db $00, $00, $03, $00
+	dsprite -1,  0, -1,  0, $00, $00
+	dsprite -1,  0,  0,  0, $01, $00
+	dsprite  0,  0, -1,  0, $09, $00
+	dsprite  0,  0,  0,  0, $03, $00
 ; 8dddf
 
 Unknown_8dddf: ; 8dddf
+; party menu icon with item, frame 2
 	db 4
-	db $f8, $f8, $04, $00
-	db $f8, $00, $05, $00
-	db $00, $f8, $09, $00
-	db $00, $00, $07, $00
+	dsprite -1,  0, -1,  0, $04, $00
+	dsprite -1,  0,  0,  0, $05, $00
+	dsprite  0,  0, -1,  0, $09, $00
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -2,  4, $00, $01
+	dsprite -1,  0, -1,  4, $01, $01
+	dsprite -1,  0,  0,  4, $02, $01
+	dsprite  0,  0, -2,  4, $10, $01
+	dsprite  0,  0, -1,  4, $11, $01
+	dsprite  0,  0,  0,  4, $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
+	dsprite -3,  0, -3,  0, $00, $00
+	dsprite -3,  0, -2,  0, $01, $00
+	dsprite -3,  0, -1,  0, $02, $00
+	dsprite -3,  0,  0,  0, $03, $00
+	dsprite -2,  0, -3,  0, $10, $00
+	dsprite -2,  0, -2,  0, $11, $00
+	dsprite -2,  0, -1,  0, $12, $00
+	dsprite -2,  0,  0,  0, $13, $00
+	dsprite -1,  0, -3,  0, $20, $00
+	dsprite -1,  0, -2,  0, $21, $00
+	dsprite -1,  0, -1,  0, $22, $00
+	dsprite -1,  0,  0,  0, $23, $00
+	dsprite -1,  0,  1,  0, $24, $00
+	dsprite  0,  0, -3,  0, $30, $80
+	dsprite  0,  0, -2,  0, $31, $80
+	dsprite  0,  0, -1,  0, $32, $80
+	dsprite  0,  0,  0,  0, $33, $80
+	dsprite  0,  0,  1,  0, $34, $80
+	dsprite  1,  0, -3,  0, $40, $80
+	dsprite  1,  0, -2,  0, $41, $80
+	dsprite  1,  0, -1,  0, $42, $80
+	dsprite  1,  0,  0,  0, $43, $80
+	dsprite  1,  0,  1,  0, $44, $80
+	dsprite  1,  0,  2,  0, $45, $80
+	dsprite  2,  0, -2,  0, $51, $80
+	dsprite  2,  0, -1,  0, $52, $80
+	dsprite  2,  0,  0,  0, $53, $80
+	dsprite  2,  0,  1,  0, $54, $80
+	dsprite  2,  0,  2,  0, $55, $80
 ; 8de7e
 
 Unknown_8de7e: ; 8de7e
 	db 2
-	db $f8, $fc, $00, $00
-	db $00, $fc, $10, $00
+	dsprite -1,  0, -1,  4, $00, $00
+	dsprite  0,  0, -1,  4, $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
+	dsprite -2,  0,  3,  0, $00, $00
+	dsprite -2,  0,  4,  0, $01, $00
+	dsprite -1,  0,  2,  0, $02, $00
+	dsprite -1,  0,  3,  0, $03, $00
+	dsprite  0,  0,  2,  0, $04, $00
 ; 8de9c
 
 Unknown_8de9c: ; 8de9c
 	db 1
-	db $fc, $fc, $00, $06
+	dsprite -1,  4, -1,  4, $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
+	dsprite -1,  0, -1,  0, $00, $06
+	dsprite -1,  0,  0,  0, $01, $06
+	dsprite  0,  0, -1,  0, $02, $06
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  7, -1,  7, $00, $00
+	dsprite -1,  7,  0,  0, $00, $20
+	dsprite  0,  0, -1,  7, $00, $40
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  7,  0,  0, $00, $00
+	dsprite -1,  7,  1,  0, $01, $00
+	dsprite -1,  7,  2,  0, $01, $00
+	dsprite -1,  7,  3,  0, $01, $00
+	dsprite -1,  7,  4,  0, $00, $20
+	dsprite  0,  0,  0,  0, $00, $40
+	dsprite  0,  0,  1,  0, $01, $40
+	dsprite  0,  0,  2,  0, $01, $40
+	dsprite  0,  0,  3,  0, $01, $40
+	dsprite  0,  0,  4,  0, $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
+	dsprite -3,  4, -2,  4, $00, $11
+	dsprite -3,  4, -1,  4, $01, $11
+	dsprite -3,  4,  0,  4, $02, $11
+	dsprite -2,  4, -2,  4, $03, $11
+	dsprite -2,  4, -1,  4, $04, $11
+	dsprite -2,  4,  0,  4, $05, $11
+	dsprite -1,  4, -2,  4, $06, $11
+	dsprite -1,  4, -1,  4, $07, $11
+	dsprite -1,  4,  0,  4, $08, $11
+	dsprite  0,  4, -2,  4, $09, $11
+	dsprite  0,  4, -1,  4, $0a, $11
+	dsprite  0,  4,  0,  4, $0b, $11
+	dsprite  1,  4, -2,  4, $0c, $11
+	dsprite  1,  4, -1,  4, $0d, $11
+	dsprite  1,  4,  0,  4, $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
+	dsprite -2,  4, -2,  4, $00, $15
+	dsprite -2,  4, -1,  4, $02, $15
+	dsprite -2,  4,  0,  4, $00, $35
+	dsprite  0,  4, -2,  4, $04, $15
+	dsprite  0,  4, -1,  4, $06, $15
+	dsprite  0,  4,  0,  4, $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
+	dsprite -2,  4, -2,  4, $00, $16
+	dsprite -2,  4, -1,  4, $02, $16
+	dsprite -2,  4,  0,  4, $04, $16
+	dsprite  0,  4, -2,  4, $06, $16
+	dsprite  0,  4, -1,  4, $08, $16
+	dsprite  0,  4,  0,  4, $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
+	dsprite -2,  4, -2,  4, $00, $16
+	dsprite -2,  4, -1,  4, $02, $16
+	dsprite -2,  4,  0,  4, $04, $16
+	dsprite  0,  4, -2,  4, $0c, $16
+	dsprite  0,  4, -1,  4, $0e, $16
+	dsprite  0,  4,  0,  4, $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
+	dsprite -2,  4, -2,  4, $00, $16
+	dsprite -2,  4, -1,  4, $02, $16
+	dsprite -2,  4,  0,  4, $04, $16
+	dsprite  0,  4, -2,  4, $12, $16
+	dsprite  0,  4, -1,  4, $14, $16
+	dsprite  0,  4,  0,  4, $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
+	dsprite -2,  4, -2,  4, $00, $16
+	dsprite -2,  4, -1,  4, $02, $16
+	dsprite -2,  4,  0,  4, $04, $16
+	dsprite  0,  4, -2,  4, $18, $16
+	dsprite  0,  4, -1,  4, $1a, $16
+	dsprite  0,  4,  0,  4, $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
+	dsprite -2,  4, -2,  4, $1e, $16
+	dsprite -2,  4, -1,  4, $20, $16
+	dsprite -2,  4,  0,  4, $22, $16
+	dsprite  0,  4, -2,  4, $24, $16
+	dsprite  0,  4, -1,  4, $26, $16
+	dsprite  0,  4,  0,  4, $28, $16
 ; 8dfbf
 
 Unknown_8dfbf: ; 8dfbf
 	db 3
-	db $f4, $fc, $00, $10
-	db $fc, $fc, $00, $10
-	db $04, $fc, $00, $10
+	dsprite -2,  4, -1,  4, $00, $10
+	dsprite -1,  4, -1,  4, $00, $10
+	dsprite  0,  4, -1,  4, $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
+	dsprite  0,  0,  0,  0, $00, $00
+	dsprite  0,  0,  1,  0, $01, $00
+	dsprite  0,  0,  2,  0, $01, $00
+	dsprite  0,  0,  3,  0, $01, $00
+	dsprite  0,  0,  4,  0, $02, $00
+	dsprite  0,  0,  5,  0, $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
+	dsprite  0,  0,  0,  0, $00, $00
+	dsprite  0,  0,  1,  0, $01, $00
+	dsprite  0,  0,  2,  0, $02, $00
+	dsprite  0,  0,  3,  0, $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
+	dsprite -1,  0, -2,  6, $00, $06
+	dsprite -1,  0,  0,  2, $01, $06
+	dsprite  0,  0, -2,  6, $02, $06
+	dsprite  0,  0,  0,  2, $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
+	dsprite -1,  0, -2,  4, $00, $06
+	dsprite -1,  0,  0,  4, $01, $06
+	dsprite  0,  0, -2,  4, $02, $06
+	dsprite  0,  0,  0,  4, $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
+	dsprite -1,  0, -2,  0, $00, $06
+	dsprite -1,  0,  1,  0, $01, $06
+	dsprite  0,  0, -2,  0, $02, $06
+	dsprite  0,  0,  1,  0, $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
+	dsprite -1,  0, -4,  0, $00, $00
+	dsprite -2,  0, -3,  0, $02, $00
+	dsprite  0,  0, -3,  0, $04, $00
+	dsprite -3,  0, -2,  0, $06, $00
+	dsprite -1,  0, -2,  0, $08, $00
+	dsprite  1,  0, -2,  0, $0a, $00
+	dsprite -3,  0, -1,  0, $0c, $00
+	dsprite -1,  0, -1,  0, $0e, $00
+	dsprite  1,  0, -1,  0, $10, $00
+	dsprite -3,  0,  0,  0, $12, $00
+	dsprite -1,  0,  0,  0, $14, $00
+	dsprite  1,  0,  0,  0, $16, $00
+	dsprite -3,  0,  1,  0, $18, $00
+	dsprite -1,  0,  1,  0, $1a, $00
+	dsprite  1,  0,  1,  0, $1c, $00
+	dsprite -1,  0,  2,  0, $1e, $00
+	dsprite  1,  0,  2,  0, $20, $00
+	dsprite -2,  0,  3,  0, $22, $00
+	dsprite  0,  0,  3,  0, $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
+	dsprite -1,  0, -4,  0, $00, $00
+	dsprite -2,  0, -3,  0, $02, $00
+	dsprite  0,  0, -3,  0, $04, $00
+	dsprite -1,  0, -2,  0, $26, $00
+	dsprite  1,  0, -2,  0, $0a, $00
+	dsprite -3,  0, -1,  0, $28, $00
+	dsprite -1,  0, -1,  0, $2a, $00
+	dsprite  1,  0, -1,  0, $10, $00
+	dsprite -1,  0,  0,  0, $2c, $00
+	dsprite  1,  0,  0,  0, $16, $00
+	dsprite -1,  0,  1,  0, $30, $00
+	dsprite  1,  0,  1,  0, $1c, $00
+	dsprite -1,  0,  2,  0, $1e, $00
+	dsprite  1,  0,  2,  0, $20, $00
+	dsprite -2,  0,  3,  0, $22, $00
+	dsprite  0,  0,  3,  0, $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
+	dsprite -1,  0, -4,  0, $00, $00
+	dsprite -2,  0, -3,  0, $02, $00
+	dsprite  0,  0, -3,  0, $32, $00
+	dsprite -1,  0, -2,  0, $34, $00
+	dsprite  1,  0, -2,  0, $36, $00
+	dsprite -1,  0, -1,  0, $38, $00
+	dsprite  1,  0, -1,  0, $3a, $00
+	dsprite -1,  0,  0,  0, $3c, $00
+	dsprite  1,  0,  0,  0, $3e, $00
+	dsprite -1,  0,  1,  0, $30, $00
+	dsprite  1,  0,  1,  0, $1c, $00
+	dsprite -1,  0,  2,  0, $1e, $00
+	dsprite  1,  0,  2,  0, $20, $00
+	dsprite -2,  0,  3,  0, $22, $00
+	dsprite  0,  0,  3,  0, $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
+	dsprite -1,  0, -4,  0, $00, $00
+	dsprite -2,  0, -3,  0, $02, $00
+	dsprite  0,  0, -3,  0, $04, $00
+	dsprite -1,  0, -2,  0, $40, $00
+	dsprite  1,  0, -2,  0, $42, $00
+	dsprite  3,  0, -2,  0, $44, $00
+	dsprite -1,  0, -1,  0, $46, $00
+	dsprite  1,  0, -1,  0, $48, $00
+	dsprite  3,  0, -1,  0, $4a, $00
+	dsprite -1,  0,  0,  0, $4c, $00
+	dsprite  1,  0,  0,  0, $4e, $00
+	dsprite -1,  0,  1,  0, $30, $00
+	dsprite  1,  0,  1,  0, $1c, $00
+	dsprite -1,  0,  2,  0, $1e, $00
+	dsprite  1,  0,  2,  0, $20, $00
+	dsprite -2,  0,  3,  0, $22, $00
+	dsprite  0,  0,  3,  0, $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
+	dsprite -1,  0, -4,  0, $00, $00
+	dsprite -2,  0, -3,  0, $02, $00
+	dsprite  0,  0, -3,  0, $04, $00
+	dsprite -1,  0, -2,  0, $50, $00
+	dsprite  1,  0, -2,  0, $0a, $00
+	dsprite -3,  0, -1,  0, $52, $00
+	dsprite -1,  0, -1,  0, $54, $00
+	dsprite  1,  0, -1,  0, $10, $00
+	dsprite -3,  0,  0,  0, $56, $00
+	dsprite -1,  0,  0,  0, $2e, $00
+	dsprite  1,  0,  0,  0, $16, $00
+	dsprite -1,  0,  1,  0, $30, $00
+	dsprite  1,  0,  1,  0, $1c, $00
+	dsprite -1,  0,  2,  0, $1e, $00
+	dsprite  1,  0,  2,  0, $20, $00
+	dsprite -2,  0,  3,  0, $22, $00
+	dsprite  0,  0,  3,  0, $24, $00
 ; 8e17e
 
 Unknown_8e17e: ; 8e17e
 	db 1
-	db $fc, $fc, $00, $11
+	dsprite -1,  4, -1,  4, $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
+	dsprite  0,  0,  0,  0, $30, $00
+	dsprite  0,  0,  1,  0, $31, $00
+	dsprite  0,  0,  2,  0, $31, $00
+	dsprite  0,  0,  3,  0, $31, $00
+	dsprite  0,  0,  4,  0, $31, $00
+	dsprite  0,  0,  5,  0, $32, $00
+	dsprite  1,  0,  0,  0, $33, $00
+	dsprite  1,  0,  1,  0, $34, $00
+	dsprite  1,  0,  2,  0, $34, $00
+	dsprite  1,  0,  3,  0, $34, $00
+	dsprite  1,  0,  4,  0, $34, $00
+	dsprite  1,  0,  5,  0, $35, $00
 ; 8e1b4
 
 Unknown_8e1b4: ; 8e1b4
 	db 1
-	db $00, $00, $ed, $00
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  7, -1,  7, $30, $00
+	dsprite -1,  7,  0,  1, $32, $00
+	dsprite  0,  1, -1,  7, $33, $00
+	dsprite  0,  1,  0,  1, $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
+	dsprite -1,  7, -1,  7, $30, $00
+	dsprite -1,  7,  0,  4, $31, $00
+	dsprite -1,  7,  1,  4, $31, $00
+	dsprite -1,  7,  2,  1, $32, $00
+	dsprite  0,  1, -1,  7, $33, $00
+	dsprite  0,  1,  0,  4, $34, $00
+	dsprite  0,  1,  1,  4, $34, $00
+	dsprite  0,  1,  2,  1, $35, $00
 ; 8e1eb
 
 Unknown_8e1eb: ; 8e1eb
 	db 1
-	db $00, $00, $34, $00
+	dsprite  0,  0,  0,  0, $34, $00
 ; 8e1f0
 
 Unknown_8e1f0: ; 8e1f0
 	db 2
-	db $00, $00, $30, $00
-	db $08, $00, $33, $00
+	dsprite  0,  0,  0,  0, $30, $00
+	dsprite  1,  0,  0,  0, $33, $00
 ; 8e1f9
 
 Unknown_8e1f9: ; 8e1f9
 	db 2
-	db $00, $00, $32, $00
-	db $08, $00, $35, $00
+	dsprite  0,  0,  0,  0, $32, $00
+	dsprite  1,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $01
+	dsprite -1,  0,  0,  0, $01, $01
+	dsprite  0,  0, -1,  0, $02, $01
+	dsprite  0,  0,  0,  0, $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
+	dsprite -1,  0, -1,  0, $00, $81
+	dsprite -1,  0,  0,  0, $01, $81
+	dsprite  0,  0, -1,  0, $02, $81
+	dsprite  0,  0,  0,  0, $03, $81
 ; 8e224
 
 Unknown_8e224: ; 8e224
 	db 1
-	db $fc, $fc, $00, $02
+	dsprite -1,  4, -1,  4, $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
+	dsprite -2,  0, -1,  4, $00, $03
+	dsprite -1,  0, -1,  4, $01, $03
+	dsprite  0,  0, -1,  4, $02, $03
+	dsprite  1,  0, -1,  4, $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
+	dsprite -2,  0, -1,  4, $03, $44
+	dsprite -1,  0, -1,  4, $02, $44
+	dsprite  0,  0, -1,  4, $01, $44
+	dsprite  1,  0, -1,  4, $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
+	dsprite -1,  0, -1,  0, $00, $01
+	dsprite -1,  0,  0,  0, $00, $21
+	dsprite  0,  0, -1,  0, $00, $41
+	dsprite  0,  0,  0,  0, $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
+	dsprite -2,  4, -2,  4, $00, $01
+	dsprite -2,  4, -1,  4, $01, $01
+	dsprite -2,  4,  0,  4, $00, $21
+	dsprite -1,  4, -2,  4, $02, $01
+	dsprite -1,  4,  0,  4, $02, $21
+	dsprite  0,  4, -2,  4, $00, $41
+	dsprite  0,  4, -1,  4, $01, $41
+	dsprite  0,  4,  0,  4, $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
+	dsprite -2,  0, -2,  0, $00, $01
+	dsprite -2,  0, -1,  0, $01, $01
+	dsprite -1,  0, -2,  0, $02, $01
+	dsprite -2,  0,  0,  0, $01, $21
+	dsprite -2,  0,  1,  0, $00, $21
+	dsprite -1,  0,  1,  0, $02, $21
+	dsprite  0,  0, -2,  0, $02, $41
+	dsprite  1,  0, -2,  0, $00, $41
+	dsprite  1,  0, -1,  0, $01, $41
+	dsprite  0,  0,  1,  0, $02, $61
+	dsprite  1,  0,  0,  0, $01, $61
+	dsprite  1,  0,  1,  0, $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
+	dsprite -3,  0,  1,  0, $05, $00
+	dsprite -3,  0,  2,  0, $06, $00
+	dsprite -3,  0,  3,  0, $07, $00
+	dsprite -2,  0, -3,  0, $11, $00
+	dsprite -2,  0, -2,  0, $12, $00
+	dsprite -2,  0, -1,  0, $13, $00
+	dsprite -2,  0,  0,  0, $14, $00
+	dsprite -2,  0,  1,  0, $15, $00
+	dsprite -2,  0,  2,  0, $16, $00
+	dsprite -2,  0,  3,  0, $17, $00
+	dsprite -1,  0, -4,  0, $20, $00
+	dsprite -1,  0, -3,  0, $21, $00
+	dsprite -1,  0, -2,  0, $22, $00
+	dsprite -1,  0, -1,  0, $23, $00
+	dsprite -1,  0,  0,  0, $24, $00
+	dsprite -1,  0,  1,  0, $25, $00
+	dsprite -1,  0,  2,  0, $26, $00
+	dsprite -1,  0,  3,  0, $27, $00
+	dsprite  0,  0, -4,  0, $30, $00
+	dsprite  0,  0, -3,  0, $31, $00
+	dsprite  0,  0, -2,  0, $32, $00
+	dsprite  0,  0, -1,  0, $33, $00
+	dsprite  0,  0,  0,  0, $34, $00
+	dsprite  0,  0,  1,  0, $35, $00
+	dsprite  0,  0,  2,  0, $36, $00
+	dsprite  1,  0, -4,  0, $40, $00
+	dsprite  1,  0, -3,  0, $41, $00
+	dsprite  1,  0, -2,  0, $42, $00
+	dsprite  1,  0, -1,  0, $43, $00
+	dsprite  1,  0,  0,  0, $44, $00
+	dsprite  1,  0,  1,  0, $45, $00
+	dsprite  1,  0,  2,  0, $46, $00
+	dsprite  1,  0,  3,  0, $47, $00
+	dsprite  2,  0, -4,  0, $50, $00
+	dsprite  2,  0, -3,  0, $51, $00
+	dsprite  2,  0,  3,  0, $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
+	dsprite -3,  0,  0,  0, $04, $00
+	dsprite -3,  0,  1,  0, $05, $00
+	dsprite -3,  0,  2,  0, $06, $00
+	dsprite -2,  0, -3,  0, $11, $00
+	dsprite -2,  0, -2,  0, $12, $00
+	dsprite -2,  0, -1,  0, $13, $00
+	dsprite -2,  0,  0,  0, $14, $00
+	dsprite -2,  0,  1,  0, $15, $00
+	dsprite -2,  0,  2,  0, $16, $00
+	dsprite -1,  0, -3,  0, $21, $00
+	dsprite -1,  0, -2,  0, $22, $00
+	dsprite -1,  0, -1,  0, $23, $00
+	dsprite -1,  0,  0,  0, $24, $00
+	dsprite -1,  0,  1,  0, $25, $00
+	dsprite -1,  0,  2,  0, $26, $00
+	dsprite  0,  0, -4,  0, $30, $00
+	dsprite  0,  0, -3,  0, $31, $00
+	dsprite  0,  0, -2,  0, $32, $00
+	dsprite  0,  0, -1,  0, $33, $00
+	dsprite  0,  0,  0,  0, $34, $00
+	dsprite  0,  0,  1,  0, $35, $00
+	dsprite  1,  0, -2,  0, $42, $00
+	dsprite  1,  0, -1,  0, $43, $00
+	dsprite  1,  0,  0,  0, $44, $00
+	dsprite  1,  0,  1,  0, $45, $00
+	dsprite  2,  0, -1,  0, $53, $00
+	dsprite  2,  0,  0,  0, $54, $00
+	dsprite  2,  0,  1,  0, $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
+	dsprite -3,  0,  0,  0, $04, $00
+	dsprite -3,  0,  1,  0, $05, $00
+	dsprite -2,  0, -3,  0, $11, $00
+	dsprite -2,  0, -2,  0, $12, $00
+	dsprite -2,  0, -1,  0, $13, $00
+	dsprite -2,  0,  0,  0, $14, $00
+	dsprite -2,  0,  1,  0, $15, $00
+	dsprite -2,  0,  2,  0, $16, $00
+	dsprite -2,  0,  3,  0, $17, $00
+	dsprite -1,  0, -4,  0, $20, $00
+	dsprite -1,  0, -3,  0, $21, $00
+	dsprite -1,  0, -2,  0, $22, $00
+	dsprite -1,  0, -1,  0, $23, $00
+	dsprite -1,  0,  0,  0, $24, $00
+	dsprite -1,  0,  1,  0, $25, $00
+	dsprite -1,  0,  2,  0, $26, $00
+	dsprite  0,  0, -4,  0, $30, $00
+	dsprite  0,  0, -3,  0, $31, $00
+	dsprite  0,  0, -2,  0, $32, $00
+	dsprite  0,  0, -1,  0, $33, $00
+	dsprite  0,  0,  0,  0, $34, $00
+	dsprite  0,  0,  1,  0, $35, $00
+	dsprite  1,  0, -2,  0, $42, $00
+	dsprite  1,  0, -1,  0, $43, $00
+	dsprite  1,  0,  0,  0, $44, $00
+	dsprite  1,  0,  1,  0, $45, $00
+	dsprite  2,  0, -2,  0, $52, $00
+	dsprite  2,  0, -1,  0, $53, $00
+	dsprite  2,  0,  0,  0, $54, $00
+	dsprite  2,  0,  1,  0, $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
+	dsprite -2,  0, -3,  0, $11, $00
+	dsprite -2,  0, -2,  0, $12, $00
+	dsprite -2,  0, -1,  0, $13, $00
+	dsprite -2,  0,  0,  0, $14, $00
+	dsprite -2,  0,  1,  0, $15, $00
+	dsprite -2,  0,  2,  0, $16, $00
+	dsprite -2,  0,  3,  0, $17, $00
+	dsprite -1,  0, -4,  0, $20, $00
+	dsprite -1,  0, -3,  0, $21, $00
+	dsprite -1,  0, -2,  0, $22, $00
+	dsprite -1,  0, -1,  0, $23, $00
+	dsprite -1,  0,  0,  0, $24, $00
+	dsprite -1,  0,  1,  0, $25, $00
+	dsprite -1,  0,  2,  0, $26, $00
+	dsprite -1,  0,  3,  0, $27, $00
+	dsprite  0,  0, -4,  0, $30, $00
+	dsprite  0,  0, -3,  0, $31, $00
+	dsprite  0,  0, -2,  0, $32, $00
+	dsprite  0,  0, -1,  0, $33, $00
+	dsprite  0,  0,  0,  0, $34, $00
+	dsprite  0,  0,  1,  0, $35, $00
+	dsprite  0,  0,  2,  0, $36, $00
+	dsprite  1,  0, -3,  0, $41, $00
+	dsprite  1,  0, -2,  0, $42, $00
+	dsprite  1,  0, -1,  0, $43, $00
+	dsprite  1,  0,  0,  0, $44, $00
+	dsprite  1,  0,  1,  0, $45, $00
+	dsprite  2,  0, -3,  0, $51, $00
+	dsprite  2,  0, -2,  0, $52, $00
+	dsprite  2,  0,  0,  0, $54, $00
+	dsprite  2,  0,  1,  0, $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
+	dsprite -3,  4, -3,  4, $00, $09
+	dsprite -3,  4, -2,  4, $01, $09
+	dsprite -3,  4, -1,  4, $02, $09
+	dsprite -3,  4,  0,  4, $03, $09
+	dsprite -3,  4,  1,  4, $04, $09
+	dsprite -2,  4, -3,  4, $10, $09
+	dsprite -2,  4, -2,  4, $11, $09
+	dsprite -2,  4, -1,  4, $12, $09
+	dsprite -2,  4,  0,  4, $13, $09
+	dsprite -2,  4,  1,  4, $14, $09
+	dsprite -1,  4, -3,  4, $20, $09
+	dsprite -1,  4, -2,  4, $21, $09
+	dsprite -1,  4, -1,  4, $22, $09
+	dsprite -1,  4,  0,  4, $23, $09
+	dsprite -1,  4,  1,  4, $24, $09
+	dsprite  0,  4, -3,  4, $30, $09
+	dsprite  0,  4, -2,  4, $31, $09
+	dsprite  0,  4, -1,  4, $32, $09
+	dsprite  0,  4,  0,  4, $33, $09
+	dsprite  0,  4,  1,  4, $34, $09
+	dsprite  1,  4, -3,  4, $40, $09
+	dsprite  1,  4, -2,  4, $41, $09
+	dsprite  1,  4, -1,  4, $42, $09
+	dsprite  1,  4,  0,  4, $43, $09
+	dsprite  1,  4,  1,  4, $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
+	dsprite -2,  0, -3,  4, $00, $0a
+	dsprite -2,  0, -2,  4, $01, $0a
+	dsprite -2,  0, -1,  4, $02, $0a
+	dsprite -2,  0,  0,  4, $03, $0a
+	dsprite -1,  0, -3,  4, $04, $0a
+	dsprite -1,  0, -2,  4, $05, $0a
+	dsprite -1,  0, -1,  4, $06, $0a
+	dsprite -1,  0,  0,  4, $07, $0a
+	dsprite  0,  0, -3,  4, $08, $0a
+	dsprite  0,  0, -2,  4, $09, $0a
+	dsprite  0,  0, -1,  4, $0a, $0a
+	dsprite  0,  0,  0,  4, $0b, $0a
+	dsprite  1,  0, -3,  4, $0c, $0a
+	dsprite  1,  0, -2,  4, $0d, $0a
+	dsprite  1,  0, -1,  4, $0e, $0a
+	dsprite  1,  0,  0,  4, $0f, $0a
 ; 8e54c
 
 Unknown_8e54c: ; 8e54c
 	db 1
-	db $fc, $fc, $00, $00
+	dsprite -1,  4, -1,  4, $00, $00
 ; 8e551
 
 Unknown_8e551: ; 8e551
 	db 3
-	db $00, $f8, $00, $00
-	db $f8, $f8, $01, $00
-	db $f8, $00, $02, $00
+	dsprite  0,  0, -1,  0, $00, $00
+	dsprite -1,  0, -1,  0, $01, $00
+	dsprite -1,  0,  0,  0, $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
+	dsprite  1,  0, -2,  0, $00, $00
+	dsprite  0,  0, -2,  0, $01, $00
+	dsprite -1,  0, -2,  0, $02, $00
+	dsprite -1,  0, -1,  0, $03, $00
+	dsprite -2,  0, -1,  0, $04, $00
+	dsprite -2,  0,  0,  0, $05, $00
+	dsprite -2,  0,  1,  0, $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
+	dsprite -1,  0, -2,  0, $00, $00
+	dsprite -1,  0, -1,  0, $01, $00
+	dsprite -1,  0,  0,  0, $01, $20
+	dsprite -1,  0,  1,  0, $00, $20
+	dsprite  0,  0, -2,  0, $00, $40
+	dsprite  0,  0, -1,  0, $01, $40
+	dsprite  0,  0,  0,  0, $01, $60
+	dsprite  0,  0,  1,  0, $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
+	dsprite -3,  0, -1,  0, $00, $00
+	dsprite -2,  0, -1,  0, $01, $00
+	dsprite -1,  0, -1,  0, $02, $00
+	dsprite -3,  0,  0,  0, $00, $20
+	dsprite -2,  0,  0,  0, $01, $20
+	dsprite -1,  0,  0,  0, $02, $20
+	dsprite  0,  0, -1,  0, $02, $40
+	dsprite  1,  0, -1,  0, $01, $40
+	dsprite  2,  0, -1,  0, $00, $40
+	dsprite  0,  0,  0,  0, $02, $60
+	dsprite  1,  0,  0,  0, $01, $60
+	dsprite  2,  0,  0,  0, $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
+	dsprite -3,  4, -2,  0, $00, $00
+	dsprite -3,  4, -1,  0, $01, $00
+	dsprite -3,  4,  0,  0, $02, $00
+	dsprite -3,  4,  1,  0, $03, $00
+	dsprite -2,  4, -2,  0, $04, $00
+	dsprite -2,  4, -1,  0, $05, $00
+	dsprite -2,  4,  0,  0, $06, $00
+	dsprite -2,  4,  1,  0, $07, $00
+	dsprite -1,  4, -2,  0, $08, $00
+	dsprite -1,  4, -1,  0, $09, $00
+	dsprite -1,  4,  0,  0, $0a, $00
+	dsprite -1,  4,  1,  0, $0b, $00
+	dsprite  0,  4, -2,  0, $0c, $00
+	dsprite  0,  4, -1,  0, $0d, $00
+	dsprite  0,  4,  0,  0, $0e, $00
+	dsprite  0,  4,  1,  0, $0f, $00
+	dsprite  1,  4, -2,  0, $10, $00
+	dsprite  1,  4, -1,  0, $11, $00
+	dsprite  1,  4,  0,  0, $12, $00
+	dsprite  1,  4,  1,  0, $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
+	dsprite  0,  0,   1,  0, $00, $81
+	dsprite  1,  0,   2,  0, $00, $81
+	dsprite  2,  0,   3,  0, $00, $81
+	dsprite  3,  0,   4,  0, $00, $81
+	dsprite  4,  0,   5,  0, $00, $81
+	dsprite  3,  0,   6,  0, $00, $81
+	dsprite  2,  0,   7,  0, $00, $81
+	dsprite  1,  0,   8,  0, $00, $81
+	dsprite  0,  0,   9,  0, $00, $81
+	dsprite  1,  0,  10,  0, $00, $81
+	dsprite  2,  0,  11,  0, $00, $81
+	dsprite  3,  0,  12,  0, $00, $81
+	dsprite  4,  0,  13,  0, $00, $81
+	dsprite  3,  0,  14,  0, $00, $81
+	dsprite  2,  0,  15,  0, $00, $81
+	dsprite  1,  0,  16,  0, $00, $81
+	dsprite  0,  0, -15,  0, $00, $81
+	dsprite  1,  0, -14,  0, $00, $81
+	dsprite  2,  0, -13,  0, $00, $81
+	dsprite  3,  0, -12,  0, $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
+	dsprite -1,  0, -1,  0, $00, $02
+	dsprite -1,  0,  0,  0, $01, $02
+	dsprite  0,  0, -1,  0, $02, $02
+	dsprite  0,  0,  0,  0, $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
+	dsprite -2,  0, -2,  4, $00, $01
+	dsprite -2,  0, -1,  4, $01, $01
+	dsprite -2,  0,  0,  4, $02, $01
+	dsprite -1,  0, -2,  4, $10, $01
+	dsprite -1,  0, -1,  4, $11, $01
+	dsprite -1,  0,  0,  4, $12, $01
+	dsprite  0,  0, -2,  4, $20, $01
+	dsprite  0,  0, -1,  4, $21, $01
+	dsprite  0,  0,  0,  4, $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
+	dsprite -5,  0, -2,  4, $00, $01
+	dsprite -5,  0, -1,  4, $01, $01
+	dsprite -5,  0,  0,  4, $02, $01
+	dsprite -5,  0,  1,  4, $03, $01
+	dsprite -4,  0, -2,  4, $10, $01
+	dsprite -4,  0, -1,  4, $11, $01
+	dsprite -4,  0,  0,  4, $12, $01
+	dsprite -4,  0,  1,  4, $13, $01
+	dsprite -3,  0, -2,  4, $20, $01
+	dsprite -3,  0, -1,  4, $21, $01
+	dsprite -3,  0,  0,  4, $22, $01
+	dsprite -3,  0,  1,  4, $23, $01
+	dsprite -2,  0, -2,  4, $30, $01
+	dsprite -2,  0, -1,  4, $31, $01
+	dsprite -2,  0,  0,  4, $32, $01
+	dsprite -2,  0,  1,  4, $33, $01
+	dsprite -1,  0, -2,  4, $40, $01
+	dsprite -1,  0, -1,  4, $41, $01
+	dsprite -1,  0,  0,  4, $42, $01
+	dsprite -1,  0,  1,  4, $43, $01
+	dsprite  0,  0, -2,  4, $50, $01
+	dsprite  0,  0, -1,  4, $51, $01
+	dsprite  0,  0,  0,  4, $52, $01
+	dsprite  0,  0,  1,  4, $53, $01
 ; 8e706
 Unknown_8e706: ; Broken 2bpp pointers
 	dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply)
--- a/engine/breeding/egg.asm
+++ b/engine/breeding/egg.asm
@@ -191,30 +191,30 @@
 OverworldHatchEgg:: ; 16f5e
 	call ResetWindow
 	call LoadStandardMenuDataHeader
-	call Function16f70
+	call HatchEggs
 	call ExitAllMenus
 	call RestartMapMusic
 	jp CloseText
 ; 16f70
 
-Function16f70: ; 16f70 (5:6f70)
+HatchEggs: ; 16f70 (5:6f70)
 	ld de, PartySpecies
 	ld hl, PartyMon1Happiness
 	xor a
 	ld [CurPartyMon], a
 
-Function16f7a: ; 16f7a (5:6f7a)
+.loop: ; 16f7a (5:6f7a)
 	ld a, [de]
 	inc de
 	cp -1
-	jp z, Function1708a
+	jp z, .done
 	push de
 	push hl
 	cp EGG
-	jp nz, Function1707d
+	jp nz, .next
 	ld a, [hl]
 	and a
-	jp nz, Function1707d
+	jp nz, .next
 	ld [hl], $78
 
 	push de
@@ -304,7 +304,7 @@
 	ld e, l
 	ld hl, PlayerName
 	call CopyBytes
-	ld hl, UnknownText_0x1708b
+	ld hl, .Text_HatchEgg
 	call PrintText
 	ld a, [CurPartyMon]
 	ld hl, PartyMonNicknames
@@ -313,11 +313,12 @@
 	ld d, h
 	ld e, l
 	push de
-	ld hl, UnknownText_0x170ba
+	ld hl, .Text_NicknameHatchling
 	call PrintText
 	call YesNoBox
 	pop de
 	jr c, .nonickname
+
 	ld a, $1
 	ld [wd26b], a
 	xor a
@@ -328,13 +329,14 @@
 	pop hl
 	ld de, StringBuffer1
 	call InitName
-	jr Function1707d
+	jr .next
+
 .nonickname
 	ld hl, StringBuffer1
 	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 
-Function1707d: ; 1707d (5:707d)
+.next: ; 1707d (5:707d)
 	ld hl, CurPartyMon
 	inc [hl]
 	pop hl
@@ -341,19 +343,16 @@
 	ld de, PARTYMON_STRUCT_LENGTH
 	add hl, de
 	pop de
-	jp Function16f7a
+	jp .loop
 
-Function1708a: ; 1708a (5:708a)
+.done: ; 1708a (5:708a)
 	ret
 ; 1708b (5:708b)
 
-UnknownText_0x1708b: ; 0x1708b
+.Text_HatchEgg: ; 0x1708b
 	; Huh? @ @
 	text_jump UnknownText_0x1c0db0
 	start_asm
-; 0x17090
-
-Function17090: ; 17090
 	ld hl, VramState
 	res 0, [hl]
 	push hl
@@ -361,8 +360,8 @@
 	push bc
 	ld a, [CurPartySpecies]
 	push af
-	call Function1728f
-	ld hl, UnknownText_0x170b0
+	call EggHatch_AnimationSequence
+	ld hl, .ClearTextbox
 	call PrintText
 	pop af
 	ld [CurPartySpecies], a
@@ -369,30 +368,30 @@
 	pop bc
 	pop de
 	pop hl
-	ld hl, UnknownText_0x170b5
+	ld hl, .CameOutOfItsEgg
 	ret
 ; 170b0 (5:70b0)
 
-UnknownText_0x170b0: ; 0x170b0
+.ClearTextbox: ; 0x170b0
 	;
 	text_jump UnknownText_0x1c0db8
 	db "@"
 ; 0x170b5
 
-UnknownText_0x170b5: ; 0x170b5
+.CameOutOfItsEgg: ; 0x170b5
 	; came out of its EGG!@ @
 	text_jump UnknownText_0x1c0dba
 	db "@"
 ; 0x170ba
 
-UnknownText_0x170ba: ; 0x170ba
+.Text_NicknameHatchling: ; 0x170ba
 	; Give a nickname to @ ?
 	text_jump UnknownText_0x1c0dd8
 	db "@"
 ; 0x170bf
 
-Function170bf: ; 170bf
-	call Function17197
+InitEggMoves: ; 170bf
+	call GetHeritableMoves
 	ld d, h
 	ld e, l
 	ld b, NUM_MOVES
@@ -409,9 +408,9 @@
 	inc hl
 	dec c
 	jr nz, .next
-	call Function170e4
+	call GetEggMove
 	jr nc, .skip
-	call Function17169
+	call LoadEggMove
 
 .skip
 	inc de
@@ -422,7 +421,7 @@
 	ret
 ; 170e4
 
-Function170e4: ; 170e4
+GetEggMove: ; 170e4
 GLOBAL EggMoves
 
 	push bc
@@ -440,7 +439,7 @@
 	ld a, BANK(EggMoves)
 	call GetFarByte
 	cp -1
-	jr z, .found_mon
+	jr z, .reached_end
 	ld b, a
 	ld a, [de]
 	cp b
@@ -448,7 +447,7 @@
 	inc hl
 	jr .loop
 
-.found_mon
+.reached_end
 	call Function1720b
 	ld b, NUM_MOVES
 .loop2
@@ -504,7 +503,7 @@
 	ld a, [de]
 	cp b
 	jr nz, .loop5
-	ld [wd262], a
+	ld [wPutativeTMHMMove], a
 	predef CanLearnTMHMMove
 	ld a, c
 	and a
@@ -521,7 +520,7 @@
 	ret
 ; 17169
 
-Function17169: ; 17169
+LoadEggMove: ; 17169
 	push de
 	push bc
 	ld a, [de]
@@ -556,7 +555,7 @@
 	ret
 ; 17197
 
-Function17197: ; 17197
+GetHeritableMoves: ; 17197
 	ld hl, wBreedMon2Moves
 	ld a, [wBreedMon1Species]
 	cp DITTO
@@ -579,7 +578,7 @@
 	ld [TempMonDVs], a
 	ld a, [wBreedMon2DVs + 1]
 	ld [TempMonDVs + 1], a
-	ld a, $3
+	ld a, BREEDMON
 	ld [MonType], a
 	predef GetGender
 	jr c, .inherit_mon2_moves
@@ -595,7 +594,7 @@
 	ld [TempMonDVs], a
 	ld a, [wBreedMon1DVs + 1]
 	ld [TempMonDVs + 1], a
-	ld a, $3
+	ld a, BREEDMON
 	ld [MonType], a
 	predef GetGender
 	jr c, .inherit_mon1_moves
@@ -674,7 +673,7 @@
 	call SetPalettes
 	jp WaitBGMap
 
-Function1727f: ; 1727f (5:727f)
+EggHatch_DoAnimFrame: ; 1727f (5:727f)
 	push hl
 	push de
 	push bc
@@ -685,7 +684,7 @@
 	pop hl
 	ret
 
-Function1728f: ; 1728f (5:728f)
+EggHatch_AnimationSequence: ; 1728f (5:728f)
 	ld a, [wd265]
 	ld [wJumptableIndex], a
 	ld a, [CurSpecies]
@@ -710,45 +709,47 @@
 	call PlayMusic
 	call EnableLCD
 	hlcoord 7, 4
-	ld b, $98
-	ld c, $31
+	ld b, (VBGMap0 + 1 * $20 + 17) / $100
+	ld c, (VBGMap0 + 1 * $20 + 17) % $100
 	ld a, EGG
 	call Function17254
-	ld c, $50
+	ld c, 80
 	call DelayFrames
 	xor a
 	ld [wcf64], a
 	ld a, [hSCX]
 	ld b, a
-.asm_172ee
+.outerloop
 	ld hl, wcf64
 	ld a, [hl]
 	inc [hl]
-	cp $8
-	jr nc, .asm_17327
+	cp 8
+	jr nc, .done
 	ld e, [hl]
-.asm_172f8
-	ld a, $2
+.loop
+; wobble e times
+	ld a, 2
 	ld [hSCX], a
-	ld a, $fe
+	ld a, -2
 	ld [wc3c0], a
-	call Function1727f
-	ld c, $2
+	call EggHatch_DoAnimFrame
+	ld c, 2
 	call DelayFrames
-	ld a, $fe
+	ld a, -2
 	ld [hSCX], a
-	ld a, $2
+	ld a, 2
 	ld [wc3c0], a
-	call Function1727f
-	ld c, $2
+	call EggHatch_DoAnimFrame
+	ld c, 2
 	call DelayFrames
 	dec e
-	jr nz, .asm_172f8
-	ld c, $10
+	jr nz, .loop
+	ld c, 16
 	call DelayFrames
-	call Function1736d
-	jr .asm_172ee
-.asm_17327
+	call EggHatch_CrackShell
+	jr .outerloop
+
+.done
 	ld de, SFX_EGG_HATCH
 	call PlaySFX
 	xor a
@@ -757,8 +758,8 @@
 	call ClearSprites
 	call Function173b3
 	hlcoord 6, 3
-	ld b, $98
-	ld c, $0
+	ld b, VBGMap0 / $100
+	ld c, VBGMap0 % $100
 	ld a, [wJumptableIndex]
 	call Function17254
 	call Function17418
@@ -779,7 +780,7 @@
 	ld c, $0
 	jp GetSGBLayout
 
-Function1736d: ; 1736d (5:736d)
+EggHatch_CrackShell: ; 1736d (5:736d)
 	ld a, [wcf64]
 	dec a
 	and $7
@@ -794,7 +795,7 @@
 	ld e, 11 * 8
 	ld a, SPRITE_ANIM_INDEX_19
 	call _InitSpriteAnimStruct
-	ld hl, $3
+	ld hl, SPRITEANIMSTRUCT_TILE_ID
 	add hl, bc
 	ld [hl], $0
 	ld de, SFX_EGG_CRACK
@@ -840,7 +841,7 @@
 .done
 	ld de, SFX_EGG_HATCH
 	call PlaySFX
-	call Function1727f
+	call EggHatch_DoAnimFrame
 	ret
 ; 173ef (5:73ef)
 
@@ -862,7 +863,7 @@
 Function17418: ; 17418 (5:7418)
 	ld c, $81
 .asm_1741a
-	call Function1727f
+	call EggHatch_DoAnimFrame
 	dec c
 	jr nz, .asm_1741a
 	ret
--- a/engine/debug.asm
+++ b/engine/debug.asm
@@ -828,7 +828,7 @@
 	ld [wd265], a
 	predef GetTMHMMove
 	ld a, [wd265]
-	ld [wd262], a
+	ld [wPutativeTMHMMove], a
 	call GetMoveName
 	hlcoord 10, 12
 	call PlaceString
--- a/engine/evolve.asm
+++ b/engine/evolve.asm
@@ -485,7 +485,7 @@
 
 .learn
 	ld a, d
-	ld [wd262], a
+	ld [wPutativeTMHMMove], a
 	ld [wd265], a
 	call GetMoveName
 	call CopyName1
--- a/engine/learn.asm
+++ b/engine/learn.asm
@@ -57,7 +57,7 @@
 	pop hl
 
 .learn
-	ld a, [wd262]
+	ld a, [wPutativeTMHMMove]
 	ld [hl], a
 	ld bc, MON_PP - MON_MOVES
 	add hl, bc
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -100,7 +100,7 @@
 	call Function92844
 	call Function92b0f
 	xor a
-	ld [wc3b5], a
+	ld [wOAMRetentionSize], a
 	callab DoNextFrameForFirst16Sprites
 	call Function927f8
 	call Function927d3
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -23,8 +23,8 @@
 	push bc
 	push af
 
-	ld a, $0
-	ld [wc3b5], a
+	ld a, 0 * 4
+	ld [wOAMRetentionSize], a
 	call DoNextFrameForAllSprites
 
 	pop af
@@ -58,11 +58,11 @@
 	dec e
 	jr nz, .loop
 
-	ld a, [wc3b5]
+	ld a, [wOAMRetentionSize]
 	ld l, a
 	ld h, Sprites / $0100
 
-.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd)
+.loop2 ; Clear (Sprites + [wOAMRetentionSize] --> SpritesEnd)
 	ld a, l
 	cp SpritesEnd % $100
 	jr nc, .done
@@ -98,11 +98,11 @@
 	dec e
 	jr nz, .loop
 
-	ld a, [wc3b5]
+	ld a, [wOAMRetentionSize]
 	ld l, a
 	ld h, (Sprites + $40) / $100
 
-.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40)
+.loop2 ; Clear (Sprites + [wOAMRetentionSize] --> Sprites + $40)
 	ld a, l
 	cp (Sprites + 16 * 4) % $100
 	jr nc, .done
@@ -213,7 +213,7 @@
 
 Function8d036: ; 8d036
 ; Clear the index field of the struct in bc.
-	ld hl, 0
+	ld hl, SPRITEANIMSTRUCT_INDEX
 	add hl, bc
 	ld [hl], $0
 	ret
@@ -240,25 +240,29 @@
 	cp -3
 	jr z, .done
 	cp -4
-	jr z, .almost
+	jr z, .delete
 	call Function8d1a2 ; OAM?
-	ld a, [wc3ba]
+	; add byte to [wCurrAnimVTile]
+	ld a, [wCurrAnimVTile]
 	add [hl]
-	ld [wc3ba], a
+	ld [wCurrAnimVTile], a
 	inc hl
+	; load pointer into hl
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	push bc
-	ld a, [wc3b5]
+	ld a, [wOAMRetentionSize]
 	ld e, a
 	ld d, Sprites / $100
 	ld a, [hli]
-	ld c, a
+	ld c, a ; number of objects
 .loop
-	ld a, [wc3bc]
+	; first byte: y (px)
+	; [de] = [wCurrAnimYCoord] + [wCurrAnimYOffset] + [wc3bf] + Function8d0be([hl])
+	ld a, [wCurrAnimYCoord]
 	ld b, a
-	ld a, [wc3be]
+	ld a, [wCurrAnimYOffset]
 	add b
 	ld b, a
 	ld a, [wc3bf]
@@ -269,9 +273,11 @@
 	ld [de], a
 	inc hl
 	inc de
-	ld a, [wc3bb]
+	; second byte: x (px)
+	; [de] = [wCurrAnimXCoord] + [wCurrAnimXOffset] + [wc3c0] + Function8d0ce([hl])
+	ld a, [wCurrAnimXCoord]
 	ld b, a
-	ld a, [wc3bd]
+	ld a, [wCurrAnimXOffset]
 	add b
 	ld b, a
 	ld a, [wc3c0]
@@ -282,25 +288,29 @@
 	ld [de], a
 	inc hl
 	inc de
-	ld a, [wc3ba]
+	; third byte: vtile
+	; [de] = [wCurrAnimVTile] + [hl]
+	ld a, [wCurrAnimVTile]
 	add [hl]
 	ld [de], a
 	inc hl
 	inc de
+	; fourth byte: attributes
+	; [de] = Function8d0de([hl])
 	call Function8d0de
 	ld [de], a
 	inc hl
 	inc de
 	ld a, e
-	ld [wc3b5], a
+	ld [wOAMRetentionSize], a
 	cp SpritesEnd % $100
-	jr nc, .outofroom
+	jr nc, .reached_the_end
 	dec c
 	jr nz, .loop
 	pop bc
 	jr .done
 
-.almost
+.delete
 	call Function8d036
 
 .done
@@ -307,7 +317,7 @@
 	and a
 	ret
 
-.outofroom
+.reached_the_end
 	pop bc
 	scf
 	ret
@@ -359,18 +369,18 @@
 Function8d0ec: ; 8d0ec
 	xor a
 	ld [wc3b8], a
-	ld hl, $3
+	ld hl, SPRITEANIMSTRUCT_TILE_ID
 	add hl, bc
 	ld a, [hli]
-	ld [wc3ba], a
+	ld [wCurrAnimVTile], a
 	ld a, [hli]
-	ld [wc3bb], a
+	ld [wCurrAnimXCoord], a
 	ld a, [hli]
-	ld [wc3bc], a
+	ld [wCurrAnimYCoord], a
 	ld a, [hli]
-	ld [wc3bd], a
+	ld [wCurrAnimXOffset], a
 	ld a, [hli]
-	ld [wc3be], a
+	ld [wCurrAnimYOffset], a
 	ret
 ; 8d109
 
@@ -420,7 +430,7 @@
 	add hl, bc
 	ld a, [hl]
 	and a
-	jr z, .done ; finished the current sequence
+	jr z, .next_frame ; finished the current sequence
 	dec [hl]
 	call Function8d189 ; load pointer from Unknown_8d6e6
 	ld a, [hli]
@@ -427,15 +437,15 @@
 	push af
 	jr .okay
 
-.done
+.next_frame
 	ld hl, SPRITEANIMSTRUCT_FRAME
 	add hl, bc
 	inc [hl]
 	call Function8d189 ; load pointer from Unknown_8d6e6
 	ld a, [hli]
-	cp $fe
+	cp -2
 	jr z, .minus_2
-	cp $ff
+	cp -1
 	jr z, .minus_1
 
 	push af
@@ -486,7 +496,7 @@
 Function8d189: ; 8d189
 	; Get the data for the current frame for the current animation sequence
 
-	; Unknown_8d6e6 + 2 * SpriteAnim[SPRITEANIMSTRUCT_01] + 3 * SpriteAnim[SPRITEANIMSTRUCT_FRAME]
+	; Unknown_8d6e6[SpriteAnim[SPRITEANIMSTRUCT_01]][SpriteAnim[SPRITEANIMSTRUCT_FRAME]]
 	ld hl, SPRITEANIMSTRUCT_01
 	add hl, bc
 	ld e, [hl]
@@ -508,6 +518,7 @@
 ; 8d1a2
 
 Function8d1a2: ; 8d1a2
+; Load OAM data pointer
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_8d94d
--- a/engine/tmhm.asm
+++ b/engine/tmhm.asm
@@ -5,7 +5,7 @@
 	ld hl, BaseTMHM
 	push hl
 
-	ld a, [wd262]
+	ld a, [wPutativeTMHMMove]
 	ld b, a
 	ld c, 0
 	ld hl, TMHMMoves
--- a/event/celebi.asm
+++ b/event/celebi.asm
@@ -30,7 +30,7 @@
 	inc d
 	push de
 	ld a, $90
-	ld [wc3b5], a
+	ld [wOAMRetentionSize], a
 	callba DoNextFrameForAllSprites
 	call Function49935
 	ld c, 2
--- a/event/daycare.asm
+++ b/event/daycare.asm
@@ -660,7 +660,7 @@
 	xor a
 	ld [Buffer1], a
 	predef FillMoves
-	callba Function170bf
+	callba InitEggMoves
 	ld hl, wEggMonID
 	ld a, [PlayerID]
 	ld [hli], a
--- a/event/field_moves.asm
+++ b/event/field_moves.asm
@@ -36,7 +36,7 @@
 	add hl, bc
 	ld [hl], $84
 	ld a, 36 * 4
-	ld [wc3b5], a
+	ld [wOAMRetentionSize], a
 	callba DoNextFrameForAllSprites
 	call GetHeadbuttTreeRelativeLocation
 	ld a, $20
@@ -51,7 +51,7 @@
 	jr z, .done
 	dec [hl]
 	ld a, 36 * 4
-	ld [wc3b5], a
+	ld [wOAMRetentionSize], a
 	callba DoNextFrameForAllSprites
 	call DelayFrame
 	jr .loop
@@ -68,7 +68,7 @@
 	call ByteFill
 	ld de, Font
 	ld hl, VTiles1
-	lb bc, BANK(Font), $c
+	lb bc, BANK(Font), 12
 	call Get1bpp
 	call ReplaceKrisSprite
 	ret
@@ -124,8 +124,8 @@
 	ld a, [wJumptableIndex]
 	bit 7, a
 	jr nz, .finish
-	ld a, $90
-	ld [wc3b5], a
+	ld a, 36 * 4
+	ld [wOAMRetentionSize], a
 	callab DoNextFrameForAllSprites
 	call OWCutJumptable
 	call DelayFrame
@@ -341,8 +341,8 @@
 	ld a, [wJumptableIndex]
 	bit 7, a
 	jr nz, .exit
-	ld a, $0
-	ld [wc3b5], a
+	ld a, 0 * 4
+	ld [wOAMRetentionSize], a
 	callab DoNextFrameForAllSprites
 	call Function8cbc8
 	call DelayFrame
@@ -379,8 +379,8 @@
 	ld a, [wJumptableIndex]
 	bit 7, a
 	jr nz, .exit
-	ld a, $0
-	ld [wc3b5], a
+	ld a, 0 * 4
+	ld [wOAMRetentionSize], a
 	callab DoNextFrameForAllSprites
 	call Function8cbc8
 	call DelayFrame
--- a/macros.asm
+++ b/macros.asm
@@ -248,5 +248,5 @@
 palblue EQUS "$0001 *"
 
 dsprite: MACRO
-	db \1 * 8 + \2, \3 * 8 + \4, \5, \6
+	db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
 endm
--- a/main.asm
+++ b/main.asm
@@ -8528,26 +8528,26 @@
 KnowsMove: ; f9ea
 	ld a, MON_MOVES
 	call GetPartyParamLocation
-	ld a, [wd262]
+	ld a, [wPutativeTMHMMove]
 	ld b, a
 	ld c, NUM_MOVES
-.asm_f9f5
+.loop
 	ld a, [hli]
 	cp b
-	jr z, .asm_f9fe
+	jr z, .knows_move
 	dec c
-	jr nz, .asm_f9f5
+	jr nz, .loop
 	and a
 	ret
 
-.asm_f9fe
-	ld hl, UnknownText_0xfa06
+.knows_move
+	ld hl, .Text_knows
 	call PrintText
 	scf
 	ret
 ; fa06
 
-UnknownText_0xfa06: ; 0xfa06
+.Text_knows: ; 0xfa06
 	; knows @ .
 	text_jump UnknownText_0x1c5ea8
 	db "@"
@@ -10983,8 +10983,7 @@
 	ret
 ; 24e99
 
-Function24e99: ; 24e99
-; BattleMonMenu
+BattleMonMenu: ; 24e99
 	ld hl, MenuDataHeader_0x24ed4
 	call CopyMenuDataHeader
 	xor a
@@ -10996,7 +10995,7 @@
 	call CopyMenuData2
 	ld a, [wMenuData2Flags]
 	bit 7, a
-	jr z, .asm_24ed0
+	jr z, .set_carry
 	call Function1c10
 	ld hl, wcfa5
 	set 6, [hl]
@@ -11004,15 +11003,15 @@
 	ld de, SFX_READ_TEXT_2
 	call PlaySFX
 	ld a, [hJoyPressed]
-	bit 1, a
-	jr z, .asm_24ed2
+	bit B_BUTTON_F, a
+	jr z, .clear_carry
 	ret z
 
-.asm_24ed0
+.set_carry
 	scf
 	ret
 
-.asm_24ed2
+.clear_carry
 	and a
 	ret
 ; 24ed4
@@ -12863,7 +12862,7 @@
 	jr c, .NotTMHM
 	call GetTMHMItemMove
 	ld a, [wCurTMHM]
-	ld [wd262], a
+	ld [wPutativeTMHMMove], a
 	call GetMoveName
 	call CopyName1
 	ld hl, UnknownText_0x2c8bf ; Booted up a TM
@@ -13206,7 +13205,7 @@
 .okay
 	predef GetTMHMMove
 	ld a, [wd265]
-	ld [wd262], a
+	ld [wPutativeTMHMMove], a
 	call GetMoveName
 	pop hl
 	ld bc, $3
@@ -13270,7 +13269,7 @@
 	add hl, bc
 	predef GetTMHMMove
 	ld a, [wd265]
-	ld [wd262], a
+	ld [wPutativeTMHMMove], a
 	call GetMoveName
 	push hl
 	call PlaceString
@@ -14410,7 +14409,7 @@
 	ld [wItemAttributeParamBuffer], a
 	call Function492a5
 	ld [wd265], a
-	ld [wd262], a
+	ld [wPutativeTMHMMove], a
 	call GetMoveName
 	call CopyName1
 	callba Function2c7fb
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -2054,7 +2054,7 @@
 	ret
 ; 100d22
 
-Function100d22: ; 100d22
+MobileBattleMonMenu: ; 100d22
 	call Function100dd8
 	ret c
 	call Function100d67
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -5884,8 +5884,8 @@
 	call Function11b314
 	call Function11acb7
 	call Function11ad6e
-	ld a, $78
-	ld [wc3b5], a
+	ld a, 30 * 4
+	ld [wOAMRetentionSize], a
 	callba DoNextFrameForAllSprites
 	callba ReloadMapPart
 	jr .asm_11ac82
--- a/wram.asm
+++ b/wram.asm
@@ -463,7 +463,7 @@
 wc3ac:: ds 8 ; c3ac
 wSpriteAnimCount::
 wc3b4:: ds 1
-wc3b5:: ds 1
+wOAMRetentionSize:: ds 1
 
 CurIcon:: ; c3b6
 	ds 1
@@ -470,12 +470,12 @@
 
 
 wc3b7:: ds 1
-wc3b8:: dw
-wc3ba:: ds 1
-wc3bb:: ds 1
-wc3bc:: ds 1
-wc3bd:: ds 1
-wc3be:: ds 1
+wc3b8:: ds 2
+wCurrAnimVTile:: ds 1
+wCurrAnimXCoord:: ds 1
+wCurrAnimYCoord:: ds 1
+wCurrAnimXOffset:: ds 1
+wCurrAnimYOffset:: ds 1
 wc3bf:: ds 1
 wc3c0:: ds 1
 wSpriteAnimsEnd::
@@ -1838,8 +1838,7 @@
 PartyMenuActionText:: ; d141
 	ds 1
 
-wItemAttributeParamBuffer::
-wd142::
+wItemAttributeParamBuffer:: ; d142
 	ds 1
 
 CurPartyLevel:: ; d143
@@ -2155,7 +2154,7 @@
 wd25a:: ds 3
 wd25d:: ds 1
 wListMoves_MoveIndicesBuffer:: ds 4
-wd262:: ds 1
+wPutativeTMHMMove:: ds 1
 wd263:: ds 1
 wd264:: ds 1
 wFoundMatchingIDInParty::