mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-03-21 17:24:33 -05:00
Separated rom.s into multiple files.
This commit is contained in:
parent
1e4c37bc96
commit
b44f9dfe54
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -35,3 +35,4 @@ porymap.project.cfg
|
|||
.vscode/
|
||||
.ropeproject/
|
||||
.ccls-cache/
|
||||
__pycache__/
|
||||
|
|
|
|||
113
asm/agb_flash.s
113
asm/agb_flash.s
|
|
@ -1,7 +1,7 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start SwitchFlashBank
|
||||
SwitchFlashBank: @ 0x0828FDE4
|
||||
|
|
@ -120,8 +120,8 @@ _0828FEC0:
|
|||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0828FEC4: .4byte gUnknown_3001A6A
|
||||
_0828FEC8: .4byte gUnknown_30075E0
|
||||
_0828FEC4: .4byte 0x03001A6A
|
||||
_0828FEC8: .4byte 0x030075E0
|
||||
thumb_func_end FlashTimerIntr
|
||||
|
||||
thumb_func_start SetFlashTimerIntr
|
||||
|
|
@ -145,10 +145,10 @@ SetFlashTimerIntr: @ 0x0828FECC
|
|||
movs r0, #0
|
||||
b _0828FF02
|
||||
.align 2, 0
|
||||
_0828FEF0: .4byte gUnknown_3001A68
|
||||
_0828FEF4: .4byte gUnknown_3001A6C
|
||||
_0828FEF0: .4byte 0x03001A68
|
||||
_0828FEF4: .4byte 0x03001A6C
|
||||
_0828FEF8: .4byte 0x04000100
|
||||
_0828FEFC: .4byte FlashTimerIntr
|
||||
_0828FEFC: .4byte 0x0828FEA5
|
||||
_0828FF00:
|
||||
movs r0, #1
|
||||
_0828FF02:
|
||||
|
|
@ -225,14 +225,14 @@ StartFlashTimer: @ 0x0828FF08
|
|||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0828FF8C: .4byte gUnknown_3007604
|
||||
_0828FF90: .4byte gUnknown_3001A70
|
||||
_0828FF8C: .4byte 0x03007604
|
||||
_0828FF90: .4byte 0x03001A70
|
||||
_0828FF94: .4byte 0x04000208
|
||||
_0828FF98: .4byte gUnknown_3001A6C
|
||||
_0828FF98: .4byte 0x03001A6C
|
||||
_0828FF9C: .4byte 0x04000200
|
||||
_0828FFA0: .4byte gUnknown_3001A68
|
||||
_0828FFA4: .4byte gUnknown_30075E0
|
||||
_0828FFA8: .4byte gUnknown_3001A6A
|
||||
_0828FFA0: .4byte 0x03001A68
|
||||
_0828FFA4: .4byte 0x030075E0
|
||||
_0828FFA8: .4byte 0x03001A6A
|
||||
_0828FFAC: .4byte 0x04000202
|
||||
thumb_func_end StartFlashTimer
|
||||
|
||||
|
|
@ -263,10 +263,10 @@ StopFlashTimer: @ 0x0828FFB0
|
|||
bx lr
|
||||
.align 2, 0
|
||||
_0828FFE0: .4byte 0x04000208
|
||||
_0828FFE4: .4byte gUnknown_3001A6C
|
||||
_0828FFE4: .4byte 0x03001A6C
|
||||
_0828FFE8: .4byte 0x04000200
|
||||
_0828FFEC: .4byte gUnknown_3001A68
|
||||
_0828FFF0: .4byte gUnknown_3001A70
|
||||
_0828FFEC: .4byte 0x03001A68
|
||||
_0828FFF0: .4byte 0x03001A70
|
||||
thumb_func_end StopFlashTimer
|
||||
|
||||
thumb_func_start ReadFlash1
|
||||
|
|
@ -291,9 +291,9 @@ SetReadFlash1: @ 0x0828FFF8
|
|||
lsls r0, r0, #0xf
|
||||
b _0829002C
|
||||
.align 2, 0
|
||||
_08290014: .4byte gUnknown_30075E4
|
||||
_08290018: .4byte ReadFlash1
|
||||
_0829001C: .4byte SetReadFlash1
|
||||
_08290014: .4byte 0x030075E4
|
||||
_08290018: .4byte 0x0828FFF5
|
||||
_0829001C: .4byte 0x0828FFF9
|
||||
_08290020:
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r2]
|
||||
|
|
@ -376,9 +376,9 @@ _08290094:
|
|||
.align 2, 0
|
||||
_082900A8: .4byte 0x04000204
|
||||
_082900AC: .4byte 0x0000FFFC
|
||||
_082900B0: .4byte gUnknown_30075F0
|
||||
_082900B4: .4byte ReadFlash_Core
|
||||
_082900B8: .4byte ReadFlash
|
||||
_082900B0: .4byte 0x030075F0
|
||||
_082900B4: .4byte 0x08290039
|
||||
_082900B8: .4byte 0x0829005D
|
||||
_082900BC:
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r2]
|
||||
|
|
@ -409,7 +409,7 @@ _082900C8:
|
|||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_082900F4: .4byte gUnknown_30075F0
|
||||
_082900F4: .4byte 0x030075F0
|
||||
thumb_func_end ReadFlash
|
||||
|
||||
thumb_func_start VerifyFlashSector_Core
|
||||
|
|
@ -484,9 +484,9 @@ _0829015C:
|
|||
.align 2, 0
|
||||
_08290170: .4byte 0x04000204
|
||||
_08290174: .4byte 0x0000FFFC
|
||||
_08290178: .4byte gUnknown_30075F0
|
||||
_0829017C: .4byte VerifyFlashSector_Core
|
||||
_08290180: .4byte VerifyFlashSector
|
||||
_08290178: .4byte 0x030075F0
|
||||
_0829017C: .4byte 0x082900F9
|
||||
_08290180: .4byte 0x08290129
|
||||
_08290184:
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r2]
|
||||
|
|
@ -516,7 +516,7 @@ _08290190:
|
|||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_082901BC: .4byte gUnknown_30075F0
|
||||
_082901BC: .4byte 0x030075F0
|
||||
thumb_func_end VerifyFlashSector
|
||||
|
||||
thumb_func_start VerifyFlashSectorNBytes
|
||||
|
|
@ -558,11 +558,11 @@ _082901E8:
|
|||
lsls r0, r0, #0xf
|
||||
b _08290228
|
||||
.align 2, 0
|
||||
_08290208: .4byte gUnknown_30075F0
|
||||
_08290208: .4byte 0x030075F0
|
||||
_0829020C: .4byte 0x04000204
|
||||
_08290210: .4byte 0x0000FFFC
|
||||
_08290214: .4byte VerifyFlashSector_Core
|
||||
_08290218: .4byte VerifyFlashSector
|
||||
_08290214: .4byte 0x082900F9
|
||||
_08290218: .4byte 0x08290129
|
||||
_0829021C:
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r2]
|
||||
|
|
@ -592,7 +592,7 @@ _08290228:
|
|||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08290254: .4byte gUnknown_30075F0
|
||||
_08290254: .4byte 0x030075F0
|
||||
thumb_func_end VerifyFlashSectorNBytes
|
||||
|
||||
thumb_func_start ProgramFlashSectorAndVerify
|
||||
|
|
@ -631,7 +631,7 @@ _08290290:
|
|||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08290298: .4byte gUnknown_30075EC
|
||||
_08290298: .4byte 0x030075EC
|
||||
thumb_func_end ProgramFlashSectorAndVerify
|
||||
|
||||
thumb_func_start ProgramFlashSectorAndVerifyNBytes
|
||||
|
|
@ -672,7 +672,7 @@ _082902D8:
|
|||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_082902E0: .4byte gUnknown_30075EC
|
||||
_082902E0: .4byte 0x030075EC
|
||||
thumb_func_end ProgramFlashSectorAndVerifyNBytes
|
||||
|
||||
thumb_func_start IdentifyFlash
|
||||
|
|
@ -694,7 +694,7 @@ IdentifyFlash: @ 0x082902E4
|
|||
.align 2, 0
|
||||
_08290304: .4byte 0x04000204
|
||||
_08290308: .4byte 0x0000FFFC
|
||||
_0829030C: .4byte gUnknown_890ED54
|
||||
_0829030C: .4byte 0x0890ED54
|
||||
_08290310:
|
||||
adds r2, #4
|
||||
_08290312:
|
||||
|
|
@ -742,13 +742,13 @@ _08290326:
|
|||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08290368: .4byte gUnknown_30075F4
|
||||
_0829036C: .4byte gUnknown_30075EC
|
||||
_08290370: .4byte gUnknown_30075FC
|
||||
_08290374: .4byte gUnknown_3007600
|
||||
_08290378: .4byte gUnknown_30075E8
|
||||
_0829037C: .4byte gUnknown_3007604
|
||||
_08290380: .4byte gUnknown_30075F0
|
||||
_08290368: .4byte 0x030075F4
|
||||
_0829036C: .4byte 0x030075EC
|
||||
_08290370: .4byte 0x030075FC
|
||||
_08290374: .4byte 0x03007600
|
||||
_08290378: .4byte 0x030075E8
|
||||
_0829037C: .4byte 0x03007604
|
||||
_08290380: .4byte 0x030075F0
|
||||
thumb_func_end IdentifyFlash
|
||||
|
||||
thumb_func_start WaitForFlashWrite_Common
|
||||
|
|
@ -771,7 +771,7 @@ WaitForFlashWrite_Common: @ 0x08290384
|
|||
mov sb, r1
|
||||
b _082903E8
|
||||
.align 2, 0
|
||||
_082903A8: .4byte gUnknown_30075E4
|
||||
_082903A8: .4byte 0x030075E4
|
||||
_082903AC: .4byte 0x0E005555
|
||||
_082903B0:
|
||||
movs r0, #0xf0
|
||||
|
|
@ -802,7 +802,7 @@ _082903DE:
|
|||
mov r8, r7
|
||||
b _08290410
|
||||
.align 2, 0
|
||||
_082903E4: .4byte gUnknown_30075E0
|
||||
_082903E4: .4byte 0x030075E0
|
||||
_082903E8:
|
||||
ldr r1, [r6]
|
||||
adds r0, r4, #0
|
||||
|
|
@ -882,10 +882,10 @@ EraseFlashChip_MX: @ 0x08290424
|
|||
.align 2, 0
|
||||
_08290480: .4byte 0x04000204
|
||||
_08290484: .4byte 0x0000FFFC
|
||||
_08290488: .4byte gUnknown_30075F0
|
||||
_08290488: .4byte 0x030075F0
|
||||
_0829048C: .4byte 0x0E005555
|
||||
_08290490: .4byte 0x0E002AAA
|
||||
_08290494: .4byte gUnknown_30075E8
|
||||
_08290494: .4byte 0x030075E8
|
||||
thumb_func_end EraseFlashChip_MX
|
||||
|
||||
thumb_func_start EraseFlashSector_MX
|
||||
|
|
@ -902,7 +902,7 @@ EraseFlashSector_MX: @ 0x08290498
|
|||
ldr r0, _082904B4
|
||||
b _08290558
|
||||
.align 2, 0
|
||||
_082904B0: .4byte gUnknown_30075F0
|
||||
_082904B0: .4byte 0x030075F0
|
||||
_082904B4: .4byte 0x000080FF
|
||||
_082904B8:
|
||||
lsrs r0, r6, #4
|
||||
|
|
@ -965,10 +965,10 @@ _082904C8:
|
|||
.align 2, 0
|
||||
_08290530: .4byte 0x04000204
|
||||
_08290534: .4byte 0x0000FFFC
|
||||
_08290538: .4byte gUnknown_30075F0
|
||||
_08290538: .4byte 0x030075F0
|
||||
_0829053C: .4byte 0x0E005555
|
||||
_08290540: .4byte 0x0E002AAA
|
||||
_08290544: .4byte gUnknown_30075E8
|
||||
_08290544: .4byte 0x030075E8
|
||||
_08290548:
|
||||
ldr r2, _08290560
|
||||
ldrh r0, [r2]
|
||||
|
|
@ -1044,12 +1044,12 @@ ProgramFlashByte_MX: @ 0x08290568
|
|||
lsrs r0, r0, #0x10
|
||||
b _082905F4
|
||||
.align 2, 0
|
||||
_082905D8: .4byte gUnknown_30075F0
|
||||
_082905D8: .4byte 0x030075F0
|
||||
_082905DC: .4byte 0x04000204
|
||||
_082905E0: .4byte 0x0000FFFC
|
||||
_082905E4: .4byte 0x0E005555
|
||||
_082905E8: .4byte 0x0E002AAA
|
||||
_082905EC: .4byte gUnknown_30075E8
|
||||
_082905EC: .4byte 0x030075E8
|
||||
_082905F0:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
|
|
@ -1086,7 +1086,7 @@ sub_082905FC: @ 0x082905FC
|
|||
.align 2, 0
|
||||
_08290628: .4byte 0x0E005555
|
||||
_0829062C: .4byte 0x0E002AAA
|
||||
_08290630: .4byte gUnknown_30075E8
|
||||
_08290630: .4byte 0x030075E8
|
||||
thumb_func_end sub_082905FC
|
||||
|
||||
thumb_func_start ProgramFlashSector_MX
|
||||
|
|
@ -1104,7 +1104,7 @@ ProgramFlashSector_MX: @ 0x08290634
|
|||
ldr r0, _08290650
|
||||
b _082906CE
|
||||
.align 2, 0
|
||||
_0829064C: .4byte gUnknown_30075F0
|
||||
_0829064C: .4byte 0x030075F0
|
||||
_08290650: .4byte 0x000080FF
|
||||
_08290654:
|
||||
adds r0, r4, #0
|
||||
|
|
@ -1143,8 +1143,8 @@ _08290654:
|
|||
.align 2, 0
|
||||
_0829069C: .4byte 0x04000204
|
||||
_082906A0: .4byte 0x0000FFFC
|
||||
_082906A4: .4byte gUnknown_30075F0
|
||||
_082906A8: .4byte gUnknown_30075F8
|
||||
_082906A4: .4byte 0x030075F0
|
||||
_082906A8: .4byte 0x030075F8
|
||||
_082906AC:
|
||||
ldrh r0, [r6]
|
||||
subs r0, #1
|
||||
|
|
@ -1171,3 +1171,4 @@ _082906CE:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end ProgramFlashSector_MX
|
||||
|
||||
|
|
|
|||
401
asm/alloc.s
Normal file
401
asm/alloc.s
Normal file
|
|
@ -0,0 +1,401 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start PutMemBlockHeader
|
||||
PutMemBlockHeader: @ 0x08000988
|
||||
push {r4, lr}
|
||||
movs r4, #0
|
||||
strh r4, [r0]
|
||||
ldr r4, _080009A0
|
||||
strh r4, [r0, #2]
|
||||
str r3, [r0, #4]
|
||||
str r1, [r0, #8]
|
||||
str r2, [r0, #0xc]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080009A0: .4byte 0x0000A3A3
|
||||
thumb_func_end PutMemBlockHeader
|
||||
|
||||
thumb_func_start PutFirstMemBlockHeader
|
||||
PutFirstMemBlockHeader: @ 0x080009A4
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r3, r1, #0
|
||||
subs r3, #0x10
|
||||
adds r1, r2, #0
|
||||
bl PutMemBlockHeader
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end PutFirstMemBlockHeader
|
||||
|
||||
thumb_func_start AllocInternal
|
||||
AllocInternal: @ 0x080009B8
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r6, r4, #0
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080009CC
|
||||
lsrs r0, r1, #2
|
||||
adds r0, #1
|
||||
lsls r1, r0, #2
|
||||
_080009CC:
|
||||
movs r2, #1
|
||||
_080009CE:
|
||||
ldrh r0, [r4]
|
||||
cmp r0, #0
|
||||
bne _08000A0C
|
||||
ldr r3, [r4, #4]
|
||||
cmp r3, r1
|
||||
blo _08000A0C
|
||||
subs r0, r3, r1
|
||||
cmp r0, #0x1f
|
||||
bhi _080009E4
|
||||
strh r2, [r4]
|
||||
b _08000A06
|
||||
_080009E4:
|
||||
subs r3, #0x10
|
||||
subs r3, r3, r1
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x10
|
||||
adds r5, r4, r0
|
||||
strh r2, [r4]
|
||||
str r1, [r4, #4]
|
||||
ldr r2, [r4, #0xc]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PutMemBlockHeader
|
||||
str r5, [r4, #0xc]
|
||||
ldr r0, [r5, #0xc]
|
||||
cmp r0, r6
|
||||
beq _08000A06
|
||||
str r5, [r0, #8]
|
||||
_08000A06:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x10
|
||||
b _08000A24
|
||||
_08000A0C:
|
||||
ldr r0, [r4, #0xc]
|
||||
cmp r0, r6
|
||||
beq _08000A16
|
||||
adds r4, r0, #0
|
||||
b _080009CE
|
||||
_08000A16:
|
||||
ldr r0, _08000A2C
|
||||
movs r1, #0xae
|
||||
ldr r2, _08000A30
|
||||
movs r3, #1
|
||||
bl AGBAssert
|
||||
movs r0, #0
|
||||
_08000A24:
|
||||
pop {r4, r5, r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08000A2C: .4byte 0x0829BDF4
|
||||
_08000A30: .4byte 0x0829BE08
|
||||
thumb_func_end AllocInternal
|
||||
|
||||
thumb_func_start FreeInternal
|
||||
FreeInternal: @ 0x08000A34
|
||||
push {r4, r5, r6, r7, lr}
|
||||
cmp r1, #0
|
||||
bne _08000A50
|
||||
ldr r0, _08000A48
|
||||
ldr r2, _08000A4C
|
||||
movs r1, #0xc3
|
||||
movs r3, #1
|
||||
bl AGBAssert
|
||||
b _08000AF6
|
||||
.align 2, 0
|
||||
_08000A48: .4byte 0x0829BDF4
|
||||
_08000A4C: .4byte 0x0829BE0C
|
||||
_08000A50:
|
||||
adds r6, r0, #0
|
||||
adds r4, r1, #0
|
||||
subs r4, #0x10
|
||||
ldrh r0, [r4, #2]
|
||||
ldr r7, _08000AFC
|
||||
cmp r0, r7
|
||||
beq _08000A6A
|
||||
ldr r0, _08000B00
|
||||
ldr r2, _08000B04
|
||||
movs r1, #0xcc
|
||||
movs r3, #1
|
||||
bl AGBAssert
|
||||
_08000A6A:
|
||||
ldrh r0, [r4]
|
||||
cmp r0, #1
|
||||
beq _08000A7C
|
||||
ldr r0, _08000B00
|
||||
ldr r2, _08000B08
|
||||
movs r1, #0xcd
|
||||
movs r3, #1
|
||||
bl AGBAssert
|
||||
_08000A7C:
|
||||
movs r0, #0
|
||||
strh r0, [r4]
|
||||
ldr r0, [r4, #0xc]
|
||||
cmp r0, r6
|
||||
beq _08000AB8
|
||||
ldrh r5, [r0]
|
||||
cmp r5, #0
|
||||
bne _08000AB8
|
||||
ldrh r0, [r0, #2]
|
||||
cmp r0, r7
|
||||
beq _08000A9E
|
||||
ldr r0, _08000B00
|
||||
ldr r2, _08000B0C
|
||||
movs r1, #0xd3
|
||||
movs r3, #1
|
||||
bl AGBAssert
|
||||
_08000A9E:
|
||||
ldr r0, [r4, #4]
|
||||
adds r0, #0x10
|
||||
ldr r2, [r4, #0xc]
|
||||
ldr r1, [r2, #4]
|
||||
adds r0, r0, r1
|
||||
str r0, [r4, #4]
|
||||
strh r5, [r2, #2]
|
||||
ldr r0, [r4, #0xc]
|
||||
ldr r0, [r0, #0xc]
|
||||
str r0, [r4, #0xc]
|
||||
cmp r0, r6
|
||||
beq _08000AB8
|
||||
str r4, [r0, #8]
|
||||
_08000AB8:
|
||||
cmp r4, r6
|
||||
beq _08000AF6
|
||||
ldr r0, [r4, #8]
|
||||
ldrh r5, [r0]
|
||||
cmp r5, #0
|
||||
bne _08000AF6
|
||||
ldrh r1, [r0, #2]
|
||||
ldr r0, _08000AFC
|
||||
cmp r1, r0
|
||||
beq _08000AD8
|
||||
ldr r0, _08000B00
|
||||
ldr r2, _08000B10
|
||||
movs r1, #0xe4
|
||||
movs r3, #1
|
||||
bl AGBAssert
|
||||
_08000AD8:
|
||||
ldr r1, [r4, #8]
|
||||
ldr r0, [r4, #0xc]
|
||||
str r0, [r1, #0xc]
|
||||
ldr r1, [r4, #0xc]
|
||||
cmp r1, r6
|
||||
beq _08000AE8
|
||||
ldr r0, [r4, #8]
|
||||
str r0, [r1, #8]
|
||||
_08000AE8:
|
||||
strh r5, [r4, #2]
|
||||
ldr r0, [r4, #8]
|
||||
ldr r1, [r0, #4]
|
||||
adds r1, #0x10
|
||||
ldr r2, [r4, #4]
|
||||
adds r1, r1, r2
|
||||
str r1, [r0, #4]
|
||||
_08000AF6:
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08000AFC: .4byte 0x0000A3A3
|
||||
_08000B00: .4byte 0x0829BDF4
|
||||
_08000B04: .4byte 0x0829BE18
|
||||
_08000B08: .4byte 0x0829BE40
|
||||
_08000B0C: .4byte 0x0829BE54
|
||||
_08000B10: .4byte 0x0829BE80
|
||||
thumb_func_end FreeInternal
|
||||
|
||||
thumb_func_start AllocZeroedInternal
|
||||
AllocZeroedInternal: @ 0x08000B14
|
||||
push {r4, r5, lr}
|
||||
sub sp, #4
|
||||
adds r4, r1, #0
|
||||
bl AllocInternal
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
beq _08000B48
|
||||
movs r0, #3
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _08000B32
|
||||
lsrs r0, r4, #2
|
||||
adds r0, #1
|
||||
lsls r4, r0, #2
|
||||
_08000B32:
|
||||
movs r0, #0
|
||||
str r0, [sp]
|
||||
lsls r2, r4, #9
|
||||
lsrs r2, r2, #0xb
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #0x13
|
||||
orrs r2, r0
|
||||
mov r0, sp
|
||||
adds r1, r5, #0
|
||||
bl CpuSet
|
||||
_08000B48:
|
||||
adds r0, r5, #0
|
||||
add sp, #4
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end AllocZeroedInternal
|
||||
|
||||
thumb_func_start CheckMemBlockInternal
|
||||
CheckMemBlockInternal: @ 0x08000B54
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r3, r1, #0
|
||||
subs r3, #0x10
|
||||
ldrh r2, [r3, #2]
|
||||
ldr r0, _08000BA0
|
||||
cmp r2, r0
|
||||
bne _08000B9A
|
||||
ldr r0, [r3, #0xc]
|
||||
ldrh r1, [r0, #2]
|
||||
adds r4, r0, #0
|
||||
cmp r1, r2
|
||||
bne _08000B9A
|
||||
cmp r4, r5
|
||||
beq _08000B78
|
||||
ldr r0, [r4, #8]
|
||||
cmp r0, r3
|
||||
bne _08000B9A
|
||||
_08000B78:
|
||||
ldr r2, [r3, #8]
|
||||
ldrh r1, [r2, #2]
|
||||
ldr r0, _08000BA0
|
||||
cmp r1, r0
|
||||
bne _08000B9A
|
||||
cmp r2, r5
|
||||
beq _08000B8C
|
||||
ldr r0, [r2, #0xc]
|
||||
cmp r0, r3
|
||||
bne _08000B9A
|
||||
_08000B8C:
|
||||
cmp r4, r5
|
||||
beq _08000BA4
|
||||
ldr r0, [r3, #4]
|
||||
adds r0, #0x10
|
||||
adds r0, r3, r0
|
||||
cmp r4, r0
|
||||
beq _08000BA4
|
||||
_08000B9A:
|
||||
movs r0, #0
|
||||
b _08000BA6
|
||||
.align 2, 0
|
||||
_08000BA0: .4byte 0x0000A3A3
|
||||
_08000BA4:
|
||||
movs r0, #1
|
||||
_08000BA6:
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CheckMemBlockInternal
|
||||
|
||||
thumb_func_start InitHeap
|
||||
InitHeap: @ 0x08000BAC
|
||||
push {lr}
|
||||
ldr r2, _08000BC0
|
||||
str r0, [r2]
|
||||
ldr r2, _08000BC4
|
||||
str r1, [r2]
|
||||
bl PutFirstMemBlockHeader
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08000BC0: .4byte 0x03000004
|
||||
_08000BC4: .4byte 0x03000008
|
||||
thumb_func_end InitHeap
|
||||
|
||||
thumb_func_start Alloc
|
||||
Alloc: @ 0x08000BC8
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08000BD8
|
||||
ldr r0, [r0]
|
||||
bl AllocInternal
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08000BD8: .4byte 0x03000004
|
||||
thumb_func_end Alloc
|
||||
|
||||
thumb_func_start AllocZeroed
|
||||
AllocZeroed: @ 0x08000BDC
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08000BEC
|
||||
ldr r0, [r0]
|
||||
bl AllocZeroedInternal
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08000BEC: .4byte 0x03000004
|
||||
thumb_func_end AllocZeroed
|
||||
|
||||
thumb_func_start Free
|
||||
Free: @ 0x08000BF0
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08000C00
|
||||
ldr r0, [r0]
|
||||
bl FreeInternal
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08000C00: .4byte 0x03000004
|
||||
thumb_func_end Free
|
||||
|
||||
thumb_func_start CheckMemBlock
|
||||
CheckMemBlock: @ 0x08000C04
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08000C14
|
||||
ldr r0, [r0]
|
||||
bl CheckMemBlockInternal
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08000C14: .4byte 0x03000004
|
||||
thumb_func_end CheckMemBlock
|
||||
|
||||
thumb_func_start CheckHeap
|
||||
CheckHeap: @ 0x08000C18
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _08000C3C
|
||||
ldr r4, [r0]
|
||||
adds r5, r0, #0
|
||||
_08000C20:
|
||||
ldr r0, [r5]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x10
|
||||
bl CheckMemBlockInternal
|
||||
cmp r0, #0
|
||||
beq _08000C40
|
||||
ldr r4, [r4, #0xc]
|
||||
ldr r0, [r5]
|
||||
cmp r4, r0
|
||||
bne _08000C20
|
||||
movs r0, #1
|
||||
b _08000C42
|
||||
.align 2, 0
|
||||
_08000C3C: .4byte 0x03000004
|
||||
_08000C40:
|
||||
movs r0, #0
|
||||
_08000C42:
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CheckHeap
|
||||
|
||||
3951
asm/apprentice.s
Normal file
3951
asm/apprentice.s
Normal file
File diff suppressed because it is too large
Load Diff
117
asm/bard_music.s
Normal file
117
asm/bard_music.s
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start CalcWordPitch
|
||||
CalcWordPitch: @ 0x0817C69C
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
movs r3, #0
|
||||
strh r3, [r0, #0x16]
|
||||
subs r1, #1
|
||||
strh r1, [r0, #0x18]
|
||||
strh r2, [r0, #0x1a]
|
||||
strh r3, [r0, #0x1c]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end CalcWordPitch
|
||||
|
||||
thumb_func_start GetWordPhonemes
|
||||
GetWordPhonemes: @ 0x0817C6B0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
ldr r2, _0817C6E0
|
||||
lsls r0, r1, #1
|
||||
adds r0, #1
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x14]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldrh r0, [r1]
|
||||
movs r2, #0
|
||||
ldrsh r1, [r1, r2]
|
||||
movs r2, #2
|
||||
rsbs r2, r2, #0
|
||||
cmp r1, r2
|
||||
bne _0817C6E8
|
||||
ldr r0, _0817C6E4
|
||||
bl m4aMPlayStop
|
||||
b _0817C6F0
|
||||
.align 2, 0
|
||||
_0817C6E0: .4byte 0x085D2B4C
|
||||
_0817C6E4: .4byte 0x03007510
|
||||
_0817C6E8:
|
||||
cmp r1, r2
|
||||
blt _0817C6F8
|
||||
cmp r1, #0
|
||||
bgt _0817C6F8
|
||||
_0817C6F0:
|
||||
ldrh r0, [r4, #0x1c]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x1c]
|
||||
b _0817C6FC
|
||||
_0817C6F8:
|
||||
bl m4aSongNumStart
|
||||
_0817C6FC:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end GetWordPhonemes
|
||||
|
||||
thumb_func_start GetWordSounds
|
||||
GetWordSounds: @ 0x0817C704
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
movs r1, #0x1c
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, #0
|
||||
beq _0817C716
|
||||
movs r0, #0
|
||||
strh r0, [r6, #0x1c]
|
||||
b _0817C74E
|
||||
_0817C716:
|
||||
ldr r4, _0817C75C
|
||||
ldr r5, _0817C760
|
||||
ldrh r2, [r6, #0x14]
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl m4aMPlayVolumeControl
|
||||
ldr r2, _0817C764
|
||||
movs r3, #0x18
|
||||
ldrsh r1, [r6, r3]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
movs r3, #0x1a
|
||||
ldrsh r1, [r6, r3]
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r0]
|
||||
movs r2, #0x16
|
||||
ldrsh r0, [r6, r2]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
ldrsh r2, [r0, r3]
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl m4aMPlayPitchControl
|
||||
_0817C74E:
|
||||
ldrh r0, [r6, #0x16]
|
||||
adds r0, #1
|
||||
strh r0, [r6, #0x16]
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817C75C: .4byte 0x03007510
|
||||
_0817C760: .4byte 0x0000FFFF
|
||||
_0817C764: .4byte 0x085D2AC0
|
||||
thumb_func_end GetWordSounds
|
||||
|
||||
6656
asm/battle_ai_script_commands.s
Normal file
6656
asm/battle_ai_script_commands.s
Normal file
File diff suppressed because it is too large
Load Diff
3010
asm/battle_ai_switch_items.s
Normal file
3010
asm/battle_ai_switch_items.s
Normal file
File diff suppressed because it is too large
Load Diff
4546
asm/battle_anim.s
Normal file
4546
asm/battle_anim.s
Normal file
File diff suppressed because it is too large
Load Diff
9979
asm/battle_anim_effects_1.s
Normal file
9979
asm/battle_anim_effects_1.s
Normal file
File diff suppressed because it is too large
Load Diff
7929
asm/battle_anim_effects_2.s
Normal file
7929
asm/battle_anim_effects_2.s
Normal file
File diff suppressed because it is too large
Load Diff
13087
asm/battle_anim_effects_3.s
Normal file
13087
asm/battle_anim_effects_3.s
Normal file
File diff suppressed because it is too large
Load Diff
2592
asm/battle_anim_mon_movement.s
Normal file
2592
asm/battle_anim_mon_movement.s
Normal file
File diff suppressed because it is too large
Load Diff
6842
asm/battle_anim_mons.s
Normal file
6842
asm/battle_anim_mons.s
Normal file
File diff suppressed because it is too large
Load Diff
1070
asm/battle_anim_sound_tasks.s
Normal file
1070
asm/battle_anim_sound_tasks.s
Normal file
File diff suppressed because it is too large
Load Diff
6196
asm/battle_anim_special.s
Normal file
6196
asm/battle_anim_special.s
Normal file
File diff suppressed because it is too large
Load Diff
980
asm/battle_anim_status_effects.s
Normal file
980
asm/battle_anim_status_effects.s
Normal file
|
|
@ -0,0 +1,980 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start sub_080A9538
|
||||
sub_080A9538: @ 0x080A9538
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
lsls r5, r5, #0x18
|
||||
lsrs r5, r5, #0x18
|
||||
ldr r0, _080A95DC
|
||||
adds r0, r4, r0
|
||||
ldrb r6, [r0]
|
||||
ldr r0, _080A95E0
|
||||
movs r1, #0xa
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
mov r8, r0
|
||||
ldr r0, _080A95E4
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _080A95E8
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
ldr r1, _080A95EC
|
||||
mov r2, r8
|
||||
lsls r0, r2, #2
|
||||
add r0, r8
|
||||
lsls r0, r0, #3
|
||||
adds r1, r0, r1
|
||||
strh r4, [r1, #8]
|
||||
cmp r5, #0
|
||||
beq _080A95F8
|
||||
movs r0, #0x1f
|
||||
strh r0, [r1, #0xa]
|
||||
movs r5, #0
|
||||
lsls r0, r6, #4
|
||||
ldr r7, _080A95F0
|
||||
adds r0, r0, r6
|
||||
lsls r0, r0, #2
|
||||
adds r6, r0, r7
|
||||
_080A958C:
|
||||
movs r0, #0x20
|
||||
ldrsh r1, [r6, r0]
|
||||
ldrh r2, [r6, #0x22]
|
||||
adds r2, #0x20
|
||||
lsls r2, r2, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
ldr r0, _080A95F4
|
||||
movs r3, #0
|
||||
bl CreateSprite
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
lsls r0, r4, #4
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r3, r0, r7
|
||||
lsls r0, r5, #1
|
||||
adds r0, r0, r5
|
||||
lsls r1, r0, #4
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x2e]
|
||||
movs r0, #0xff
|
||||
lsls r0, r0, #8
|
||||
strh r0, [r3, #0x30]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x3e
|
||||
ldrb r0, [r2]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
cmp r5, #4
|
||||
bls _080A95D0
|
||||
movs r0, #0x15
|
||||
strh r0, [r3, #0x3a]
|
||||
_080A95D0:
|
||||
adds r0, r5, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #9
|
||||
bls _080A958C
|
||||
b _080A9658
|
||||
.align 2, 0
|
||||
_080A95DC: .4byte 0x02023E88
|
||||
_080A95E0: .4byte 0x080A967D
|
||||
_080A95E4: .4byte 0x084FD690
|
||||
_080A95E8: .4byte 0x084FDF98
|
||||
_080A95EC: .4byte 0x03005B60
|
||||
_080A95F0: .4byte 0x020205AC
|
||||
_080A95F4: .4byte 0x085176BC
|
||||
_080A95F8:
|
||||
movs r0, #0xf8
|
||||
lsls r0, r0, #7
|
||||
strh r0, [r1, #0xa]
|
||||
movs r5, #0
|
||||
lsls r0, r6, #4
|
||||
ldr r7, _080A9674
|
||||
adds r0, r0, r6
|
||||
lsls r0, r0, #2
|
||||
adds r6, r0, r7
|
||||
_080A960A:
|
||||
movs r2, #0x20
|
||||
ldrsh r1, [r6, r2]
|
||||
ldrh r2, [r6, #0x22]
|
||||
subs r2, #0x20
|
||||
lsls r2, r2, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
ldr r0, _080A9678
|
||||
movs r3, #0
|
||||
bl CreateSprite
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
lsls r0, r4, #4
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r3, r0, r7
|
||||
lsls r0, r5, #1
|
||||
adds r0, r0, r5
|
||||
lsls r1, r0, #4
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x2e]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r3, #0x30]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x3e
|
||||
ldrb r0, [r2]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
cmp r5, #4
|
||||
bls _080A964E
|
||||
movs r0, #0x15
|
||||
strh r0, [r3, #0x3a]
|
||||
_080A964E:
|
||||
adds r0, r5, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #9
|
||||
bls _080A960A
|
||||
_080A9658:
|
||||
ldr r0, _080A9674
|
||||
lsls r1, r4, #4
|
||||
adds r1, r1, r4
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0x3c]
|
||||
mov r0, r8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080A9674: .4byte 0x020205AC
|
||||
_080A9678: .4byte 0x085176BC
|
||||
thumb_func_end sub_080A9538
|
||||
|
||||
thumb_func_start sub_080A967C
|
||||
sub_080A967C: @ 0x080A967C
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
ldr r1, _080A96D4
|
||||
lsls r0, r5, #2
|
||||
adds r0, r0, r5
|
||||
lsls r0, r0, #3
|
||||
adds r4, r0, r1
|
||||
ldrh r1, [r4, #0xc]
|
||||
movs r2, #0xc
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #2
|
||||
bne _080A9702
|
||||
movs r0, #0
|
||||
strh r0, [r4, #0xc]
|
||||
movs r1, #8
|
||||
ldrsh r0, [r4, r1]
|
||||
lsls r0, r0, #0x14
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #0x11
|
||||
adds r0, r0, r2
|
||||
lsrs r0, r0, #0x10
|
||||
ldrb r2, [r4, #0x10]
|
||||
ldrh r3, [r4, #0xa]
|
||||
movs r1, #0x10
|
||||
bl BlendPalette
|
||||
ldrh r2, [r4, #0x12]
|
||||
movs r1, #0x12
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
bne _080A96D8
|
||||
ldrh r0, [r4, #0x10]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x10]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #8
|
||||
ble _080A9706
|
||||
movs r0, #1
|
||||
eors r0, r2
|
||||
strh r0, [r4, #0x12]
|
||||
b _080A9706
|
||||
.align 2, 0
|
||||
_080A96D4: .4byte 0x03005B60
|
||||
_080A96D8:
|
||||
ldrh r1, [r4, #0x10]
|
||||
subs r0, r1, #1
|
||||
strh r0, [r4, #0x10]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bge _080A9706
|
||||
strh r1, [r4, #0x10]
|
||||
movs r0, #1
|
||||
eors r0, r2
|
||||
strh r0, [r4, #0x12]
|
||||
ldrh r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #2
|
||||
bne _080A9706
|
||||
adds r0, r5, #0
|
||||
bl DestroyTask
|
||||
b _080A9706
|
||||
_080A9702:
|
||||
adds r0, r1, #1
|
||||
strh r0, [r4, #0xc]
|
||||
_080A9706:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_080A967C
|
||||
|
||||
thumb_func_start sub_080A970C
|
||||
sub_080A970C: @ 0x080A970C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrh r1, [r2, #0x3a]
|
||||
movs r3, #0x3a
|
||||
ldrsh r0, [r2, r3]
|
||||
cmp r0, #0
|
||||
bne _080A9738
|
||||
adds r3, r2, #0
|
||||
adds r3, #0x3e
|
||||
ldrb r0, [r3]
|
||||
movs r1, #5
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
strb r1, [r3]
|
||||
ldr r1, _080A9734
|
||||
str r1, [r2, #0x1c]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
b _080A973C
|
||||
.align 2, 0
|
||||
_080A9734: .4byte 0x080A9741
|
||||
_080A9738:
|
||||
subs r0, r1, #1
|
||||
strh r0, [r2, #0x3a]
|
||||
_080A973C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_080A970C
|
||||
|
||||
thumb_func_start sub_080A9740
|
||||
sub_080A9740: @ 0x080A9740
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r1, #0x20
|
||||
bl Cos
|
||||
strh r0, [r4, #0x24]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r1, #8
|
||||
bl Sin
|
||||
strh r0, [r4, #0x26]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0x7f
|
||||
bgt _080A976C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x43
|
||||
movs r0, #0x1d
|
||||
b _080A9772
|
||||
_080A976C:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x43
|
||||
movs r0, #0x1f
|
||||
_080A9772:
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, #8
|
||||
movs r1, #0xff
|
||||
ands r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r4, #0x30]
|
||||
ldrh r1, [r4, #0x38]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x38]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r1, [r4, #0x26]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x26]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x32]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x34
|
||||
bne _080A97B4
|
||||
movs r1, #0x3c
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _080A97AE
|
||||
adds r0, r4, #0
|
||||
bl DestroySpriteAndFreeResources
|
||||
b _080A97B4
|
||||
_080A97AE:
|
||||
adds r0, r4, #0
|
||||
bl DestroySprite
|
||||
_080A97B4:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end sub_080A9740
|
||||
|
||||
thumb_func_start sub_080A97BC
|
||||
sub_080A97BC: @ 0x080A97BC
|
||||
push {r4, r5, r6, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
ldr r4, _080A986C
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #8
|
||||
ldr r1, _080A9870
|
||||
adds r0, r0, r1
|
||||
lsrs r5, r0, #0x10
|
||||
ldrb r0, [r4]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #8
|
||||
ldr r1, _080A9874
|
||||
adds r0, r0, r1
|
||||
lsrs r4, r0, #0x10
|
||||
bl IsContest
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _080A97FA
|
||||
lsls r0, r5, #0x10
|
||||
ldr r1, _080A9878
|
||||
adds r0, r0, r1
|
||||
lsrs r5, r0, #0x10
|
||||
_080A97FA:
|
||||
movs r1, #0xfd
|
||||
lsls r1, r1, #6
|
||||
movs r0, #0x50
|
||||
bl SetGpuReg
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
movs r0, #0x52
|
||||
bl SetGpuReg
|
||||
ldr r0, _080A987C
|
||||
lsls r1, r5, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
lsls r2, r4, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
movs r3, #4
|
||||
bl CreateSprite
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
ldr r0, _080A9880
|
||||
bl GetSpriteTileStartByTag
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _080A9884
|
||||
cmp r0, r1
|
||||
bne _080A9844
|
||||
ldr r1, _080A9888
|
||||
lsls r0, r4, #4
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
adds r0, #0x3e
|
||||
ldrb r1, [r0]
|
||||
movs r2, #4
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
_080A9844:
|
||||
lsls r0, r4, #4
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A9888
|
||||
adds r0, r0, r1
|
||||
ldr r1, _080A988C
|
||||
bl SetSubspriteTables
|
||||
ldr r1, _080A9890
|
||||
lsls r0, r6, #2
|
||||
adds r0, r0, r6
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
strh r4, [r0, #0x26]
|
||||
ldr r1, _080A9894
|
||||
str r1, [r0]
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A986C: .4byte 0x020380D7
|
||||
_080A9870: .4byte 0xFFE00000
|
||||
_080A9874: .4byte 0xFFDC0000
|
||||
_080A9878: .4byte 0xFFFA0000
|
||||
_080A987C: .4byte 0x085176A4
|
||||
_080A9880: .4byte 0x0000271A
|
||||
_080A9884: .4byte 0xFFFF0000
|
||||
_080A9888: .4byte 0x020205AC
|
||||
_080A988C: .4byte 0x0851769C
|
||||
_080A9890: .4byte 0x03005B60
|
||||
_080A9894: .4byte 0x080A9899
|
||||
thumb_func_end sub_080A97BC
|
||||
|
||||
thumb_func_start sub_080A9898
|
||||
sub_080A9898: @ 0x080A9898
|
||||
push {lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r2, _080A98C4
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
ldrh r0, [r1, #0xa]
|
||||
adds r0, #1
|
||||
adds r2, r0, #0
|
||||
strh r0, [r1, #0xa]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xa
|
||||
bne _080A98CC
|
||||
ldr r0, _080A98C8
|
||||
str r0, [r1]
|
||||
movs r0, #0
|
||||
strh r0, [r1, #0xa]
|
||||
b _080A98E2
|
||||
.align 2, 0
|
||||
_080A98C4: .4byte 0x03005B60
|
||||
_080A98C8: .4byte 0x080A98E9
|
||||
_080A98CC:
|
||||
lsls r0, r2, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
movs r1, #0x10
|
||||
subs r1, r1, r0
|
||||
lsls r1, r1, #8
|
||||
orrs r1, r0
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
movs r0, #0x52
|
||||
bl SetGpuReg
|
||||
_080A98E2:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end sub_080A9898
|
||||
|
||||
thumb_func_start sub_080A98E8
|
||||
sub_080A98E8: @ 0x080A98E8
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
ldr r0, _080A9980
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
ldr r1, _080A9984
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #3
|
||||
adds r5, r0, r1
|
||||
ldrh r0, [r5, #0xa]
|
||||
adds r1, r0, #1
|
||||
strh r1, [r5, #0xa]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xd
|
||||
ble _080A9978
|
||||
ldrh r0, [r5, #0xc]
|
||||
adds r0, #1
|
||||
movs r6, #0
|
||||
strh r0, [r5, #0xc]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #3
|
||||
bne _080A9978
|
||||
ldr r3, _080A9988
|
||||
lsls r2, r2, #4
|
||||
mov ip, r2
|
||||
ldr r1, _080A998C
|
||||
add r1, ip
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r3
|
||||
ldrh r4, [r1]
|
||||
movs r2, #0x87
|
||||
lsls r2, r2, #1
|
||||
add r2, ip
|
||||
lsls r2, r2, #1
|
||||
adds r2, r2, r3
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r1]
|
||||
ldr r0, _080A9990
|
||||
add r0, ip
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r2]
|
||||
strh r4, [r0]
|
||||
strh r6, [r5, #0xc]
|
||||
ldrh r0, [r5, #0xe]
|
||||
adds r0, #1
|
||||
strh r0, [r5, #0xe]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #3
|
||||
bne _080A9978
|
||||
strh r6, [r5, #0xe]
|
||||
strh r6, [r5, #0xa]
|
||||
ldrh r0, [r5, #0x10]
|
||||
adds r0, #1
|
||||
strh r0, [r5, #0x10]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #2
|
||||
bne _080A9978
|
||||
movs r0, #9
|
||||
strh r0, [r5, #0xa]
|
||||
ldr r0, _080A9994
|
||||
str r0, [r5]
|
||||
_080A9978:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A9980: .4byte 0x0000271A
|
||||
_080A9984: .4byte 0x03005B60
|
||||
_080A9988: .4byte 0x020377B4
|
||||
_080A998C: .4byte 0x0000010D
|
||||
_080A9990: .4byte 0x0000010F
|
||||
_080A9994: .4byte 0x080A9999
|
||||
thumb_func_end sub_080A98E8
|
||||
|
||||
thumb_func_start sub_080A9998
|
||||
sub_080A9998: @ 0x080A9998
|
||||
push {lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r2, _080A99C8
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #3
|
||||
adds r2, r1, r2
|
||||
ldrh r0, [r2, #0xa]
|
||||
subs r0, #1
|
||||
adds r3, r0, #0
|
||||
strh r0, [r2, #0xa]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
bne _080A99D0
|
||||
ldr r0, _080A99CC
|
||||
str r0, [r2]
|
||||
movs r0, #0
|
||||
strh r0, [r2, #0xa]
|
||||
b _080A99E6
|
||||
.align 2, 0
|
||||
_080A99C8: .4byte 0x03005B60
|
||||
_080A99CC: .4byte 0x080A99ED
|
||||
_080A99D0:
|
||||
lsls r0, r3, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
movs r1, #0x10
|
||||
subs r1, r1, r0
|
||||
lsls r1, r1, #8
|
||||
orrs r1, r0
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
movs r0, #0x52
|
||||
bl SetGpuReg
|
||||
_080A99E6:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end sub_080A9998
|
||||
|
||||
thumb_func_start sub_080A99EC
|
||||
sub_080A99EC: @ 0x080A99EC
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
adds r4, r0, #0
|
||||
ldr r1, _080A9A2C
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #3
|
||||
adds r1, r0, r1
|
||||
ldrh r0, [r1, #0xa]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #0xa]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x25
|
||||
bne _080A9A34
|
||||
ldrh r0, [r1, #0x26]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
lsls r4, r0, #4
|
||||
adds r4, r4, r0
|
||||
lsls r4, r4, #2
|
||||
ldr r0, _080A9A30
|
||||
adds r4, r4, r0
|
||||
adds r0, r4, #0
|
||||
bl FreeSpriteOamMatrix
|
||||
adds r0, r4, #0
|
||||
bl DestroySprite
|
||||
b _080A9A4E
|
||||
.align 2, 0
|
||||
_080A9A2C: .4byte 0x03005B60
|
||||
_080A9A30: .4byte 0x020205AC
|
||||
_080A9A34:
|
||||
cmp r0, #0x27
|
||||
bne _080A9A4E
|
||||
movs r0, #0x50
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x52
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
adds r0, r4, #0
|
||||
bl DestroyAnimVisualTask
|
||||
_080A9A4E:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_080A99EC
|
||||
|
||||
thumb_func_start AnimTask_StatsChange
|
||||
AnimTask_StatsChange: @ 0x080A9A54
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
movs r3, #0
|
||||
ldr r0, _080A9A78
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, #8]
|
||||
ldrh r0, [r0]
|
||||
subs r0, #0xf
|
||||
cmp r0, #0x2b
|
||||
bls _080A9A6C
|
||||
b _080A9BF0
|
||||
_080A9A6C:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A9A7C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080A9A78: .4byte 0x02024174
|
||||
_080A9A7C: .4byte 0x080A9A80
|
||||
_080A9A80: @ jump table
|
||||
.4byte _080A9B30 @ case 0
|
||||
.4byte _080A9B36 @ case 1
|
||||
.4byte _080A9B3C @ case 2
|
||||
.4byte _080A9B42 @ case 3
|
||||
.4byte _080A9B48 @ case 4
|
||||
.4byte _080A9B4E @ case 5
|
||||
.4byte _080A9B54 @ case 6
|
||||
.4byte _080A9B5A @ case 7
|
||||
.4byte _080A9B60 @ case 8
|
||||
.4byte _080A9B66 @ case 9
|
||||
.4byte _080A9B6C @ case 10
|
||||
.4byte _080A9B72 @ case 11
|
||||
.4byte _080A9B78 @ case 12
|
||||
.4byte _080A9B7E @ case 13
|
||||
.4byte _080A9BF0 @ case 14
|
||||
.4byte _080A9BF0 @ case 15
|
||||
.4byte _080A9BF0 @ case 16
|
||||
.4byte _080A9BF0 @ case 17
|
||||
.4byte _080A9BF0 @ case 18
|
||||
.4byte _080A9BF0 @ case 19
|
||||
.4byte _080A9BF0 @ case 20
|
||||
.4byte _080A9BF0 @ case 21
|
||||
.4byte _080A9BF0 @ case 22
|
||||
.4byte _080A9BF0 @ case 23
|
||||
.4byte _080A9B84 @ case 24
|
||||
.4byte _080A9B88 @ case 25
|
||||
.4byte _080A9B8C @ case 26
|
||||
.4byte _080A9B90 @ case 27
|
||||
.4byte _080A9B94 @ case 28
|
||||
.4byte _080A9B98 @ case 29
|
||||
.4byte _080A9B9C @ case 30
|
||||
.4byte _080A9BA0 @ case 31
|
||||
.4byte _080A9BA8 @ case 32
|
||||
.4byte _080A9BB0 @ case 33
|
||||
.4byte _080A9BB8 @ case 34
|
||||
.4byte _080A9BC0 @ case 35
|
||||
.4byte _080A9BC8 @ case 36
|
||||
.4byte _080A9BD0 @ case 37
|
||||
.4byte _080A9BF0 @ case 38
|
||||
.4byte _080A9BF0 @ case 39
|
||||
.4byte _080A9BD8 @ case 40
|
||||
.4byte _080A9BDC @ case 41
|
||||
.4byte _080A9BE0 @ case 42
|
||||
.4byte _080A9BE8 @ case 43
|
||||
_080A9B30:
|
||||
movs r5, #0
|
||||
movs r2, #0
|
||||
b _080A9BF8
|
||||
_080A9B36:
|
||||
movs r5, #0
|
||||
movs r2, #1
|
||||
b _080A9BF8
|
||||
_080A9B3C:
|
||||
movs r5, #0
|
||||
movs r2, #3
|
||||
b _080A9BF8
|
||||
_080A9B42:
|
||||
movs r5, #0
|
||||
movs r2, #5
|
||||
b _080A9BF8
|
||||
_080A9B48:
|
||||
movs r5, #0
|
||||
movs r2, #6
|
||||
b _080A9BF8
|
||||
_080A9B4E:
|
||||
movs r5, #0
|
||||
movs r2, #2
|
||||
b _080A9BF8
|
||||
_080A9B54:
|
||||
movs r5, #0
|
||||
movs r2, #4
|
||||
b _080A9BF8
|
||||
_080A9B5A:
|
||||
movs r5, #1
|
||||
movs r2, #0
|
||||
b _080A9BF8
|
||||
_080A9B60:
|
||||
movs r5, #1
|
||||
movs r2, #1
|
||||
b _080A9BF8
|
||||
_080A9B66:
|
||||
movs r5, #1
|
||||
movs r2, #3
|
||||
b _080A9BF8
|
||||
_080A9B6C:
|
||||
movs r5, #1
|
||||
movs r2, #5
|
||||
b _080A9BF8
|
||||
_080A9B72:
|
||||
movs r5, #1
|
||||
movs r2, #6
|
||||
b _080A9BF8
|
||||
_080A9B78:
|
||||
movs r5, #1
|
||||
movs r2, #2
|
||||
b _080A9BF8
|
||||
_080A9B7E:
|
||||
movs r5, #1
|
||||
movs r2, #4
|
||||
b _080A9BF8
|
||||
_080A9B84:
|
||||
movs r5, #0
|
||||
b _080A9BA2
|
||||
_080A9B88:
|
||||
movs r5, #0
|
||||
b _080A9BAA
|
||||
_080A9B8C:
|
||||
movs r5, #0
|
||||
b _080A9BB2
|
||||
_080A9B90:
|
||||
movs r5, #0
|
||||
b _080A9BBA
|
||||
_080A9B94:
|
||||
movs r5, #0
|
||||
b _080A9BC2
|
||||
_080A9B98:
|
||||
movs r5, #0
|
||||
b _080A9BCA
|
||||
_080A9B9C:
|
||||
movs r5, #0
|
||||
b _080A9BD2
|
||||
_080A9BA0:
|
||||
movs r5, #1
|
||||
_080A9BA2:
|
||||
movs r2, #0
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BA8:
|
||||
movs r5, #1
|
||||
_080A9BAA:
|
||||
movs r2, #1
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BB0:
|
||||
movs r5, #1
|
||||
_080A9BB2:
|
||||
movs r2, #3
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BB8:
|
||||
movs r5, #1
|
||||
_080A9BBA:
|
||||
movs r2, #5
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BC0:
|
||||
movs r5, #1
|
||||
_080A9BC2:
|
||||
movs r2, #6
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BC8:
|
||||
movs r5, #1
|
||||
_080A9BCA:
|
||||
movs r2, #2
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BD0:
|
||||
movs r5, #1
|
||||
_080A9BD2:
|
||||
movs r2, #4
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BD8:
|
||||
movs r5, #0
|
||||
b _080A9BE2
|
||||
_080A9BDC:
|
||||
movs r5, #0
|
||||
b _080A9BEA
|
||||
_080A9BE0:
|
||||
movs r5, #1
|
||||
_080A9BE2:
|
||||
movs r2, #0xff
|
||||
movs r3, #0
|
||||
b _080A9BF8
|
||||
_080A9BE8:
|
||||
movs r5, #1
|
||||
_080A9BEA:
|
||||
movs r2, #0xff
|
||||
movs r3, #1
|
||||
b _080A9BF8
|
||||
_080A9BF0:
|
||||
adds r0, r4, #0
|
||||
bl DestroyAnimVisualTask
|
||||
b _080A9C1A
|
||||
_080A9BF8:
|
||||
ldr r0, _080A9C20
|
||||
movs r1, #0
|
||||
strh r5, [r0]
|
||||
strh r2, [r0, #2]
|
||||
strh r1, [r0, #4]
|
||||
strh r1, [r0, #6]
|
||||
strh r3, [r0, #8]
|
||||
ldr r1, _080A9C24
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldr r1, _080A9C28
|
||||
str r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
_080A9C1A:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A9C20: .4byte 0x020380BE
|
||||
_080A9C24: .4byte 0x03005B60
|
||||
_080A9C28: .4byte 0x08117705
|
||||
thumb_func_end AnimTask_StatsChange
|
||||
|
||||
thumb_func_start LaunchStatusAnimation
|
||||
LaunchStatusAnimation: @ 0x080A9C2C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
ldr r0, _080A9C68
|
||||
strb r4, [r0]
|
||||
ldr r0, _080A9C6C
|
||||
strb r4, [r0]
|
||||
ldr r0, _080A9C70
|
||||
movs r2, #0
|
||||
bl LaunchBattleAnimation
|
||||
ldr r0, _080A9C74
|
||||
movs r1, #0xa
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r2, _080A9C78
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
strh r4, [r1, #8]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A9C68: .4byte 0x020380D6
|
||||
_080A9C6C: .4byte 0x020380D7
|
||||
_080A9C70: .4byte 0x08277888
|
||||
_080A9C74: .4byte 0x080A9C7D
|
||||
_080A9C78: .4byte 0x03005B60
|
||||
thumb_func_end LaunchStatusAnimation
|
||||
|
||||
thumb_func_start Task_DoStatusAnimation
|
||||
Task_DoStatusAnimation: @ 0x080A9C7C
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
ldr r0, _080A9CC4
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
ldr r0, _080A9CC8
|
||||
thumb_func_end Task_DoStatusAnimation
|
||||
|
||||
thumb_func_start sub_080A9C8C
|
||||
sub_080A9C8C: @ 0x080A9C8C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A9CBE
|
||||
ldr r0, _080A9CCC
|
||||
ldr r2, [r0]
|
||||
ldr r1, _080A9CD0
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
movs r1, #8
|
||||
ldrsh r0, [r0, r1]
|
||||
ldr r2, [r2, #4]
|
||||
lsls r1, r0, #1
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldrb r2, [r1]
|
||||
movs r0, #0x11
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl DestroyTask
|
||||
_080A9CBE:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A9CC4: .4byte 0x02038098
|
||||
_080A9CC8: .4byte 0x0203809D
|
||||
_080A9CCC: .4byte 0x02024174
|
||||
_080A9CD0: .4byte 0x03005B60
|
||||
thumb_func_end sub_080A9C8C
|
||||
|
||||
3277
asm/battle_anim_utility_funcs.s
Normal file
3277
asm/battle_anim_utility_funcs.s
Normal file
File diff suppressed because it is too large
Load Diff
1709
asm/battle_arena.s
Normal file
1709
asm/battle_arena.s
Normal file
File diff suppressed because it is too large
Load Diff
1997
asm/battle_bg.s
Normal file
1997
asm/battle_bg.s
Normal file
File diff suppressed because it is too large
Load Diff
6754
asm/battle_controller_link_opponent.s
Normal file
6754
asm/battle_controller_link_opponent.s
Normal file
File diff suppressed because it is too large
Load Diff
6152
asm/battle_controller_link_partner.s
Normal file
6152
asm/battle_controller_link_partner.s
Normal file
File diff suppressed because it is too large
Load Diff
7181
asm/battle_controller_opponent.s
Normal file
7181
asm/battle_controller_opponent.s
Normal file
File diff suppressed because it is too large
Load Diff
11337
asm/battle_controller_player.s
Normal file
11337
asm/battle_controller_player.s
Normal file
File diff suppressed because it is too large
Load Diff
6916
asm/battle_controller_player_partner.s
Normal file
6916
asm/battle_controller_player_partner.s
Normal file
File diff suppressed because it is too large
Load Diff
4867
asm/battle_controller_recorded_opponent.s
Normal file
4867
asm/battle_controller_recorded_opponent.s
Normal file
File diff suppressed because it is too large
Load Diff
6685
asm/battle_controller_recorded_player.s
Normal file
6685
asm/battle_controller_recorded_player.s
Normal file
File diff suppressed because it is too large
Load Diff
1580
asm/battle_controller_safari.s
Normal file
1580
asm/battle_controller_safari.s
Normal file
File diff suppressed because it is too large
Load Diff
5214
asm/battle_controller_wally.s
Normal file
5214
asm/battle_controller_wally.s
Normal file
File diff suppressed because it is too large
Load Diff
4019
asm/battle_controllers.s
Normal file
4019
asm/battle_controllers.s
Normal file
File diff suppressed because it is too large
Load Diff
13896
asm/battle_dome.s
Normal file
13896
asm/battle_dome.s
Normal file
File diff suppressed because it is too large
Load Diff
2322
asm/battle_factory.s
Normal file
2322
asm/battle_factory.s
Normal file
File diff suppressed because it is too large
Load Diff
10919
asm/battle_factory_screen.s
Normal file
10919
asm/battle_factory_screen.s
Normal file
File diff suppressed because it is too large
Load Diff
4070
asm/battle_gfx_sfx_util.s
Normal file
4070
asm/battle_gfx_sfx_util.s
Normal file
File diff suppressed because it is too large
Load Diff
6009
asm/battle_interface.s
Normal file
6009
asm/battle_interface.s
Normal file
File diff suppressed because it is too large
Load Diff
2168
asm/battle_intro.s
Normal file
2168
asm/battle_intro.s
Normal file
File diff suppressed because it is too large
Load Diff
16886
asm/battle_main.s
Normal file
16886
asm/battle_main.s
Normal file
File diff suppressed because it is too large
Load Diff
3317
asm/battle_message.s
Normal file
3317
asm/battle_message.s
Normal file
File diff suppressed because it is too large
Load Diff
600
asm/battle_palace.s
Normal file
600
asm/battle_palace.s
Normal file
|
|
@ -0,0 +1,600 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start CallBattlePalaceFunction
|
||||
CallBattlePalaceFunction: @ 0x08195560
|
||||
push {lr}
|
||||
ldr r1, _08195578
|
||||
ldr r0, _0819557C
|
||||
ldrh r0, [r0]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
pop {r0}
|
||||
thumb_func_end CallBattlePalaceFunction
|
||||
|
||||
thumb_func_start sub_08195574
|
||||
sub_08195574: @ 0x08195574
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08195578: .4byte 0x085D68CC
|
||||
_0819557C: .4byte 0x02037280
|
||||
thumb_func_end sub_08195574
|
||||
|
||||
thumb_func_start sub_08195580
|
||||
sub_08195580: @ 0x08195580
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r4, _08195614
|
||||
ldr r0, [r4]
|
||||
ldr r1, _08195618
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1e
|
||||
lsrs r5, r0, #0x1e
|
||||
ldr r0, _0819561C
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r7, r0, #0x10
|
||||
ldr r0, [r4]
|
||||
ldr r2, _08195620
|
||||
adds r0, r0, r2
|
||||
movs r6, #0
|
||||
strb r6, [r0]
|
||||
ldr r1, [r4]
|
||||
adds r2, #0xa
|
||||
adds r0, r1, r2
|
||||
strh r6, [r0]
|
||||
ldr r0, _08195618
|
||||
adds r1, r1, r0
|
||||
ldrb r2, [r1]
|
||||
movs r0, #5
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
strb r0, [r1]
|
||||
ldr r1, [r4]
|
||||
ldr r2, _08195618
|
||||
adds r1, r1, r2
|
||||
ldrb r2, [r1]
|
||||
movs r0, #9
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
strb r0, [r1]
|
||||
ldr r4, [r4]
|
||||
ldr r0, _08195624
|
||||
adds r3, r4, r0
|
||||
ldr r2, _08195628
|
||||
lsls r1, r5, #2
|
||||
lsls r0, r7, #3
|
||||
adds r1, r1, r0
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r3]
|
||||
ldr r1, [r1]
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _081955F2
|
||||
lsls r0, r5, #1
|
||||
lsls r1, r7, #2
|
||||
adds r0, r0, r1
|
||||
ldr r2, _0819562C
|
||||
adds r1, r4, r2
|
||||
adds r1, r1, r0
|
||||
strh r6, [r1]
|
||||
_081955F2:
|
||||
ldr r0, _08195630
|
||||
ldr r0, [r0]
|
||||
movs r1, #4
|
||||
ldrsb r1, [r0, r1]
|
||||
movs r2, #5
|
||||
ldrsb r2, [r0, r2]
|
||||
movs r3, #1
|
||||
rsbs r3, r3, #0
|
||||
movs r0, #0
|
||||
bl SetDynamicWarp
|
||||
ldr r0, _08195634
|
||||
strh r6, [r0]
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08195614: .4byte 0x03005AF0
|
||||
_08195618: .4byte 0x00000CA9
|
||||
_0819561C: .4byte 0x000040CE
|
||||
_08195620: .4byte 0x00000CA8
|
||||
_08195624: .4byte 0x00000CDC
|
||||
_08195628: .4byte 0x085D6914
|
||||
_0819562C: .4byte 0x00000DC8
|
||||
_08195630: .4byte 0x03005AEC
|
||||
_08195634: .4byte 0x0203886A
|
||||
thumb_func_end sub_08195580
|
||||
|
||||
thumb_func_start sub_08195638
|
||||
sub_08195638: @ 0x08195638
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r5, _08195664
|
||||
ldr r0, [r5]
|
||||
ldr r1, _08195668
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1e
|
||||
lsrs r7, r0, #0x1e
|
||||
ldr r0, _0819566C
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
ldr r0, _08195670
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _08195690
|
||||
cmp r0, #1
|
||||
bgt _08195674
|
||||
cmp r0, #0
|
||||
beq _0819567A
|
||||
b _081956D0
|
||||
.align 2, 0
|
||||
_08195664: .4byte 0x03005AF0
|
||||
_08195668: .4byte 0x00000CA9
|
||||
_0819566C: .4byte 0x000040CE
|
||||
_08195670: .4byte 0x02037282
|
||||
_08195674:
|
||||
cmp r0, #2
|
||||
beq _081956B0
|
||||
b _081956D0
|
||||
_0819567A:
|
||||
ldr r0, _08195688
|
||||
ldr r1, [r5]
|
||||
ldr r2, _0819568C
|
||||
adds r1, r1, r2
|
||||
ldrh r1, [r1]
|
||||
strh r1, [r0]
|
||||
b _081956D0
|
||||
.align 2, 0
|
||||
_08195688: .4byte 0x02037290
|
||||
_0819568C: .4byte 0x00000DC6
|
||||
_08195690:
|
||||
ldr r3, _081956A8
|
||||
ldr r0, [r5]
|
||||
lsls r1, r7, #1
|
||||
lsls r2, r6, #2
|
||||
adds r1, r1, r2
|
||||
ldr r2, _081956AC
|
||||
adds r0, r0, r2
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r3]
|
||||
b _081956D0
|
||||
.align 2, 0
|
||||
_081956A8: .4byte 0x02037290
|
||||
_081956AC: .4byte 0x00000DC8
|
||||
_081956B0:
|
||||
ldr r4, _081956D8
|
||||
ldr r2, [r5]
|
||||
ldr r0, _081956DC
|
||||
adds r2, r2, r0
|
||||
ldr r3, _081956E0
|
||||
lsls r0, r7, #2
|
||||
lsls r1, r6, #3
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r3
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r0]
|
||||
ands r1, r0
|
||||
rsbs r0, r1, #0
|
||||
orrs r0, r1
|
||||
lsrs r0, r0, #0x1f
|
||||
strh r0, [r4]
|
||||
_081956D0:
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081956D8: .4byte 0x02037290
|
||||
_081956DC: .4byte 0x00000CDC
|
||||
_081956E0: .4byte 0x085D6914
|
||||
thumb_func_end sub_08195638
|
||||
|
||||
thumb_func_start sub_081956E4
|
||||
sub_081956E4: @ 0x081956E4
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r6, _08195710
|
||||
ldr r0, [r6]
|
||||
ldr r1, _08195714
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1e
|
||||
lsrs r5, r0, #0x1e
|
||||
ldr r0, _08195718
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
ldr r0, _0819571C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _0819573C
|
||||
cmp r0, #1
|
||||
bgt _08195720
|
||||
cmp r0, #0
|
||||
beq _08195726
|
||||
b _081957A0
|
||||
.align 2, 0
|
||||
_08195710: .4byte 0x03005AF0
|
||||
_08195714: .4byte 0x00000CA9
|
||||
_08195718: .4byte 0x000040CE
|
||||
_0819571C: .4byte 0x02037282
|
||||
_08195720:
|
||||
cmp r0, #2
|
||||
beq _0819575C
|
||||
b _081957A0
|
||||
_08195726:
|
||||
ldr r0, [r6]
|
||||
ldr r1, _08195734
|
||||
ldrh r1, [r1]
|
||||
ldr r2, _08195738
|
||||
adds r0, r0, r2
|
||||
strh r1, [r0]
|
||||
b _081957A0
|
||||
.align 2, 0
|
||||
_08195734: .4byte 0x02037284
|
||||
_08195738: .4byte 0x00000DC6
|
||||
_0819573C:
|
||||
ldr r2, [r6]
|
||||
lsls r0, r5, #1
|
||||
lsls r1, r4, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, _08195754
|
||||
adds r2, r2, r1
|
||||
adds r2, r2, r0
|
||||
ldr r0, _08195758
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r2]
|
||||
b _081957A0
|
||||
.align 2, 0
|
||||
_08195754: .4byte 0x00000DC8
|
||||
_08195758: .4byte 0x02037284
|
||||
_0819575C:
|
||||
ldr r0, _0819577C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08195788
|
||||
ldr r2, [r6]
|
||||
ldr r0, _08195780
|
||||
adds r2, r2, r0
|
||||
ldr r3, _08195784
|
||||
lsls r1, r5, #2
|
||||
lsls r0, r4, #3
|
||||
adds r1, r1, r0
|
||||
adds r1, r1, r3
|
||||
ldr r0, [r2]
|
||||
ldr r1, [r1]
|
||||
orrs r0, r1
|
||||
b _0819579E
|
||||
.align 2, 0
|
||||
_0819577C: .4byte 0x02037284
|
||||
_08195780: .4byte 0x00000CDC
|
||||
_08195784: .4byte 0x085D6914
|
||||
_08195788:
|
||||
ldr r2, [r6]
|
||||
ldr r1, _081957A8
|
||||
adds r2, r2, r1
|
||||
ldr r3, _081957AC
|
||||
lsls r1, r5, #2
|
||||
lsls r0, r4, #3
|
||||
adds r1, r1, r0
|
||||
adds r1, r1, r3
|
||||
ldr r0, [r2]
|
||||
ldr r1, [r1]
|
||||
ands r0, r1
|
||||
_0819579E:
|
||||
str r0, [r2]
|
||||
_081957A0:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081957A8: .4byte 0x00000CDC
|
||||
_081957AC: .4byte 0x085D6924
|
||||
thumb_func_end sub_081956E4
|
||||
|
||||
thumb_func_start sub_081957B0
|
||||
sub_081957B0: @ 0x081957B0
|
||||
push {r4, lr}
|
||||
ldr r0, _081957EC
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _081957F0
|
||||
ldr r2, [r1]
|
||||
ldr r3, _081957F4
|
||||
adds r1, r2, r3
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x1e
|
||||
lsrs r1, r1, #0x1d
|
||||
lsrs r0, r0, #0xe
|
||||
adds r1, r1, r0
|
||||
ldr r0, _081957F8
|
||||
adds r2, r2, r0
|
||||
adds r2, r2, r1
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0x31
|
||||
bhi _08195800
|
||||
ldr r4, _081957FC
|
||||
bl Random
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #3
|
||||
bl __umodsi3
|
||||
strh r0, [r4]
|
||||
b _08195816
|
||||
.align 2, 0
|
||||
_081957EC: .4byte 0x000040CE
|
||||
_081957F0: .4byte 0x03005AF0
|
||||
_081957F4: .4byte 0x00000CA9
|
||||
_081957F8: .4byte 0x00000DC8
|
||||
_081957FC: .4byte 0x02037290
|
||||
_08195800:
|
||||
cmp r0, #0x62
|
||||
bhi _08195810
|
||||
ldr r1, _0819580C
|
||||
movs r0, #3
|
||||
b _08195814
|
||||
.align 2, 0
|
||||
_0819580C: .4byte 0x02037290
|
||||
_08195810:
|
||||
ldr r1, _0819581C
|
||||
movs r0, #4
|
||||
_08195814:
|
||||
strh r0, [r1]
|
||||
_08195816:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0819581C: .4byte 0x02037290
|
||||
thumb_func_end sub_081957B0
|
||||
|
||||
thumb_func_start sub_08195820
|
||||
sub_08195820: @ 0x08195820
|
||||
push {r4, lr}
|
||||
ldr r4, _0819584C
|
||||
bl Random
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #0xff
|
||||
bl __umodsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsrs r1, r1, #6
|
||||
strh r1, [r4]
|
||||
ldrh r0, [r4]
|
||||
movs r1, #0
|
||||
bl SetBattleFacilityTrainerGfxId
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0819584C: .4byte 0x0203886A
|
||||
thumb_func_end sub_08195820
|
||||
|
||||
thumb_func_start sub_08195850
|
||||
sub_08195850: @ 0x08195850
|
||||
push {lr}
|
||||
ldr r3, _08195870
|
||||
ldrh r1, [r3]
|
||||
ldr r0, _08195874
|
||||
cmp r1, r0
|
||||
bhi _0819586C
|
||||
ldr r2, _08195878
|
||||
movs r0, #0x34
|
||||
muls r1, r0, r1
|
||||
ldr r0, [r2]
|
||||
adds r0, r0, r1
|
||||
adds r0, #0xc
|
||||
bl FrontierSpeechToString
|
||||
_0819586C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08195870: .4byte 0x0203886A
|
||||
_08195874: .4byte 0x0000012B
|
||||
_08195878: .4byte 0x0203B954
|
||||
thumb_func_end sub_08195850
|
||||
|
||||
thumb_func_start sub_0819587C
|
||||
sub_0819587C: @ 0x0819587C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r4, _081958D0
|
||||
ldr r0, [r4]
|
||||
ldr r1, _081958D4
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1e
|
||||
lsrs r7, r0, #0x1e
|
||||
ldr r0, _081958D8
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x18
|
||||
ldr r4, [r4]
|
||||
lsls r1, r7, #1
|
||||
lsrs r5, r0, #0x16
|
||||
adds r1, r1, r5
|
||||
ldr r3, _081958DC
|
||||
adds r6, r4, r3
|
||||
adds r3, r6, r1
|
||||
ldrh r2, [r3]
|
||||
ldr r0, _081958E0
|
||||
cmp r2, r0
|
||||
bhi _081958CA
|
||||
adds r2, #1
|
||||
strh r2, [r3]
|
||||
movs r3, #0xdd
|
||||
lsls r3, r3, #4
|
||||
adds r0, r4, r3
|
||||
adds r1, r0, r1
|
||||
adds r0, r5, #0
|
||||
ldrh r3, [r1]
|
||||
cmp r7, r3
|
||||
bls _081958C0
|
||||
adds r0, #2
|
||||
_081958C0:
|
||||
adds r0, r6, r0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _081958CA
|
||||
strh r2, [r1]
|
||||
_081958CA:
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081958D0: .4byte 0x03005AF0
|
||||
_081958D4: .4byte 0x00000CA9
|
||||
_081958D8: .4byte 0x000040CE
|
||||
_081958DC: .4byte 0x00000DC8
|
||||
_081958E0: .4byte 0x0000270E
|
||||
thumb_func_end sub_0819587C
|
||||
|
||||
thumb_func_start sub_081958E4
|
||||
sub_081958E4: @ 0x081958E4
|
||||
push {r4, lr}
|
||||
ldr r4, _08195918
|
||||
ldr r0, [r4]
|
||||
ldr r1, _0819591C
|
||||
ldrh r1, [r1]
|
||||
ldr r2, _08195920
|
||||
adds r0, r0, r2
|
||||
strb r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #7
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r1, [r4]
|
||||
ldr r0, _08195924
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
movs r2, #4
|
||||
orrs r0, r2
|
||||
strb r0, [r1]
|
||||
bl sub_081A482C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08195918: .4byte 0x03005AF0
|
||||
_0819591C: .4byte 0x02037282
|
||||
_08195920: .4byte 0x00000CA8
|
||||
_08195924: .4byte 0x00000CA9
|
||||
thumb_func_end sub_081958E4
|
||||
|
||||
thumb_func_start sub_08195928
|
||||
sub_08195928: @ 0x08195928
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _08195970
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
ldr r4, _08195974
|
||||
ldr r2, [r4]
|
||||
ldr r3, _08195978
|
||||
adds r1, r2, r3
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x1e
|
||||
lsrs r1, r1, #0x1d
|
||||
lsrs r0, r0, #0xe
|
||||
adds r1, r1, r0
|
||||
ldr r0, _0819597C
|
||||
adds r2, r2, r0
|
||||
adds r2, r2, r1
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0x29
|
||||
bls _08195988
|
||||
bl Random
|
||||
ldr r4, [r4]
|
||||
ldr r5, _08195980
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #9
|
||||
bl __umodsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0xf
|
||||
adds r0, r0, r5
|
||||
ldrh r0, [r0]
|
||||
ldr r1, _08195984
|
||||
adds r4, r4, r1
|
||||
b _081959A6
|
||||
.align 2, 0
|
||||
_08195970: .4byte 0x000040CE
|
||||
_08195974: .4byte 0x03005AF0
|
||||
_08195978: .4byte 0x00000CA9
|
||||
_0819597C: .4byte 0x00000DC8
|
||||
_08195980: .4byte 0x085D6900
|
||||
_08195984: .4byte 0x00000DC6
|
||||
_08195988:
|
||||
bl Random
|
||||
ldr r4, [r4]
|
||||
ldr r5, _081959B0
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #6
|
||||
bl __umodsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0xf
|
||||
adds r0, r0, r5
|
||||
ldrh r0, [r0]
|
||||
ldr r3, _081959B4
|
||||
adds r4, r4, r3
|
||||
_081959A6:
|
||||
strh r0, [r4]
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081959B0: .4byte 0x085D68F4
|
||||
_081959B4: .4byte 0x00000DC6
|
||||
thumb_func_end sub_08195928
|
||||
|
||||
thumb_func_start sub_081959B8
|
||||
sub_081959B8: @ 0x081959B8
|
||||
push {r4, r5, lr}
|
||||
ldr r4, _081959F0
|
||||
ldr r0, [r4]
|
||||
ldr r1, _081959F4
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
movs r1, #1
|
||||
bl AddBagItem
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #1
|
||||
bne _08195A00
|
||||
ldr r0, [r4]
|
||||
ldr r1, _081959F4
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
ldr r1, _081959F8
|
||||
bl CopyItemName
|
||||
ldr r0, [r4]
|
||||
ldr r1, _081959F4
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
strh r1, [r0]
|
||||
ldr r0, _081959FC
|
||||
strh r5, [r0]
|
||||
b _08195A06
|
||||
.align 2, 0
|
||||
_081959F0: .4byte 0x03005AF0
|
||||
_081959F4: .4byte 0x00000DC6
|
||||
_081959F8: .4byte 0x02021C40
|
||||
_081959FC: .4byte 0x02037290
|
||||
_08195A00:
|
||||
ldr r1, _08195A0C
|
||||
movs r0, #0
|
||||
strh r0, [r1]
|
||||
_08195A06:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08195A0C: .4byte 0x02037290
|
||||
thumb_func_end sub_081959B8
|
||||
|
||||
3298
asm/battle_pike.s
Normal file
3298
asm/battle_pike.s
Normal file
File diff suppressed because it is too large
Load Diff
3801
asm/battle_pyramid.s
Normal file
3801
asm/battle_pyramid.s
Normal file
File diff suppressed because it is too large
Load Diff
4120
asm/battle_pyramid_bag.s
Normal file
4120
asm/battle_pyramid_bag.s
Normal file
File diff suppressed because it is too large
Load Diff
1321
asm/battle_records.s
Normal file
1321
asm/battle_records.s
Normal file
File diff suppressed because it is too large
Load Diff
33949
asm/battle_script_commands.s
Normal file
33949
asm/battle_script_commands.s
Normal file
File diff suppressed because it is too large
Load Diff
3824
asm/battle_setup.s
Normal file
3824
asm/battle_setup.s
Normal file
File diff suppressed because it is too large
Load Diff
1146
asm/battle_tent.s
Normal file
1146
asm/battle_tent.s
Normal file
File diff suppressed because it is too large
Load Diff
8307
asm/battle_tower.s
Normal file
8307
asm/battle_tower.s
Normal file
File diff suppressed because it is too large
Load Diff
10448
asm/battle_transition.s
Normal file
10448
asm/battle_transition.s
Normal file
File diff suppressed because it is too large
Load Diff
5092
asm/battle_tv.s
Normal file
5092
asm/battle_tv.s
Normal file
File diff suppressed because it is too large
Load Diff
13131
asm/battle_util.s
Normal file
13131
asm/battle_util.s
Normal file
File diff suppressed because it is too large
Load Diff
626
asm/battle_util2.s
Normal file
626
asm/battle_util2.s
Normal file
|
|
@ -0,0 +1,626 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start AllocateBattleResources
|
||||
AllocateBattleResources: @ 0x08056B38
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r5, _08056C10
|
||||
ldr r6, _08056C14
|
||||
ldr r0, [r6]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x13
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08056B4E
|
||||
bl InitTrainerHillBattleStruct
|
||||
_08056B4E:
|
||||
ldr r4, _08056C18
|
||||
movs r0, #0xa9
|
||||
lsls r0, r0, #2
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
movs r0, #0x20
|
||||
bl AllocZeroed
|
||||
str r0, [r5]
|
||||
movs r0, #0xa0
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1]
|
||||
movs r0, #0x10
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, #4]
|
||||
movs r0, #0x24
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, #8]
|
||||
movs r0, #0x24
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, #0xc]
|
||||
movs r0, #0xc
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, #0x10]
|
||||
movs r0, #0x1c
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, #0x14]
|
||||
movs r0, #0x54
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, #0x18]
|
||||
movs r0, #0x24
|
||||
bl AllocZeroed
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, #0x1c]
|
||||
ldr r4, _08056C1C
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #5
|
||||
adds r0, r5, #0
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
ldr r4, _08056C20
|
||||
adds r0, r5, #0
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
ldr r4, _08056C24
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
ldr r4, _08056C28
|
||||
adds r0, r5, #0
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
ldr r0, [r6]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x14
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08056C0A
|
||||
ldr r0, _08056C2C
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r2, _08056C30
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #5
|
||||
ldr r0, _08056C34
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r0, r0, r1
|
||||
bl CreateSecretBaseEnemyParty
|
||||
_08056C0A:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08056C10: .4byte 0x0202414C
|
||||
_08056C14: .4byte 0x02022C90
|
||||
_08056C18: .4byte 0x02024140
|
||||
_08056C1C: .4byte 0x02024144
|
||||
_08056C20: .4byte 0x02024148
|
||||
_08056C24: .4byte 0x02022D00
|
||||
_08056C28: .4byte 0x02022D04
|
||||
_08056C2C: .4byte 0x00004054
|
||||
_08056C30: .4byte 0x03005AEC
|
||||
_08056C34: .4byte 0x00001A9C
|
||||
thumb_func_end AllocateBattleResources
|
||||
|
||||
thumb_func_start FreeBattleResources
|
||||
FreeBattleResources: @ 0x08056C38
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r0, _08056CE8
|
||||
ldr r0, [r0]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x13
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08056C4C
|
||||
bl FreeDataStruct
|
||||
_08056C4C:
|
||||
ldr r6, _08056CEC
|
||||
ldr r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _08056CE0
|
||||
ldr r4, _08056CF0
|
||||
ldr r0, [r4]
|
||||
bl Free
|
||||
movs r5, #0
|
||||
str r5, [r4]
|
||||
ldr r0, [r6]
|
||||
ldr r0, [r0]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0]
|
||||
ldr r0, [r0, #4]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0, #4]
|
||||
ldr r0, [r0, #8]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0, #8]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0, #0xc]
|
||||
ldr r0, [r0, #0x10]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0, #0x10]
|
||||
ldr r0, [r0, #0x14]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0, #0x14]
|
||||
ldr r0, [r0, #0x18]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0, #0x18]
|
||||
ldr r0, [r0, #0x1c]
|
||||
bl Free
|
||||
ldr r0, [r6]
|
||||
str r5, [r0, #0x1c]
|
||||
bl Free
|
||||
str r5, [r6]
|
||||
ldr r4, _08056CF4
|
||||
ldr r0, [r4]
|
||||
bl Free
|
||||
str r5, [r4]
|
||||
ldr r4, _08056CF8
|
||||
ldr r0, [r4]
|
||||
bl Free
|
||||
str r5, [r4]
|
||||
ldr r4, _08056CFC
|
||||
ldr r0, [r4]
|
||||
bl Free
|
||||
str r5, [r4]
|
||||
ldr r4, _08056D00
|
||||
ldr r0, [r4]
|
||||
bl Free
|
||||
str r5, [r4]
|
||||
_08056CE0:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08056CE8: .4byte 0x02022C90
|
||||
_08056CEC: .4byte 0x0202414C
|
||||
_08056CF0: .4byte 0x02024140
|
||||
_08056CF4: .4byte 0x02024144
|
||||
_08056CF8: .4byte 0x02024148
|
||||
_08056CFC: .4byte 0x02022D00
|
||||
_08056D00: .4byte 0x02022D04
|
||||
thumb_func_end FreeBattleResources
|
||||
|
||||
thumb_func_start AdjustFriendshipOnBattleFaint
|
||||
AdjustFriendshipOnBattleFaint: @ 0x08056D04
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
ldr r0, _08056D48
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08056D50
|
||||
movs r0, #1
|
||||
bl GetBattlerAtPosition
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
movs r0, #3
|
||||
bl GetBattlerAtPosition
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
ldr r2, _08056D4C
|
||||
movs r0, #0x58
|
||||
adds r1, r3, #0
|
||||
muls r1, r0, r1
|
||||
adds r1, r1, r2
|
||||
adds r1, #0x2a
|
||||
muls r0, r4, r0
|
||||
adds r0, r0, r2
|
||||
adds r0, #0x2a
|
||||
ldrb r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
bls _08056D5A
|
||||
adds r4, r3, #0
|
||||
b _08056D5A
|
||||
.align 2, 0
|
||||
_08056D48: .4byte 0x02022C90
|
||||
_08056D4C: .4byte 0x02023D28
|
||||
_08056D50:
|
||||
movs r0, #1
|
||||
bl GetBattlerAtPosition
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
_08056D5A:
|
||||
ldr r2, _08056D9C
|
||||
movs r1, #0x58
|
||||
adds r0, r4, #0
|
||||
muls r0, r1, r0
|
||||
adds r0, r0, r2
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x2a
|
||||
adds r0, r5, #0
|
||||
muls r0, r1, r0
|
||||
adds r0, r0, r2
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x2a
|
||||
ldrb r0, [r3]
|
||||
ldrb r2, [r1]
|
||||
cmp r0, r2
|
||||
bls _08056DC8
|
||||
ldrb r1, [r1]
|
||||
subs r0, r0, r1
|
||||
cmp r0, #0x1d
|
||||
ble _08056DA8
|
||||
ldr r1, _08056DA0
|
||||
lsls r0, r5, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x64
|
||||
muls r0, r1, r0
|
||||
ldr r1, _08056DA4
|
||||
adds r0, r0, r1
|
||||
movs r1, #8
|
||||
bl AdjustFriendship
|
||||
b _08056DDE
|
||||
.align 2, 0
|
||||
_08056D9C: .4byte 0x02023D28
|
||||
_08056DA0: .4byte 0x02023D12
|
||||
_08056DA4: .4byte 0x02024190
|
||||
_08056DA8:
|
||||
ldr r1, _08056DC0
|
||||
lsls r0, r5, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x64
|
||||
muls r0, r1, r0
|
||||
ldr r1, _08056DC4
|
||||
adds r0, r0, r1
|
||||
movs r1, #6
|
||||
bl AdjustFriendship
|
||||
b _08056DDE
|
||||
.align 2, 0
|
||||
_08056DC0: .4byte 0x02023D12
|
||||
_08056DC4: .4byte 0x02024190
|
||||
_08056DC8:
|
||||
ldr r1, _08056DE4
|
||||
lsls r0, r5, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x64
|
||||
muls r0, r1, r0
|
||||
ldr r1, _08056DE8
|
||||
adds r0, r0, r1
|
||||
movs r1, #6
|
||||
bl AdjustFriendship
|
||||
_08056DDE:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08056DE4: .4byte 0x02023D12
|
||||
_08056DE8: .4byte 0x02024190
|
||||
thumb_func_end AdjustFriendshipOnBattleFaint
|
||||
|
||||
thumb_func_start sub_08056DEC
|
||||
sub_08056DEC: @ 0x08056DEC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r7, r1, #0x18
|
||||
adds r0, r4, #0
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
beq _08056E58
|
||||
movs r2, #0
|
||||
ldr r6, _08056E60
|
||||
lsls r3, r4, #1
|
||||
ldr r5, _08056E64
|
||||
ldr r4, _08056E68
|
||||
_08056E0E:
|
||||
adds r0, r2, r5
|
||||
ldr r1, [r4]
|
||||
adds r1, r2, r1
|
||||
adds r1, #0x60
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0]
|
||||
adds r2, #1
|
||||
cmp r2, #2
|
||||
ble _08056E0E
|
||||
adds r0, r3, r6
|
||||
ldrb r0, [r0]
|
||||
bl pokemon_order_func
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
adds r0, r7, #0
|
||||
bl pokemon_order_func
|
||||
adds r1, r0, #0
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
adds r0, r4, #0
|
||||
bl sub_081B8C50
|
||||
movs r2, #0
|
||||
ldr r4, _08056E68
|
||||
ldr r3, _08056E64
|
||||
_08056E46:
|
||||
ldr r0, [r4]
|
||||
adds r0, r2, r0
|
||||
adds r0, #0x60
|
||||
adds r1, r2, r3
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0]
|
||||
adds r2, #1
|
||||
cmp r2, #2
|
||||
ble _08056E46
|
||||
_08056E58:
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08056E60: .4byte 0x02023D12
|
||||
_08056E64: .4byte 0x0203CBCC
|
||||
_08056E68: .4byte 0x02024140
|
||||
thumb_func_end sub_08056DEC
|
||||
|
||||
thumb_func_start sub_08056E6C
|
||||
sub_08056E6C: @ 0x08056E6C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
mov sb, r0
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
ldr r1, _08056E88
|
||||
mov sl, r1
|
||||
b _08056E94
|
||||
.align 2, 0
|
||||
_08056E88: .4byte 0x02023FD6
|
||||
_08056E8C:
|
||||
mov r2, r8
|
||||
cmp r2, #0
|
||||
beq _08056E94
|
||||
b _08057016
|
||||
_08056E94:
|
||||
mov r1, sl
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #1
|
||||
bne _08056E9E
|
||||
b _08056FA0
|
||||
_08056E9E:
|
||||
cmp r0, #1
|
||||
ble _08056EA4
|
||||
b _0805700C
|
||||
_08056EA4:
|
||||
cmp r0, #0
|
||||
beq _08056EAA
|
||||
b _0805700C
|
||||
_08056EAA:
|
||||
ldr r6, _08056EFC
|
||||
movs r0, #0x58
|
||||
mov r5, sb
|
||||
muls r5, r0, r5
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x4c
|
||||
adds r4, r5, r0
|
||||
ldr r0, [r4]
|
||||
movs r7, #7
|
||||
ands r0, r7
|
||||
cmp r0, #0
|
||||
beq _08056F82
|
||||
mov r0, sb
|
||||
bl UproarWakeUpCheck
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08056F0C
|
||||
ldr r0, [r4]
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
ands r0, r1
|
||||
str r0, [r4]
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x50
|
||||
adds r2, r5, r2
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08056F00
|
||||
ands r0, r1
|
||||
str r0, [r2]
|
||||
bl BattleScriptPushCursor
|
||||
movs r0, #1
|
||||
mov r2, sl
|
||||
strb r0, [r2, #5]
|
||||
ldr r1, _08056F04
|
||||
ldr r0, _08056F08
|
||||
str r0, [r1]
|
||||
movs r0, #2
|
||||
mov r8, r0
|
||||
b _08056F82
|
||||
.align 2, 0
|
||||
_08056EFC: .4byte 0x02023D28
|
||||
_08056F00: .4byte 0xF7FFFFFF
|
||||
_08056F04: .4byte 0x02023EB8
|
||||
_08056F08: .4byte 0x082897A8
|
||||
_08056F0C:
|
||||
adds r0, r5, r6
|
||||
adds r0, #0x20
|
||||
ldrb r0, [r0]
|
||||
movs r2, #1
|
||||
cmp r0, #0x30
|
||||
bne _08056F1A
|
||||
movs r2, #2
|
||||
_08056F1A:
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, #0
|
||||
ands r0, r7
|
||||
cmp r0, r2
|
||||
bhs _08056F2E
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r1, r0
|
||||
str r1, [r4]
|
||||
b _08056F32
|
||||
_08056F2E:
|
||||
subs r0, r1, r2
|
||||
str r0, [r4]
|
||||
_08056F32:
|
||||
ldr r2, _08056F58
|
||||
movs r0, #0x58
|
||||
mov r1, sb
|
||||
muls r1, r0, r1
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x4c
|
||||
adds r0, r1, r0
|
||||
ldr r4, [r0]
|
||||
movs r0, #7
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
beq _08056F64
|
||||
ldr r1, _08056F5C
|
||||
ldr r0, _08056F60
|
||||
str r0, [r1]
|
||||
movs r1, #2
|
||||
mov r8, r1
|
||||
b _08056F82
|
||||
.align 2, 0
|
||||
_08056F58: .4byte 0x02023D28
|
||||
_08056F5C: .4byte 0x02023EB8
|
||||
_08056F60: .4byte 0x0828979B
|
||||
_08056F64:
|
||||
adds r2, #0x50
|
||||
adds r2, r1, r2
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08056F90
|
||||
ands r0, r1
|
||||
str r0, [r2]
|
||||
bl BattleScriptPushCursor
|
||||
ldr r0, _08056F94
|
||||
strb r4, [r0, #5]
|
||||
ldr r1, _08056F98
|
||||
ldr r0, _08056F9C
|
||||
str r0, [r1]
|
||||
movs r2, #2
|
||||
mov r8, r2
|
||||
_08056F82:
|
||||
ldr r1, _08056F94
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
mov sl, r1
|
||||
b _0805700C
|
||||
.align 2, 0
|
||||
_08056F90: .4byte 0xF7FFFFFF
|
||||
_08056F94: .4byte 0x02023FD6
|
||||
_08056F98: .4byte 0x02023EB8
|
||||
_08056F9C: .4byte 0x082897A8
|
||||
_08056FA0:
|
||||
ldr r1, _08056FD8
|
||||
movs r0, #0x58
|
||||
mov r2, sb
|
||||
muls r2, r0, r2
|
||||
adds r0, r2, #0
|
||||
adds r1, #0x4c
|
||||
adds r4, r0, r1
|
||||
ldr r0, [r4]
|
||||
movs r1, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08057004
|
||||
bl Random
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #5
|
||||
bl __umodsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r5, r0, #0x10
|
||||
cmp r5, #0
|
||||
beq _08056FE4
|
||||
ldr r1, _08056FDC
|
||||
ldr r0, _08056FE0
|
||||
str r0, [r1]
|
||||
b _08056FFC
|
||||
.align 2, 0
|
||||
_08056FD8: .4byte 0x02023D28
|
||||
_08056FDC: .4byte 0x02023EB8
|
||||
_08056FE0: .4byte 0x082897F2
|
||||
_08056FE4:
|
||||
ldr r0, [r4]
|
||||
movs r1, #0x21
|
||||
rsbs r1, r1, #0
|
||||
ands r0, r1
|
||||
str r0, [r4]
|
||||
bl BattleScriptPushCursor
|
||||
ldr r1, _08057054
|
||||
ldr r0, _08057058
|
||||
str r0, [r1]
|
||||
mov r0, sl
|
||||
strb r5, [r0, #5]
|
||||
_08056FFC:
|
||||
movs r1, #2
|
||||
mov r8, r1
|
||||
ldr r2, _0805705C
|
||||
mov sl, r2
|
||||
_08057004:
|
||||
mov r1, sl
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
_0805700C:
|
||||
mov r2, sl
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #2
|
||||
beq _08057016
|
||||
b _08056E8C
|
||||
_08057016:
|
||||
mov r0, r8
|
||||
cmp r0, #2
|
||||
bne _08057040
|
||||
ldr r4, _08057060
|
||||
mov r1, sb
|
||||
strb r1, [r4]
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x58
|
||||
muls r0, r1, r0
|
||||
ldr r1, _08057064
|
||||
adds r0, r0, r1
|
||||
str r0, [sp]
|
||||
movs r0, #0
|
||||
movs r1, #0x28
|
||||
movs r2, #0
|
||||
movs r3, #4
|
||||
bl BtlController_EmitSetMonData
|
||||
ldrb r0, [r4]
|
||||
bl MarkBattlerForControllerExec
|
||||
_08057040:
|
||||
mov r0, r8
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08057054: .4byte 0x02023EB8
|
||||
_08057058: .4byte 0x082897FF
|
||||
_0805705C: .4byte 0x02023FD6
|
||||
_08057060: .4byte 0x02023D08
|
||||
_08057064: .4byte 0x02023D74
|
||||
thumb_func_end sub_08056E6C
|
||||
|
||||
1083
asm/berry.s
Normal file
1083
asm/berry.s
Normal file
File diff suppressed because it is too large
Load Diff
9269
asm/berry_blender.s
Normal file
9269
asm/berry_blender.s
Normal file
File diff suppressed because it is too large
Load Diff
7556
asm/berry_crush.s
Normal file
7556
asm/berry_crush.s
Normal file
File diff suppressed because it is too large
Load Diff
450
asm/berry_fix_program.s
Normal file
450
asm/berry_fix_program.s
Normal file
|
|
@ -0,0 +1,450 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start berry_fix_text_update
|
||||
berry_fix_text_update: @ 0x081BEEE4
|
||||
push {r4, r5, lr}
|
||||
sub sp, #4
|
||||
adds r5, r0, #0
|
||||
ldr r0, _081BEEFC
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, #0x10]
|
||||
cmp r0, #0xff
|
||||
bls _081BEF04
|
||||
ldr r0, _081BEF00
|
||||
str r0, [r5, #0x1c]
|
||||
b _081BEF4C
|
||||
.align 2, 0
|
||||
_081BEEFC: .4byte 0x0203CBD8
|
||||
_081BEF00: .4byte 0x08007141
|
||||
_081BEF04:
|
||||
ldrh r1, [r5, #0x22]
|
||||
movs r2, #0x22
|
||||
ldrsh r0, [r5, r2]
|
||||
cmp r0, #0x5f
|
||||
ble _081BEF48
|
||||
movs r4, #0
|
||||
_081BEF10:
|
||||
ldr r0, _081BEF44
|
||||
ldr r3, [r0]
|
||||
ldr r0, [r3]
|
||||
ldrh r1, [r3, #0x10]
|
||||
adds r2, r1, #1
|
||||
strh r2, [r3, #0x10]
|
||||
lsls r1, r1, #0x10
|
||||
ldr r2, [r3, #0xc]
|
||||
lsrs r1, r1, #0xf
|
||||
adds r1, r1, r2
|
||||
ldrh r1, [r1]
|
||||
movs r2, #0
|
||||
str r2, [sp]
|
||||
movs r3, #0x10
|
||||
bl CB2_InitBerryFixProgram
|
||||
adds r0, r4, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #1
|
||||
bls _081BEF10
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
bl StartSpriteAnim
|
||||
b _081BEF4C
|
||||
.align 2, 0
|
||||
_081BEF44: .4byte 0x0203CBD8
|
||||
_081BEF48:
|
||||
adds r0, r1, #1
|
||||
strh r0, [r5, #0x22]
|
||||
_081BEF4C:
|
||||
add sp, #4
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end berry_fix_text_update
|
||||
|
||||
thumb_func_start CB2_InitBerryFixProgram
|
||||
CB2_InitBerryFixProgram: @ 0x081BEF54
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
str r0, [sp]
|
||||
mov sl, r1
|
||||
adds r6, r2, #0
|
||||
mov r8, r3
|
||||
ldr r0, [sp, #0x28]
|
||||
mov sb, r0
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
mov sl, r1
|
||||
lsls r6, r6, #0x18
|
||||
lsrs r6, r6, #0x18
|
||||
mov r0, r8
|
||||
lsls r0, r0, #0x18
|
||||
mov r8, r0
|
||||
lsrs r7, r0, #0x18
|
||||
mov r1, sb
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
mov sb, r1
|
||||
mov r0, sl
|
||||
adds r1, r7, #0
|
||||
bl __divsi3
|
||||
adds r5, r0, #0
|
||||
lsls r5, r5, #0x18
|
||||
lsrs r4, r5, #0x18
|
||||
ldr r3, _081BF01C
|
||||
strh r4, [r3]
|
||||
mov r0, sl
|
||||
adds r1, r7, #0
|
||||
str r3, [sp, #4]
|
||||
bl __modsi3
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
ldr r3, [sp, #4]
|
||||
strh r2, [r3, #2]
|
||||
movs r1, #7
|
||||
ands r4, r1
|
||||
ands r2, r1
|
||||
strh r4, [r3, #4]
|
||||
strh r2, [r3, #6]
|
||||
lsrs r0, r0, #0x1b
|
||||
lsrs r5, r5, #0x1b
|
||||
strh r0, [r3, #8]
|
||||
strh r5, [r3, #0xa]
|
||||
mov r1, r8
|
||||
lsrs r1, r1, #0x1b
|
||||
lsls r1, r1, #6
|
||||
mov r8, r1
|
||||
mov r1, r8
|
||||
muls r1, r5, r1
|
||||
lsls r0, r0, #6
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
strh r1, [r3, #0xc]
|
||||
lsls r4, r4, #3
|
||||
adds r4, r4, r2
|
||||
adds r1, r1, r4
|
||||
lsls r4, r1, #0x10
|
||||
lsrs r4, r4, #0x11
|
||||
strh r1, [r3, #0xe]
|
||||
movs r1, #1
|
||||
mov r0, sl
|
||||
ands r1, r0
|
||||
movs r2, #1
|
||||
eors r1, r2
|
||||
lsls r0, r1, #2
|
||||
lsls r6, r0
|
||||
eors r1, r2
|
||||
lsls r1, r1, #2
|
||||
movs r0, #0xf
|
||||
lsls r0, r1
|
||||
orrs r6, r0
|
||||
lsls r6, r6, #0x18
|
||||
lsrs r6, r6, #0x18
|
||||
mov r1, sb
|
||||
lsls r1, r1, #5
|
||||
mov sb, r1
|
||||
add sb, r4
|
||||
ldr r1, [sp]
|
||||
add r1, sb
|
||||
ldrb r0, [r1]
|
||||
ands r6, r0
|
||||
strb r6, [r1]
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081BF01C: .4byte 0x030012A0
|
||||
thumb_func_end CB2_InitBerryFixProgram
|
||||
|
||||
thumb_func_start berry_fix_bg_hide
|
||||
berry_fix_bg_hide: @ 0x081BF020
|
||||
push {r4, lr}
|
||||
sub sp, #4
|
||||
ldr r0, _081BF094
|
||||
bl DisableInterrupts
|
||||
movs r0, #1
|
||||
bl EnableInterrupts
|
||||
bl m4aSoundVSyncOff
|
||||
movs r0, #0
|
||||
bl SetVBlankCallback
|
||||
movs r4, #0
|
||||
str r4, [sp]
|
||||
ldr r0, _081BF098
|
||||
mov r1, sp
|
||||
str r1, [r0]
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #0x13
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _081BF09C
|
||||
str r1, [r0, #8]
|
||||
ldr r1, [r0, #8]
|
||||
str r4, [sp]
|
||||
mov r1, sp
|
||||
str r1, [r0]
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #0x13
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _081BF0A0
|
||||
str r1, [r0, #8]
|
||||
ldr r0, [r0, #8]
|
||||
bl ResetSpriteData
|
||||
bl ResetTasks
|
||||
bl ScanlineEffect_Stop
|
||||
ldr r0, _081BF0A4
|
||||
movs r1, #0
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r2, _081BF0A8
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
strh r4, [r1, #8]
|
||||
ldr r0, _081BF0AC
|
||||
bl SetMainCallback2
|
||||
add sp, #4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081BF094: .4byte 0x0000FFFF
|
||||
_081BF098: .4byte 0x040000D4
|
||||
_081BF09C: .4byte 0x85006000
|
||||
_081BF0A0: .4byte 0x85000100
|
||||
_081BF0A4: .4byte 0x081BF0BD
|
||||
_081BF0A8: .4byte 0x03005B60
|
||||
_081BF0AC: .4byte 0x081BF0B1
|
||||
thumb_func_end berry_fix_bg_hide
|
||||
|
||||
thumb_func_start berry_fix_text_print
|
||||
berry_fix_text_print: @ 0x081BF0B0
|
||||
push {lr}
|
||||
bl RunTasks
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end berry_fix_text_print
|
||||
|
||||
thumb_func_start berry_fix_main
|
||||
berry_fix_main: @ 0x081BF0BC
|
||||
push {r4, r5, r6, lr}
|
||||
sub sp, #4
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r2
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _081BF0E4
|
||||
adds r5, r0, r1
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0xa
|
||||
bls _081BF0D8
|
||||
b _081BF272
|
||||
_081BF0D8:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _081BF0E8
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_081BF0E4: .4byte 0x03005B68
|
||||
_081BF0E8: .4byte 0x081BF0EC
|
||||
_081BF0EC: @ jump table
|
||||
.4byte _081BF118 @ case 0
|
||||
.4byte _081BF122 @ case 1
|
||||
.4byte _081BF140 @ case 2
|
||||
.4byte _081BF272 @ case 3
|
||||
.4byte _081BF15C @ case 4
|
||||
.4byte _081BF194 @ case 5
|
||||
.4byte _081BF200 @ case 6
|
||||
.4byte _081BF236 @ case 7
|
||||
.4byte _081BF23A @ case 8
|
||||
.4byte _081BF258 @ case 9
|
||||
.4byte _081BF262 @ case 10
|
||||
_081BF118:
|
||||
movs r0, #5
|
||||
bl sub_081BAA20
|
||||
movs r0, #1
|
||||
b _081BF270
|
||||
_081BF122:
|
||||
ldr r0, _081BF13C
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _081BF130
|
||||
b _081BF272
|
||||
_081BF130:
|
||||
movs r0, #0
|
||||
bl sub_081BAA20
|
||||
movs r0, #2
|
||||
b _081BF270
|
||||
.align 2, 0
|
||||
_081BF13C: .4byte 0x03002360
|
||||
_081BF140:
|
||||
ldr r0, _081BF158
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _081BF14E
|
||||
b _081BF272
|
||||
_081BF14E:
|
||||
movs r0, #1
|
||||
bl sub_081BAA20
|
||||
movs r0, #4
|
||||
b _081BF270
|
||||
.align 2, 0
|
||||
_081BF158: .4byte 0x03002360
|
||||
_081BF15C:
|
||||
ldr r0, _081BF180
|
||||
ldr r1, _081BF184
|
||||
str r1, [r0]
|
||||
ldr r2, _081BF188
|
||||
ldr r0, _081BF18C
|
||||
subs r0, r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, _081BF190
|
||||
str r1, [r0, #0x28]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x4b
|
||||
movs r4, #0
|
||||
strb r4, [r1]
|
||||
bl GetGlyphWidthFont6
|
||||
strh r4, [r5, #2]
|
||||
movs r0, #5
|
||||
b _081BF270
|
||||
.align 2, 0
|
||||
_081BF180: .4byte 0x03006070
|
||||
_081BF184: .4byte 0x08912454
|
||||
_081BF188: .4byte 0x03006078
|
||||
_081BF18C: .4byte 0x089158E0
|
||||
_081BF190: .4byte 0x03006080
|
||||
_081BF194:
|
||||
ldr r0, _081BF1DC
|
||||
ldrb r6, [r0, #0x18]
|
||||
adds r4, r0, #0
|
||||
cmp r6, #0
|
||||
bne _081BF1EC
|
||||
ldr r0, [r4, #0x1c]
|
||||
ldr r1, _081BF1E0
|
||||
ands r0, r1
|
||||
cmp r0, r1
|
||||
bne _081BF1EC
|
||||
ldrh r0, [r5, #2]
|
||||
adds r0, #1
|
||||
strh r0, [r5, #2]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xb4
|
||||
ble _081BF1F0
|
||||
movs r0, #2
|
||||
bl sub_081BAA20
|
||||
ldr r0, _081BF1E4
|
||||
ldr r1, [r0]
|
||||
adds r1, #0xc0
|
||||
ldr r0, _081BF1E8
|
||||
ldr r2, [r0]
|
||||
subs r2, #0xc0
|
||||
movs r0, #1
|
||||
str r0, [sp]
|
||||
adds r0, r4, #0
|
||||
movs r3, #4
|
||||
bl sub_081BA808
|
||||
strh r6, [r5, #2]
|
||||
movs r0, #6
|
||||
b _081BF270
|
||||
.align 2, 0
|
||||
_081BF1DC: .4byte 0x03006080
|
||||
_081BF1E0: .4byte 0x00020200
|
||||
_081BF1E4: .4byte 0x03006070
|
||||
_081BF1E8: .4byte 0x03006078
|
||||
_081BF1EC:
|
||||
movs r0, #0
|
||||
strh r0, [r5, #2]
|
||||
_081BF1F0:
|
||||
adds r0, r4, #0
|
||||
bl sub_081BA3A8
|
||||
ldr r1, _081BF1FC
|
||||
str r0, [r1]
|
||||
b _081BF272
|
||||
.align 2, 0
|
||||
_081BF1FC: .4byte 0x03006074
|
||||
_081BF200:
|
||||
ldr r4, _081BF220
|
||||
adds r0, r4, #0
|
||||
bl sub_081BA3A8
|
||||
ldr r1, _081BF224
|
||||
str r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_081BA8CC
|
||||
cmp r0, #0
|
||||
beq _081BF228
|
||||
movs r0, #3
|
||||
bl sub_081BAA20
|
||||
movs r0, #7
|
||||
b _081BF270
|
||||
.align 2, 0
|
||||
_081BF220: .4byte 0x03006080
|
||||
_081BF224: .4byte 0x03006074
|
||||
_081BF228:
|
||||
ldrb r1, [r4, #0x1e]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _081BF272
|
||||
movs r0, #9
|
||||
b _081BF270
|
||||
_081BF236:
|
||||
movs r0, #8
|
||||
b _081BF270
|
||||
_081BF23A:
|
||||
ldr r0, _081BF254
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _081BF272
|
||||
adds r0, r2, #0
|
||||
bl DestroyTask
|
||||
bl DoSoftReset
|
||||
b _081BF272
|
||||
.align 2, 0
|
||||
_081BF254: .4byte 0x03002360
|
||||
_081BF258:
|
||||
movs r0, #4
|
||||
bl sub_081BAA20
|
||||
movs r0, #0xa
|
||||
b _081BF270
|
||||
_081BF262:
|
||||
ldr r0, _081BF27C
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _081BF272
|
||||
movs r0, #0
|
||||
_081BF270:
|
||||
strh r0, [r5]
|
||||
_081BF272:
|
||||
add sp, #4
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081BF27C: .4byte 0x03002360
|
||||
thumb_func_end berry_fix_main
|
||||
|
||||
389
asm/berry_powder.s
Normal file
389
asm/berry_powder.s
Normal file
|
|
@ -0,0 +1,389 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start DecryptBerryPowder
|
||||
DecryptBerryPowder: @ 0x08024434
|
||||
ldr r1, _08024444
|
||||
ldr r1, [r1]
|
||||
adds r1, #0xac
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r1]
|
||||
eors r0, r1
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08024444: .4byte 0x03005AF0
|
||||
thumb_func_end DecryptBerryPowder
|
||||
|
||||
thumb_func_start SetBerryPowder
|
||||
SetBerryPowder: @ 0x08024448
|
||||
ldr r2, _08024458
|
||||
ldr r2, [r2]
|
||||
adds r2, #0xac
|
||||
ldr r2, [r2]
|
||||
eors r2, r1
|
||||
str r2, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08024458: .4byte 0x03005AF0
|
||||
thumb_func_end SetBerryPowder
|
||||
|
||||
thumb_func_start ApplyNewEncryptionKeyToBerryPowder
|
||||
ApplyNewEncryptionKeyToBerryPowder: @ 0x0802445C
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08024474
|
||||
ldr r0, [r0]
|
||||
movs r2, #0xfa
|
||||
lsls r2, r2, #1
|
||||
adds r0, r0, r2
|
||||
bl ApplyNewEncryptionKeyToWord
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08024474: .4byte 0x03005AF0
|
||||
thumb_func_end ApplyNewEncryptionKeyToBerryPowder
|
||||
|
||||
thumb_func_start HasEnoughBerryPowder_
|
||||
HasEnoughBerryPowder_: @ 0x08024478
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08024494
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xfa
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
bl DecryptBerryPowder
|
||||
cmp r0, r4
|
||||
blo _08024498
|
||||
movs r0, #1
|
||||
b _0802449A
|
||||
.align 2, 0
|
||||
_08024494: .4byte 0x03005AF0
|
||||
_08024498:
|
||||
movs r0, #0
|
||||
_0802449A:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end HasEnoughBerryPowder_
|
||||
|
||||
thumb_func_start HasEnoughBerryPowder
|
||||
HasEnoughBerryPowder: @ 0x080244A0
|
||||
push {lr}
|
||||
ldr r0, _080244BC
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xfa
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
bl DecryptBerryPowder
|
||||
ldr r1, _080244C0
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
blo _080244C4
|
||||
movs r0, #1
|
||||
b _080244C6
|
||||
.align 2, 0
|
||||
_080244BC: .4byte 0x03005AF0
|
||||
_080244C0: .4byte 0x02037280
|
||||
_080244C4:
|
||||
movs r0, #0
|
||||
_080244C6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end HasEnoughBerryPowder
|
||||
|
||||
thumb_func_start GiveBerryPowder
|
||||
GiveBerryPowder: @ 0x080244CC
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080244F4
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xfa
|
||||
lsls r1, r1, #1
|
||||
adds r5, r0, r1
|
||||
adds r0, r5, #0
|
||||
bl DecryptBerryPowder
|
||||
adds r1, r0, r4
|
||||
ldr r2, _080244F8
|
||||
cmp r1, r2
|
||||
bhi _080244FC
|
||||
adds r0, r5, #0
|
||||
bl SetBerryPowder
|
||||
movs r0, #1
|
||||
b _08024506
|
||||
.align 2, 0
|
||||
_080244F4: .4byte 0x03005AF0
|
||||
_080244F8: .4byte 0x0001869F
|
||||
_080244FC:
|
||||
adds r0, r5, #0
|
||||
adds r1, r2, #0
|
||||
bl SetBerryPowder
|
||||
movs r0, #0
|
||||
_08024506:
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end GiveBerryPowder
|
||||
|
||||
thumb_func_start TakeBerryPowder_
|
||||
TakeBerryPowder_: @ 0x0802450C
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _0802453C
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xfa
|
||||
lsls r1, r1, #1
|
||||
adds r4, r0, r1
|
||||
adds r0, r5, #0
|
||||
bl HasEnoughBerryPowder_
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08024540
|
||||
adds r0, r4, #0
|
||||
bl DecryptBerryPowder
|
||||
adds r1, r0, #0
|
||||
subs r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl SetBerryPowder
|
||||
movs r0, #1
|
||||
b _08024542
|
||||
.align 2, 0
|
||||
_0802453C: .4byte 0x03005AF0
|
||||
_08024540:
|
||||
movs r0, #0
|
||||
_08024542:
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end TakeBerryPowder_
|
||||
|
||||
thumb_func_start TakeBerryPowder
|
||||
TakeBerryPowder: @ 0x08024548
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _08024578
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xfa
|
||||
lsls r1, r1, #1
|
||||
adds r4, r0, r1
|
||||
ldr r5, _0802457C
|
||||
ldrh r0, [r5]
|
||||
bl HasEnoughBerryPowder_
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08024580
|
||||
adds r0, r4, #0
|
||||
bl DecryptBerryPowder
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r5]
|
||||
subs r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
bl SetBerryPowder
|
||||
movs r0, #1
|
||||
b _08024582
|
||||
.align 2, 0
|
||||
_08024578: .4byte 0x03005AF0
|
||||
_0802457C: .4byte 0x02037280
|
||||
_08024580:
|
||||
movs r0, #0
|
||||
_08024582:
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end TakeBerryPowder
|
||||
|
||||
thumb_func_start GetBerryPowder
|
||||
GetBerryPowder: @ 0x08024588
|
||||
push {lr}
|
||||
ldr r0, _0802459C
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xfa
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
bl DecryptBerryPowder
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0802459C: .4byte 0x03005AF0
|
||||
thumb_func_end GetBerryPowder
|
||||
|
||||
thumb_func_start PrintBerryPowderAmount
|
||||
PrintBerryPowderAmount: @ 0x080245A0
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6}
|
||||
sub sp, #0xc
|
||||
adds r6, r0, #0
|
||||
mov r8, r2
|
||||
adds r4, r3, #0
|
||||
ldr r5, [sp, #0x24]
|
||||
lsls r6, r6, #0x18
|
||||
lsrs r6, r6, #0x18
|
||||
mov r0, r8
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
mov r8, r0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
lsls r5, r5, #0x18
|
||||
lsrs r5, r5, #0x18
|
||||
ldr r0, _080245F4
|
||||
mov sb, r0
|
||||
movs r2, #1
|
||||
movs r3, #5
|
||||
bl ConvertIntToDecimalStringN
|
||||
str r4, [sp]
|
||||
str r5, [sp, #4]
|
||||
movs r0, #0
|
||||
str r0, [sp, #8]
|
||||
adds r0, r6, #0
|
||||
movs r1, #0
|
||||
mov r2, sb
|
||||
mov r3, r8
|
||||
bl AddTextPrinterParameterized
|
||||
add sp, #0xc
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080245F4: .4byte 0x02021C40
|
||||
thumb_func_end PrintBerryPowderAmount
|
||||
|
||||
thumb_func_start DrawPlayerPowderAmount
|
||||
DrawPlayerPowderAmount: @ 0x080245F8
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
sub sp, #0xc
|
||||
adds r6, r0, #0
|
||||
adds r4, r1, #0
|
||||
adds r5, r2, #0
|
||||
mov r8, r3
|
||||
lsls r6, r6, #0x18
|
||||
lsrs r6, r6, #0x18
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
lsls r5, r5, #0x18
|
||||
lsrs r5, r5, #0x18
|
||||
adds r0, r6, #0
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
adds r3, r5, #0
|
||||
bl DrawStdFrameWithCustomTileAndPalette
|
||||
ldr r2, _08024650
|
||||
movs r4, #0
|
||||
str r4, [sp]
|
||||
movs r0, #0xff
|
||||
str r0, [sp, #4]
|
||||
str r4, [sp, #8]
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
movs r3, #0
|
||||
bl AddTextPrinterParameterized
|
||||
str r4, [sp]
|
||||
adds r0, r6, #0
|
||||
mov r1, r8
|
||||
movs r2, #0x10
|
||||
movs r3, #0xc
|
||||
bl PrintBerryPowderAmount
|
||||
add sp, #0xc
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08024650: .4byte 0x085CCCEE
|
||||
thumb_func_end DrawPlayerPowderAmount
|
||||
|
||||
thumb_func_start PrintPlayerBerryPowderAmount
|
||||
PrintPlayerBerryPowderAmount: @ 0x08024654
|
||||
push {lr}
|
||||
sub sp, #4
|
||||
bl GetBerryPowder
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08024674
|
||||
ldrb r0, [r0]
|
||||
movs r2, #0
|
||||
str r2, [sp]
|
||||
movs r2, #0x10
|
||||
movs r3, #0xc
|
||||
bl PrintBerryPowderAmount
|
||||
add sp, #4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08024674: .4byte 0x02022948
|
||||
thumb_func_end PrintPlayerBerryPowderAmount
|
||||
|
||||
thumb_func_start DisplayBerryPowderVendorMenu
|
||||
DisplayBerryPowderVendorMenu: @ 0x08024678
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0x18
|
||||
movs r0, #7
|
||||
str r0, [sp]
|
||||
movs r0, #3
|
||||
str r0, [sp, #4]
|
||||
movs r0, #0xf
|
||||
str r0, [sp, #8]
|
||||
movs r0, #0x20
|
||||
str r0, [sp, #0xc]
|
||||
add r0, sp, #0x10
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
movs r3, #1
|
||||
bl SetWindowTemplateFields
|
||||
ldr r4, _080246D8
|
||||
add r0, sp, #0x10
|
||||
bl AddWindow
|
||||
strb r0, [r4]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #0
|
||||
bl FillWindowPixelBuffer
|
||||
ldrb r0, [r4]
|
||||
bl PutWindowTilemap
|
||||
ldrb r0, [r4]
|
||||
ldr r5, _080246DC
|
||||
adds r1, r5, #0
|
||||
movs r2, #0xd0
|
||||
bl LoadUserWindowBorderGfx_
|
||||
ldrb r4, [r4]
|
||||
bl GetBerryPowder
|
||||
adds r3, r0, #0
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
movs r2, #0xd
|
||||
bl DrawPlayerPowderAmount
|
||||
add sp, #0x18
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080246D8: .4byte 0x02022948
|
||||
_080246DC: .4byte 0x0000021D
|
||||
thumb_func_end DisplayBerryPowderVendorMenu
|
||||
|
||||
thumb_func_start RemoveBerryPowderVendorMenu
|
||||
RemoveBerryPowderVendorMenu: @ 0x080246E0
|
||||
push {r4, lr}
|
||||
ldr r4, _08024700
|
||||
ldrb r0, [r4]
|
||||
bl ClearWindowTilemap
|
||||
ldrb r0, [r4]
|
||||
movs r1, #1
|
||||
bl ClearStdWindowAndFrameToTransparent
|
||||
ldrb r0, [r4]
|
||||
bl RemoveWindow
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08024700: .4byte 0x02022948
|
||||
thumb_func_end RemoveBerryPowderVendorMenu
|
||||
|
||||
2333
asm/berry_tag_screen.s
Normal file
2333
asm/berry_tag_screen.s
Normal file
File diff suppressed because it is too large
Load Diff
2296
asm/bike.s
Normal file
2296
asm/bike.s
Normal file
File diff suppressed because it is too large
Load Diff
261
asm/birch_pc.s
Normal file
261
asm/birch_pc.s
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start ScriptGetPokedexInfo
|
||||
ScriptGetPokedexInfo: @ 0x08137ABC
|
||||
push {lr}
|
||||
ldr r0, _08137AD8
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08137AE0
|
||||
movs r0, #0
|
||||
bl GetHoennPokedexCount
|
||||
ldr r1, _08137ADC
|
||||
strh r0, [r1]
|
||||
movs r0, #1
|
||||
bl GetHoennPokedexCount
|
||||
b _08137AF0
|
||||
.align 2, 0
|
||||
_08137AD8: .4byte 0x02037280
|
||||
_08137ADC: .4byte 0x02037282
|
||||
_08137AE0:
|
||||
movs r0, #0
|
||||
bl GetNationalPokedexCount
|
||||
ldr r1, _08137B00
|
||||
strh r0, [r1]
|
||||
movs r0, #1
|
||||
bl GetNationalPokedexCount
|
||||
_08137AF0:
|
||||
ldr r1, _08137B04
|
||||
strh r0, [r1]
|
||||
bl IsNationalPokedexEnabled
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08137B00: .4byte 0x02037282
|
||||
_08137B04: .4byte 0x02037284
|
||||
thumb_func_end ScriptGetPokedexInfo
|
||||
|
||||
thumb_func_start GetPokedexRatingText
|
||||
GetPokedexRatingText: @ 0x08137B08
|
||||
push {lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #9
|
||||
bhi _08137B14
|
||||
b _08137C6C
|
||||
_08137B14:
|
||||
cmp r0, #0x13
|
||||
bhi _08137B20
|
||||
ldr r0, _08137B1C
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B1C: .4byte 0x08262E81
|
||||
_08137B20:
|
||||
cmp r0, #0x1d
|
||||
bhi _08137B2C
|
||||
ldr r0, _08137B28
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B28: .4byte 0x08262EA6
|
||||
_08137B2C:
|
||||
cmp r0, #0x27
|
||||
bhi _08137B38
|
||||
ldr r0, _08137B34
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B34: .4byte 0x08262ECF
|
||||
_08137B38:
|
||||
cmp r0, #0x31
|
||||
bhi _08137B44
|
||||
ldr r0, _08137B40
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B40: .4byte 0x08262EF5
|
||||
_08137B44:
|
||||
cmp r0, #0x3b
|
||||
bhi _08137B50
|
||||
ldr r0, _08137B4C
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B4C: .4byte 0x08262F18
|
||||
_08137B50:
|
||||
cmp r0, #0x45
|
||||
bhi _08137B5C
|
||||
ldr r0, _08137B58
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B58: .4byte 0x08262F3F
|
||||
_08137B5C:
|
||||
cmp r0, #0x4f
|
||||
bhi _08137B68
|
||||
ldr r0, _08137B64
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B64: .4byte 0x08262F61
|
||||
_08137B68:
|
||||
cmp r0, #0x59
|
||||
bhi _08137B74
|
||||
ldr r0, _08137B70
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B70: .4byte 0x08262F8A
|
||||
_08137B74:
|
||||
cmp r0, #0x63
|
||||
bhi _08137B80
|
||||
ldr r0, _08137B7C
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B7C: .4byte 0x08262FAD
|
||||
_08137B80:
|
||||
cmp r0, #0x6d
|
||||
bhi _08137B8C
|
||||
ldr r0, _08137B88
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B88: .4byte 0x08262FE1
|
||||
_08137B8C:
|
||||
cmp r0, #0x77
|
||||
bhi _08137B98
|
||||
ldr r0, _08137B94
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137B94: .4byte 0x0826300C
|
||||
_08137B98:
|
||||
cmp r0, #0x81
|
||||
bhi _08137BA4
|
||||
ldr r0, _08137BA0
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137BA0: .4byte 0x08263032
|
||||
_08137BA4:
|
||||
cmp r0, #0x8b
|
||||
bhi _08137BB0
|
||||
ldr r0, _08137BAC
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137BAC: .4byte 0x08263050
|
||||
_08137BB0:
|
||||
cmp r0, #0x95
|
||||
bhi _08137BBC
|
||||
ldr r0, _08137BB8
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137BB8: .4byte 0x08263072
|
||||
_08137BBC:
|
||||
cmp r0, #0x9f
|
||||
bhi _08137BC8
|
||||
ldr r0, _08137BC4
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137BC4: .4byte 0x08263095
|
||||
_08137BC8:
|
||||
cmp r0, #0xa9
|
||||
bhi _08137BD4
|
||||
ldr r0, _08137BD0
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137BD0: .4byte 0x082630C7
|
||||
_08137BD4:
|
||||
cmp r0, #0xb3
|
||||
bhi _08137BE0
|
||||
ldr r0, _08137BDC
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137BDC: .4byte 0x082630F0
|
||||
_08137BE0:
|
||||
cmp r0, #0xbd
|
||||
bhi _08137BEC
|
||||
ldr r0, _08137BE8
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137BE8: .4byte 0x0826310C
|
||||
_08137BEC:
|
||||
cmp r0, #0xc7
|
||||
bls _08137C5A
|
||||
cmp r0, #0xc8
|
||||
bne _08137C28
|
||||
ldr r0, _08137C24
|
||||
bl HoennToNationalOrder
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #1
|
||||
bl GetSetPokedexFlag
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08137C5A
|
||||
movs r0, #0xcd
|
||||
lsls r0, r0, #1
|
||||
bl HoennToNationalOrder
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #1
|
||||
bl GetSetPokedexFlag
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08137C5A
|
||||
b _08137C74
|
||||
.align 2, 0
|
||||
_08137C24: .4byte 0x00000199
|
||||
_08137C28:
|
||||
cmp r0, #0xc9
|
||||
bne _08137C68
|
||||
ldr r0, _08137C60
|
||||
bl HoennToNationalOrder
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #1
|
||||
bl GetSetPokedexFlag
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08137C74
|
||||
movs r0, #0xcd
|
||||
lsls r0, r0, #1
|
||||
bl HoennToNationalOrder
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #1
|
||||
bl GetSetPokedexFlag
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08137C74
|
||||
_08137C5A:
|
||||
ldr r0, _08137C64
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137C60: .4byte 0x00000199
|
||||
_08137C64: .4byte 0x0826312D
|
||||
_08137C68:
|
||||
cmp r0, #0xca
|
||||
beq _08137C74
|
||||
_08137C6C:
|
||||
ldr r0, _08137C70
|
||||
b _08137C76
|
||||
.align 2, 0
|
||||
_08137C70: .4byte 0x08262E5F
|
||||
_08137C74:
|
||||
ldr r0, _08137C7C
|
||||
_08137C76:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08137C7C: .4byte 0x0826314F
|
||||
thumb_func_end GetPokedexRatingText
|
||||
|
||||
thumb_func_start ShowPokedexRatingMessage
|
||||
ShowPokedexRatingMessage: @ 0x08137C80
|
||||
push {lr}
|
||||
ldr r0, _08137C94
|
||||
ldrh r0, [r0]
|
||||
bl GetPokedexRatingText
|
||||
bl ShowFieldMessage
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08137C94: .4byte 0x02037280
|
||||
thumb_func_end ShowPokedexRatingMessage
|
||||
|
||||
812
asm/blit.s
Normal file
812
asm/blit.s
Normal file
|
|
@ -0,0 +1,812 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start BlitBitmapRect4BitWithoutColorKey
|
||||
BlitBitmapRect4BitWithoutColorKey: @ 0x08002AB8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, #0x14
|
||||
ldr r4, [sp, #0x2c]
|
||||
ldr r5, [sp, #0x30]
|
||||
ldr r6, [sp, #0x34]
|
||||
ldr r7, [sp, #0x38]
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r2, r2, #0x10
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r3, r3, #0x10
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
lsls r5, r5, #0x10
|
||||
lsrs r5, r5, #0x10
|
||||
lsls r6, r6, #0x10
|
||||
lsrs r6, r6, #0x10
|
||||
lsls r7, r7, #0x10
|
||||
lsrs r7, r7, #0x10
|
||||
str r4, [sp]
|
||||
str r5, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r7, [sp, #0xc]
|
||||
movs r4, #0xff
|
||||
str r4, [sp, #0x10]
|
||||
bl BlitBitmapRect4Bit
|
||||
add sp, #0x14
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end BlitBitmapRect4BitWithoutColorKey
|
||||
|
||||
thumb_func_start BlitBitmapRect4Bit
|
||||
BlitBitmapRect4Bit: @ 0x08002AFC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x2c
|
||||
str r0, [sp]
|
||||
str r1, [sp, #4]
|
||||
ldr r0, [sp, #0x4c]
|
||||
ldr r1, [sp, #0x50]
|
||||
ldr r4, [sp, #0x54]
|
||||
ldr r5, [sp, #0x58]
|
||||
ldr r6, [sp, #0x5c]
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r2, r2, #0x10
|
||||
str r2, [sp, #8]
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r7, r3, #0x10
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
str r0, [sp, #0xc]
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
mov sb, r1
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
lsls r5, r5, #0x10
|
||||
lsrs r5, r5, #0x10
|
||||
lsls r6, r6, #0x18
|
||||
lsrs r6, r6, #0x18
|
||||
str r6, [sp, #0x10]
|
||||
ldr r0, [sp, #4]
|
||||
ldrh r3, [r0, #4]
|
||||
ldr r1, [sp, #0xc]
|
||||
subs r0, r3, r1
|
||||
adds r2, r2, r4
|
||||
mov r8, r2
|
||||
cmp r0, r4
|
||||
bge _08002B50
|
||||
ldr r2, [sp, #8]
|
||||
adds r0, r0, r2
|
||||
mov r8, r0
|
||||
_08002B50:
|
||||
ldr r4, [sp, #4]
|
||||
ldrh r0, [r4, #6]
|
||||
mov r1, sb
|
||||
subs r0, r0, r1
|
||||
adds r2, r5, r7
|
||||
str r2, [sp, #0x14]
|
||||
cmp r0, r5
|
||||
bge _08002B64
|
||||
adds r0, r0, r7
|
||||
str r0, [sp, #0x14]
|
||||
_08002B64:
|
||||
ldr r4, [sp]
|
||||
ldrh r1, [r4, #4]
|
||||
movs r2, #7
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
adds r1, r1, r0
|
||||
asrs r1, r1, #3
|
||||
str r1, [sp, #0x18]
|
||||
adds r0, r3, #0
|
||||
ands r0, r2
|
||||
adds r0, r3, r0
|
||||
asrs r0, r0, #3
|
||||
str r0, [sp, #0x1c]
|
||||
ldr r0, [sp, #0x10]
|
||||
cmp r0, #0xff
|
||||
bne _08002C22
|
||||
adds r3, r7, #0
|
||||
mov r1, sb
|
||||
ldr r2, [sp, #0x14]
|
||||
cmp r3, r2
|
||||
blt _08002B90
|
||||
b _08002CCA
|
||||
_08002B90:
|
||||
ldr r5, [sp, #8]
|
||||
ldr r6, [sp, #0xc]
|
||||
adds r4, r3, #1
|
||||
str r4, [sp, #0x24]
|
||||
adds r0, r1, #1
|
||||
str r0, [sp, #0x28]
|
||||
cmp r5, r8
|
||||
bge _08002C16
|
||||
movs r7, #3
|
||||
asrs r0, r3, #3
|
||||
ldr r2, [sp, #0x18]
|
||||
muls r0, r2, r0
|
||||
lsls r0, r0, #5
|
||||
mov sl, r0
|
||||
lsls r0, r3, #0x1d
|
||||
lsrs r0, r0, #0x1b
|
||||
mov sb, r0
|
||||
asrs r0, r1, #3
|
||||
ldr r4, [sp, #0x1c]
|
||||
muls r0, r4, r0
|
||||
lsls r0, r0, #5
|
||||
mov ip, r0
|
||||
lsls r0, r1, #0x1d
|
||||
lsrs r3, r0, #0x1b
|
||||
_08002BC0:
|
||||
asrs r0, r5, #1
|
||||
ands r0, r7
|
||||
ldr r2, [sp]
|
||||
ldr r1, [r2]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r5, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
add r1, sl
|
||||
mov r4, sb
|
||||
adds r2, r1, r4
|
||||
asrs r0, r6, #1
|
||||
ands r0, r7
|
||||
ldr r4, [sp, #4]
|
||||
ldr r1, [r4]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r6, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
add r1, ip
|
||||
adds r4, r1, r3
|
||||
ldrb r2, [r2]
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
lsls r0, r0, #2
|
||||
asrs r2, r0
|
||||
movs r0, #0xf
|
||||
ands r2, r0
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
lsls r1, r0, #2
|
||||
lsls r2, r1
|
||||
movs r0, #0xf0
|
||||
asrs r0, r1
|
||||
ldrb r1, [r4]
|
||||
ands r0, r1
|
||||
orrs r2, r0
|
||||
strb r2, [r4]
|
||||
adds r5, #1
|
||||
adds r6, #1
|
||||
cmp r5, r8
|
||||
blt _08002BC0
|
||||
_08002C16:
|
||||
ldr r3, [sp, #0x24]
|
||||
ldr r1, [sp, #0x28]
|
||||
ldr r2, [sp, #0x14]
|
||||
cmp r3, r2
|
||||
blt _08002B90
|
||||
b _08002CCA
|
||||
_08002C22:
|
||||
adds r3, r7, #0
|
||||
mov r1, sb
|
||||
ldr r4, [sp, #0x14]
|
||||
cmp r3, r4
|
||||
bge _08002CCA
|
||||
_08002C2C:
|
||||
ldr r5, [sp, #8]
|
||||
ldr r6, [sp, #0xc]
|
||||
adds r0, r3, #1
|
||||
str r0, [sp, #0x24]
|
||||
adds r2, r1, #1
|
||||
str r2, [sp, #0x28]
|
||||
cmp r5, r8
|
||||
bge _08002CC0
|
||||
movs r4, #3
|
||||
mov sb, r4
|
||||
asrs r0, r3, #3
|
||||
ldr r2, [sp, #0x18]
|
||||
muls r0, r2, r0
|
||||
lsls r0, r0, #5
|
||||
str r0, [sp, #0x20]
|
||||
lsls r0, r3, #0x1d
|
||||
lsrs r0, r0, #0x1b
|
||||
mov sl, r0
|
||||
movs r3, #1
|
||||
asrs r0, r1, #3
|
||||
ldr r4, [sp, #0x1c]
|
||||
muls r0, r4, r0
|
||||
lsls r0, r0, #5
|
||||
mov ip, r0
|
||||
lsls r0, r1, #0x1d
|
||||
lsrs r7, r0, #0x1b
|
||||
_08002C60:
|
||||
asrs r0, r5, #1
|
||||
mov r1, sb
|
||||
ands r0, r1
|
||||
ldr r2, [sp]
|
||||
ldr r1, [r2]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r5, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
ldr r4, [sp, #0x20]
|
||||
adds r1, r1, r4
|
||||
mov r0, sl
|
||||
adds r2, r1, r0
|
||||
asrs r0, r6, #1
|
||||
mov r1, sb
|
||||
ands r0, r1
|
||||
ldr r4, [sp, #4]
|
||||
ldr r1, [r4]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r6, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
add r1, ip
|
||||
adds r4, r1, r7
|
||||
ldrb r2, [r2]
|
||||
adds r0, r5, #0
|
||||
ands r0, r3
|
||||
lsls r0, r0, #2
|
||||
asrs r2, r0
|
||||
movs r0, #0xf
|
||||
ands r2, r0
|
||||
ldr r0, [sp, #0x10]
|
||||
cmp r2, r0
|
||||
beq _08002CB8
|
||||
adds r0, r6, #0
|
||||
ands r0, r3
|
||||
lsls r1, r0, #2
|
||||
lsls r2, r1
|
||||
movs r0, #0xf0
|
||||
asrs r0, r1
|
||||
ldrb r1, [r4]
|
||||
ands r0, r1
|
||||
orrs r2, r0
|
||||
strb r2, [r4]
|
||||
_08002CB8:
|
||||
adds r5, #1
|
||||
adds r6, #1
|
||||
cmp r5, r8
|
||||
blt _08002C60
|
||||
_08002CC0:
|
||||
ldr r3, [sp, #0x24]
|
||||
ldr r1, [sp, #0x28]
|
||||
ldr r2, [sp, #0x14]
|
||||
cmp r3, r2
|
||||
blt _08002C2C
|
||||
_08002CCA:
|
||||
add sp, #0x2c
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end BlitBitmapRect4Bit
|
||||
|
||||
thumb_func_start FillBitmapRect4Bit
|
||||
FillBitmapRect4Bit: @ 0x08002CDC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
mov sb, r0
|
||||
ldr r0, [sp, #0x24]
|
||||
ldr r4, [sp, #0x28]
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
mov sl, r1
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r2, r2, #0x10
|
||||
adds r5, r2, #0
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r3, r3, #0x10
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r7, r4, #0x18
|
||||
adds r4, r1, r3
|
||||
mov r3, sb
|
||||
ldrh r1, [r3, #4]
|
||||
cmp r4, r1
|
||||
ble _08002D12
|
||||
adds r4, r1, #0
|
||||
_08002D12:
|
||||
adds r2, r2, r0
|
||||
mov ip, r2
|
||||
mov r2, sb
|
||||
ldrh r0, [r2, #6]
|
||||
cmp ip, r0
|
||||
ble _08002D20
|
||||
mov ip, r0
|
||||
_08002D20:
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
adds r0, r1, r0
|
||||
asrs r0, r0, #3
|
||||
str r0, [sp]
|
||||
adds r1, r5, #0
|
||||
cmp r1, ip
|
||||
bge _08002D88
|
||||
_08002D30:
|
||||
mov r3, sl
|
||||
adds r0, r1, #1
|
||||
mov r8, r0
|
||||
cmp r3, r4
|
||||
bge _08002D82
|
||||
asrs r0, r1, #3
|
||||
ldr r2, [sp]
|
||||
muls r0, r2, r0
|
||||
lsls r6, r0, #5
|
||||
lsls r0, r1, #0x1d
|
||||
lsrs r5, r0, #0x1b
|
||||
_08002D46:
|
||||
asrs r2, r3, #1
|
||||
movs r0, #3
|
||||
ands r2, r0
|
||||
mov r0, sb
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r2
|
||||
asrs r0, r3, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
adds r1, r1, r6
|
||||
adds r2, r1, r5
|
||||
movs r0, #1
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08002D72
|
||||
ldrb r0, [r2]
|
||||
movs r1, #0xf
|
||||
ands r1, r0
|
||||
lsls r0, r7, #4
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _08002D7C
|
||||
_08002D72:
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0xf0
|
||||
ands r0, r1
|
||||
orrs r0, r7
|
||||
strb r0, [r2]
|
||||
_08002D7C:
|
||||
adds r3, #1
|
||||
cmp r3, r4
|
||||
blt _08002D46
|
||||
_08002D82:
|
||||
mov r1, r8
|
||||
cmp r1, ip
|
||||
blt _08002D30
|
||||
_08002D88:
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end FillBitmapRect4Bit
|
||||
|
||||
thumb_func_start BlitBitmapRect4BitTo8Bit
|
||||
BlitBitmapRect4BitTo8Bit: @ 0x08002D98
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x3c
|
||||
str r0, [sp]
|
||||
str r1, [sp, #4]
|
||||
ldr r0, [sp, #0x5c]
|
||||
ldr r1, [sp, #0x60]
|
||||
ldr r5, [sp, #0x64]
|
||||
ldr r4, [sp, #0x68]
|
||||
ldr r6, [sp, #0x6c]
|
||||
ldr r7, [sp, #0x70]
|
||||
mov r8, r7
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r2, r2, #0x10
|
||||
str r2, [sp, #8]
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r3, r3, #0x10
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
str r0, [sp, #0xc]
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r7, r1, #0x10
|
||||
lsls r5, r5, #0x10
|
||||
lsrs r5, r5, #0x10
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
lsls r6, r6, #0x18
|
||||
lsrs r6, r6, #0x18
|
||||
str r6, [sp, #0x10]
|
||||
mov r0, r8
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x18
|
||||
str r0, [sp, #0x14]
|
||||
lsls r0, r6, #0x1c
|
||||
lsrs r0, r0, #0x18
|
||||
str r0, [sp, #0x28]
|
||||
ldr r1, [sp, #4]
|
||||
ldrh r0, [r1, #4]
|
||||
ldr r2, [sp, #0xc]
|
||||
subs r0, r0, r2
|
||||
ldr r1, [sp, #8]
|
||||
adds r1, r5, r1
|
||||
str r1, [sp, #0x18]
|
||||
cmp r0, r5
|
||||
bge _08002DFE
|
||||
ldr r2, [sp, #8]
|
||||
adds r0, r0, r2
|
||||
str r0, [sp, #0x18]
|
||||
_08002DFE:
|
||||
ldr r5, [sp, #4]
|
||||
ldrh r1, [r5, #6]
|
||||
subs r0, r1, r7
|
||||
cmp r0, r4
|
||||
bge _08002E10
|
||||
adds r0, r3, r1
|
||||
subs r0, r0, r7
|
||||
str r0, [sp, #0x1c]
|
||||
b _08002E14
|
||||
_08002E10:
|
||||
adds r4, r3, r4
|
||||
str r4, [sp, #0x1c]
|
||||
_08002E14:
|
||||
ldr r0, [sp]
|
||||
ldrh r1, [r0, #4]
|
||||
movs r2, #7
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
adds r1, r1, r0
|
||||
asrs r1, r1, #3
|
||||
str r1, [sp, #0x20]
|
||||
ldr r5, [sp, #4]
|
||||
ldrh r1, [r5, #4]
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
adds r1, r1, r0
|
||||
asrs r1, r1, #3
|
||||
str r1, [sp, #0x24]
|
||||
ldr r0, [sp, #0x10]
|
||||
cmp r0, #0xff
|
||||
bne _08002EF4
|
||||
adds r2, r3, #0
|
||||
adds r5, r7, #0
|
||||
ldr r1, [sp, #0x1c]
|
||||
cmp r2, r1
|
||||
blt _08002E44
|
||||
b _08002FD6
|
||||
_08002E44:
|
||||
ldr r3, [sp, #8]
|
||||
lsrs r3, r3, #1
|
||||
str r3, [sp, #0x2c]
|
||||
movs r0, #3
|
||||
ands r3, r0
|
||||
str r3, [sp, #0x2c]
|
||||
ldr r7, [sp, #8]
|
||||
lsrs r0, r7, #3
|
||||
lsls r0, r0, #5
|
||||
str r0, [sp, #0x30]
|
||||
_08002E58:
|
||||
ldr r0, [sp]
|
||||
ldr r1, [r0]
|
||||
ldr r3, [sp, #0x2c]
|
||||
adds r1, r1, r3
|
||||
ldr r7, [sp, #0x30]
|
||||
adds r1, r1, r7
|
||||
asrs r0, r2, #3
|
||||
ldr r3, [sp, #0x20]
|
||||
muls r0, r3, r0
|
||||
lsls r0, r0, #5
|
||||
mov r8, r0
|
||||
add r1, r8
|
||||
lsls r0, r2, #0x1d
|
||||
lsrs r7, r0, #0x1b
|
||||
adds r6, r1, r7
|
||||
ldr r3, [sp, #8]
|
||||
ldr r4, [sp, #0xc]
|
||||
adds r2, #1
|
||||
mov sl, r2
|
||||
adds r0, r5, #1
|
||||
str r0, [sp, #0x38]
|
||||
ldr r1, [sp, #0x18]
|
||||
cmp r3, r1
|
||||
bge _08002EE8
|
||||
asrs r0, r5, #3
|
||||
ldr r2, [sp, #0x24]
|
||||
muls r0, r2, r0
|
||||
lsls r0, r0, #6
|
||||
mov ip, r0
|
||||
lsls r0, r5, #0x1d
|
||||
lsrs r0, r0, #0x1a
|
||||
mov sb, r0
|
||||
_08002E98:
|
||||
movs r0, #7
|
||||
ands r0, r4
|
||||
ldr r5, [sp, #4]
|
||||
ldr r1, [r5]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r4, #3
|
||||
lsls r0, r0, #6
|
||||
adds r1, r1, r0
|
||||
add r1, ip
|
||||
mov r0, sb
|
||||
adds r5, r1, r0
|
||||
movs r0, #1
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08002EBC
|
||||
ldrb r0, [r6]
|
||||
lsrs r0, r0, #4
|
||||
b _08002ED8
|
||||
_08002EBC:
|
||||
asrs r2, r3, #1
|
||||
movs r0, #3
|
||||
ands r2, r0
|
||||
ldr r0, [sp]
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r2
|
||||
asrs r0, r3, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
add r1, r8
|
||||
adds r6, r1, r7
|
||||
ldrb r1, [r6]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
_08002ED8:
|
||||
ldr r1, [sp, #0x14]
|
||||
adds r0, r1, r0
|
||||
strb r0, [r5]
|
||||
adds r3, #1
|
||||
adds r4, #1
|
||||
ldr r2, [sp, #0x18]
|
||||
cmp r3, r2
|
||||
blt _08002E98
|
||||
_08002EE8:
|
||||
mov r2, sl
|
||||
ldr r5, [sp, #0x38]
|
||||
ldr r3, [sp, #0x1c]
|
||||
cmp r2, r3
|
||||
blt _08002E58
|
||||
b _08002FD6
|
||||
_08002EF4:
|
||||
adds r2, r3, #0
|
||||
adds r5, r7, #0
|
||||
ldr r7, [sp, #0x1c]
|
||||
cmp r2, r7
|
||||
bge _08002FD6
|
||||
ldr r0, [sp, #8]
|
||||
lsrs r0, r0, #1
|
||||
str r0, [sp, #0x34]
|
||||
movs r0, #3
|
||||
ldr r1, [sp, #0x34]
|
||||
ands r1, r0
|
||||
str r1, [sp, #0x34]
|
||||
_08002F0C:
|
||||
ldr r3, [sp]
|
||||
ldr r1, [r3]
|
||||
ldr r7, [sp, #0x34]
|
||||
adds r1, r1, r7
|
||||
ldr r3, [sp, #8]
|
||||
lsrs r0, r3, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
asrs r0, r2, #3
|
||||
ldr r7, [sp, #0x20]
|
||||
muls r0, r7, r0
|
||||
lsls r0, r0, #5
|
||||
mov r8, r0
|
||||
add r1, r8
|
||||
lsls r0, r2, #0x1d
|
||||
lsrs r7, r0, #0x1b
|
||||
adds r6, r1, r7
|
||||
ldr r4, [sp, #0xc]
|
||||
adds r2, #1
|
||||
mov sl, r2
|
||||
adds r0, r5, #1
|
||||
str r0, [sp, #0x38]
|
||||
ldr r1, [sp, #0x18]
|
||||
cmp r3, r1
|
||||
bge _08002FCC
|
||||
asrs r0, r5, #3
|
||||
ldr r2, [sp, #0x24]
|
||||
muls r0, r2, r0
|
||||
lsls r0, r0, #6
|
||||
mov sb, r0
|
||||
lsls r0, r5, #0x1d
|
||||
lsrs r0, r0, #0x1a
|
||||
mov ip, r0
|
||||
_08002F4E:
|
||||
movs r0, #1
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08002F82
|
||||
ldrb r2, [r6]
|
||||
movs r0, #0xf0
|
||||
ands r0, r2
|
||||
ldr r5, [sp, #0x28]
|
||||
cmp r0, r5
|
||||
beq _08002FC2
|
||||
adds r0, r4, #0
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
ldr r5, [sp, #4]
|
||||
ldr r1, [r5]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r4, #3
|
||||
lsls r0, r0, #6
|
||||
adds r1, r1, r0
|
||||
add r1, sb
|
||||
mov r0, ip
|
||||
adds r5, r1, r0
|
||||
lsrs r0, r2, #4
|
||||
ldr r1, [sp, #0x14]
|
||||
adds r0, r1, r0
|
||||
b _08002FC0
|
||||
_08002F82:
|
||||
asrs r2, r3, #1
|
||||
movs r0, #3
|
||||
ands r2, r0
|
||||
ldr r5, [sp]
|
||||
ldr r1, [r5]
|
||||
adds r1, r1, r2
|
||||
asrs r0, r3, #3
|
||||
lsls r0, r0, #5
|
||||
adds r1, r1, r0
|
||||
add r1, r8
|
||||
adds r6, r1, r7
|
||||
ldrb r0, [r6]
|
||||
movs r2, #0xf
|
||||
ands r2, r0
|
||||
ldr r0, [sp, #0x10]
|
||||
cmp r2, r0
|
||||
beq _08002FC2
|
||||
adds r0, r4, #0
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
ldr r5, [sp, #4]
|
||||
ldr r1, [r5]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r4, #3
|
||||
lsls r0, r0, #6
|
||||
adds r1, r1, r0
|
||||
add r1, sb
|
||||
mov r0, ip
|
||||
adds r5, r1, r0
|
||||
ldr r1, [sp, #0x14]
|
||||
adds r0, r1, r2
|
||||
_08002FC0:
|
||||
strb r0, [r5]
|
||||
_08002FC2:
|
||||
adds r3, #1
|
||||
adds r4, #1
|
||||
ldr r2, [sp, #0x18]
|
||||
cmp r3, r2
|
||||
blt _08002F4E
|
||||
_08002FCC:
|
||||
mov r2, sl
|
||||
ldr r5, [sp, #0x38]
|
||||
ldr r3, [sp, #0x1c]
|
||||
cmp r2, r3
|
||||
blt _08002F0C
|
||||
_08002FD6:
|
||||
add sp, #0x3c
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end BlitBitmapRect4BitTo8Bit
|
||||
|
||||
thumb_func_start FillBitmapRect8Bit
|
||||
FillBitmapRect8Bit: @ 0x08002FE8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
mov r8, r0
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r4, [sp, #0x2c]
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
mov sl, r1
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r2, r2, #0x10
|
||||
adds r6, r2, #0
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r3, r3, #0x10
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
mov sb, r4
|
||||
adds r5, r1, r3
|
||||
mov r3, r8
|
||||
ldrh r1, [r3, #4]
|
||||
cmp r5, r1
|
||||
ble _08003020
|
||||
adds r5, r1, #0
|
||||
_08003020:
|
||||
adds r7, r2, r0
|
||||
mov r2, r8
|
||||
ldrh r0, [r2, #6]
|
||||
cmp r7, r0
|
||||
ble _0800302C
|
||||
adds r7, r0, #0
|
||||
_0800302C:
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
adds r0, r1, r0
|
||||
asrs r0, r0, #3
|
||||
str r0, [sp]
|
||||
adds r1, r6, #0
|
||||
cmp r1, r7
|
||||
bge _0800307C
|
||||
_0800303C:
|
||||
mov r3, sl
|
||||
adds r6, r1, #1
|
||||
str r6, [sp, #4]
|
||||
cmp r3, r5
|
||||
bge _08003076
|
||||
movs r0, #7
|
||||
mov ip, r0
|
||||
asrs r0, r1, #3
|
||||
ldr r2, [sp]
|
||||
muls r0, r2, r0
|
||||
lsls r4, r0, #6
|
||||
lsls r0, r1, #0x1d
|
||||
lsrs r2, r0, #0x1a
|
||||
_08003056:
|
||||
adds r0, r3, #0
|
||||
mov r6, ip
|
||||
ands r0, r6
|
||||
mov r6, r8
|
||||
ldr r1, [r6]
|
||||
adds r1, r1, r0
|
||||
asrs r0, r3, #3
|
||||
lsls r0, r0, #6
|
||||
adds r1, r1, r0
|
||||
adds r1, r1, r4
|
||||
adds r1, r1, r2
|
||||
mov r0, sb
|
||||
strb r0, [r1]
|
||||
adds r3, #1
|
||||
cmp r3, r5
|
||||
blt _08003056
|
||||
_08003076:
|
||||
ldr r1, [sp, #4]
|
||||
cmp r1, r7
|
||||
blt _0800303C
|
||||
_0800307C:
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end FillBitmapRect8Bit
|
||||
|
||||
689
asm/braille_puzzles.s
Normal file
689
asm/braille_puzzles.s
Normal file
|
|
@ -0,0 +1,689 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start ShouldDoBrailleDigEffect
|
||||
ShouldDoBrailleDigEffect: @ 0x081794A0
|
||||
push {lr}
|
||||
ldr r0, _081794D4
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081794EC
|
||||
ldr r0, _081794D8
|
||||
ldr r2, [r0]
|
||||
ldrh r1, [r2, #4]
|
||||
ldr r0, _081794DC
|
||||
cmp r1, r0
|
||||
bne _081794EC
|
||||
ldr r1, [r2]
|
||||
ldr r0, _081794E0
|
||||
cmp r1, r0
|
||||
beq _081794CE
|
||||
ldr r0, _081794E4
|
||||
cmp r1, r0
|
||||
beq _081794CE
|
||||
ldr r0, _081794E8
|
||||
cmp r1, r0
|
||||
bne _081794EC
|
||||
_081794CE:
|
||||
movs r0, #1
|
||||
b _081794EE
|
||||
.align 2, 0
|
||||
_081794D4: .4byte 0x000008AF
|
||||
_081794D8: .4byte 0x03005AEC
|
||||
_081794DC: .4byte 0x00004718
|
||||
_081794E0: .4byte 0x0003000A
|
||||
_081794E4: .4byte 0x00030009
|
||||
_081794E8: .4byte 0x0003000B
|
||||
_081794EC:
|
||||
movs r0, #0
|
||||
_081794EE:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end ShouldDoBrailleDigEffect
|
||||
|
||||
thumb_func_start DoBrailleDigEffect
|
||||
DoBrailleDigEffect: @ 0x081794F4
|
||||
push {lr}
|
||||
ldr r2, _0817954C
|
||||
movs r0, #0x10
|
||||
movs r1, #8
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179550
|
||||
movs r0, #0x11
|
||||
movs r1, #8
|
||||
bl MapGridSetMetatileIdAt
|
||||
movs r2, #0x8b
|
||||
lsls r2, r2, #2
|
||||
movs r0, #0x12
|
||||
movs r1, #8
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179554
|
||||
movs r0, #0x10
|
||||
movs r1, #9
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179558
|
||||
movs r0, #0x11
|
||||
movs r1, #9
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _0817955C
|
||||
movs r0, #0x12
|
||||
movs r1, #9
|
||||
bl MapGridSetMetatileIdAt
|
||||
bl DrawWholeMapView
|
||||
movs r0, #0x14
|
||||
bl PlaySE
|
||||
ldr r0, _08179560
|
||||
bl FlagSet
|
||||
bl ScriptContext2_Disable
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817954C: .4byte 0x0000022A
|
||||
_08179550: .4byte 0x0000022B
|
||||
_08179554: .4byte 0x00000E32
|
||||
_08179558: .4byte 0x00000233
|
||||
_0817955C: .4byte 0x00000E34
|
||||
_08179560: .4byte 0x000008AF
|
||||
thumb_func_end DoBrailleDigEffect
|
||||
|
||||
thumb_func_start CheckRelicanthWailord
|
||||
CheckRelicanthWailord: @ 0x08179564
|
||||
push {r4, lr}
|
||||
ldr r4, _081795A0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x41
|
||||
movs r2, #0
|
||||
bl GetMonData
|
||||
movs r1, #0x9d
|
||||
lsls r1, r1, #1
|
||||
cmp r0, r1
|
||||
bne _081795AC
|
||||
bl CalculatePlayerPartyCount
|
||||
ldr r0, _081795A4
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x64
|
||||
muls r0, r1, r0
|
||||
adds r1, r4, #0
|
||||
subs r1, #0x64
|
||||
adds r0, r0, r1
|
||||
movs r1, #0x41
|
||||
movs r2, #0
|
||||
bl GetMonData
|
||||
ldr r1, _081795A8
|
||||
cmp r0, r1
|
||||
bne _081795AC
|
||||
movs r0, #1
|
||||
b _081795AE
|
||||
.align 2, 0
|
||||
_081795A0: .4byte 0x02024190
|
||||
_081795A4: .4byte 0x0202418D
|
||||
_081795A8: .4byte 0x0000017D
|
||||
_081795AC:
|
||||
movs r0, #0
|
||||
_081795AE:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CheckRelicanthWailord
|
||||
|
||||
thumb_func_start ShouldDoBrailleRegirockEffectOld
|
||||
ShouldDoBrailleRegirockEffectOld: @ 0x081795B4
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end ShouldDoBrailleRegirockEffectOld
|
||||
|
||||
thumb_func_start DoSealedChamberShakingEffect1
|
||||
DoSealedChamberShakingEffect1: @ 0x081795B8
|
||||
push {lr}
|
||||
ldr r0, _081795EC
|
||||
movs r1, #9
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r2, _081795F0
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
strh r0, [r1, #0xa]
|
||||
strh r0, [r1, #0xc]
|
||||
movs r0, #2
|
||||
strh r0, [r1, #0x10]
|
||||
movs r0, #5
|
||||
strh r0, [r1, #0x12]
|
||||
movs r0, #0x32
|
||||
strh r0, [r1, #0x14]
|
||||
movs r0, #0
|
||||
bl SetCameraPanningCallback
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081795EC: .4byte 0x08179631
|
||||
_081795F0: .4byte 0x03005B60
|
||||
thumb_func_end DoSealedChamberShakingEffect1
|
||||
|
||||
thumb_func_start DoSealedChamberShakingEffect2
|
||||
DoSealedChamberShakingEffect2: @ 0x081795F4
|
||||
push {lr}
|
||||
ldr r0, _08179628
|
||||
movs r1, #9
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r2, _0817962C
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
strh r0, [r1, #0xa]
|
||||
strh r0, [r1, #0xc]
|
||||
movs r0, #3
|
||||
strh r0, [r1, #0x10]
|
||||
movs r0, #5
|
||||
strh r0, [r1, #0x12]
|
||||
movs r0, #2
|
||||
strh r0, [r1, #0x14]
|
||||
movs r0, #0
|
||||
bl SetCameraPanningCallback
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08179628: .4byte 0x08179631
|
||||
_0817962C: .4byte 0x03005B60
|
||||
thumb_func_end DoSealedChamberShakingEffect2
|
||||
|
||||
thumb_func_start SealedChamberShakingEffect
|
||||
SealedChamberShakingEffect: @ 0x08179630
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
lsls r0, r5, #2
|
||||
adds r0, r0, r5
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08179690
|
||||
adds r4, r0, r1
|
||||
ldrh r0, [r4, #0xa]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0xa]
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x12
|
||||
ldrsh r1, [r4, r2]
|
||||
bl __modsi3
|
||||
cmp r0, #0
|
||||
bne _08179688
|
||||
strh r0, [r4, #0xa]
|
||||
ldrh r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0xc]
|
||||
ldrh r0, [r4, #0x10]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r4, #0x10]
|
||||
movs r0, #0x10
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, #0
|
||||
bl SetCameraPanning
|
||||
movs r2, #0xc
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r2, #0x14
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r1, r0
|
||||
bne _08179688
|
||||
adds r0, r5, #0
|
||||
bl DestroyTask
|
||||
bl EnableBothScriptContexts
|
||||
bl InstallCameraPanAheadCallback
|
||||
_08179688:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08179690: .4byte 0x03005B60
|
||||
thumb_func_end SealedChamberShakingEffect
|
||||
|
||||
thumb_func_start ShouldDoBrailleRegirockEffect
|
||||
ShouldDoBrailleRegirockEffect: @ 0x08179694
|
||||
push {lr}
|
||||
movs r0, #0x8b
|
||||
lsls r0, r0, #4
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, #0
|
||||
bne _081796E4
|
||||
ldr r0, _081796D0
|
||||
ldr r3, [r0]
|
||||
ldrh r1, [r3, #4]
|
||||
movs r0, #0xc3
|
||||
lsls r0, r0, #3
|
||||
cmp r1, r0
|
||||
bne _081796E4
|
||||
ldr r1, [r3]
|
||||
ldr r0, _081796D4
|
||||
cmp r1, r0
|
||||
beq _081796C8
|
||||
ldr r0, _081796D8
|
||||
cmp r1, r0
|
||||
beq _081796C8
|
||||
ldr r0, _081796DC
|
||||
cmp r1, r0
|
||||
bne _081796E4
|
||||
_081796C8:
|
||||
ldr r0, _081796E0
|
||||
strb r2, [r0]
|
||||
movs r0, #1
|
||||
b _081796E6
|
||||
.align 2, 0
|
||||
_081796D0: .4byte 0x03005AEC
|
||||
_081796D4: .4byte 0x00170006
|
||||
_081796D8: .4byte 0x00170005
|
||||
_081796DC: .4byte 0x00170007
|
||||
_081796E0: .4byte 0x0203B9E0
|
||||
_081796E4:
|
||||
movs r0, #0
|
||||
_081796E6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end ShouldDoBrailleRegirockEffect
|
||||
|
||||
thumb_func_start SetUpPuzzleEffectRegirock
|
||||
SetUpPuzzleEffectRegirock: @ 0x081796EC
|
||||
push {lr}
|
||||
bl GetCursorSelectionMonId
|
||||
ldr r1, _08179704
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
str r0, [r1]
|
||||
movs r0, #0x3c
|
||||
bl FieldEffectStart
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08179704: .4byte 0x020388A8
|
||||
thumb_func_end SetUpPuzzleEffectRegirock
|
||||
|
||||
thumb_func_start UseRegirockHm_Callback
|
||||
UseRegirockHm_Callback: @ 0x08179708
|
||||
push {lr}
|
||||
movs r0, #0x3c
|
||||
bl FieldEffectActiveListRemove
|
||||
bl DoBrailleRegirockEffect
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end UseRegirockHm_Callback
|
||||
|
||||
thumb_func_start DoBrailleRegirockEffect
|
||||
DoBrailleRegirockEffect: @ 0x08179718
|
||||
push {lr}
|
||||
ldr r2, _08179774
|
||||
movs r0, #0xe
|
||||
movs r1, #0x1a
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179778
|
||||
movs r0, #0xf
|
||||
movs r1, #0x1a
|
||||
bl MapGridSetMetatileIdAt
|
||||
movs r2, #0x8b
|
||||
lsls r2, r2, #2
|
||||
movs r0, #0x10
|
||||
movs r1, #0x1a
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _0817977C
|
||||
movs r0, #0xe
|
||||
movs r1, #0x1b
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179780
|
||||
movs r0, #0xf
|
||||
movs r1, #0x1b
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179784
|
||||
movs r0, #0x10
|
||||
movs r1, #0x1b
|
||||
bl MapGridSetMetatileIdAt
|
||||
bl DrawWholeMapView
|
||||
movs r0, #0x14
|
||||
bl PlaySE
|
||||
movs r0, #0x8b
|
||||
lsls r0, r0, #4
|
||||
bl FlagSet
|
||||
bl ScriptContext2_Disable
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08179774: .4byte 0x0000022A
|
||||
_08179778: .4byte 0x0000022B
|
||||
_0817977C: .4byte 0x00000E32
|
||||
_08179780: .4byte 0x00000233
|
||||
_08179784: .4byte 0x00000E34
|
||||
thumb_func_end DoBrailleRegirockEffect
|
||||
|
||||
thumb_func_start ShouldDoBrailleRegisteelEffect
|
||||
ShouldDoBrailleRegisteelEffect: @ 0x08179788
|
||||
push {lr}
|
||||
ldr r0, _081797B4
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081797C8
|
||||
ldr r0, _081797B8
|
||||
ldr r2, [r0]
|
||||
ldrh r1, [r2, #4]
|
||||
ldr r0, _081797BC
|
||||
cmp r1, r0
|
||||
bne _081797C8
|
||||
ldr r1, [r2]
|
||||
ldr r0, _081797C0
|
||||
cmp r1, r0
|
||||
bne _081797C8
|
||||
ldr r1, _081797C4
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
movs r0, #1
|
||||
b _081797CA
|
||||
.align 2, 0
|
||||
_081797B4: .4byte 0x000008B2
|
||||
_081797B8: .4byte 0x03005AEC
|
||||
_081797BC: .4byte 0x00004418
|
||||
_081797C0: .4byte 0x00190008
|
||||
_081797C4: .4byte 0x0203B9E0
|
||||
_081797C8:
|
||||
movs r0, #0
|
||||
_081797CA:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end ShouldDoBrailleRegisteelEffect
|
||||
|
||||
thumb_func_start SetUpPuzzleEffectRegisteel
|
||||
SetUpPuzzleEffectRegisteel: @ 0x081797D0
|
||||
push {lr}
|
||||
bl GetCursorSelectionMonId
|
||||
ldr r1, _081797E8
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
str r0, [r1]
|
||||
movs r0, #0x3c
|
||||
bl FieldEffectStart
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081797E8: .4byte 0x020388A8
|
||||
thumb_func_end SetUpPuzzleEffectRegisteel
|
||||
|
||||
thumb_func_start UseRegisteelHm_Callback
|
||||
UseRegisteelHm_Callback: @ 0x081797EC
|
||||
push {lr}
|
||||
movs r0, #0x3c
|
||||
bl FieldEffectActiveListRemove
|
||||
bl DoBrailleRegisteelEffect
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end UseRegisteelHm_Callback
|
||||
|
||||
thumb_func_start DoBrailleRegisteelEffect
|
||||
DoBrailleRegisteelEffect: @ 0x081797FC
|
||||
push {lr}
|
||||
ldr r2, _08179854
|
||||
movs r0, #0xe
|
||||
movs r1, #0x1a
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179858
|
||||
movs r0, #0xf
|
||||
movs r1, #0x1a
|
||||
bl MapGridSetMetatileIdAt
|
||||
movs r2, #0x8b
|
||||
lsls r2, r2, #2
|
||||
movs r0, #0x10
|
||||
movs r1, #0x1a
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _0817985C
|
||||
movs r0, #0xe
|
||||
movs r1, #0x1b
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179860
|
||||
movs r0, #0xf
|
||||
movs r1, #0x1b
|
||||
bl MapGridSetMetatileIdAt
|
||||
ldr r2, _08179864
|
||||
movs r0, #0x10
|
||||
movs r1, #0x1b
|
||||
bl MapGridSetMetatileIdAt
|
||||
bl DrawWholeMapView
|
||||
movs r0, #0x14
|
||||
bl PlaySE
|
||||
ldr r0, _08179868
|
||||
bl FlagSet
|
||||
bl ScriptContext2_Disable
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08179854: .4byte 0x0000022A
|
||||
_08179858: .4byte 0x0000022B
|
||||
_0817985C: .4byte 0x00000E32
|
||||
_08179860: .4byte 0x00000233
|
||||
_08179864: .4byte 0x00000E34
|
||||
_08179868: .4byte 0x000008B2
|
||||
thumb_func_end DoBrailleRegisteelEffect
|
||||
|
||||
thumb_func_start DoBrailleWait
|
||||
DoBrailleWait: @ 0x0817986C
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end DoBrailleWait
|
||||
|
||||
thumb_func_start FldEff_UsePuzzleEffect
|
||||
FldEff_UsePuzzleEffect: @ 0x08179870
|
||||
push {lr}
|
||||
bl oei_task_add
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
ldr r0, _08179890
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _0817989C
|
||||
ldr r1, _08179894
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r2
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldr r2, _08179898
|
||||
b _081798A8
|
||||
.align 2, 0
|
||||
_08179890: .4byte 0x0203B9E0
|
||||
_08179894: .4byte 0x03005B60
|
||||
_08179898: .4byte 0x081797ED
|
||||
_0817989C:
|
||||
ldr r1, _081798B4
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r2
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldr r2, _081798B8
|
||||
_081798A8:
|
||||
lsrs r1, r2, #0x10
|
||||
strh r1, [r0, #0x18]
|
||||
strh r2, [r0, #0x1a]
|
||||
movs r0, #0
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_081798B4: .4byte 0x03005B60
|
||||
_081798B8: .4byte 0x08179709
|
||||
thumb_func_end FldEff_UsePuzzleEffect
|
||||
|
||||
thumb_func_start ShouldDoBrailleRegicePuzzle
|
||||
ShouldDoBrailleRegicePuzzle: @ 0x081798BC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
ldr r4, _08179900
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, #4]
|
||||
ldr r0, _08179904
|
||||
cmp r1, r0
|
||||
beq _081798D2
|
||||
b _08179A12
|
||||
_081798D2:
|
||||
ldr r0, _08179908
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081798E0
|
||||
b _08179A12
|
||||
_081798E0:
|
||||
movs r0, #2
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081798EE
|
||||
b _08179A12
|
||||
_081798EE:
|
||||
movs r0, #3
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _08179910
|
||||
b _08179A12
|
||||
.align 2, 0
|
||||
_08179900: .4byte 0x03005AEC
|
||||
_08179904: .4byte 0x00004318
|
||||
_08179908: .4byte 0x000008B1
|
||||
_0817990C:
|
||||
movs r0, #1
|
||||
b _08179A14
|
||||
_08179910:
|
||||
movs r5, #0
|
||||
mov r8, r4
|
||||
ldr r4, _0817995C
|
||||
adds r0, r4, #1
|
||||
mov ip, r0
|
||||
ldr r6, _08179960
|
||||
ldr r1, _08179964
|
||||
mov sb, r1
|
||||
_08179920:
|
||||
lsls r0, r5, #1
|
||||
adds r1, r0, r4
|
||||
add r0, ip
|
||||
ldrb r3, [r0]
|
||||
mov r7, r8
|
||||
ldr r2, [r7]
|
||||
movs r7, #0
|
||||
ldrsh r0, [r2, r7]
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bne _081799FC
|
||||
movs r1, #2
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, r3
|
||||
bne _081799FC
|
||||
cmp r5, #0xf
|
||||
bhi _08179968
|
||||
adds r0, r6, #0
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
lsls r1, r5
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x10
|
||||
adds r0, r6, #0
|
||||
bl VarSet
|
||||
b _081799A8
|
||||
.align 2, 0
|
||||
_0817995C: .4byte 0x085CD314
|
||||
_08179960: .4byte 0x0000403B
|
||||
_08179964: .4byte 0x0000403C
|
||||
_08179968:
|
||||
cmp r5, #0x1f
|
||||
bhi _0817998A
|
||||
mov r0, sb
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
adds r2, r5, #0
|
||||
subs r2, #0x10
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
lsls r1, r2
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x10
|
||||
mov r0, sb
|
||||
bl VarSet
|
||||
b _081799A8
|
||||
_0817998A:
|
||||
ldr r4, _081799E4
|
||||
adds r0, r4, #0
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
adds r2, r5, #0
|
||||
subs r2, #0x20
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
lsls r1, r2
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x10
|
||||
adds r0, r4, #0
|
||||
bl VarSet
|
||||
_081799A8:
|
||||
ldr r0, _081799E8
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
ldr r0, _081799EC
|
||||
cmp r4, r0
|
||||
bne _08179A12
|
||||
ldr r0, _081799F0
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, r4
|
||||
bne _08179A12
|
||||
ldr r0, _081799E4
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0xf
|
||||
bne _08179A12
|
||||
ldr r0, _081799F4
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r0]
|
||||
ldr r0, _081799F8
|
||||
cmp r1, r0
|
||||
beq _0817990C
|
||||
b _08179A12
|
||||
.align 2, 0
|
||||
_081799E4: .4byte 0x0000403D
|
||||
_081799E8: .4byte 0x0000403B
|
||||
_081799EC: .4byte 0x0000FFFF
|
||||
_081799F0: .4byte 0x0000403C
|
||||
_081799F4: .4byte 0x03005AEC
|
||||
_081799F8: .4byte 0x00150008
|
||||
_081799FC:
|
||||
adds r0, r5, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #0x23
|
||||
bls _08179920
|
||||
movs r0, #3
|
||||
bl FlagSet
|
||||
movs r0, #2
|
||||
bl FlagClear
|
||||
_08179A12:
|
||||
movs r0, #0
|
||||
_08179A14:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end ShouldDoBrailleRegicePuzzle
|
||||
|
||||
826
asm/bug.s
Normal file
826
asm/bug.s
Normal file
|
|
@ -0,0 +1,826 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start sub_08110BB8
|
||||
sub_08110BB8: @ 0x08110BB8
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
bl IsContest
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110BE4
|
||||
adds r0, r6, #0
|
||||
movs r1, #2
|
||||
bl StartSpriteAffineAnim
|
||||
ldr r0, _08110BE0
|
||||
ldrh r1, [r0, #4]
|
||||
rsbs r1, r1, #0
|
||||
strh r1, [r0, #4]
|
||||
ldrh r1, [r0]
|
||||
rsbs r1, r1, #0
|
||||
strh r1, [r0]
|
||||
b _08110C14
|
||||
.align 2, 0
|
||||
_08110BE0: .4byte 0x020380BE
|
||||
_08110BE4:
|
||||
ldr r0, _08110C78
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08110C14
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
bl StartSpriteAffineAnim
|
||||
ldr r1, _08110C7C
|
||||
ldrh r0, [r1, #2]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #2]
|
||||
ldrh r0, [r1, #4]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #4]
|
||||
ldrh r0, [r1, #6]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #6]
|
||||
ldrh r0, [r1]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1]
|
||||
_08110C14:
|
||||
ldr r5, _08110C78
|
||||
ldrb r0, [r5]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord2
|
||||
lsls r0, r0, #0x18
|
||||
ldr r4, _08110C7C
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r1, [r4]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x20]
|
||||
ldrb r0, [r5]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r1, [r4, #2]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x22]
|
||||
ldrh r0, [r4, #8]
|
||||
strh r0, [r6, #0x2e]
|
||||
ldrb r0, [r5]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r1, [r4, #4]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x32]
|
||||
ldrb r0, [r5]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r4, [r4, #6]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r6, #0x36]
|
||||
ldr r0, _08110C80
|
||||
str r0, [r6, #0x1c]
|
||||
ldr r1, _08110C84
|
||||
adds r0, r6, #0
|
||||
bl StoreSpriteCallbackInData6
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08110C78: .4byte 0x020380D7
|
||||
_08110C7C: .4byte 0x020380BE
|
||||
_08110C80: .4byte 0x080A67B5
|
||||
_08110C84: .4byte 0x080A34C5
|
||||
thumb_func_end sub_08110BB8
|
||||
|
||||
thumb_func_start sub_08110C88
|
||||
sub_08110C88: @ 0x08110C88
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
bl IsContest
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110CAC
|
||||
ldr r1, _08110CA8
|
||||
ldrh r0, [r1]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1]
|
||||
adds r0, r6, #0
|
||||
movs r1, #2
|
||||
bl StartSpriteAffineAnim
|
||||
b _08110CC8
|
||||
.align 2, 0
|
||||
_08110CA8: .4byte 0x020380BE
|
||||
_08110CAC:
|
||||
ldr r0, _08110D24
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08110CC8
|
||||
ldr r0, _08110D28
|
||||
ldrh r1, [r0, #2]
|
||||
rsbs r1, r1, #0
|
||||
strh r1, [r0, #2]
|
||||
ldrh r1, [r0]
|
||||
rsbs r1, r1, #0
|
||||
strh r1, [r0]
|
||||
_08110CC8:
|
||||
ldr r5, _08110D24
|
||||
ldrb r0, [r5]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord2
|
||||
lsls r0, r0, #0x18
|
||||
ldr r4, _08110D28
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r1, [r4]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x20]
|
||||
ldrb r0, [r5]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r1, [r4, #2]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x22]
|
||||
ldrh r0, [r4, #4]
|
||||
strh r0, [r6, #0x2e]
|
||||
ldrb r0, [r5]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r6, #0x32]
|
||||
ldrb r0, [r5]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r6, #0x36]
|
||||
ldr r0, _08110D2C
|
||||
str r0, [r6, #0x1c]
|
||||
ldr r1, _08110D30
|
||||
adds r0, r6, #0
|
||||
bl StoreSpriteCallbackInData6
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08110D24: .4byte 0x020380D7
|
||||
_08110D28: .4byte 0x020380BE
|
||||
_08110D2C: .4byte 0x080A67B5
|
||||
_08110D30: .4byte 0x080A34C5
|
||||
thumb_func_end sub_08110C88
|
||||
|
||||
thumb_func_start AnimTranslateWebThread
|
||||
AnimTranslateWebThread: @ 0x08110D34
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl IsContest
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110D50
|
||||
ldr r0, _08110D90
|
||||
movs r2, #4
|
||||
ldrsh r1, [r0, r2]
|
||||
lsrs r2, r1, #0x1f
|
||||
adds r1, r1, r2
|
||||
asrs r1, r1, #1
|
||||
strh r1, [r0, #4]
|
||||
_08110D50:
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl InitSpritePosToAnimAttacker
|
||||
ldr r1, _08110D90
|
||||
ldrh r0, [r1, #4]
|
||||
strh r0, [r5, #0x2e]
|
||||
ldrh r0, [r5, #0x20]
|
||||
strh r0, [r5, #0x30]
|
||||
ldrh r0, [r5, #0x22]
|
||||
strh r0, [r5, #0x34]
|
||||
movs r2, #8
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, #0
|
||||
bne _08110D98
|
||||
ldr r4, _08110D94
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x32]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x36]
|
||||
b _08110DAA
|
||||
.align 2, 0
|
||||
_08110D90: .4byte 0x020380BE
|
||||
_08110D94: .4byte 0x020380D7
|
||||
_08110D98:
|
||||
ldr r0, _08110DC0
|
||||
ldrb r0, [r0]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x32
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x36
|
||||
movs r1, #1
|
||||
bl SetAverageBattlerPositions
|
||||
_08110DAA:
|
||||
adds r0, r5, #0
|
||||
bl sub_080A689C
|
||||
ldr r0, _08110DC4
|
||||
ldrh r0, [r0, #6]
|
||||
strh r0, [r5, #0x38]
|
||||
ldr r0, _08110DC8
|
||||
str r0, [r5, #0x1c]
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08110DC0: .4byte 0x020380D7
|
||||
_08110DC4: .4byte 0x020380BE
|
||||
_08110DC8: .4byte 0x08110DCD
|
||||
thumb_func_end AnimTranslateWebThread
|
||||
|
||||
thumb_func_start sub_08110DCC
|
||||
sub_08110DCC: @ 0x08110DCC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl AnimTranslateLinear
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110DE2
|
||||
adds r0, r4, #0
|
||||
bl DestroyAnimSprite
|
||||
b _08110DFE
|
||||
_08110DE2:
|
||||
movs r1, #0x3a
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x38
|
||||
ldrsh r1, [r4, r2]
|
||||
bl Sin
|
||||
ldrh r1, [r4, #0x24]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x24]
|
||||
ldrh r0, [r4, #0x3a]
|
||||
adds r0, #0xd
|
||||
movs r1, #0xff
|
||||
ands r0, r1
|
||||
strh r0, [r4, #0x3a]
|
||||
_08110DFE:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_08110DCC
|
||||
|
||||
thumb_func_start sub_08110E04
|
||||
sub_08110E04: @ 0x08110E04
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08110E34
|
||||
ldrb r0, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x20
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x22
|
||||
movs r1, #0
|
||||
bl SetAverageBattlerPositions
|
||||
ldr r0, _08110E38
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110E40
|
||||
ldr r0, _08110E3C
|
||||
ldrh r1, [r4, #0x20]
|
||||
ldrh r2, [r0]
|
||||
subs r1, r1, r2
|
||||
strh r1, [r4, #0x20]
|
||||
b _08110E4C
|
||||
.align 2, 0
|
||||
_08110E34: .4byte 0x020380D7
|
||||
_08110E38: .4byte 0x020380D6
|
||||
_08110E3C: .4byte 0x020380BE
|
||||
_08110E40:
|
||||
ldr r1, _08110E74
|
||||
ldrh r0, [r1]
|
||||
ldrh r2, [r4, #0x20]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x20]
|
||||
adds r0, r1, #0
|
||||
_08110E4C:
|
||||
ldrh r0, [r0, #2]
|
||||
ldrh r1, [r4, #0x22]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x22]
|
||||
ldr r0, _08110E78
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08110E68
|
||||
ldrh r0, [r4, #0x22]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x22]
|
||||
_08110E68:
|
||||
ldr r0, _08110E7C
|
||||
str r0, [r4, #0x1c]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08110E74: .4byte 0x020380BE
|
||||
_08110E78: .4byte 0x020380D7
|
||||
_08110E7C: .4byte 0x08110E81
|
||||
thumb_func_end sub_08110E04
|
||||
|
||||
thumb_func_start sub_08110E80
|
||||
sub_08110E80: @ 0x08110E80
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldrh r0, [r3, #0x2e]
|
||||
adds r0, #1
|
||||
strh r0, [r3, #0x2e]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #3
|
||||
bne _08110EB4
|
||||
movs r0, #0
|
||||
strh r0, [r3, #0x2e]
|
||||
movs r0, #0x3e
|
||||
adds r0, r0, r3
|
||||
mov ip, r0
|
||||
ldrb r2, [r0]
|
||||
lsls r0, r2, #0x1d
|
||||
lsrs r0, r0, #0x1f
|
||||
movs r1, #1
|
||||
eors r1, r0
|
||||
lsls r1, r1, #2
|
||||
movs r0, #5
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1]
|
||||
_08110EB4:
|
||||
ldrh r0, [r3, #0x30]
|
||||
adds r0, #1
|
||||
strh r0, [r3, #0x30]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x33
|
||||
bne _08110EC8
|
||||
adds r0, r3, #0
|
||||
bl DestroyAnimSprite
|
||||
_08110EC8:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_08110E80
|
||||
|
||||
thumb_func_start sub_08110ECC
|
||||
sub_08110ECC: @ 0x08110ECC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0xfd
|
||||
lsls r1, r1, #6
|
||||
movs r0, #0x50
|
||||
bl SetGpuReg
|
||||
movs r0, #0x52
|
||||
movs r1, #0x10
|
||||
bl SetGpuReg
|
||||
movs r0, #0x10
|
||||
strh r0, [r4, #0x2e]
|
||||
ldr r0, _08110EF0
|
||||
str r0, [r4, #0x1c]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08110EF0: .4byte 0x08110EF5
|
||||
thumb_func_end sub_08110ECC
|
||||
|
||||
thumb_func_start sub_08110EF4
|
||||
sub_08110EF4: @ 0x08110EF4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrh r1, [r4, #0x32]
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #0x13
|
||||
bgt _08110F08
|
||||
adds r0, r1, #1
|
||||
strh r0, [r4, #0x32]
|
||||
b _08110F46
|
||||
_08110F08:
|
||||
ldrh r1, [r4, #0x30]
|
||||
adds r0, r1, #1
|
||||
strh r0, [r4, #0x30]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08110F46
|
||||
ldrh r1, [r4, #0x2e]
|
||||
subs r1, #1
|
||||
strh r1, [r4, #0x2e]
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #8
|
||||
orrs r1, r0
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
movs r0, #0x52
|
||||
bl SetGpuReg
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
bne _08110F46
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3e
|
||||
ldrb r0, [r2]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _08110F4C
|
||||
str r0, [r4, #0x1c]
|
||||
_08110F46:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08110F4C: .4byte 0x08110F51
|
||||
thumb_func_end sub_08110EF4
|
||||
|
||||
thumb_func_start sub_08110F50
|
||||
sub_08110F50: @ 0x08110F50
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x50
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x52
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
adds r0, r4, #0
|
||||
bl DestroyAnimSprite
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_08110F50
|
||||
|
||||
thumb_func_start AnimTranslateStinger
|
||||
AnimTranslateStinger: @ 0x08110F70
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #4
|
||||
adds r7, r0, #0
|
||||
bl IsContest
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110F90
|
||||
ldr r1, _08110F8C
|
||||
ldrh r0, [r1, #4]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #4]
|
||||
b _08110FB2
|
||||
.align 2, 0
|
||||
_08110F8C: .4byte 0x020380BE
|
||||
_08110F90:
|
||||
ldr r0, _0811108C
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110FB2
|
||||
ldr r1, _08111090
|
||||
ldrh r0, [r1, #4]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #4]
|
||||
ldrh r0, [r1, #2]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #2]
|
||||
ldrh r0, [r1, #6]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #6]
|
||||
_08110FB2:
|
||||
bl IsContest
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08111002
|
||||
ldr r0, _0811108C
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
adds r4, r0, #0
|
||||
ldr r5, _08111094
|
||||
ldrb r0, [r5]
|
||||
bl GetBattlerSide
|
||||
lsls r4, r4, #0x18
|
||||
lsls r0, r0, #0x18
|
||||
cmp r4, r0
|
||||
bne _08111002
|
||||
ldrb r0, [r5]
|
||||
bl GetBattlerPosition
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08110FF0
|
||||
ldrb r0, [r5]
|
||||
bl GetBattlerPosition
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _08111002
|
||||
_08110FF0:
|
||||
ldr r0, _08111090
|
||||
movs r2, #4
|
||||
ldrsh r1, [r0, r2]
|
||||
rsbs r1, r1, #0
|
||||
strh r1, [r0, #4]
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
rsbs r1, r1, #0
|
||||
strh r1, [r0]
|
||||
_08111002:
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl InitSpritePosToAnimAttacker
|
||||
ldr r5, _08111094
|
||||
ldrb r0, [r5]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
ldr r6, _08111090
|
||||
lsrs r4, r4, #0x18
|
||||
ldrh r0, [r6, #4]
|
||||
adds r4, r4, r0
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
ldrb r0, [r5]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
adds r1, r0, #0
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
ldrh r2, [r6, #6]
|
||||
adds r1, r1, r2
|
||||
lsls r1, r1, #0x10
|
||||
ldrh r2, [r7, #0x20]
|
||||
lsls r0, r4, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
subs r0, r0, r2
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
ldrh r2, [r7, #0x22]
|
||||
lsrs r5, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
subs r1, r1, r2
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
bl ArcTan2Neg
|
||||
lsls r0, r0, #0x10
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
lsrs r0, r0, #0x10
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
str r0, [sp]
|
||||
adds r0, r7, #0
|
||||
movs r1, #0
|
||||
adds r2, r3, #0
|
||||
bl TrySetSpriteRotScale
|
||||
ldrh r0, [r6, #8]
|
||||
strh r0, [r7, #0x2e]
|
||||
strh r4, [r7, #0x32]
|
||||
strh r5, [r7, #0x36]
|
||||
ldr r0, _08111098
|
||||
str r0, [r7, #0x1c]
|
||||
ldr r1, _0811109C
|
||||
adds r0, r7, #0
|
||||
bl StoreSpriteCallbackInData6
|
||||
add sp, #4
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0811108C: .4byte 0x020380D6
|
||||
_08111090: .4byte 0x020380BE
|
||||
_08111094: .4byte 0x020380D7
|
||||
_08111098: .4byte 0x080A67B5
|
||||
_0811109C: .4byte 0x080A34C5
|
||||
thumb_func_end AnimTranslateStinger
|
||||
|
||||
thumb_func_start AnimMissileArc
|
||||
AnimMissileArc: @ 0x081110A0
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
movs r1, #1
|
||||
bl InitSpritePosToAnimAttacker
|
||||
ldr r0, _0811110C
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081110C0
|
||||
ldr r1, _08111110
|
||||
ldrh r0, [r1, #4]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r1, #4]
|
||||
_081110C0:
|
||||
ldr r4, _08111110
|
||||
ldrh r0, [r4, #8]
|
||||
strh r0, [r6, #0x2e]
|
||||
ldr r5, _08111114
|
||||
ldrb r0, [r5]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r1, [r4, #4]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x32]
|
||||
ldrb r0, [r5]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r1, [r4, #6]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x36]
|
||||
ldrh r0, [r4, #0xa]
|
||||
strh r0, [r6, #0x38]
|
||||
adds r0, r6, #0
|
||||
bl InitAnimArcTranslation
|
||||
ldr r0, _08111118
|
||||
str r0, [r6, #0x1c]
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x3e
|
||||
ldrb r0, [r2]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0811110C: .4byte 0x020380D6
|
||||
_08111110: .4byte 0x020380BE
|
||||
_08111114: .4byte 0x020380D7
|
||||
_08111118: .4byte 0x0811111D
|
||||
thumb_func_end AnimMissileArc
|
||||
|
||||
thumb_func_start AnimMissileArcStep
|
||||
AnimMissileArcStep: @ 0x0811111C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, #0x14
|
||||
adds r4, r0, #0
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3e
|
||||
ldrb r0, [r2]
|
||||
movs r1, #5
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
strb r1, [r2]
|
||||
adds r0, r4, #0
|
||||
bl TranslateAnimHorizontalArc
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08111148
|
||||
adds r0, r4, #0
|
||||
bl DestroyAnimSprite
|
||||
b _081111D8
|
||||
_08111148:
|
||||
movs r0, #0x2e
|
||||
adds r0, r0, r4
|
||||
mov r8, r0
|
||||
ldrh r7, [r4, #0x20]
|
||||
ldrh r5, [r4, #0x24]
|
||||
ldrh r1, [r4, #0x22]
|
||||
mov ip, r1
|
||||
ldrh r6, [r4, #0x26]
|
||||
mov r2, r8
|
||||
add r1, sp, #4
|
||||
movs r3, #7
|
||||
_0811115E:
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r1]
|
||||
adds r2, #2
|
||||
adds r1, #2
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bge _0811115E
|
||||
adds r0, r7, r5
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r5, r0, #0x10
|
||||
mov r2, ip
|
||||
adds r0, r2, r6
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
adds r0, r4, #0
|
||||
bl TranslateAnimHorizontalArc
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081111D8
|
||||
ldrh r0, [r4, #0x24]
|
||||
ldrh r1, [r4, #0x20]
|
||||
adds r0, r0, r1
|
||||
lsls r1, r5, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
ldrh r1, [r4, #0x26]
|
||||
ldrh r2, [r4, #0x22]
|
||||
adds r1, r1, r2
|
||||
lsls r2, r6, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
subs r1, r1, r2
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
bl ArcTan2Neg
|
||||
lsls r0, r0, #0x10
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
lsrs r0, r0, #0x10
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
str r0, [sp]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
adds r2, r3, #0
|
||||
bl TrySetSpriteRotScale
|
||||
add r2, sp, #4
|
||||
mov r1, r8
|
||||
movs r3, #7
|
||||
_081111CA:
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r1]
|
||||
adds r2, #2
|
||||
adds r1, #2
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bge _081111CA
|
||||
_081111D8:
|
||||
add sp, #0x14
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end AnimMissileArcStep
|
||||
|
||||
thumb_func_start sub_081111E4
|
||||
sub_081111E4: @ 0x081111E4
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _081111F8
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, #0
|
||||
bne _08111200
|
||||
ldr r4, _081111FC
|
||||
b _08111202
|
||||
.align 2, 0
|
||||
_081111F8: .4byte 0x020380BE
|
||||
_081111FC: .4byte 0x020380D6
|
||||
_08111200:
|
||||
ldr r4, _08111234
|
||||
_08111202:
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x20]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
adds r0, #0x12
|
||||
strh r0, [r5, #0x22]
|
||||
ldr r1, _08111238
|
||||
adds r0, r5, #0
|
||||
bl StoreSpriteCallbackInData6
|
||||
ldr r0, _0811123C
|
||||
str r0, [r5, #0x1c]
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08111234: .4byte 0x020380D7
|
||||
_08111238: .4byte 0x080A6015
|
||||
_0811123C: .4byte 0x080A6085
|
||||
thumb_func_end sub_081111E4
|
||||
|
||||
2970
asm/cable_car.s
Normal file
2970
asm/cable_car.s
Normal file
File diff suppressed because it is too large
Load Diff
2890
asm/cable_club.s
Normal file
2890
asm/cable_club.s
Normal file
File diff suppressed because it is too large
Load Diff
161
asm/clear_save_data_screen.s
Normal file
161
asm/clear_save_data_screen.s
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start CB2_InitClearSaveDataScreen
|
||||
CB2_InitClearSaveDataScreen: @ 0x0817AB80
|
||||
push {lr}
|
||||
bl SetupClearSaveDataScreen
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _0817AB94
|
||||
ldr r0, _0817AB98
|
||||
movs r1, #0
|
||||
bl CreateTask
|
||||
_0817AB94:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817AB98: .4byte 0x0817AB9D
|
||||
thumb_func_end CB2_InitClearSaveDataScreen
|
||||
|
||||
thumb_func_start Task_DoClearSaveDataScreenYesNo
|
||||
Task_DoClearSaveDataScreenYesNo: @ 0x0817AB9C
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0xc
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #2
|
||||
movs r3, #0xe
|
||||
bl DrawStdFrameWithCustomTileAndPalette
|
||||
ldr r2, _0817ABF0
|
||||
movs r5, #2
|
||||
str r5, [sp]
|
||||
movs r0, #0
|
||||
str r0, [sp, #4]
|
||||
str r0, [sp, #8]
|
||||
movs r1, #1
|
||||
movs r3, #0
|
||||
bl AddTextPrinterParameterized
|
||||
ldr r0, _0817ABF4
|
||||
str r5, [sp]
|
||||
movs r1, #0xe
|
||||
str r1, [sp, #4]
|
||||
movs r1, #1
|
||||
str r1, [sp, #8]
|
||||
movs r2, #0
|
||||
movs r3, #2
|
||||
bl sub_08198C08
|
||||
ldr r1, _0817ABF8
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0817ABFC
|
||||
str r1, [r0]
|
||||
add sp, #0xc
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817ABF0: .4byte 0x085CDB60
|
||||
_0817ABF4: .4byte 0x085CDBA8
|
||||
_0817ABF8: .4byte 0x03005B60
|
||||
_0817ABFC: .4byte 0x0817AC01
|
||||
thumb_func_end Task_DoClearSaveDataScreenYesNo
|
||||
|
||||
thumb_func_start Task_ClearSaveDataScreenYesNoChoice
|
||||
Task_ClearSaveDataScreenYesNoChoice: @ 0x0817AC00
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0xc
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
bl Menu_ProcessInputNoWrapClearOnChoose
|
||||
lsls r0, r0, #0x18
|
||||
asrs r4, r0, #0x18
|
||||
cmp r4, #0
|
||||
beq _0817AC28
|
||||
cmp r4, #0
|
||||
bgt _0817AC22
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r4, r0
|
||||
beq _0817AC60
|
||||
b _0817AC72
|
||||
_0817AC22:
|
||||
cmp r4, #1
|
||||
beq _0817AC60
|
||||
b _0817AC72
|
||||
_0817AC28:
|
||||
movs r0, #0
|
||||
movs r1, #0x11
|
||||
bl FillWindowPixelBuffer
|
||||
ldr r2, _0817AC54
|
||||
movs r0, #2
|
||||
str r0, [sp]
|
||||
str r4, [sp, #4]
|
||||
str r4, [sp, #8]
|
||||
movs r0, #0
|
||||
movs r1, #1
|
||||
movs r3, #0
|
||||
bl AddTextPrinterParameterized
|
||||
ldr r1, _0817AC58
|
||||
lsls r0, r5, #2
|
||||
adds r0, r0, r5
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0817AC5C
|
||||
str r1, [r0]
|
||||
b _0817AC72
|
||||
.align 2, 0
|
||||
_0817AC54: .4byte 0x085CDB7A
|
||||
_0817AC58: .4byte 0x03005B60
|
||||
_0817AC5C: .4byte 0x0817AC81
|
||||
_0817AC60:
|
||||
movs r0, #5
|
||||
bl PlaySE
|
||||
adds r0, r5, #0
|
||||
bl DestroyTask
|
||||
ldr r0, _0817AC7C
|
||||
bl SetMainCallback2
|
||||
_0817AC72:
|
||||
add sp, #0xc
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817AC7C: .4byte 0x0817AE95
|
||||
thumb_func_end Task_ClearSaveDataScreenYesNoChoice
|
||||
|
||||
thumb_func_start Task_ClearSaveData
|
||||
Task_ClearSaveData: @ 0x0817AC80
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
bl ClearSaveData
|
||||
adds r0, r4, #0
|
||||
bl DestroyTask
|
||||
ldr r0, _0817ACA0
|
||||
bl SetMainCallback2
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817ACA0: .4byte 0x0817AE95
|
||||
thumb_func_end Task_ClearSaveData
|
||||
|
||||
thumb_func_start MainCB
|
||||
MainCB: @ 0x0817ACA4
|
||||
push {lr}
|
||||
bl RunTasks
|
||||
bl UpdatePaletteFade
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end MainCB
|
||||
|
||||
184
asm/clock.s
Normal file
184
asm/clock.s
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start InitTimeBasedEvents
|
||||
InitTimeBasedEvents: @ 0x0809E050
|
||||
push {lr}
|
||||
ldr r0, _0809E078
|
||||
bl FlagSet
|
||||
bl RtcCalcLocalTime
|
||||
ldr r0, _0809E07C
|
||||
ldr r2, [r0]
|
||||
adds r2, #0xa0
|
||||
ldr r3, _0809E080
|
||||
ldr r0, [r3]
|
||||
ldr r1, [r3, #4]
|
||||
str r0, [r2]
|
||||
str r1, [r2, #4]
|
||||
ldr r0, _0809E084
|
||||
ldrh r1, [r3]
|
||||
bl VarSet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809E078: .4byte 0x00000895
|
||||
_0809E07C: .4byte 0x03005AF0
|
||||
_0809E080: .4byte 0x03005A50
|
||||
_0809E084: .4byte 0x00004040
|
||||
thumb_func_end InitTimeBasedEvents
|
||||
|
||||
thumb_func_start DoTimeBasedEvents
|
||||
DoTimeBasedEvents: @ 0x0809E088
|
||||
push {r4, lr}
|
||||
ldr r0, _0809E0B8
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _0809E0B2
|
||||
bl sub_0813B9F8
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0809E0B2
|
||||
bl RtcCalcLocalTime
|
||||
ldr r4, _0809E0BC
|
||||
adds r0, r4, #0
|
||||
bl UpdatePerDay
|
||||
adds r0, r4, #0
|
||||
bl UpdatePerMinute
|
||||
_0809E0B2:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809E0B8: .4byte 0x00000895
|
||||
_0809E0BC: .4byte 0x03005A50
|
||||
thumb_func_end DoTimeBasedEvents
|
||||
|
||||
thumb_func_start UpdatePerDay
|
||||
UpdatePerDay: @ 0x0809E0C0
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _0809E12C
|
||||
bl GetVarPointer
|
||||
adds r6, r0, #0
|
||||
ldrh r0, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r1, [r5, r2]
|
||||
cmp r0, r1
|
||||
beq _0809E126
|
||||
cmp r0, r1
|
||||
bgt _0809E126
|
||||
ldrh r4, [r5]
|
||||
subs r4, r4, r0
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
bl ClearDailyFlags
|
||||
adds r0, r4, #0
|
||||
bl UpdateDewfordTrendPerDay
|
||||
adds r0, r4, #0
|
||||
bl UpdateTVShowsPerDay
|
||||
adds r0, r4, #0
|
||||
bl UpdateWeatherPerDay
|
||||
adds r0, r4, #0
|
||||
bl UpdatePartyPokerusTime
|
||||
adds r0, r4, #0
|
||||
bl UpdateMirageRnd
|
||||
adds r0, r4, #0
|
||||
bl UpdateBirchState
|
||||
adds r0, r4, #0
|
||||
bl UpdateFrontierManiac
|
||||
adds r0, r4, #0
|
||||
bl UpdateFrontierGambler
|
||||
adds r0, r4, #0
|
||||
bl SetShoalItemFlag
|
||||
adds r0, r4, #0
|
||||
bl SetRandomLotteryNumber
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r6]
|
||||
_0809E126:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809E12C: .4byte 0x00004040
|
||||
thumb_func_end UpdatePerDay
|
||||
|
||||
thumb_func_start UpdatePerMinute
|
||||
UpdatePerMinute: @ 0x0809E130
|
||||
push {r4, r5, r6, lr}
|
||||
sub sp, #8
|
||||
adds r5, r0, #0
|
||||
mov r4, sp
|
||||
ldr r6, _0809E188
|
||||
ldr r1, [r6]
|
||||
adds r1, #0xa0
|
||||
mov r0, sp
|
||||
adds r2, r5, #0
|
||||
bl CalcTimeDifference
|
||||
mov r0, sp
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r1, r0, #4
|
||||
subs r1, r1, r0
|
||||
lsls r1, r1, #5
|
||||
movs r2, #2
|
||||
ldrsb r2, [r4, r2]
|
||||
lsls r0, r2, #4
|
||||
subs r0, r0, r2
|
||||
lsls r0, r0, #2
|
||||
adds r1, r1, r0
|
||||
movs r0, #3
|
||||
ldrsb r0, [r4, r0]
|
||||
adds r0, r1, r0
|
||||
cmp r0, #0
|
||||
beq _0809E180
|
||||
cmp r0, #0
|
||||
blt _0809E180
|
||||
bl BerryTreeTimeUpdate
|
||||
ldr r2, [r6]
|
||||
adds r2, #0xa0
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r5, #4]
|
||||
str r0, [r2]
|
||||
str r1, [r2, #4]
|
||||
_0809E180:
|
||||
add sp, #8
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809E188: .4byte 0x03005AF0
|
||||
thumb_func_end UpdatePerMinute
|
||||
|
||||
thumb_func_start ReturnFromStartWallClock
|
||||
ReturnFromStartWallClock: @ 0x0809E18C
|
||||
push {lr}
|
||||
bl InitTimeBasedEvents
|
||||
ldr r0, _0809E19C
|
||||
bl SetMainCallback2
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809E19C: .4byte 0x08085B35
|
||||
thumb_func_end ReturnFromStartWallClock
|
||||
|
||||
thumb_func_start StartWallClock
|
||||
StartWallClock: @ 0x0809E1A0
|
||||
push {lr}
|
||||
ldr r0, _0809E1B4
|
||||
bl SetMainCallback2
|
||||
ldr r1, _0809E1B8
|
||||
ldr r0, _0809E1BC
|
||||
str r0, [r1, #8]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809E1B4: .4byte 0x08134A3D
|
||||
_0809E1B8: .4byte 0x03002360
|
||||
_0809E1BC: .4byte 0x0809E18D
|
||||
thumb_func_end StartWallClock
|
||||
|
||||
214
asm/coins.s
Normal file
214
asm/coins.s
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start PrintCoinsString
|
||||
PrintCoinsString: @ 0x08145C20
|
||||
push {r4, lr}
|
||||
sub sp, #0xc
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08145C5C
|
||||
movs r2, #1
|
||||
movs r3, #4
|
||||
bl ConvertIntToDecimalStringN
|
||||
ldr r4, _08145C60
|
||||
ldr r1, _08145C64
|
||||
adds r0, r4, #0
|
||||
bl StringExpandPlaceholders
|
||||
ldr r0, _08145C68
|
||||
ldrb r0, [r0]
|
||||
movs r1, #2
|
||||
str r1, [sp]
|
||||
movs r1, #0
|
||||
str r1, [sp, #4]
|
||||
str r1, [sp, #8]
|
||||
movs r1, #1
|
||||
adds r2, r4, #0
|
||||
movs r3, #8
|
||||
bl AddTextPrinterParameterized
|
||||
add sp, #0xc
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08145C5C: .4byte 0x02021C40
|
||||
_08145C60: .4byte 0x02021C7C
|
||||
_08145C64: .4byte 0x085C9443
|
||||
_08145C68: .4byte 0x0203A868
|
||||
thumb_func_end PrintCoinsString
|
||||
|
||||
thumb_func_start ShowCoinsWindow
|
||||
ShowCoinsWindow: @ 0x08145C6C
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0x18
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
adds r3, r2, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
lsls r3, r3, #0x18
|
||||
lsrs r3, r3, #0x18
|
||||
movs r0, #8
|
||||
str r0, [sp]
|
||||
movs r0, #2
|
||||
str r0, [sp, #4]
|
||||
movs r0, #0xf
|
||||
str r0, [sp, #8]
|
||||
movs r0, #0x9b
|
||||
lsls r0, r0, #1
|
||||
str r0, [sp, #0xc]
|
||||
add r0, sp, #0x10
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
bl SetWindowTemplateFields
|
||||
ldr r4, _08145CD0
|
||||
add r0, sp, #0x10
|
||||
bl AddWindow
|
||||
strb r0, [r4]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #0
|
||||
bl FillWindowPixelBuffer
|
||||
ldrb r0, [r4]
|
||||
bl PutWindowTilemap
|
||||
ldrb r0, [r4]
|
||||
movs r2, #0x85
|
||||
lsls r2, r2, #2
|
||||
movs r1, #0
|
||||
movs r3, #0xe
|
||||
bl DrawStdFrameWithCustomTileAndPalette
|
||||
adds r0, r5, #0
|
||||
bl PrintCoinsString
|
||||
add sp, #0x18
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08145CD0: .4byte 0x0203A868
|
||||
thumb_func_end ShowCoinsWindow
|
||||
|
||||
thumb_func_start HideCoinsWindow
|
||||
HideCoinsWindow: @ 0x08145CD4
|
||||
push {r4, lr}
|
||||
ldr r4, _08145CEC
|
||||
ldrb r0, [r4]
|
||||
movs r1, #1
|
||||
bl DrawStdWindowFrame
|
||||
ldrb r0, [r4]
|
||||
bl RemoveWindow
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08145CEC: .4byte 0x0203A868
|
||||
thumb_func_end HideCoinsWindow
|
||||
|
||||
thumb_func_start GetCoins
|
||||
GetCoins: @ 0x08145CF0
|
||||
ldr r0, _08145D0C
|
||||
ldr r1, [r0]
|
||||
ldr r0, _08145D10
|
||||
adds r1, r1, r0
|
||||
ldr r0, _08145D14
|
||||
ldr r0, [r0]
|
||||
adds r0, #0xac
|
||||
ldr r0, [r0]
|
||||
ldrh r1, [r1]
|
||||
eors r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08145D0C: .4byte 0x03005AEC
|
||||
_08145D10: .4byte 0x00000494
|
||||
_08145D14: .4byte 0x03005AF0
|
||||
thumb_func_end GetCoins
|
||||
|
||||
thumb_func_start SetCoins
|
||||
SetCoins: @ 0x08145D18
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r1, _08145D34
|
||||
ldr r2, [r1]
|
||||
ldr r1, _08145D38
|
||||
ldr r1, [r1]
|
||||
adds r1, #0xac
|
||||
ldr r1, [r1]
|
||||
eors r0, r1
|
||||
ldr r1, _08145D3C
|
||||
adds r2, r2, r1
|
||||
strh r0, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08145D34: .4byte 0x03005AEC
|
||||
_08145D38: .4byte 0x03005AF0
|
||||
_08145D3C: .4byte 0x00000494
|
||||
thumb_func_end SetCoins
|
||||
|
||||
thumb_func_start GiveCoins
|
||||
GiveCoins: @ 0x08145D40
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
bl GetCoins
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r1, r0, #0x10
|
||||
ldr r0, _08145D58
|
||||
cmp r1, r0
|
||||
bls _08145D5C
|
||||
movs r0, #0
|
||||
b _08145D80
|
||||
.align 2, 0
|
||||
_08145D58: .4byte 0x0000270E
|
||||
_08145D5C:
|
||||
adds r0, r1, r4
|
||||
cmp r1, r0
|
||||
ble _08145D6C
|
||||
ldr r0, _08145D68
|
||||
b _08145D7A
|
||||
.align 2, 0
|
||||
_08145D68: .4byte 0x0000270F
|
||||
_08145D6C:
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r1, r0, #0x10
|
||||
ldr r0, _08145D88
|
||||
cmp r1, r0
|
||||
bls _08145D78
|
||||
adds r1, r0, #0
|
||||
_08145D78:
|
||||
adds r0, r1, #0
|
||||
_08145D7A:
|
||||
bl SetCoins
|
||||
movs r0, #1
|
||||
_08145D80:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08145D88: .4byte 0x0000270F
|
||||
thumb_func_end GiveCoins
|
||||
|
||||
thumb_func_start TakeCoins
|
||||
TakeCoins: @ 0x08145D8C
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
bl GetCoins
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, r4
|
||||
bhs _08145DA2
|
||||
movs r0, #0
|
||||
b _08145DAE
|
||||
_08145DA2:
|
||||
subs r0, r0, r4
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
bl SetCoins
|
||||
movs r0, #1
|
||||
_08145DAE:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end TakeCoins
|
||||
|
||||
16451
asm/contest.s
Normal file
16451
asm/contest.s
Normal file
File diff suppressed because it is too large
Load Diff
5638
asm/contest_ai.s
Normal file
5638
asm/contest_ai.s
Normal file
File diff suppressed because it is too large
Load Diff
3258
asm/contest_effect.s
Normal file
3258
asm/contest_effect.s
Normal file
File diff suppressed because it is too large
Load Diff
6122
asm/contest_link_80F57C4.s
Normal file
6122
asm/contest_link_80F57C4.s
Normal file
File diff suppressed because it is too large
Load Diff
1443
asm/contest_link_80FC4F4.s
Normal file
1443
asm/contest_link_80FC4F4.s
Normal file
File diff suppressed because it is too large
Load Diff
766
asm/contest_link_81D9DE4.s
Normal file
766
asm/contest_link_81D9DE4.s
Normal file
|
|
@ -0,0 +1,766 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start sub_081D97DC
|
||||
sub_081D97DC: @ 0x081D97DC
|
||||
push {lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r1, _081D97F0
|
||||
ldr r2, _081D97F4
|
||||
bl SetTaskFuncWithFollowupFunc
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D97F0: .4byte 0x081D9B79
|
||||
_081D97F4: .4byte 0x081D97F9
|
||||
thumb_func_end sub_081D97DC
|
||||
|
||||
thumb_func_start sub_081D97F8
|
||||
sub_081D97F8: @ 0x081D97F8
|
||||
push {lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldr r1, _081D980C
|
||||
ldr r2, _081D9810
|
||||
bl SetTaskFuncWithFollowupFunc
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D980C: .4byte 0x081D9C49
|
||||
_081D9810: .4byte 0x081D9815
|
||||
thumb_func_end sub_081D97F8
|
||||
|
||||
thumb_func_start sub_081D9814
|
||||
sub_081D9814: @ 0x081D9814
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
sub sp, #8
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
movs r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
movs r3, #0
|
||||
ldr r5, _081D9894
|
||||
mov r8, r5
|
||||
ldr r0, _081D9898
|
||||
mov ip, r0
|
||||
add r1, sp, #4
|
||||
mov sb, r1
|
||||
ldrb r4, [r5]
|
||||
cmp r3, r4
|
||||
bhs _081D985E
|
||||
lsls r0, r6, #2
|
||||
adds r0, r0, r6
|
||||
lsls r4, r0, #3
|
||||
ldr r7, _081D989C
|
||||
_081D9844:
|
||||
mov r0, sp
|
||||
adds r2, r0, r3
|
||||
adds r1, r3, #1
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r4
|
||||
adds r0, r0, r7
|
||||
ldrh r0, [r0]
|
||||
strb r0, [r2]
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r3, r1, #0x18
|
||||
ldrb r1, [r5]
|
||||
cmp r3, r1
|
||||
blo _081D9844
|
||||
_081D985E:
|
||||
movs r3, #0
|
||||
mov r4, r8
|
||||
ldrb r0, [r4]
|
||||
cmp r3, r0
|
||||
bhs _081D9882
|
||||
adds r4, r0, #0
|
||||
mov r2, sp
|
||||
_081D986C:
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
cmp r3, r4
|
||||
bhs _081D9882
|
||||
mov r7, sp
|
||||
adds r1, r7, r3
|
||||
ldrb r0, [r2]
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
beq _081D986C
|
||||
_081D9882:
|
||||
mov r0, r8
|
||||
ldrb r0, [r0]
|
||||
cmp r3, r0
|
||||
bne _081D98A0
|
||||
movs r0, #0
|
||||
mov r1, ip
|
||||
strh r0, [r1]
|
||||
b _081D98A6
|
||||
.align 2, 0
|
||||
_081D9894: .4byte 0x02039BD0
|
||||
_081D9898: .4byte 0x02037280
|
||||
_081D989C: .4byte 0x03005B68
|
||||
_081D98A0:
|
||||
movs r0, #1
|
||||
mov r4, ip
|
||||
strh r0, [r4]
|
||||
_081D98A6:
|
||||
movs r3, #0
|
||||
mov r7, r8
|
||||
mov r0, r8
|
||||
ldrb r0, [r0]
|
||||
cmp r3, r0
|
||||
bhs _081D98D6
|
||||
mov r4, sb
|
||||
lsls r0, r6, #2
|
||||
adds r0, r0, r6
|
||||
lsls r2, r0, #3
|
||||
ldr r5, _081D9934
|
||||
_081D98BC:
|
||||
adds r1, r4, r3
|
||||
adds r0, r3, #5
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
adds r0, r0, r5
|
||||
ldrh r0, [r0]
|
||||
strb r0, [r1]
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
ldrb r1, [r7]
|
||||
cmp r3, r1
|
||||
blo _081D98BC
|
||||
_081D98D6:
|
||||
mov r4, r8
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #4
|
||||
beq _081D9964
|
||||
bl GetMultiplayerId
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081D9964
|
||||
ldr r0, _081D9938
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x2c
|
||||
ldrb r2, [r1]
|
||||
movs r3, #1
|
||||
ldrb r1, [r4]
|
||||
adds r5, r0, #0
|
||||
cmp r3, r1
|
||||
bhs _081D9918
|
||||
adds r4, r5, #0
|
||||
mov r7, r8
|
||||
ldrb r1, [r7]
|
||||
_081D9900:
|
||||
lsls r0, r3, #6
|
||||
adds r0, r0, r4
|
||||
adds r0, #0x2c
|
||||
ldrb r7, [r0]
|
||||
cmp r2, r7
|
||||
bhs _081D990E
|
||||
ldrb r2, [r0]
|
||||
_081D990E:
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
cmp r3, r1
|
||||
blo _081D9900
|
||||
_081D9918:
|
||||
cmp r2, #0
|
||||
beq _081D9922
|
||||
subs r0, r2, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
_081D9922:
|
||||
movs r4, #1
|
||||
movs r3, #0
|
||||
mov r0, r8
|
||||
ldrb r0, [r0]
|
||||
cmp r3, r0
|
||||
bhs _081D9958
|
||||
adds r0, r5, #0
|
||||
b _081D994E
|
||||
.align 2, 0
|
||||
_081D9934: .4byte 0x03005B68
|
||||
_081D9938: .4byte 0x02039AA0
|
||||
_081D993C:
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
mov r1, r8
|
||||
ldrb r1, [r1]
|
||||
cmp r3, r1
|
||||
bhs _081D9958
|
||||
lsls r0, r3, #6
|
||||
adds r0, r0, r5
|
||||
_081D994E:
|
||||
adds r0, #0x2d
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _081D993C
|
||||
movs r4, #0
|
||||
_081D9958:
|
||||
mov r0, sp
|
||||
ldrb r0, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r2, r4, #0
|
||||
bl sub_080DA460
|
||||
_081D9964:
|
||||
mov r0, sb
|
||||
bl sub_080F8F64
|
||||
ldr r1, _081D9984
|
||||
strb r0, [r1]
|
||||
ldr r0, _081D9988
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #3
|
||||
bhi _081D9994
|
||||
ldr r1, _081D998C
|
||||
ldr r2, _081D9990
|
||||
adds r0, r6, #0
|
||||
bl SetTaskFuncWithFollowupFunc
|
||||
b _081D99A2
|
||||
.align 2, 0
|
||||
_081D9984: .4byte 0x02039BCB
|
||||
_081D9988: .4byte 0x02039BD0
|
||||
_081D998C: .4byte 0x081D9D19
|
||||
_081D9990: .4byte 0x081D99B9
|
||||
_081D9994:
|
||||
ldr r0, _081D99B0
|
||||
lsls r1, r6, #2
|
||||
adds r1, r1, r6
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r0
|
||||
ldr r0, _081D99B4
|
||||
str r0, [r1]
|
||||
_081D99A2:
|
||||
add sp, #8
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D99B0: .4byte 0x03005B60
|
||||
_081D99B4: .4byte 0x081D99B9
|
||||
thumb_func_end sub_081D9814
|
||||
|
||||
thumb_func_start sub_081D99B8
|
||||
sub_081D99B8: @ 0x081D99B8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
ldr r0, _081D99D8
|
||||
ldrb r0, [r0]
|
||||
bl sub_080DA800
|
||||
ldr r1, _081D99DC
|
||||
ldr r2, _081D99E0
|
||||
adds r0, r4, #0
|
||||
bl SetTaskFuncWithFollowupFunc
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D99D8: .4byte 0x02039BCC
|
||||
_081D99DC: .4byte 0x080FD795
|
||||
_081D99E0: .4byte 0x081D99E5
|
||||
thumb_func_end sub_081D99B8
|
||||
|
||||
thumb_func_start sub_081D99E4
|
||||
sub_081D99E4: @ 0x081D99E4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x18
|
||||
lsrs r4, r4, #0x18
|
||||
movs r0, #0
|
||||
bl SortContestants
|
||||
ldr r1, _081D9A04
|
||||
ldr r2, _081D9A08
|
||||
adds r0, r4, #0
|
||||
bl SetTaskFuncWithFollowupFunc
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D9A04: .4byte 0x080FD825
|
||||
_081D9A08: .4byte 0x080F8F99
|
||||
thumb_func_end sub_081D99E4
|
||||
|
||||
thumb_func_start sub_081D9A0C
|
||||
sub_081D9A0C: @ 0x081D9A0C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
lsls r7, r5, #2
|
||||
adds r0, r7, r5
|
||||
lsls r4, r0, #3
|
||||
ldr r6, _081D9A48
|
||||
adds r0, r4, r6
|
||||
adds r0, #0x18
|
||||
bl sub_080FCEE0
|
||||
cmp r0, #0
|
||||
beq _081D9ABE
|
||||
adds r0, r6, #0
|
||||
subs r0, #8
|
||||
adds r4, r4, r0
|
||||
movs r1, #8
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _081D9A4C
|
||||
cmp r0, #1
|
||||
beq _081D9A7C
|
||||
movs r0, #0
|
||||
strh r0, [r4, #8]
|
||||
strh r0, [r4, #0x20]
|
||||
adds r0, r5, #0
|
||||
bl SwitchTaskToFollowupFunc
|
||||
b _081D9ABE
|
||||
.align 2, 0
|
||||
_081D9A48: .4byte 0x03005B68
|
||||
_081D9A4C:
|
||||
bl IsLinkTaskFinished
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9ABE
|
||||
ldr r0, _081D9A74
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #6
|
||||
ldr r1, _081D9A78
|
||||
adds r0, r0, r1
|
||||
movs r1, #0x40
|
||||
bl sub_080FCD64
|
||||
cmp r0, #1
|
||||
bne _081D9ABE
|
||||
ldrh r0, [r4, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #8]
|
||||
b _081D9ABE
|
||||
.align 2, 0
|
||||
_081D9A74: .4byte 0x02039BC5
|
||||
_081D9A78: .4byte 0x02039AA0
|
||||
_081D9A7C:
|
||||
bl sub_080FCDCC
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9ABE
|
||||
movs r4, #0
|
||||
ldr r0, _081D9A90
|
||||
adds r6, r7, #0
|
||||
b _081D9AAA
|
||||
.align 2, 0
|
||||
_081D9A90: .4byte 0x02039BD0
|
||||
_081D9A94:
|
||||
lsls r0, r4, #6
|
||||
ldr r1, _081D9AC4
|
||||
adds r0, r0, r1
|
||||
lsls r1, r4, #8
|
||||
ldr r2, _081D9AC8
|
||||
adds r1, r1, r2
|
||||
movs r2, #0x40
|
||||
bl memcpy
|
||||
adds r4, #1
|
||||
ldr r0, _081D9ACC
|
||||
_081D9AAA:
|
||||
ldrb r0, [r0]
|
||||
cmp r4, r0
|
||||
blt _081D9A94
|
||||
ldr r0, _081D9AD0
|
||||
adds r1, r6, r5
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #8]
|
||||
_081D9ABE:
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D9AC4: .4byte 0x02039AA0
|
||||
_081D9AC8: .4byte 0x0202207C
|
||||
_081D9ACC: .4byte 0x02039BD0
|
||||
_081D9AD0: .4byte 0x03005B60
|
||||
thumb_func_end sub_081D9A0C
|
||||
|
||||
thumb_func_start sub_081D9AD4
|
||||
sub_081D9AD4: @ 0x081D9AD4
|
||||
push {r4, r5, r6, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r4
|
||||
lsls r5, r0, #3
|
||||
ldr r6, _081D9B10
|
||||
adds r0, r5, r6
|
||||
adds r0, #0x18
|
||||
bl sub_080FCEE0
|
||||
cmp r0, #0
|
||||
beq _081D9B64
|
||||
adds r0, r6, #0
|
||||
subs r0, #8
|
||||
adds r5, r5, r0
|
||||
movs r1, #8
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
beq _081D9B14
|
||||
cmp r0, #1
|
||||
beq _081D9B3C
|
||||
movs r0, #0
|
||||
strh r0, [r5, #8]
|
||||
strh r0, [r5, #0x20]
|
||||
adds r0, r4, #0
|
||||
bl SwitchTaskToFollowupFunc
|
||||
b _081D9B64
|
||||
.align 2, 0
|
||||
_081D9B10: .4byte 0x03005B68
|
||||
_081D9B14:
|
||||
bl GetMultiplayerId
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081D9B5E
|
||||
bl IsLinkTaskFinished
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9B64
|
||||
ldr r0, _081D9B38
|
||||
movs r1, #4
|
||||
bl sub_080FCD64
|
||||
cmp r0, #1
|
||||
bne _081D9B64
|
||||
b _081D9B5E
|
||||
.align 2, 0
|
||||
_081D9B38: .4byte 0x03005AE0
|
||||
_081D9B3C:
|
||||
movs r0, #0
|
||||
bl sub_080FCDA0
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9B64
|
||||
ldr r0, _081D9B6C
|
||||
ldr r4, _081D9B70
|
||||
adds r1, r4, #0
|
||||
movs r2, #4
|
||||
bl memcpy
|
||||
ldr r0, _081D9B74
|
||||
adds r1, r4, #0
|
||||
movs r2, #4
|
||||
bl memcpy
|
||||
_081D9B5E:
|
||||
ldrh r0, [r5, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r5, #8]
|
||||
_081D9B64:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D9B6C: .4byte 0x03005AE0
|
||||
_081D9B70: .4byte 0x0202207C
|
||||
_081D9B74: .4byte 0x03005E18
|
||||
thumb_func_end sub_081D9AD4
|
||||
|
||||
thumb_func_start sub_081D9B78
|
||||
sub_081D9B78: @ 0x081D9B78
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0xc
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
lsls r0, r6, #2
|
||||
mov sb, r0
|
||||
adds r0, r0, r6
|
||||
lsls r5, r0, #3
|
||||
ldr r1, _081D9BC4
|
||||
mov r8, r1
|
||||
adds r0, r5, r1
|
||||
adds r0, #0x18
|
||||
bl sub_080FCEE0
|
||||
cmp r0, #0
|
||||
beq _081D9C2E
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
add r0, r8
|
||||
mov sl, r0
|
||||
adds r4, r5, r0
|
||||
movs r1, #8
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _081D9BC8
|
||||
cmp r0, #1
|
||||
beq _081D9BEA
|
||||
movs r0, #0
|
||||
strh r0, [r4, #8]
|
||||
strh r0, [r4, #0x20]
|
||||
adds r0, r6, #0
|
||||
bl SwitchTaskToFollowupFunc
|
||||
b _081D9C2E
|
||||
.align 2, 0
|
||||
_081D9BC4: .4byte 0x03005B68
|
||||
_081D9BC8:
|
||||
bl IsLinkTaskFinished
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9C2E
|
||||
add r0, sp, #8
|
||||
movs r1, #0x6e
|
||||
strh r1, [r0]
|
||||
movs r1, #2
|
||||
bl sub_080FCD64
|
||||
cmp r0, #1
|
||||
bne _081D9C2E
|
||||
ldrh r0, [r4, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #8]
|
||||
b _081D9C2E
|
||||
_081D9BEA:
|
||||
bl sub_080FCDCC
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9C2E
|
||||
movs r1, #0
|
||||
ldr r7, _081D9C40
|
||||
ldrb r0, [r7]
|
||||
cmp r1, r0
|
||||
bge _081D9C20
|
||||
mov r0, r8
|
||||
adds r0, #0xa
|
||||
adds r3, r5, r0
|
||||
ldr r4, _081D9C44
|
||||
mov r2, sp
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #1
|
||||
_081D9C0C:
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r2]
|
||||
strh r0, [r3]
|
||||
adds r3, #2
|
||||
adds r4, r4, r5
|
||||
adds r2, #2
|
||||
adds r1, #1
|
||||
ldrb r0, [r7]
|
||||
cmp r1, r0
|
||||
blt _081D9C0C
|
||||
_081D9C20:
|
||||
mov r0, sb
|
||||
adds r1, r0, r6
|
||||
lsls r1, r1, #3
|
||||
add r1, sl
|
||||
ldrh r0, [r1, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #8]
|
||||
_081D9C2E:
|
||||
add sp, #0xc
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D9C40: .4byte 0x02039BD0
|
||||
_081D9C44: .4byte 0x0202207C
|
||||
thumb_func_end sub_081D9B78
|
||||
|
||||
thumb_func_start sub_081D9C48
|
||||
sub_081D9C48: @ 0x081D9C48
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0xc
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
lsls r0, r6, #2
|
||||
mov sb, r0
|
||||
adds r0, r0, r6
|
||||
lsls r5, r0, #3
|
||||
ldr r1, _081D9C94
|
||||
mov r8, r1
|
||||
adds r0, r5, r1
|
||||
adds r0, #0x18
|
||||
bl sub_080FCEE0
|
||||
cmp r0, #0
|
||||
beq _081D9CFE
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
add r0, r8
|
||||
mov sl, r0
|
||||
adds r4, r5, r0
|
||||
movs r1, #8
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _081D9C98
|
||||
cmp r0, #1
|
||||
beq _081D9CBA
|
||||
movs r0, #0
|
||||
strh r0, [r4, #8]
|
||||
strh r0, [r4, #0x20]
|
||||
adds r0, r6, #0
|
||||
bl SwitchTaskToFollowupFunc
|
||||
b _081D9CFE
|
||||
.align 2, 0
|
||||
_081D9C94: .4byte 0x03005B68
|
||||
_081D9C98:
|
||||
bl IsLinkTaskFinished
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9CFE
|
||||
ldrh r1, [r4, #0x1a]
|
||||
add r0, sp, #8
|
||||
strh r1, [r0]
|
||||
movs r1, #2
|
||||
bl sub_080FCD64
|
||||
cmp r0, #1
|
||||
bne _081D9CFE
|
||||
ldrh r0, [r4, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #8]
|
||||
b _081D9CFE
|
||||
_081D9CBA:
|
||||
bl sub_080FCDCC
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9CFE
|
||||
movs r1, #0
|
||||
ldr r7, _081D9D10
|
||||
ldrb r0, [r7]
|
||||
cmp r1, r0
|
||||
bge _081D9CF0
|
||||
mov r0, r8
|
||||
adds r0, #2
|
||||
adds r3, r5, r0
|
||||
ldr r4, _081D9D14
|
||||
mov r2, sp
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #1
|
||||
_081D9CDC:
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r2]
|
||||
strh r0, [r3]
|
||||
adds r3, #2
|
||||
adds r4, r4, r5
|
||||
adds r2, #2
|
||||
adds r1, #1
|
||||
ldrb r0, [r7]
|
||||
cmp r1, r0
|
||||
blt _081D9CDC
|
||||
_081D9CF0:
|
||||
mov r0, sb
|
||||
adds r1, r0, r6
|
||||
lsls r1, r1, #3
|
||||
add r1, sl
|
||||
ldrh r0, [r1, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #8]
|
||||
_081D9CFE:
|
||||
add sp, #0xc
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D9D10: .4byte 0x02039BD0
|
||||
_081D9D14: .4byte 0x0202207C
|
||||
thumb_func_end sub_081D9C48
|
||||
|
||||
thumb_func_start sub_081D9D18
|
||||
sub_081D9D18: @ 0x081D9D18
|
||||
push {r4, r5, r6, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
lsls r0, r5, #2
|
||||
adds r0, r0, r5
|
||||
lsls r4, r0, #3
|
||||
ldr r6, _081D9D54
|
||||
adds r0, r4, r6
|
||||
adds r0, #0x18
|
||||
bl sub_080FCEE0
|
||||
cmp r0, #0
|
||||
beq _081D9DB8
|
||||
adds r0, r6, #0
|
||||
subs r0, #8
|
||||
adds r4, r4, r0
|
||||
movs r1, #8
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _081D9D58
|
||||
cmp r0, #1
|
||||
beq _081D9D90
|
||||
movs r0, #0
|
||||
strh r0, [r4, #8]
|
||||
strh r0, [r4, #0x20]
|
||||
adds r0, r5, #0
|
||||
bl SwitchTaskToFollowupFunc
|
||||
b _081D9DB8
|
||||
.align 2, 0
|
||||
_081D9D54: .4byte 0x03005B68
|
||||
_081D9D58:
|
||||
bl GetMultiplayerId
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081D9DB2
|
||||
bl IsLinkTaskFinished
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9DB8
|
||||
ldr r0, _081D9D88
|
||||
ldrb r2, [r0]
|
||||
lsls r0, r2, #6
|
||||
ldr r1, _081D9D8C
|
||||
adds r0, r0, r1
|
||||
movs r1, #4
|
||||
subs r1, r1, r2
|
||||
lsls r1, r1, #0x16
|
||||
lsrs r1, r1, #0x10
|
||||
bl sub_080FCD64
|
||||
cmp r0, #1
|
||||
bne _081D9DB8
|
||||
b _081D9DB2
|
||||
.align 2, 0
|
||||
_081D9D88: .4byte 0x02039BD0
|
||||
_081D9D8C: .4byte 0x02039AA0
|
||||
_081D9D90:
|
||||
movs r0, #0
|
||||
bl sub_080FCDA0
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D9DB8
|
||||
ldr r0, _081D9DC0
|
||||
ldrb r3, [r0]
|
||||
lsls r0, r3, #6
|
||||
ldr r1, _081D9DC4
|
||||
adds r0, r0, r1
|
||||
ldr r1, _081D9DC8
|
||||
movs r2, #4
|
||||
subs r2, r2, r3
|
||||
lsls r2, r2, #6
|
||||
bl memcpy
|
||||
_081D9DB2:
|
||||
ldrh r0, [r4, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #8]
|
||||
_081D9DB8:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D9DC0: .4byte 0x02039BD0
|
||||
_081D9DC4: .4byte 0x02039AA0
|
||||
_081D9DC8: .4byte 0x0202207C
|
||||
thumb_func_end sub_081D9D18
|
||||
|
||||
1331
asm/contest_painting.s
Normal file
1331
asm/contest_painting.s
Normal file
File diff suppressed because it is too large
Load Diff
3632
asm/contest_painting_effects.s
Normal file
3632
asm/contest_painting_effects.s
Normal file
File diff suppressed because it is too large
Load Diff
154
asm/coord_event_weather.s
Normal file
154
asm/coord_event_weather.s
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start CoordEventWeather_Clouds
|
||||
CoordEventWeather_Clouds: @ 0x0809D094
|
||||
push {lr}
|
||||
movs r0, #1
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Clouds
|
||||
|
||||
thumb_func_start CoordEventWeather_Sunny
|
||||
CoordEventWeather_Sunny: @ 0x0809D0A0
|
||||
push {lr}
|
||||
movs r0, #2
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Sunny
|
||||
|
||||
thumb_func_start CoordEventWeather_Dark
|
||||
CoordEventWeather_Dark: @ 0x0809D0AC
|
||||
push {lr}
|
||||
movs r0, #3
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Dark
|
||||
|
||||
thumb_func_start CoordEventWeather_Sandstorm
|
||||
CoordEventWeather_Sandstorm: @ 0x0809D0B8
|
||||
push {lr}
|
||||
movs r0, #4
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Sandstorm
|
||||
|
||||
thumb_func_start CoordEventWeather_Thunderstorm
|
||||
CoordEventWeather_Thunderstorm: @ 0x0809D0C4
|
||||
push {lr}
|
||||
movs r0, #5
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Thunderstorm
|
||||
|
||||
thumb_func_start CoordEventWeather_LightRain
|
||||
CoordEventWeather_LightRain: @ 0x0809D0D0
|
||||
push {lr}
|
||||
movs r0, #6
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_LightRain
|
||||
|
||||
thumb_func_start CoordEventWeather_Snow
|
||||
CoordEventWeather_Snow: @ 0x0809D0DC
|
||||
push {lr}
|
||||
movs r0, #9
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Snow
|
||||
|
||||
thumb_func_start CoordEventWeather_Ash
|
||||
CoordEventWeather_Ash: @ 0x0809D0E8
|
||||
push {lr}
|
||||
movs r0, #7
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Ash
|
||||
|
||||
thumb_func_start CoordEventWeather_Fog
|
||||
CoordEventWeather_Fog: @ 0x0809D0F4
|
||||
push {lr}
|
||||
movs r0, #8
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Fog
|
||||
|
||||
thumb_func_start CoordEventWeather_DiagonalFog
|
||||
CoordEventWeather_DiagonalFog: @ 0x0809D100
|
||||
push {lr}
|
||||
movs r0, #0xb
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_DiagonalFog
|
||||
|
||||
thumb_func_start CoordEventWeather_Drought
|
||||
CoordEventWeather_Drought: @ 0x0809D10C
|
||||
push {lr}
|
||||
movs r0, #0xc
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Drought
|
||||
|
||||
thumb_func_start CoordEventWeather_Route119Cycle
|
||||
CoordEventWeather_Route119Cycle: @ 0x0809D118
|
||||
push {lr}
|
||||
movs r0, #0x14
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Route119Cycle
|
||||
|
||||
thumb_func_start CoordEventWeather_Route123Cycle
|
||||
CoordEventWeather_Route123Cycle: @ 0x0809D124
|
||||
push {lr}
|
||||
movs r0, #0x15
|
||||
bl SetWeather
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CoordEventWeather_Route123Cycle
|
||||
|
||||
thumb_func_start DoCoordEventWeather
|
||||
DoCoordEventWeather: @ 0x0809D130
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
movs r2, #0
|
||||
ldr r3, _0809D150
|
||||
_0809D13A:
|
||||
lsls r1, r2, #3
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r4
|
||||
bne _0809D154
|
||||
adds r0, r3, #4
|
||||
adds r0, r1, r0
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
b _0809D15E
|
||||
.align 2, 0
|
||||
_0809D150: .4byte 0x084E8924
|
||||
_0809D154:
|
||||
adds r0, r2, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, #0xc
|
||||
bls _0809D13A
|
||||
_0809D15E:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end DoCoordEventWeather
|
||||
|
||||
4032
asm/credits.s
Normal file
4032
asm/credits.s
Normal file
File diff suppressed because it is too large
Load Diff
2375
asm/dark.s
Normal file
2375
asm/dark.s
Normal file
File diff suppressed because it is too large
Load Diff
3267
asm/daycare.s
Normal file
3267
asm/daycare.s
Normal file
File diff suppressed because it is too large
Load Diff
1027
asm/decompress.s
Normal file
1027
asm/decompress.s
Normal file
File diff suppressed because it is too large
Load Diff
7691
asm/decoration.s
Normal file
7691
asm/decoration.s
Normal file
File diff suppressed because it is too large
Load Diff
483
asm/decoration_inventory.s
Normal file
483
asm/decoration_inventory.s
Normal file
|
|
@ -0,0 +1,483 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start SetDecorationInventoriesPointers
|
||||
SetDecorationInventoriesPointers: @ 0x081616F8
|
||||
push {r4, lr}
|
||||
ldr r0, _0816176C
|
||||
mov ip, r0
|
||||
ldr r0, _08161770
|
||||
ldr r1, [r0]
|
||||
ldr r2, _08161774
|
||||
adds r0, r1, r2
|
||||
mov r4, ip
|
||||
str r0, [r4]
|
||||
movs r3, #0xa
|
||||
strb r3, [r4, #4]
|
||||
adds r2, #0xa
|
||||
adds r0, r1, r2
|
||||
str r0, [r4, #8]
|
||||
strb r3, [r4, #0xc]
|
||||
ldr r4, _08161778
|
||||
adds r0, r1, r4
|
||||
mov r2, ip
|
||||
str r0, [r2, #0x10]
|
||||
strb r3, [r2, #0x14]
|
||||
adds r4, #0xa
|
||||
adds r0, r1, r4
|
||||
str r0, [r2, #0x18]
|
||||
movs r2, #0x1e
|
||||
mov r0, ip
|
||||
strb r2, [r0, #0x1c]
|
||||
adds r4, #0x1e
|
||||
adds r0, r1, r4
|
||||
mov r4, ip
|
||||
str r0, [r4, #0x20]
|
||||
mov r0, ip
|
||||
adds r0, #0x24
|
||||
strb r2, [r0]
|
||||
ldr r2, _0816177C
|
||||
adds r0, r1, r2
|
||||
str r0, [r4, #0x28]
|
||||
mov r0, ip
|
||||
adds r0, #0x2c
|
||||
strb r3, [r0]
|
||||
ldr r4, _08161780
|
||||
adds r0, r1, r4
|
||||
mov r2, ip
|
||||
str r0, [r2, #0x30]
|
||||
adds r2, #0x34
|
||||
movs r0, #0x28
|
||||
strb r0, [r2]
|
||||
adds r4, #0x28
|
||||
adds r1, r1, r4
|
||||
mov r0, ip
|
||||
str r1, [r0, #0x38]
|
||||
adds r0, #0x3c
|
||||
strb r3, [r0]
|
||||
bl InitDecorationContextItems
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0816176C: .4byte 0x0203B90C
|
||||
_08161770: .4byte 0x03005AEC
|
||||
_08161774: .4byte 0x00002734
|
||||
_08161778: .4byte 0x00002748
|
||||
_0816177C: .4byte 0x0000278E
|
||||
_08161780: .4byte 0x00002798
|
||||
thumb_func_end SetDecorationInventoriesPointers
|
||||
|
||||
thumb_func_start ClearDecorationInventory
|
||||
ClearDecorationInventory: @ 0x08161784
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
movs r3, #0
|
||||
ldr r1, _081617B4
|
||||
lsrs r2, r0, #0x15
|
||||
adds r0, r2, r1
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r3, r0
|
||||
bhs _081617AE
|
||||
adds r5, r1, #0
|
||||
movs r4, #0
|
||||
_0816179A:
|
||||
adds r0, r2, r5
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r3
|
||||
strb r4, [r1]
|
||||
adds r1, r3, #1
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r3, r1, #0x18
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r3, r0
|
||||
blo _0816179A
|
||||
_081617AE:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081617B4: .4byte 0x0203B90C
|
||||
thumb_func_end ClearDecorationInventory
|
||||
|
||||
thumb_func_start ClearDecorationInventories
|
||||
ClearDecorationInventories: @ 0x081617B8
|
||||
push {r4, lr}
|
||||
movs r4, #0
|
||||
_081617BC:
|
||||
adds r0, r4, #0
|
||||
bl ClearDecorationInventory
|
||||
adds r0, r4, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #7
|
||||
bls _081617BC
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end ClearDecorationInventories
|
||||
|
||||
thumb_func_start GetFirstEmptyDecorSlot
|
||||
GetFirstEmptyDecorSlot: @ 0x081617D4
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x18
|
||||
movs r2, #0
|
||||
ldr r1, _08161800
|
||||
lsrs r0, r0, #0x15
|
||||
adds r0, r0, r1
|
||||
movs r1, #4
|
||||
ldrsb r1, [r0, r1]
|
||||
cmp r2, r1
|
||||
bge _08161810
|
||||
adds r4, r0, #0
|
||||
adds r3, r1, #0
|
||||
_081617EC:
|
||||
lsls r0, r2, #0x18
|
||||
asrs r1, r0, #0x18
|
||||
ldr r0, [r4]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08161804
|
||||
adds r0, r1, #0
|
||||
b _08161814
|
||||
.align 2, 0
|
||||
_08161800: .4byte 0x0203B90C
|
||||
_08161804:
|
||||
adds r0, r1, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, r3
|
||||
blt _081617EC
|
||||
_08161810:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_08161814:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end GetFirstEmptyDecorSlot
|
||||
|
||||
thumb_func_start CheckHasDecoration
|
||||
CheckHasDecoration: @ 0x0816181C
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
ldr r1, _0816184C
|
||||
lsls r0, r3, #3
|
||||
subs r0, r0, r3
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #0xe]
|
||||
movs r2, #0
|
||||
ldr r1, _08161850
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0, #4]
|
||||
cmp r2, r1
|
||||
bhs _0816185E
|
||||
ldr r4, [r0]
|
||||
_0816183E:
|
||||
adds r0, r4, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r3
|
||||
bne _08161854
|
||||
movs r0, #1
|
||||
b _08161860
|
||||
.align 2, 0
|
||||
_0816184C: .4byte 0x08580CD0
|
||||
_08161850: .4byte 0x0203B90C
|
||||
_08161854:
|
||||
adds r0, r2, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, r1
|
||||
blo _0816183E
|
||||
_0816185E:
|
||||
movs r0, #0
|
||||
_08161860:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end CheckHasDecoration
|
||||
|
||||
thumb_func_start DecorationAdd
|
||||
DecorationAdd: @ 0x08161868
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _081618AC
|
||||
ldr r1, _081618A4
|
||||
lsls r0, r4, #3
|
||||
subs r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r5, [r0, #0xe]
|
||||
adds r0, r5, #0
|
||||
bl GetFirstEmptyDecorSlot
|
||||
lsls r0, r0, #0x18
|
||||
asrs r2, r0, #0x18
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r2, r0
|
||||
beq _081618AC
|
||||
ldr r0, _081618A8
|
||||
lsls r1, r5, #3
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
movs r0, #1
|
||||
b _081618AE
|
||||
.align 2, 0
|
||||
_081618A4: .4byte 0x08580CD0
|
||||
_081618A8: .4byte 0x0203B90C
|
||||
_081618AC:
|
||||
movs r0, #0
|
||||
_081618AE:
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end DecorationAdd
|
||||
|
||||
thumb_func_start DecorationCheckSpace
|
||||
DecorationCheckSpace: @ 0x081618B4
|
||||
push {lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, #0
|
||||
beq _081618E4
|
||||
ldr r1, _081618E0
|
||||
lsls r0, r2, #3
|
||||
subs r0, r0, r2
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #0xe]
|
||||
bl GetFirstEmptyDecorSlot
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
beq _081618E4
|
||||
movs r0, #1
|
||||
b _081618E6
|
||||
.align 2, 0
|
||||
_081618E0: .4byte 0x08580CD0
|
||||
_081618E4:
|
||||
movs r0, #0
|
||||
_081618E6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end DecorationCheckSpace
|
||||
|
||||
thumb_func_start DecorationRemove
|
||||
DecorationRemove: @ 0x081618EC
|
||||
push {r4, r5, r6, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
movs r3, #0
|
||||
cmp r4, #0
|
||||
bne _08161908
|
||||
b _0816193A
|
||||
_081618FA:
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r0, r6, #0
|
||||
bl CondenseDecorationsInCategory
|
||||
movs r0, #1
|
||||
b _0816193C
|
||||
_08161908:
|
||||
ldr r2, _08161944
|
||||
ldr r1, _08161948
|
||||
lsls r0, r4, #3
|
||||
subs r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r5, [r0, #0xe]
|
||||
lsls r0, r5, #3
|
||||
adds r0, r0, r2
|
||||
ldrb r1, [r0, #4]
|
||||
cmp r3, r1
|
||||
bhs _0816193A
|
||||
adds r6, r5, #0
|
||||
adds r5, r0, #0
|
||||
adds r2, r1, #0
|
||||
_08161926:
|
||||
ldr r0, [r5]
|
||||
adds r1, r0, r3
|
||||
ldrb r0, [r1]
|
||||
cmp r0, r4
|
||||
beq _081618FA
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
cmp r3, r2
|
||||
blo _08161926
|
||||
_0816193A:
|
||||
movs r0, #0
|
||||
_0816193C:
|
||||
pop {r4, r5, r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08161944: .4byte 0x0203B90C
|
||||
_08161948: .4byte 0x08580CD0
|
||||
thumb_func_end DecorationRemove
|
||||
|
||||
thumb_func_start CondenseDecorationsInCategory
|
||||
CondenseDecorationsInCategory: @ 0x0816194C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
lsls r0, r0, #0x18
|
||||
movs r6, #0
|
||||
ldr r2, _081619E0
|
||||
lsrs r0, r0, #0x15
|
||||
adds r1, r0, r2
|
||||
ldrb r3, [r1, #4]
|
||||
cmp r6, r3
|
||||
bhs _081619D0
|
||||
adds r7, r0, #0
|
||||
mov sl, r1
|
||||
mov r0, sl
|
||||
str r0, [sp]
|
||||
_08161970:
|
||||
adds r1, r6, #1
|
||||
lsls r0, r1, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
adds r2, r7, #0
|
||||
mov ip, r1
|
||||
mov r1, sl
|
||||
ldrb r1, [r1, #4]
|
||||
cmp r3, r1
|
||||
bhs _081619C2
|
||||
ldr r0, _081619E0
|
||||
mov sb, r0
|
||||
adds r1, r0, #0
|
||||
mov r8, r1
|
||||
_0816198A:
|
||||
mov r0, sb
|
||||
adds r5, r2, r0
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, r3
|
||||
ldrb r4, [r0]
|
||||
adds r2, r4, #0
|
||||
cmp r2, #0
|
||||
beq _081619B0
|
||||
adds r0, r1, r6
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _081619A6
|
||||
cmp r1, r2
|
||||
bls _081619B0
|
||||
_081619A6:
|
||||
ldrb r1, [r0]
|
||||
strb r4, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r0, r0, r3
|
||||
strb r1, [r0]
|
||||
_081619B0:
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
adds r2, r7, #0
|
||||
mov r1, r8
|
||||
adds r0, r2, r1
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r3, r0
|
||||
blo _0816198A
|
||||
_081619C2:
|
||||
mov r3, ip
|
||||
lsls r0, r3, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
ldr r0, [sp]
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r6, r0
|
||||
blo _08161970
|
||||
_081619D0:
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081619E0: .4byte 0x0203B90C
|
||||
thumb_func_end CondenseDecorationsInCategory
|
||||
|
||||
thumb_func_start GetNumOwnedDecorationsInCategory
|
||||
GetNumOwnedDecorationsInCategory: @ 0x081619E4
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
movs r4, #0
|
||||
movs r3, #0
|
||||
ldr r2, _08161A20
|
||||
lsrs r1, r0, #0x15
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r4, r0
|
||||
bhs _08161A18
|
||||
adds r5, r2, #0
|
||||
_081619FA:
|
||||
adds r2, r1, r5
|
||||
ldr r0, [r2]
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08161A0C
|
||||
adds r0, r4, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
_08161A0C:
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
ldrb r2, [r2, #4]
|
||||
cmp r3, r2
|
||||
blo _081619FA
|
||||
_08161A18:
|
||||
adds r0, r4, #0
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08161A20: .4byte 0x0203B90C
|
||||
thumb_func_end GetNumOwnedDecorationsInCategory
|
||||
|
||||
thumb_func_start GetNumOwnedDecorations
|
||||
GetNumOwnedDecorations: @ 0x08161A24
|
||||
push {r4, r5, lr}
|
||||
movs r5, #0
|
||||
movs r4, #0
|
||||
_08161A2A:
|
||||
adds r0, r4, #0
|
||||
bl GetNumOwnedDecorationsInCategory
|
||||
adds r0, r5, r0
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
adds r0, r4, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #7
|
||||
bls _08161A2A
|
||||
adds r0, r5, #0
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end GetNumOwnedDecorations
|
||||
|
||||
1011
asm/dewford_trend.s
Normal file
1011
asm/dewford_trend.s
Normal file
File diff suppressed because it is too large
Load Diff
281
asm/diploma.s
Normal file
281
asm/diploma.s
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start VBlankCB
|
||||
VBlankCB: @ 0x0817ACB4
|
||||
push {lr}
|
||||
bl TransferPlttBuffer
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end VBlankCB
|
||||
|
||||
thumb_func_start SetupClearSaveDataScreen
|
||||
SetupClearSaveDataScreen: @ 0x0817ACC0
|
||||
push {r4, lr}
|
||||
sub sp, #0xc
|
||||
ldr r0, _0817AE20
|
||||
movs r1, #0x87
|
||||
lsls r1, r1, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0817ACD8
|
||||
cmp r0, #1
|
||||
bne _0817ACD8
|
||||
b _0817AE64
|
||||
_0817ACD8:
|
||||
movs r0, #0
|
||||
bl SetVBlankCallback
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x10
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x12
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x1c
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x1e
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x40
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x44
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x48
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x4a
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x50
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x52
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0x54
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
add r0, sp, #4
|
||||
movs r4, #0
|
||||
strh r4, [r0]
|
||||
ldr r1, _0817AE24
|
||||
str r0, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x13
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _0817AE28
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
movs r2, #0
|
||||
str r2, [sp, #8]
|
||||
add r0, sp, #8
|
||||
str r0, [r1]
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #0x13
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _0817AE2C
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
add r0, sp, #4
|
||||
strh r2, [r0]
|
||||
str r0, [r1]
|
||||
ldr r0, _0817AE30
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _0817AE34
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
bl ResetPaletteFade
|
||||
ldr r2, _0817AE38
|
||||
ldr r0, _0817AE3C
|
||||
strh r0, [r2]
|
||||
ldr r1, _0817AE40
|
||||
strh r0, [r1]
|
||||
ldr r0, _0817AE44
|
||||
strh r0, [r2, #2]
|
||||
strh r0, [r1, #2]
|
||||
movs r1, #0
|
||||
ldr r3, _0817AE48
|
||||
ldr r0, _0817AE4C
|
||||
adds r2, r0, #0
|
||||
_0817AD94:
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r3
|
||||
strh r2, [r0]
|
||||
adds r0, r1, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r1, r0, #0x10
|
||||
cmp r1, #0xf
|
||||
bls _0817AD94
|
||||
movs r1, #0
|
||||
ldr r4, _0817AE50
|
||||
movs r3, #1
|
||||
ldr r2, _0817AE54
|
||||
_0817ADAC:
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r4
|
||||
strh r3, [r0]
|
||||
adds r0, r1, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r1, r0, #0x10
|
||||
cmp r1, r2
|
||||
bls _0817ADAC
|
||||
bl ResetTasks
|
||||
bl ResetSpriteData
|
||||
movs r0, #0
|
||||
bl ResetBgsAndClearDma3BusyFlags
|
||||
ldr r1, _0817AE58
|
||||
movs r0, #0
|
||||
movs r2, #2
|
||||
bl InitBgsFromTemplates
|
||||
movs r1, #0x82
|
||||
lsls r1, r1, #5
|
||||
movs r0, #0
|
||||
bl SetGpuReg
|
||||
movs r0, #0
|
||||
bl ShowBg
|
||||
movs r0, #3
|
||||
bl ShowBg
|
||||
movs r0, #0x50
|
||||
movs r1, #0
|
||||
bl SetGpuReg
|
||||
bl InitClearSaveDataScreenWindows
|
||||
ldr r0, _0817AE5C
|
||||
str r0, [sp]
|
||||
movs r1, #0
|
||||
movs r2, #0x10
|
||||
movs r3, #0
|
||||
bl BeginNormalPaletteFade
|
||||
movs r0, #1
|
||||
bl EnableInterrupts
|
||||
ldr r0, _0817AE60
|
||||
bl SetVBlankCallback
|
||||
ldr r0, _0817AE20
|
||||
movs r1, #0x87
|
||||
lsls r1, r1, #3
|
||||
adds r0, r0, r1
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
b _0817AE88
|
||||
.align 2, 0
|
||||
_0817AE20: .4byte 0x03002360
|
||||
_0817AE24: .4byte 0x040000D4
|
||||
_0817AE28: .4byte 0x8100C000
|
||||
_0817AE2C: .4byte 0x85000100
|
||||
_0817AE30: .4byte 0x05000002
|
||||
_0817AE34: .4byte 0x810001FF
|
||||
_0817AE38: .4byte 0x020373B4
|
||||
_0817AE3C: .4byte 0x00007FFF
|
||||
_0817AE40: .4byte 0x020377B4
|
||||
_0817AE44: .4byte 0x00003945
|
||||
_0817AE48: .4byte 0x06000020
|
||||
_0817AE4C: .4byte 0x00001111
|
||||
_0817AE50: .4byte 0x0600F000
|
||||
_0817AE54: .4byte 0x000003FF
|
||||
_0817AE58: .4byte 0x085CDB90
|
||||
_0817AE5C: .4byte 0x0000FFFF
|
||||
_0817AE60: .4byte 0x0817ACB5
|
||||
_0817AE64:
|
||||
bl UpdatePaletteFade
|
||||
ldr r0, _0817AE80
|
||||
ldrb r1, [r0, #7]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0817AE88
|
||||
ldr r0, _0817AE84
|
||||
bl SetMainCallback2
|
||||
movs r0, #1
|
||||
b _0817AE8A
|
||||
.align 2, 0
|
||||
_0817AE80: .4byte 0x02037C74
|
||||
_0817AE84: .4byte 0x0817ACA5
|
||||
_0817AE88:
|
||||
movs r0, #0
|
||||
_0817AE8A:
|
||||
add sp, #0xc
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end SetupClearSaveDataScreen
|
||||
|
||||
thumb_func_start CB2_FadeAndDoReset
|
||||
CB2_FadeAndDoReset: @ 0x0817AE94
|
||||
push {r4, lr}
|
||||
sub sp, #4
|
||||
ldr r0, _0817AEC0
|
||||
movs r1, #0x87
|
||||
lsls r1, r1, #3
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #0
|
||||
beq _0817AEAA
|
||||
cmp r0, #1
|
||||
beq _0817AEC8
|
||||
_0817AEAA:
|
||||
ldr r0, _0817AEC4
|
||||
str r0, [sp]
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
movs r3, #0x10
|
||||
bl BeginNormalPaletteFade
|
||||
movs r0, #1
|
||||
strb r0, [r4]
|
||||
b _0817AEE0
|
||||
.align 2, 0
|
||||
_0817AEC0: .4byte 0x03002360
|
||||
_0817AEC4: .4byte 0x0000FFFF
|
||||
_0817AEC8:
|
||||
bl UpdatePaletteFade
|
||||
ldr r0, _0817AEE8
|
||||
ldrb r1, [r0, #7]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0817AEE0
|
||||
bl FreeAllWindowBuffers
|
||||
bl DoSoftReset
|
||||
_0817AEE0:
|
||||
add sp, #4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817AEE8: .4byte 0x02037C74
|
||||
thumb_func_end CB2_FadeAndDoReset
|
||||
|
||||
thumb_func_start InitClearSaveDataScreenWindows
|
||||
InitClearSaveDataScreenWindows: @ 0x0817AEEC
|
||||
push {lr}
|
||||
ldr r0, _0817AF1C
|
||||
bl InitWindows
|
||||
bl DeactivateAllTextPrinters
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
bl FillWindowPixelBuffer
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #2
|
||||
movs r3, #0xe0
|
||||
bl LoadWindowGfx
|
||||
ldr r0, _0817AF20
|
||||
movs r1, #0xf0
|
||||
movs r2, #0x20
|
||||
bl LoadPalette
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0817AF1C: .4byte 0x085CDB98
|
||||
_0817AF20: .4byte 0x085D7B04
|
||||
thumb_func_end InitClearSaveDataScreenWindows
|
||||
|
||||
576
asm/dma3_manager.s
Normal file
576
asm/dma3_manager.s
Normal file
|
|
@ -0,0 +1,576 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start ClearDma3Requests
|
||||
ClearDma3Requests: @ 0x08000C48
|
||||
push {lr}
|
||||
ldr r2, _08000C74
|
||||
movs r0, #1
|
||||
strb r0, [r2]
|
||||
ldr r1, _08000C78
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
movs r3, #0
|
||||
ldr r0, _08000C7C
|
||||
movs r1, #0x7f
|
||||
_08000C5C:
|
||||
strh r3, [r0, #8]
|
||||
str r3, [r0]
|
||||
str r3, [r0, #4]
|
||||
adds r0, #0x10
|
||||
subs r1, #1
|
||||
cmp r1, #0
|
||||
bge _08000C5C
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08000C74: .4byte 0x03000810
|
||||
_08000C78: .4byte 0x03000811
|
||||
_08000C7C: .4byte 0x03000010
|
||||
thumb_func_end ClearDma3Requests
|
||||
|
||||
thumb_func_start ProcessDma3Requests
|
||||
ProcessDma3Requests: @ 0x08000C80
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0xc
|
||||
ldr r0, _08000CFC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08000C96
|
||||
b _08000ED6
|
||||
_08000C96:
|
||||
movs r0, #0
|
||||
str r0, [sp, #8]
|
||||
ldr r1, _08000D00
|
||||
ldr r2, _08000D04
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #4
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0, #8]
|
||||
mov ip, r2
|
||||
cmp r0, #0
|
||||
bne _08000CAE
|
||||
b _08000ED6
|
||||
_08000CAE:
|
||||
mov r8, r1
|
||||
adds r1, #4
|
||||
mov sl, r1
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #5
|
||||
ldr r7, _08000D08
|
||||
movs r2, #0
|
||||
mov sb, r2
|
||||
_08000CBE:
|
||||
mov r3, ip
|
||||
ldrb r0, [r3]
|
||||
lsls r5, r0, #4
|
||||
mov r0, r8
|
||||
adds r1, r5, r0
|
||||
ldrh r0, [r1, #8]
|
||||
ldr r2, [sp, #8]
|
||||
adds r0, r2, r0
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
str r0, [sp, #8]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #8
|
||||
ldr r3, [sp, #8]
|
||||
cmp r3, r0
|
||||
bls _08000CE0
|
||||
b _08000ED6
|
||||
_08000CE0:
|
||||
ldr r0, _08000D0C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xe0
|
||||
bls _08000CEA
|
||||
b _08000ED6
|
||||
_08000CEA:
|
||||
ldrh r0, [r1, #0xa]
|
||||
cmp r0, #2
|
||||
beq _08000D60
|
||||
cmp r0, #2
|
||||
bgt _08000D10
|
||||
cmp r0, #1
|
||||
beq _08000D1C
|
||||
b _08000E80
|
||||
.align 2, 0
|
||||
_08000CFC: .4byte 0x03000810
|
||||
_08000D00: .4byte 0x03000010
|
||||
_08000D04: .4byte 0x03000811
|
||||
_08000D08: .4byte 0x040000D4
|
||||
_08000D0C: .4byte 0x04000006
|
||||
_08000D10:
|
||||
cmp r0, #3
|
||||
beq _08000DCC
|
||||
cmp r0, #4
|
||||
bne _08000D1A
|
||||
b _08000E18
|
||||
_08000D1A:
|
||||
b _08000E80
|
||||
_08000D1C:
|
||||
ldr r3, [r1]
|
||||
mov r2, sl
|
||||
adds r0, r5, r2
|
||||
ldr r2, [r0]
|
||||
ldrh r1, [r1, #8]
|
||||
cmp r1, r6
|
||||
bhi _08000D36
|
||||
str r3, [r7]
|
||||
str r2, [r7, #4]
|
||||
lsrs r0, r1, #2
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #0x18
|
||||
b _08000E3A
|
||||
_08000D36:
|
||||
ldr r4, _08000D58
|
||||
str r3, [r4]
|
||||
str r2, [r4, #4]
|
||||
ldr r0, _08000D5C
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #8]
|
||||
adds r3, r3, r6
|
||||
adds r2, r2, r6
|
||||
subs r1, r1, r6
|
||||
cmp r1, r6
|
||||
bhi _08000D36
|
||||
str r3, [r4]
|
||||
str r2, [r4, #4]
|
||||
lsrs r0, r1, #2
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #0x18
|
||||
b _08000E06
|
||||
.align 2, 0
|
||||
_08000D58: .4byte 0x040000D4
|
||||
_08000D5C: .4byte 0x84000400
|
||||
_08000D60:
|
||||
mov r3, sl
|
||||
adds r0, r5, r3
|
||||
ldr r4, [r0]
|
||||
ldrh r1, [r1, #8]
|
||||
cmp r1, r6
|
||||
bhi _08000D84
|
||||
mov r0, r8
|
||||
adds r0, #0xc
|
||||
adds r0, r5, r0
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
mov r5, sp
|
||||
str r5, [r7]
|
||||
str r4, [r7, #4]
|
||||
lsrs r0, r1, #2
|
||||
movs r1, #0x85
|
||||
lsls r1, r1, #0x18
|
||||
b _08000E3A
|
||||
_08000D84:
|
||||
mov r2, ip
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #4
|
||||
mov r5, r8
|
||||
adds r5, #0xc
|
||||
adds r0, r0, r5
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
ldr r3, _08000DC4
|
||||
mov r0, sp
|
||||
str r0, [r3]
|
||||
str r4, [r3, #4]
|
||||
ldr r0, _08000DC8
|
||||
str r0, [r3, #8]
|
||||
ldr r0, [r3, #8]
|
||||
adds r4, r4, r6
|
||||
subs r1, r1, r6
|
||||
cmp r1, r6
|
||||
bhi _08000D84
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #4
|
||||
adds r0, r0, r5
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
mov r2, sp
|
||||
str r2, [r3]
|
||||
str r4, [r3, #4]
|
||||
lsrs r0, r1, #2
|
||||
movs r1, #0x85
|
||||
lsls r1, r1, #0x18
|
||||
b _08000E7A
|
||||
.align 2, 0
|
||||
_08000DC4: .4byte 0x040000D4
|
||||
_08000DC8: .4byte 0x85000400
|
||||
_08000DCC:
|
||||
ldr r3, [r1]
|
||||
mov r2, sl
|
||||
adds r0, r5, r2
|
||||
ldr r2, [r0]
|
||||
ldrh r1, [r1, #8]
|
||||
cmp r1, r6
|
||||
bhi _08000DE6
|
||||
str r3, [r7]
|
||||
str r2, [r7, #4]
|
||||
lsrs r0, r1, #1
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x18
|
||||
b _08000E3A
|
||||
_08000DE6:
|
||||
ldr r4, _08000E10
|
||||
str r3, [r4]
|
||||
str r2, [r4, #4]
|
||||
ldr r0, _08000E14
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #8]
|
||||
adds r3, r3, r6
|
||||
adds r2, r2, r6
|
||||
subs r1, r1, r6
|
||||
cmp r1, r6
|
||||
bhi _08000DE6
|
||||
str r3, [r4]
|
||||
str r2, [r4, #4]
|
||||
lsrs r0, r1, #1
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x18
|
||||
_08000E06:
|
||||
orrs r0, r1
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #8]
|
||||
b _08000E80
|
||||
.align 2, 0
|
||||
_08000E10: .4byte 0x040000D4
|
||||
_08000E14: .4byte 0x80000800
|
||||
_08000E18:
|
||||
mov r3, sl
|
||||
adds r0, r5, r3
|
||||
ldr r2, [r0]
|
||||
ldrh r4, [r1, #8]
|
||||
add r1, sp, #4
|
||||
cmp r4, r6
|
||||
bhi _08000E42
|
||||
mov r0, r8
|
||||
adds r0, #0xc
|
||||
adds r0, r5, r0
|
||||
ldr r0, [r0]
|
||||
strh r0, [r1]
|
||||
str r1, [r7]
|
||||
str r2, [r7, #4]
|
||||
lsrs r0, r4, #1
|
||||
movs r1, #0x81
|
||||
lsls r1, r1, #0x18
|
||||
_08000E3A:
|
||||
orrs r0, r1
|
||||
str r0, [r7, #8]
|
||||
ldr r0, [r7, #8]
|
||||
b _08000E80
|
||||
_08000E42:
|
||||
mov r5, ip
|
||||
ldrb r0, [r5]
|
||||
lsls r0, r0, #4
|
||||
ldr r3, _08000EE8
|
||||
adds r0, r0, r3
|
||||
ldr r0, [r0]
|
||||
strh r0, [r1]
|
||||
ldr r3, _08000EEC
|
||||
str r1, [r3]
|
||||
str r2, [r3, #4]
|
||||
ldr r0, _08000EF0
|
||||
str r0, [r3, #8]
|
||||
ldr r0, [r3, #8]
|
||||
adds r2, r2, r6
|
||||
subs r4, r4, r6
|
||||
cmp r4, r6
|
||||
bhi _08000E42
|
||||
ldrb r0, [r5]
|
||||
lsls r0, r0, #4
|
||||
ldr r5, _08000EE8
|
||||
adds r0, r0, r5
|
||||
ldr r0, [r0]
|
||||
strh r0, [r1]
|
||||
str r1, [r3]
|
||||
str r2, [r3, #4]
|
||||
lsrs r0, r4, #1
|
||||
movs r1, #0x81
|
||||
lsls r1, r1, #0x18
|
||||
_08000E7A:
|
||||
orrs r0, r1
|
||||
str r0, [r3, #8]
|
||||
ldr r0, [r3, #8]
|
||||
_08000E80:
|
||||
ldr r1, _08000EF4
|
||||
mov r3, ip
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #4
|
||||
adds r0, r0, r1
|
||||
mov r2, sb
|
||||
str r2, [r0]
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #4
|
||||
add r0, sl
|
||||
str r2, [r0]
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #4
|
||||
adds r0, r0, r1
|
||||
movs r4, #0
|
||||
strh r2, [r0, #8]
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #4
|
||||
adds r0, r0, r1
|
||||
mov r5, sb
|
||||
strh r5, [r0, #0xa]
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #4
|
||||
adds r1, #0xc
|
||||
adds r0, r0, r1
|
||||
mov r1, sb
|
||||
str r1, [r0]
|
||||
ldrb r0, [r3]
|
||||
adds r0, #1
|
||||
strb r0, [r3]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bge _08000EC4
|
||||
strb r4, [r3]
|
||||
_08000EC4:
|
||||
mov r2, ip
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #4
|
||||
ldr r3, _08000EF4
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0, #8]
|
||||
cmp r0, #0
|
||||
beq _08000ED6
|
||||
b _08000CBE
|
||||
_08000ED6:
|
||||
add sp, #0xc
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08000EE8: .4byte 0x0300001C
|
||||
_08000EEC: .4byte 0x040000D4
|
||||
_08000EF0: .4byte 0x81000800
|
||||
_08000EF4: .4byte 0x03000010
|
||||
thumb_func_end ProcessDma3Requests
|
||||
|
||||
thumb_func_start RequestDma3Copy
|
||||
RequestDma3Copy: @ 0x08000EF8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov ip, r0
|
||||
mov r8, r1
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r7, r2, #0x10
|
||||
lsls r3, r3, #0x18
|
||||
lsrs r4, r3, #0x18
|
||||
movs r5, #0
|
||||
ldr r1, _08000F44
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, _08000F48
|
||||
ldrb r2, [r0]
|
||||
mov sl, r1
|
||||
ldr r6, _08000F4C
|
||||
mov sb, r6
|
||||
lsls r0, r2, #4
|
||||
adds r1, r0, r6
|
||||
_08000F24:
|
||||
lsls r3, r2, #4
|
||||
ldrh r0, [r1, #8]
|
||||
cmp r0, #0
|
||||
bne _08000F64
|
||||
mov r0, ip
|
||||
str r0, [r1]
|
||||
mov r0, sb
|
||||
adds r0, #4
|
||||
adds r0, r3, r0
|
||||
mov r3, r8
|
||||
str r3, [r0]
|
||||
strh r7, [r1, #8]
|
||||
cmp r4, #1
|
||||
bne _08000F50
|
||||
strh r4, [r1, #0xa]
|
||||
b _08000F54
|
||||
.align 2, 0
|
||||
_08000F44: .4byte 0x03000810
|
||||
_08000F48: .4byte 0x03000811
|
||||
_08000F4C: .4byte 0x03000010
|
||||
_08000F50:
|
||||
movs r0, #3
|
||||
strh r0, [r1, #0xa]
|
||||
_08000F54:
|
||||
movs r0, #0
|
||||
ldr r1, _08000F60
|
||||
strb r0, [r1]
|
||||
lsls r0, r2, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
b _08000F80
|
||||
.align 2, 0
|
||||
_08000F60: .4byte 0x03000810
|
||||
_08000F64:
|
||||
adds r1, #0x10
|
||||
adds r2, #1
|
||||
cmp r2, #0x7f
|
||||
ble _08000F70
|
||||
adds r1, r6, #0
|
||||
movs r2, #0
|
||||
_08000F70:
|
||||
adds r5, #1
|
||||
cmp r5, #0x7f
|
||||
ble _08000F24
|
||||
movs r0, #0
|
||||
mov r3, sl
|
||||
strb r0, [r3]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_08000F80:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end RequestDma3Copy
|
||||
|
||||
thumb_func_start RequestDma3Fill
|
||||
RequestDma3Fill: @ 0x08000F90
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov sb, r0
|
||||
mov r8, r1
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r7, r2, #0x10
|
||||
lsls r3, r3, #0x18
|
||||
lsrs r5, r3, #0x18
|
||||
movs r6, #0
|
||||
ldr r0, _08000FE8
|
||||
ldrb r2, [r0]
|
||||
ldr r1, _08000FEC
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
mov sl, r1
|
||||
ldr r0, _08000FF0
|
||||
mov ip, r0
|
||||
mov r4, ip
|
||||
lsls r0, r2, #4
|
||||
adds r0, #8
|
||||
adds r1, r0, r4
|
||||
_08000FC0:
|
||||
lsls r3, r2, #4
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _08001008
|
||||
adds r0, r4, #4
|
||||
adds r0, r3, r0
|
||||
mov r6, r8
|
||||
str r6, [r0]
|
||||
strh r7, [r1]
|
||||
strh r5, [r1, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xc
|
||||
adds r0, r3, r0
|
||||
mov r3, sb
|
||||
str r3, [r0]
|
||||
cmp r5, #1
|
||||
bne _08000FF4
|
||||
movs r0, #2
|
||||
b _08000FF6
|
||||
.align 2, 0
|
||||
_08000FE8: .4byte 0x03000811
|
||||
_08000FEC: .4byte 0x03000810
|
||||
_08000FF0: .4byte 0x03000010
|
||||
_08000FF4:
|
||||
movs r0, #4
|
||||
_08000FF6:
|
||||
strh r0, [r1, #2]
|
||||
movs r0, #0
|
||||
ldr r6, _08001004
|
||||
strb r0, [r6]
|
||||
lsls r0, r2, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
b _08001026
|
||||
.align 2, 0
|
||||
_08001004: .4byte 0x03000810
|
||||
_08001008:
|
||||
adds r1, #0x10
|
||||
adds r2, #1
|
||||
cmp r2, #0x7f
|
||||
ble _08001016
|
||||
mov r1, ip
|
||||
adds r1, #8
|
||||
movs r2, #0
|
||||
_08001016:
|
||||
adds r6, #1
|
||||
cmp r6, #0x7f
|
||||
ble _08000FC0
|
||||
movs r0, #0
|
||||
mov r1, sl
|
||||
strb r0, [r1]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_08001026:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end RequestDma3Fill
|
||||
|
||||
thumb_func_start CheckForSpaceForDma3Request
|
||||
CheckForSpaceForDma3Request: @ 0x08001034
|
||||
push {lr}
|
||||
movs r2, #0
|
||||
lsls r0, r0, #0x10
|
||||
asrs r1, r0, #0x10
|
||||
movs r3, #1
|
||||
rsbs r3, r3, #0
|
||||
cmp r1, r3
|
||||
bne _0800105C
|
||||
ldr r1, _08001058
|
||||
_08001046:
|
||||
ldrh r0, [r1, #8]
|
||||
cmp r0, #0
|
||||
bne _08001068
|
||||
adds r1, #0x10
|
||||
adds r2, #1
|
||||
cmp r2, #0x7f
|
||||
ble _08001046
|
||||
_08001054:
|
||||
movs r0, #0
|
||||
b _0800106C
|
||||
.align 2, 0
|
||||
_08001058: .4byte 0x03000010
|
||||
_0800105C:
|
||||
ldr r0, _08001070
|
||||
lsls r1, r1, #4
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1, #8]
|
||||
cmp r0, #0
|
||||
beq _08001054
|
||||
_08001068:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_0800106C:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08001070: .4byte 0x03000010
|
||||
thumb_func_end CheckForSpaceForDma3Request
|
||||
|
||||
12350
asm/dodrio_berry_picking.s
Normal file
12350
asm/dodrio_berry_picking.s
Normal file
File diff suppressed because it is too large
Load Diff
880
asm/dragon.s
Normal file
880
asm/dragon.s
Normal file
|
|
@ -0,0 +1,880 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start sub_08113808
|
||||
sub_08113808: @ 0x08113808
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrh r0, [r5, #0x34]
|
||||
movs r1, #0x34
|
||||
ldrsh r3, [r5, r1]
|
||||
cmp r3, #0
|
||||
beq _08113870
|
||||
subs r0, #1
|
||||
strh r0, [r5, #0x34]
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r5, r2]
|
||||
movs r2, #0x30
|
||||
ldrsh r1, [r5, r2]
|
||||
bl Sin
|
||||
ldr r4, _08113868
|
||||
movs r1, #0x38
|
||||
ldrsh r2, [r5, r1]
|
||||
lsls r1, r2, #4
|
||||
adds r1, r1, r2
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r4
|
||||
strh r0, [r1, #0x24]
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r5, r2]
|
||||
movs r2, #0x30
|
||||
ldrsh r1, [r5, r2]
|
||||
bl Cos
|
||||
movs r1, #0x38
|
||||
ldrsh r2, [r5, r1]
|
||||
lsls r1, r2, #4
|
||||
adds r1, r1, r2
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r4
|
||||
strh r0, [r1, #0x26]
|
||||
ldrh r0, [r5, #0x32]
|
||||
ldrh r2, [r5, #0x2e]
|
||||
adds r1, r0, r2
|
||||
strh r1, [r5, #0x2e]
|
||||
lsls r0, r1, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xff
|
||||
ble _081138A4
|
||||
ldr r2, _0811386C
|
||||
adds r0, r1, r2
|
||||
strh r0, [r5, #0x2e]
|
||||
b _081138A4
|
||||
.align 2, 0
|
||||
_08113868: .4byte 0x020205AC
|
||||
_0811386C: .4byte 0xFFFFFF00
|
||||
_08113870:
|
||||
ldr r2, _081138AC
|
||||
movs r0, #0x38
|
||||
ldrsh r1, [r5, r0]
|
||||
lsls r0, r1, #4
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
strh r3, [r0, #0x24]
|
||||
movs r0, #0x38
|
||||
ldrsh r1, [r5, r0]
|
||||
lsls r0, r1, #4
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
strh r3, [r0, #0x26]
|
||||
movs r0, #0x38
|
||||
ldrsh r1, [r5, r0]
|
||||
lsls r0, r1, #4
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
ldrh r1, [r0, #0x22]
|
||||
subs r1, #8
|
||||
strh r1, [r0, #0x22]
|
||||
ldr r0, _081138B0
|
||||
str r0, [r5, #0x1c]
|
||||
_081138A4:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081138AC: .4byte 0x020205AC
|
||||
_081138B0: .4byte 0x080A6015
|
||||
thumb_func_end sub_08113808
|
||||
|
||||
thumb_func_start sub_081138B4
|
||||
sub_081138B4: @ 0x081138B4
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r4, _081138FC
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x20]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x22]
|
||||
ldrb r0, [r4]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08113904
|
||||
ldr r2, _08113900
|
||||
ldrh r0, [r5, #0x20]
|
||||
ldrh r1, [r2]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r5, #0x20]
|
||||
ldrh r0, [r2, #6]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r2, #6]
|
||||
ldrh r0, [r2, #8]
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r2, #8]
|
||||
adds r1, r2, #0
|
||||
b _0811390E
|
||||
.align 2, 0
|
||||
_081138FC: .4byte 0x020380D6
|
||||
_08113900: .4byte 0x020380BE
|
||||
_08113904:
|
||||
ldr r1, _08113944
|
||||
ldrh r0, [r1]
|
||||
ldrh r2, [r5, #0x20]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r5, #0x20]
|
||||
_0811390E:
|
||||
ldrh r0, [r1, #2]
|
||||
ldrh r2, [r5, #0x22]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r5, #0x22]
|
||||
ldrh r0, [r1, #4]
|
||||
strh r0, [r5, #0x2e]
|
||||
ldrh r0, [r1, #6]
|
||||
strh r0, [r5, #0x30]
|
||||
ldrh r0, [r1, #8]
|
||||
strh r0, [r5, #0x34]
|
||||
ldrh r0, [r1, #0xa]
|
||||
strh r0, [r5, #0x38]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x3e
|
||||
ldrb r0, [r2]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, _08113948
|
||||
adds r0, r5, #0
|
||||
bl StoreSpriteCallbackInData6
|
||||
ldr r0, _0811394C
|
||||
str r0, [r5, #0x1c]
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08113944: .4byte 0x020380BE
|
||||
_08113948: .4byte 0x080A6015
|
||||
_0811394C: .4byte 0x080A5FA5
|
||||
thumb_func_end sub_081138B4
|
||||
|
||||
thumb_func_start sub_08113950
|
||||
sub_08113950: @ 0x08113950
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl SetSpriteCoordsToAnimAttackerCoords
|
||||
ldr r4, _081139A8
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x32]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x36]
|
||||
ldr r0, _081139AC
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081139B4
|
||||
ldr r2, _081139B0
|
||||
ldrh r0, [r5, #0x20]
|
||||
ldrh r1, [r2, #2]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r5, #0x20]
|
||||
ldrh r0, [r5, #0x22]
|
||||
adds r1, r1, r0
|
||||
strh r1, [r5, #0x22]
|
||||
ldrh r0, [r5, #0x32]
|
||||
ldrh r1, [r2, #4]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r5, #0x32]
|
||||
ldrh r0, [r2, #6]
|
||||
ldrh r1, [r5, #0x36]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r5, #0x36]
|
||||
b _081139DE
|
||||
.align 2, 0
|
||||
_081139A8: .4byte 0x020380D7
|
||||
_081139AC: .4byte 0x020380D6
|
||||
_081139B0: .4byte 0x020380BE
|
||||
_081139B4:
|
||||
ldr r1, _081139F8
|
||||
ldrh r0, [r1]
|
||||
ldrh r2, [r5, #0x20]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r5, #0x20]
|
||||
ldrh r0, [r1, #2]
|
||||
ldrh r2, [r5, #0x22]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r5, #0x22]
|
||||
ldrh r0, [r1, #4]
|
||||
ldrh r2, [r5, #0x32]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r5, #0x32]
|
||||
ldrh r0, [r1, #6]
|
||||
ldrh r1, [r5, #0x36]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r5, #0x36]
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl StartSpriteAnim
|
||||
_081139DE:
|
||||
ldr r0, _081139F8
|
||||
ldrh r0, [r0, #8]
|
||||
strh r0, [r5, #0x2e]
|
||||
ldr r0, _081139FC
|
||||
str r0, [r5, #0x1c]
|
||||
ldr r1, _08113A00
|
||||
adds r0, r5, #0
|
||||
bl StoreSpriteCallbackInData6
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081139F8: .4byte 0x020380BE
|
||||
_081139FC: .4byte 0x080A67B5
|
||||
_08113A00: .4byte 0x080A6015
|
||||
thumb_func_end sub_08113950
|
||||
|
||||
thumb_func_start sub_08113A04
|
||||
sub_08113A04: @ 0x08113A04
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _08113A18
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, #0
|
||||
bne _08113A20
|
||||
ldr r4, _08113A1C
|
||||
b _08113A22
|
||||
.align 2, 0
|
||||
_08113A18: .4byte 0x020380BE
|
||||
_08113A1C: .4byte 0x020380D6
|
||||
_08113A20:
|
||||
ldr r4, _08113A64
|
||||
_08113A22:
|
||||
ldrb r0, [r4]
|
||||
movs r1, #0
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x20]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #1
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r5, #0x22]
|
||||
ldr r4, _08113A68
|
||||
movs r0, #2
|
||||
ldrsh r1, [r4, r0]
|
||||
adds r0, r5, #0
|
||||
bl SetAnimSpriteInitialXOffset
|
||||
ldrh r0, [r4, #4]
|
||||
ldrh r1, [r5, #0x22]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r5, #0x22]
|
||||
ldr r0, _08113A6C
|
||||
str r0, [r5, #0x1c]
|
||||
ldr r1, _08113A70
|
||||
adds r0, r5, #0
|
||||
bl StoreSpriteCallbackInData6
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08113A64: .4byte 0x020380D7
|
||||
_08113A68: .4byte 0x020380BE
|
||||
_08113A6C: .4byte 0x080A60A1
|
||||
_08113A70: .4byte 0x080A6015
|
||||
thumb_func_end sub_08113A04
|
||||
|
||||
thumb_func_start sub_08113A74
|
||||
sub_08113A74: @ 0x08113A74
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08113A9C
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08113A8E
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl StartSpriteAffineAnim
|
||||
_08113A8E:
|
||||
adds r0, r4, #0
|
||||
bl sub_08113950
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08113A9C: .4byte 0x020380D6
|
||||
thumb_func_end sub_08113A74
|
||||
|
||||
thumb_func_start sub_08113AA0
|
||||
sub_08113AA0: @ 0x08113AA0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r6, r0, #0
|
||||
ldr r4, _08113AF4
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
movs r5, #0
|
||||
strh r0, [r6, #0x20]
|
||||
ldrb r0, [r4]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r6, #0x22]
|
||||
strh r5, [r6, #0x36]
|
||||
movs r0, #1
|
||||
strh r0, [r6, #0x38]
|
||||
ldr r0, _08113AF8
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r6, #0x3a]
|
||||
ldr r4, _08113AFC
|
||||
ldrb r0, [r4]
|
||||
movs r1, #0
|
||||
bl GetBattlerSpriteCoordAttr
|
||||
lsls r7, r0, #0x10
|
||||
lsrs r5, r7, #0x10
|
||||
ldrb r0, [r4]
|
||||
movs r1, #1
|
||||
bl GetBattlerSpriteCoordAttr
|
||||
lsls r1, r0, #0x10
|
||||
lsrs r0, r1, #0x10
|
||||
cmp r5, r0
|
||||
bls _08113B00
|
||||
lsrs r0, r7, #0x11
|
||||
b _08113B02
|
||||
.align 2, 0
|
||||
_08113AF4: .4byte 0x020380D6
|
||||
_08113AF8: .4byte 0x020380BE
|
||||
_08113AFC: .4byte 0x02023EAF
|
||||
_08113B00:
|
||||
lsrs r0, r1, #0x11
|
||||
_08113B02:
|
||||
strh r0, [r6, #0x3c]
|
||||
movs r1, #0x3a
|
||||
ldrsh r0, [r6, r1]
|
||||
movs r2, #0x3c
|
||||
ldrsh r1, [r6, r2]
|
||||
bl Cos
|
||||
strh r0, [r6, #0x24]
|
||||
movs r1, #0x3a
|
||||
ldrsh r0, [r6, r1]
|
||||
movs r2, #0x3c
|
||||
ldrsh r1, [r6, r2]
|
||||
bl Sin
|
||||
strh r0, [r6, #0x26]
|
||||
ldr r0, _08113B2C
|
||||
str r0, [r6, #0x1c]
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08113B2C: .4byte 0x08113B31
|
||||
thumb_func_end sub_08113AA0
|
||||
|
||||
thumb_func_start sub_08113B30
|
||||
sub_08113B30: @ 0x08113B30
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x2e
|
||||
ldrsh r5, [r4, r0]
|
||||
cmp r5, #0
|
||||
beq _08113B42
|
||||
cmp r5, #1
|
||||
beq _08113BAE
|
||||
b _08113C32
|
||||
_08113B42:
|
||||
ldrh r0, [r4, #0x3a]
|
||||
ldrh r1, [r4, #0x38]
|
||||
subs r0, r0, r1
|
||||
movs r1, #0xff
|
||||
ands r0, r1
|
||||
strh r0, [r4, #0x3a]
|
||||
movs r1, #0x3a
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x3c
|
||||
ldrsh r1, [r4, r2]
|
||||
bl Cos
|
||||
strh r0, [r4, #0x24]
|
||||
movs r1, #0x3a
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x3c
|
||||
ldrsh r1, [r4, r2]
|
||||
bl Sin
|
||||
strh r0, [r4, #0x26]
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x36]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #5
|
||||
ble _08113B94
|
||||
strh r5, [r4, #0x36]
|
||||
ldrh r1, [r4, #0x38]
|
||||
movs r2, #0x38
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #0xf
|
||||
bgt _08113B94
|
||||
adds r0, r1, #1
|
||||
strh r0, [r4, #0x38]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xf
|
||||
ble _08113B94
|
||||
movs r0, #0x10
|
||||
strh r0, [r4, #0x38]
|
||||
_08113B94:
|
||||
ldrh r0, [r4, #0x34]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x34]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x3c
|
||||
ble _08113C32
|
||||
movs r0, #0
|
||||
strh r0, [r4, #0x34]
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x2e]
|
||||
b _08113C32
|
||||
_08113BAE:
|
||||
ldrh r0, [r4, #0x3a]
|
||||
ldrh r1, [r4, #0x38]
|
||||
subs r0, r0, r1
|
||||
movs r1, #0xff
|
||||
ands r0, r1
|
||||
strh r0, [r4, #0x3a]
|
||||
ldrh r1, [r4, #0x3c]
|
||||
movs r2, #0x3c
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #0x95
|
||||
bgt _08113BD6
|
||||
adds r0, r1, #0
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x3c]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x95
|
||||
ble _08113BD6
|
||||
movs r0, #0x96
|
||||
strh r0, [r4, #0x3c]
|
||||
_08113BD6:
|
||||
movs r1, #0x3a
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x3c
|
||||
ldrsh r1, [r4, r2]
|
||||
bl Cos
|
||||
strh r0, [r4, #0x24]
|
||||
movs r1, #0x3a
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x3c
|
||||
ldrsh r1, [r4, r2]
|
||||
bl Sin
|
||||
strh r0, [r4, #0x26]
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x36]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #5
|
||||
ble _08113C1E
|
||||
movs r0, #0
|
||||
strh r0, [r4, #0x36]
|
||||
ldrh r1, [r4, #0x38]
|
||||
movs r2, #0x38
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #0xf
|
||||
bgt _08113C1E
|
||||
adds r0, r1, #1
|
||||
strh r0, [r4, #0x38]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xf
|
||||
ble _08113C1E
|
||||
movs r0, #0x10
|
||||
strh r0, [r4, #0x38]
|
||||
_08113C1E:
|
||||
ldrh r0, [r4, #0x34]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x34]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x14
|
||||
ble _08113C32
|
||||
adds r0, r4, #0
|
||||
bl DestroyAnimSprite
|
||||
_08113C32:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_08113B30
|
||||
|
||||
thumb_func_start sub_08113C38
|
||||
sub_08113C38: @ 0x08113C38
|
||||
push {r4, r5, r6, lr}
|
||||
sub sp, #0xc
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08113C64
|
||||
adds r4, r1, r0
|
||||
ldr r0, _08113C68
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSpriteBGPriorityRank
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _08113C74
|
||||
ldr r0, _08113C6C
|
||||
str r0, [sp]
|
||||
ldr r0, _08113C70
|
||||
b _08113C7A
|
||||
.align 2, 0
|
||||
_08113C64: .4byte 0x03005B60
|
||||
_08113C68: .4byte 0x020380D6
|
||||
_08113C6C: .4byte 0x04000014
|
||||
_08113C70: .4byte 0x02022ACC
|
||||
_08113C74:
|
||||
ldr r0, _08113CF0
|
||||
str r0, [sp]
|
||||
ldr r0, _08113CF4
|
||||
_08113C7A:
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0xc]
|
||||
ldr r0, _08113CF8
|
||||
str r0, [sp, #4]
|
||||
mov r1, sp
|
||||
movs r5, #0
|
||||
movs r0, #1
|
||||
strb r0, [r1, #8]
|
||||
mov r0, sp
|
||||
strb r5, [r0, #9]
|
||||
ldr r0, _08113CFC
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerYCoordWithElevation
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
adds r1, r0, #0
|
||||
subs r1, #0x20
|
||||
strh r1, [r4, #0xe]
|
||||
adds r0, #0x20
|
||||
strh r0, [r4, #0x10]
|
||||
cmp r1, #0
|
||||
bge _08113CAA
|
||||
strh r5, [r4, #0xe]
|
||||
_08113CAA:
|
||||
ldrh r3, [r4, #0xe]
|
||||
movs r1, #0x10
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r3, r0
|
||||
bgt _08113CD8
|
||||
ldr r5, _08113D00
|
||||
movs r0, #0xf0
|
||||
lsls r0, r0, #3
|
||||
adds r6, r5, r0
|
||||
_08113CBC:
|
||||
lsls r1, r3, #1
|
||||
adds r2, r1, r5
|
||||
ldrh r0, [r4, #0xc]
|
||||
strh r0, [r2]
|
||||
adds r1, r1, r6
|
||||
ldrh r0, [r4, #0xc]
|
||||
strh r0, [r1]
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r3, r0, #0x10
|
||||
movs r1, #0x10
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r3, r0
|
||||
ble _08113CBC
|
||||
_08113CD8:
|
||||
ldr r0, [sp]
|
||||
ldr r1, [sp, #4]
|
||||
ldr r2, [sp, #8]
|
||||
bl ScanlineEffect_SetParams
|
||||
ldr r0, _08113D04
|
||||
str r0, [r4]
|
||||
add sp, #0xc
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08113CF0: .4byte 0x04000018
|
||||
_08113CF4: .4byte 0x02022AD0
|
||||
_08113CF8: .4byte 0xA2600001
|
||||
_08113CFC: .4byte 0x020380D6
|
||||
_08113D00: .4byte 0x020388C8
|
||||
_08113D04: .4byte 0x08113D09
|
||||
thumb_func_end sub_08113C38
|
||||
|
||||
thumb_func_start sub_08113D08
|
||||
sub_08113D08: @ 0x08113D08
|
||||
push {lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
lsls r0, r3, #2
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08113D2C
|
||||
adds r2, r0, r1
|
||||
movs r1, #8
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, #4
|
||||
bhi _08113DBE
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08113D30
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08113D2C: .4byte 0x03005B60
|
||||
_08113D30: .4byte 0x08113D34
|
||||
_08113D34: @ jump table
|
||||
.4byte _08113D48 @ case 0
|
||||
.4byte _08113D6A @ case 1
|
||||
.4byte _08113D7A @ case 2
|
||||
.4byte _08113DA6 @ case 3
|
||||
.4byte _08113DB8 @ case 4
|
||||
_08113D48:
|
||||
ldrh r0, [r2, #0x16]
|
||||
adds r0, #1
|
||||
strh r0, [r2, #0x16]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #1
|
||||
ble _08113D9E
|
||||
movs r0, #0
|
||||
strh r0, [r2, #0x16]
|
||||
ldrh r0, [r2, #0x14]
|
||||
adds r0, #1
|
||||
strh r0, [r2, #0x14]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #3
|
||||
bne _08113D9E
|
||||
b _08113D98
|
||||
_08113D6A:
|
||||
ldrh r0, [r2, #0xa]
|
||||
adds r0, #1
|
||||
strh r0, [r2, #0xa]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0x3c
|
||||
ble _08113D9E
|
||||
b _08113D98
|
||||
_08113D7A:
|
||||
ldrh r0, [r2, #0x16]
|
||||
adds r0, #1
|
||||
strh r0, [r2, #0x16]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #1
|
||||
ble _08113D9E
|
||||
movs r0, #0
|
||||
strh r0, [r2, #0x16]
|
||||
ldrh r0, [r2, #0x14]
|
||||
subs r0, #1
|
||||
strh r0, [r2, #0x14]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08113D9E
|
||||
_08113D98:
|
||||
ldrh r0, [r2, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r2, #8]
|
||||
_08113D9E:
|
||||
adds r0, r2, #0
|
||||
bl sub_08113DC4
|
||||
b _08113DBE
|
||||
_08113DA6:
|
||||
ldr r1, _08113DB4
|
||||
movs r0, #3
|
||||
strb r0, [r1, #0x15]
|
||||
ldrh r0, [r2, #8]
|
||||
adds r0, #1
|
||||
strh r0, [r2, #8]
|
||||
b _08113DBE
|
||||
.align 2, 0
|
||||
_08113DB4: .4byte 0x020397C8
|
||||
_08113DB8:
|
||||
adds r0, r3, #0
|
||||
bl DestroyAnimVisualTask
|
||||
_08113DBE:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
thumb_func_end sub_08113D08
|
||||
|
||||
thumb_func_start sub_08113DC4
|
||||
sub_08113DC4: @ 0x08113DC4
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r5, r0, #0
|
||||
ldrh r3, [r5, #0x12]
|
||||
ldrh r4, [r5, #0xe]
|
||||
movs r1, #0x10
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r4, r0
|
||||
bgt _08113E1A
|
||||
ldr r7, _08113E30
|
||||
mov ip, r7
|
||||
ldr r0, _08113E34
|
||||
mov r8, r0
|
||||
ldr r6, _08113E38
|
||||
_08113DE2:
|
||||
lsls r2, r4, #1
|
||||
ldrb r1, [r6, #0x14]
|
||||
lsls r0, r1, #4
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #7
|
||||
adds r2, r2, r0
|
||||
add r2, ip
|
||||
lsls r0, r3, #1
|
||||
add r0, r8
|
||||
movs r7, #0
|
||||
ldrsh r1, [r0, r7]
|
||||
movs r7, #0x14
|
||||
ldrsh r0, [r5, r7]
|
||||
muls r0, r1, r0
|
||||
asrs r0, r0, #7
|
||||
ldrh r1, [r5, #0xc]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r2]
|
||||
adds r3, #8
|
||||
movs r0, #0xff
|
||||
ands r3, r0
|
||||
adds r0, r4, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
movs r7, #0x10
|
||||
ldrsh r0, [r5, r7]
|
||||
cmp r4, r0
|
||||
ble _08113DE2
|
||||
_08113E1A:
|
||||
ldrh r0, [r5, #0x12]
|
||||
adds r0, #9
|
||||
movs r1, #0xff
|
||||
ands r0, r1
|
||||
strh r0, [r5, #0x12]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08113E30: .4byte 0x020388C8
|
||||
_08113E34: .4byte 0x082FA8CC
|
||||
_08113E38: .4byte 0x020397C8
|
||||
thumb_func_end sub_08113DC4
|
||||
|
||||
thumb_func_start sub_08113E3C
|
||||
sub_08113E3C: @ 0x08113E3C
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
adds r4, r0, #0
|
||||
ldr r5, _08113EDC
|
||||
movs r0, #4
|
||||
ldrsh r1, [r5, r0]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
movs r1, #5
|
||||
bl __divsi3
|
||||
adds r6, r0, #0
|
||||
ldr r1, _08113EE0
|
||||
mov r8, r1
|
||||
ldrb r0, [r1]
|
||||
movs r1, #2
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
strh r0, [r4, #0x20]
|
||||
mov r2, r8
|
||||
ldrb r0, [r2]
|
||||
movs r1, #3
|
||||
bl GetBattlerSpriteCoord
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrh r3, [r5, #8]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r4, #0x22]
|
||||
movs r1, #2
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r2, #4
|
||||
ldrsh r1, [r5, r2]
|
||||
bl Cos
|
||||
strh r0, [r4, #0x30]
|
||||
movs r3, #2
|
||||
ldrsh r0, [r5, r3]
|
||||
lsls r6, r6, #0x10
|
||||
asrs r6, r6, #0x10
|
||||
adds r1, r6, #0
|
||||
bl Sin
|
||||
strh r0, [r4, #0x32]
|
||||
ldrh r1, [r4, #0x30]
|
||||
ldrh r2, [r5]
|
||||
adds r3, r2, #0
|
||||
muls r3, r1, r3
|
||||
adds r1, r3, #0
|
||||
ldrh r3, [r4, #0x20]
|
||||
adds r1, r1, r3
|
||||
strh r1, [r4, #0x20]
|
||||
adds r1, r2, #0
|
||||
muls r1, r0, r1
|
||||
adds r0, r1, #0
|
||||
ldrh r2, [r4, #0x22]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x22]
|
||||
ldrh r0, [r5, #6]
|
||||
strh r0, [r4, #0x34]
|
||||
ldr r0, _08113EE4
|
||||
str r0, [r4, #0x1c]
|
||||
adds r4, #0x2e
|
||||
ldr r2, _08113EE8
|
||||
movs r1, #6
|
||||
_08113EC4:
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r2]
|
||||
adds r4, #2
|
||||
adds r2, #2
|
||||
subs r1, #1
|
||||
cmp r1, #0
|
||||
bge _08113EC4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08113EDC: .4byte 0x020380BE
|
||||
_08113EE0: .4byte 0x020380D6
|
||||
_08113EE4: .4byte 0x08113EED
|
||||
_08113EE8: .4byte 0x02039DCC
|
||||
thumb_func_end sub_08113E3C
|
||||
|
||||
100
asm/dynamic_placeholder_text_util.s
Normal file
100
asm/dynamic_placeholder_text_util.s
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start DynamicPlaceholderTextUtil_Reset
|
||||
DynamicPlaceholderTextUtil_Reset: @ 0x081AF8C8
|
||||
push {lr}
|
||||
ldr r1, _081AF8E0
|
||||
movs r2, #0
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x1c
|
||||
_081AF8D2:
|
||||
str r2, [r0]
|
||||
subs r0, #4
|
||||
cmp r0, r1
|
||||
bge _081AF8D2
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081AF8E0: .4byte 0x0203CB68
|
||||
thumb_func_end DynamicPlaceholderTextUtil_Reset
|
||||
|
||||
thumb_func_start DynamicPlaceholderTextUtil_SetPlaceholderPtr
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr: @ 0x081AF8E4
|
||||
push {lr}
|
||||
adds r2, r1, #0
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #7
|
||||
bhi _081AF8F8
|
||||
ldr r1, _081AF8FC
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
str r2, [r0]
|
||||
_081AF8F8:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081AF8FC: .4byte 0x0203CB68
|
||||
thumb_func_end DynamicPlaceholderTextUtil_SetPlaceholderPtr
|
||||
|
||||
thumb_func_start DynamicPlaceholderTextUtil_ExpandPlaceholders
|
||||
DynamicPlaceholderTextUtil_ExpandPlaceholders: @ 0x081AF900
|
||||
push {r4, r5, lr}
|
||||
adds r2, r0, #0
|
||||
adds r4, r1, #0
|
||||
ldrb r1, [r4]
|
||||
adds r0, r1, #0
|
||||
cmp r0, #0xff
|
||||
beq _081AF940
|
||||
ldr r5, _081AF91C
|
||||
_081AF910:
|
||||
cmp r1, #0xf7
|
||||
beq _081AF920
|
||||
strb r1, [r2]
|
||||
adds r4, #1
|
||||
adds r2, #1
|
||||
b _081AF938
|
||||
.align 2, 0
|
||||
_081AF91C: .4byte 0x0203CB68
|
||||
_081AF920:
|
||||
adds r4, #1
|
||||
ldrb r0, [r4]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r5
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _081AF936
|
||||
adds r0, r2, #0
|
||||
bl StringCopy
|
||||
adds r2, r0, #0
|
||||
_081AF936:
|
||||
adds r4, #1
|
||||
_081AF938:
|
||||
ldrb r1, [r4]
|
||||
adds r0, r1, #0
|
||||
cmp r0, #0xff
|
||||
bne _081AF910
|
||||
_081AF940:
|
||||
movs r0, #0xff
|
||||
strb r0, [r2]
|
||||
adds r0, r2, #0
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end DynamicPlaceholderTextUtil_ExpandPlaceholders
|
||||
|
||||
thumb_func_start DynamicPlaceholderTextUtil_GetPlaceholderPtr
|
||||
DynamicPlaceholderTextUtil_GetPlaceholderPtr: @ 0x081AF94C
|
||||
lsls r0, r0, #0x18
|
||||
ldr r1, _081AF958
|
||||
lsrs r0, r0, #0x16
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_081AF958: .4byte 0x0203CB68
|
||||
thumb_func_end DynamicPlaceholderTextUtil_GetPlaceholderPtr
|
||||
|
||||
11329
asm/easy_chat.s
Normal file
11329
asm/easy_chat.s
Normal file
File diff suppressed because it is too large
Load Diff
1900
asm/egg_hatch.s
Normal file
1900
asm/egg_hatch.s
Normal file
File diff suppressed because it is too large
Load Diff
2774
asm/electric.s
Normal file
2774
asm/electric.s
Normal file
File diff suppressed because it is too large
Load Diff
1304
asm/ereader_helpers.s
Normal file
1304
asm/ereader_helpers.s
Normal file
File diff suppressed because it is too large
Load Diff
904
asm/ereader_screen.s
Normal file
904
asm/ereader_screen.s
Normal file
|
|
@ -0,0 +1,904 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start sub_081D43D0
|
||||
sub_081D43D0: @ 0x081D43D0
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
sub sp, #4
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
mov r8, r2
|
||||
mov r1, sp
|
||||
ldr r4, _081D4424
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r1]
|
||||
movs r0, #0
|
||||
strh r0, [r4]
|
||||
ldr r1, _081D4428
|
||||
ldr r0, _081D442C
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _081D4430
|
||||
str r0, [r1, #8]
|
||||
bl sub_081D3820
|
||||
bl sub_081D38B8
|
||||
ldr r2, _081D4434
|
||||
ldrh r0, [r2]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
movs r0, #0
|
||||
strh r0, [r5]
|
||||
str r6, [r5, #4]
|
||||
mov r0, r8
|
||||
str r0, [r5, #8]
|
||||
add sp, #4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D4424: .4byte 0x04000208
|
||||
_081D4428: .4byte 0x030027B0
|
||||
_081D442C: .4byte 0x081D362D
|
||||
_081D4430: .4byte 0x081D361D
|
||||
_081D4434: .4byte 0x04000200
|
||||
thumb_func_end sub_081D43D0
|
||||
|
||||
thumb_func_start sub_081D4438
|
||||
sub_081D4438: @ 0x081D4438
|
||||
push {r4, lr}
|
||||
sub sp, #4
|
||||
mov r1, sp
|
||||
ldr r4, _081D4464
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r1]
|
||||
movs r0, #0
|
||||
strh r0, [r4]
|
||||
bl sub_081D38B8
|
||||
bl sub_081D3874
|
||||
bl RestoreSerialTimer3IntrHandlers
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
add sp, #4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D4464: .4byte 0x04000208
|
||||
thumb_func_end sub_081D4438
|
||||
|
||||
thumb_func_start sub_081D4468
|
||||
sub_081D4468: @ 0x081D4468
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r5, #0
|
||||
ldr r1, [r4, #4]
|
||||
ldr r2, [r4, #8]
|
||||
movs r0, #1
|
||||
movs r3, #0
|
||||
bl sub_081D33F0
|
||||
adds r1, r0, #0
|
||||
strh r1, [r4]
|
||||
movs r0, #0x13
|
||||
ands r0, r1
|
||||
cmp r0, #0x10
|
||||
bne _081D4488
|
||||
movs r5, #1
|
||||
_081D4488:
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _081D4492
|
||||
movs r5, #2
|
||||
_081D4492:
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _081D449C
|
||||
movs r5, #3
|
||||
_081D449C:
|
||||
ldr r1, _081D44AC
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r0, r5, #0
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_081D44AC: .4byte 0x030031E4
|
||||
thumb_func_end sub_081D4468
|
||||
|
||||
thumb_func_start sub_081D44B0
|
||||
sub_081D44B0: @ 0x081D44B0
|
||||
push {lr}
|
||||
ldr r0, _081D44D4
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #6
|
||||
movs r1, #0
|
||||
bl memset
|
||||
ldr r1, _081D44D8
|
||||
ldr r2, _081D44DC
|
||||
adds r0, r2, #0
|
||||
strh r0, [r1]
|
||||
bl OpenLink
|
||||
movs r0, #1
|
||||
bl SetSuppressLinkErrorMessage
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D44D4: .4byte 0x0201C000
|
||||
_081D44D8: .4byte 0x0202267E
|
||||
_081D44DC: .4byte 0x00005503
|
||||
thumb_func_end sub_081D44B0
|
||||
|
||||
thumb_func_start sub_081D44E0
|
||||
sub_081D44E0: @ 0x081D44E0
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
mov r1, sp
|
||||
ldr r2, _081D4524
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r1]
|
||||
movs r0, #0
|
||||
strh r0, [r2]
|
||||
ldr r0, _081D4528
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, #4]
|
||||
str r1, [sp, #8]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r2]
|
||||
add r2, sp, #4
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _081D452C
|
||||
cmp r1, r0
|
||||
bne _081D4538
|
||||
ldrh r1, [r2, #2]
|
||||
ldr r0, _081D4530
|
||||
cmp r1, r0
|
||||
bne _081D4538
|
||||
ldrh r1, [r2, #4]
|
||||
ldr r0, _081D4534
|
||||
cmp r1, r0
|
||||
bne _081D4538
|
||||
ldrh r0, [r2, #6]
|
||||
cmp r0, r1
|
||||
bne _081D4538
|
||||
movs r0, #1
|
||||
b _081D453A
|
||||
.align 2, 0
|
||||
_081D4524: .4byte 0x04000208
|
||||
_081D4528: .4byte 0x03003214
|
||||
_081D452C: .4byte 0x0000B9A0
|
||||
_081D4530: .4byte 0x0000CCD0
|
||||
_081D4534: .4byte 0x0000FFFF
|
||||
_081D4538:
|
||||
movs r0, #0
|
||||
_081D453A:
|
||||
add sp, #0xc
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_081D44E0
|
||||
|
||||
thumb_func_start sub_081D4540
|
||||
sub_081D4540: @ 0x081D4540
|
||||
push {lr}
|
||||
bl IsLinkMaster
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D455C
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #2
|
||||
bne _081D455C
|
||||
movs r0, #1
|
||||
b _081D455E
|
||||
_081D455C:
|
||||
movs r0, #0
|
||||
_081D455E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end sub_081D4540
|
||||
|
||||
thumb_func_start sub_081D4564
|
||||
sub_081D4564: @ 0x081D4564
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
ldrb r0, [r4]
|
||||
subs r0, #3
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #2
|
||||
bhi _081D4588
|
||||
bl HasLinkErrorOccurred
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D4588
|
||||
movs r0, #0
|
||||
strb r0, [r4]
|
||||
movs r0, #3
|
||||
b _081D468E
|
||||
_081D4588:
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #5
|
||||
bls _081D4590
|
||||
b _081D468C
|
||||
_081D4590:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _081D459C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_081D459C: .4byte 0x081D45A0
|
||||
_081D45A0: @ jump table
|
||||
.4byte _081D45B8 @ case 0
|
||||
.4byte _081D45D4 @ case 1
|
||||
.4byte _081D45EC @ case 2
|
||||
.4byte _081D4620 @ case 3
|
||||
.4byte _081D466C @ case 4
|
||||
.4byte _081D4678 @ case 5
|
||||
_081D45B8:
|
||||
bl IsLinkMaster
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D4608
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bls _081D4608
|
||||
movs r0, #1
|
||||
strb r0, [r4]
|
||||
b _081D468C
|
||||
_081D45D4:
|
||||
ldrh r0, [r5]
|
||||
adds r0, #1
|
||||
strh r0, [r5]
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #5
|
||||
bls _081D468C
|
||||
movs r0, #0
|
||||
strh r0, [r5]
|
||||
movs r0, #2
|
||||
strb r0, [r4]
|
||||
b _081D468C
|
||||
_081D45EC:
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #2
|
||||
bne _081D4608
|
||||
movs r0, #0x49
|
||||
bl PlaySE
|
||||
bl CheckShouldAdvanceLinkState
|
||||
movs r0, #0
|
||||
strh r0, [r5]
|
||||
b _081D4666
|
||||
_081D4608:
|
||||
ldr r0, _081D461C
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _081D468C
|
||||
movs r0, #0
|
||||
strb r0, [r4]
|
||||
movs r0, #1
|
||||
b _081D468E
|
||||
.align 2, 0
|
||||
_081D461C: .4byte 0x03002360
|
||||
_081D4620:
|
||||
ldrh r0, [r5]
|
||||
adds r0, #1
|
||||
strh r0, [r5]
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x1e
|
||||
bls _081D4636
|
||||
movs r0, #0
|
||||
strb r0, [r4]
|
||||
movs r0, #5
|
||||
b _081D468E
|
||||
_081D4636:
|
||||
bl IsLinkConnectionEstablished
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D468C
|
||||
ldr r0, _081D465C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _081D4666
|
||||
bl IsLinkPlayerDataExchangeComplete
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D4660
|
||||
movs r0, #0
|
||||
strb r0, [r4]
|
||||
movs r0, #2
|
||||
b _081D468E
|
||||
.align 2, 0
|
||||
_081D465C: .4byte 0x030031C4
|
||||
_081D4660:
|
||||
movs r0, #4
|
||||
strb r0, [r4]
|
||||
b _081D468C
|
||||
_081D4666:
|
||||
movs r0, #3
|
||||
strb r0, [r4]
|
||||
b _081D468C
|
||||
_081D466C:
|
||||
movs r0, #0
|
||||
bl sub_0800A7B8
|
||||
movs r0, #5
|
||||
strb r0, [r4]
|
||||
b _081D468C
|
||||
_081D4678:
|
||||
ldr r0, _081D4688
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _081D468C
|
||||
strb r0, [r4]
|
||||
movs r0, #4
|
||||
b _081D468E
|
||||
.align 2, 0
|
||||
_081D4688: .4byte 0x030031C4
|
||||
_081D468C:
|
||||
movs r0, #0
|
||||
_081D468E:
|
||||
pop {r4, r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_081D4564
|
||||
|
||||
thumb_func_start task_add_00_ereader
|
||||
task_add_00_ereader: @ 0x081D4694
|
||||
push {r4, lr}
|
||||
ldr r0, _081D46D4
|
||||
movs r1, #0
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
lsls r4, r0, #2
|
||||
adds r4, r4, r0
|
||||
lsls r4, r4, #3
|
||||
ldr r0, _081D46D8
|
||||
adds r4, r4, r0
|
||||
movs r0, #0
|
||||
strb r0, [r4, #8]
|
||||
strb r0, [r4, #9]
|
||||
strb r0, [r4, #0xa]
|
||||
strb r0, [r4, #0xb]
|
||||
strb r0, [r4, #0xc]
|
||||
strb r0, [r4, #0xd]
|
||||
movs r1, #0
|
||||
strh r0, [r4]
|
||||
strh r0, [r4, #2]
|
||||
strh r0, [r4, #4]
|
||||
strh r0, [r4, #6]
|
||||
strb r1, [r4, #0xe]
|
||||
movs r0, #0x40
|
||||
bl AllocZeroed
|
||||
str r0, [r4, #0x10]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D46D4: .4byte 0x081D4705
|
||||
_081D46D8: .4byte 0x03005B68
|
||||
thumb_func_end task_add_00_ereader
|
||||
|
||||
thumb_func_start sub_081D46DC
|
||||
sub_081D46DC: @ 0x081D46DC
|
||||
movs r1, #0
|
||||
strh r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end sub_081D46DC
|
||||
|
||||
thumb_func_start sub_081D46E4
|
||||
sub_081D46E4: @ 0x081D46E4
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #0x10
|
||||
ldrh r0, [r2]
|
||||
adds r0, #1
|
||||
strh r0, [r2]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, r1
|
||||
bhi _081D46FA
|
||||
movs r0, #0
|
||||
b _081D4700
|
||||
_081D46FA:
|
||||
movs r0, #0
|
||||
strh r0, [r2]
|
||||
movs r0, #1
|
||||
_081D4700:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_081D46E4
|
||||
|
||||
thumb_func_start sub_081D4704
|
||||
sub_081D4704: @ 0x081D4704
|
||||
push {r4, r5, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
lsls r0, r5, #2
|
||||
adds r0, r0, r5
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _081D4728
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4, #8]
|
||||
cmp r0, #0x1a
|
||||
bls _081D471C
|
||||
b _081D4B0A
|
||||
_081D471C:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _081D472C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_081D4728: .4byte 0x03005B68
|
||||
_081D472C: .4byte 0x081D4730
|
||||
_081D4730: @ jump table
|
||||
.4byte _081D479C @ case 0
|
||||
.4byte _081D47B8 @ case 1
|
||||
.4byte _081D47C8 @ case 2
|
||||
.4byte _081D47DC @ case 3
|
||||
.4byte _081D47EC @ case 4
|
||||
.4byte _081D4818 @ case 5
|
||||
.4byte _081D4850 @ case 6
|
||||
.4byte _081D48CC @ case 7
|
||||
.4byte _081D48E8 @ case 8
|
||||
.4byte _081D4910 @ case 9
|
||||
.4byte _081D492C @ case 10
|
||||
.4byte _081D495C @ case 11
|
||||
.4byte _081D4972 @ case 12
|
||||
.4byte _081D4988 @ case 13
|
||||
.4byte _081D49EA @ case 14
|
||||
.4byte _081D4A10 @ case 15
|
||||
.4byte _081D4A28 @ case 16
|
||||
.4byte _081D4A46 @ case 17
|
||||
.4byte _081D4A72 @ case 18
|
||||
.4byte _081D4A98 @ case 19
|
||||
.4byte _081D4AC8 @ case 20
|
||||
.4byte _081D4AD4 @ case 21
|
||||
.4byte _081D4AE0 @ case 22
|
||||
.4byte _081D4AB0 @ case 23
|
||||
.4byte _081D4B0A @ case 24
|
||||
.4byte _081D4B0A @ case 25
|
||||
.4byte _081D4AF8 @ case 26
|
||||
_081D479C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
ldr r1, _081D47B4
|
||||
bl MG_PrintTextOnWindow1AndWaitButton
|
||||
cmp r0, #0
|
||||
bne _081D47AC
|
||||
b _081D4B0A
|
||||
_081D47AC:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D47B4: .4byte 0x085CCEEC
|
||||
_081D47B8:
|
||||
bl sub_081D44B0
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
movs r0, #2
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D47C8:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl sub_081D46E4
|
||||
cmp r0, #0
|
||||
bne _081D47D6
|
||||
b _081D4B0A
|
||||
_081D47D6:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D47DC:
|
||||
bl sub_081D4540
|
||||
cmp r0, #0
|
||||
beq _081D47E6
|
||||
b _081D497C
|
||||
_081D47E6:
|
||||
bl CloseLink
|
||||
b _081D48DC
|
||||
_081D47EC:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
ldr r1, _081D4810
|
||||
bl MG_PrintTextOnWindow1AndWaitButton
|
||||
cmp r0, #0
|
||||
bne _081D47FC
|
||||
b _081D4B0A
|
||||
_081D47FC:
|
||||
ldr r0, _081D4814
|
||||
bl AddTextPrinterToWindow1
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
movs r0, #5
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4810: .4byte 0x085CCF0B
|
||||
_081D4814: .4byte 0x085CCF2A
|
||||
_081D4818:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x5a
|
||||
bl sub_081D46E4
|
||||
cmp r0, #0
|
||||
beq _081D482E
|
||||
bl sub_081D44B0
|
||||
movs r0, #6
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D482E:
|
||||
ldr r0, _081D484C
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _081D483C
|
||||
b _081D4B0A
|
||||
_081D483C:
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
movs r0, #5
|
||||
bl PlaySE
|
||||
b _081D49DA
|
||||
.align 2, 0
|
||||
_081D484C: .4byte 0x03002360
|
||||
_081D4850:
|
||||
ldr r0, _081D4870
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _081D4874
|
||||
movs r0, #5
|
||||
bl PlaySE
|
||||
bl CloseLink
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
b _081D49DA
|
||||
.align 2, 0
|
||||
_081D4870: .4byte 0x03002360
|
||||
_081D4874:
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bls _081D4890
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
bl CloseLink
|
||||
movs r0, #7
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D4890:
|
||||
bl sub_081D44E0
|
||||
cmp r0, #0
|
||||
beq _081D48AE
|
||||
movs r0, #5
|
||||
bl PlaySE
|
||||
bl CloseLink
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
movs r0, #8
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D48AE:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl sub_081D46E4
|
||||
cmp r0, #0
|
||||
bne _081D48BC
|
||||
b _081D4B0A
|
||||
_081D48BC:
|
||||
bl CloseLink
|
||||
bl sub_081D44B0
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
b _081D4B0A
|
||||
_081D48CC:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
ldr r1, _081D48E4
|
||||
bl MG_PrintTextOnWindow1AndWaitButton
|
||||
cmp r0, #0
|
||||
bne _081D48DC
|
||||
b _081D4B0A
|
||||
_081D48DC:
|
||||
movs r0, #4
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D48E4: .4byte 0x085CCF72
|
||||
_081D48E8:
|
||||
ldr r0, _081D4900
|
||||
bl AddTextPrinterToWindow1
|
||||
ldr r0, _081D4904
|
||||
ldr r1, _081D4908
|
||||
ldr r2, _081D490C
|
||||
subs r1, r1, r2
|
||||
bl sub_081D43D0
|
||||
movs r0, #9
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4900: .4byte 0x085CCFAD
|
||||
_081D4904: .4byte 0x03006110
|
||||
_081D4908: .4byte 0x08912454
|
||||
_081D490C: .4byte 0x0890F374
|
||||
_081D4910:
|
||||
ldr r0, _081D4928
|
||||
bl sub_081D4468
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081D4920
|
||||
b _081D4B0A
|
||||
_081D4920:
|
||||
movs r0, #0xa
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4928: .4byte 0x03006110
|
||||
_081D492C:
|
||||
ldr r0, _081D4954
|
||||
bl sub_081D4438
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #3
|
||||
bne _081D493A
|
||||
b _081D4A40
|
||||
_081D493A:
|
||||
cmp r0, #1
|
||||
beq _081D4940
|
||||
b _081D4AEE
|
||||
_081D4940:
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
ldr r0, _081D4958
|
||||
bl AddTextPrinterToWindow1
|
||||
movs r0, #0xb
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4954: .4byte 0x03006110
|
||||
_081D4958: .4byte 0x085CD036
|
||||
_081D495C:
|
||||
movs r1, #0xd2
|
||||
lsls r1, r1, #2
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46E4
|
||||
cmp r0, #0
|
||||
bne _081D496C
|
||||
b _081D4B0A
|
||||
_081D496C:
|
||||
movs r0, #0xc
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D4972:
|
||||
bl sub_081D44B0
|
||||
ldr r0, _081D4984
|
||||
bl AddTextPrinterToWindow1
|
||||
_081D497C:
|
||||
movs r0, #0xd
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4984: .4byte 0x085CCFF2
|
||||
_081D4988:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
adds r1, r4, #0
|
||||
bl sub_081D4564
|
||||
cmp r0, #5
|
||||
bls _081D4998
|
||||
b _081D4B0A
|
||||
_081D4998:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _081D49A4
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_081D49A4: .4byte 0x081D49A8
|
||||
_081D49A8: @ jump table
|
||||
.4byte _081D4B0A @ case 0
|
||||
.4byte _081D49D0 @ case 1
|
||||
.4byte _081D49C0 @ case 2
|
||||
.4byte _081D49F4 @ case 3
|
||||
.4byte _081D49F4 @ case 4
|
||||
.4byte _081D49E0 @ case 5
|
||||
_081D49C0:
|
||||
ldr r0, _081D49CC
|
||||
bl AddTextPrinterToWindow1
|
||||
movs r0, #0xe
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D49CC: .4byte 0x085CCFAD
|
||||
_081D49D0:
|
||||
movs r0, #5
|
||||
bl PlaySE
|
||||
bl CloseLink
|
||||
_081D49DA:
|
||||
movs r0, #0x17
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D49E0:
|
||||
bl CloseLink
|
||||
movs r0, #0x15
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D49EA:
|
||||
bl HasLinkErrorOccurred
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D49FA
|
||||
_081D49F4:
|
||||
bl CloseLink
|
||||
b _081D4A40
|
||||
_081D49FA:
|
||||
bl GetBlockReceivedStatus
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _081D4A06
|
||||
b _081D4B0A
|
||||
_081D4A06:
|
||||
bl ResetBlockReceivedFlags
|
||||
movs r0, #0xf
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D4A10:
|
||||
ldr r0, _081D4A24
|
||||
bl EReader_IsReceivedDataValid
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xe]
|
||||
bl sub_0800A7B8
|
||||
movs r0, #0x10
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4A24: .4byte 0x0201C000
|
||||
_081D4A28:
|
||||
ldr r0, _081D4A3C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _081D4B0A
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #1
|
||||
bne _081D4A40
|
||||
movs r0, #0x11
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4A3C: .4byte 0x030031C4
|
||||
_081D4A40:
|
||||
movs r0, #0x14
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D4A46:
|
||||
ldr r0, _081D4A64
|
||||
bl TryWriteTrainerHill
|
||||
cmp r0, #0
|
||||
beq _081D4A6C
|
||||
ldr r0, _081D4A68
|
||||
bl AddTextPrinterToWindow1
|
||||
adds r0, r4, #0
|
||||
bl sub_081D46DC
|
||||
movs r0, #0x12
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4A64: .4byte 0x0201C000
|
||||
_081D4A68: .4byte 0x085CD010
|
||||
_081D4A6C:
|
||||
movs r0, #0x16
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
_081D4A72:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x78
|
||||
bl sub_081D46E4
|
||||
cmp r0, #0
|
||||
beq _081D4B0A
|
||||
ldr r0, _081D4A94
|
||||
bl AddTextPrinterToWindow1
|
||||
movs r0, #0xb9
|
||||
lsls r0, r0, #1
|
||||
bl PlayFanfare
|
||||
movs r0, #0x13
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4A94: .4byte 0x085CD01D
|
||||
_081D4A98:
|
||||
bl IsFanfareTaskInactive
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _081D4B0A
|
||||
ldr r0, _081D4AAC
|
||||
ldrh r1, [r0, #0x2e]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
b _081D4ABA
|
||||
.align 2, 0
|
||||
_081D4AAC: .4byte 0x03002360
|
||||
_081D4AB0:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
ldr r1, _081D4AC4
|
||||
bl MG_PrintTextOnWindow1AndWaitButton
|
||||
_081D4ABA:
|
||||
cmp r0, #0
|
||||
beq _081D4B0A
|
||||
movs r0, #0x1a
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4AC4: .4byte 0x085CCF81
|
||||
_081D4AC8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
ldr r1, _081D4AD0
|
||||
b _081D4AE6
|
||||
.align 2, 0
|
||||
_081D4AD0: .4byte 0x085CCFB9
|
||||
_081D4AD4:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
ldr r1, _081D4ADC
|
||||
b _081D4AE6
|
||||
.align 2, 0
|
||||
_081D4ADC: .4byte 0x085CCFD5
|
||||
_081D4AE0:
|
||||
adds r0, r4, #0
|
||||
adds r0, #9
|
||||
ldr r1, _081D4AF4
|
||||
_081D4AE6:
|
||||
bl MG_PrintTextOnWindow1AndWaitButton
|
||||
cmp r0, #0
|
||||
beq _081D4B0A
|
||||
_081D4AEE:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #8]
|
||||
b _081D4B0A
|
||||
.align 2, 0
|
||||
_081D4AF4: .4byte 0x085CD043
|
||||
_081D4AF8:
|
||||
ldr r0, [r4, #0x10]
|
||||
bl Free
|
||||
adds r0, r5, #0
|
||||
bl DestroyTask
|
||||
ldr r0, _081D4B10
|
||||
bl SetMainCallback2
|
||||
_081D4B0A:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081D4B10: .4byte 0x08018139
|
||||
thumb_func_end sub_081D4704
|
||||
|
||||
620
asm/event_data.s
Normal file
620
asm/event_data.s
Normal file
|
|
@ -0,0 +1,620 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start InitEventData
|
||||
InitEventData: @ 0x0809CBD8
|
||||
push {r4, lr}
|
||||
ldr r4, _0809CC0C
|
||||
ldr r0, [r4]
|
||||
ldr r1, _0809CC10
|
||||
adds r0, r0, r1
|
||||
movs r2, #0x96
|
||||
lsls r2, r2, #1
|
||||
movs r1, #0
|
||||
bl memset
|
||||
ldr r0, [r4]
|
||||
ldr r1, _0809CC14
|
||||
adds r0, r0, r1
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #2
|
||||
movs r1, #0
|
||||
bl memset
|
||||
ldr r0, _0809CC18
|
||||
movs r1, #0
|
||||
movs r2, #0x10
|
||||
bl memset
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CC0C: .4byte 0x03005AEC
|
||||
_0809CC10: .4byte 0x00001270
|
||||
_0809CC14: .4byte 0x0000139C
|
||||
_0809CC18: .4byte 0x0203729C
|
||||
thumb_func_end InitEventData
|
||||
|
||||
thumb_func_start ClearTempFieldEventData
|
||||
ClearTempFieldEventData: @ 0x0809CC1C
|
||||
push {lr}
|
||||
ldr r0, _0809CC5C
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0809CC60
|
||||
adds r2, r0, r1
|
||||
movs r1, #0
|
||||
str r1, [r2]
|
||||
ldr r1, _0809CC64
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
movs r2, #0x20
|
||||
bl memset
|
||||
ldr r0, _0809CC68
|
||||
bl FlagClear
|
||||
ldr r0, _0809CC6C
|
||||
bl FlagClear
|
||||
ldr r0, _0809CC70
|
||||
bl FlagClear
|
||||
ldr r0, _0809CC74
|
||||
bl FlagClear
|
||||
movs r0, #0x88
|
||||
lsls r0, r0, #4
|
||||
bl FlagClear
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CC5C: .4byte 0x03005AEC
|
||||
_0809CC60: .4byte 0x00001270
|
||||
_0809CC64: .4byte 0x0000139C
|
||||
_0809CC68: .4byte 0x000008AD
|
||||
_0809CC6C: .4byte 0x000008AE
|
||||
_0809CC70: .4byte 0x00000889
|
||||
_0809CC74: .4byte 0x000008C1
|
||||
thumb_func_end ClearTempFieldEventData
|
||||
|
||||
thumb_func_start ClearDailyFlags
|
||||
ClearDailyFlags: @ 0x0809CC78
|
||||
push {lr}
|
||||
ldr r0, _0809CC90
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0809CC94
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
movs r2, #8
|
||||
bl memset
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CC90: .4byte 0x03005AEC
|
||||
_0809CC94: .4byte 0x00001394
|
||||
thumb_func_end ClearDailyFlags
|
||||
|
||||
thumb_func_start DisableNationalPokedex
|
||||
DisableNationalPokedex: @ 0x0809CC98
|
||||
push {lr}
|
||||
ldr r0, _0809CCB4
|
||||
bl GetVarPointer
|
||||
ldr r1, _0809CCB8
|
||||
ldr r2, [r1]
|
||||
movs r1, #0
|
||||
strb r1, [r2, #0x1a]
|
||||
strh r1, [r0]
|
||||
ldr r0, _0809CCBC
|
||||
bl FlagClear
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CCB4: .4byte 0x00004046
|
||||
_0809CCB8: .4byte 0x03005AF0
|
||||
_0809CCBC: .4byte 0x00000896
|
||||
thumb_func_end DisableNationalPokedex
|
||||
|
||||
thumb_func_start EnableNationalPokedex
|
||||
EnableNationalPokedex: @ 0x0809CCC0
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _0809CCF4
|
||||
bl GetVarPointer
|
||||
ldr r4, _0809CCF8
|
||||
ldr r2, [r4]
|
||||
movs r5, #0
|
||||
movs r1, #0xda
|
||||
strb r1, [r2, #0x1a]
|
||||
ldr r2, _0809CCFC
|
||||
adds r1, r2, #0
|
||||
strh r1, [r0]
|
||||
ldr r0, _0809CD00
|
||||
bl FlagSet
|
||||
ldr r1, [r4]
|
||||
movs r0, #1
|
||||
strb r0, [r1, #0x19]
|
||||
ldr r0, [r4]
|
||||
strb r5, [r0, #0x18]
|
||||
bl ResetPokedexScrollPositions
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CCF4: .4byte 0x00004046
|
||||
_0809CCF8: .4byte 0x03005AF0
|
||||
_0809CCFC: .4byte 0x00000302
|
||||
_0809CD00: .4byte 0x00000896
|
||||
thumb_func_end EnableNationalPokedex
|
||||
|
||||
thumb_func_start IsNationalPokedexEnabled
|
||||
IsNationalPokedexEnabled: @ 0x0809CD04
|
||||
push {lr}
|
||||
ldr r0, _0809CD30
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, #0x1a]
|
||||
cmp r0, #0xda
|
||||
bne _0809CD40
|
||||
ldr r0, _0809CD34
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, _0809CD38
|
||||
cmp r0, r1
|
||||
bne _0809CD40
|
||||
ldr r0, _0809CD3C
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _0809CD40
|
||||
movs r0, #1
|
||||
b _0809CD42
|
||||
.align 2, 0
|
||||
_0809CD30: .4byte 0x03005AF0
|
||||
_0809CD34: .4byte 0x00004046
|
||||
_0809CD38: .4byte 0x03020000
|
||||
_0809CD3C: .4byte 0x00000896
|
||||
_0809CD40:
|
||||
movs r0, #0
|
||||
_0809CD42:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end IsNationalPokedexEnabled
|
||||
|
||||
thumb_func_start DisableMysteryEvent
|
||||
DisableMysteryEvent: @ 0x0809CD48
|
||||
push {lr}
|
||||
ldr r0, _0809CD54
|
||||
bl FlagClear
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CD54: .4byte 0x000008AC
|
||||
thumb_func_end DisableMysteryEvent
|
||||
|
||||
thumb_func_start EnableMysteryEvent
|
||||
EnableMysteryEvent: @ 0x0809CD58
|
||||
push {lr}
|
||||
ldr r0, _0809CD64
|
||||
bl FlagSet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CD64: .4byte 0x000008AC
|
||||
thumb_func_end EnableMysteryEvent
|
||||
|
||||
thumb_func_start IsMysteryEventEnabled
|
||||
IsMysteryEventEnabled: @ 0x0809CD68
|
||||
push {lr}
|
||||
ldr r0, _0809CD78
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0809CD78: .4byte 0x000008AC
|
||||
thumb_func_end IsMysteryEventEnabled
|
||||
|
||||
thumb_func_start DisableMysteryGift
|
||||
DisableMysteryGift: @ 0x0809CD7C
|
||||
push {lr}
|
||||
ldr r0, _0809CD88
|
||||
bl FlagClear
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CD88: .4byte 0x000008DB
|
||||
thumb_func_end DisableMysteryGift
|
||||
|
||||
thumb_func_start EnableMysteryGift
|
||||
EnableMysteryGift: @ 0x0809CD8C
|
||||
push {lr}
|
||||
ldr r0, _0809CD98
|
||||
bl FlagSet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CD98: .4byte 0x000008DB
|
||||
thumb_func_end EnableMysteryGift
|
||||
|
||||
thumb_func_start IsMysteryGiftEnabled
|
||||
IsMysteryGiftEnabled: @ 0x0809CD9C
|
||||
push {lr}
|
||||
ldr r0, _0809CDAC
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0809CDAC: .4byte 0x000008DB
|
||||
thumb_func_end IsMysteryGiftEnabled
|
||||
|
||||
thumb_func_start sub_0809CDB0
|
||||
sub_0809CDB0: @ 0x0809CDB0
|
||||
push {lr}
|
||||
movs r0, #0xf2
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE28
|
||||
bl FlagClear
|
||||
movs r0, #0xf3
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE2C
|
||||
bl FlagClear
|
||||
movs r0, #0xf4
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE30
|
||||
bl FlagClear
|
||||
movs r0, #0xf5
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE34
|
||||
bl FlagClear
|
||||
movs r0, #0xf6
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE38
|
||||
bl FlagClear
|
||||
movs r0, #0xf7
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE3C
|
||||
bl FlagClear
|
||||
movs r0, #0xf8
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE40
|
||||
bl FlagClear
|
||||
movs r0, #0xf9
|
||||
lsls r0, r0, #1
|
||||
bl FlagClear
|
||||
ldr r0, _0809CE44
|
||||
bl FlagClear
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CE28: .4byte 0x000001E5
|
||||
_0809CE2C: .4byte 0x000001E7
|
||||
_0809CE30: .4byte 0x000001E9
|
||||
_0809CE34: .4byte 0x000001EB
|
||||
_0809CE38: .4byte 0x000001ED
|
||||
_0809CE3C: .4byte 0x000001EF
|
||||
_0809CE40: .4byte 0x000001F1
|
||||
_0809CE44: .4byte 0x000001F3
|
||||
thumb_func_end sub_0809CDB0
|
||||
|
||||
thumb_func_start sub_0809CE48
|
||||
sub_0809CE48: @ 0x0809CE48
|
||||
push {lr}
|
||||
ldr r0, _0809CE90
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CE94
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CE98
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CE9C
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CEA0
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CEA4
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CEA8
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CEAC
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CE90: .4byte 0x000040DD
|
||||
_0809CE94: .4byte 0x000040DE
|
||||
_0809CE98: .4byte 0x000040DF
|
||||
_0809CE9C: .4byte 0x000040E0
|
||||
_0809CEA0: .4byte 0x000040E1
|
||||
_0809CEA4: .4byte 0x000040E2
|
||||
_0809CEA8: .4byte 0x000040E3
|
||||
_0809CEAC: .4byte 0x000040E4
|
||||
thumb_func_end sub_0809CE48
|
||||
|
||||
thumb_func_start DisableResetRTC
|
||||
DisableResetRTC: @ 0x0809CEB0
|
||||
push {lr}
|
||||
ldr r0, _0809CEC4
|
||||
movs r1, #0
|
||||
bl VarSet
|
||||
ldr r0, _0809CEC8
|
||||
bl FlagClear
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CEC4: .4byte 0x0000402C
|
||||
_0809CEC8: .4byte 0x000008C2
|
||||
thumb_func_end DisableResetRTC
|
||||
|
||||
thumb_func_start EnableResetRTC
|
||||
EnableResetRTC: @ 0x0809CECC
|
||||
push {lr}
|
||||
ldr r0, _0809CEE4
|
||||
movs r1, #0x92
|
||||
lsls r1, r1, #4
|
||||
bl VarSet
|
||||
ldr r0, _0809CEE8
|
||||
bl FlagSet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809CEE4: .4byte 0x0000402C
|
||||
_0809CEE8: .4byte 0x000008C2
|
||||
thumb_func_end EnableResetRTC
|
||||
|
||||
thumb_func_start CanResetRTC
|
||||
CanResetRTC: @ 0x0809CEEC
|
||||
push {lr}
|
||||
ldr r0, _0809CF10
|
||||
bl FlagGet
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _0809CF18
|
||||
ldr r0, _0809CF14
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x10
|
||||
movs r1, #0x92
|
||||
lsls r1, r1, #0x14
|
||||
cmp r0, r1
|
||||
bne _0809CF18
|
||||
movs r0, #1
|
||||
b _0809CF1A
|
||||
.align 2, 0
|
||||
_0809CF10: .4byte 0x000008C2
|
||||
_0809CF14: .4byte 0x0000402C
|
||||
_0809CF18:
|
||||
movs r0, #0
|
||||
_0809CF1A:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end CanResetRTC
|
||||
|
||||
thumb_func_start GetVarPointer
|
||||
GetVarPointer: @ 0x0809CF20
|
||||
push {lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r1, r0, #0x10
|
||||
adds r2, r1, #0
|
||||
ldr r0, _0809CF34
|
||||
cmp r1, r0
|
||||
bhi _0809CF38
|
||||
movs r0, #0
|
||||
b _0809CF60
|
||||
.align 2, 0
|
||||
_0809CF34: .4byte 0x00003FFF
|
||||
_0809CF38:
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bge _0809CF54
|
||||
ldr r0, _0809CF4C
|
||||
ldr r2, _0809CF50
|
||||
adds r1, r1, r2
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r1]
|
||||
b _0809CF60
|
||||
.align 2, 0
|
||||
_0809CF4C: .4byte 0x081DAF34
|
||||
_0809CF50: .4byte 0xFFFF8000
|
||||
_0809CF54:
|
||||
ldr r0, _0809CF64
|
||||
lsls r1, r2, #1
|
||||
ldr r2, _0809CF68
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r0]
|
||||
adds r0, r0, r1
|
||||
_0809CF60:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0809CF64: .4byte 0x03005AEC
|
||||
_0809CF68: .4byte 0xFFFF939C
|
||||
thumb_func_end GetVarPointer
|
||||
|
||||
thumb_func_start VarGet
|
||||
VarGet: @ 0x0809CF6C
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
adds r0, r4, #0
|
||||
bl GetVarPointer
|
||||
cmp r0, #0
|
||||
beq _0809CF80
|
||||
ldrh r0, [r0]
|
||||
b _0809CF82
|
||||
_0809CF80:
|
||||
adds r0, r4, #0
|
||||
_0809CF82:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end VarGet
|
||||
|
||||
thumb_func_start VarSet
|
||||
VarSet: @ 0x0809CF88
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r4, r1, #0x10
|
||||
bl GetVarPointer
|
||||
cmp r0, #0
|
||||
beq _0809CFA0
|
||||
strh r4, [r0]
|
||||
movs r0, #1
|
||||
b _0809CFA2
|
||||
_0809CFA0:
|
||||
movs r0, #0
|
||||
_0809CFA2:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end VarSet
|
||||
|
||||
thumb_func_start VarGetEventObjectGraphicsId
|
||||
VarGetEventObjectGraphicsId: @ 0x0809CFA8
|
||||
push {lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #8
|
||||
ldr r1, _0809CFC0
|
||||
adds r0, r0, r1
|
||||
lsrs r0, r0, #0x10
|
||||
bl VarGet
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0809CFC0: .4byte 0x40100000
|
||||
thumb_func_end VarGetEventObjectGraphicsId
|
||||
|
||||
thumb_func_start GetFlagPointer
|
||||
GetFlagPointer: @ 0x0809CFC4
|
||||
push {lr}
|
||||
lsls r1, r0, #0x10
|
||||
lsrs r2, r1, #0x10
|
||||
adds r3, r2, #0
|
||||
cmp r2, #0
|
||||
bne _0809CFD4
|
||||
movs r0, #0
|
||||
b _0809D006
|
||||
_0809CFD4:
|
||||
ldr r0, _0809CFE8
|
||||
cmp r2, r0
|
||||
bhi _0809CFF4
|
||||
ldr r0, _0809CFEC
|
||||
lsrs r1, r1, #0x13
|
||||
ldr r2, _0809CFF0
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r0]
|
||||
b _0809D004
|
||||
.align 2, 0
|
||||
_0809CFE8: .4byte 0x00003FFF
|
||||
_0809CFEC: .4byte 0x03005AEC
|
||||
_0809CFF0: .4byte 0x00001270
|
||||
_0809CFF4:
|
||||
ldr r1, _0809D00C
|
||||
adds r0, r3, r1
|
||||
cmp r0, #0
|
||||
bge _0809D000
|
||||
ldr r2, _0809D010
|
||||
adds r0, r3, r2
|
||||
_0809D000:
|
||||
asrs r0, r0, #3
|
||||
ldr r1, _0809D014
|
||||
_0809D004:
|
||||
adds r0, r0, r1
|
||||
_0809D006:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0809D00C: .4byte 0xFFFFC000
|
||||
_0809D010: .4byte 0xFFFFC007
|
||||
_0809D014: .4byte 0x0203729C
|
||||
thumb_func_end GetFlagPointer
|
||||
|
||||
thumb_func_start FlagSet
|
||||
FlagSet: @ 0x0809D018
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
adds r0, r4, #0
|
||||
bl GetFlagPointer
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0809D038
|
||||
movs r0, #7
|
||||
ands r0, r4
|
||||
movs r1, #1
|
||||
lsls r1, r0
|
||||
ldrb r0, [r2]
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
_0809D038:
|
||||
movs r0, #0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end FlagSet
|
||||
|
||||
thumb_func_start FlagClear
|
||||
FlagClear: @ 0x0809D040
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
adds r0, r4, #0
|
||||
bl GetFlagPointer
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0809D060
|
||||
movs r0, #7
|
||||
ands r0, r4
|
||||
movs r1, #1
|
||||
lsls r1, r0
|
||||
ldrb r0, [r2]
|
||||
bics r0, r1
|
||||
strb r0, [r2]
|
||||
_0809D060:
|
||||
movs r0, #0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end FlagClear
|
||||
|
||||
thumb_func_start FlagGet
|
||||
FlagGet: @ 0x0809D068
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
adds r0, r4, #0
|
||||
bl GetFlagPointer
|
||||
cmp r0, #0
|
||||
beq _0809D08C
|
||||
ldrb r0, [r0]
|
||||
movs r1, #7
|
||||
ands r1, r4
|
||||
asrs r0, r1
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0809D08C
|
||||
movs r0, #1
|
||||
b _0809D08E
|
||||
_0809D08C:
|
||||
movs r0, #0
|
||||
_0809D08E:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end FlagGet
|
||||
|
||||
504
asm/event_obj_lock.s
Normal file
504
asm/event_obj_lock.s
Normal file
|
|
@ -0,0 +1,504 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start walkrun_is_standing_still
|
||||
walkrun_is_standing_still: @ 0x08097D10
|
||||
push {lr}
|
||||
ldr r0, _08097D20
|
||||
ldrb r0, [r0, #3]
|
||||
cmp r0, #1
|
||||
beq _08097D24
|
||||
movs r0, #1
|
||||
b _08097D26
|
||||
.align 2, 0
|
||||
_08097D20: .4byte 0x02037230
|
||||
_08097D24:
|
||||
movs r0, #0
|
||||
_08097D26:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end walkrun_is_standing_still
|
||||
|
||||
thumb_func_start sub_08097D2C
|
||||
sub_08097D2C: @ 0x08097D2C
|
||||
push {r4, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
bl walkrun_is_standing_still
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08097D46
|
||||
bl sub_0808B1C8
|
||||
adds r0, r4, #0
|
||||
bl DestroyTask
|
||||
_08097D46:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_08097D2C
|
||||
|
||||
thumb_func_start sub_08097D4C
|
||||
sub_08097D4C: @ 0x08097D4C
|
||||
push {lr}
|
||||
ldr r0, _08097D64
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08097D68
|
||||
bl sub_0808B658
|
||||
movs r0, #1
|
||||
b _08097D6A
|
||||
.align 2, 0
|
||||
_08097D64: .4byte 0x08097D2D
|
||||
_08097D68:
|
||||
movs r0, #0
|
||||
_08097D6A:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end sub_08097D4C
|
||||
|
||||
thumb_func_start ScriptFreezeEventObjects
|
||||
ScriptFreezeEventObjects: @ 0x08097D70
|
||||
push {lr}
|
||||
bl FreezeEventObjects
|
||||
ldr r0, _08097D84
|
||||
movs r1, #0x50
|
||||
bl CreateTask
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097D84: .4byte 0x08097D2D
|
||||
thumb_func_end ScriptFreezeEventObjects
|
||||
|
||||
thumb_func_start sub_08097D88
|
||||
sub_08097D88: @ 0x08097D88
|
||||
push {r4, r5, r6, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
lsls r0, r6, #2
|
||||
adds r0, r0, r6
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08097DF8
|
||||
adds r5, r0, r1
|
||||
movs r1, #8
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
bne _08097DB2
|
||||
bl walkrun_is_standing_still
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #1
|
||||
bne _08097DB2
|
||||
bl sub_0808B1C8
|
||||
strh r4, [r5, #8]
|
||||
_08097DB2:
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
bne _08097DDA
|
||||
ldr r2, _08097DFC
|
||||
ldr r0, _08097E00
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
blt _08097DDA
|
||||
adds r0, r1, #0
|
||||
bl FreezeEventObject
|
||||
movs r0, #1
|
||||
strh r0, [r5, #0xa]
|
||||
_08097DDA:
|
||||
movs r1, #8
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
beq _08097DF0
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
beq _08097DF0
|
||||
adds r0, r6, #0
|
||||
bl DestroyTask
|
||||
_08097DF0:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097DF8: .4byte 0x03005B60
|
||||
_08097DFC: .4byte 0x02036FF0
|
||||
_08097E00: .4byte 0x03005B50
|
||||
thumb_func_end sub_08097D88
|
||||
|
||||
thumb_func_start sub_08097E04
|
||||
sub_08097E04: @ 0x08097E04
|
||||
push {lr}
|
||||
ldr r0, _08097E1C
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08097E20
|
||||
bl sub_0808B658
|
||||
movs r0, #1
|
||||
b _08097E22
|
||||
.align 2, 0
|
||||
_08097E1C: .4byte 0x08097D89
|
||||
_08097E20:
|
||||
movs r0, #0
|
||||
_08097E22:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end sub_08097E04
|
||||
|
||||
thumb_func_start LockSelectedEventObject
|
||||
LockSelectedEventObject: @ 0x08097E28
|
||||
push {r4, r5, lr}
|
||||
ldr r4, _08097E6C
|
||||
ldrb r0, [r4]
|
||||
bl FreezeEventObjectsExceptOne
|
||||
ldr r0, _08097E70
|
||||
movs r1, #0x50
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
ldr r2, _08097E74
|
||||
ldrb r1, [r4]
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
blt _08097E66
|
||||
adds r0, r1, #0
|
||||
bl FreezeEventObject
|
||||
ldr r0, _08097E78
|
||||
lsls r1, r5, #2
|
||||
adds r1, r1, r5
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r0
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xa]
|
||||
_08097E66:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097E6C: .4byte 0x03005B50
|
||||
_08097E70: .4byte 0x08097D89
|
||||
_08097E74: .4byte 0x02036FF0
|
||||
_08097E78: .4byte 0x03005B60
|
||||
thumb_func_end LockSelectedEventObject
|
||||
|
||||
thumb_func_start ScriptUnfreezeEventObjects
|
||||
ScriptUnfreezeEventObjects: @ 0x08097E7C
|
||||
push {lr}
|
||||
movs r0, #0xff
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl GetEventObjectIdByLocalIdAndMap
|
||||
adds r1, r0, #0
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08097EA8
|
||||
adds r0, r0, r1
|
||||
bl MovementAction_AcroEndWheelieFaceLeft_Step0
|
||||
bl sub_080D2C2C
|
||||
bl UnfreezeEventObjects
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097EA8: .4byte 0x02036FF0
|
||||
thumb_func_end ScriptUnfreezeEventObjects
|
||||
|
||||
thumb_func_start sub_08097EAC
|
||||
sub_08097EAC: @ 0x08097EAC
|
||||
push {r4, lr}
|
||||
ldr r4, _08097EF4
|
||||
ldr r0, _08097EF8
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r1, r0, r4
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1f
|
||||
cmp r0, #0
|
||||
beq _08097ECA
|
||||
adds r0, r1, #0
|
||||
bl MovementAction_AcroEndWheelieFaceLeft_Step0
|
||||
_08097ECA:
|
||||
movs r0, #0xff
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl GetEventObjectIdByLocalIdAndMap
|
||||
adds r1, r0, #0
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
bl MovementAction_AcroEndWheelieFaceLeft_Step0
|
||||
bl sub_080D2C2C
|
||||
bl UnfreezeEventObjects
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097EF4: .4byte 0x02036FF0
|
||||
_08097EF8: .4byte 0x03005B50
|
||||
thumb_func_end sub_08097EAC
|
||||
|
||||
thumb_func_start sub_08097EFC
|
||||
sub_08097EFC: @ 0x08097EFC
|
||||
push {lr}
|
||||
ldr r0, _08097F18
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08097F1C
|
||||
adds r0, r0, r1
|
||||
ldr r1, _08097F20
|
||||
ldrb r1, [r1]
|
||||
bl EventObjectFaceOppositeDirection
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097F18: .4byte 0x03005B50
|
||||
_08097F1C: .4byte 0x02036FF0
|
||||
_08097F20: .4byte 0x02037294
|
||||
thumb_func_end sub_08097EFC
|
||||
|
||||
thumb_func_start sub_08097F24
|
||||
sub_08097F24: @ 0x08097F24
|
||||
push {lr}
|
||||
ldr r0, _08097F3C
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08097F40
|
||||
adds r0, r0, r1
|
||||
bl EventObjectClearHeldMovementIfActive
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097F3C: .4byte 0x03005B50
|
||||
_08097F40: .4byte 0x02036FF0
|
||||
thumb_func_end sub_08097F24
|
||||
|
||||
thumb_func_start sub_08097F44
|
||||
sub_08097F44: @ 0x08097F44
|
||||
push {r4, r5, r6, r7, lr}
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
lsls r0, r6, #2
|
||||
adds r0, r0, r6
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08097FB0
|
||||
adds r5, r0, r1
|
||||
ldrb r7, [r5, #0xc]
|
||||
movs r1, #8
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
bne _08097F70
|
||||
bl walkrun_is_standing_still
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #1
|
||||
bne _08097F70
|
||||
bl sub_0808B1C8
|
||||
strh r4, [r5, #8]
|
||||
_08097F70:
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
bne _08097F94
|
||||
ldr r0, _08097FB4
|
||||
lsls r1, r7, #3
|
||||
adds r1, r1, r7
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
blt _08097F94
|
||||
adds r0, r1, #0
|
||||
bl FreezeEventObject
|
||||
movs r0, #1
|
||||
strh r0, [r5, #0xa]
|
||||
_08097F94:
|
||||
movs r1, #8
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
beq _08097FAA
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
beq _08097FAA
|
||||
adds r0, r6, #0
|
||||
bl DestroyTask
|
||||
_08097FAA:
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097FB0: .4byte 0x03005B60
|
||||
_08097FB4: .4byte 0x02036FF0
|
||||
thumb_func_end sub_08097F44
|
||||
|
||||
thumb_func_start sub_08097FB8
|
||||
sub_08097FB8: @ 0x08097FB8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
movs r0, #0
|
||||
bl GetChosenApproachingTrainerEventObjectId
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
ldr r0, _08098058
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _08098068
|
||||
movs r0, #1
|
||||
bl GetChosenApproachingTrainerEventObjectId
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
adds r5, r0, #0
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_080979FC
|
||||
ldr r7, _0809805C
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x50
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
ldr r0, _08098060
|
||||
mov sb, r0
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r2
|
||||
lsls r0, r0, #3
|
||||
mov r1, sb
|
||||
adds r6, r0, r1
|
||||
strh r4, [r6, #0xc]
|
||||
ldr r2, _08098064
|
||||
mov r8, r2
|
||||
lsls r0, r4, #3
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
blt _08098022
|
||||
adds r0, r1, #0
|
||||
bl FreezeEventObject
|
||||
movs r0, #1
|
||||
strh r0, [r6, #0xa]
|
||||
_08098022:
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x51
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r2
|
||||
lsls r0, r0, #3
|
||||
mov r1, sb
|
||||
adds r4, r0, r1
|
||||
strh r5, [r4, #0xc]
|
||||
lsls r0, r5, #3
|
||||
adds r0, r0, r5
|
||||
lsls r0, r0, #2
|
||||
mov r2, r8
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
blt _080980A2
|
||||
adds r0, r1, #0
|
||||
bl FreezeEventObject
|
||||
movs r0, #1
|
||||
strh r0, [r4, #0xa]
|
||||
b _080980A2
|
||||
.align 2, 0
|
||||
_08098058: .4byte 0x03005E08
|
||||
_0809805C: .4byte 0x08097F45
|
||||
_08098060: .4byte 0x03005B60
|
||||
_08098064: .4byte 0x02036FF0
|
||||
_08098068:
|
||||
adds r0, r4, #0
|
||||
bl FreezeEventObjectsExceptOne
|
||||
ldr r0, _080980B0
|
||||
movs r1, #0x50
|
||||
bl CreateTask
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
ldr r1, _080980B4
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r2
|
||||
lsls r0, r0, #3
|
||||
adds r5, r0, r1
|
||||
strh r4, [r5, #0xc]
|
||||
ldr r1, _080980B8
|
||||
lsls r0, r4, #3
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r1, r0, r1
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
blt _080980A2
|
||||
adds r0, r1, #0
|
||||
bl FreezeEventObject
|
||||
movs r0, #1
|
||||
strh r0, [r5, #0xa]
|
||||
_080980A2:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080980B0: .4byte 0x08097F45
|
||||
_080980B4: .4byte 0x03005B60
|
||||
_080980B8: .4byte 0x02036FF0
|
||||
thumb_func_end sub_08097FB8
|
||||
|
||||
thumb_func_start sub_080980BC
|
||||
sub_080980BC: @ 0x080980BC
|
||||
push {lr}
|
||||
ldr r0, _080980D4
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080980D8
|
||||
bl sub_0808B658
|
||||
movs r0, #1
|
||||
b _080980DA
|
||||
.align 2, 0
|
||||
_080980D4: .4byte 0x08097F45
|
||||
_080980D8:
|
||||
movs r0, #0
|
||||
_080980DA:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
thumb_func_end sub_080980BC
|
||||
|
||||
24874
asm/event_object_movement.s
Normal file
24874
asm/event_object_movement.s
Normal file
File diff suppressed because it is too large
Load Diff
1831
asm/evolution_graphics.s
Normal file
1831
asm/evolution_graphics.s
Normal file
File diff suppressed because it is too large
Load Diff
4510
asm/evolution_scene.s
Normal file
4510
asm/evolution_scene.s
Normal file
File diff suppressed because it is too large
Load Diff
1426
asm/faraway_island.s
Normal file
1426
asm/faraway_island.s
Normal file
File diff suppressed because it is too large
Load Diff
1189
asm/field_camera.s
Normal file
1189
asm/field_camera.s
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user