Merge branch 'master' of github.com:pret/pokediamond into pikalax_work

This commit is contained in:
PikalaxALT
2020-07-27 10:22:09 -04:00
75 changed files with 5735 additions and 5664 deletions

View File

@@ -69,6 +69,9 @@ Autoload WRAM
Object SPI_mic.o
Object CTRDG.o
Object CTRDG_sp.o
Object NVRAM.o
Object RTC_unk_03805064.o
Object RTC_external.o
Object wram2.o
Object wram_bss.o
}

1053
arm7/asm/NVRAM.s Normal file

File diff suppressed because it is too large Load Diff

75
arm7/asm/RTC_external.s Normal file
View File

@@ -0,0 +1,75 @@
.include "asm/macros.inc"
.include "global.inc"
.section .bss
.global _0380A210
_0380A210: ;0x0380A210
.space 0x0380A3F0 - 0x0380A210
.section .text
arm_func_start RTC_Init
RTC_Init: ;@ 0x03805954
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
ldr r0, _03805A28 ;@ =_0380A038
ldrh r1, [r0]
cmp r1, #0
bne _03805A1C
mov r1, #1
strh r1, [r0]
ldr r0, _03805A2C ;@ =_0380A03C
str r1, [r0, #468] ;@ 0x1d4
bl FUN_03805158
mov r1, #0
ldr r0, _03805A2C ;@ =_0380A03C
str r1, [r0, #468] ;@ 0x1d4
bl PXI_Init
mov r0, #5
ldr r1, _03805A30 ;@ =FUN_03805818
bl PXI_SetFifoRecvCallback
ldr r0, _03805A2C ;@ =_0380A03C
ldr r1, _03805A34 ;@ =_0380A05C
mov r2, #4
bl OS_InitMessageQueue
mov r0, #256 ;@ 0x100
str r0, [sp]
str r4, [sp, #4]
ldr r0, _03805A38 ;@ =_0380A06C
ldr r1, _03805A3C ;@ =FUN_0380531C
mov r2, #0
ldr r3, _03805A40 ;@ =_0380A210
bl OS_CreateThread
ldr r0, _03805A38 ;@ =_0380A06C
bl OS_WakeupThreadDirect
mov r0, #32768 ;@ 0x8000
bl EXIi_SelectRcnt
mov r0, #64 ;@ 0x40
mov r1, #0
bl EXIi_SetBitRcnt0L
mov r0, #256 ;@ 0x100
mov r1, r0
bl EXIi_SetBitRcnt0L
bl OS_DisableInterrupts
mov r4, r0
mov r0, #128 ;@ 0x80
ldr r1, _03805A44 ;@ =FUN_0380528C
bl OS_SetIrqFunction
mov r0, #128 ;@ 0x80
bl OS_EnableIrqMask
mov r0, r4
bl OS_RestoreInterrupts
_03805A1C:
add sp, sp, #8
ldmia sp!, {r4, lr}
bx lr
_03805A28: .word _0380A038
_03805A2C: .word _0380A03C
_03805A30: .word FUN_03805818
_03805A34: .word _0380A05C
_03805A38: .word _0380A06C
_03805A3C: .word FUN_0380531C
_03805A40: .word _0380A210
_03805A44: .word FUN_0380528C

665
arm7/asm/RTC_unk_03805064.s Normal file
View File

@@ -0,0 +1,665 @@
.include "asm/macros.inc"
.include "global.inc"
.section .bss
.global _0380A038
_0380A038: ;0x0380A038
.space 0x0380A03C - 0x0380A038
.global _0380A03C
_0380A03C: ;0x0380A03C
.space 0x0380A05C - 0x0380A03C
.global _0380A05C
_0380A05C: ;0x0380A05C
.space 0x0380A06C - 0x0380A05C
.global _0380A06C
_0380A06C: ;0x0380A06C
.space 0x0380A13C - 0x0380A06C
.global _0380A13C
_0380A13C: ;0x0380A13C
.space 0x0380A210 - 0x0380A13C
.section .text
arm_func_start FUN_03805064
FUN_03805064: ;@ 0x03805064
stmfd sp!, {lr}
sub sp, sp, #4
mov lr, #0
mov r2, lr
b _03805094
_03805078:
mov r1, r2, lsl #2
mov r1, r0, lsr r1
and r1, r1, #15
cmp r1, #10
movcs r0, #0
bcs _038050D0
add r2, r2, #1
_03805094:
cmp r2, #8
blt _03805078
mov r3, #0
mov ip, #1
mov r2, #10
_038050A8:
mov r1, r3, lsl #2
mov r1, r0, lsr r1
and r1, r1, #15
mla lr, ip, r1, lr
add r3, r3, #1
mul r1, ip, r2
mov ip, r1
cmp r3, #8
blt _038050A8
mov r0, lr
_038050D0:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
arm_func_start FUN_038050DC
FUN_038050DC: ;@ 0x038050DC
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r0
mov r7, r1
mov r6, r2
sub r0, r7, #1
cmp r0, #1
subls r8, r8, #1
addls r7, r7, #12
mov r0, r8
mov r1, #400 ;@ 0x190
bl _u32_div_f
mov r5, r0
mov r0, r8
mov r1, #100 ;@ 0x64
bl _u32_div_f
mov r4, r0
mov r0, #13
mul r0, r7, r0
add r0, r0, #8
mov r1, #5
bl _u32_div_f
add r1, r8, r8, lsr #2
sub r1, r1, r4
add r1, r5, r1
add r0, r1, r0
add r0, r6, r0
mov r1, #7
bl _u32_div_f
mov r0, r1
ldmia sp!, {r4, r5, r6, r7, r8, lr}
bx lr
arm_func_start FUN_03805158
FUN_03805158: ;@ 0x03805158
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
add r0, sp, #0
bl RTC_ReadStatus1
add r0, sp, #2
bl RTC_ReadStatus2
ldrh r0, [sp]
mov r1, r0, lsl #24
movs r1, r1, lsr #31
bne _0380519C
mov r0, r0, lsl #25
movs r0, r0, lsr #31
bne _0380519C
ldrh r0, [sp, #2]
mov r0, r0, lsl #24
movs r0, r0, lsr #31
beq _038051B4
_0380519C:
ldrh r0, [sp]
bic r0, r0, #1
orr r0, r0, #1
strh r0, [sp]
add r0, sp, #0
bl RTC_WriteStatus1
_038051B4:
ldrh r0, [sp]
mov r1, r0, lsl #27
movs r1, r1, lsr #31
bne _038051D0
mov r0, r0, lsl #26
movs r0, r0, lsr #31
beq _038051F0
_038051D0:
ldrh r0, [sp, #2]
bic r0, r0, #15
strh r0, [sp, #2]
ldrh r0, [sp, #2]
bic r0, r0, #64 ;@ 0x40
strh r0, [sp, #2]
add r0, sp, #2
bl RTC_WriteStatus2
_038051F0:
ldr r0, _03805288 ;@ =0x027FFDE8
bl RTC_ReadDateTime
ldr r0, _03805288 ;@ =0x027FFDE8
ldrb r0, [r0]
bl FUN_03805064
mov r4, r0
ldr r0, _03805288 ;@ =0x027FFDE8
ldr r0, [r0]
mov r0, r0, lsl #19
mov r0, r0, lsr #27
bl FUN_03805064
mov r5, r0
ldr r0, _03805288 ;@ =0x027FFDE8
ldr r0, [r0]
mov r0, r0, lsl #10
mov r0, r0, lsr #26
bl FUN_03805064
mov r2, r0
add r0, r4, #2000 ;@ 0x7d0
mov r1, r5
bl FUN_038050DC
ldr r2, _03805288 ;@ =0x027FFDE8
ldr r1, [r2]
mov r3, r1, lsl #5
mov r3, r3, lsr #29
cmp r3, r0
beq _03805274
bic r1, r1, #117440512 ;@ 0x7000000
and r0, r0, #7
orr r0, r1, r0, lsl #24
str r0, [r2]
mov r0, r2
bl RTC_WriteDateTime
_03805274:
mov r0, #1
bl RTC_SetHourFormat
add sp, sp, #4
ldmia sp!, {r4, r5, lr}
bx lr
_03805288: .word 0x027FFDE8
arm_func_start FUN_0380528C
FUN_0380528C: ;@ 0x0380528C
stmdb sp!, {r4, lr}
sub sp, sp, #8
add r0, sp, #0
bl RTC_ReadStatus1
ldrh r0, [sp]
mov r1, r0, lsl #27
movs r1, r1, lsr #31
bne _038052B8
mov r0, r0, lsl #26
movs r0, r0, lsr #31
beq _03805310
_038052B8:
add r0, sp, #2
bl RTC_ReadStatus2
mov r4, #0
ldrh r0, [sp]
mov r0, r0, lsl #27
movs r0, r0, lsr #31
orrne r4, r4, #1
ldrneh r0, [sp, #2]
bicne r0, r0, #15
strneh r0, [sp, #2]
ldrh r0, [sp]
mov r0, r0, lsl #26
movs r0, r0, lsr #31
orrne r4, r4, #2
ldrneh r0, [sp, #2]
bicne r0, r0, #64 ;@ 0x40
strneh r0, [sp, #2]
add r0, sp, #2
bl RTC_WriteStatus2
mov r0, #48 ;@ 0x30
mov r1, r4
bl FUN_038057D8
_03805310:
add sp, sp, #8
ldmia sp!, {r4, lr}
bx lr
arm_func_start FUN_0380531C
FUN_0380531C: ;@ 0x0380531C
stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #76 ;@ 0x4c
ldr r6, _038057CC ;@ =0x027FFDE8
add r5, r6, #4
mov r7, #0
ldr r9, _038057D0 ;@ =_0380A03C
mov r8, #1
mov r0, #16
str r0, [sp]
mov r0, #17
str r0, [sp, #4]
mov r0, #18
str r0, [sp, #8]
mov sl, #19
mov r4, #2
mov fp, #20
mov r0, #21
str r0, [sp, #12]
mov r0, #22
str r0, [sp, #16]
mov r0, #23
str r0, [sp, #20]
mov r0, #24
str r0, [sp, #24]
mov r0, #25
str r0, [sp, #28]
mov r0, #32
str r0, [sp, #32]
mov r0, #33 ;@ 0x21
str r0, [sp, #36] ;@ 0x24
mov r0, #34 ;@ 0x22
str r0, [sp, #40] ;@ 0x28
mov r0, #35 ;@ 0x23
str r0, [sp, #44] ;@ 0x2c
mov r0, #36 ;@ 0x24
str r0, [sp, #48] ;@ 0x30
mov r0, #37 ;@ 0x25
str r0, [sp, #52] ;@ 0x34
mov r0, #38 ;@ 0x26
str r0, [sp, #56] ;@ 0x38
mov r0, #39 ;@ 0x27
str r0, [sp, #60] ;@ 0x3c
mov r0, #40 ;@ 0x28
str r0, [sp, #64] ;@ 0x40
mov r0, #41 ;@ 0x29
str r0, [sp, #68] ;@ 0x44
_038053D4:
mov r0, r9
add r1, sp, #72 ;@ 0x48
mov r2, r8
bl OS_ReceiveMessage
ldr r0, _038057D4 ;@ =_0380A13C
ldrh r0, [r0, #216] ;@ 0xd8
cmp r0, #41 ;@ 0x29
addls pc, pc, r0, lsl #2
b _038057BC
b _038054A0
b _038054B8
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038054DC
b _038054F8
b _03805514
b _03805530
b _03805568
b _038055A0
b _038055D8
b _038055F4
b _03805610
b _0380562C
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _038057BC
b _03805648
b _03805664
b _03805688
b _038056A4
b _038056DC
b _03805714
b _0380574C
b _03805768
b _03805784
b _038057A0
_038054A0:
bl RTC_Reset
str r7, [r9, #468] ;@ 0x1d4
mov r0, r7
mov r1, r7
bl FUN_038057D8
b _038053D4
_038054B8:
ldrh r0, [r6]
mov r0, r0, lsl #30
mov r0, r0, lsr #31
bl RTC_SetHourFormat
str r7, [r9, #468] ;@ 0x1d4
mov r0, r8
mov r1, r7
bl FUN_038057D8
b _038053D4
_038054DC:
mov r0, r6
bl RTC_ReadDateTime
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp]
mov r1, r7
bl FUN_038057D8
b _038053D4
_038054F8:
mov r0, r6
bl RTC_ReadDate
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #4]
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805514:
add r0, r6, #4
bl RTC_ReadTime
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #8]
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805530:
mov r0, r5
bl RTC_ReadPulse
cmp r0, #0
bne _03805554
str r7, [r9, #468] ;@ 0x1d4
mov r0, sl
mov r1, r4
bl FUN_038057D8
b _038053D4
_03805554:
str r7, [r9, #468] ;@ 0x1d4
mov r0, sl
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805568:
mov r0, r5
bl RTC_ReadAlarm1
cmp r0, #0
bne _0380558C
str r7, [r9, #468] ;@ 0x1d4
mov r0, fp
mov r1, r4
bl FUN_038057D8
b _038053D4
_0380558C:
str r7, [r9, #468] ;@ 0x1d4
mov r0, fp
mov r1, r7
bl FUN_038057D8
b _038053D4
_038055A0:
mov r0, r5
bl RTC_ReadAlarm2
cmp r0, #0
bne _038055C4
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #12]
mov r1, r4
bl FUN_038057D8
b _038053D4
_038055C4:
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #12]
mov r1, r7
bl FUN_038057D8
b _038053D4
_038055D8:
mov r0, r6
bl RTC_ReadStatus1
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #16]
mov r1, r7
bl FUN_038057D8
b _038053D4
_038055F4:
add r0, r6, #2
bl RTC_ReadStatus2
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #20]
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805610:
add r0, r6, #4
bl RTC_ReadAdjust
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #24]
mov r1, r7
bl FUN_038057D8
b _038053D4
_0380562C:
add r0, r6, #4
bl RTC_ReadFree
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #28]
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805648:
mov r0, r6
bl RTC_WriteDateTime
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #32]
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805664:
add r0, r6, #4
bl RTC_ReadTime
mov r0, r6
bl RTC_WriteDateTime
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #36] ;@ 0x24
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805688:
add r0, r6, #4
bl RTC_WriteTime
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #40] ;@ 0x28
mov r1, r7
bl FUN_038057D8
b _038053D4
_038056A4:
mov r0, r5
bl RTC_WritePulse
cmp r0, #0
bne _038056C8
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #44] ;@ 0x2c
mov r1, r4
bl FUN_038057D8
b _038053D4
_038056C8:
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #44] ;@ 0x2c
mov r1, r7
bl FUN_038057D8
b _038053D4
_038056DC:
mov r0, r5
bl RTC_WriteAlarm1
cmp r0, #0
bne _03805700
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #48] ;@ 0x30
mov r1, r4
bl FUN_038057D8
b _038053D4
_03805700:
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #48] ;@ 0x30
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805714:
mov r0, r5
bl RTC_WriteAlarm2
cmp r0, #0
bne _03805738
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #52] ;@ 0x34
mov r1, r4
bl FUN_038057D8
b _038053D4
_03805738:
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #52] ;@ 0x34
mov r1, r7
bl FUN_038057D8
b _038053D4
_0380574C:
mov r0, r6
bl RTC_WriteStatus1
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #56] ;@ 0x38
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805768:
add r0, r6, #2
bl RTC_WriteStatus2
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #60] ;@ 0x3c
mov r1, r7
bl FUN_038057D8
b _038053D4
_03805784:
add r0, r6, #4
bl RTC_WriteAdjust
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #64] ;@ 0x40
mov r1, r7
bl FUN_038057D8
b _038053D4
_038057A0:
add r0, r6, #4
bl RTC_WriteFree
str r7, [r9, #468] ;@ 0x1d4
ldr r0, [sp, #68] ;@ 0x44
mov r1, r7
bl FUN_038057D8
b _038053D4
_038057BC:
str r7, [r9, #468] ;@ 0x1d4
mov r1, r8
bl FUN_038057D8
b _038053D4
_038057CC: .word 0x027FFDE8
_038057D0: .word _0380A03C
_038057D4: .word _0380A13C
arm_func_start FUN_038057D8
FUN_038057D8: ;@ 0x038057D8
stmdb sp!, {r4, r5, r6, lr}
mov r0, r0, lsl #8
and r0, r0, #32512 ;@ 0x7f00
orr r2, r0, #32768 ;@ 0x8000
and r0, r1, #255 ;@ 0xff
orr r6, r2, r0
mov r5, #5
mov r4, #0
_038057F8:
mov r0, r5
mov r1, r6
mov r2, r4
bl PXI_SendWordByFifo
cmp r0, #0
blt _038057F8
ldmia sp!, {r4, r5, r6, lr}
bx lr
arm_func_start FUN_03805818
FUN_03805818: ;@ 0x03805818
stmdb sp!, {r4, lr}
cmp r2, #0
bne _03805944
and r0, r1, #32512 ;@ 0x7f00
mov r0, r0, lsl #8
mov r4, r0, lsr #16
cmp r4, #41 ;@ 0x29
addls pc, pc, r4, lsl #2
b _03805938
b _038058E4
b _038058E4
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _03805938
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
b _038058E4
_038058E4:
ldr r0, _0380594C ;@ =_0380A03C
ldr r1, [r0, #468] ;@ 0x1d4
cmp r1, #0
beq _03805904
mov r0, r4
mov r1, #3
bl FUN_038057D8
b _03805944
_03805904:
mov r1, #1
str r1, [r0, #468] ;@ 0x1d4
ldr r1, _03805950 ;@ =_0380A13C
strh r4, [r1, #216] ;@ 0xd8
mov r1, #0
mov r2, r1
bl OS_SendMessage
cmp r0, #0
bne _03805944
mov r0, r4
mov r1, #4
bl FUN_038057D8
b _03805944
_03805938:
mov r0, r4
mov r1, #1
bl FUN_038057D8
_03805944:
ldmia sp!, {r4, lr}
bx lr
_0380594C: .word _0380A03C
_03805950: .word _0380A13C

File diff suppressed because it is too large Load Diff

View File

@@ -2,34 +2,6 @@
.include "global.inc"
.section .bss
.global _0380A018
_0380A018: ;0x0380A018
.space 0x0380A038 - 0x0380A018
.global _0380A038
_0380A038: ;0x0380A038
.space 0x0380A03C - 0x0380A038
.global _0380A03C
_0380A03C: ;0x0380A03C
.space 0x0380A05C - 0x0380A03C
.global _0380A05C
_0380A05C: ;0x0380A05C
.space 0x0380A06C - 0x0380A05C
.global _0380A06C
_0380A06C: ;0x0380A06C
.space 0x0380A13C - 0x0380A06C
.global _0380A13C
_0380A13C: ;0x0380A13C
.space 0x0380A210 - 0x0380A13C
.global _0380A210
_0380A210: ;0x0380A210
.space 0x0380A3F0 - 0x0380A210
.global _0380A3F0
_0380A3F0: ;0x0380A3F0
.space 0x0380A3F4 - 0x0380A3F0

View File

@@ -258,6 +258,31 @@
.extern NVRAM_Init
.extern NVRAM_ReadDataBytes
.extern RTC_Init
.extern RTC_ReadAdjust
.extern RTC_ReadAlarm1
.extern RTC_ReadAlarm2
.extern RTC_ReadDate
.extern RTC_ReadDateTime
.extern RTC_ReadFree
.extern RTC_ReadPulse
.extern RTC_ReadStatus1
.extern RTC_ReadStatus2
.extern RTC_ReadTime
.extern RTC_Reset
.extern RTC_SetHourFormat
.extern RTC_WriteAdjust
.extern RTC_WriteAlarm1
.extern RTC_WriteAlarm2
.extern RTC_WriteDateTime
.extern RTC_WriteFree
.extern RTC_WritePulse
.extern RTC_WriteStatus1
.extern RTC_WriteStatus2
.extern RTC_WriteTime
.extern FUN_03805158
.extern FUN_0380528C
.extern FUN_0380531C
.extern FUN_03805818
.extern WVR_Shutdown
.extern WVR_Init
.extern FUN_038073EC

View File

@@ -569,8 +569,9 @@ Overlay MODULE_11
{
##Battles##
After MODULE_08
Object module_11.o
Object module_11_thumb1.o
Object module_11_sinit.o
Object module_11_thumb2.o
}
Overlay MODULE_12
@@ -638,13 +639,14 @@ Overlay MODULE_21
{
##Pokétch Clock##
After MODULE_20
Object module_21.o
Object module_21_sinit.o
Object module_21.o
}
Overlay MODULE_22
{
After MODULE_20
Object module_22_sinit.o
Object module_22.o
}
@@ -652,14 +654,15 @@ Overlay MODULE_23
{
##Pokétch Calculator##
After MODULE_20
Object module_23.o
Object module_23_sinit.o
Object module_23.o
}
Overlay MODULE_24
{
##Memo Pad##
After MODULE_20
Object module_24_sinit.o
Object module_24.o
}
@@ -667,12 +670,14 @@ Overlay MODULE_25
{
##Analogue Watch##
After MODULE_20
Object module_25_sinit.o
Object module_25.o
}
Overlay MODULE_26
{
After MODULE_20
Object module_26_sinit.o
Object module_26.o
}
@@ -680,31 +685,31 @@ Overlay MODULE_27
{
##Pokétch Party##
After MODULE_20
Object module_27.o
Object module_27_sinit.o
Object module_27.o
}
Overlay MODULE_28
{
##Friendship Checker##
After MODULE_20
Object module_28.o
Object module_28_sinit.o
Object module_28.o
}
Overlay MODULE_29
{
##Dowsing Machine##
After MODULE_20
Object module_29.o
Object module_29_sinit.o
Object module_29.o
}
Overlay MODULE_30
{
After MODULE_20
Object module_30.o
Object module_30_sinit.o
Object module_30.o
}
Overlay MODULE_31
@@ -717,8 +722,8 @@ Overlay MODULE_31
Overlay MODULE_32
{
After MODULE_20
Object module_32.o
Object module_32_sinit.o
Object module_32.o
}
Overlay MODULE_33
@@ -730,8 +735,8 @@ Overlay MODULE_33
Overlay MODULE_34
{
After MODULE_20
Object module_34.o
Object module_34_sinit.o
Object module_34.o
}
Overlay MODULE_35
@@ -744,8 +749,8 @@ Overlay MODULE_35
Overlay MODULE_36
{
After MODULE_20
Object module_36.o
Object module_36_sinit.o
Object module_36.o
}
Overlay MODULE_37
@@ -765,8 +770,8 @@ Overlay MODULE_38
Overlay MODULE_39
{
After MODULE_20
Object module_39.o
Object module_39_sinit.o
Object module_39.o
}
Overlay MODULE_40
@@ -778,31 +783,31 @@ Overlay MODULE_40
Overlay MODULE_41
{
After MODULE_20
Object module_41.o
Object module_41_sinit.o
Object module_41.o
}
Overlay MODULE_42
{
##Marking Map##
After MODULE_20
Object module_42.o
Object module_42_sinit.o
Object module_42.o
}
Overlay MODULE_43
{
##Berry Searcher##
After MODULE_20
Object module_43.o
Object module_43_sinit.o
Object module_43.o
}
Overlay MODULE_44
{
After MODULE_20
Object module_44.o
Object module_44_sinit.o
Object module_44.o
}
Overlay MODULE_45
@@ -821,8 +826,8 @@ Overlay MODULE_47
{
##Link Searcher##
After MODULE_20
Object module_47.o
Object module_47_sinit.o
Object module_47.o
}
Overlay MODULE_48

View File

@@ -6915,9 +6915,28 @@
.extern MOD8_0222D578
.extern MOD09_022186F0
.extern MOD11_0222D5C0
.extern MOD11_0222D7F8
.extern MOD11_0222D840
.extern MOD11_0222D88C
.extern MOD11_0222D944
.extern MOD11_0222D980
.extern MOD11_0222E520
.extern MOD11_0222F0D4
.extern MOD11_0222F29C
.extern MOD11_0222F4E4
.extern MOD11_0222F93C
.extern MOD11_0222F988
.extern MOD11_0222FABC
.extern MOD11_0222FB04
.extern MOD11_0222FC38
.extern MOD11_0222FC80
.extern MOD11_0222FE58
.extern MOD11_0222FE94
.extern MOD11_0222FEC0
.extern MOD11_0222FF68
.extern MOD11_0222FF74
.extern MOD11_0222FF78
.extern MOD11_0222FF7C
.extern MOD11_0222FF84
.extern MOD11_0222FF88
.extern MOD11_0222FFC8
@@ -6936,24 +6955,40 @@
.extern MOD11_02230188
.extern MOD11_02230214
.extern MOD11_02230218
.extern MOD11_0223021C
.extern MOD11_0223022C
.extern MOD11_02230260
.extern MOD11_02230270
.extern MOD11_02230290
.extern MOD11_02230294
.extern MOD11_022302BC
.extern MOD11_02230370
.extern MOD11_02230C68
.extern MOD11_02230D38
.extern MOD11_02230E44
.extern MOD11_02230E54
.extern MOD11_02230EC8
.extern MOD11_02230FA8
.extern MOD11_02231238
.extern MOD11_022312D0
.extern MOD11_02231338
.extern MOD11_02231344
.extern MOD11_02231350
.extern MOD11_0223135C
.extern MOD11_02231368
.extern MOD11_02231374
.extern MOD11_02231390
.extern MOD11_02231410
.extern MOD11_02231474
.extern MOD11_02231484
.extern MOD11_022314A0
.extern MOD11_022314B0
.extern MOD11_02231504
.extern MOD11_02231534
.extern MOD11_02231678
.extern MOD11_0223D1DC
.extern MOD11_0223D238
.extern MOD11_0223D284
.extern MOD11_02243420
.extern MOD11_02244248
.extern MOD11_02245D38
@@ -6968,12 +7003,29 @@
.extern MOD11_02249D90
.extern MOD11_02249E04
.extern MOD11_02249E58
.extern MOD11_0224B240
.extern MOD11_0224B310
.extern MOD11_0224C12C
.extern MOD11_0224C474
.extern MOD11_0224C54C
.extern MOD11_0224CA64
.extern MOD11_0224CA94
.extern MOD11_0224CB38
.extern MOD11_0224CB54
.extern MOD11_02252DB4
.extern MOD11_0225377C
.extern MOD11_02253A58
.extern MOD11_02253A70
.extern MOD11_02254820
.extern MOD11_022567E0
.extern MOD11_022583D8
.extern MOD11_02258450
.extern MOD11_022584AC
.extern MOD11_022584D4
.extern MOD11_02258658
.extern MOD11_022586BC
.extern MOD11_02258820
.extern MOD11_02258958
.extern MOD11_0225D3EC
.extern MOD11_0225D45C
.extern MOD11_0225D484
@@ -6988,6 +7040,10 @@
.extern MOD11_0225D80C
.extern MOD11_0225D820
.extern MOD11_0225D824
.extern MOD11_0225D9B8
.extern MOD11_0225DA04
.extern MOD11_0225DA40
.extern MOD11_0225DAB8
.extern MOD12_0222D5C0
.extern MOD12_0222D89C
.extern MOD12_0222D9B0

View File

@@ -177,7 +177,6 @@ FSFile; // size = 0x50
void FS_Init(u32 default_dma_no);
BOOL FS_IsAvailable(void);
void FS_InitFile(FSFile * p_file);
static BOOL FSi_FindPath(FSFile * p_dir, const char * path, FSFileID * p_file_id, FSDirPos * p_dir_pos);
int FSi_ReadFileCore(FSFile * p_file, void * dst, s32 len, BOOL async);
BOOL FS_ConvertPathToFileID(FSFileID * p_file_id, const char * path);
BOOL FS_OpenFileDirect(FSFile * p_file, FSArchive * p_arc, u32 image_top, u32 image_bottom, u32 file_index);

View File

@@ -29,9 +29,6 @@ typedef struct
void MI_SendGXCommand(u32 dmaNo, const void *src, u32 commandLength);
void MI_SendGXCommandAsync(u32 dmaNo, const void *src, u32 commandLength, MIDmaCallback callback, void *arg);
static void MIi_FIFOCallback(void);
static void MIi_DMACallback(void *);
void MI_SendGXCommandAsyncFast(u32 dmaNo, const void *src, u32 commandLength, MIDmaCallback callback, void *arg);
static void MIi_DMAFastCallback(void *);
#endif //POKEDIAMOND_MI_DMA_GXCOMMAND_H

View File

@@ -12,14 +12,11 @@ struct OSiAlarmQueue
OSAlarm *tail;
};
static void OSi_SetTimer(OSAlarm *alarm);
void OS_InitAlarm(void);
BOOL OS_IsAlarmAvailable(void);
void OS_CreateAlarm(OSAlarm *alarm);
static void OSi_InsertAlarm(OSAlarm *alarm, OSTick fire);
void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg);
void OS_CancelAlarm(OSAlarm *alarm);
void OSi_AlarmHandler(void *arg);
static void OSi_ArrangeTimer(void);
#endif //POKEDIAMOND_ARM9_OS_ALARM_H

View File

@@ -15,12 +15,7 @@ typedef struct
typedef void (*OSExceptionHandler) (u32, void *);
static void OSi_ExceptionHandler(void);
void OS_InitException(void);
void OSi_ExceptionHandler(void);
static void OSi_GetAndDisplayContext(void);
static void OSi_SetExContext(void);
static void OSi_DisplayExContext(void);
#endif //POKEDIAMOND_OS_EXCEPTION_H

View File

@@ -6,14 +6,8 @@
#include "PXI_fifo.h"
void OS_InitReset(void);
static void OSi_CommonCallback(PXIFifoTag tag, u32 data, BOOL err);
static void OSi_SendToPxi(u16 data);
void OS_ResetSystem(u32 parameter);
static void OSi_DoResetSystem(void);
void OSi_DoBoot(void);
static void OSi_CpuClear32(register u32 data, register void *destp, register u32 size);
static void OSi_ReloadRomData(void);
static void OSi_ReadCardRom32(u32 src, void *dst, s32 len);
static inline u32 OS_GetResetParameter(void)
{

View File

@@ -5,22 +5,12 @@
#include "OS_context.h"
#include "nitro/OS_thread_shared.h"
static s32 OSi_GetUnusedThreadId(void);
static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue);
static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread);
OSMutex *OSi_RemoveMutexLinkFromQueue(OSMutexQueue *queue);
static void OSi_InsertThreadToList(OSThread *thread);
static void OSi_RemoveThreadFromList(OSThread *thread);
void OS_InitThread(void);
BOOL OS_IsThreadAvailable(void);
void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio);
void OS_ExitThread(void);
static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg);
static void OSi_ExitThread(void *arg);
static void OSi_ExitThread_Destroy(void);
void OS_DestroyThread(OSThread *thread);
static void OSi_CancelThreadAlarmForSleep(OSThread *thread);
void OS_JoinThread(OSThread *thread);
BOOL OS_IsThreadTerminated(const OSThread *thread);
void OS_SleepThread(OSThreadQueue *queue);
@@ -32,9 +22,7 @@ void OS_YieldThread(void);
BOOL OS_SetThreadPriority(OSThread *thread, u32 prio);
u32 OS_GetThreadPriority(const OSThread *thread);
void OS_Sleep(u32 msec);
static void OSi_SleepAlarmCallback(void *arg);
OSSwitchThreadCallback OS_SetSwitchThreadCallback(OSSwitchThreadCallback callback);
static void OSi_IdleThreadProc(void *);
u32 OS_DisableScheduler(void);
u32 OS_EnableScheduler(void);
void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor);

View File

@@ -9,7 +9,6 @@
void OS_InitTick(void);
BOOL OS_IsTickAvailable(void);
static void OSi_CountUpTick(void);
OSTick OS_GetTick(void);
u16 OS_GetTickLo(void);

View File

@@ -40,6 +40,8 @@ ARM_FUNC FSResult FSi_TranslateCommand(FSFile *p_file, FSCommandType command)
ret = FS_RESULT_PROC_DEFAULT;
p_arc->proc_flag &= ~bit;
break;
default:
break;
}
}
else

View File

@@ -55,6 +55,7 @@ ARM_FUNC FSResult FSi_ReadTable(FSiSyncReadParam * p, void * dst, u32 len)
(void)OS_RestoreInterrupts(bak_psr);
ret = p_arc->list.next->error;
}
default:
break;
}
p->pos += len;

View File

@@ -7,6 +7,8 @@
extern FSDirPos current_dir_pos;
BOOL is_init = FALSE;
static BOOL FSi_FindPath(FSFile * p_dir, const char * path, FSFileID * p_file_id, FSDirPos * p_dir_pos);
ARM_FUNC void FS_Init(u32 default_dma_no)
{
if (!is_init)

View File

@@ -103,7 +103,6 @@ ARM_FUNC asm void MTX_Copy44To43_(struct Mtx44 *src, struct Mtx43 *dst){
bx lr
}
THUMB_FUNC asm void MTX_RotX44_(struct Mtx44 *mtx, fx32 sinphi, fx32 cosphi){
str r2, [r0, #0x14]
str r2, [r0, #0x28]

View File

@@ -83,7 +83,7 @@ ARM_FUNC void GX_DispOn(){
sIsDispOn = 0x1;
if (sDispMode)
{
reg_GX_DISPCNT = reg_GX_DISPCNT & ~0x30000 | (sDispMode << 0x10);
reg_GX_DISPCNT = (reg_GX_DISPCNT & ~0x30000) | (sDispMode << 0x10);
}
else
{
@@ -102,7 +102,7 @@ ARM_FUNC void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){
}
ARM_FUNC void GXS_SetGraphicsMode(u32 mode){
reg_GXS_DB_DISPCNT = reg_GXS_DB_DISPCNT & ~0x7 | mode;
reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & ~0x7) | mode;
}
ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){

View File

@@ -50,7 +50,7 @@ ARM_FUNC void G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){
{
if ((temp & 0xC0) == 0x80)
{
ptr[0] = (u16)(temp & ~0xC0 | 0xC0);
ptr[0] = (u16)((temp & ~0xC0) | 0xC0);
}
ptr[2] = (u16)(-brightness);
}
@@ -58,7 +58,7 @@ ARM_FUNC void G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){
{
if ((temp & 0xC0) == 0xC0)
{
ptr[0] = (u16)(temp & ~0xC0 | 0x80);
ptr[0] = (u16)((temp & ~0xC0) | 0x80);
}
ptr[2] = (u16)brightness;
}

View File

@@ -8,42 +8,42 @@ void MI_Copy36B(void *src, void *dst);
ARM_FUNC asm void GXi_NopClearFifo128_(void *reg){
mov r1, #0x0
mov r2, #0x0
mov r3, #0x0
mov r12, #0x0
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
bx lr
mov r2, #0x0
mov r3, #0x0
mov r12, #0x0
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
stmia r0, {r1-r3,r12}
bx lr
}
ARM_FUNC void G3X_Init(){
@@ -56,10 +56,10 @@ ARM_FUNC void G3X_Init(){
reg_G3X_DISP3DCNT |= 0x2000;
reg_G3X_DISP3DCNT |= 0x1000;
reg_G3X_DISP3DCNT &= ~0x3002;
reg_G3X_DISP3DCNT = (u16)(reg_G3X_DISP3DCNT & ~0x3000 | 0x10);
reg_G3X_DISP3DCNT = (u16)((reg_G3X_DISP3DCNT & ~0x3000) | 0x10);
reg_G3X_DISP3DCNT = (u16)(reg_G3X_DISP3DCNT & (u16)~0x3004);
reg_G3X_GXSTAT |= 0x8000;
reg_G3X_GXSTAT = reg_G3X_GXSTAT & ~0xC0000000 | 0x80000000;
reg_G3X_GXSTAT = (reg_G3X_GXSTAT & ~0xC0000000) | 0x80000000;
G3X_InitMtxStack();
reg_G3X_CLEAR_COLOR = 0x0;
reg_G3X_CLEAR_DEPTH = 0x7FFF;

View File

@@ -6,6 +6,10 @@
static MIiGXDmaParams MIi_GXDmaParams = { FALSE };
static void MIi_FIFOCallback(void);
static void MIi_DMACallback(void *arg);
static void MIi_DMAFastCallback(void *arg);
#pragma section ITCM begin
ARM_FUNC void MI_SendGXCommand(u32 dmaNo, const void *src, u32 commandLength)
{
@@ -104,7 +108,7 @@ ARM_FUNC static void MIi_FIFOCallback(void)
}
}
ARM_FUNC static void MIi_DMACallback(void *)
ARM_FUNC static void MIi_DMACallback(void *arg)
{
(void)OS_DisableIrqMask(OS_IE_GXFIFO);
@@ -141,7 +145,7 @@ ARM_FUNC void MI_SendGXCommandAsyncFast(u32 dmaNo, const void *src, u32 commandL
MIi_DmaSetParams(dmaNo, (u32)src, (u32)REG_GXFIFO_ADDR, MI_CNT_GXCOPY_IF(commandLength));
}
ARM_FUNC static void MIi_DMAFastCallback(void *)
ARM_FUNC static void MIi_DMAFastCallback(void *arg)
{
MIi_GXDmaParams.isBusy = FALSE;

View File

@@ -10,6 +10,10 @@ static struct OSiAlarmQueue OSi_AlarmQueue;
static u16 OSi_UseAlarm = FALSE;
static void OSi_SetTimer(OSAlarm *alarm);
static void OSi_InsertAlarm(OSAlarm *alarm, OSTick fire);
static void OSi_ArrangeTimer(void);
ARM_FUNC static void OSi_SetTimer(OSAlarm *alarm)
{
OSTick tick = OS_GetTick();

View File

@@ -1,6 +1,3 @@
//
// Created by red031000 on 2020-04-27.
//
#include "function_target.h"
#include "consts.h"
#include "OS_arena.h"

View File

@@ -11,6 +11,10 @@ static void *OSi_DebuggerHandler = NULL;
#define HW_EXCEP_VECTOR_BUF_FOR_DEBUGGER 0x027ffd9c
static void OSi_GetAndDisplayContext(void);
static void OSi_SetExContext(void);
static void OSi_DisplayExContext(void);
ARM_FUNC void OS_InitException(void)
{
if (0x2600000 <= *(u32 *)HW_EXCEP_VECTOR_BUF_FOR_DEBUGGER

View File

@@ -49,7 +49,7 @@ _01FF8070:
str r3, [ip, #0x80]
mov ip, r0
cmp ip, #0x0
bne _01FF8070
bne _01FF8070
ldr ip, =OSi_IrqThreadQueue
str r3, [ip]
str r3, [ip, #0x4]

View File

@@ -18,6 +18,13 @@ extern u32 PXI_SendWordByFifo(u32 param1, u32 data, u32 param2);
extern void CARD_LockRom(u16 lockId);
extern void MI_StopDma(u32 dma);
static void OSi_CommonCallback(PXIFifoTag tag, u32 data, BOOL err);
static void OSi_SendToPxi(u16 data);
static void OSi_DoResetSystem(void);
static void OSi_CpuClear32(register u32 data, register void *destp, register u32 size);
static void OSi_ReloadRomData(void);
static void OSi_ReadCardRom32(u32 src, void *dst, s32 len);
ARM_FUNC void OS_InitReset(void) {
if (OSi_IsInitReset) {
return;

View File

@@ -1,12 +1,9 @@
//
// Created by mart on 4/23/20.
//
#include "OS_system.h"
#include "OS_irqHandler.h"
#include "syscall.h"
ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void) {
ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void)
{
mrs r0, cpsr
bic r1, r0, #HW_PSR_DISABLE_IRQ
msr cpsr_c, r1
@@ -14,24 +11,27 @@ ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void) {
bx lr
}
ARM_FUNC asm OSIntrMode OS_DisableInterrupts(void) {
mrs r0, cpsr
orr r1, r0, #HW_PSR_DISABLE_IRQ
msr cpsr_c, r1
and r0, r0, #HW_PSR_DISABLE_IRQ
bx lr
ARM_FUNC asm OSIntrMode OS_DisableInterrupts(void)
{
mrs r0, cpsr
orr r1, r0, #HW_PSR_DISABLE_IRQ
msr cpsr_c, r1
and r0, r0, #HW_PSR_DISABLE_IRQ
bx lr
}
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state) {
mrs r1, cpsr
bic r2, r1, #HW_PSR_DISABLE_IRQ
orr r2, r2, r0
msr cpsr_c, r2
and r0, r1, #HW_PSR_DISABLE_IRQ
bx lr
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state)
{
mrs r1, cpsr
bic r2, r1, #HW_PSR_DISABLE_IRQ
orr r2, r2, r0
msr cpsr_c, r2
and r0, r1, #HW_PSR_DISABLE_IRQ
bx lr
}
ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void) {
ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void)
{
mrs r0, cpsr
orr r1, r0, #HW_PSR_DISABLE_IRQ_FIQ
msr cpsr_c, r1
@@ -39,7 +39,8 @@ ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void) {
bx lr
}
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) {
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state)
{
mrs r1, cpsr
bic r2, r1, #HW_PSR_DISABLE_IRQ_FIQ
orr r2, r2, r0
@@ -48,25 +49,29 @@ ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) {
bx lr
}
ARM_FUNC asm OSIntrMode OS_GetCpsrIrq(void) {
ARM_FUNC asm OSIntrMode OS_GetCpsrIrq(void)
{
mrs r0, cpsr
and r0, r0, #HW_PSR_DISABLE_IRQ
bx lr
}
ARM_FUNC asm OSProcMode OS_GetProcMode(void) {
ARM_FUNC asm OSProcMode OS_GetProcMode(void)
{
mrs r0, cpsr
and r0, r0, #HW_PSR_CPU_MODE_MASK
bx lr
}
ARM_FUNC asm void OS_SpinWait(u32 cycles) {
ARM_FUNC asm void OS_SpinWait(u32 cycles)
{
subs r0, r0, #0x4
bhs OS_SpinWait
bx lr
}
ARM_FUNC void OS_WaitVBlankIntr(void) {
ARM_FUNC void OS_WaitVBlankIntr(void)
{
SVC_WaitByLoop(0x1);
OS_WaitIrq(TRUE, OS_IE_V_BLANK);
}

View File

@@ -2,14 +2,17 @@
#include "function_target.h"
#include "OS_system.h"
ARM_FUNC void OS_Terminate(void) {
while (TRUE) {
ARM_FUNC void OS_Terminate(void)
{
while (TRUE)
{
(void)OS_DisableInterrupts();
OS_Halt();
}
}
ARM_FUNC asm void OS_Halt(void) {
ARM_FUNC asm void OS_Halt(void)
{
mov r0, #0x0
mcr p15, 0x0, r0, c7, c0, 0x4 //Wait For Interrupt (Halt)
bx lr

View File

@@ -32,6 +32,19 @@ OSThread OSi_IdleThread;
u32 OSi_IdleThreadStack[50];
static s32 OSi_GetUnusedThreadId(void);
static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue);
static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread);
static void OSi_InsertThreadToList(OSThread *thread);
static void OSi_RemoveThreadFromList(OSThread *thread);
static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg);
static void OSi_ExitThread(void *arg);
static void OSi_ExitThread_Destroy(void);
static void OSi_CancelThreadAlarmForSleep(OSThread *thread);
static void OSi_SleepAlarmCallback(void *arg);
static void OSi_IdleThreadProc(void *);
ARM_FUNC static s32 OSi_GetUnusedThreadId(void)
{
return ++OSi_ThreadIdCount;

View File

@@ -8,6 +8,8 @@ static u16 OSi_UseTick = FALSE;
vu64 OSi_TickCounter;
BOOL OSi_NeedResetTimer = FALSE;
static void OSi_CountUpTick(void);
ARM_FUNC void OS_InitTick(void)
{
if (OSi_UseTick)

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,17 @@
#define NitroStaticInit MOD11_0222F284
#include "global.h"
extern void MOD11_0222F284(void);
#include "poke_overlay.h"
#include "FS_overlay.h"
extern u32 FUN_02033590(void);
FS_EXTERN_OVERLAY(MODULE_16);
THUMB_FUNC static void MOD11_0222F284(void)
{
if (!FUN_02033590())
{
HandleLoadOverlay(FS_OVERLAY_ID(MODULE_16), 2);
}
}
#define NitroStaticInit MOD11_0222F284
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD21_02254840
MOD21_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD21_02254854
ldr r1, _02254850 ; =MOD21_0225496C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD21_02254854
_02254850: .word MOD21_0225496C
thumb_func_end MOD21_02254840
thumb_func_start MOD21_02254854
MOD21_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD21_02254840
#include "global.h"
extern void MOD21_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD21_02254854();
extern void MOD21_0225496C();
THUMB_FUNC static void MOD21_02254840(void)
{
Poketch_InitApp(MOD21_02254854, MOD21_0225496C);
}
#define NitroStaticInit MOD21_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD22_02254840
MOD22_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD22_02254854
ldr r1, _02254850 ; =MOD22_022549D8
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD22_02254854
_02254850: .word MOD22_022549D8
thumb_func_end MOD22_02254840
thumb_func_start MOD22_02254854
MOD22_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -1885,6 +1873,3 @@ MOD22_022556A0: ; 0x022556A0
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x80, 0x02, 0x00
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00
.byte 0x0A, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00
.section .sinit
.word MOD22_02254840

View File

@@ -0,0 +1,13 @@
#include "global.h"
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD22_02254854();
extern void MOD22_022549D8();
THUMB_FUNC static void MOD22_02254840(void)
{
Poketch_InitApp(MOD22_02254854, MOD22_022549D8);
}
#define NitroStaticInit MOD22_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD23_02254840
MOD23_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD23_02254854
ldr r1, _02254850 ; =MOD23_022549A4
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD23_02254854
_02254850: .word MOD23_022549A4
thumb_func_end MOD23_02254840
thumb_func_start MOD23_02254854
MOD23_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD23_02254840
#include "global.h"
extern void MOD23_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD23_02254854();
extern void MOD23_022549A4();
THUMB_FUNC static void MOD23_02254840(void)
{
Poketch_InitApp(MOD23_02254854, MOD23_022549A4);
}
#define NitroStaticInit MOD23_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD24_02254840
MOD24_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD24_02254854
ldr r1, _02254850 ; =MOD24_02254990
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD24_02254854
_02254850: .word MOD24_02254990
thumb_func_end MOD24_02254840
thumb_func_start MOD24_02254854
MOD24_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -1219,6 +1207,3 @@ MOD24_0225516C: ; 0x0225516C
.word 0x04, MOD24_02255038, 0x00
.word 0x05, MOD24_02255050, 0x00
.word 0x00, 0x00000000, 0x00
.section .sinit
.word MOD24_02254840

View File

@@ -0,0 +1,13 @@
#include "global.h"
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD24_02254854();
extern void MOD24_02254990();
THUMB_FUNC static void MOD24_02254840(void)
{
Poketch_InitApp(MOD24_02254854, MOD24_02254990);
}
#define NitroStaticInit MOD24_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD25_02254840
MOD25_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD25_02254854
ldr r1, _02254850 ; =MOD25_0225496C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD25_02254854
_02254850: .word MOD25_0225496C
thumb_func_end MOD25_02254840
thumb_func_start MOD25_02254854
MOD25_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -686,6 +674,3 @@ MOD25_02254D44: ; 0x02254D44
.word 0x02, MOD25_02254BE8, 0x00
.word 0x03, MOD25_02254C14, 0x00
.word 0x00, 0x00000000, 0x00
.section .sinit
.word MOD25_02254840

View File

@@ -0,0 +1,13 @@
#include "global.h"
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD25_02254854();
extern void MOD25_0225496C();
THUMB_FUNC static void MOD25_02254840(void)
{
Poketch_InitApp(MOD25_02254854, MOD25_0225496C);
}
#define NitroStaticInit MOD25_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD26_02254840
MOD26_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD26_02254854
ldr r1, _02254850 ; =MOD26_02254A84
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD26_02254854
_02254850: .word MOD26_02254A84
thumb_func_end MOD26_02254840
thumb_func_start MOD26_02254854
MOD26_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -843,6 +831,3 @@ MOD26_02254FF0: ; 0x02254FF0
.word 0x01, MOD26_02254D6C, 0x00
.word 0x02, MOD26_02254D90, 0x00
.word 0x00, 0x00000000, 0x00
.section .sinit
.word MOD26_02254840

View File

@@ -0,0 +1,13 @@
#include "global.h"
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD26_02254854();
extern void MOD26_02254A84();
THUMB_FUNC static void MOD26_02254840(void)
{
Poketch_InitApp(MOD26_02254854, MOD26_02254A84);
}
#define NitroStaticInit MOD26_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD27_02254840
MOD27_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD27_02254854
ldr r1, _02254850 ; =MOD27_0225492C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD27_02254854
_02254850: .word MOD27_0225492C
thumb_func_end MOD27_02254840
thumb_func_start MOD27_02254854
MOD27_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD27_02254840
#include "global.h"
extern void MOD27_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD27_02254854();
extern void MOD27_0225492C();
THUMB_FUNC static void MOD27_02254840(void)
{
Poketch_InitApp(MOD27_02254854, MOD27_0225492C);
}
#define NitroStaticInit MOD27_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD28_02254840
MOD28_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD28_02254854
ldr r1, _02254850 ; =MOD28_022549F4
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD28_02254854
_02254850: .word MOD28_022549F4
thumb_func_end MOD28_02254840
thumb_func_start MOD28_02254854
MOD28_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD28_02254840
#include "global.h"
extern void MOD28_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD28_02254854();
extern void MOD28_022549F4();
THUMB_FUNC static void MOD28_02254840(void)
{
Poketch_InitApp(MOD28_02254854, MOD28_022549F4);
}
#define NitroStaticInit MOD28_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD29_02254840
MOD29_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD29_02254854
ldr r1, _02254850 ; =MOD29_02254914
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD29_02254854
_02254850: .word MOD29_02254914
thumb_func_end MOD29_02254840
thumb_func_start MOD29_02254854
MOD29_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD29_02254840
#include "global.h"
extern void MOD29_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD29_02254854();
extern void MOD29_02254914();
THUMB_FUNC static void MOD29_02254840(void)
{
Poketch_InitApp(MOD29_02254854, MOD29_02254914);
}
#define NitroStaticInit MOD29_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD30_02254840
MOD30_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD30_02254854
ldr r1, _02254850 ; =MOD30_0225496C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD30_02254854
_02254850: .word MOD30_0225496C
thumb_func_end MOD30_02254840
thumb_func_start MOD30_02254854
MOD30_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD30_02254840
#include "global.h"
extern void MOD30_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD30_02254854();
extern void MOD30_0225496C();
THUMB_FUNC static void MOD30_02254840(void)
{
Poketch_InitApp(MOD30_02254854, MOD30_0225496C);
}
#define NitroStaticInit MOD30_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD32_02254840
MOD32_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD32_02254854
ldr r1, _02254850 ; =MOD32_0225495C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD32_02254854
_02254850: .word MOD32_0225495C
thumb_func_end MOD32_02254840
thumb_func_start MOD32_02254854
MOD32_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD32_02254840
#include "global.h"
extern void MOD32_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD32_02254854();
extern void MOD32_0225495C();
THUMB_FUNC static void MOD32_02254840(void)
{
Poketch_InitApp(MOD32_02254854, MOD32_0225495C);
}
#define NitroStaticInit MOD32_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD34_02254840
MOD34_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD34_02254854
ldr r1, _02254850 ; =MOD34_02254948
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD34_02254854
_02254850: .word MOD34_02254948
thumb_func_end MOD34_02254840
thumb_func_start MOD34_02254854
MOD34_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD34_02254840
#include "global.h"
extern void MOD34_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD34_02254854();
extern void MOD34_02254948();
THUMB_FUNC static void MOD34_02254840(void)
{
Poketch_InitApp(MOD34_02254854, MOD34_02254948);
}
#define NitroStaticInit MOD34_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD36_02254840
MOD36_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD36_02254854
ldr r1, _02254850 ; =MOD36_02254990
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD36_02254854
_02254850: .word MOD36_02254990
thumb_func_end MOD36_02254840
thumb_func_start MOD36_02254854
MOD36_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD36_02254840
#include "global.h"
extern void MOD36_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD36_02254854();
extern void MOD36_02254990();
THUMB_FUNC static void MOD36_02254840(void)
{
Poketch_InitApp(MOD36_02254854, MOD36_02254990);
}
#define NitroStaticInit MOD36_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD39_02254840
MOD39_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD39_02254854
ldr r1, _02254850 ; =MOD39_022549D4
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD39_02254854
_02254850: .word MOD39_022549D4
thumb_func_end MOD39_02254840
thumb_func_start MOD39_02254854
MOD39_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD39_02254840
#include "global.h"
extern void MOD39_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD39_02254854();
extern void MOD39_022549D4();
THUMB_FUNC static void MOD39_02254840(void)
{
Poketch_InitApp(MOD39_02254854, MOD39_022549D4);
}
#define NitroStaticInit MOD39_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD41_02254840
MOD41_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD41_02254854
ldr r1, _02254850 ; =MOD41_02254AD8
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD41_02254854
_02254850: .word MOD41_02254AD8
thumb_func_end MOD41_02254840
thumb_func_start MOD41_02254854
MOD41_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD41_02254840
#include "global.h"
extern void MOD41_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD41_02254854();
extern void MOD41_02254AD8();
THUMB_FUNC static void MOD41_02254840(void)
{
Poketch_InitApp(MOD41_02254854, MOD41_02254AD8);
}
#define NitroStaticInit MOD41_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD42_02254840
MOD42_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD42_02254854
ldr r1, _02254850 ; =MOD42_02254A38
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD42_02254854
_02254850: .word MOD42_02254A38
thumb_func_end MOD42_02254840
thumb_func_start MOD42_02254854
MOD42_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD42_02254840
#include "global.h"
extern void MOD42_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD42_02254854();
extern void MOD42_02254A38();
THUMB_FUNC static void MOD42_02254840(void)
{
Poketch_InitApp(MOD42_02254854, MOD42_02254A38);
}
#define NitroStaticInit MOD42_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD43_02254840
MOD43_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD43_02254854
ldr r1, _02254850 ; =MOD43_02254970
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD43_02254854
_02254850: .word MOD43_02254970
thumb_func_end MOD43_02254840
thumb_func_start MOD43_02254854
MOD43_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD43_02254840
#include "global.h"
extern void MOD43_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD43_02254854();
extern void MOD43_02254970();
THUMB_FUNC static void MOD43_02254840(void)
{
Poketch_InitApp(MOD43_02254854, MOD43_02254970);
}
#define NitroStaticInit MOD43_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD44_02254840
MOD44_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD44_02254854
ldr r1, _02254850 ; =MOD44_02254920
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD44_02254854
_02254850: .word MOD44_02254920
thumb_func_end MOD44_02254840
thumb_func_start MOD44_02254854
MOD44_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD44_02254840
#include "global.h"
extern void MOD44_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD44_02254854();
extern void MOD44_02254920();
THUMB_FUNC static void MOD44_02254840(void)
{
Poketch_InitApp(MOD44_02254854, MOD44_02254920);
}
#define NitroStaticInit MOD44_02254840
#include "sinit.h"

View File

@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD47_02254840
MOD47_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD47_02254854
ldr r1, _02254850 ; =MOD47_0225491C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD47_02254854
_02254850: .word MOD47_0225491C
thumb_func_end MOD47_02254840
thumb_func_start MOD47_02254854
MOD47_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@@ -1,4 +1,13 @@
#define NitroStaticInit MOD47_02254840
#include "global.h"
extern void MOD47_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD47_02254854();
extern void MOD47_0225491C();
THUMB_FUNC static void MOD47_02254840(void)
{
Poketch_InitApp(MOD47_02254854, MOD47_0225491C);
}
#define NitroStaticInit MOD47_02254840
#include "sinit.h"

View File

@@ -8,4 +8,4 @@
#define ENUMS_ALWAYS_INT_OFF _Pragma("enumsalwaysint off")
#define ENUMS_ALWAYS_INT_RESET _Pragma("enumsalwaysint reset")
#endif //GUARD_FUNCTION_TARGET_H
#endif //GUARD_FUNCTION_TARGET_H