Separated rom.s into multiple files.

This commit is contained in:
Ariel Antonitis 2019-08-08 01:27:06 -04:00
parent 1e4c37bc96
commit b44f9dfe54
295 changed files with 1010651 additions and 985095 deletions

1
.gitignore vendored
View File

@ -35,3 +35,4 @@ porymap.project.cfg
.vscode/
.ropeproject/
.ccls-cache/
__pycache__/

View File

@ -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
View 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

File diff suppressed because it is too large Load Diff

117
asm/bard_music.s Normal file
View 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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

13087
asm/battle_anim_effects_3.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

6842
asm/battle_anim_mons.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

6196
asm/battle_anim_special.s Normal file

File diff suppressed because it is too large Load Diff

View 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

File diff suppressed because it is too large Load Diff

1709
asm/battle_arena.s Normal file

File diff suppressed because it is too large Load Diff

1997
asm/battle_bg.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

11337
asm/battle_controller_player.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4019
asm/battle_controllers.s Normal file

File diff suppressed because it is too large Load Diff

13896
asm/battle_dome.s Normal file

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

2168
asm/battle_intro.s Normal file

File diff suppressed because it is too large Load Diff

16886
asm/battle_main.s Normal file

File diff suppressed because it is too large Load Diff

3317
asm/battle_message.s Normal file

File diff suppressed because it is too large Load Diff

600
asm/battle_palace.s Normal file
View 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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

3824
asm/battle_setup.s Normal file

File diff suppressed because it is too large Load Diff

1146
asm/battle_tent.s Normal file

File diff suppressed because it is too large Load Diff

8307
asm/battle_tower.s Normal file

File diff suppressed because it is too large Load Diff

10448
asm/battle_transition.s Normal file

File diff suppressed because it is too large Load Diff

5092
asm/battle_tv.s Normal file

File diff suppressed because it is too large Load Diff

13131
asm/battle_util.s Normal file

File diff suppressed because it is too large Load Diff

626
asm/battle_util2.s Normal file
View 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

File diff suppressed because it is too large Load Diff

9269
asm/berry_blender.s Normal file

File diff suppressed because it is too large Load Diff

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
View 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
View 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

File diff suppressed because it is too large Load Diff

3248
asm/bg.s Normal file

File diff suppressed because it is too large Load Diff

2296
asm/bike.s Normal file

File diff suppressed because it is too large Load Diff

261
asm/birch_pc.s Normal file
View 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
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

2890
asm/cable_club.s Normal file

File diff suppressed because it is too large Load Diff

View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

5638
asm/contest_ai.s Normal file

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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
View 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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

154
asm/coord_event_weather.s Normal file
View 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

File diff suppressed because it is too large Load Diff

2375
asm/dark.s Normal file

File diff suppressed because it is too large Load Diff

3267
asm/daycare.s Normal file

File diff suppressed because it is too large Load Diff

1027
asm/decompress.s Normal file

File diff suppressed because it is too large Load Diff

7691
asm/decoration.s Normal file

File diff suppressed because it is too large Load Diff

483
asm/decoration_inventory.s Normal file
View 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

File diff suppressed because it is too large Load Diff

281
asm/diploma.s Normal file
View 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
View 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

File diff suppressed because it is too large Load Diff

880
asm/dragon.s Normal file
View 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

View 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

File diff suppressed because it is too large Load Diff

1900
asm/egg_hatch.s Normal file

File diff suppressed because it is too large Load Diff

2774
asm/electric.s Normal file

File diff suppressed because it is too large Load Diff

1304
asm/ereader_helpers.s Normal file

File diff suppressed because it is too large Load Diff

904
asm/ereader_screen.s Normal file
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

1831
asm/evolution_graphics.s Normal file

File diff suppressed because it is too large Load Diff

4510
asm/evolution_scene.s Normal file

File diff suppressed because it is too large Load Diff

1426
asm/faraway_island.s Normal file

File diff suppressed because it is too large Load Diff

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