diff --git a/battle/core.asm b/battle/core.asm index 08d3f2d3b..e50537dfd 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -5225,11 +5225,11 @@ LoadBattleMenu2: ; 3e19b 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 @@ BattleMenu_Pack: ; 3e1c7 call DoItemEffect .got_item - call Function3e234 + call .UseItem ret .didnt_use_item @@ -5274,33 +5274,33 @@ BattleMenu_Pack: ; 3e1c7 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 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 @@ Function3e234: ; 3e234 and a ret -.asm_3e279 +.run xor a ld [wc64e], a ld a, [wBattleResult] @@ -5331,39 +5331,39 @@ Function3e290: 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 @@ Function3e299: 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 @@ Function3e308: ; 3e308 call CopyBytes ld hl, VTiles2 ld de, VTiles0 tile $11 - ld bc, $0310 + ld bc, $31 tiles call CopyBytes call EnableLCD call ClearSprites @@ -5406,43 +5406,43 @@ Function3e308: ; 3e308 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 ; 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 @@ Function3e358: ; 3e358 call SetPalettes ld a, [CurPartyMon] ld [CurBattleMon], a - ; fallthrough -; 3e3ad - PlayerSwitch: ; 3e3ad ld a, 1 ld [wPlayerIsSwitching], a @@ -9479,7 +9476,7 @@ InitBattleDisplay: ; 3fb6c 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) diff --git a/data/sprite_engine.asm b/data/sprite_engine.asm index 007ca612d..796f78c1e 100755 --- a/data/sprite_engine.asm +++ b/data/sprite_engine.asm @@ -67,159 +67,289 @@ Unknown_8d6e6: ; 8d6e6 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_8d94d: ; 8d94d 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) diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index f0a8ac0fd..446ed9e2f 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -191,30 +191,30 @@ DoEggStep:: ; 16f3e 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 @@ Function16f7a: ; 16f7a (5:6f7a) 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 @@ Function16f7a: ; 16f7a (5:6f7a) 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,32 +329,30 @@ Function16f7a: ; 16f7a (5:6f7a) 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 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,38 +360,38 @@ Function17090: ; 17090 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 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 @@ Function170bf: ; 170bf 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 @@ Function170bf: ; 170bf ret ; 170e4 -Function170e4: ; 170e4 +GetEggMove: ; 170e4 GLOBAL EggMoves push bc @@ -440,7 +439,7 @@ endr 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 @@ endr inc hl jr .loop -.found_mon +.reached_end call Function1720b ld b, NUM_MOVES .loop2 @@ -504,7 +503,7 @@ endr 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 @@ endr ret ; 17169 -Function17169: ; 17169 +LoadEggMove: ; 17169 push de push bc ld a, [de] @@ -556,7 +555,7 @@ Function17169: ; 17169 ret ; 17197 -Function17197: ; 17197 +GetHeritableMoves: ; 17197 ld hl, wBreedMon2Moves ld a, [wBreedMon1Species] cp DITTO @@ -579,7 +578,7 @@ Function17197: ; 17197 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 @@ Function17197: ; 17197 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 @@ Function17254: ; 17254 (5:7254) call SetPalettes jp WaitBGMap -Function1727f: ; 1727f (5:727f) +EggHatch_DoAnimFrame: ; 1727f (5:727f) push hl push de push bc @@ -685,7 +684,7 @@ Function1727f: ; 1727f (5:727f) 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 @@ Function1728f: ; 1728f (5:728f) 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 @@ Function1728f: ; 1728f (5:728f) 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 @@ Function17363: ; 17363 (5:7363) 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 @@ Function1736d: ; 1736d (5:736d) 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 @@ Function173b3: ; 173b3 (5:73b3) .done ld de, SFX_EGG_HATCH call PlaySFX - call Function1727f + call EggHatch_DoAnimFrame ret ; 173ef (5:73ef) @@ -862,7 +863,7 @@ Function173b3: ; 173b3 (5:73b3) Function17418: ; 17418 (5:7418) ld c, $81 .asm_1741a - call Function1727f + call EggHatch_DoAnimFrame dec c jr nz, .asm_1741a ret diff --git a/engine/debug.asm b/engine/debug.asm index 1e00ae4f5..896e0b1f6 100755 --- a/engine/debug.asm +++ b/engine/debug.asm @@ -828,7 +828,7 @@ Function81df4: ; 81df4 ld [wd265], a predef GetTMHMMove ld a, [wd265] - ld [wd262], a + ld [wPutativeTMHMMove], a call GetMoveName hlcoord 10, 12 call PlaceString diff --git a/engine/evolve.asm b/engine/evolve.asm index 2ea3ee0a9..4a959529a 100755 --- a/engine/evolve.asm +++ b/engine/evolve.asm @@ -485,7 +485,7 @@ endr .learn ld a, d - ld [wd262], a + ld [wPutativeTMHMMove], a ld [wd265], a call GetMoveName call CopyName1 diff --git a/engine/learn.asm b/engine/learn.asm index cafbe6f43..260d50052 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -57,7 +57,7 @@ LearnMove: ; 6508 pop hl .learn - ld a, [wd262] + ld a, [wPutativeTMHMMove] ld [hl], a ld bc, MON_PP - MON_MOVES add hl, bc diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 9f07aa8cd..24af53357 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -100,7 +100,7 @@ Function927af: ; 927af (24:67af) call Function92844 call Function92b0f xor a - ld [wc3b5], a + ld [wOAMRetentionSize], a callab DoNextFrameForFirst16Sprites call Function927f8 call Function927d3 diff --git a/engine/sprites.asm b/engine/sprites.asm index 3bcad90b3..912983231 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -23,8 +23,8 @@ PlaySpriteAnimations: ; 8cf69 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 @@ DoNextFrameForAllSprites: ; 8cf7a 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 @@ DoNextFrameForFirst16Sprites: ; 8cfa8 (23:4fa8) 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 @@ endr 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 @@ Function8d04c: ; 8d04c 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 @@ Function8d04c: ; 8d04c 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,32 +288,36 @@ Function8d04c: ; 8d04c 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 and a ret -.outofroom +.reached_the_end pop bc scf ret @@ -359,18 +369,18 @@ Function8d0de: ; 8d0de 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,22 +430,22 @@ Function8d132: ; 8d132 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] 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 @@ endr 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 @@ endr ; 8d1a2 Function8d1a2: ; 8d1a2 +; Load OAM data pointer ld e, a ld d, 0 ld hl, Unknown_8d94d diff --git a/engine/tmhm.asm b/engine/tmhm.asm index b66131ac9..dc5d698e1 100755 --- a/engine/tmhm.asm +++ b/engine/tmhm.asm @@ -5,7 +5,7 @@ CanLearnTMHMMove: ; 11639 ld hl, BaseTMHM push hl - ld a, [wd262] + ld a, [wPutativeTMHMMove] ld b, a ld c, 0 ld hl, TMHMMoves diff --git a/event/celebi.asm b/event/celebi.asm index e829a1494..e6453835c 100755 --- a/event/celebi.asm +++ b/event/celebi.asm @@ -30,7 +30,7 @@ Special_CelebiShrineEvent: ; 4989a inc d push de ld a, $90 - ld [wc3b5], a + ld [wOAMRetentionSize], a callba DoNextFrameForAllSprites call Function49935 ld c, 2 diff --git a/event/daycare.asm b/event/daycare.asm index 3ea64d38c..b56e0083d 100755 --- a/event/daycare.asm +++ b/event/daycare.asm @@ -660,7 +660,7 @@ Function16a66: ; 16a66 xor a ld [Buffer1], a predef FillMoves - callba Function170bf + callba InitEggMoves ld hl, wEggMonID ld a, [PlayerID] ld [hli], a diff --git a/event/field_moves.asm b/event/field_moves.asm index cb31d26c6..1322c4eae 100755 --- a/event/field_moves.asm +++ b/event/field_moves.asm @@ -36,7 +36,7 @@ ShakeHeadbuttTree: ; 8c80a 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 @@ ShakeHeadbuttTree: ; 8c80a 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 @@ ShakeHeadbuttTree: ; 8c80a 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 @@ OWCutAnimation: ; 8c940 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 @@ FlyFromAnim: ; 8caed 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 @@ FlyToAnim: ; 8cb33 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 diff --git a/macros.asm b/macros.asm index 7a7b2d1aa..486c6e519 100644 --- a/macros.asm +++ b/macros.asm @@ -248,5 +248,5 @@ palgreen EQUS "$0020 *" 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 diff --git a/main.asm b/main.asm index 4de539837..7d6521ad3 100644 --- a/main.asm +++ b/main.asm @@ -8528,26 +8528,26 @@ WobbleChances: ; f9ba 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 @@ AddMonMenuItem: ; 24e83 ret ; 24e99 -Function24e99: ; 24e99 -; BattleMonMenu +BattleMonMenu: ; 24e99 ld hl, MenuDataHeader_0x24ed4 call CopyMenuDataHeader xor a @@ -10996,7 +10995,7 @@ Function24e99: ; 24e99 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 @@ Function24e99: ; 24e99 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 @@ Function2c7bf: ; 2c7bf (b:47bf) 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 @@ Function2c9e2: ; 2c9e2 (b:49e2) .okay predef GetTMHMMove ld a, [wd265] - ld [wd262], a + ld [wPutativeTMHMMove], a call GetMoveName pop hl ld bc, $3 @@ -13270,7 +13269,7 @@ Function2ca95: ; 2ca95 add hl, bc predef GetTMHMMove ld a, [wd265] - ld [wd262], a + ld [wPutativeTMHMMove], a call GetMoveName push hl call PlaceString @@ -14410,7 +14409,7 @@ Special_MoveTutor: ; 4925b ld [wItemAttributeParamBuffer], a call Function492a5 ld [wd265], a - ld [wd262], a + ld [wPutativeTMHMMove], a call GetMoveName call CopyName1 callba Function2c7fb diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 9e807978a..62d6f0d4f 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -2054,7 +2054,7 @@ Function100cb5: ; 100cb5 ret ; 100d22 -Function100d22: ; 100d22 +MobileBattleMonMenu: ; 100d22 call Function100dd8 ret c call Function100d67 diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 22f62353d..367465030 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -5884,8 +5884,8 @@ Function11ac51: ; 11ac51 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 diff --git a/wram.asm b/wram.asm index cfc7bcb76..73600c61e 100644 --- a/wram.asm +++ b/wram.asm @@ -463,19 +463,19 @@ wSpriteAnimationStructsEnd:: wc3ac:: ds 8 ; c3ac wSpriteAnimCount:: wc3b4:: ds 1 -wc3b5:: ds 1 +wOAMRetentionSize:: ds 1 CurIcon:: ; c3b6 ds 1 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 @@ wd13f:: ds 2 PartyMenuActionText:: ; d141 ds 1 -wItemAttributeParamBuffer:: -wd142:: +wItemAttributeParamBuffer:: ; d142 ds 1 CurPartyLevel:: ; d143 @@ -2155,7 +2154,7 @@ CurDamage:: ; d256 wd25a:: ds 3 wd25d:: ds 1 wListMoves_MoveIndicesBuffer:: ds 4 -wd262:: ds 1 +wPutativeTMHMMove:: ds 1 wd263:: ds 1 wd264:: ds 1 wFoundMatchingIDInParty::