Merge pull request #119 from AnonymousRandomPerson/main
Some checks failed
build / build (push) Has been cancelled

Decomped IsTargetInRange
This commit is contained in:
AnonymousRandomPerson
2025-03-28 00:11:37 -04:00
committed by GitHub
47 changed files with 844 additions and 835 deletions

View File

@@ -148,7 +148,6 @@
.public ov29_0231B008
.public ov29_02338350
.public ov29_02348D00
.public ov29_0235171E
.public ov29_0235177C
.public ov29_02353530
.public RENDER_3D

View File

@@ -38,7 +38,6 @@
.public ov29_0234B854
.public ov29_02351628
.public ov29_02351658
.public ov29_0235171E
.public ov29_0235179C
.public ov29_023517A0
.public ov29_023517A2

View File

@@ -60,7 +60,6 @@
.public ov29_02344B44
.public ov29_02346344
.public ov29_0234B084
.public ov29_0235171E
.public RemoveEmptyItemsInBagWrapper
.public RemoveGroundItem
.public RemoveHeldItemNoHole

View File

@@ -151,7 +151,6 @@
.public ov29_0234E8F8
.public ov29_0234FC50
.public ov29_0234FCA8
.public ov29_0235171E
.public ov29_023526A8
.public ov29_023526B8
.public ov29_023526C8

View File

@@ -59,7 +59,6 @@
.public ov29_0234B0B4
.public ov29_0234CFA0
.public ov29_0234D304
.public ov29_0235171E
.public ov29_02352750
.public ov29_02352758
.public ov29_0237CA80

View File

@@ -89,7 +89,6 @@
.public ov29_0234B0B4
.public ov29_0234B1A4
.public ov29_0234EF24
.public ov29_0235171E
.public ov29_0237C9B0
.public PopulateActiveMonsterPtrs
.public RemoveHolderForItemInBag

View File

@@ -94,7 +94,6 @@
.public ov29_0234B034
.public ov29_0234B084
.public ov29_0234B09C
.public ov29_0235171E
.public PointCameraToMonster
.public RandInt
.public RemoveEquivItem

View File

@@ -86,7 +86,6 @@
.public ov29_023021F0
.public ov29_02304A48
.public ov29_02307DC0
.public ov29_0235171E
.public ov29_02351E28
.public ov29_0235276C
.public ov29_0237C690

View File

@@ -60,7 +60,6 @@
.public ov29_02346888
.public ov29_0234B024
.public ov29_0234BA54
.public ov29_0235171E
.public ov29_0237C9C0
.public ov29_0237CA68
.public ov29_0237CA6C

View File

@@ -10,7 +10,6 @@
.public IsCurrentTilesetBackground
.public IsTacticSet
.public ItemIsActive__022FF898
.public ov29_0235171E
.public ov29_02352770
.public ov29_02352778
.public ov29_02352780

View File

@@ -63,7 +63,6 @@
.public ov29_0234D304
.public ov29_0234D484
.public ov29_0234FAEC
.public ov29_0235171E
.public ov29_023527F0
.public ov29_0235280C
.public ov29_02352810

View File

@@ -1,42 +1,25 @@
#pragma once
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public AreMovesEnabled
.public CanAttackInDirection
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public EntityIsValid__02319F8C
.public ExclusiveItemEffectFlagTest
.public GetDirectionTowardsPosition
.public GetMoveAccuracyOrAiChance
.public GetMoveTypeForMonster
.public GetNumberOfAttacks
.public GetTile
.public GetTreatmentBetweenMonsters
.public HasHeldItem
.public IqSkillIsEnabled
.public IsBlinded
.public IsFloorOver
.public IsMonster__0231A9D4
.public IsMonsterSleeping
.public LogMessageByIdWithPopupCheckUser
.public MonsterHasNegativeStatus
.public ov10_022C459C
.public ov29_022E3ED0
.public ov29_022FA574
.public _s32_div_f
.public ov29_023007DC
.public ov29_0230B7D4
.public ov29_0230F8D0
.public ov29_0232145C
.public ov29_02333FD0
.public ov29_0235171E
.public ov29_0237CA18
.public ov29_0237CA20
.public ov29_0237CA28
.public ov29_0237CA48
.public SubstitutePlaceholderStringTags
.public TryActivateTruant
.public UpdateMovePp

View File

@@ -0,0 +1,18 @@
#pragma once
.public AreMovesEnabled
.public DUNGEON_PTR
.public DungeonRandOutcome__022EAB20
.public EntityIsValid__02319F8C
.public ExclusiveItemEffectFlagTest
.public GetNumberOfAttacks
.public IqSkillIsEnabled
.public IsFloorOver
.public IsMonster__0231A9D4
.public LogMessageByIdWithPopupCheckUser
.public SubstitutePlaceholderStringTags
.public TryActivateTruant
.public UpdateMovePp
.public ov10_022C459C
.public ov29_022E3ED0
.public ov29_022FA574
.public ov29_0232145C

View File

@@ -25,7 +25,6 @@
.public ov29_02304A48
.public ov29_0232033C
.public ov29_02321238
.public ov29_0235171E
.public ShouldDisplayEntityWrapper
.public sub_020018D0
.public SubstitutePlaceholderStringTags

View File

@@ -25,7 +25,6 @@
.public ov29_02320AA4
.public ov29_02321238
.public ov29_02336694
.public ov29_0235171E
.public ov29_023529B8
.public ov29_02353700
.public RemoveGroundItem

View File

@@ -53,7 +53,6 @@
.public ov29_0234B034
.public ov29_0234B084
.public ov29_0234B4CC
.public ov29_0235171E
.public ov29_0235175C
.public ov29_02352A54
.public ov29_02352A6C

View File

@@ -79,7 +79,6 @@
.public ov29_02324D60
.public ov29_02332F18
.public ov29_0234B084
.public ov29_0235171E
.public ov29_02352B1C
.public ov29_0237CA84
.public POISON_TAIL_POISON_CHANCE

View File

@@ -93,7 +93,6 @@
.public ov29_0234B084
.public ov29_0234B0B4
.public ov29_0234BA54
.public ov29_0235171E
.public ov29_02352B38
.public ov29_02352B3C
.public PrepareTrapperTrap

View File

@@ -192,6 +192,3 @@
.public ov29_023502D4
.public ov29_023502DC
.public ov29_023502E4
.public ov29_02351974
.public ov29_02351B00
.public ov29_02351C94

View File

@@ -0,0 +1,4 @@
#pragma once
.public ov29_02351974
.public ov29_02351B00
.public ov29_02351C94

View File

