mirror of
https://github.com/pret/pokediamond.git
synced 2026-10-01 12:56:48 -05:00
Merge branch 'master' into master
This commit is contained in:
@@ -131,7 +131,7 @@ SECTIONS {
|
||||
unk_02002C14.o (.text)
|
||||
unk_02002F08.o (.text)
|
||||
unk_020030E8.o (.text)
|
||||
unk_02003B98.o (.text)
|
||||
sound.o (.text)
|
||||
unk_020040F4.o (.text)
|
||||
unk_020051F4.o (.text)
|
||||
unk_02005CFC.o (.text)
|
||||
@@ -772,7 +772,7 @@ SECTIONS {
|
||||
SDK_STATIC_TEXT_END = .;
|
||||
|
||||
SDK_STATIC_DATA_START = .;
|
||||
unk_02003B98.o (.data)
|
||||
sound.o (.data)
|
||||
filesystem.o (.data)
|
||||
unk_02006D98.o (.data)
|
||||
unk_0200E850.o (.data)
|
||||
@@ -846,7 +846,7 @@ SECTIONS {
|
||||
main.o (.bss)
|
||||
unk_020023C0.o (.bss)
|
||||
unk_02002C14.o (.bss)
|
||||
unk_02003B98.o (.bss)
|
||||
sound.o (.bss)
|
||||
unk_020040F4.o (.bss)
|
||||
poke_overlay.o (.bss)
|
||||
unk_02009EAC.o (.bss)
|
||||
|
||||
@@ -1,780 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.section .data
|
||||
; 0x02104780
|
||||
.global UNK_02104780
|
||||
UNK_02104780: ; 0x02104780
|
||||
.asciz "data/sound/sound_data.sdat"
|
||||
|
||||
.section .bss
|
||||
.global UNK_02107070
|
||||
UNK_02107070: ; 0x02107070
|
||||
.space 0x8
|
||||
|
||||
.global sSoundDataBuffer
|
||||
sSoundDataBuffer: ; 0x02107078
|
||||
; 00: SDATHeader
|
||||
; - 00: char magic[4]
|
||||
; - 04: u16 byte_order
|
||||
; - 06: u16 version
|
||||
; - 08: u32 filesize
|
||||
; - 0C: u16 header size
|
||||
; - 0E: u16 section count
|
||||
; - 10: u32 symb_offset
|
||||
; - 14: u32 symb_size
|
||||
; - 18: u32 info_offset
|
||||
; - 1C: u32 info_size
|
||||
; - 20: u32 fat_offset
|
||||
; - 24: u32 fat_size
|
||||
; - 28: u32 file_offset
|
||||
; - 2c: u32 file_size
|
||||
; 30: u32
|
||||
; 34: FSFile
|
||||
; 7C: FSFileID
|
||||
; 84: u32
|
||||
; 88: u32
|
||||
; 8C: u32
|
||||
; 90: u32
|
||||
; 94: u8[0xBBB6C]
|
||||
; BBC00: u8[0x94]
|
||||
; BBC94: u8[0x24]
|
||||
; BBCB8: u32
|
||||
; BBCBC: u32
|
||||
; BBCC0: u8[0x20]
|
||||
; BBCE0: u8[0x1000]
|
||||
; BCCE0: u8[0x1C]
|
||||
; BCCFC: u16
|
||||
; BCCFE: u16
|
||||
; BCD00: u32
|
||||
; BCD10: u8
|
||||
; BCD11: u8
|
||||
; BCD12: u16
|
||||
; BCD14: u8
|
||||
; BCD15: u8
|
||||
; BCD16: u8
|
||||
; BCD17: u8
|
||||
; BCD18: u8
|
||||
; BCD19: u8
|
||||
; BCD1A: u8
|
||||
; BCD1B: u8
|
||||
; BCD1C: u32
|
||||
; BCD20: u32
|
||||
; BCD24: u32
|
||||
; BCD28: u32
|
||||
; BCD2C: u32
|
||||
; BCD30: u32
|
||||
; BCD34: u32
|
||||
; BCD38: u32
|
||||
; BCD3C: u32
|
||||
; BCD40: u64
|
||||
; BCD48: u32
|
||||
; BCD4C: u32
|
||||
; BCD50: u32
|
||||
; BCD54: u32
|
||||
; BCD58: u32
|
||||
; BCD5C: u32
|
||||
.space 0xbcd60
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FUN_02003B98
|
||||
FUN_02003B98: ; 0x02003B98
|
||||
push {r4-r6, lr}
|
||||
add r5, r0, #0x0
|
||||
add r6, r1, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r4, r0, #0x0
|
||||
bl FUN_020C01D0
|
||||
bl FUN_020040C8
|
||||
add r0, r4, #0x0
|
||||
bl FUN_02004064
|
||||
add r0, r4, #0x0
|
||||
ldr r1, _02003C00 ; =0x000BBC00
|
||||
add r0, #0x94
|
||||
bl FUN_020C2A94
|
||||
add r1, r4, #0x0
|
||||
add r1, #0x90
|
||||
str r0, [r1, #0x0]
|
||||
add r2, r4, #0x0
|
||||
add r2, #0x90
|
||||
ldr r1, _02003C04 ; =UNK_02104780
|
||||
ldr r2, [r2, #0x0]
|
||||
add r0, r4, #0x0
|
||||
mov r3, #0x0
|
||||
bl FUN_020C26F8
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x90
|
||||
ldr r0, [r0, #0x0]
|
||||
bl FUN_020C39CC
|
||||
add r0, r4, #0x0
|
||||
bl FUN_02004088
|
||||
add r0, r4, #0x0
|
||||
bl FUN_020040A4
|
||||
ldr r0, _02003C08 ; =UNK_02107070
|
||||
mov r1, #0x0
|
||||
str r1, [r0, #0x4]
|
||||
ldr r0, _02003C0C ; =0x000BCD4C
|
||||
str r5, [r4, r0]
|
||||
ldrh r0, [r6, #0x0]
|
||||
lsl r0, r0, #0x1a
|
||||
lsr r0, r0, #0x1e
|
||||
bl FUN_02004D60
|
||||
pop {r4-r6, pc}
|
||||
nop
|
||||
_02003C00: .word 0x000BBC00
|
||||
_02003C04: .word UNK_02104780
|
||||
_02003C08: .word UNK_02107070
|
||||
_02003C0C: .word 0x000BCD4C
|
||||
|
||||
thumb_func_start FUN_02003C10
|
||||
FUN_02003C10: ; 0x02003C10
|
||||
push {r4, lr}
|
||||
bl GetSoundDataPointer
|
||||
add r4, r0, #0x0
|
||||
bl FUN_02003D04
|
||||
cmp r0, #0x0
|
||||
bne _02003C30
|
||||
ldr r0, _02003C3C ; =0x000BCD00
|
||||
ldr r1, [r4, r0]
|
||||
cmp r1, #0x0
|
||||
ble _02003C2C
|
||||
sub r1, r1, #0x1
|
||||
str r1, [r4, r0]
|
||||
_02003C2C:
|
||||
bl FUN_02003C40
|
||||
_02003C30:
|
||||
bl FUN_02005CFC
|
||||
bl FUN_020C01A0
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_02003C3C: .word 0x000BCD00
|
||||
|
||||
thumb_func_start FUN_02003C40
|
||||
FUN_02003C40: ; 0x02003C40
|
||||
push {r4, lr}
|
||||
bl GetSoundDataPointer
|
||||
add r4, r0, #0x0
|
||||
ldr r0, _02003CDC ; =UNK_02107070
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, #0x6
|
||||
bhi _02003CD8
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #0x6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_02003C5C: ; jump table (using 16-bit offset)
|
||||
.short _02003CD8 - _02003C5C - 2; case 0
|
||||
.short _02003C6A - _02003C5C - 2; case 1
|
||||
.short _02003CD8 - _02003C5C - 2; case 2
|
||||
.short _02003C72 - _02003C5C - 2; case 3
|
||||
.short _02003C82 - _02003C5C - 2; case 4
|
||||
.short _02003C92 - _02003C5C - 2; case 5
|
||||
.short _02003CB0 - _02003C5C - 2; case 6
|
||||
_02003C6A:
|
||||
mov r0, #0x2
|
||||
bl FUN_02003CE8
|
||||
pop {r4, pc}
|
||||
_02003C72:
|
||||
bl FUN_02005404
|
||||
cmp r0, #0x0
|
||||
bne _02003CD8
|
||||
mov r0, #0x2
|
||||
bl FUN_02003CE8
|
||||
pop {r4, pc}
|
||||
_02003C82:
|
||||
bl FUN_02005404
|
||||
cmp r0, #0x0
|
||||
bne _02003CD8
|
||||
mov r0, #0x2
|
||||
bl FUN_02003CE8
|
||||
pop {r4, pc}
|
||||
_02003C92:
|
||||
bl FUN_02005404
|
||||
cmp r0, #0x0
|
||||
bne _02003CD8
|
||||
bl FUN_02004D94
|
||||
cmp r0, #0x0
|
||||
bne _02003CD8
|
||||
bl FUN_020040DC
|
||||
ldr r0, _02003CE0 ; =0x000BCD0E
|
||||
ldrh r0, [r4, r0]
|
||||
bl FUN_0200521C
|
||||
pop {r4, pc}
|
||||
_02003CB0:
|
||||
bl FUN_02005404
|
||||
cmp r0, #0x0
|
||||
bne _02003CD8
|
||||
bl FUN_02004D94
|
||||
cmp r0, #0x0
|
||||
bne _02003CD8
|
||||
bl FUN_020040DC
|
||||
ldr r0, _02003CE0 ; =0x000BCD0E
|
||||
ldrh r0, [r4, r0]
|
||||
bl FUN_0200521C
|
||||
ldr r1, _02003CE4 ; =0x000BCD08
|
||||
mov r0, #0x7f
|
||||
ldr r1, [r4, r1]
|
||||
mov r2, #0x0
|
||||
bl FUN_0200538C
|
||||
_02003CD8:
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_02003CDC: .word UNK_02107070
|
||||
_02003CE0: .word 0x000BCD0E
|
||||
_02003CE4: .word 0x000BCD08
|
||||
|
||||
thumb_func_start FUN_02003CE8
|
||||
FUN_02003CE8: ; 0x02003CE8
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
ldr r1, _02003CFC ; =0x000BCCFC
|
||||
mov r2, #0x0
|
||||
strh r2, [r0, r1]
|
||||
ldr r0, _02003D00 ; =UNK_02107070
|
||||
str r4, [r0, #0x0]
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_02003CFC: .word 0x000BCCFC
|
||||
_02003D00: .word UNK_02107070
|
||||
|
||||
thumb_func_start FUN_02003D04
|
||||
FUN_02003D04: ; 0x02003D04
|
||||
push {r4, lr}
|
||||
bl GetSoundDataPointer
|
||||
add r4, r0, #0x0
|
||||
mov r0, #0x2
|
||||
bl FUN_020048BC
|
||||
cmp r0, #0x0
|
||||
beq _02003D1A
|
||||
mov r0, #0x1
|
||||
pop {r4, pc}
|
||||
_02003D1A:
|
||||
ldr r0, _02003D2C ; =0x000BCD12
|
||||
ldrh r0, [r4, r0]
|
||||
cmp r0, #0x0
|
||||
beq _02003D26
|
||||
mov r0, #0x1
|
||||
pop {r4, pc}
|
||||
_02003D26:
|
||||
mov r0, #0x0
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_02003D2C: .word 0x000BCD12
|
||||
|
||||
thumb_func_start GetSoundDataPointer
|
||||
GetSoundDataPointer: ; 0x02003D30
|
||||
ldr r0, _02003D34 ; =sSoundDataBuffer
|
||||
bx lr
|
||||
.balign 4
|
||||
_02003D34: .word sSoundDataBuffer
|
||||
|
||||
thumb_func_start FUN_02003D38
|
||||
FUN_02003D38: ; 0x02003D38
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
cmp r4, #0x27
|
||||
bls _02003D46
|
||||
b _02003E92
|
||||
_02003D46:
|
||||
add r1, r4, r4
|
||||
add r1, pc
|
||||
ldrh r1, [r1, #0x6]
|
||||
lsl r1, r1, #0x10
|
||||
asr r1, r1, #0x10
|
||||
add pc, r1
|
||||
_02003D52: ; jump table (using 16-bit offset)
|
||||
.short _02003DA8 - _02003D52 - 2; case 0
|
||||
.short _02003DAE - _02003D52 - 2; case 1
|
||||
.short _02003DB4 - _02003D52 - 2; case 2
|
||||
.short _02003DBA - _02003D52 - 2; case 3
|
||||
.short _02003DC0 - _02003D52 - 2; case 4
|
||||
.short _02003DA2 - _02003D52 - 2; case 5
|
||||
.short _02003DC6 - _02003D52 - 2; case 6
|
||||
.short _02003DCC - _02003D52 - 2; case 7
|
||||
.short _02003DD2 - _02003D52 - 2; case 8
|
||||
.short _02003DD8 - _02003D52 - 2; case 9
|
||||
.short _02003DDE - _02003D52 - 2; case 10
|
||||
.short _02003DE4 - _02003D52 - 2; case 11
|
||||
.short _02003DEA - _02003D52 - 2; case 12
|
||||
.short _02003DF0 - _02003D52 - 2; case 13
|
||||
.short _02003DF6 - _02003D52 - 2; case 14
|
||||
.short _02003DFC - _02003D52 - 2; case 15
|
||||
.short _02003E02 - _02003D52 - 2; case 16
|
||||
.short _02003E08 - _02003D52 - 2; case 17
|
||||
.short _02003E0E - _02003D52 - 2; case 18
|
||||
.short _02003E14 - _02003D52 - 2; case 19
|
||||
.short _02003E1A - _02003D52 - 2; case 20
|
||||
.short _02003E20 - _02003D52 - 2; case 21
|
||||
.short _02003E26 - _02003D52 - 2; case 22
|
||||
.short _02003E2C - _02003D52 - 2; case 23
|
||||
.short _02003E32 - _02003D52 - 2; case 24
|
||||
.short _02003E38 - _02003D52 - 2; case 25
|
||||
.short _02003E3E - _02003D52 - 2; case 26
|
||||
.short _02003E44 - _02003D52 - 2; case 27
|
||||
.short _02003E4A - _02003D52 - 2; case 28
|
||||
.short _02003E50 - _02003D52 - 2; case 29
|
||||
.short _02003E56 - _02003D52 - 2; case 30
|
||||
.short _02003E5C - _02003D52 - 2; case 31
|
||||
.short _02003E62 - _02003D52 - 2; case 32
|
||||
.short _02003E68 - _02003D52 - 2; case 33
|
||||
.short _02003E6E - _02003D52 - 2; case 34
|
||||
.short _02003E74 - _02003D52 - 2; case 35
|
||||
.short _02003E7A - _02003D52 - 2; case 36
|
||||
.short _02003E80 - _02003D52 - 2; case 37
|
||||
.short _02003E86 - _02003D52 - 2; case 38
|
||||
.short _02003E8C - _02003D52 - 2; case 39
|
||||
_02003DA2:
|
||||
ldr r1, _02003E9C ; =0x000BCCFE
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DA8:
|
||||
ldr r1, _02003EA0 ; =0x000BBCB8
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DAE:
|
||||
ldr r1, _02003EA4 ; =0x000BBCBC
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DB4:
|
||||
ldr r1, _02003EA8 ; =0x000BBCC0
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DBA:
|
||||
ldr r1, _02003EAC ; =0x000BBCE0
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DC0:
|
||||
ldr r1, _02003EB0 ; =0x000BCCE0
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DC6:
|
||||
ldr r1, _02003EB4 ; =0x000BCD00
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DCC:
|
||||
ldr r1, _02003EB8 ; =0x000BCD04
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DD2:
|
||||
ldr r1, _02003EBC ; =0x000BCD08
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DD8:
|
||||
ldr r1, _02003EC0 ; =0x000BCD0C
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DDE:
|
||||
ldr r1, _02003EC4 ; =0x000BCD0E
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DE4:
|
||||
ldr r1, _02003EC8 ; =0x000BCD10
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DEA:
|
||||
ldr r1, _02003ECC ; =0x000BCD11
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DF0:
|
||||
ldr r1, _02003ED0 ; =0x000BCD12
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DF6:
|
||||
ldr r1, _02003ED4 ; =0x000BCD14
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003DFC:
|
||||
ldr r1, _02003ED8 ; =0x000BCD15
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E02:
|
||||
ldr r1, _02003EDC ; =0x000BCD16
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E08:
|
||||
ldr r1, _02003EE0 ; =0x000BCD17
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E0E:
|
||||
ldr r1, _02003EE4 ; =0x000BCD18
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E14:
|
||||
ldr r1, _02003EE8 ; =0x000BCD19
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E1A:
|
||||
ldr r1, _02003EEC ; =0x000BCD1A
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E20:
|
||||
ldr r1, _02003EF0 ; =0x000BCD1B
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E26:
|
||||
ldr r1, _02003EF4 ; =0x000BCD1C
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E2C:
|
||||
ldr r1, _02003EF8 ; =0x000BCD20
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E32:
|
||||
ldr r1, _02003EFC ; =0x000BCD24
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E38:
|
||||
ldr r1, _02003F00 ; =0x000BCD28
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E3E:
|
||||
ldr r1, _02003F04 ; =0x000BCD2C
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E44:
|
||||
ldr r1, _02003F08 ; =0x000BCD30
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E4A:
|
||||
ldr r1, _02003F0C ; =0x000BCD34
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E50:
|
||||
ldr r1, _02003F10 ; =0x000BCD38
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E56:
|
||||
ldr r1, _02003F14 ; =0x000BCD39
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E5C:
|
||||
ldr r1, _02003F18 ; =0x000BCD3A
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E62:
|
||||
ldr r1, _02003F1C ; =0x000BCD3C
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E68:
|
||||
ldr r1, _02003F20 ; =0x000BCD40
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E6E:
|
||||
ldr r1, _02003F24 ; =0x000BCD48
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E74:
|
||||
ldr r1, _02003F28 ; =0x000BCD4C
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E7A:
|
||||
ldr r1, _02003F2C ; =0x000BCD50
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E80:
|
||||
ldr r1, _02003F30 ; =0x000BCD54
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E86:
|
||||
ldr r1, _02003F34 ; =0x000BCD58
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E8C:
|
||||
ldr r1, _02003F38 ; =0x000BCD5C
|
||||
add r0, r0, r1
|
||||
pop {r4, pc}
|
||||
_02003E92:
|
||||
bl ErrorHandling
|
||||
mov r0, #0x0
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_02003E9C: .word 0x000BCCFE
|
||||
_02003EA0: .word 0x000BBCB8
|
||||
_02003EA4: .word 0x000BBCBC
|
||||
_02003EA8: .word 0x000BBCC0
|
||||
_02003EAC: .word 0x000BBCE0
|
||||
_02003EB0: .word 0x000BCCE0
|
||||
_02003EB4: .word 0x000BCD00
|
||||
_02003EB8: .word 0x000BCD04
|
||||
_02003EBC: .word 0x000BCD08
|
||||
_02003EC0: .word 0x000BCD0C
|
||||
_02003EC4: .word 0x000BCD0E
|
||||
_02003EC8: .word 0x000BCD10
|
||||
_02003ECC: .word 0x000BCD11
|
||||
_02003ED0: .word 0x000BCD12
|
||||
_02003ED4: .word 0x000BCD14
|
||||
_02003ED8: .word 0x000BCD15
|
||||
_02003EDC: .word 0x000BCD16
|
||||
_02003EE0: .word 0x000BCD17
|
||||
_02003EE4: .word 0x000BCD18
|
||||
_02003EE8: .word 0x000BCD19
|
||||
_02003EEC: .word 0x000BCD1A
|
||||
_02003EF0: .word 0x000BCD1B
|
||||
_02003EF4: .word 0x000BCD1C
|
||||
_02003EF8: .word 0x000BCD20
|
||||
_02003EFC: .word 0x000BCD24
|
||||
_02003F00: .word 0x000BCD28
|
||||
_02003F04: .word 0x000BCD2C
|
||||
_02003F08: .word 0x000BCD30
|
||||
_02003F0C: .word 0x000BCD34
|
||||
_02003F10: .word 0x000BCD38
|
||||
_02003F14: .word 0x000BCD39
|
||||
_02003F18: .word 0x000BCD3A
|
||||
_02003F1C: .word 0x000BCD3C
|
||||
_02003F20: .word 0x000BCD40
|
||||
_02003F24: .word 0x000BCD48
|
||||
_02003F28: .word 0x000BCD4C
|
||||
_02003F2C: .word 0x000BCD50
|
||||
_02003F30: .word 0x000BCD54
|
||||
_02003F34: .word 0x000BCD58
|
||||
_02003F38: .word 0x000BCD5C
|
||||
|
||||
thumb_func_start FUN_02003F3C
|
||||
FUN_02003F3C: ; 0x02003F3C
|
||||
push {r3-r5, lr}
|
||||
add r5, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r0, #0x90
|
||||
ldr r0, [r0, #0x0]
|
||||
bl FUN_020C290C
|
||||
add r4, r0, #0x0
|
||||
mov r0, #0x0
|
||||
mvn r0, r0
|
||||
cmp r4, r0
|
||||
bne _02003F5A
|
||||
bl ErrorHandling
|
||||
_02003F5A:
|
||||
cmp r5, #0x0
|
||||
beq _02003F60
|
||||
str r4, [r5, #0x0]
|
||||
_02003F60:
|
||||
add r0, r4, #0x0
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start FUN_02003F64
|
||||
FUN_02003F64: ; 0x02003F64
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r0, #0x90
|
||||
ldr r0, [r0, #0x0]
|
||||
add r1, r4, #0x0
|
||||
bl FUN_020C2828
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start FUN_02003F78
|
||||
FUN_02003F78: ; 0x02003F78
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r1, r0, #0x0
|
||||
add r1, #0x90
|
||||
ldr r1, [r1, #0x0]
|
||||
add r0, r4, #0x0
|
||||
bl FUN_020C36A8
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02003F90
|
||||
FUN_02003F90: ; 0x02003F90
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r1, r0, #0x0
|
||||
add r1, #0x90
|
||||
ldr r1, [r1, #0x0]
|
||||
add r0, r4, #0x0
|
||||
bl FUN_020C3674
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02003FA8
|
||||
FUN_02003FA8: ; 0x02003FA8
|
||||
push {r3-r5, lr}
|
||||
add r5, r0, #0x0
|
||||
add r4, r1, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r2, r0, #0x0
|
||||
add r2, #0x90
|
||||
ldr r2, [r2, #0x0]
|
||||
add r0, r5, #0x0
|
||||
add r1, r4, #0x0
|
||||
bl FUN_020C35E0
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02003FC4
|
||||
FUN_02003FC4: ; 0x02003FC4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r1, r0, #0x0
|
||||
add r1, #0x90
|
||||
ldr r1, [r1, #0x0]
|
||||
add r0, r4, #0x0
|
||||
bl FUN_020C360C
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02003FDC
|
||||
FUN_02003FDC: ; 0x02003FDC
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r1, r0, #0x0
|
||||
add r1, #0x90
|
||||
ldr r1, [r1, #0x0]
|
||||
add r0, r4, #0x0
|
||||
bl FUN_020C3640
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02003FF4
|
||||
FUN_02003FF4: ; 0x02003FF4
|
||||
push {r3-r5, lr}
|
||||
add r5, r0, #0x0
|
||||
bl GetSoundDataPointer
|
||||
add r4, r0, #0x0
|
||||
cmp r5, #0x9
|
||||
blt _02004008
|
||||
bl ErrorHandling
|
||||
mov r5, #0x0
|
||||
_02004008:
|
||||
ldr r0, _02004014 ; =0x000BBC94
|
||||
add r1, r4, r0
|
||||
lsl r0, r5, #0x2
|
||||
add r0, r1, r0
|
||||
pop {r3-r5, pc}
|
||||
nop
|
||||
_02004014: .word 0x000BBC94
|
||||
|
||||
thumb_func_start FUN_02004018
|
||||
FUN_02004018: ; 0x02004018
|
||||
push {r3, lr}
|
||||
cmp r0, #0x7
|
||||
bhi _0200405A
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #0x6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_0200402A: ; jump table (using 16-bit offset)
|
||||
.short _0200403E - _0200402A - 2; case 0
|
||||
.short _0200403A - _0200402A - 2; case 1
|
||||
.short _02004042 - _0200402A - 2; case 2
|
||||
.short _02004046 - _0200402A - 2; case 3
|
||||
.short _0200404A - _0200402A - 2; case 4
|
||||
.short _0200404E - _0200402A - 2; case 5
|
||||
.short _02004052 - _0200402A - 2; case 6
|
||||
.short _02004056 - _0200402A - 2; case 7
|
||||
_0200403A:
|
||||
mov r0, #0x0
|
||||
pop {r3, pc}
|
||||
_0200403E:
|
||||
mov r0, #0x1
|
||||
pop {r3, pc}
|
||||
_02004042:
|
||||
mov r0, #0x2
|
||||
pop {r3, pc}
|
||||
_02004046:
|
||||
mov r0, #0x3
|
||||
pop {r3, pc}
|
||||
_0200404A:
|
||||
mov r0, #0x4
|
||||
pop {r3, pc}
|
||||
_0200404E:
|
||||
mov r0, #0x5
|
||||
pop {r3, pc}
|
||||
_02004052:
|
||||
mov r0, #0x6
|
||||
pop {r3, pc}
|
||||
_02004056:
|
||||
mov r0, #0x7
|
||||
pop {r3, pc}
|
||||
_0200405A:
|
||||
bl ErrorHandling
|
||||
mov r0, #0x3
|
||||
pop {r3, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02004064
|
||||
FUN_02004064: ; 0x02004064
|
||||
push {r4, lr}
|
||||
ldr r2, _02004080 ; =0x000BCD60
|
||||
mov r1, #0x0
|
||||
add r4, r0, #0x0
|
||||
bl memset
|
||||
ldr r0, _02004084 ; =0x000BCD1C
|
||||
mov r1, #0x0
|
||||
_02004074:
|
||||
add r1, r1, #0x1
|
||||
str r1, [r4, r0]
|
||||
add r4, r4, #0x4
|
||||
cmp r1, #0x7
|
||||
blt _02004074
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_02004080: .word 0x000BCD60
|
||||
_02004084: .word 0x000BCD1C
|
||||
|
||||
thumb_func_start FUN_02004088
|
||||
FUN_02004088: ; 0x02004088
|
||||
push {r3-r5, lr}
|
||||
ldr r1, _020040A0 ; =0x000BBC94
|
||||
mov r4, #0x0
|
||||
add r5, r0, r1
|
||||
_02004090:
|
||||
add r0, r5, #0x0
|
||||
bl FUN_020C0F80
|
||||
add r4, r4, #0x1
|
||||
add r5, r5, #0x4
|
||||
cmp r4, #0x9
|
||||
blt _02004090
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
_020040A0: .word 0x000BBC94
|
||||
|
||||
thumb_func_start FUN_020040A4
|
||||
FUN_020040A4: ; 0x020040A4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
ldr r0, _020040C0 ; =0x000BCD1C
|
||||
add r0, r4, r0
|
||||
bl FUN_02003F3C
|
||||
mov r0, #0x0
|
||||
bl FUN_02003F78
|
||||
ldr r0, _020040C4 ; =0x000BCD20
|
||||
add r0, r4, r0
|
||||
bl FUN_02003F3C
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_020040C0: .word 0x000BCD1C
|
||||
_020040C4: .word 0x000BCD20
|
||||
|
||||
thumb_func_start FUN_020040C8
|
||||
FUN_020040C8: ; 0x020040C8
|
||||
push {r3, lr}
|
||||
bl MIC_Init
|
||||
mov r0, #0x1
|
||||
bl PM_SetAmp
|
||||
mov r0, #0x2
|
||||
bl PM_SetAmpGain
|
||||
pop {r3, pc}
|
||||
|
||||
thumb_func_start FUN_020040DC
|
||||
FUN_020040DC: ; 0x020040DC
|
||||
push {r3, lr}
|
||||
mov r0, #0x7
|
||||
mov r1, #0x0
|
||||
bl FUN_020C1040
|
||||
mov r0, #0x7
|
||||
bl FUN_02003FF4
|
||||
bl FUN_020C0F68
|
||||
pop {r3, pc}
|
||||
.balign 4
|
||||
@@ -6370,24 +6370,16 @@ _020B13B8:
|
||||
cmp r0, #0x8
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B1444
|
||||
_020B13E4:
|
||||
b _020B1444
|
||||
_020B13E8:
|
||||
b _020B1414
|
||||
_020B13EC:
|
||||
b _020B141C
|
||||
_020B13F0:
|
||||
b _020B1444
|
||||
_020B13F4:
|
||||
b _020B1424
|
||||
_020B13F8:
|
||||
b _020B1444
|
||||
_020B13FC:
|
||||
b _020B1444
|
||||
_020B1400:
|
||||
b _020B1444
|
||||
_020B1404:
|
||||
b _020B142C
|
||||
; Jump table
|
||||
b _020B1444 ; case 0
|
||||
b _020B1414 ; case 1
|
||||
b _020B141C ; case 2
|
||||
b _020B1444 ; case 3
|
||||
b _020B1424 ; case 4
|
||||
b _020B1444 ; case 5
|
||||
b _020B1444 ; case 6
|
||||
b _020B1444 ; case 7
|
||||
b _020B142C ; case 8
|
||||
_020B1408:
|
||||
cmp r0, #0x20
|
||||
beq _020B143C
|
||||
@@ -6422,24 +6414,16 @@ _020B1448:
|
||||
cmp r0, #0x8
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B14CC
|
||||
_020B146C:
|
||||
b _020B14CC
|
||||
_020B1470:
|
||||
b _020B149C
|
||||
_020B1474:
|
||||
b _020B14A4
|
||||
_020B1478:
|
||||
b _020B14CC
|
||||
_020B147C:
|
||||
b _020B14AC
|
||||
_020B1480:
|
||||
b _020B14CC
|
||||
_020B1484:
|
||||
b _020B14CC
|
||||
_020B1488:
|
||||
b _020B14CC
|
||||
_020B148C:
|
||||
b _020B14B4
|
||||
; Jump table
|
||||
b _020B14CC ; case 0
|
||||
b _020B149C ; case 1
|
||||
b _020B14A4 ; case 2
|
||||
b _020B14CC ; case 3
|
||||
b _020B14AC ; case 4
|
||||
b _020B14CC ; case 5
|
||||
b _020B14CC ; case 6
|
||||
b _020B14CC ; case 7
|
||||
b _020B14B4 ; case 8
|
||||
_020B1490:
|
||||
cmp r0, #0x20
|
||||
beq _020B14C4
|
||||
@@ -6563,24 +6547,16 @@ _020B15F8:
|
||||
cmp r0, #0x8
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B1684
|
||||
_020B1624:
|
||||
b _020B1684
|
||||
_020B1628:
|
||||
b _020B1654
|
||||
_020B162C:
|
||||
b _020B165C
|
||||
_020B1630:
|
||||
b _020B1684
|
||||
_020B1634:
|
||||
b _020B1664
|
||||
_020B1638:
|
||||
b _020B1684
|
||||
_020B163C:
|
||||
b _020B1684
|
||||
_020B1640:
|
||||
b _020B1684
|
||||
_020B1644:
|
||||
b _020B166C
|
||||
; Jump table
|
||||
b _020B1684 ; case 0
|
||||
b _020B1654 ; case 1
|
||||
b _020B165C ; case 2
|
||||
b _020B1684 ; case 3
|
||||
b _020B1664 ; case 4
|
||||
b _020B1684 ; case 5
|
||||
b _020B1684 ; case 6
|
||||
b _020B1684 ; case 7
|
||||
b _020B166C ; case 8
|
||||
_020B1648:
|
||||
cmp r0, #0x20
|
||||
beq _020B167C
|
||||
@@ -6615,24 +6591,16 @@ _020B1688:
|
||||
cmp r0, #0x8
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B170C
|
||||
_020B16AC:
|
||||
b _020B170C
|
||||
_020B16B0:
|
||||
b _020B16DC
|
||||
_020B16B4:
|
||||
b _020B16E4
|
||||
_020B16B8:
|
||||
b _020B170C
|
||||
_020B16BC:
|
||||
b _020B16EC
|
||||
_020B16C0:
|
||||
b _020B170C
|
||||
_020B16C4:
|
||||
b _020B170C
|
||||
_020B16C8:
|
||||
b _020B170C
|
||||
_020B16CC:
|
||||
b _020B16F4
|
||||
; Jump table
|
||||
b _020B170C ; case 0
|
||||
b _020B16DC ; case 1
|
||||
b _020B16E4 ; case 2
|
||||
b _020B170C ; case 3
|
||||
b _020B16EC ; case 4
|
||||
b _020B170C ; case 5
|
||||
b _020B170C ; case 6
|
||||
b _020B170C ; case 7
|
||||
b _020B16F4 ; case 8
|
||||
_020B16D0:
|
||||
cmp r0, #0x20
|
||||
beq _020B1704
|
||||
@@ -6756,24 +6724,16 @@ _020B1838:
|
||||
cmp r0, #0x8
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B18C4
|
||||
_020B1864:
|
||||
b _020B18C4
|
||||
_020B1868:
|
||||
b _020B1894
|
||||
_020B186C:
|
||||
b _020B189C
|
||||
_020B1870:
|
||||
b _020B18C4
|
||||
_020B1874:
|
||||
b _020B18A4
|
||||
_020B1878:
|
||||
b _020B18C4
|
||||
_020B187C:
|
||||
b _020B18C4
|
||||
_020B1880:
|
||||
b _020B18C4
|
||||
_020B1884:
|
||||
b _020B18AC
|
||||
; Jump table
|
||||
b _020B18C4 ; case 0
|
||||
b _020B1894 ; case 1
|
||||
b _020B189C ; case 2
|
||||
b _020B18C4 ; case 3
|
||||
b _020B18A4 ; case 4
|
||||
b _020B18C4 ; case 5
|
||||
b _020B18C4 ; case 6
|
||||
b _020B18C4 ; case 7
|
||||
b _020B18AC ; case 8
|
||||
_020B1888:
|
||||
cmp r0, #0x20
|
||||
beq _020B18BC
|
||||
@@ -6808,24 +6768,16 @@ _020B18C8:
|
||||
cmp r0, #0x8
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B194C
|
||||
_020B18EC:
|
||||
b _020B194C
|
||||
_020B18F0:
|
||||
b _020B191C
|
||||
_020B18F4:
|
||||
b _020B1924
|
||||
_020B18F8:
|
||||
b _020B194C
|
||||
_020B18FC:
|
||||
b _020B192C
|
||||
_020B1900:
|
||||
b _020B194C
|
||||
_020B1904:
|
||||
b _020B194C
|
||||
_020B1908:
|
||||
b _020B194C
|
||||
_020B190C:
|
||||
b _020B1934
|
||||
; Jump table
|
||||
b _020B194C ; case 0
|
||||
b _020B191C ; case 1
|
||||
b _020B1924 ; case 2
|
||||
b _020B194C ; case 3
|
||||
b _020B192C ; case 4
|
||||
b _020B194C ; case 5
|
||||
b _020B194C ; case 6
|
||||
b _020B194C ; case 7
|
||||
b _020B1934 ; case 8
|
||||
_020B1910:
|
||||
cmp r0, #0x20
|
||||
beq _020B1944
|
||||
@@ -7959,14 +7911,11 @@ _020B2828:
|
||||
cmp r0, #0x3
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B288C
|
||||
_020B2860:
|
||||
b _020B2870
|
||||
_020B2864:
|
||||
b _020B288C
|
||||
_020B2868:
|
||||
b _020B2870
|
||||
_020B286C:
|
||||
b _020B2870
|
||||
; Jump table
|
||||
b _020B2870 ; case 0
|
||||
b _020B288C ; case 1
|
||||
b _020B2870 ; case 2
|
||||
b _020B2870 ; case 3
|
||||
_020B2870:
|
||||
ldr r0, _020B28B0 ; =UNK_021CDD64
|
||||
mov r1, #0x1
|
||||
@@ -8056,14 +8005,11 @@ _020B297C:
|
||||
cmp r0, #0x3
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B29E0
|
||||
_020B29B4:
|
||||
b _020B29C4
|
||||
_020B29B8:
|
||||
b _020B29E0
|
||||
_020B29BC:
|
||||
b _020B29C4
|
||||
_020B29C0:
|
||||
b _020B29C4
|
||||
; Jump table
|
||||
b _020B29C4 ; case 0
|
||||
b _020B29E0 ; case 1
|
||||
b _020B29C4 ; case 2
|
||||
b _020B29C4 ; case 3
|
||||
_020B29C4:
|
||||
ldr r0, _020B2A04 ; =UNK_021CDD64
|
||||
mov r1, #0x1
|
||||
@@ -10529,14 +10475,11 @@ _020B4C7C:
|
||||
cmp r0, #0x3
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B4CB8
|
||||
_020B4C8C:
|
||||
b _020B4C9C
|
||||
_020B4C90:
|
||||
b _020B4CAC
|
||||
_020B4C94:
|
||||
b _020B4CAC
|
||||
_020B4C98:
|
||||
b _020B4CB8
|
||||
; Jump table
|
||||
b _020B4C9C ; case 0
|
||||
b _020B4CAC ; case 1
|
||||
b _020B4CAC ; case 2
|
||||
b _020B4CB8 ; case 3
|
||||
_020B4C9C:
|
||||
mov r0, r5
|
||||
mov r1, r6
|
||||
@@ -10588,14 +10531,11 @@ _020B4D24:
|
||||
cmp r0, #0x3
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020B4D74
|
||||
_020B4D48:
|
||||
b _020B4D58
|
||||
_020B4D4C:
|
||||
b _020B4D68
|
||||
_020B4D50:
|
||||
b _020B4D68
|
||||
_020B4D54:
|
||||
b _020B4D74
|
||||
; Jump table
|
||||
b _020B4D58 ; case 0
|
||||
b _020B4D68 ; case 1
|
||||
b _020B4D68 ; case 2
|
||||
b _020B4D74 ; case 3
|
||||
_020B4D58:
|
||||
mov r0, r4
|
||||
mov r1, r5
|
||||
@@ -27356,14 +27296,11 @@ _020C3500:
|
||||
cmp r0, #0x3
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020C35C0
|
||||
_020C3510:
|
||||
b _020C3520
|
||||
_020C3514:
|
||||
b _020C3570
|
||||
_020C3518:
|
||||
b _020C3598
|
||||
_020C351C:
|
||||
b _020C3548
|
||||
; Jump table
|
||||
b _020C3520 ; case 0
|
||||
b _020C3570 ; case 1
|
||||
b _020C3598 ; case 2
|
||||
b _020C3548 ; case 3
|
||||
_020C3520:
|
||||
str r5, [sp, #0x0]
|
||||
ldrb r1, [r6, #0x1]
|
||||
|
||||
@@ -264,7 +264,7 @@
|
||||
.extern FUN_02003A30
|
||||
.extern FUN_02003A64
|
||||
.extern FUN_02003B40
|
||||
.extern FUN_02003B98
|
||||
.extern InitSoundData
|
||||
.extern FUN_02003C10
|
||||
.extern FUN_02003CE8
|
||||
.extern FUN_02003D38
|
||||
|
||||
6
arm9/lib/include/SPI_mic.h
Normal file
6
arm9/lib/include/SPI_mic.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef NITRO_SPI_MIC_H_
|
||||
#define NITRO_SPI_MIC_H_
|
||||
|
||||
void MIC_Init(void);
|
||||
|
||||
#endif //NITRO_SPI_MIC_H_
|
||||
@@ -32,6 +32,8 @@ void PM_GetBackLight(PMBackLightSwitch * top, PMBackLightSwitch * bottom);
|
||||
void PM_GoSleepMode(PMWakeUpTrigger trigger, PMLogic logic, u16 keyPattern);
|
||||
u32 PM_SetBackLight(PMLCDTarget target, PMBackLightSwitch status);
|
||||
void PM_ForceToPowerOff(void);
|
||||
void PM_SetAmp(int gain);
|
||||
void PM_SetAmpGain(int gain);
|
||||
|
||||
ENUMS_ALWAYS_INT_RESET
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "PAD_pad.h"
|
||||
#include "main.h"
|
||||
#include "poke_overlay.h"
|
||||
#include "options.h"
|
||||
#include "sound.h"
|
||||
|
||||
FS_EXTERN_OVERLAY(MODULE_52);
|
||||
FS_EXTERN_OVERLAY(MODULE_63);
|
||||
@@ -31,9 +33,7 @@ extern void FUN_0201259C(void);
|
||||
extern void FUN_02002C14(void);
|
||||
extern void FUN_02002C50(int, int);
|
||||
extern struct UnkStruct_021C59C8 * FUN_0202254C(void);
|
||||
extern void FUN_02003B98(int, int);
|
||||
extern int FUN_02029EF8(struct UnkStruct_021C59C8 *);
|
||||
extern int LoadPlayerDataAddress(struct UnkStruct_021C59C8 *);
|
||||
extern u32 FUN_02029EF8(struct UnkStruct_021C59C8 *);
|
||||
extern void FUN_02020AFC(void);
|
||||
extern int FUN_020337E8(int);
|
||||
extern void FUN_02034188(int, int);
|
||||
@@ -75,7 +75,7 @@ THUMB_FUNC void NitroMain(void)
|
||||
FUN_02002C50(3, 3);
|
||||
gBacklightTop.unk18 = -1;
|
||||
gBacklightTop.unk20 = FUN_0202254C();
|
||||
FUN_02003B98(FUN_02029EF8(gBacklightTop.unk20), LoadPlayerDataAddress(gBacklightTop.unk20));
|
||||
InitSoundData(FUN_02029EF8(gBacklightTop.unk20), LoadPlayerDataAddress(gBacklightTop.unk20));
|
||||
FUN_02020AFC();
|
||||
if (FUN_020337E8(3) == 3)
|
||||
FUN_02034188(3, 0);
|
||||
|
||||
321
arm9/src/sound.c
Normal file
321
arm9/src/sound.c
Normal file
@@ -0,0 +1,321 @@
|
||||
#include "global.h"
|
||||
#include "sound.h"
|
||||
#include "SPI_mic.h"
|
||||
#include "SPI_pm.h"
|
||||
|
||||
#pragma thumb on
|
||||
|
||||
static struct SoundData sSoundDataBuffer;
|
||||
static u32 UNK_02107070[2];
|
||||
|
||||
void FUN_02003C40(void);
|
||||
BOOL FUN_02003D04(void);
|
||||
void FUN_020040C8(void);
|
||||
void FUN_02004064(struct SoundData *);
|
||||
void FUN_02004088(struct SoundData *);
|
||||
void FUN_020040A4(struct SoundData *);
|
||||
void FUN_02003CE8(int);
|
||||
void FUN_020040DC(void);
|
||||
|
||||
extern BOOL FUN_020048BC(int);
|
||||
extern void FUN_02004D60(u32);
|
||||
extern BOOL FUN_02004D94(void);
|
||||
extern void FUN_0200521C(int);
|
||||
extern void FUN_0200538C(int, int, int);
|
||||
extern BOOL FUN_02005404(void);
|
||||
extern void FUN_02005CFC(void);
|
||||
|
||||
void InitSoundData(u32 a0, struct Options * a1)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
FUN_020C01D0();
|
||||
FUN_020040C8();
|
||||
FUN_02004064(sdat);
|
||||
sdat->unk_00090 = FUN_020C2A94(sdat->unk_00094, sizeof(sdat->unk_00094));
|
||||
FUN_020C26F8(&sdat->header, "data/sound/sound_data.sdat", sdat->unk_00090, 0);
|
||||
FUN_020C39CC(sdat->unk_00090);
|
||||
FUN_02004088(sdat);
|
||||
FUN_020040A4(sdat);
|
||||
UNK_02107070[1] = 0;
|
||||
sdat->unk_BCD4C = a0;
|
||||
FUN_02004D60(a1->unk0_4);
|
||||
}
|
||||
|
||||
void FUN_02003C10(void)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
if (!FUN_02003D04())
|
||||
{
|
||||
if (sdat->unk_BCD00 > 0)
|
||||
sdat->unk_BCD00--;
|
||||
FUN_02003C40();
|
||||
}
|
||||
FUN_02005CFC();
|
||||
FUN_020C01A0();
|
||||
}
|
||||
|
||||
void FUN_02003C40(void)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
switch (UNK_02107070[0])
|
||||
{
|
||||
case 1:
|
||||
FUN_02003CE8(2);
|
||||
break;
|
||||
case 3:
|
||||
if (!FUN_02005404())
|
||||
FUN_02003CE8(2);
|
||||
break;
|
||||
case 4:
|
||||
if (!FUN_02005404())
|
||||
FUN_02003CE8(2);
|
||||
break;
|
||||
case 5:
|
||||
if (!FUN_02005404() && !FUN_02004D94())
|
||||
{
|
||||
FUN_020040DC();
|
||||
FUN_0200521C(sdat->unk_BCD0E);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (!FUN_02005404() && !FUN_02004D94())
|
||||
{
|
||||
FUN_020040DC();
|
||||
FUN_0200521C(sdat->unk_BCD0E);
|
||||
FUN_0200538C(0x7F, (int)sdat->unk_BCD08, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void FUN_02003CE8(int a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
sdat->unk_BCCFC = 0;
|
||||
UNK_02107070[0] = (u32)a0;
|
||||
}
|
||||
|
||||
BOOL FUN_02003D04(void)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
if (FUN_020048BC(2))
|
||||
return TRUE;
|
||||
return sdat->unk_BCD12 != 0;
|
||||
}
|
||||
|
||||
struct SoundData * GetSoundDataPointer(void)
|
||||
{
|
||||
return &sSoundDataBuffer;
|
||||
}
|
||||
|
||||
void * FUN_02003D38(u32 a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
switch (a0)
|
||||
{
|
||||
case 5:
|
||||
return &sdat->unk_BCCFE;
|
||||
case 0:
|
||||
return &sdat->unk_BBCB8;
|
||||
case 1:
|
||||
return &sdat->unk_BBCBC;
|
||||
case 2:
|
||||
return &sdat->unk_BBCC0;
|
||||
case 3:
|
||||
return &sdat->unk_BBCE0;
|
||||
case 4:
|
||||
return &sdat->unk_BCCE0;
|
||||
case 6:
|
||||
return &sdat->unk_BCD00;
|
||||
case 7:
|
||||
return &sdat->unk_BCD04;
|
||||
case 8:
|
||||
return &sdat->unk_BCD08;
|
||||
case 9:
|
||||
return &sdat->unk_BCD0C;
|
||||
case 10:
|
||||
return &sdat->unk_BCD0E;
|
||||
case 11:
|
||||
return &sdat->unk_BCD10;
|
||||
case 12:
|
||||
return &sdat->unk_BCD11;
|
||||
case 13:
|
||||
return &sdat->unk_BCD12;
|
||||
case 14:
|
||||
return &sdat->unk_BCD14;
|
||||
case 15:
|
||||
return &sdat->unk_BCD15;
|
||||
case 16:
|
||||
return &sdat->unk_BCD16;
|
||||
case 17:
|
||||
return &sdat->unk_BCD17;
|
||||
case 18:
|
||||
return &sdat->unk_BCD18;
|
||||
case 19:
|
||||
return &sdat->unk_BCD19;
|
||||
case 20:
|
||||
return &sdat->unk_BCD1A;
|
||||
case 21:
|
||||
return &sdat->unk_BCD1B;
|
||||
case 22:
|
||||
return &sdat->unk_BCD1C[0];
|
||||
case 23:
|
||||
return &sdat->unk_BCD1C[1];
|
||||
case 24:
|
||||
return &sdat->unk_BCD1C[2];
|
||||
case 25:
|
||||
return &sdat->unk_BCD1C[3];
|
||||
case 26:
|
||||
return &sdat->unk_BCD1C[4];
|
||||
case 27:
|
||||
return &sdat->unk_BCD1C[5];
|
||||
case 28:
|
||||
return &sdat->unk_BCD1C[6];
|
||||
case 29:
|
||||
return &sdat->unk_BCD38;
|
||||
case 30:
|
||||
return &sdat->unk_BCD39;
|
||||
case 31:
|
||||
return &sdat->unk_BCD3A;
|
||||
case 32:
|
||||
return &sdat->unk_BCD3C;
|
||||
case 33:
|
||||
return &sdat->unk_BCD40;
|
||||
case 34:
|
||||
return &sdat->unk_BCD48;
|
||||
case 35:
|
||||
return &sdat->unk_BCD4C;
|
||||
case 36:
|
||||
return &sdat->unk_BCD50;
|
||||
case 37:
|
||||
return &sdat->unk_BCD54;
|
||||
case 38:
|
||||
return &sdat->unk_BCD58;
|
||||
case 39:
|
||||
return &sdat->unk_BCD5C;
|
||||
default:
|
||||
GF_ASSERT(0);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
int FUN_02003F3C(int * a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
int r4 = FUN_020C290C(sdat->unk_00090);
|
||||
GF_ASSERT(r4 != -1);
|
||||
if (a0 != NULL)
|
||||
*a0 = r4;
|
||||
return r4;
|
||||
}
|
||||
|
||||
void FUN_02003F64(int a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
FUN_020C2828(sdat->unk_00090, a0);
|
||||
}
|
||||
|
||||
BOOL FUN_02003F78(u32 * a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
return FUN_020C36A8(a0, sdat->unk_00090);
|
||||
}
|
||||
|
||||
BOOL FUN_02003F90(u32 * a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
return FUN_020C3674(a0, sdat->unk_00090);
|
||||
}
|
||||
|
||||
BOOL FUN_02003FA8(u32 * a0, u32 * a1)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
return FUN_020C35E0(a0, a1, sdat->unk_00090);
|
||||
}
|
||||
|
||||
BOOL FUN_02003FC4(u32 * a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
return FUN_020C360C(a0, sdat->unk_00090);
|
||||
}
|
||||
|
||||
BOOL FUN_02003FDC(u32 * a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
return FUN_020C3640(a0, sdat->unk_00090);
|
||||
}
|
||||
|
||||
u32 * FUN_02003FF4(int a0)
|
||||
{
|
||||
struct SoundData * sdat = GetSoundDataPointer();
|
||||
if (a0 >= 9)
|
||||
{
|
||||
GF_ASSERT(0);
|
||||
a0 = 0;
|
||||
}
|
||||
return &sdat->unk_BBC94[a0];
|
||||
}
|
||||
|
||||
u32 FUN_02004018(u32 a0)
|
||||
{
|
||||
switch (a0)
|
||||
{
|
||||
case 1:
|
||||
return 0;
|
||||
case 0:
|
||||
return 1;
|
||||
case 2:
|
||||
return 2;
|
||||
case 3:
|
||||
return 3;
|
||||
case 4:
|
||||
return 4;
|
||||
case 5:
|
||||
return 5;
|
||||
case 6:
|
||||
return 6;
|
||||
case 7:
|
||||
return 7;
|
||||
default:
|
||||
GF_ASSERT(0);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
void FUN_02004064(struct SoundData * sdat)
|
||||
{
|
||||
int i;
|
||||
memset(sdat, 0, sizeof(*sdat));
|
||||
for (i = 0; i < 7; i++)
|
||||
sdat->unk_BCD1C[i] = i + 1;
|
||||
}
|
||||
|
||||
void FUN_02004088(struct SoundData * sdat)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 9; i++)
|
||||
{
|
||||
FUN_020C0F80(&sdat->unk_BBC94[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void FUN_020040A4(struct SoundData * sdat)
|
||||
{
|
||||
FUN_02003F3C(&sdat->unk_BCD1C[0]);
|
||||
FUN_02003F78(NULL);
|
||||
FUN_02003F3C(&sdat->unk_BCD1C[1]);
|
||||
}
|
||||
|
||||
void FUN_020040C8(void)
|
||||
{
|
||||
MIC_Init();
|
||||
PM_SetAmp(1);
|
||||
PM_SetAmpGain(2);
|
||||
}
|
||||
|
||||
void FUN_020040DC(void)
|
||||
{
|
||||
FUN_020C1040(7, 0);
|
||||
FUN_02003FF4(7);
|
||||
FUN_020C0F68();
|
||||
}
|
||||
15
include/options.h
Normal file
15
include/options.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef POKEDIAMOND_OPTIONS_H
|
||||
#define POKEDIAMOND_OPTIONS_H
|
||||
|
||||
#include "main.h"
|
||||
|
||||
struct Options {
|
||||
u16 unk0_0:4;
|
||||
u16 unk0_4:2;
|
||||
u16 unk0_6:10;
|
||||
u8 padding[2]; // TODO: finish me
|
||||
};
|
||||
|
||||
struct Options * LoadPlayerDataAddress(struct UnkStruct_021C59C8 *);
|
||||
|
||||
#endif //POKEDIAMOND_OPTIONS_H
|
||||
42
include/sdat.h
Normal file
42
include/sdat.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#ifndef GUARD_LIBSDAT_H
|
||||
#define GUARD_LIBSDAT_H
|
||||
|
||||
struct SDATHeader
|
||||
{
|
||||
// Generic header
|
||||
char magic[4];
|
||||
u16 bom;
|
||||
u16 version;
|
||||
u32 filesize;
|
||||
u16 header_size;
|
||||
u16 section_count;
|
||||
// SDAT chunks
|
||||
u32 symb_offset, symb_size;
|
||||
u32 info_offset, info_size;
|
||||
u32 fat_offset, fat_size;
|
||||
u32 file_offset, file_size;
|
||||
u32 unk_00030;
|
||||
FSFile file; // 00034
|
||||
FSFileID fileID; // 7C
|
||||
u32 unk_00084;
|
||||
u32 unk_00088;
|
||||
void * unk_0008C;
|
||||
};
|
||||
|
||||
void FUN_020C01D0(void);
|
||||
void * FUN_020C2A94(void *, u32);
|
||||
void FUN_020C26F8(struct SDATHeader *, char *, void *, u32);
|
||||
void FUN_020C39CC(void *);
|
||||
void FUN_020C01A0(void);
|
||||
int FUN_020C290C(void *);
|
||||
void FUN_020C2828(void *, int);
|
||||
BOOL FUN_020C36A8(u32 *, void *);
|
||||
BOOL FUN_020C3674(u32 *, void *);
|
||||
BOOL FUN_020C35E0(u32 *, u32 *, void *);
|
||||
BOOL FUN_020C360C(u32 *, void *);
|
||||
BOOL FUN_020C3640(u32 *, void *);
|
||||
void FUN_020C0F80(u32 *);
|
||||
void FUN_020C1040(int, int);
|
||||
void FUN_020C0F68(void);
|
||||
|
||||
#endif //GUARD_LIBSDAT_H
|
||||
65
include/sound.h
Normal file
65
include/sound.h
Normal file
@@ -0,0 +1,65 @@
|
||||
#ifndef POKEDIAMOND_SOUND_H
|
||||
#define POKEDIAMOND_SOUND_H
|
||||
|
||||
#include "FS_file.h"
|
||||
#include "sdat.h"
|
||||
#include "options.h"
|
||||
|
||||
struct SoundData
|
||||
{
|
||||
struct SDATHeader header;
|
||||
void * unk_00090;
|
||||
u8 unk_00094[0xBBC00];
|
||||
u32 unk_BBC94[9];
|
||||
u32 unk_BBCB8;
|
||||
u32 unk_BBCBC;
|
||||
u8 unk_BBCC0[0x20];
|
||||
u8 unk_BBCE0[0x1000];
|
||||
u8 unk_BCCE0[0x1C];
|
||||
u16 unk_BCCFC;
|
||||
u16 unk_BCCFE;
|
||||
s32 unk_BCD00;
|
||||
u32 unk_BCD04;
|
||||
u32 unk_BCD08;
|
||||
u16 unk_BCD0C;
|
||||
u16 unk_BCD0E;
|
||||
u8 unk_BCD10;
|
||||
u8 unk_BCD11;
|
||||
u16 unk_BCD12;
|
||||
u8 unk_BCD14;
|
||||
u8 unk_BCD15;
|
||||
u8 unk_BCD16;
|
||||
u8 unk_BCD17;
|
||||
u8 unk_BCD18;
|
||||
u8 unk_BCD19;
|
||||
u8 unk_BCD1A;
|
||||
u8 unk_BCD1B;
|
||||
int unk_BCD1C[7];
|
||||
u8 unk_BCD38;
|
||||
u8 unk_BCD39;
|
||||
u8 unk_BCD3A;
|
||||
u8 unk_BCD3B;
|
||||
u32 unk_BCD3C;
|
||||
u64 unk_BCD40;
|
||||
u32 unk_BCD48;
|
||||
u32 unk_BCD4C;
|
||||
u32 unk_BCD50;
|
||||
u32 unk_BCD54;
|
||||
u32 unk_BCD58;
|
||||
u32 unk_BCD5C;
|
||||
};
|
||||
|
||||
struct SoundData * GetSoundDataPointer(void);
|
||||
void InitSoundData(u32 a0, struct Options * a1);
|
||||
void * FUN_02003D38(u32 a0);
|
||||
int FUN_02003F3C(int * a0);
|
||||
void FUN_02003F64(int a0);
|
||||
BOOL FUN_02003F78(u32 * a0);
|
||||
BOOL FUN_02003F90(u32 * a0);
|
||||
BOOL FUN_02003FA8(u32 * a0, u32 * a1);
|
||||
BOOL FUN_02003FC4(u32 * a0);
|
||||
BOOL FUN_02003FDC(u32 * a0);
|
||||
u32 * FUN_02003FF4(int a0);
|
||||
u32 FUN_02004018(u32 a0);
|
||||
|
||||
#endif //POKEDIAMOND_SOUND_H
|
||||
Reference in New Issue
Block a user