diff --git a/sub/asm/include/main.inc b/sub/asm/include/main.inc index 20f84f97..562fb179 100644 --- a/sub/asm/include/main.inc +++ b/sub/asm/include/main.inc @@ -4,7 +4,9 @@ .public _0380B408 .public _0380B434 .public _0380B460 +.public EnableIrqFlag .public SDK_SUBPRIV_ARENA_LO +.public SetIrqFlag .public sub_037F84E0 .public sub_037F8598 .public sub_037F8650 @@ -59,8 +61,6 @@ .public sub_037FD884 .public sub_037FD898 .public sub_037FDA38 -.public sub_037FDD00 -.public sub_037FDD14 .public sub_037FDE70 .public sub_037FDE88 .public sub_037FDF74 diff --git a/sub/asm/main.s b/sub/asm/main.s index 044ced2d..a32965d9 100644 --- a/sub/asm/main.s +++ b/sub/asm/main.s @@ -478,7 +478,7 @@ _027E063C: .word _027F8878 arm_func_start sub_027E0640 sub_027E0640: ; 0x027E0640 stmdb sp!, {r4, lr} - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 bl sub_037FC558 ldr r1, _027E0694 ; =_027F8878 @@ -495,7 +495,7 @@ sub_027E0640: ; 0x027E0640 bl sub_037FC3C0 bl sub_037FC590 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, lr} bx lr .align 2, 0 @@ -507,7 +507,7 @@ _027E069C: .word _0380B364 arm_func_start sub_027E06A0 sub_027E06A0: ; 0x027E06A0 stmdb sp!, {r4, lr} - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 bl sub_037FC558 ldr r1, _027E06F4 ; =_027F8878 @@ -524,7 +524,7 @@ sub_027E06A0: ; 0x027E06A0 bl sub_037FC3C0 bl sub_037FC590 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, lr} bx lr .align 2, 0 @@ -537,7 +537,7 @@ _027E06FC: .word _0380B2C0 sub_027E0700: ; 0x027E0700 stmdb sp!, {r4, lr} mov r4, #0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _027E0768 ; =_027F8878 ldr r2, [r1, #0x54c] cmp r2, #0 @@ -561,7 +561,7 @@ _027E0750: cmp r3, #0x20 blt _027E0724 _027E0758: - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 ldmia sp!, {r4, lr} bx lr @@ -763,7 +763,7 @@ _027E09B4: mov sl, #1 b _027E0AB4 _027E09E4: - bl sub_037FDD00 + bl EnableIrqFlag ldrh r2, [r4, #0x82] add r1, r5, #1 mov r7, r0 @@ -810,11 +810,11 @@ _027E09E4: str r1, [r3, #0x73c] bl sub_037FE070 mov r0, r7 - bl sub_037FDD14 + bl SetIrqFlag b _027E0ABC _027E0AA8: mov r0, r7 - bl sub_037FDD14 + bl SetIrqFlag add r5, r5, #1 _027E0AB4: cmp r5, #0xf @@ -854,13 +854,13 @@ _027E0ABC: b _027E19CC _027E0B3C: mov r5, #0 - bl sub_037FDD00 + bl EnableIrqFlag add r1, r8, #0x100 ldrh r1, [r1, #0x82] mov r4, r0 cmp r1, #0 bne _027E0B60 - bl sub_037FDD14 + bl SetIrqFlag b _027E19CC _027E0B60: ldr r0, [r8, #0xc] @@ -890,7 +890,7 @@ _027E0B80: mov r1, #3 mov r0, r4 strh r1, [r8] - bl sub_037FDD14 + bl SetIrqFlag bl sub_03807380 mov r4, r0 mov r0, #0xc @@ -958,7 +958,7 @@ _027E0C98: bl sub_03807334 b _027E19CC _027E0CCC: - bl sub_037FDD00 + bl EnableIrqFlag add r1, r8, #0x100 mov r4, #1 ldrh r3, [r1, #0x82] @@ -982,7 +982,7 @@ _027E0CCC: add r0, sb, #0x10 bl sub_037FE12C mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #1 add r1, r8, #0x1f8 add r1, r1, r5, lsl #4 @@ -1207,7 +1207,7 @@ _027E101C: mov r1, r4 add r0, sb, #0x10 bl sub_037FE12C - bl sub_037FDD00 + bl EnableIrqFlag ldrh r1, [r8, #0x84] mov fp, r0 cmp r1, #1 @@ -1286,7 +1286,7 @@ _027E10AC: bl sub_027E086C _027E11B8: mov r0, fp - bl sub_037FDD14 + bl SetIrqFlag cmp r5, #0 beq _027E1204 cmp sl, #1 @@ -1567,7 +1567,7 @@ _027E1588: ldrh r0, [r8, #0x70] eor r0, r0, #1 strh r0, [r8, #0x70] - bl sub_037FDD00 + bl EnableIrqFlag cmp fp, #0 ldreqsh r1, [r8, #0x62] subeq r1, r1, #1 @@ -1582,7 +1582,7 @@ _027E1588: cmpgt r1, #0 movgt r4, #1 movle r4, #0 - bl sub_037FDD14 + bl SetIrqFlag cmp r4, #0 beq _027E19CC cmp fp, #1 @@ -1632,12 +1632,12 @@ _027E1670: _027E16D0: mov r4, r5 _027E16D4: - bl sub_037FDD00 + bl EnableIrqFlag ldrh r1, [r8, #0x84] mov r7, r0 cmp r1, #0 bne _027E172C - bl sub_037FDD14 + bl SetIrqFlag b _027E19CC .align 2, 0 _027E16F0: .word _027F7878 @@ -1662,7 +1662,7 @@ _027E172C: ldrh r6, [r8, #0x90] bl sub_037FD5C0 mov r0, r7 - bl sub_037FDD14 + bl SetIrqFlag ldrh r3, [r8, #0x8c] mov r2, #1 cmp r3, #0 @@ -1776,14 +1776,14 @@ _027E18D4: ldreqh r0, [sb, #0x10] cmpeq r0, #0x20 bne _027E1948 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 ldr r0, _027E170C ; =_0380B408 bl sub_037FD5C0 mov r1, #0 mov r0, r4 strh r1, [r8, #0x84] - bl sub_037FDD14 + bl SetIrqFlag mov r1, #0 strh r1, [r8, #0x8a] mov r0, #1 @@ -1860,7 +1860,7 @@ _027E1A04: .word 0x00007FFE sub_027E1A08: ; 0x027E1A08 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _027E1A3C ; =_027F8878 mov r4, r0 ldr r0, [r1, #0x544] @@ -1868,7 +1868,7 @@ sub_027E1A08: ; 0x027E1A08 mov r2, r5 bl sub_037FCD84 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, lr} bx lr .align 2, 0 @@ -3165,7 +3165,7 @@ sub_027E2A90: ; 0x027E2A90 ldr r0, _027E2E5C ; =_027F8878 mov r4, #0 ldr r8, [r0, #0x550] - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r8, #0xc] mov r5, r0 cmp r1, #1 @@ -3209,7 +3209,7 @@ _027E2B24: str r1, [r8, #0x1c] mov r0, r5 strh r1, [r8, #0xc2] - bl sub_037FDD14 + bl SetIrqFlag cmp r4, #0 beq _027E2B5C ldr r0, _027E2E60 ; =0x0000FFFF @@ -3609,12 +3609,12 @@ _027E30A4: strh r3, [r4, #0xe6] mov r0, #0 strh r0, [r1, #0x88] - bl sub_037FDD00 + bl EnableIrqFlag add r1, r4, #0x100 mov r2, #0 strh r2, [r1, #0x82] strh r2, [r4, #0x86] - bl sub_037FDD14 + bl SetIrqFlag mov r1, r5 add r2, r4, #0x100 mov r3, #1 @@ -3811,7 +3811,7 @@ _027E3388: cmp sb, #2 blt _027E335C _027E3390: - bl sub_037FDD00 + bl EnableIrqFlag add r1, sl, #0x100 ldrh r2, [r1, #0x82] tst r2, r7, lsl r8 @@ -3826,7 +3826,7 @@ _027E3390: mov r2, #0 str r2, [r1, #0x738] str r2, [r1, #0x73c] - bl sub_037FDD14 + bl SetIrqFlag mov r0, r8, lsl #0x10 mov r1, r0, lsr #0x10 add r2, sp, #0 @@ -3834,7 +3834,7 @@ _027E3390: bl sub_027E4A88 b _027E33EC _027E33E8: - bl sub_037FDD14 + bl SetIrqFlag _027E33EC: add r8, r8, #1 cmp r8, #0x10 @@ -4879,14 +4879,14 @@ _027E4260: mov r3, #0x7d0 bl sub_027E2044 mov r4, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldrh r2, [r4, #4] mov r6, r0 cmp r2, #0xc ldreqh r1, [r4, #6] cmpeq r1, #0x13 bne _027E42CC - bl sub_037FDD14 + bl SetIrqFlag bl sub_03807380 mov r1, #0xc strh r1, [r0] @@ -4901,7 +4901,7 @@ _027E42CC: cmpeq r0, #0 beq _027E42F8 mov r0, r6 - bl sub_037FDD14 + bl SetIrqFlag ldrh r1, [r4, #4] ldrh r2, [r4, #6] mov r0, #6 @@ -4928,7 +4928,7 @@ _027E42F8: strh r0, [r7, #0xbc] mov r0, r4 bl sub_027E0564 - bl sub_037FDD00 + bl EnableIrqFlag add r1, r7, #0x100 mov r2, #1 strh r2, [r1, #0x82] @@ -4966,7 +4966,7 @@ _027E4388: mov r0, r0, lsr #0x10 bl sub_027E07F0 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #1 strh r0, [r7, #0xc2] bl sub_03807380 @@ -4992,7 +4992,7 @@ _027E4388: strh r1, [r4, #0x18] bl sub_03807334 mov r0, r6 - bl sub_037FDD14 + bl SetIrqFlag _027E4448: add sp, sp, #0x250 ldmia sp!, {r4, r5, r6, r7, r8, lr} @@ -5081,13 +5081,13 @@ _027E455C: cmp r1, #0xa cmpne r1, #8 bne _027E4618 - bl sub_037FDD00 + bl EnableIrqFlag add r1, r7, #0x100 ldrh r1, [r1, #0x82] mov r4, r0 cmp r1, #0 bne _027E45C0 - bl sub_037FDD14 + bl SetIrqFlag cmp sl, #0 bne _027E45B8 bl sub_03807380 @@ -5126,7 +5126,7 @@ _027E45F0: str r1, [r7, #0x10] mov r0, r4 str r1, [r7, #0x1c] - bl sub_037FDD14 + bl SetIrqFlag b _027E4654 _027E4618: cmp sl, #0 @@ -5365,7 +5365,7 @@ _027E4948: cmp r4, #2 blt _027E48E0 _027E4950: - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 add r1, r7, #0x100 ldrh r3, [r1, #0x82] @@ -5393,7 +5393,7 @@ _027E4950: mov r2, #6 bl sub_037FE070 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag cmp sl, #1 bne _027E4A28 bl sub_03807380 @@ -5433,7 +5433,7 @@ _027E4A3C: bl sub_027E781C b _027E4A58 _027E4A54: - bl sub_037FDD14 + bl SetIrqFlag _027E4A58: add r6, r6, #1 _027E4A5C: @@ -5623,7 +5623,7 @@ _027E4CB0: bl sub_027E781C _027E4CD4: bl sub_027E6370 - bl sub_037FDD00 + bl EnableIrqFlag str r0, [sp] add r0, sl, #0x14 mov r1, #0 @@ -5635,7 +5635,7 @@ _027E4CD4: cmp r0, #9 cmpne r0, #0xa beq _027E4DC8 - bl sub_037FDD00 + bl EnableIrqFlag tst r7, #4 ldrneh r2, [sl, #0x38] add r1, sb, #0x700 @@ -5682,7 +5682,7 @@ _027E4CD4: add r1, sb, #0x700 ldreqh r2, [sb, #0x9a] strh r2, [r1, #0xcc] - bl sub_037FDD14 + bl SetIrqFlag _027E4DC8: ldrh r0, [r8] add r0, r0, #0xf9 @@ -5755,7 +5755,7 @@ _027E4EB0: mov r1, #1 ldr r0, [sp] str r1, [r8, #0xc] - bl sub_037FDD14 + bl SetIrqFlag add r0, sp, #4 mov r1, #1 bl sub_027E2700 @@ -5776,7 +5776,7 @@ _027E4EB0: b _027E4F50 _027E4F28: ldr r0, [sp] - bl sub_037FDD14 + bl SetIrqFlag bl sub_03807380 mov r1, #0xe strh r1, [r0] @@ -5900,7 +5900,7 @@ sub_027E50A4: ; 0x027E50A4 bl sub_03807334 b _027E51A8 _027E50E4: - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r6, #0xc] mov r5, r0 mov r0, #0 @@ -5919,7 +5919,7 @@ _027E50E4: streqh r0, [r6] _027E5128: mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag add r0, sp, #0 mov r1, #0 bl sub_027E2700 @@ -5989,7 +5989,7 @@ sub_027E51F4: ; 0x027E51F4 mov r5, r2, lsl #0x10 ldr r6, [r0, #4] mov r7, r5, lsr #0x10 - bl sub_037FDD00 + bl EnableIrqFlag str r6, [r4, #0xb0] strh r7, [r4, #0xb8] add r1, r6, r5, lsr #16 @@ -6013,7 +6013,7 @@ sub_027E51F4: ; 0x027E51F4 mov r1, #1 mov r0, r5 str r1, [r4, #0x10] - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr .align 2, 0 @@ -6093,11 +6093,11 @@ sub_027E5378: ; 0x027E5378 sub sp, sp, #0x200 ldr r0, _027E5430 ; =_027F8878 ldr r4, [r0, #0x550] - bl sub_037FDD00 + bl EnableIrqFlag ldrh r1, [r4] cmp r1, #0xb beq _027E53B8 - bl sub_037FDD14 + bl SetIrqFlag bl sub_03807380 mov r1, #0x13 strh r1, [r0] @@ -6110,7 +6110,7 @@ _027E53B8: str r1, [r4, #0x10] mov r1, #8 strh r1, [r4] - bl sub_037FDD14 + bl SetIrqFlag add r0, sp, #0 mov r1, #7 bl sub_027E23AC @@ -7083,16 +7083,16 @@ sub_027E6090: ; 0x027E6090 ldr r0, _027E6138 ; =_027F8878 ldr r4, _027E613C ; =_027F7878 ldr r5, [r0, #0x550] - bl sub_037FDD00 + bl EnableIrqFlag ldrh r1, [r5, #0xce] cmp r1, #1 bne _027E60B8 - bl sub_037FDD14 + bl SetIrqFlag b _027E6130 _027E60B8: mov r1, #1 strh r1, [r5, #0xce] - bl sub_037FDD14 + bl SetIrqFlag bl sub_027E0700 movs r1, r0 moveq r0, #0 @@ -7162,14 +7162,14 @@ _027E61AC: ldrh r0, [r4] cmp r0, #9 bne _027E629C - bl sub_037FDD00 + bl EnableIrqFlag add r1, r4, #0x100 ldrh r1, [r1, #0x82] cmp r1, #0 bne _027E61DC mov r1, #0 strh r1, [r4, #0x62] - bl sub_037FDD14 + bl SetIrqFlag b _027E62D0 _027E61DC: ldrsh r2, [r4, #0x62] @@ -7204,7 +7204,7 @@ _027E61DC: _027E6250: mov r5, #0 _027E6254: - bl sub_037FDD14 + bl SetIrqFlag cmp r5, #0 beq _027E6268 ldr r0, _027E62DC ; =0x0000FFFF @@ -7227,13 +7227,13 @@ _027E629C: cmp r0, #0xa bne _027E62D0 mov r5, #0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r4, #0x734] cmp r1, #1 movne r1, r5 movne r5, #1 strneh r1, [r4, #0x60] - bl sub_037FDD14 + bl SetIrqFlag cmp r5, #1 bne _027E62D0 bl sub_027E6428 @@ -7699,12 +7699,12 @@ sub_027E6920: ; 0x027E6920 ldr r1, _027E72B8 ; =_027F8878 str r0, [sp, #0x18] ldr r7, [r1, #0x550] - bl sub_037FDD00 + bl EnableIrqFlag add r1, r7, #0x100 ldrh r1, [r1, #0x82] ldrh r4, [r7, #0x86] str r1, [sp, #0x74] - bl sub_037FDD14 + bl SetIrqFlag mov r1, #0 strh r1, [sp, #0xc4] ldrh r0, [r7, #0x88] @@ -8089,11 +8089,11 @@ _027E6EF4: moveq r0, #1 streq r0, [sp, #0x3c] beq _027E6F18 - bl sub_037FDD00 + bl EnableIrqFlag add r1, sb, #0x100 ldrh r1, [r1, #0x82] str r1, [sp, #0x3c] - bl sub_037FDD14 + bl SetIrqFlag _027E6F18: mov r0, r5, lsl #0x10 mvn r0, r0, lsr #16 @@ -8300,14 +8300,14 @@ _027E7208: strh r0, [sp, #0xc4] mov sl, r6 ldr r4, _027E72C0 ; =0x000080D6 - bl sub_037FDD00 + bl EnableIrqFlag ldrsh r1, [r7, #0x62] add r1, r1, #1 strh r1, [r7, #0x62] ldrsh r1, [r7, #0x64] add r1, r1, #1 strh r1, [r7, #0x64] - bl sub_037FDD14 + bl SetIrqFlag _027E7248: mov r0, r5, lsl #0x10 mov r0, r0, lsr #0x10 @@ -8352,8 +8352,8 @@ sub_027E72C8: ; 0x027E72C8 ldr r1, _027E73AC ; =_027F8878 mov r4, r0 ldr r7, [r1, #0x550] - bl sub_037FDD00 - bl sub_037FDD14 + bl EnableIrqFlag + bl SetIrqFlag add r0, r7, #0x100 ldrh r0, [r0, #0x82] ldr r1, _027E73B0 ; =0x048080F8 @@ -8532,11 +8532,11 @@ _027E7558: moveq r0, #1 streq r0, [sp, #0x10] beq _027E757C - bl sub_037FDD00 + bl EnableIrqFlag add r1, r8, #0x100 ldrh r1, [r1, #0x82] str r1, [sp, #0x10] - bl sub_037FDD14 + bl SetIrqFlag _027E757C: mvn r0, r5 str r0, [sp, #4] @@ -9166,7 +9166,7 @@ sub_027E7E48: ; 0x027E7E48 ldr r7, [r1, #0x550] ldr r4, [r1, #0x54c] mov r5, #0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r7, #0xc] mov r6, r0 cmp r1, #1 @@ -9236,7 +9236,7 @@ _027E7E88: strh r1, [r0, #0xee] mov r0, r6 str r8, [r7, #0xc8] - bl sub_037FDD14 + bl SetIrqFlag cmp r5, #0 beq _027E7F88 ldr r0, _027E7FF0 ; =0x0000FFFF @@ -9598,7 +9598,7 @@ sub_027E841C: ; 0x027E841C bicne r7, r7, #0x2c00 movne r6, #3 _027E8460: - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 cmp sb, #0 beq _027E84E8 @@ -9787,7 +9787,7 @@ _027E86C8: ldrneb r0, [r4, #0x1b] strneh r0, [r8, #0x9c] mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag mov r0, r6 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr} bx lr @@ -18980,7 +18980,7 @@ _027EFCA8: add r0, r0, #0x32 bl sub_03806DD4 mov r4, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _027EFE04 ; =0x00003FFF ldr r2, _027EFE08 ; =0x04808118 and r1, r5, r1 @@ -18989,10 +18989,10 @@ _027EFCA8: strh r4, [r2] orr r1, r1, r7 strh r1, [r2, #-0x88] - bl sub_037FDD14 + bl SetIrqFlag b _027EFDD8 _027EFD40: - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _027EFE0C ; =0x048080F8 mov r8, r0 ldrh r0, [r1] @@ -19016,11 +19016,11 @@ _027EFD40: orr r1, r0, r7 mov r0, r8 strh r1, [r2, #-0x88] - bl sub_037FDD14 + bl SetIrqFlag b _027EFDD8 _027EFDA8: mov r0, r8 - bl sub_037FDD14 + bl SetIrqFlag ldr r1, [r6, #0x90] add r0, r4, #0x188 bl sub_037F8908 @@ -22446,7 +22446,7 @@ _027F2BCC: sbc r0, r0, r5 str r1, [sp, #0x10] str r0, [sp, #0x14] - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _027F2E84 ; =0x048080F8 ldrh ip, [r1] ldrh fp, [r1, #2] @@ -22464,7 +22464,7 @@ _027F2BCC: strh r3, [sp, #2] strh r2, [sp, #4] strh r1, [sp, #6] - bl sub_037FDD14 + bl SetIrqFlag ldrh r1, [sp, #8] ldrh r0, [sp] cmp r1, r0 @@ -25108,14 +25108,14 @@ _027F5178: .word _027F8E08 sub_027F517C: ; 0x027F517C stmdb sp!, {r3, r4, r5, lr} mov r4, r0 - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 mov r0, #1 bl sub_03803B0C cmp r0, #0 bne _027F51BC mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [r4, #4] mov r1, #4 mov r0, r0, lsl #0x10 @@ -25126,7 +25126,7 @@ _027F51BC: mov r0, #1 bl sub_03803B28 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [r4, #4] sub r0, r0, #0x20 cmp r0, #0xd @@ -26135,7 +26135,7 @@ _027F5E58: mov r0, #0x100 mov r1, r0 bl sub_037FE588 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 ldr r1, _027F5F20 ; =sub_027F652C mov r0, #0x80 @@ -26143,7 +26143,7 @@ _027F5E58: mov r0, #0x80 bl sub_037FB8F0 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag _027F5EF4: add sp, sp, #0xc ldmia sp!, {r3, r4, r5, r6, r7, r8, lr} diff --git a/sub/asm/wram.s b/sub/asm/wram.s index 46f2f83d..261cc8ce 100644 --- a/sub/asm/wram.s +++ b/sub/asm/wram.s @@ -281,7 +281,7 @@ _037F83B8: strh r1, [r3] ldrh r1, [r2] strh r0, [r2] - bl sub_037FDCEC + bl ClearIrqFlag mvn r0, #0 bl sub_03802618 mov r0, #0xf @@ -4362,10 +4362,10 @@ sub_037FBA18: ; 0x037FBA18 bne _037FBA8C cmp r5, #0 beq _037FBA48 - bl sub_037FDD2C + bl EnableIrqFiqFlags b _037FBA4C _037FBA48: - bl sub_037FDD00 + bl EnableIrqFlag _037FBA4C: mov r4, r0 mov r0, #0 @@ -4380,10 +4380,10 @@ _037FBA68: cmp r5, #0 mov r0, r4 beq _037FBA84 - bl sub_037FDD40 + bl SetIrqFiqFlags b _037FBA88 _037FBA84: - bl sub_037FDD14 + bl SetIrqFlag _037FBA88: mov r0, #0 _037FBA8C: @@ -4399,10 +4399,10 @@ sub_037FBA94: ; 0x037FBA94 mov r8, r1 mov r7, r2 beq _037FBAB4 - bl sub_037FDD2C + bl EnableIrqFiqFlags b _037FBAB8 _037FBAB4: - bl sub_037FDD00 + bl EnableIrqFlag _037FBAB8: mov r5, r0 mov r0, sb @@ -4420,10 +4420,10 @@ _037FBAE4: cmp r6, #0 mov r0, r5 beq _037FBAF8 - bl sub_037FDD40 + bl SetIrqFiqFlags b _037FBAFC _037FBAF8: - bl sub_037FDD14 + bl SetIrqFlag _037FBAFC: mov r0, r4 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr} @@ -4906,7 +4906,7 @@ sub_037FC054: ; 0x037FC054 mov r5, r1 mov r7, r2 mov r6, r3 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FC14C ; =_03807680 ldr r2, [sp, #0x1c] ldr r3, [r1, #0x20] @@ -4960,7 +4960,7 @@ sub_037FC054: ; 0x037FC054 mov r1, #0 mov r0, r4 str r1, [r8, #0x94] - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr .align 2, 0 @@ -4973,7 +4973,7 @@ _037FC158: .word sub_037FC15C arm_func_start sub_037FC15C sub_037FC15C: ; 0x037FC15C stmdb sp!, {r3, lr} - bl sub_037FDD00 + bl EnableIrqFlag ldr r0, _037FC17C ; =_03807680 mov r1, #0 ldr r0, [r0, #0x28] @@ -5029,7 +5029,7 @@ sub_037FC1E0: ; 0x037FC1E0 mov lr, pc bx r2 _037FC20C: - bl sub_037FDD00 + bl EnableIrqFlag _037FC210: bl sub_037FC220 ldmia sp!, {r3, lr} @@ -5060,11 +5060,11 @@ _037FC250: str r1, [r4, #0x48] bl sub_037FC2E4 bl sub_037FC590 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 bl sub_037FBE90 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag bl sub_037FDE70 ldmia sp!, {r4, lr} bx lr @@ -5076,7 +5076,7 @@ _037FC28C: .word _03807680 sub_037FC290: ; 0x037FC290 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FC2E0 ; =_03807680 mov r4, r0 ldr r0, [r1, #8] @@ -5092,7 +5092,7 @@ _037FC2C4: str r0, [r5, #0x48] bl sub_037FBE90 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 @@ -5103,7 +5103,7 @@ _037FC2E0: .word _03807680 sub_037FC2E4: ; 0x037FC2E4 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r5] mov r4, r0 cmp r1, #0 @@ -5136,7 +5136,7 @@ _037FC340: bl sub_037FBE90 _037FC35C: mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, lr} bx lr arm_func_end sub_037FC2E4 @@ -5145,13 +5145,13 @@ _037FC35C: sub_037FC36C: ; 0x037FC36C stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag mov r1, #1 mov r4, r0 str r1, [r5, #0x48] bl sub_037FBE90 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, lr} bx lr arm_func_end sub_037FC36C @@ -5181,7 +5181,7 @@ sub_037FC3C0: ; 0x037FC3C0 ldr r8, [r2, #0x2c] mov r6, r1 mov r4, #0 - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 b _037FC3EC _037FC3E4: @@ -5196,7 +5196,7 @@ _037FC3EC: cmpne r8, r0 bne _037FC418 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #0 b _037FC458 _037FC418: @@ -5215,7 +5215,7 @@ _037FC418: bl sub_037FBE90 _037FC44C: mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #1 _037FC458: ldmia sp!, {r4, r5, r6, r7, r8, lr} @@ -5236,7 +5236,7 @@ sub_037FC468: ; 0x037FC468 ldr r0, [r0, #8] ldr r0, [r0] str r0, [sp, #4] - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FC504 ; =0x000082EA mov r2, #0 umull ip, r3, r4, r1 @@ -5263,7 +5263,7 @@ _037FC4E0: cmp r0, #0 bne _037FC4D8 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag add sp, sp, #0x34 ldmia sp!, {r4, r5, lr} bx lr @@ -5290,11 +5290,11 @@ _037FC528: .word sub_037FC36C sub_037FC52C: ; 0x037FC52C stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FC554 ; =_03807680 ldr r4, [r1, #0x30] str r5, [r1, #0x30] - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 ldmia sp!, {r3, r4, r5, lr} bx lr @@ -5305,7 +5305,7 @@ _037FC554: .word _03807680 arm_func_start sub_037FC558 sub_037FC558: ; 0x037FC558 stmdb sp!, {r4, lr} - bl sub_037FDD00 + bl EnableIrqFlag ldr r2, _037FC58C ; =_03807680 mvn r1, #0 ldr r3, [r2, #4] @@ -5313,7 +5313,7 @@ sub_037FC558: ; 0x037FC558 addlo r1, r3, #1 strlo r1, [r2, #4] movlo r4, r3 - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 ldmia sp!, {r4, lr} bx lr @@ -5324,7 +5324,7 @@ _037FC58C: .word _03807680 arm_func_start sub_037FC590 sub_037FC590: ; 0x037FC590 stmdb sp!, {r4, lr} - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FC5C4 ; =_03807680 mov r4, #0 ldr r3, [r1, #4] @@ -5332,7 +5332,7 @@ sub_037FC590: ; 0x037FC590 subne r2, r3, #1 strne r2, [r1, #4] movne r4, r3 - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 ldmia sp!, {r4, lr} bx lr @@ -5435,7 +5435,7 @@ sub_037FC6D4: ; 0x037FC6D4 mov r7, r2 mov r6, r0 mov r5, r1 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 and r7, r7, #1 b _037FC714 @@ -5443,7 +5443,7 @@ _037FC6F4: cmp r7, #0 bne _037FC70C mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #0 b _037FC758 _037FC70C: @@ -5465,7 +5465,7 @@ _037FC714: str r1, [r6, #0x1c] bl sub_037FC2E4 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #1 _037FC758: ldmia sp!, {r3, r4, r5, r6, r7, lr} @@ -5478,7 +5478,7 @@ sub_037FC760: ; 0x037FC760 mov r7, r2 mov r6, r0 mov r5, r1 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 and r7, r7, #1 b _037FC7A0 @@ -5486,7 +5486,7 @@ _037FC780: cmp r7, #0 bne _037FC798 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #0 b _037FC7F4 _037FC798: @@ -5512,7 +5512,7 @@ _037FC7A0: str r1, [r6, #0x1c] bl sub_037FC2E4 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #1 _037FC7F4: ldmia sp!, {r3, r4, r5, r6, r7, lr} @@ -5525,7 +5525,7 @@ sub_037FC7FC: ; 0x037FC7FC mov r6, r2 mov r7, r0 mov r4, r1 - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 and r6, r6, #1 b _037FC83C @@ -5533,7 +5533,7 @@ _037FC81C: cmp r6, #0 bne _037FC834 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #0 b _037FC868 _037FC834: @@ -5549,7 +5549,7 @@ _037FC83C: ldrne r0, [r1, r0, lsl #2] strne r0, [r4] mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #1 _037FC868: ldmia sp!, {r3, r4, r5, r6, r7, lr} @@ -5570,7 +5570,7 @@ sub_037FC870: ; 0x037FC870 sub_037FC888: ; 0x037FC888 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FC908 ; =_038076A4 mov r4, r0 ldr r7, [r1, #4] @@ -5600,7 +5600,7 @@ _037FC8D0: b _037FC8A4 _037FC8F8: mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr .align 2, 0 @@ -5611,7 +5611,7 @@ _037FC908: .word _038076A4 sub_037FC90C: ; 0x037FC90C stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FC968 ; =_038076A4 mov r4, r0 ldr r0, [r1, #4] @@ -5630,7 +5630,7 @@ sub_037FC90C: ; 0x037FC90C bl sub_037FC2E4 _037FC958: mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, lr} bx lr .align 2, 0 @@ -5909,13 +5909,13 @@ sub_037FCC74: ; 0x037FCC74 mov r4, r0 mov r5, r1 mov r7, r2 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FCD80 ; =_03807800 mov r6, r0 ldr r1, [r1, r4, lsl #2] cmp r1, #0 bne _037FCCA8 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #0 b _037FCD78 _037FCCA8: @@ -5941,7 +5941,7 @@ _037FCCE8: cmp r5, #0 bne _037FCD00 mov r0, r6 - bl sub_037FDD14 + bl SetIrqFlag mov r0, #0 b _037FCD78 _037FCD00: @@ -5975,7 +5975,7 @@ _037FCD54: strne r5, [r1] mov r0, r6 str r5, [r4, #8] - bl sub_037FDD14 + bl SetIrqFlag add r0, r5, #0x20 _037FCD78: ldmia sp!, {r3, r4, r5, r6, r7, lr} @@ -5990,7 +5990,7 @@ sub_037FCD84: ; 0x037FCD84 mov r7, r0 mov r6, r1 mov r5, r2 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FCDEC ; =_03807800 mov r4, r0 ldr r0, [r1, r7, lsl #2] @@ -6009,7 +6009,7 @@ sub_037FCD84: ; 0x037FCD84 bl sub_037FCBCC str r0, [r7, #4] mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr .align 2, 0 @@ -6021,12 +6021,12 @@ sub_037FCDF0: ; 0x037FCDF0 stmdb sp!, {r3, r4, r5, lr} mov r4, r0 mov r5, r1 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FCE20 ; =_03807800 ldr r1, [r1, r4, lsl #2] ldr r4, [r1] str r5, [r1] - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 ldmia sp!, {r3, r4, r5, lr} bx lr @@ -6041,7 +6041,7 @@ sub_037FCE24: ; 0x037FCE24 mov r5, r1 mov r4, r2 mov r6, r3 - bl sub_037FDD00 + bl EnableIrqFlag ldr r2, _037FCEC8 ; =_03807800 mov r1, #0xc str r5, [r2, r7, lsl #2] @@ -6075,7 +6075,7 @@ _037FCE88: bic r1, r1, #0x1f str r1, [r5, #8] str r2, [r5, #0xc] - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [r5, #8] ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr @@ -6089,7 +6089,7 @@ sub_037FCECC: ; 0x037FCECC mov r4, r0 mov r6, r1 mov r5, r2 - bl sub_037FDD00 + bl EnableIrqFlag ldr r2, _037FCF68 ; =_03807800 add r1, r6, #0x1f ldr lr, [r2, r4, lsl #2] @@ -6115,7 +6115,7 @@ _037FCF04: str r1, [r6, #8] str r6, [r3, #4] str r2, [r3, #8] - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 b _037FCF60 _037FCF4C: @@ -6123,7 +6123,7 @@ _037FCF4C: _037FCF50: cmp r4, r7 blt _037FCF04 - bl sub_037FDD14 + bl SetIrqFlag mvn r0, #0 _037FCF60: ldmia sp!, {r3, r4, r5, r6, r7, lr} @@ -6140,7 +6140,7 @@ sub_037FCF6C: ; 0x037FCF6C mov r7, r1 mov r5, r4 sub r6, r4, #1 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FD108 ; =_03807800 mvn r2, #0 ldr r1, [r1, r8, lsl #2] @@ -6239,7 +6239,7 @@ _037FD0E8: cmp r4, r2 moveq r6, r5 _037FD0F8: - bl sub_037FDD14 + bl SetIrqFlag mov r0, r6 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr @@ -6341,7 +6341,7 @@ _037FD218: .word sub_037FD1B4 sub_037FD21C: ; 0x037FD21C stmdb sp!, {lr} sub sp, sp, #0xc - bl sub_037FDD00 + bl EnableIrqFlag ldr lr, _037FD2B4 ; =0x04000100 ldr r1, _037FD2B8 ; =_03807828 ldrh r3, [lr] @@ -6367,7 +6367,7 @@ sub_037FD21C: ; 0x037FD21C str r2, [sp, #4] str r1, [sp, #8] _037FD288: - bl sub_037FDD14 + bl SetIrqFlag ldr r2, [sp, #4] ldr r1, [sp, #8] ldrh r0, [sp] @@ -6564,7 +6564,7 @@ sub_037FD4DC: ; 0x037FD4DC _037FD500: bl sub_037FDE70 _037FD504: - bl sub_037FDD00 + bl EnableIrqFlag mov r1, #0 str r1, [r6, #0x1c] str r1, [r6, #0x20] @@ -6579,7 +6579,7 @@ _037FD504: mov r1, r3 bl sub_037FD3B0 mov r0, r7 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr arm_func_end sub_037FD4DC @@ -6599,7 +6599,7 @@ sub_037FD54C: ; 0x037FD54C _037FD574: bl sub_037FDE70 _037FD578: - bl sub_037FDD00 + bl EnableIrqFlag str r6, [r4, #0x1c] str r5, [r4, #0x20] str r8, [r4, #0x24] @@ -6614,7 +6614,7 @@ _037FD578: str r3, [r4, #4] bl sub_037FD3B0 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr arm_func_end sub_037FD54C @@ -6623,12 +6623,12 @@ _037FD578: sub_037FD5C0: ; 0x037FD5C0 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r5] mov r4, r0 cmp r1, #0 bne _037FD5E4 - bl sub_037FDD14 + bl SetIrqFlag b _037FD63C _037FD5E4: ldr r0, [r5, #0x18] @@ -6653,7 +6653,7 @@ _037FD624: str r1, [r5, #0x1c] mov r0, r4 str r1, [r5, #0x20] - bl sub_037FDD14 + bl SetIrqFlag _037FD63C: ldmia sp!, {r3, r4, r5, lr} bx lr @@ -6859,7 +6859,7 @@ sub_037FD898: ; 0x037FD898 mov r7, r1 mov r6, r2 mov r5, r3 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 cmp r8, #0 beq _037FD8C8 @@ -6888,7 +6888,7 @@ _037FD8CC: str r1, [r8, #0x24] bl sub_037FD7A8 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr} bx lr .align 2, 0 @@ -6902,7 +6902,7 @@ sub_037FD928: ; 0x037FD928 mov r7, r1 mov r6, r2 mov r5, r3 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 cmp r8, #0 beq _037FD958 @@ -6931,7 +6931,7 @@ _037FD95C: str r1, [r8, #0x24] bl sub_037FD7A8 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr} bx lr .align 2, 0 @@ -6984,14 +6984,14 @@ _037FDA28: sub_037FDA38: ; 0x037FDA38 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag mov r1, #1 str r1, [r5, #0x24] ldr r1, [r5] mov r4, r0 cmp r1, #0 bne _037FDA64 - bl sub_037FDD14 + bl SetIrqFlag b _037FDA7C _037FDA64: mov r0, r5 @@ -6999,7 +6999,7 @@ _037FDA64: mov r1, #0 mov r0, r4 str r1, [r5] - bl sub_037FDD14 + bl SetIrqFlag _037FDA7C: ldmia sp!, {r3, r4, r5, lr} bx lr @@ -7009,7 +7009,7 @@ _037FDA7C: sub_037FDA84: ; 0x037FDA84 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r7, r0 - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 cmp r7, #0 bne _037FDAA0 @@ -7036,7 +7036,7 @@ _037FDADC: cmp r0, #0 bne _037FDABC mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr .align 2, 0 @@ -7170,7 +7170,7 @@ _037FDCA4: .word _03807844 sub_037FDCA8: ; 0x037FDCA8 stmdb sp!, {r4, lr} mov r4, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FDCE8 ; =_03807844 ldr r2, [r1, #4] cmp r4, r2 @@ -7179,7 +7179,7 @@ sub_037FDCA8: ; 0x037FDCA8 strlt r2, [r1, #8] ldr r1, _037FDCE8 ; =_03807844 str r4, [r1, #4] - bl sub_037FDD14 + bl SetIrqFlag ldr r0, _037FDCE8 ; =_03807844 ldr r0, [r0, #8] ldmia sp!, {r4, lr} @@ -7188,52 +7188,52 @@ sub_037FDCA8: ; 0x037FDCA8 _037FDCE8: .word _03807844 arm_func_end sub_037FDCA8 - arm_func_start sub_037FDCEC -sub_037FDCEC: ; 0x037FDCEC + arm_func_start ClearIrqFlag +ClearIrqFlag: ; 0x037FDCEC mrs r0, cpsr bic r1, r0, #0x80 msr cpsr_c, r1 and r0, r0, #0x80 bx lr - arm_func_end sub_037FDCEC + arm_func_end ClearIrqFlag - arm_func_start sub_037FDD00 -sub_037FDD00: ; 0x037FDD00 + arm_func_start EnableIrqFlag +EnableIrqFlag: ; 0x037FDD00 mrs r0, cpsr orr r1, r0, #0x80 msr cpsr_c, r1 and r0, r0, #0x80 bx lr - arm_func_end sub_037FDD00 + arm_func_end EnableIrqFlag - arm_func_start sub_037FDD14 -sub_037FDD14: ; 0x037FDD14 + arm_func_start SetIrqFlag +SetIrqFlag: ; 0x037FDD14 mrs r1, cpsr bic r2, r1, #0x80 orr r2, r2, r0 msr cpsr_c, r2 and r0, r1, #0x80 bx lr - arm_func_end sub_037FDD14 + arm_func_end SetIrqFlag - arm_func_start sub_037FDD2C -sub_037FDD2C: ; 0x037FDD2C + arm_func_start EnableIrqFiqFlags +EnableIrqFiqFlags: ; 0x037FDD2C mrs r0, cpsr orr r1, r0, #0xc0 msr cpsr_c, r1 and r0, r0, #0xc0 bx lr - arm_func_end sub_037FDD2C + arm_func_end EnableIrqFiqFlags - arm_func_start sub_037FDD40 -sub_037FDD40: ; 0x037FDD40 + arm_func_start SetIrqFiqFlags +SetIrqFiqFlags: ; 0x037FDD40 mrs r1, cpsr bic r2, r1, #0xc0 orr r2, r2, r0 msr cpsr_c, r2 and r0, r1, #0xc0 bx lr - arm_func_end sub_037FDD40 + arm_func_end SetIrqFiqFlags arm_func_start sub_037FDD58 sub_037FDD58: ; 0x037FDD58 @@ -7343,7 +7343,7 @@ sub_037FDE70: ; 0x037FDE70 mov r0, #0 bl sub_03806610 _037FDE7C: - bl sub_037FDD00 + bl EnableIrqFlag bl sub_037F8478 b _037FDE7C arm_func_end sub_037FDE70 @@ -7352,7 +7352,7 @@ _037FDE7C: sub_037FDE88: ; 0x037FDE88 stmdb sp!, {r4, lr} mov r4, r0 - bl sub_037FDD00 + bl EnableIrqFlag add r1, r4, r4, lsl #1 add r1, r1, #2 mov r1, r1, lsl #2 @@ -7375,7 +7375,7 @@ _037FDEA8: str r3, [r2, #4] str r1, [r2, #8] _037FDEE4: - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, lr} bx lr .align 2, 0 @@ -7386,7 +7386,7 @@ _037FDEF0: .word 0x81400001 sub_037FDEF4: ; 0x037FDEF4 stmdb sp!, {r4, lr} mov r4, r0 - bl sub_037FDD00 + bl EnableIrqFlag mov r1, #6 mul r1, r4, r1 add r1, r1, #5 @@ -7413,7 +7413,7 @@ sub_037FDEF4: ; 0x037FDEF4 str r3, [r2, #4] str r1, [r2, #8] _037FDF64: - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, lr} bx lr .align 2, 0 @@ -7736,7 +7736,7 @@ _037FE2BC: .word sub_037FE2C0 arm_func_start sub_037FE2C0 sub_037FE2C0: ; 0x037FE2C0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FE380 ; =_0380785C mov r4, r0 ldrh r0, [r1] @@ -7784,7 +7784,7 @@ _037FE368: bge _037FE344 _037FE370: mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr .align 2, 0 @@ -7802,7 +7802,7 @@ sub_037FE39C: ; 0x037FE39C stmdb sp!, {r3, r4, r5, lr} mov r4, r0 mov r5, r1 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _037FE3E4 ; =_03807860 ldr r3, _037FE3E8 ; =0x027FFC00 str r5, [r1, r4, lsl #2] @@ -7814,7 +7814,7 @@ sub_037FE39C: ; 0x037FE39C mvneq r1, r1, lsl r4 andeq r1, r2, r1 str r1, [r3, #0x38c] - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, lr} bx lr .align 2, 0 @@ -7866,17 +7866,17 @@ sub_037FE448: ; 0x037FE448 orrne r1, r1, #0xc000 strneh r1, [r2] bne _037FE49C - bl sub_037FDD00 + bl EnableIrqFlag ldr r2, _037FE4A4 ; =0x04000184 ldrh r1, [r2] tst r1, #2 beq _037FE490 - bl sub_037FDD14 + bl SetIrqFlag mvn r0, #1 b _037FE49C _037FE490: str r4, [r2, #4] - bl sub_037FDD14 + bl SetIrqFlag mov r0, #0 _037FE49C: ldmia sp!, {r4, lr} @@ -7904,17 +7904,17 @@ _037FE4CC: orrne r0, r0, #0xc000 strneh r0, [sb] bne _037FE514 - bl sub_037FDD00 + bl EnableIrqFlag ldrh r1, [sb] tst r1, #0x100 beq _037FE504 - bl sub_037FDD14 + bl SetIrqFlag mov r1, r8 b _037FE514 _037FE504: ldr r6, [r7] str r6, [sp] - bl sub_037FDD14 + bl SetIrqFlag mov r1, r5 _037FE514: cmp r1, r8 @@ -12593,7 +12593,7 @@ _038020E8: ldr r7, [sp, #0x2c] ldr r6, [sp, #0x28] ldr r5, [sp, #0x24] - bl sub_037FDD00 + bl EnableIrqFlag mov r8, r0 mov r2, #0 b _03802124 @@ -12646,7 +12646,7 @@ _03802190: bne _03802178 _038021A0: mov r0, r8 - bl sub_037FDD14 + bl SetIrqFlag bl sub_03801C8C b _03802574 _038021B0: @@ -12654,7 +12654,7 @@ _038021B0: ldr r7, [sp, #0x2c] ldr r6, [sp, #0x28] ldr r5, [sp, #0x24] - bl sub_037FDD00 + bl EnableIrqFlag mov fp, r0 mov r8, #0 b _038021E8 @@ -12696,7 +12696,7 @@ _0380222C: movne r0, #0 strneb r0, [sl] mov r0, fp - bl sub_037FDD14 + bl SetIrqFlag bl sub_03801C8C b _03802574 _03802254: @@ -12961,7 +12961,7 @@ _038025C8: .word _03808FF0 sub_038025CC: ; 0x038025CC stmdb sp!, {r3, r4, r5, lr} mov r5, r1 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 cmp r5, #0x2000000 blo _038025F8 @@ -12976,7 +12976,7 @@ _038025F8: bl sub_037FEFC8 _03802604: mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, lr} bx lr .align 2, 0 @@ -13048,7 +13048,7 @@ sub_038026E0: ; 0x038026E0 stmdb sp!, {r3, r4, r5, r6, r7, lr} ldr r5, _0380271C ; =_03809060 mov r7, r0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r6, [r5, #0xf0] mov r4, r0 mov r1, r7 @@ -13056,7 +13056,7 @@ sub_038026E0: ; 0x038026E0 str r7, [r5, #0xf0] bl sub_037FC3C0 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag mov r0, r6 ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr @@ -13777,7 +13777,7 @@ sub_03802FFC: ; 0x03802FFC str r1, [r0] ldr r7, [r4, #0x3c] ldr r6, [r4, #0x40] - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r4, #0xfc] mov r5, r0 bic r0, r1, #0x4c @@ -13791,7 +13791,7 @@ sub_03802FFC: ; 0x03802FFC bl sub_037FC36C _03803048: mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag cmp r7, #0 beq _03803064 mov r0, r6 @@ -13871,7 +13871,7 @@ sub_03803114: ; 0x03803114 mov r7, r0 mov r6, r1 mov r5, r2 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 b _03803138 _03803130: @@ -13887,7 +13887,7 @@ _03803138: str r1, [r7, #0xfc] str r6, [r7, #0x3c] str r5, [r7, #0x40] - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r3, r4, r5, r6, r7, lr} bx lr arm_func_end sub_03803114 @@ -13998,7 +13998,7 @@ sub_038032B8: ; 0x038032B8 ldr r4, _038034E8 ; =_03809060 _038032C0: mov r5, #0 - bl sub_037FDD00 + bl EnableIrqFlag mov r6, r0 add r8, r4, #0x48 mov r7, r5 @@ -14028,7 +14028,7 @@ _03803318: b _038032D4 _03803328: mov r0, r6 - bl sub_037FDD14 + bl SetIrqFlag cmp r5, #0 beq _038034D4 ldr r0, [r4] @@ -14135,7 +14135,7 @@ _03803480: bl sub_037FE410 cmp r0, #0 blt _03803480 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r4, #0xfc] mov r5, r0 bic r0, r1, #0x4c @@ -14149,7 +14149,7 @@ _03803480: bl sub_037FC36C _038034C8: mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag b _038032C0 _038034D4: ldr r1, [r4, #0x44] @@ -14207,12 +14207,12 @@ sub_03803544: ; 0x03803544 bl sub_037FDEF4 mov r0, #0 bl sub_03806610 - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 bl sub_037FE708 bl sub_0380528C mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag bl sub_037FDE70 b _038035A0 _0380359C: @@ -14648,11 +14648,11 @@ sub_0380398C: ; 0x0380398C ldr r4, _038039E4 ; =_038098D0 mov r6, r0 _0380399C: - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, [r4, #4] cmp r1, #0 beq _038039BC - bl sub_037FDD14 + bl SetIrqFlag mov r0, r5 bl sub_037FC290 b _0380399C @@ -14663,7 +14663,7 @@ _038039BC: mov r2, #4 str r2, [r1, #8] str r6, [r1, #0x49c] - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 @@ -14683,14 +14683,14 @@ sub_038039E8: ; 0x038039E8 ldreq r1, [r1, #0x49c] cmpeq r1, r0 bne _03803A38 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _03803A40 ; =_038098D0 mov r2, #5 str r2, [r1, #8] mov r2, #0 str r2, [r1, #4] str r2, [r1, #0x49c] - bl sub_037FDD14 + bl SetIrqFlag ldr r0, _03803A44 ; =_03809D64 bl sub_037FC2E4 _03803A38: @@ -14818,7 +14818,7 @@ sub_03803B7C: ; 0x03803B7C mov r4, r1 movhi r0, #0 bhi _03803C3C - bl sub_037FDD00 + bl EnableIrqFlag ldr r3, _03803C48 ; =_038098D0 add r2, sp, #0x18 ldr ip, [r3, #0x490] @@ -14853,7 +14853,7 @@ _03803C04: add r2, r4, #1 and r2, r2, #0xf str r2, [r1, #0x490] - bl sub_037FDD14 + bl SetIrqFlag ldr r1, _03803C4C ; =_03809BE0 mov r0, #0x18 mla r1, r4, r0, r1 @@ -15208,14 +15208,14 @@ _0380407C: cmp r0, #2 bne _03804314 _03804094: - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 mov r0, #0 bl sub_03803B0C cmp r0, #0 bne _038040CC mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [sl, #4] mov r1, #4 mov r0, r0, lsl #0x10 @@ -15226,7 +15226,7 @@ _038040CC: mov r0, #0 bl sub_03803B28 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldr r1, _03804320 ; =_03809D70 add r0, sp, #8 ldr r1, [r1, #0x28] @@ -15949,14 +15949,14 @@ _03804A98: .word _03809E4C sub_03804A9C: ; 0x03804A9C stmdb sp!, {r3, r4, r5, lr} mov r4, r0 - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 mov r0, #3 bl sub_03803B0C cmp r0, #0 bne _03804ADC mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [r4, #4] mov r1, #4 mov r0, r0, lsl #0x10 @@ -15967,7 +15967,7 @@ _03804ADC: mov r0, #3 bl sub_03803B28 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldr r1, [r4, #4] sub r0, r1, #0x61 cmp r0, #5 @@ -16318,7 +16318,7 @@ sub_03804F1C: ; 0x03804F1C mov r8, #0 ldrh sb, [r0] strh r8, [r0] - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 mvn r0, #0xfe000000 bl sub_037FB928 @@ -16387,7 +16387,7 @@ _03805014: bl sub_037FB8F0 _0380502C: mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldr r2, _038050D8 ; =0x04000208 mov r0, #1 ldrh r1, [r2] @@ -16419,11 +16419,11 @@ _0380502C: mov r0, #0x62 str r1, [r3, #0x20] bl sub_03804C0C - bl sub_037FDD00 + bl EnableIrqFlag mov r0, r5 bl sub_037FB8A4 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldr r1, _038050D8 ; =0x04000208 ldrh r0, [r1] strh sb, [r1] @@ -16829,7 +16829,7 @@ _038055E4: bl sub_03803A48 b _03805658 _0380560C: - bl sub_037FDD00 + bl EnableIrqFlag ldr r3, _0380566C ; =0x0400010E ldr r1, _03805664 ; =_0380B1FC ldrh r2, [r3] @@ -16840,7 +16840,7 @@ _0380560C: ldrh r1, [r1, #0x36] orr r1, r1, #0xc0 strh r1, [r3] - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 mov r1, #0 bl sub_03803A48 @@ -16921,14 +16921,14 @@ sub_03805714: ; 0x03805714 beq _03805884 b _03805920 _0380573C: - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 mov r0, #2 bl sub_03803B0C cmp r0, #0 bne _03805774 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [r4, #4] mov r1, #4 mov r0, r0, lsl #0x10 @@ -16939,7 +16939,7 @@ _03805774: mov r0, #2 bl sub_03803B28 mov r0, r5 - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [r4, #8] and r0, r0, #1 cmp r0, #1 @@ -16976,7 +16976,7 @@ _038057EC: mov r1, #0 strh r1, [r0, #0x3a] strh r1, [r0, #0x38] - bl sub_037FDD00 + bl EnableIrqFlag mov r5, r0 mov r0, #0x40 bl sub_037FB8F0 @@ -16992,7 +16992,7 @@ _038057EC: ldrh r1, [r1, #0x36] orr r1, r1, #0xc0 strh r1, [r2, #2] - bl sub_037FDD14 + bl SetIrqFlag ldr r0, [r4, #4] mov r1, #0 mov r0, r0, lsl #0x10 @@ -17018,14 +17018,14 @@ _03805884: ldrh r0, [r1] bic r0, r0, #0x80 strh r0, [r1] - bl sub_037FDD00 + bl EnableIrqFlag mov r4, r0 mov r0, #0x40 mov r1, #0 bl sub_03805D98 bl sub_03805E20 mov r0, r4 - bl sub_037FDD14 + bl SetIrqFlag ldr r0, _0380592C ; =_0380B1FC mov r1, #0 ldr r0, [r0, #0x20] @@ -17431,11 +17431,11 @@ sub_03805DC0: ; 0x03805DC0 mov r1, #0x40 str r1, [r0, #8] str r2, [r0, #0xc] - bl sub_037FDD00 + bl EnableIrqFlag ldr r2, _03805E18 ; =sub_03805E64 ldr r1, _03805E14 ; =0x0380FFFC str r2, [r1] - bl sub_037FDD14 + bl SetIrqFlag _03805E0C: ldmia sp!, {r3, lr} bx lr @@ -17453,12 +17453,12 @@ sub_03805E20: ; 0x03805E20 ldr r1, [r1] cmp r1, r0 bne _03805E50 - bl sub_037FDD00 + bl EnableIrqFlag ldr r1, _03805E60 ; =_0380B24C ldr r2, _03805E58 ; =0x0380FFFC ldr r1, [r1, #0xc] str r1, [r2] - bl sub_037FDD14 + bl SetIrqFlag _03805E50: ldmia sp!, {r3, lr} bx lr @@ -17742,7 +17742,7 @@ sub_03806130: ; 0x03806130 cmp r0, #0 bne _03806194 ldr r0, [sp, #0xc] - bl sub_037FDD14 + bl SetIrqFlag mov r0, r4 b _0380623C _03806194: @@ -17852,7 +17852,7 @@ sub_038062D0: ; 0x038062D0 stmdb sp!, {r3, r4, r5, lr} mov r4, r1 mov r5, r0 - bl sub_037FDD00 + bl EnableIrqFlag str r0, [r4, #4] ldr r0, _0380631C ; =0x027FFFE8 bl sub_037FBBF4 @@ -17885,7 +17885,7 @@ sub_03806320: ; 0x03806320 bl sub_037FBB78 _03806338: ldr r0, [r4, #4] - bl sub_037FDD14 + bl SetIrqFlag ldmia sp!, {r4, lr} bx lr arm_func_end sub_03806320 @@ -18131,7 +18131,7 @@ _0380664C: ldrne r0, [r5, #0x3c] cmpne r0, #0 bne _038066F0 - bl sub_037FDD00 + bl EnableIrqFlag ldr r4, _0380682C ; =_0380B264 mov sb, r0 ldr r0, [r4, #4] @@ -18171,7 +18171,7 @@ _038066DC: ldr r0, _0380683C ; =_0380B294 bl sub_037FD5C0 mov r0, sb - bl sub_037FDD14 + bl SetIrqFlag b _03806824 _038066F0: cmp r5, #0 diff --git a/tools/sync_pmdsky_debug/pmdsky_debug_reader.py b/tools/sync_pmdsky_debug/pmdsky_debug_reader.py index 45182a33..0f9607d2 100644 --- a/tools/sync_pmdsky_debug/pmdsky_debug_reader.py +++ b/tools/sync_pmdsky_debug/pmdsky_debug_reader.py @@ -62,6 +62,7 @@ def read_pmdsky_debug_symbols() -> Dict[str, Dict[int, SymbolDetails]]: pmdsky_debug_symbols['main'] = read_yaml_symbols('arm9.yml') pmdsky_debug_symbols['main'] = read_yaml_symbols(itcm_file, pmdsky_debug_symbols['main']) pmdsky_debug_symbols['ITCM'] = read_yaml_symbols(itcm_file, address_suffix='-ITCM') + pmdsky_debug_symbols['arm7'] = read_yaml_symbols('arm7.yml') for i in range(0, 36): overlay_name = f'overlay{i:02d}' pmdsky_debug_symbols[str(i)] = read_yaml_symbols(f'{overlay_name}.yml') diff --git a/tools/sync_pmdsky_debug/sync_from_pmdsky_debug.py b/tools/sync_pmdsky_debug/sync_from_pmdsky_debug.py index 8e23a794..da813462 100644 --- a/tools/sync_pmdsky_debug/sync_from_pmdsky_debug.py +++ b/tools/sync_pmdsky_debug/sync_from_pmdsky_debug.py @@ -25,6 +25,7 @@ def add_files_with_extensions(folder: str, extensions: List[str]) -> List[str]: return found_files asm_files = add_files_with_extensions('asm', ['.s', '.inc']) +asm_arm7_files = add_files_with_extensions(os.path.join('sub', 'asm'), ['.s', '.inc']) src_files = add_files_with_extensions(HEADER_FOLDER, ['.h']) src_files.extend(add_files_with_extensions('src', ['.c'])) @@ -35,6 +36,9 @@ for section_name, pmdsky_debug_section in pmdsky_debug_symbols.items(): xmap_section = {} for address, symbol in pmdsky_debug_section.items(): + if section_name == 'arm7' and address > 0x2380000: + # TODO Figure out exact boundary of WRAM. + address += 0x1477E18 if address in xmap_section and xmap_section[address].name != symbol.name and xmap_section[address].name not in MIXED_CASE_SYMBOLS: old_symbol = xmap_section[address] print(f'Replacing {old_symbol.name} with {symbol.name}') @@ -63,7 +67,10 @@ for section_name, pmdsky_debug_section in pmdsky_debug_symbols.items(): f'.public {old_symbol.name}\n', ] asm_search_strings = [(base, base.replace(old_symbol.name, symbol.name)) for base in asm_search_string_bases] - for file_path in asm_files: + candidate_asm_files = asm_files + if section_name == 'arm7': + candidate_asm_files = asm_arm7_files + for file_path in candidate_asm_files: with open(file_path, 'r') as asm_file: asm_contents = asm_file.read() for search_string in asm_search_strings: diff --git a/tools/sync_pmdsky_debug/xmap_reader.py b/tools/sync_pmdsky_debug/xmap_reader.py index 85db12eb..c9dabaa3 100644 --- a/tools/sync_pmdsky_debug/xmap_reader.py +++ b/tools/sync_pmdsky_debug/xmap_reader.py @@ -5,6 +5,7 @@ from symbol_details import SymbolDetails HEADER_FOLDER = 'include' XMAP_PATH = os.path.join('build', 'pmdsky.us', 'main.nef.xMAP') +XMAP_PATH_ARM7 = os.path.join('sub', 'build', 'arm7.nef.xMAP') MAIN_LSF_PATH = 'main.lsf' REMOTE_XMAP_URL = 'https://raw.githubusercontent.com/pret/pmd-sky/xmap/pmdskyus.xMAP' @@ -19,7 +20,6 @@ def read_xmap_symbols() -> Dict[str, Dict[int, SymbolDetails]]: overlay_names[line[len(OVERLAY_START) : -1]] = len(overlay_names) SECTION_START = '# .' - current_section = None if os.path.exists(XMAP_PATH): print('Using local xMAP file.') @@ -33,27 +33,39 @@ def read_xmap_symbols() -> Dict[str, Dict[int, SymbolDetails]]: else: raise Exception(f'Received error {remote_xmap_response.status_code} from {REMOTE_XMAP_URL}') - NON_FUNCTION_SYMBOLS = set(['$', '.']) - for line in xmap_lines: - if line.startswith(SECTION_START): - section_name = line[len(SECTION_START) : -1] - if section_name in overlay_names: - current_section = str(overlay_names[section_name]) - elif section_name == 'main' or section_name == 'ITCM': - current_section = section_name - else: - current_section = None - if current_section is not None: - xmap_symbols[current_section]: Dict[str, int] = {} + def read_xmap_file(xmap_lines): + current_section = None + for line in xmap_lines: + if line.startswith(SECTION_START): + section_name = line[len(SECTION_START) : -1] + if section_name in overlay_names: + current_section = str(overlay_names[section_name]) + elif section_name == 'main' or section_name == 'ITCM' or section_name == 'arm7': + current_section = section_name + elif section_name == 'MAIN' or section_name == 'WRAM': + current_section = 'arm7' + else: + current_section = None + if current_section is not None and current_section not in xmap_symbols: + xmap_symbols[current_section]: Dict[str, int] = {} - elif current_section is not None and line.startswith(' ') and '.text' in line and len(line) > 28 and line[28] not in NON_FUNCTION_SYMBOLS: - symbol_split = line[28:-1].split('\t') - symbol_name = symbol_split[0] - symbol_address = int(line[2:10], 16) - if '00000000' in line: - if not symbol_name.startswith('$'): - xmap_symbols[current_section][symbol_address] = SymbolDetails(symbol_name, symbol_split[1][1:-1], True) - else: - xmap_symbols[current_section][symbol_address] = SymbolDetails(symbol_name, symbol_split[1][1:-1], False) + elif current_section is not None and line.startswith(' ') and '.text' in line and len(line) > 28 and line[28] not in NON_FUNCTION_SYMBOLS: + symbol_split = line[28:-1].split('\t') + symbol_name = symbol_split[0] + symbol_address = int(line[2:10], 16) + if '00000000' in line: + if not symbol_name.startswith('$'): + xmap_symbols[current_section][symbol_address] = SymbolDetails(symbol_name, symbol_split[1][1:-1], True) + else: + xmap_symbols[current_section][symbol_address] = SymbolDetails(symbol_name, symbol_split[1][1:-1], False) + + NON_FUNCTION_SYMBOLS = set(['$', '.']) + read_xmap_file(xmap_lines) + + if os.path.exists(XMAP_PATH_ARM7): + print('Using local ARM7 xMAP file.') + with open(XMAP_PATH_ARM7, 'r') as xmap_file: + xmap_lines = xmap_file.readlines() + read_xmap_file(xmap_lines) return xmap_symbols