@@ -3074,7 +3074,7 @@ _01FFA754:
ldr r0, _01FFB2B8 ; =DIRECTIONS_XY
ldrsh r5, [r4, #4]
ldrsh r2, [r0, r3]
ldr r1, _01FFB2BC ; =ov29_0235171E
ldr r1, _01FFB2BC ; =DIRECTIONS_XY + 2
mov r0, #1
add r2, r5, r2
strh r2, [sb, #0x8c]
@@ -3711,7 +3711,7 @@ _01FFB080:
add r0, r1, r0
cmp r3, r0
bne _01FFB0D4
ldr r0, _01FFB2BC ; =ov29_0235171E
ldr r0, _01FFB2BC ; =DIRECTIONS_XY + 2
ldrsh r1, [r4, #6]
ldrsh r0, [r0, r2]
ldrsh r2, [sb, #0x8e]
@@ -3857,7 +3857,7 @@ _01FFB2AC: .word 0x000003E7
_01FFB2B0: .word 0x000F423F
_01FFB2B4: .word DUNGEON_PTR
_01FFB2B8: .word DIRECTIONS_XY
_01FFB2BC: .word ov29_0235171E
_01FFB2BC: .word DIRECTIONS_XY + 2
_01FFB2C0: .word 0xFFF0BDC1
_01FFB2C4: .word ov29_0235177C
arm_func_end AiMovement
@@ -3935,7 +3935,7 @@ _01FFB38C:
mov r3, r8, lsl #2
ldrsh r2, [r0, r3]
ldrsh r4, [sl, #4]
ldr r1, _01FFB628 ; =ov29_0235171E
ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2
mov r0, #1
add r2, r4, r2
strh r2, [sb, #0x8c]
@@ -3982,7 +3982,7 @@ _01FFB3F0:
ldr r0, _01FFB624 ; =DIRECTIONS_XY
ldrsh r4, [sl, #4]
ldrsh r2, [r0, r3]
ldr r1, _01FFB628 ; =ov29_0235171E
ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2
mov r0, #1
add r2, r4, r2
strh r2, [sb, #0x8c]
@@ -4005,7 +4005,7 @@ _01FFB460:
ldr r0, _01FFB624 ; =DIRECTIONS_XY
ldrsh r4, [sl, #4]
ldrsh r2, [r0, r3]
ldr r1, _01FFB628 ; =ov29_0235171E
ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2
mov r0, #1
add r2, r4, r2
strh r2, [sb, #0x8c]
@@ -4104,7 +4104,7 @@ _01FFB5D8:
ldr r0, _01FFB624 ; =DIRECTIONS_XY
ldrsh r4, [sl, #4]
ldrsh r2, [r0, r3]
ldr r1, _01FFB628 ; =ov29_0235171E
ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2
mov r0, #1
add r2, r4, r2
strh r2, [sb, #0x8c]
@@ -4117,7 +4117,7 @@ _01FFB5D8:
_01FFB61C: .word DUNGEON_PTR
_01FFB620: .word ov29_0235177C
_01FFB624: .word DIRECTIONS_XY
_01FFB628: .word ov29_0235171E
_01FFB628: .word DIRECTIONS_XY + 2
arm_func_end CalculateAiTargetPos
arm_func_start sub_01FFB62C

View File

@@ -386,7 +386,7 @@ ov29_022E9A9C: ; 0x022E9A9C
mov r2, r4, lsl #2
ldrsh r1, [r0, r2]
ldrsh r3, [sb, #4]
ldr r0, _022E9CA4 ; =ov29_0235171E
ldr r0, _022E9CA4 ; =DIRECTIONS_XY + 2
add r1, r1, r1, lsl #1
add r1, r3, r1
strh r1, [sl]
@@ -493,7 +493,7 @@ _022E9C44:
ldrsh r2, [sb, #4]
mov r1, r1, lsl #2
ldrsh r1, [r0, r1]
ldr r0, _022E9CA4 ; =ov29_0235171E
ldr r0, _022E9CA4 ; =DIRECTIONS_XY + 2
add r1, r2, r1, lsl #1
strh r1, [sl]
ldrb r1, [r8, #0x4c]
@@ -512,7 +512,7 @@ _022E9C98:
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_022E9CA0: .word DIRECTIONS_XY
_022E9CA4: .word ov29_0235171E
_022E9CA4: .word DIRECTIONS_XY + 2
_022E9CA8: .word DUNGEON_PTR
_022E9CAC: .word ov29_0235179C
_022E9CB0: .word ov29_023517A0

View File

@@ -925,7 +925,7 @@ _022EEDC4:
mov r1, r1, lsl #0x1d
mov r4, r1, lsr #0x1b
ldrsh r2, [r0, r4]
ldr r1, _022EEE48 ; =ov29_0235171E
ldr r1, _022EEE48 ; =DIRECTIONS_XY + 2
mov r0, r6
add r2, r3, r2
strh r2, [sp, #0xc]
@@ -948,7 +948,7 @@ _022EEE38:
.align 2, 0
_022EEE40: .word 0x0000130F
_022EEE44: .word DIRECTIONS_XY
_022EEE48: .word ov29_0235171E
_022EEE48: .word DIRECTIONS_XY + 2
_022EEE4C: .word DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST
arm_func_end ApplyTripTrapEffect

View File

@@ -3109,7 +3109,7 @@ ShouldLeaderKeepRunning: ; 0x022F308C
ldrb r1, [r5, #0x78b]
ldr r3, _022F35D8 ; =DIRECTIONS_XY
mov r5, r7, lsl #2
ldr r2, _022F35DC ; =ov29_0235171E
ldr r2, _022F35DC ; =DIRECTIONS_XY + 2
ldrsh r6, [r3, r5]
mov r8, r0
cmp r1, #0
@@ -3187,7 +3187,7 @@ _022F31C4:
mov r5, r1, lsr #0x1b
mov fp, r0, lsr #0x1b
ldrsh r1, [r6, r5]
ldr r8, _022F35DC ; =ov29_0235171E
ldr r8, _022F35DC ; =DIRECTIONS_XY + 2
mov r3, r2, lsr #0x1b
add r1, sl, r1
ldrsh r2, [r6, r3]
@@ -3462,7 +3462,7 @@ _022F35CC:
.align 2, 0
_022F35D4: .word DUNGEON_PTR
_022F35D8: .word DIRECTIONS_XY
_022F35DC: .word ov29_0235171E
_022F35DC: .word DIRECTIONS_XY + 2
arm_func_end ShouldLeaderKeepRunning
arm_func_start ov29_022F35E0

View File

@@ -684,7 +684,7 @@ _022F6198:
ldrsh r3, [sl, #4]
mov r1, r1, lsl #2
ldrsh r2, [r0, r1]
ldr r1, _022F620C ; =ov29_0235171E
ldr r1, _022F620C ; =DIRECTIONS_XY + 2
add r0, sp, #8
add r2, r3, r2
strh r2, [sp, #8]
@@ -713,7 +713,7 @@ _022F6200: .word 0x00000BCD
_022F6204: .word 0x00000BCE
#endif
_022F6208: .word DIRECTIONS_XY
_022F620C: .word ov29_0235171E
_022F620C: .word DIRECTIONS_XY + 2
arm_func_end ov29_022F6058
arm_func_start ov29_022F6210

View File

@@ -1763,7 +1763,7 @@ ov29_022F87C0: ; 0x022F87C0
beq _022F8820
ldrb r2, [r5, #0x4c]
ldr r1, _022F8828 ; =DIRECTIONS_XY
ldr r0, _022F882C ; =ov29_0235171E
ldr r0, _022F882C ; =DIRECTIONS_XY + 2
mov ip, r2, lsl #2
ldrsh lr, [r4, #4]
ldrsh r3, [r1, ip]
@@ -1783,7 +1783,7 @@ _022F8820:
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_022F8828: .word DIRECTIONS_XY
_022F882C: .word ov29_0235171E
_022F882C: .word DIRECTIONS_XY + 2
arm_func_end ov29_022F87C0
arm_func_start ov29_022F8830
@@ -1794,7 +1794,7 @@ ov29_022F8830: ; 0x022F8830
ldr r0, _022F88B8 ; =DIRECTIONS_XY
ldrb r2, [r5, #0x4c]
ldrsh r3, [r4, #4]
ldr r1, _022F88BC ; =ov29_0235171E
ldr r1, _022F88BC ; =DIRECTIONS_XY + 2
mov r2, r2, lsl #2
ldrsh r0, [r0, r2]
add r0, r3, r0
@@ -1825,7 +1825,7 @@ _022F88B0:
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_022F88B8: .word DIRECTIONS_XY
_022F88BC: .word ov29_0235171E
_022F88BC: .word DIRECTIONS_XY + 2
arm_func_end ov29_022F8830
arm_func_start ov29_022F88C0
@@ -1836,7 +1836,7 @@ ov29_022F88C0: ; 0x022F88C0
ldr r0, _022F89A4 ; =DIRECTIONS_XY
ldrb r2, [r4, #0x4c]
ldrsh r3, [r5, #4]
ldr r1, _022F89A8 ; =ov29_0235171E
ldr r1, _022F89A8 ; =DIRECTIONS_XY + 2
mov r2, r2, lsl #2
ldrsh r0, [r0, r2]
add r0, r3, r0
@@ -1861,7 +1861,7 @@ ov29_022F88C0: ; 0x022F88C0
ldrsh r2, [r5, #4]
mov r1, r1, lsl #2
ldrsh r0, [r0, r1]
ldr r1, _022F89A8 ; =ov29_0235171E
ldr r1, _022F89A8 ; =DIRECTIONS_XY + 2
add r0, r2, r0, lsl #1
strh r0, [sp]
ldrb r2, [r4, #0x4c]
@@ -1890,7 +1890,7 @@ _022F899C:
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_022F89A4: .word DIRECTIONS_XY
_022F89A8: .word ov29_0235171E
_022F89A8: .word DIRECTIONS_XY + 2
arm_func_end ov29_022F88C0
arm_func_start ov29_022F89AC
@@ -2350,7 +2350,7 @@ ov29_022F8FF8: ; 0x022F8FF8
ldr ip, _022F9050 ; =DIRECTIONS_XY
ldrb lr, [r2, #0x4c]
ldrsh r4, [r1, #4]
ldr r3, _022F9054 ; =ov29_0235171E
ldr r3, _022F9054 ; =DIRECTIONS_XY + 2
mov lr, lr, lsl #2
ldrsh ip, [ip, lr]
add r4, r4, ip
@@ -2369,7 +2369,7 @@ ov29_022F8FF8: ; 0x022F8FF8
ldmia sp!, {r4, pc}
.align 2, 0
_022F9050: .word DIRECTIONS_XY
_022F9054: .word ov29_0235171E
_022F9054: .word DIRECTIONS_XY + 2
arm_func_end ov29_022F8FF8
arm_func_start ov29_022F9058
@@ -2451,7 +2451,7 @@ UpdateAiTargetPos: ; 0x022F9144
add r1, lr, #0x100
mov r3, r3, lsl #2
ldrsh r3, [r2, r3]
ldr r2, _022F9190 ; =ov29_0235171E
ldr r2, _022F9190 ; =DIRECTIONS_XY + 2
add r3, ip, r3
#ifdef JAPAN
strh r3, [r1, #0x7a]
@@ -2471,7 +2471,7 @@ UpdateAiTargetPos: ; 0x022F9144
ldmia sp!, {r3, pc}
.align 2, 0
_022F918C: .word DIRECTIONS_XY
_022F9190: .word ov29_0235171E
_022F9190: .word DIRECTIONS_XY + 2
arm_func_end UpdateAiTargetPos
arm_func_start SetMonsterTypeAndAbility

View File

@@ -924,7 +924,7 @@ _022FA210:
mov r2, r2, lsl #2
ldrsh r3, [r1, r2]
ldrsh ip, [r6, #4]
ldr r2, _022FA2EC ; =ov29_0235171E
ldr r2, _022FA2EC ; =DIRECTIONS_XY + 2
mov r1, #0xff
add r3, ip, r3
strh r3, [r0, #0x7e + OV29_022FA1D8_OFFSET]
@@ -970,7 +970,7 @@ _022FA2B8:
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_022FA2E8: .word DIRECTIONS_XY
_022FA2EC: .word ov29_0235171E
_022FA2EC: .word DIRECTIONS_XY + 2
arm_func_end ov29_022FA1D8
arm_func_start ov29_022FA2F0

View File

@@ -803,7 +803,7 @@ _022FD420:
strh r7, [sp, #4]
ldrb r3, [r1]
ldr r2, _022FD788 ; =DIRECTIONS_XY
ldr r1, _022FD78C ; =ov29_0235171E
ldr r1, _022FD78C ; =DIRECTIONS_XY + 2
mov r3, r3, lsl #2
ldrsh r2, [r2, r3]
ldrsh r1, [r1, r3]
@@ -1014,7 +1014,7 @@ _022FD77C: .word 0x000001A2
_022FD780: .word DUNGEON_PTR
_022FD784: .word ov29_0237C9C0
_022FD788: .word DIRECTIONS_XY
_022FD78C: .word ov29_0235171E
_022FD78C: .word DIRECTIONS_XY + 2
_022FD790: .word ov29_0237C690
_022FD794: .word LEADER_PTR
_022FD798: .word ov10_022C4520

View File

@@ -883,7 +883,7 @@ _022FE818:
ldrh r3, [r6]
ldr r2, _022FED88 ; =DIRECTIONS_XY
mov r8, r1, lsl #2
ldr r0, _022FED8C ; =ov29_0235171E
ldr r0, _022FED8C ; =DIRECTIONS_XY + 2
ldrsh ip, [sb, #4]
ldrsh r7, [r2, r8]
ldrsh r5, [sb, #6]
@@ -1306,7 +1306,7 @@ _022FED7C: .word ov29_0237C9C0
_022FED80: .word ov29_0237CA6C
_022FED84: .word ov29_0237CA68
_022FED88: .word DIRECTIONS_XY
_022FED8C: .word ov29_0235171E
_022FED8C: .word DIRECTIONS_XY + 2
#ifdef JAPAN
_0230017C: .word 0x00000163
_022FED90: .word 0x00000B31

View File

@@ -125,7 +125,7 @@ CanMonsterMoveInDirection: ; 0x02300E78
bl GetMobilityTypeCheckSlipAndFloating
ldr r2, _02300F24 ; =DIRECTIONS_XY
mov ip, r5, lsl #2
ldr r1, _02300F28 ; =ov29_0235171E
ldr r1, _02300F28 ; =DIRECTIONS_XY + 2
ldrsh r3, [r2, ip]
ldrsh lr, [r6, #4]
mov r4, r0
@@ -194,7 +194,7 @@ _02302330:
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_02300F24: .word DIRECTIONS_XY
_02300F28: .word ov29_0235171E
_02300F28: .word DIRECTIONS_XY + 2
_02300F2C: .word ov29_02352798
arm_func_end CanMonsterMoveInDirection
@@ -252,7 +252,7 @@ ov29_02300FCC: ; 0x02300FCC
mov r4, r1
ldr r1, _02301050 ; =DIRECTIONS_XY
mov ip, r4, lsl #2
ldr r0, _02301054 ; =ov29_0235171E
ldr r0, _02301054 ; =DIRECTIONS_XY + 2
ldrsh r3, [r1, ip]
ldrsh lr, [r5, #4]
ldrsh r1, [r0, ip]
@@ -282,7 +282,7 @@ ov29_02300FCC: ; 0x02300FCC
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_02301050: .word DIRECTIONS_XY
_02301054: .word ov29_0235171E
_02301054: .word DIRECTIONS_XY + 2
_02301058: .word ov29_02352790
arm_func_end ov29_02300FCC
@@ -296,7 +296,7 @@ ov29_0230105C: ; 0x0230105C
bl GetMobilityTypeCheckSlipAndFloating
ldr r2, _0230110C ; =DIRECTIONS_XY
mov ip, r5, lsl #2
ldr r1, _02301110 ; =ov29_0235171E
ldr r1, _02301110 ; =DIRECTIONS_XY + 2
ldrsh r3, [r2, ip]
ldrsh lr, [r6, #4]
mov r4, r0
@@ -372,7 +372,7 @@ _023024DC_JP:
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_0230110C: .word DIRECTIONS_XY
_02301110: .word ov29_0235171E
_02301110: .word DIRECTIONS_XY + 2
_02301114: .word ov29_02352788
arm_func_end ov29_0230105C
@@ -408,7 +408,7 @@ ov29_02301158: ; 0x02301158
bl GetMobilityTypeCheckSlipAndFloating
ldr r2, _02301228 ; =DIRECTIONS_XY
mov ip, r5, lsl #2
ldr r1, _0230122C ; =ov29_0235171E
ldr r1, _0230122C ; =DIRECTIONS_XY + 2
ldrsh r3, [r2, ip]
ldrsh lr, [r6, #4]
mov r4, r0
@@ -487,7 +487,7 @@ _02302654:
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_02301228: .word DIRECTIONS_XY
_0230122C: .word ov29_0235171E
_0230122C: .word DIRECTIONS_XY + 2
_02301230: .word ov29_02352780
arm_func_end ov29_02301158
@@ -503,7 +503,7 @@ CanAttackInDirection: ; 0x02301234
ldr r1, _023012EC ; =DIRECTIONS_XY
mov ip, r5, lsl #2
cmp r4, #1
ldr r0, _023012F0 ; =ov29_0235171E
ldr r0, _023012F0 ; =DIRECTIONS_XY + 2
ldrsh r3, [r1, ip]
ldrsh lr, [r6, #4]
ldrsh r1, [r0, ip]
@@ -579,7 +579,7 @@ _02302778:
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_023012EC: .word DIRECTIONS_XY
_023012F0: .word ov29_0235171E
_023012F0: .word DIRECTIONS_XY + 2
_023012F4: .word ov29_02352778
arm_func_end CanAttackInDirection
@@ -596,7 +596,7 @@ CanAiMonsterMoveInDirection: ; 0x023012F8
strb r1, [r6]
ldr r2, _02301484 ; =DIRECTIONS_XY
mov r4, r7, lsl #2
ldr r1, _02301488 ; =ov29_0235171E
ldr r1, _02301488 ; =DIRECTIONS_XY + 2
ldrsh r3, [r2, r4]
ldrsh ip, [r8, #4]
mov r5, r0
@@ -726,7 +726,7 @@ _0230295C:
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_02301484: .word DIRECTIONS_XY
_02301488: .word ov29_0235171E
_02301488: .word DIRECTIONS_XY + 2
_0230148C: .word DUNGEON_PTR
_02301490: .word SECONDARY_TERRAIN_TYPES
_02301494: .word ov29_02352770

View File

@@ -1468,7 +1468,7 @@ _02303D8C:
strb r2, [sp, #6]
ldrsh r3, [r0, r5]
ldrsh r4, [r7, #4]
ldr r1, _02303E08 ; =ov29_0235171E
ldr r1, _02303E08 ; =DIRECTIONS_XY + 2
add r0, sp, #4
add r3, r4, r3
strh r3, [sp, #0xe]
@@ -1491,7 +1491,7 @@ _02303DFC: .word 0x00000F29
#endif
_02303E00: .word 0x0000013F
_02303E04: .word DIRECTIONS_XY
_02303E08: .word ov29_0235171E
_02303E08: .word DIRECTIONS_XY + 2
arm_func_end EvolveMonster
arm_func_start ov29_02303E0C

View File

@@ -505,265 +505,3 @@ _0231A688:
.align 2, 0
_0231A690: .word DIRECTIONS_XY
arm_func_end ov29_0231A460
arm_func_start IsTargetInRange
IsTargetInRange: ; 0x0231A694
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov sb, r0
mov r5, r1
ldrsh r1, [sb, #6]
ldrsh r0, [r5, #6]
mov r8, r2
mov r7, r3
sub r0, r1, r0
bl abs
ldrsh r2, [sb, #4]
ldrsh r1, [r5, #4]
mov r6, r0
sub r0, r2, r1
bl abs
mov r4, r0
cmp r4, r6
movle r4, r6
cmp r4, r7
mov r0, sb
mov r1, #3
movgt r4, r7
bl IqSkillIsEnabled
cmp r0, #0
bne _0231A708
cmp r4, r7
movle r0, #1
movgt r0, #0
and r0, r0, #0xff
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_0231A708:
ldr r1, _0231A798 ; =DIRECTIONS_XY
mov r2, r8, lsl #2
ldr r0, _0231A79C ; =ov29_0235171E
ldrsh r7, [sb, #4]
ldrsh r8, [sb, #6]
ldrsh sb, [r1, r2]
ldrsh sl, [r0, r2]
mov r6, #0
b _0231A788
_0231A72C:
add r7, r7, sb
add r8, r8, sl
cmp r7, #1
cmpge r8, #1
blt _0231A790
cmp r7, #0x37
cmplt r8, #0x1f
bge _0231A790
mov r0, r7
mov r1, r8
bl GetTile
ldrh r1, [r0]
tst r1, #3
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
ldr r0, [r0, #0xc]
cmp r0, r5
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
add r6, r6, #1
_0231A788:
cmp r6, r4
ble _0231A72C
_0231A790:
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_0231A798: .word DIRECTIONS_XY
_0231A79C: .word ov29_0235171E
arm_func_end IsTargetInRange
arm_func_start ShouldUsePp
ShouldUsePp: ; 0x0231A7A0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, #0
mov r1, #0x52
mov r7, r0
mov r5, r4
mov r6, r4
bl ExclusiveItemEffectIsActive__0231A87C
cmp r0, #0
mov r0, r7
mov r1, #0x1f
movne r4, #1
bl IqSkillIsEnabled
cmp r0, #0
movne r5, #1
cmp r5, #0
beq _0231A81C
ldr r0, _0231A870 ; =ov10_022C459C
ldrsh r0, [r0]
bl DungeonRandOutcome__022EAB20
cmp r0, #0
beq _0231A81C
mov r0, r7
bl ov29_022E3ED0
mov r0, #0
mov r1, r7
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _0231A874 ; =0x00000DF5
mov r0, r7
bl LogMessageByIdWithPopupCheckUser
mov r6, #1
_0231A81C:
cmp r6, #0
bne _0231A868
cmp r4, #0
beq _0231A868
ldr r0, _0231A870 ; =ov10_022C459C
ldrsh r0, [r0]
bl DungeonRandOutcome__022EAB20
cmp r0, #0
beq _0231A868
mov r0, r7
bl ov29_022E3ED0
mov r0, #0
mov r1, r7
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _0231A878 ; =0x00000DF7
mov r0, r7
bl LogMessageByIdWithPopupCheckUser
mov r6, #1
_0231A868:
mov r0, r6
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0231A870: .word ov10_022C459C
#ifdef JAPAN
_0231A874: .word 0x00000B35
_0231A878: .word 0x00000B37
#else
_0231A874: .word 0x00000DF5
_0231A878: .word 0x00000DF7
#endif
arm_func_end ShouldUsePp
arm_func_start ExclusiveItemEffectIsActive__0231A87C
ExclusiveItemEffectIsActive__0231A87C: ; 0x0231A87C
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__0231A87C
arm_func_start ov29_0231A8A0
ov29_0231A8A0: ; 0x0231A8A0
#ifdef JAPAN
#define OV29_0231A8A0_OFFSET -4
#else
#define OV29_0231A8A0_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #4
mov sb, r0
mov r7, #0
bl IsMonster__0231A9D4
cmp r0, #0
beq _0231A910
ldr r0, _0231A9CC ; =DUNGEON_PTR
ldr r4, [sb, #0xb4]
ldr r0, [r0]
add r0, r0, #0x4000
#ifdef JAPAN
ldrb r0, [r0, #0x36]
#else
ldrb r0, [r0, #0xda]
#endif
bl AreMovesEnabled
cmp r0, #0
bne _0231A8EC
ldr r1, _0231A9D0 ; =0x00000DFD
mov r0, sb
bl LogMessageByIdWithPopupCheckUser
b _0231A9C4
_0231A8EC:
mov r1, r7
mov r0, sb
strb r1, [r4, #0x23f + OV29_0231A8A0_OFFSET]
bl ShouldUsePp
cmp r0, #0
movne r7, #1
strneb r7, [r4, #0x23f + OV29_0231A8A0_OFFSET]
mov r0, #0
strb r0, [r4, #0x23e + OV29_0231A8A0_OFFSET]
_0231A910:
mov r6, #0
mov r4, #1
mov r5, r6
mov sl, r4
b _0231A970
_0231A924:
ldr r8, [sb, #0xb4]
mov r0, sb
str r5, [sp]
ldrb r1, [r8, #0x4e]
mov r2, r4
mov r3, r5
bl ov29_0232145C
mov r0, sb
bl EntityIsValid__02319F8C
cmp r0, #0
beq _0231A984
bl IsFloorOver
cmp r0, #0
ldreqb r0, [r8, #0x23e + OV29_0231A8A0_OFFSET]
cmpeq r0, #0
ldreqb r0, [r8, #0x163 + OV29_0231A8A0_OFFSET]
cmpeq r0, #0
bne _0231A984
add r6, r6, #1
_0231A970:
mov r0, sb
mov r1, sl
bl GetNumberOfAttacks
cmp r6, r0
blt _0231A924
_0231A984:
mov r0, sb
bl EntityIsValid__02319F8C
cmp r0, #0
beq _0231A9BC
cmp r7, #0
moveq r1, #1
movne r1, #0
ldr r4, [sb, #0xb4]
mov r0, sb
and r1, r1, #0xff
bl UpdateMovePp
ldrb r1, [r4, #0x4e]
mov r0, sb
bl ov29_022FA574
_0231A9BC:
mov r0, sb
bl TryActivateTruant
_0231A9C4:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_0231A9CC: .word DUNGEON_PTR
#ifdef JAPAN
_0231A9D0: .word 0x00000B3D
#else
_0231A9D0: .word 0x00000DFD
#endif
arm_func_end ov29_0231A8A0

190
asm/overlay_29_0231A7A0.s Normal file
View File

@@ -0,0 +1,190 @@
.include "asm/macros.inc"
.include "overlay_29_0231A7A0.inc"
.text
arm_func_start ShouldUsePp
ShouldUsePp: ; 0x0231A7A0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, #0
mov r1, #0x52
mov r7, r0
mov r5, r4
mov r6, r4
bl ExclusiveItemEffectIsActive__0231A87C
cmp r0, #0
mov r0, r7
mov r1, #0x1f
movne r4, #1
bl IqSkillIsEnabled
cmp r0, #0
movne r5, #1
cmp r5, #0
beq _0231A81C
ldr r0, _0231A870 ; =ov10_022C459C
ldrsh r0, [r0]
bl DungeonRandOutcome__022EAB20
cmp r0, #0
beq _0231A81C
mov r0, r7
bl ov29_022E3ED0
mov r0, #0
mov r1, r7
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _0231A874 ; =0x00000DF5
mov r0, r7
bl LogMessageByIdWithPopupCheckUser
mov r6, #1
_0231A81C:
cmp r6, #0
bne _0231A868
cmp r4, #0
beq _0231A868
ldr r0, _0231A870 ; =ov10_022C459C
ldrsh r0, [r0]
bl DungeonRandOutcome__022EAB20
cmp r0, #0
beq _0231A868
mov r0, r7
bl ov29_022E3ED0
mov r0, #0
mov r1, r7
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _0231A878 ; =0x00000DF7
mov r0, r7
bl LogMessageByIdWithPopupCheckUser
mov r6, #1
_0231A868:
mov r0, r6
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0231A870: .word ov10_022C459C
#ifdef JAPAN
_0231A874: .word 0x00000B35
_0231A878: .word 0x00000B37
#else
_0231A874: .word 0x00000DF5
_0231A878: .word 0x00000DF7
#endif
arm_func_end ShouldUsePp
arm_func_start ExclusiveItemEffectIsActive__0231A87C
ExclusiveItemEffectIsActive__0231A87C: ; 0x0231A87C
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__0231A87C
arm_func_start ov29_0231A8A0
ov29_0231A8A0: ; 0x0231A8A0
#ifdef JAPAN
#define OV29_0231A8A0_OFFSET -4
#else
#define OV29_0231A8A0_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #4
mov sb, r0
mov r7, #0
bl IsMonster__0231A9D4
cmp r0, #0
beq _0231A910
ldr r0, _0231A9CC ; =DUNGEON_PTR
ldr r4, [sb, #0xb4]
ldr r0, [r0]
add r0, r0, #0x4000
#ifdef JAPAN
ldrb r0, [r0, #0x36]
#else
ldrb r0, [r0, #0xda]
#endif
bl AreMovesEnabled
cmp r0, #0
bne _0231A8EC
ldr r1, _0231A9D0 ; =0x00000DFD
mov r0, sb
bl LogMessageByIdWithPopupCheckUser
b _0231A9C4
_0231A8EC:
mov r1, r7
mov r0, sb
strb r1, [r4, #0x23f + OV29_0231A8A0_OFFSET]
bl ShouldUsePp
cmp r0, #0
movne r7, #1
strneb r7, [r4, #0x23f + OV29_0231A8A0_OFFSET]
mov r0, #0
strb r0, [r4, #0x23e + OV29_0231A8A0_OFFSET]
_0231A910:
mov r6, #0
mov r4, #1
mov r5, r6
mov sl, r4
b _0231A970
_0231A924:
ldr r8, [sb, #0xb4]
mov r0, sb
str r5, [sp]
ldrb r1, [r8, #0x4e]
mov r2, r4
mov r3, r5
bl ov29_0232145C
mov r0, sb
bl EntityIsValid__02319F8C
cmp r0, #0
beq _0231A984
bl IsFloorOver
cmp r0, #0
ldreqb r0, [r8, #0x23e + OV29_0231A8A0_OFFSET]
cmpeq r0, #0
ldreqb r0, [r8, #0x163 + OV29_0231A8A0_OFFSET]
cmpeq r0, #0
bne _0231A984
add r6, r6, #1
_0231A970:
mov r0, sb
mov r1, sl
bl GetNumberOfAttacks
cmp r6, r0
blt _0231A924
_0231A984:
mov r0, sb
bl EntityIsValid__02319F8C
cmp r0, #0
beq _0231A9BC
cmp r7, #0
moveq r1, #1
movne r1, #0
ldr r4, [sb, #0xb4]
mov r0, sb
and r1, r1, #0xff
bl UpdateMovePp
ldrb r1, [r4, #0x4e]
mov r0, sb
bl ov29_022FA574
_0231A9BC:
mov r0, sb
bl TryActivateTruant
_0231A9C4:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_0231A9CC: .word DUNGEON_PTR
#ifdef JAPAN
_0231A9D0: .word 0x00000B3D
#else
_0231A9D0: .word 0x00000DFD
#endif
arm_func_end ov29_0231A8A0

View File

@@ -299,7 +299,7 @@ _0231F1B0:
bl _s32_div_f
ldrsh sl, [sp, #0x40]
mov r1, #0x18
ldr r2, _0231F560 ; =ov29_0235171E
ldr r2, _0231F560 ; =DIRECTIONS_XY + 2
mov r3, r6, lsl #2
smulbb r1, sl, r1
add r1, r1, #0xc
@@ -527,7 +527,7 @@ _0231F550: .word DUNGEON_PTR
_0231F554: .word 0x00000E48 + OV29_0231EDFC_OFFSET
_0231F558: .word 0x00000E47 + OV29_0231EDFC_OFFSET
_0231F55C: .word 0x00000212
_0231F560: .word ov29_0235171E
_0231F560: .word DIRECTIONS_XY + 2
_0231F564: .word 0x00000163
_0231F568: .word ov10_022C4458
_0231F56C: .word 0x00000259

View File

@@ -38,7 +38,7 @@ ov29_023201D0: ; 0x023201D0
strh r0, [sp]
ldrh r3, [sl, #6]
ldrsh r6, [r1, r2]
ldr r0, _02320334 ; =ov29_0235171E
ldr r0, _02320334 ; =DIRECTIONS_XY + 2
ldrsh r1, [sp]
ldrsh r7, [r0, r2]
strh r3, [sp, #2]
@@ -117,7 +117,7 @@ _02320328:
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_02320330: .word DIRECTIONS_XY
_02320334: .word ov29_0235171E
_02320334: .word DIRECTIONS_XY + 2
_02320338: .word 0x00000212
arm_func_end ov29_023201D0

View File

@@ -266,7 +266,7 @@ ov29_023230FC: ; 0x023230FC
_02323160:
ldrsh r2, [r8, #4]
ldr r0, _023238F8 ; =DIRECTIONS_XY
ldr r1, _023238FC ; =ov29_0235171E
ldr r1, _023238FC ; =DIRECTIONS_XY + 2
strh r2, [sp, #0xbc]
ldrsh r2, [r8, #6]
mov r4, #0
@@ -356,7 +356,7 @@ _02323250:
ldr r0, _023238F8 ; =DIRECTIONS_XY
strh r2, [sp, #0xb8]
ldrsh r2, [r5, #6]
ldr r1, _023238FC ; =ov29_0235171E
ldr r1, _023238FC ; =DIRECTIONS_XY + 2
strh r2, [sp, #0xba]
ldrb r2, [sb, #0x4c]
add r2, r2, #4
@@ -372,7 +372,7 @@ _023232E4:
ldr r3, _023238F8 ; =DIRECTIONS_XY
strh r0, [sp, #0xbc]
ldrsh r1, [r8, #6]
ldr r2, _023238FC ; =ov29_0235171E
ldr r2, _023238FC ; =DIRECTIONS_XY + 2
mov r0, #0x18
strh r1, [sp, #0xbe]
ldrb r1, [sb, #0x4c]
@@ -788,7 +788,7 @@ _023238EC:
.align 2, 0
_023238F4: .word ov29_02352A54
_023238F8: .word DIRECTIONS_XY
_023238FC: .word ov29_0235171E
_023238FC: .word DIRECTIONS_XY + 2
_02323900: .word ov29_0235175C
_02323904: .word 0x00000FFF
_02323908: .word ov29_02352A6C
@@ -843,7 +843,7 @@ _02323984:
ldr r4, _02323C30 ; =DIRECTIONS_XY
ldrb r1, [r0, #0x4c]
ldrsh r0, [sl, #4]
ldr r5, _02323C34 ; =ov29_0235171E
ldr r5, _02323C34 ; =DIRECTIONS_XY + 2
add r1, r1, #4
strh r0, [sp, #0x34]
and r0, r1, #7
@@ -1032,7 +1032,7 @@ _02323BE0:
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_02323C30: .word DIRECTIONS_XY
_02323C34: .word ov29_0235171E
_02323C34: .word DIRECTIONS_XY + 2
_02323C38: .word ov29_02352A8C
_02323C3C: .word DUNGEON_PTR
#ifdef JAPAN

View File

@@ -352,7 +352,7 @@ _0232A7B4:
bl LogMessageByIdWithPopupCheckUserTarget
ldrb r1, [r4, #0x4c]
ldr r0, _0232A82C ; =DIRECTIONS_XY
ldr r5, _0232A830 ; =ov29_0235171E
ldr r5, _0232A830 ; =DIRECTIONS_XY + 2
mov r1, r1, lsl #2
ldrsh r1, [r0, r1]
add r2, sp, #4
@@ -383,7 +383,7 @@ _0232A824: .word 0x00000EE8
_0232A828: .word 0x00000EE7
#endif
_0232A82C: .word DIRECTIONS_XY
_0232A830: .word ov29_0235171E
_0232A830: .word DIRECTIONS_XY + 2
arm_func_end DoMoveKnockOff
arm_func_start ov29_0232A834

View File

@@ -905,7 +905,7 @@ _0232CFB8:
ldrsh r3, [r6, #4]
mov r1, r1, lsl #2
ldrsh r2, [r0, r1]
ldr r1, _0232D0E8 ; =ov29_0235171E
ldr r1, _0232D0E8 ; =DIRECTIONS_XY + 2
add r0, sp, #0
add r2, r3, r2
strh r2, [sp]
@@ -985,12 +985,12 @@ _0232D0D0:
#ifdef JAPAN
_0232D0E0: .word 0x00000C4D
_0232D0E4: .word DIRECTIONS_XY
_0232D0E8: .word ov29_0235171E
_0232D0E8: .word DIRECTIONS_XY + 2
_0232D0EC: .word 0x00000C4C
#else
_0232D0E0: .word 0x00000F0B
_0232D0E4: .word DIRECTIONS_XY
_0232D0E8: .word ov29_0235171E
_0232D0E8: .word DIRECTIONS_XY + 2
_0232D0EC: .word 0x00000F0A
#endif
arm_func_end DoMoveFillIn

View File

@@ -1726,459 +1726,3 @@ ov29_023516E8:
ov29_023516FC:
.byte 0x02, 0x06, 0x04, 0x00, 0x02, 0x00, 0x04, 0x06, 0x04, 0x00, 0x06, 0x02, 0x04, 0x02, 0x06, 0x00
.byte 0x06, 0x02, 0x00, 0x04, 0x06, 0x04, 0x02, 0x00, 0x00, 0x04, 0x02, 0x06, 0x00, 0x06, 0x02, 0x04
.global DIRECTIONS_XY
DIRECTIONS_XY:
.byte 0x00, 0x00
.global ov29_0235171E
ov29_0235171E:
.byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF
.byte 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00
.global ov29_0235173C
ov29_0235173C:
.byte 0x00, 0x00
.global ov29_0235173E
ov29_0235173E:
.byte 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF
.byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01
.global ov29_0235175C
ov29_0235175C:
.byte 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00
.global ov29_0235177C
ov29_0235177C:
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00
.byte 0xFE, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00
.global ov29_0235179C
ov29_0235179C:
.word ov29_02351974
.global ov29_023517A0
ov29_023517A0:
.byte 0x01, 0x00
.global ov29_023517A2
ov29_023517A2:
.byte 0x01, 0x00
.word ov29_02351B00
.byte 0x01, 0x00, 0x01, 0x00
.word ov29_02351C94
.byte 0x01, 0x00, 0x01, 0x00
.word ov29_02351B00
.byte 0x01, 0x00, 0xFF, 0xFF
.word ov29_02351974
.byte 0xFF, 0xFF, 0xFF, 0xFF
.word ov29_02351B00
.byte 0xFF, 0xFF, 0xFF, 0xFF
.word ov29_02351C94
.byte 0xFF, 0xFF, 0xFF, 0xFF
.word ov29_02351B00
.byte 0xFF, 0xFF, 0x01, 0x00
.global DISPLACEMENTS_WITHIN_2_LARGEST_FIRST
DISPLACEMENTS_WITHIN_2_LARGEST_FIRST:
.byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00
.byte 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF
.byte 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF
.byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x63, 0x00, 0x63, 0x00
.global DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST
DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF
.byte 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFE, 0xFF
.byte 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00
.byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x63, 0x00, 0x63, 0x00
.global DISPLACEMENTS_WITHIN_3
DISPLACEMENTS_WITHIN_3:
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00
.byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0xFE, 0xFF, 0x01, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00
.byte 0x01, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF
.byte 0xFE, 0xFF, 0x02, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF
.byte 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF
.byte 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF
.byte 0xFD, 0xFF, 0x02, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF
.byte 0x03, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF
.byte 0x03, 0x00, 0x03, 0x00, 0x63, 0x00, 0x63, 0x00
.global ov29_02351974
ov29_02351974:
.byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00
.byte 0x01, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00
.byte 0xFF, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00
.byte 0x01, 0x00, 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00
.byte 0x03, 0x00, 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00
.byte 0xFF, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x03, 0x00, 0x05, 0x00
.byte 0xFD, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00
.byte 0x01, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x02, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00
.byte 0x03, 0x00, 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x04, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00
.byte 0x05, 0x00, 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x07, 0x00
.byte 0xFF, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x03, 0x00, 0x07, 0x00
.byte 0xFD, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x05, 0x00, 0x07, 0x00
.byte 0xFB, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x01, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x02, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00
.byte 0x03, 0x00, 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00
.byte 0x05, 0x00, 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00
.byte 0x07, 0x00, 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x09, 0x00
.byte 0xFF, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x03, 0x00, 0x09, 0x00
.byte 0xFD, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x05, 0x00, 0x09, 0x00
.byte 0xFB, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x07, 0x00, 0x09, 0x00
.byte 0xF9, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00
.byte 0x01, 0x00, 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x02, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00
.byte 0x03, 0x00, 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x04, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00
.byte 0x05, 0x00, 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x06, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00
.byte 0x07, 0x00, 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x08, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00
.byte 0x63, 0x00, 0x63, 0x00
.global ov29_02351B00
ov29_02351B00:
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x04, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x02, 0x00, 0x02, 0x00, 0x06, 0x00, 0x06, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x05, 0x00, 0x05, 0x00, 0x07, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x08, 0x00, 0x08, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x02, 0x00, 0x08, 0x00, 0x08, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x08, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x08, 0x00, 0x08, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x07, 0x00, 0x07, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x05, 0x00, 0x05, 0x00, 0x09, 0x00, 0x09, 0x00, 0x04, 0x00, 0x04, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x03, 0x00, 0x03, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x0A, 0x00, 0x63, 0x00, 0x63, 0x00
.global ov29_02351C94
ov29_02351C94:
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFF, 0xFF
.byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00, 0x02, 0x00
.byte 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0xFF, 0xFF
.byte 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFD, 0xFF
.byte 0x05, 0x00, 0x03, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x01, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00, 0x02, 0x00
.byte 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x03, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00, 0x04, 0x00
.byte 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFF, 0xFF
.byte 0x07, 0x00, 0x01, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFD, 0xFF
.byte 0x07, 0x00, 0x03, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFB, 0xFF
.byte 0x07, 0x00, 0x05, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00, 0x02, 0x00
.byte 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x03, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00, 0x04, 0x00
.byte 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x05, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00, 0x06, 0x00
.byte 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0xFF, 0xFF
.byte 0x09, 0x00, 0x01, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFD, 0xFF
.byte 0x09, 0x00, 0x03, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFB, 0xFF
.byte 0x09, 0x00, 0x05, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xF9, 0xFF
.byte 0x09, 0x00, 0x07, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x01, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00, 0x02, 0x00
.byte 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x03, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00, 0x04, 0x00
.byte 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x05, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00, 0x06, 0x00
.byte 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x07, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00, 0x08, 0x00
.byte 0x0A, 0x00, 0xF7, 0xFF, 0x0A, 0x00, 0x09, 0x00, 0x63, 0x00, 0x63, 0x00
.global ov29_02351E28
ov29_02351E28:
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF
.byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00
.byte 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF
.byte 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00
.byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF, 0x01, 0x00, 0x03, 0x00
.byte 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x01, 0x00
.byte 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0x02, 0x00
.byte 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00
.byte 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00
.byte 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00
.byte 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00
.byte 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00
.byte 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0x04, 0x00
.byte 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00
.byte 0x63, 0x00, 0x63, 0x00
.global ITEM_CATEGORY_ACTIONS
ITEM_CATEGORY_ACTIONS:
.byte 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x10, 0x00
.byte 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x31, 0x00, 0x2C, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global ov29_02352030
ov29_02352030:
#ifdef JAPAN
.byte 0xE5, 0x1C
#else
.byte 0x8B, 0x08
#endif
.global ov29_02352032
ov29_02352032:
#ifdef JAPAN
.byte 0xE6, 0x1C, 0xE7, 0x1C, 0xE8, 0x1C, 0xE9, 0x1C, 0xEA, 0x1C
.byte 0xEB, 0x1C, 0xEC, 0x1C, 0xED, 0x1C, 0xEE, 0x1C, 0xEF, 0x1C, 0xF0, 0x1C, 0xF1, 0x1C, 0xF2, 0x1C
.byte 0xF3, 0x1C, 0xF4, 0x1C, 0xF5, 0x1C, 0xF6, 0x1C, 0xF7, 0x1C, 0xF8, 0x1C, 0xF9, 0x1C, 0xFA, 0x1C
.byte 0xFB, 0x1C, 0xFC, 0x1C, 0xFD, 0x1C, 0xFE, 0x1C, 0xFF, 0x1C, 0x00, 0x1D, 0x01, 0x1D, 0x02, 0x1D
.byte 0x03, 0x1D, 0x04, 0x1D
#else
.byte 0x8C, 0x08, 0x8D, 0x08, 0x8E, 0x08, 0x8F, 0x08, 0x90, 0x08
.byte 0x91, 0x08, 0x92, 0x08, 0x93, 0x08, 0x94, 0x08, 0x95, 0x08, 0x96, 0x08, 0x97, 0x08, 0x98, 0x08
.byte 0x99, 0x08, 0x9A, 0x08, 0x9B, 0x08, 0x9C, 0x08, 0x9D, 0x08, 0x9E, 0x08, 0x9F, 0x08, 0xA0, 0x08
.byte 0xA1, 0x08, 0xA2, 0x08, 0xA3, 0x08, 0xA4, 0x08, 0xA5, 0x08, 0xA6, 0x08, 0xA7, 0x08, 0xA8, 0x08
.byte 0xA9, 0x08, 0xAA, 0x08
#endif
.global ov29_02352070
ov29_02352070:
.byte 0x58, 0x00, 0x00, 0x00
.global ov29_02352074
ov29_02352074:
#ifdef JAPAN
.byte 0x57, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x58, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x59, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x5A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x5C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x5E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x60, 0x23, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x61, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x62, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x63, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00
.byte 0x64, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x65, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x66, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x67, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x68, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x69, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x6A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x6C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x6E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6F, 0x23, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00
.byte 0x70, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x71, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x72, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x73, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x74, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x75, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x76, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x77, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x78, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x79, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x7A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x7C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x7E, 0x23, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x80, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x81, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x82, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x83, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x84, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x85, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x86, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x87, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x88, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x90, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x91, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x92, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x94, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x96, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x98, 0x23, 0x00, 0x00
#else
.byte 0x87, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x88, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x90, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x91, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x92, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00
.byte 0x94, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x96, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x98, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x99, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x9A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x9C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x9E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9F, 0x09, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00
.byte 0xA0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA4, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0xA5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xAA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xAC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xAE, 0x09, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xAF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xBA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xBC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xBE, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC8, 0x09, 0x00, 0x00
#endif
.byte 0x05, 0x00, 0x00, 0x00
.global FRACTIONAL_TURN_SEQUENCE
FRACTIONAL_TURN_SEQUENCE:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.global ov29_023522B6
ov29_023522B6:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00
.byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00
.byte 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00
.byte 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x00, 0x00
.byte 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00
.byte 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00
.byte 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00
.byte 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00
.byte 0x40, 0x00, 0x00, 0x00
.global ov29_02352380
ov29_02352380:
.byte 0x67, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00
.byte 0x69, 0x00, 0x00, 0x00
.global ov29_02352390
ov29_02352390:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xFF, 0xFF
.byte 0x05, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0xFF, 0xFF
.byte 0x07, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00
.global ov29_02352690
ov29_02352690:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov29_02352698
ov29_02352698:
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global ov29_023526A0
ov29_023526A0:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov29_023526A8
ov29_023526A8:
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x02, 0x08, 0x05, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov29_023526B8
ov29_023526B8:
.byte 0x5B, 0x43, 0x53, 0x3A
.byte 0x56, 0x5D, 0x5B, 0x67, 0x6F, 0x6C, 0x64, 0x3A, 0x30, 0x5D, 0x00, 0x00
.global ov29_023526C8
ov29_023526C8:
.byte 0x00, 0x00, 0x01, 0x01
.byte 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
.global ov29_023526D8
ov29_023526D8:
.byte 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00
.global ov29_023526F0
ov29_023526F0:
.byte 0x00, 0x00
.global ov29_023526F2
ov29_023526F2:
.byte 0x01, 0x00
.global ov29_023526F4
ov29_023526F4:
.byte 0xDA, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xDC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDA, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
.byte 0xDC, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00
.byte 0x01, 0x01, 0x00, 0x00
.global ov29_02352750
ov29_02352750:
.byte 0x6D, 0x6F, 0x76, 0x65, 0x3A, 0x00, 0x00, 0x00
.global ov29_02352758
ov29_02352758:
.byte 0x81, 0x45, 0x81, 0x45
.byte 0x81, 0x45, 0x00, 0x00
.global ov29_02352760
ov29_02352760:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global BELLY_DRAIN_IN_WALLS_INT
BELLY_DRAIN_IN_WALLS_INT:
.byte 0x05, 0x00, 0x00, 0x00
.global ov29_0235276C
ov29_0235276C:
.byte 0x00, 0x00, 0x00, 0x00
.global ov29_02352770
ov29_02352770:
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global ov29_02352778
ov29_02352778:
.byte 0x01, 0x02, 0x04, 0x08
.byte 0x10, 0x20, 0x40, 0x80
.global ov29_02352780
ov29_02352780:
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global ov29_02352788
ov29_02352788:
.byte 0x01, 0x02, 0x04, 0x08
.byte 0x10, 0x20, 0x40, 0x80
.global ov29_02352790
ov29_02352790:
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global ov29_02352798
ov29_02352798:
.byte 0x01, 0x02, 0x04, 0x08
.byte 0x10, 0x20, 0x40, 0x80

View File

@@ -0,0 +1,453 @@
.include "asm/macros.inc"
.include "overlay_29_rodata_0235173C.inc"
.rodata
.global ov29_0235173C
ov29_0235173C:
.byte 0x00, 0x00
.global ov29_0235173E
ov29_0235173E:
.byte 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF
.byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01
.global ov29_0235175C
ov29_0235175C:
.byte 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00
.global ov29_0235177C
ov29_0235177C:
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00
.byte 0xFE, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00
.global ov29_0235179C
ov29_0235179C:
.word ov29_02351974
.global ov29_023517A0
ov29_023517A0:
.byte 0x01, 0x00
.global ov29_023517A2
ov29_023517A2:
.byte 0x01, 0x00
.word ov29_02351B00
.byte 0x01, 0x00, 0x01, 0x00
.word ov29_02351C94
.byte 0x01, 0x00, 0x01, 0x00
.word ov29_02351B00
.byte 0x01, 0x00, 0xFF, 0xFF
.word ov29_02351974
.byte 0xFF, 0xFF, 0xFF, 0xFF
.word ov29_02351B00
.byte 0xFF, 0xFF, 0xFF, 0xFF
.word ov29_02351C94
.byte 0xFF, 0xFF, 0xFF, 0xFF
.word ov29_02351B00
.byte 0xFF, 0xFF, 0x01, 0x00
.global DISPLACEMENTS_WITHIN_2_LARGEST_FIRST
DISPLACEMENTS_WITHIN_2_LARGEST_FIRST:
.byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00
.byte 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF
.byte 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF
.byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x63, 0x00, 0x63, 0x00
.global DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST
DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF
.byte 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFE, 0xFF
.byte 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00
.byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x63, 0x00, 0x63, 0x00
.global DISPLACEMENTS_WITHIN_3
DISPLACEMENTS_WITHIN_3:
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00
.byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0xFE, 0xFF, 0x01, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00
.byte 0x01, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF
.byte 0xFE, 0xFF, 0x02, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF
.byte 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF
.byte 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF
.byte 0xFD, 0xFF, 0x02, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF
.byte 0x03, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF
.byte 0x03, 0x00, 0x03, 0x00, 0x63, 0x00, 0x63, 0x00
.global ov29_02351974
ov29_02351974:
.byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00
.byte 0x01, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00
.byte 0xFF, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00
.byte 0x01, 0x00, 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00
.byte 0x03, 0x00, 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00
.byte 0xFF, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x03, 0x00, 0x05, 0x00
.byte 0xFD, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00
.byte 0x01, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x02, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00
.byte 0x03, 0x00, 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x04, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00
.byte 0x05, 0x00, 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x07, 0x00
.byte 0xFF, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x03, 0x00, 0x07, 0x00
.byte 0xFD, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x05, 0x00, 0x07, 0x00
.byte 0xFB, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x01, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x02, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00
.byte 0x03, 0x00, 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00
.byte 0x05, 0x00, 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00
.byte 0x07, 0x00, 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x09, 0x00
.byte 0xFF, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x03, 0x00, 0x09, 0x00
.byte 0xFD, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x05, 0x00, 0x09, 0x00
.byte 0xFB, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x07, 0x00, 0x09, 0x00
.byte 0xF9, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00
.byte 0x01, 0x00, 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x02, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00
.byte 0x03, 0x00, 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x04, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00
.byte 0x05, 0x00, 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x06, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00
.byte 0x07, 0x00, 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x08, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00
.byte 0x63, 0x00, 0x63, 0x00
.global ov29_02351B00
ov29_02351B00:
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x04, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x02, 0x00, 0x02, 0x00, 0x06, 0x00, 0x06, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x05, 0x00, 0x05, 0x00, 0x07, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x08, 0x00, 0x08, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x02, 0x00, 0x08, 0x00, 0x08, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x08, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x08, 0x00, 0x08, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x07, 0x00, 0x07, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x05, 0x00, 0x05, 0x00, 0x09, 0x00, 0x09, 0x00, 0x04, 0x00, 0x04, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x03, 0x00, 0x03, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x09, 0x00
.byte 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x07, 0x00
.byte 0x07, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x0A, 0x00, 0x63, 0x00, 0x63, 0x00
.global ov29_02351C94
ov29_02351C94:
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFF, 0xFF
.byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00, 0x02, 0x00
.byte 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0xFF, 0xFF
.byte 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFD, 0xFF
.byte 0x05, 0x00, 0x03, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x01, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00, 0x02, 0x00
.byte 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x03, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00, 0x04, 0x00
.byte 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFF, 0xFF
.byte 0x07, 0x00, 0x01, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFD, 0xFF
.byte 0x07, 0x00, 0x03, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFB, 0xFF
.byte 0x07, 0x00, 0x05, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00, 0x02, 0x00
.byte 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x03, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00, 0x04, 0x00
.byte 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x05, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00, 0x06, 0x00
.byte 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0xFF, 0xFF
.byte 0x09, 0x00, 0x01, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFD, 0xFF
.byte 0x09, 0x00, 0x03, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFB, 0xFF
.byte 0x09, 0x00, 0x05, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xF9, 0xFF
.byte 0x09, 0x00, 0x07, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x01, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00, 0x02, 0x00
.byte 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x03, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00, 0x04, 0x00
.byte 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x05, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00, 0x06, 0x00
.byte 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x07, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00, 0x08, 0x00
.byte 0x0A, 0x00, 0xF7, 0xFF, 0x0A, 0x00, 0x09, 0x00, 0x63, 0x00, 0x63, 0x00
.global ov29_02351E28
ov29_02351E28:
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF
.byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00
.byte 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF
.byte 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00
.byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF, 0x01, 0x00, 0x03, 0x00
.byte 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x01, 0x00
.byte 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0x02, 0x00
.byte 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00
.byte 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00
.byte 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00
.byte 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00
.byte 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00
.byte 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00
.byte 0xFC, 0xFF, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0x04, 0x00
.byte 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00
.byte 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00
.byte 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00
.byte 0x63, 0x00, 0x63, 0x00
.global ITEM_CATEGORY_ACTIONS
ITEM_CATEGORY_ACTIONS:
.byte 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x10, 0x00
.byte 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x31, 0x00, 0x2C, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global ov29_02352030
ov29_02352030:
#ifdef JAPAN
.byte 0xE5, 0x1C
#else
.byte 0x8B, 0x08
#endif
.global ov29_02352032
ov29_02352032:
#ifdef JAPAN
.byte 0xE6, 0x1C, 0xE7, 0x1C, 0xE8, 0x1C, 0xE9, 0x1C, 0xEA, 0x1C
.byte 0xEB, 0x1C, 0xEC, 0x1C, 0xED, 0x1C, 0xEE, 0x1C, 0xEF, 0x1C, 0xF0, 0x1C, 0xF1, 0x1C, 0xF2, 0x1C
.byte 0xF3, 0x1C, 0xF4, 0x1C, 0xF5, 0x1C, 0xF6, 0x1C, 0xF7, 0x1C, 0xF8, 0x1C, 0xF9, 0x1C, 0xFA, 0x1C
.byte 0xFB, 0x1C, 0xFC, 0x1C, 0xFD, 0x1C, 0xFE, 0x1C, 0xFF, 0x1C, 0x00, 0x1D, 0x01, 0x1D, 0x02, 0x1D
.byte 0x03, 0x1D, 0x04, 0x1D
#else
.byte 0x8C, 0x08, 0x8D, 0x08, 0x8E, 0x08, 0x8F, 0x08, 0x90, 0x08
.byte 0x91, 0x08, 0x92, 0x08, 0x93, 0x08, 0x94, 0x08, 0x95, 0x08, 0x96, 0x08, 0x97, 0x08, 0x98, 0x08
.byte 0x99, 0x08, 0x9A, 0x08, 0x9B, 0x08, 0x9C, 0x08, 0x9D, 0x08, 0x9E, 0x08, 0x9F, 0x08, 0xA0, 0x08
.byte 0xA1, 0x08, 0xA2, 0x08, 0xA3, 0x08, 0xA4, 0x08, 0xA5, 0x08, 0xA6, 0x08, 0xA7, 0x08, 0xA8, 0x08
.byte 0xA9, 0x08, 0xAA, 0x08
#endif
.global ov29_02352070
ov29_02352070:
.byte 0x58, 0x00, 0x00, 0x00
.global ov29_02352074
ov29_02352074:
#ifdef JAPAN
.byte 0x57, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x58, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x59, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x5A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x5C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x5E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x60, 0x23, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x61, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x62, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x63, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00
.byte 0x64, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x65, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x66, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x67, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x68, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x69, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x6A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x6C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x6E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6F, 0x23, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00
.byte 0x70, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x71, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x72, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x73, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x74, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x75, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x76, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x77, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x78, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x79, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x7A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x7C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x7E, 0x23, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x80, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x81, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x82, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x83, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x84, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x85, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x86, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x87, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x88, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x90, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x91, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x92, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x94, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x96, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x98, 0x23, 0x00, 0x00
#else
.byte 0x87, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x88, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x8E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x90, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x91, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x92, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00
.byte 0x94, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x96, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x98, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x99, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x9A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x9C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x9E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9F, 0x09, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00
.byte 0xA0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA4, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0xA5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xA8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xAA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xAC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xAE, 0x09, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xAF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xB8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xBA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xBC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xBE, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0xC8, 0x09, 0x00, 0x00
#endif
.byte 0x05, 0x00, 0x00, 0x00
.global FRACTIONAL_TURN_SEQUENCE
FRACTIONAL_TURN_SEQUENCE:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.global ov29_023522B6
ov29_023522B6:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00
.byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00
.byte 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00
.byte 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x00, 0x00
.byte 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00
.byte 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00
.byte 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00
.byte 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00
.byte 0x40, 0x00, 0x00, 0x00
.global ov29_02352380
ov29_02352380:
.byte 0x67, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00
.byte 0x69, 0x00, 0x00, 0x00
.global ov29_02352390
ov29_02352390:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xFF, 0xFF
.byte 0x05, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0xFF, 0xFF
.byte 0x07, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF
.byte 0x08, 0x00, 0x00, 0x00
.global ov29_02352690
ov29_02352690:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov29_02352698
ov29_02352698:
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global ov29_023526A0
ov29_023526A0:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov29_023526A8
ov29_023526A8:
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x02, 0x08, 0x05, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov29_023526B8
ov29_023526B8:
.byte 0x5B, 0x43, 0x53, 0x3A
.byte 0x56, 0x5D, 0x5B, 0x67, 0x6F, 0x6C, 0x64, 0x3A, 0x30, 0x5D, 0x00, 0x00
.global ov29_023526C8
ov29_023526C8:
.byte 0x00, 0x00, 0x01, 0x01
.byte 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
.global ov29_023526D8
ov29_023526D8:
.byte 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00
.global ov29_023526F0
ov29_023526F0:
.byte 0x00, 0x00
.global ov29_023526F2
ov29_023526F2:
.byte 0x01, 0x00
.global ov29_023526F4
ov29_023526F4:
.byte 0xDA, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
.byte 0x01, 0x00, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xDC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDA, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
.byte 0xDC, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00
.byte 0x01, 0x01, 0x00, 0x00
.global ov29_02352750
ov29_02352750:
.byte 0x6D, 0x6F, 0x76, 0x65, 0x3A, 0x00, 0x00, 0x00
.global ov29_02352758
ov29_02352758:
.byte 0x81, 0x45, 0x81, 0x45
.byte 0x81, 0x45, 0x00, 0x00
.global ov29_02352760
ov29_02352760:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global BELLY_DRAIN_IN_WALLS_INT
BELLY_DRAIN_IN_WALLS_INT:
.byte 0x05, 0x00, 0x00, 0x00
.global ov29_0235276C
ov29_0235276C:
.byte 0x00, 0x00, 0x00, 0x00
.global ov29_02352770
ov29_02352770:
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global ov29_02352778
ov29_02352778:
.byte 0x01, 0x02, 0x04, 0x08
.byte 0x10, 0x20, 0x40, 0x80
.global ov29_02352780
ov29_02352780:
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global ov29_02352788
ov29_02352788:
.byte 0x01, 0x02, 0x04, 0x08
.byte 0x10, 0x20, 0x40, 0x80
.global ov29_02352790
ov29_02352790:
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global ov29_02352798
ov29_02352798:
.byte 0x01, 0x02, 0x04, 0x08
.byte 0x10, 0x20, 0x40, 0x80

View File

@@ -10,6 +10,14 @@
#define DUNGEON_MAX_SIZE_X 56
#define DUNGEON_MAX_SIZE_Y 32
enum TerrainType
{
// These 3 seem to indicate the 'main' type of the terrain. See helper functions for how they're set.
TERRAIN_TYPE_WALL = 0, // x0 When neither TERRAIN_TYPE_NORMAL nor TERRAIN_TYPE_SECONDARY are set
TERRAIN_TYPE_NORMAL = 1 << 0, // x1
TERRAIN_TYPE_SECONDARY = 1 << 1, // Water or lava depending on the dungeon. x2
};
// Dungeon state
struct dungeon {
u8 field_0x0; // 0x0: Initialized to 0x0.

View File

@@ -0,0 +1,15 @@
#ifndef PMDSKY_DUNGEON_AI_ATTACK_1_H
#define PMDSKY_DUNGEON_AI_ATTACK_1_H
#include "dungeon_mode.h"
// Returns true if the target is within range of the user's move, false otherwise.
// If the user does not have Course Checker, it simply checks if the distance between user and target is less or equal than the move range.
// Otherwise, it will iterate through all tiles in the direction specified, checking for walls or other monsters in the way, and return false if they are found.
// user: user pointer
// target: target pointer
// direction: direction ID
// n_tiles: move range (in number of tiles)
bool8 IsTargetInRange(struct entity *user, struct entity *target, enum direction_id direction, s32 n_tiles);
#endif //PMDSKY_DUNGEON_AI_ATTACK_1_H

View File

@@ -1041,33 +1041,33 @@ struct room_data {
// Tile data
struct tile {
// 0x0: terrain_flags: 2-byte bitfield
//u16 terrain_flags;
enum terrain_type terrain_type : 2;
u16 terrain_flags;
// enum terrain_type terrain_type : 2;
// This tile can be corner-cut when walking. Seemingly only used during dungeon generation.
bool8 f_corner_cuttable : 1;
// bool f_corner_cuttable : 1;
// Includes room tiles right next to a hallway, and branching points within corridors.
// Only applies to natural halls, not ones made by Absolute Mover, not "hallways" made of
// secondary terrain, etc. Used by the AI for navigation.
bool8 f_natural_junction : 1;
// bool f_natural_junction : 1;
// This tile is impassable, even with Absolute Mover/Mobile Scarf. Used for the map border,
// key chamber walls, walls in boss battle rooms, etc.
bool8 f_impassable_wall : 1;
bool8 f_in_kecleon_shop : 1; // In a Kecleon Shop
bool8 f_in_monster_house : 1; // In a Monster House
bool8 terrain_flags_unk7 : 1;
// bool f_impassable_wall : 1;
// bool f_in_kecleon_shop : 1; // In a Kecleon Shop
// bool f_in_monster_house : 1; // In a Monster House
// bool terrain_flags_unk7 : 1;
// Cannot be broken by Absolute Mover. Set naturally on key doors.
bool8 f_unbreakable : 1;
// bool f_unbreakable : 1;
// Tile is any type of "stairs" (normal stairs, Hidden Stairs, Warp Zone)
bool8 f_stairs : 1;
bool8 terrain_flags_unk10 : 1;
bool8 f_key_door : 1; // Tile is a key door
bool8 f_key_door_key_locked : 1; // Key door is locked and requires a Key to open
// bool f_stairs : 1;
// bool terrain_flags_unk10 : 1;
// bool f_key_door : 1; // Tile is a key door
// bool f_key_door_key_locked : 1; // Key door is locked and requires a Key to open
// Key door is locked and requires an escort to open (for Sealed Chamber missions)
bool8 f_key_door_escort_locked : 1;
bool8 terrain_flags_unk14 : 1;
// bool f_key_door_escort_locked : 1;
// bool terrain_flags_unk14 : 1;
// Tile is open terrain but unreachable from the stairs spawn point. Only set during dungeon
// generation.
bool8 f_unreachable_from_stairs : 1;
// bool f_unreachable_from_stairs : 1;
// 0x2: Seems to be used for spawning entities during dungeon generation, and for visibility
// during dungeon play

View File

@@ -3,6 +3,15 @@
#include "dungeon_mode.h"
// An array mapping each direction index to its x and y displacements.
// Directions start with 0=down and proceed counterclockwise (see enum direction_id). Displacements for x and y are interleaved and encoded as 2-byte signed integers.
// For example, the first two integers are [0, 1], which correspond to the x and y displacements for the "down" direction (positive y means down).
extern const struct position DIRECTIONS_XY[NUM_DIRECTIONS];
// Checks a monster's monster_behavior to see whether or not the monster should use AI. Only called on monsters with
// a monster_behavior greater than or equal to BEHAVIOR_FIXED_ENEMY. Returns false for BEHAVIOR_FIXED_ENEMY,
// BEHAVIOR_WANDERING_ENEMY_0x8, BEHAVIOR_SECRET_BAZAAR_KIRLIA, BEHAVIOR_SECRET_BAZAAR_MIME_JR,
// BEHAVIOR_SECRET_BAZAAR_SWALOT, BEHAVIOR_SECRET_BAZAAR_LICKILICKY, and BEHAVIOR_SECRET_BAZAAR_SHEDINJA.
bool8 ShouldRunMonsterAi(struct entity *monster);
#endif //PMDSKY_DUNGEON_UTIL_H

View File

@@ -262,6 +262,7 @@ Overlay OVY_29
Object src/overlay_29_022EF7A0.o
Object asm/overlay_29_022EF7C4.o
Object src/dungeon_util.o
Object asm/overlay_29_rodata_0235173C.o
Object asm/overlay_29_022EFA6C.o
Object src/overlay_29_022F0590.o
Object asm/overlay_29_022F05B4.o
@@ -355,6 +356,8 @@ Overlay OVY_29
Object asm/overlay_29_02318E70.o
Object src/overlay_29_02319F8C.o
Object asm/overlay_29_02319FB0.o
Object src/dungeon_ai_attack_1.o
Object asm/overlay_29_0231A7A0.o
Object src/overlay_29_0231A9D4.o
Object asm/overlay_29_0231A9F8.o
Object src/overlay_29_0231B194.o

52
src/dungeon_ai_attack_1.c Normal file
View File

@@ -0,0 +1,52 @@
#include "dungeon_ai_attack_1.h"
#include "dungeon.h"
#include "dungeon_map_access.h"
#include "dungeon_util.h"
#include "main_0208655C.h"
static inline s32 Max(s32 x, s32 y)
{
return x > y ? x : y;
}
extern bool8 IqSkillIsEnabled(struct entity *entity, u8 iq_skill);
bool8 IsTargetInRange(struct entity *user, struct entity *target, enum direction_id direction, s32 n_tiles)
{
s32 effective_max_range = Max(abs(user->pos.x - target->pos.x), abs(user->pos.y - target->pos.y));
if (effective_max_range > n_tiles)
effective_max_range = n_tiles;
if (!IqSkillIsEnabled(user, IQ_COURSE_CHECKER))
// BUG: effective_max_range is already capped at max_range, so this condition always evaluates to TRUE.
// The AI also has range checks elsewhere, so this doesn't become an issue in most cases.
// If the AI has the Long Toss or Pierce statuses and Course Checker is disabled,
// this incorrect check causes the AI to throw items at targets further than 10 tiles away.
return effective_max_range <= n_tiles;
s32 i;
s32 current_pos_x = user->pos.x;
s32 current_pos_y = user->pos.y;
s32 adjacent_tile_offset_x = DIRECTIONS_XY[direction].x;
s32 adjacent_tile_offset_y = DIRECTIONS_XY[direction].y;
for (i = 0; i <= effective_max_range; i++)
{
current_pos_x += adjacent_tile_offset_x;
current_pos_y += adjacent_tile_offset_y;
if (current_pos_x < 1 || current_pos_y < 1 ||
current_pos_x >= DUNGEON_MAX_SIZE_X - 1 || current_pos_y >= DUNGEON_MAX_SIZE_Y - 1)
break;
const struct tile *map_tile = GetTile(current_pos_x, current_pos_y);
if (!(map_tile->terrain_flags & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY)))
return FALSE;
if (map_tile->monster == target)
return TRUE;
if (map_tile->monster != NULL)
return FALSE;
}
return FALSE;
}

View File

@@ -1,6 +1,17 @@
#include "dungeon_util.h"
#include "dungeon_util_static.h"
const struct position DIRECTIONS_XY[] = {
{0, 1},
{1, 1},
{1, 0},
{1, -1},
{0, -1},
{-1, -1},
{-1, 0},
{-1, 1}
};
bool8 ShouldRunMonsterAi(struct entity *monster)
{
struct monster *pokemon_info = GetEntInfo(monster);