mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-07 19:24:15 -05:00
Merge branch 'master' of https://github.com/pret/pokediamond into unk_0201C6B4
This commit is contained in:
commit
c075e06f73
12
arm7/lib/include/SND_alarm.h
Normal file
12
arm7/lib/include/SND_alarm.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef GUARD_SND_ALARM_H
|
||||
#define GUARD_SND_ALARM_H
|
||||
|
||||
#include "global.h"
|
||||
#include "SND_alarm_shared.h"
|
||||
|
||||
void SND_StopAlarm(u32 idx);
|
||||
void SND_StartAlarm(u32 idx);
|
||||
void SND_SetupAlarm();
|
||||
void SND_AlarmInit();
|
||||
|
||||
#endif //GUARD_SND_ALARM_H
|
||||
8
arm7/lib/include/SND_exChannel.h
Normal file
8
arm7/lib/include/SND_exChannel.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef GUARD_SND_EXCHANNEL_H
|
||||
#define GUARD_SND_EXCHANNEL_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
bool SND_IsChannelActive(u32 idx);
|
||||
|
||||
#endif //GUARD_SND_EXCHANNEL_H
|
||||
4
arm7/lib/include/SND_work.h
Normal file
4
arm7/lib/include/SND_work.h
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef GUARD_SND_WORK_H
|
||||
#define GUARD_SND_WORK_H
|
||||
|
||||
#endif //GUARD_SND_WORK_H
|
||||
|
|
@ -243,12 +243,12 @@ _020424F6:
|
|||
b _020426FA
|
||||
_020424FC:
|
||||
ldr r0, [r1, #0xc]
|
||||
bl FUN_0202A8CC
|
||||
bl SaveStruct23_GetSubstruct1
|
||||
bl MOD06_022433A8
|
||||
b _020426FA
|
||||
_02042508:
|
||||
ldr r0, [r1, #0xc]
|
||||
bl FUN_0202A8CC
|
||||
bl SaveStruct23_GetSubstruct1
|
||||
bl MOD06_022433B0
|
||||
strh r0, [r4, #0x0]
|
||||
b _020426FA
|
||||
|
|
@ -717,7 +717,7 @@ ScrCmd_Unk01E3: ; 0x02042894
|
|||
add r6, r0, #0x0
|
||||
ldr r0, [r5, #0x0]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl FUN_0202A8E4
|
||||
bl SaveStruct23_GetSubstruct4
|
||||
add r1, sp, #0x0
|
||||
bl FUN_0202A864
|
||||
add r0, sp, #0x0
|
||||
|
|
@ -743,8 +743,8 @@ ScrCmd_Unk01E4: ; 0x020428E0
|
|||
add r4, r0, #0x0
|
||||
ldr r0, [r5, #0x0]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl FUN_0202A8E4
|
||||
bl FUN_0202A74C
|
||||
bl SaveStruct23_GetSubstruct4
|
||||
bl SaveStruct23_Substruct4_GetField_0xFF
|
||||
strh r0, [r4, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r5, pc}
|
||||
|
|
@ -862,10 +862,10 @@ ScrCmd_Unk0297: ; 0x020429B8
|
|||
bl GetVarPointer
|
||||
add r5, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
mov r1, #0x0
|
||||
add r2, r1, #0x0
|
||||
bl FUN_0202A3B4
|
||||
bl SaveStruct23_Substruct2_SetField_0x0
|
||||
strh r0, [r5, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r5, pc}
|
||||
|
|
@ -885,10 +885,10 @@ ScrCmd_Unk0298: ; 0x020429E8
|
|||
bl VarGet
|
||||
add r5, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
add r1, r5, #0x0
|
||||
mov r2, #0x5
|
||||
bl FUN_0202A3B4
|
||||
bl SaveStruct23_Substruct2_SetField_0x0
|
||||
mov r0, #0x0
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
|
|
@ -908,10 +908,10 @@ ScrCmd_Unk0299: ; 0x02042A18
|
|||
bl VarGet
|
||||
add r5, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
add r1, r5, #0x0
|
||||
mov r2, #0x6
|
||||
bl FUN_0202A3B4
|
||||
bl SaveStruct23_Substruct2_SetField_0x0
|
||||
mov r0, #0x0
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
|
|
@ -939,10 +939,10 @@ ScrCmd_Unk029A: ; 0x02042A48
|
|||
bl GetVarPointer
|
||||
add r4, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
mov r1, #0x0
|
||||
add r2, r1, #0x0
|
||||
bl FUN_0202A3B4
|
||||
bl SaveStruct23_Substruct2_SetField_0x0
|
||||
cmp r0, r6
|
||||
bhs _02042A8E
|
||||
mov r0, #0x0
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -2193,10 +2193,10 @@ FUN_02038790: ; 0x02038790
|
|||
bl AllocFromHeapAtEnd
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [r5, #0xc]
|
||||
bl FUN_0202A8E4
|
||||
bl SaveStruct23_GetSubstruct4
|
||||
str r0, [r4, #0x4]
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Sav2_SysInfo_get
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ FUN_02066840: ; 0x02066840
|
|||
bl FUN_02029AFC
|
||||
add r5, r0, #0x0
|
||||
add r0, r6, #0x0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
str r0, [sp, #0x4]
|
||||
add r0, r7, #0x0
|
||||
mov r1, #0x0
|
||||
|
|
@ -93,7 +93,7 @@ FUN_02066840: ; 0x02066840
|
|||
_020668FC:
|
||||
add r0, r6, #0x0
|
||||
add r1, r4, #0x0
|
||||
bl FUN_0202A5F4
|
||||
bl SaveStruct23_GetMessage
|
||||
ldr r1, [sp, #0x8]
|
||||
mov r2, #0x8
|
||||
add r1, r1, r5
|
||||
|
|
@ -104,7 +104,7 @@ _020668FC:
|
|||
blt _020668FC
|
||||
add r0, r6, #0x0
|
||||
mov r1, #0x3
|
||||
bl FUN_0202A5F4
|
||||
bl SaveStruct23_GetMessage
|
||||
add r1, r7, #0x0
|
||||
add r1, #0xc0
|
||||
mov r2, #0x8
|
||||
|
|
@ -115,7 +115,7 @@ _020668FC:
|
|||
ldr r0, [sp, #0x4]
|
||||
mov r1, #0x7
|
||||
mov r2, #0x0
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
add r1, r7, #0x0
|
||||
add r1, #0xe2
|
||||
strh r0, [r1, #0x0]
|
||||
|
|
@ -127,19 +127,19 @@ _020668FC:
|
|||
ldr r0, [sp, #0x4]
|
||||
ldr r1, [sp, #0x0]
|
||||
add r2, r7, #0x0
|
||||
bl FUN_0202A498
|
||||
bl SaveStruct23_Substruct2_GetArray
|
||||
add sp, #0xc
|
||||
pop {r4-r7, pc}
|
||||
_02066956:
|
||||
ldr r0, [sp, #0x4]
|
||||
bl FUN_0202A520
|
||||
bl SaveStruct23_Substruct2_GetField_0x16
|
||||
add r1, r7, #0x0
|
||||
add r1, #0xe2
|
||||
strh r0, [r1, #0x0]
|
||||
ldr r0, [sp, #0x4]
|
||||
ldr r1, [sp, #0x0]
|
||||
add r2, r7, #0x0
|
||||
bl FUN_0202A498
|
||||
bl SaveStruct23_Substruct2_GetArray
|
||||
_0206696C:
|
||||
add sp, #0xc
|
||||
pop {r4-r7, pc}
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ _0208A4E8:
|
|||
ldr r0, [r4, #0x0]
|
||||
mov r1, #0x0
|
||||
ldr r0, [r0, #0xc]
|
||||
bl FUN_0202A5F4
|
||||
bl SaveStruct23_GetMessage
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x48
|
||||
|
|
@ -220,7 +220,7 @@ _0208A502:
|
|||
ldr r0, [r4, #0x0]
|
||||
mov r1, #0x1
|
||||
ldr r0, [r0, #0xc]
|
||||
bl FUN_0202A5F4
|
||||
bl SaveStruct23_GetMessage
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x48
|
||||
|
|
@ -232,7 +232,7 @@ _0208A51C:
|
|||
ldr r0, [r4, #0x0]
|
||||
mov r1, #0x2
|
||||
ldr r0, [r0, #0xc]
|
||||
bl FUN_0202A5F4
|
||||
bl SaveStruct23_GetMessage
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x48
|
||||
|
|
@ -244,7 +244,7 @@ _0208A536:
|
|||
ldr r0, [r4, #0x0]
|
||||
mov r1, #0x3
|
||||
ldr r0, [r0, #0xc]
|
||||
bl FUN_0202A5F4
|
||||
bl SaveStruct23_GetMessage
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x48
|
||||
|
|
@ -335,7 +335,7 @@ _0208A5EC:
|
|||
ldr r0, [r0, #0xc]
|
||||
ldr r1, [r4, #0x64]
|
||||
add r2, #0x48
|
||||
bl FUN_0202A5D4
|
||||
bl SaveStruct23_SetMessage
|
||||
add r0, r4, #0x0
|
||||
mov r1, #0x6
|
||||
mov r2, #0x0
|
||||
|
|
|
|||
|
|
@ -1998,42 +1998,45 @@
|
|||
.extern FUN_0202A170
|
||||
.extern FUN_0202A1B8
|
||||
.extern FUN_0202A1C4
|
||||
.extern FUN_0202A1E0
|
||||
.extern FUN_0202A1E4
|
||||
.extern FUN_0202A240
|
||||
.extern FUN_0202A2C4
|
||||
.extern SaveStruct23_Substruct4_Substruct1_sizeof
|
||||
.extern SaveStruct23_Substruct1_Init
|
||||
.extern SaveStruct23_Substruct2_Init
|
||||
.extern SaveStruct23_Messages_Init
|
||||
.extern SaveStruct23_Substruct4_Init
|
||||
.extern SaveStruct23_Substruct1_GetField
|
||||
.extern SaveStruct23_Substruct1_SetField
|
||||
.extern FUN_0202A36C
|
||||
.extern FUN_0202A398
|
||||
.extern FUN_0202A3A0
|
||||
.extern FUN_0202A3B4
|
||||
.extern FUN_0202A40C
|
||||
.extern FUN_0202A444
|
||||
.extern FUN_0202A474
|
||||
.extern FUN_0202A498
|
||||
.extern FUN_0202A4B8
|
||||
.extern FUN_0202A520
|
||||
.extern SaveStruct23_Substruct1_GetFlag1
|
||||
.extern SaveStruct23_Substruct1_SetFlag1
|
||||
.extern SaveStruct23_Substruct2_SetField_0x0
|
||||
.extern SaveStruct23_Substruct2_SetField_0x2
|
||||
.extern SaveStruct23_Substruct2_SetField_0x3
|
||||
.extern SaveStruct23_Substruct2_SetArray
|
||||
.extern SaveStruct23_Substruct2_GetArray
|
||||
.extern SaveStruct23_Substruct2_SetField_0x16
|
||||
.extern SaveStruct23_Substruct2_GetField_0x16
|
||||
.extern FUN_0202A524
|
||||
.extern FUN_0202A538
|
||||
.extern FUN_0202A578
|
||||
.extern FUN_0202A5CC
|
||||
.extern FUN_0202A5D0
|
||||
.extern FUN_0202A5D4
|
||||
.extern FUN_0202A5F4
|
||||
.extern FUN_0202A60C
|
||||
.extern FUN_0202A6B4
|
||||
.extern FUN_0202A744
|
||||
.extern FUN_0202A74C
|
||||
.extern FUN_0202A754
|
||||
.extern SaveStruct23_Substruct2_SetField_0xC
|
||||
.extern SaveStruct23_Substruct2_SetFlag
|
||||
.extern SaveStruct23_Substruct2_SetField_0x4
|
||||
.extern SaveStruct23_Substruct2_GetField_0x4
|
||||
.extern SaveStruct23_SetMessage
|
||||
.extern SaveStruct23_GetMessage
|
||||
.extern SaveStruct23_Substruct4_SetArrayFlag
|
||||
.extern SaveStruct23_Substruct4_GetArrayFlag
|
||||
.extern SaveStruct23_Substruct4_GetField_0xFE
|
||||
.extern SaveStruct23_Substruct4_GetField_0xFF
|
||||
.extern SaveStruct23_Substruct4_SetSubstruct1
|
||||
.extern FUN_0202A784
|
||||
.extern FUN_0202A798
|
||||
.extern FUN_0202A838
|
||||
.extern FUN_0202A864
|
||||
.extern FUN_0202A878
|
||||
.extern FUN_0202A89C
|
||||
.extern FUN_0202A8A4
|
||||
.extern FUN_0202A8CC
|
||||
.extern FUN_0202A8D8
|
||||
.extern FUN_0202A8E4
|
||||
.extern SaveStruct23_sizeof
|
||||
.extern SaveStruct23_Init
|
||||
.extern SaveStruct23_GetSubstruct1
|
||||
.extern SaveStruct23_GetSubstruct2
|
||||
.extern SaveStruct23_GetSubstruct4
|
||||
.extern FUN_0202A8F4
|
||||
.extern FUN_0202A8F8
|
||||
.extern FUN_0202A918
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "MI_dma.h"
|
||||
#include "CARD_common.h"
|
||||
#include "OS_tcm.h"
|
||||
#include "mmap.h"
|
||||
|
||||
#define CARD_ROM_PAGE_SIZE 512
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "fx.h"
|
||||
|
||||
#include "registers.h"
|
||||
|
||||
void GXi_NopClearFifo128_(void *reg);
|
||||
void G3X_Init();
|
||||
void G3X_ResetMtxStack();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef POKEDIAMOND_MI_EXMEMORY_H
|
||||
#define POKEDIAMOND_MI_EXMEMORY_H
|
||||
|
||||
#include "consts.h"
|
||||
#include "registers.h"
|
||||
|
||||
typedef enum {
|
||||
MI_PROCESSOR_ARM9 = 0,
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@
|
|||
#ifndef POKEDIAMOND_OS_ENTROPY_H
|
||||
#define POKEDIAMOND_OS_ENTROPY_H
|
||||
|
||||
#include "consts.h"
|
||||
#include "userInfo.h"
|
||||
#include "registers.h"
|
||||
|
||||
void OS_GetLowEntropyData(u32 * arr);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef POKEDIAMOND_ARM9_OS_INTERRUPT_H
|
||||
#define POKEDIAMOND_ARM9_OS_INTERRUPT_H
|
||||
|
||||
#include "consts.h"
|
||||
#include "registers.h"
|
||||
#include "nitro/OS_interrupt_shared.h"
|
||||
|
||||
#define REG_OS_IME_IME_SHIFT 0
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef POKEDIAMOND_OS_IRQHANDLER_H
|
||||
#define POKEDIAMOND_OS_IRQHANDLER_H
|
||||
|
||||
#include "consts.h"
|
||||
#include "OS_interrupt.h"
|
||||
#include "mmap.h"
|
||||
|
||||
static inline void OS_ClearIrqCheckFlag(OSIrqMask intr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef POKEDIAMOND_ARM9_OS_IRQTABLE_H
|
||||
#define POKEDIAMOND_ARM9_OS_IRQTABLE_H
|
||||
|
||||
#include "consts.h"
|
||||
#include "mmap.h"
|
||||
#include "OS_interrupt.h"
|
||||
|
||||
void OS_IrqDummy(void);
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
#ifndef POKEDIAMOND_ARM9_OS_RESET_H
|
||||
#define POKEDIAMOND_ARM9_OS_RESET_H
|
||||
|
||||
#include "consts.h"
|
||||
#include "nitro/OS_reset_shared.h"
|
||||
#include "PXI_fifo.h"
|
||||
#include "mmap.h"
|
||||
|
||||
void OS_InitReset(void);
|
||||
void OS_ResetSystem(u32 parameter);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef NITRO_PAD_PAD_H_
|
||||
#define NITRO_PAD_PAD_H_
|
||||
|
||||
#include "consts.h"
|
||||
#include "registers.h"
|
||||
|
||||
//================================================================================
|
||||
// BUTTONS
|
||||
|
|
|
|||
|
|
@ -2,24 +2,13 @@
|
|||
#define GUARD_SND_ALARM_H
|
||||
|
||||
#include "global.h"
|
||||
#include "OS_alarm.h"
|
||||
#include "nitro/SND_alarm_shared.h"
|
||||
|
||||
typedef void (*SNDAlarmCallback)(void *);
|
||||
|
||||
struct SNDAlarm {
|
||||
u8 enable; // 0x00
|
||||
u8 id; // 0x01
|
||||
u16 unk_2; // 0x02
|
||||
OSTick tick; // 0x04
|
||||
OSTick period; // 0x0C
|
||||
OSAlarm alarm; // 0x14
|
||||
}; // size = 0x40
|
||||
|
||||
void SND_AlarmInit(void);
|
||||
void SNDi_IncAlarmId(u32 idx);
|
||||
u8 SNDi_SetAlarmHandler(u32 idx, SNDAlarmCallback cb, void *data);
|
||||
void SNDi_CallAlarmHandler(s32 idx);
|
||||
|
||||
#define SND_ALARM_COUNT 8
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "global.h"
|
||||
#include "SND_bank.h"
|
||||
#include "SND_work.h"
|
||||
#include "SND_alarm.h"
|
||||
|
||||
void SND_StartSeq(s32 player, const void *seqBasePtr, u32 seqOffset, struct SNDBankData *bankData);
|
||||
void SND_StopSeq(s32 player);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "global.h"
|
||||
|
||||
#include "nitro/SND_main_shared.h"
|
||||
|
||||
void SNDi_UnlockMutex(void);
|
||||
void SNDi_LockMutex(void);
|
||||
void SND_Init(void);
|
||||
|
|
@ -21,165 +23,4 @@ typedef struct SNDBinaryBlockHeader {
|
|||
u32 size; // 0x4
|
||||
} SNDBinaryBlockHeader; // size = 0x8
|
||||
|
||||
struct SNDWaveParam {
|
||||
u8 format; // 0x0
|
||||
u8 loopEnabled; // 0x1
|
||||
u16 samplerate; // 0x2
|
||||
u16 timer; // 0x4
|
||||
u16 loopStart; // 0x6
|
||||
u32 loopLength; // 0x8
|
||||
}; // size = 0xC
|
||||
|
||||
struct SNDLfoParam {
|
||||
u8 target; // 0x0
|
||||
u8 speed; // 0x1
|
||||
u8 depth; // 0x2
|
||||
u8 range; // 0x3
|
||||
u16 delay; // 0x4
|
||||
}; // size = 0x6
|
||||
|
||||
struct SNDLfo {
|
||||
struct SNDLfoParam param; // 0x0
|
||||
u16 delayCounter; // 0x6
|
||||
u16 counter; // 0x8
|
||||
}; // size = 0xA
|
||||
|
||||
struct SNDExChannel {
|
||||
u8 id; // 0x00
|
||||
u8 type; // 0x01
|
||||
u8 envStatus; // 0x02
|
||||
|
||||
struct {
|
||||
u8 active : 1;
|
||||
u8 start : 1;
|
||||
u8 autoSweep : 1;
|
||||
u8 syncFlag : 5;
|
||||
} flags; // 0x03
|
||||
|
||||
u8 panRange; // 0x04
|
||||
u8 rootMidiKey; // 0x05
|
||||
s16 userDecay2; // 0x06
|
||||
|
||||
u8 midiKey; // 0x08
|
||||
u8 velocity; // 0x09
|
||||
s8 initPan; // 0x0A
|
||||
s8 userPan; // 0x0B
|
||||
|
||||
s16 userDecay; // 0x0C
|
||||
s16 userPitch; // 0x0E
|
||||
|
||||
s32 envAttenuation; // 0x10
|
||||
s32 sweepCounter; // 0x14
|
||||
s32 sweepLength; // 0x18
|
||||
|
||||
u8 envAttack; // 0x1C
|
||||
u8 envSustain; // 0x1D
|
||||
u16 envDecay; // 0x1E
|
||||
u16 envRelease; // 0x20
|
||||
u8 priority; // 0x22
|
||||
u8 pan; // 0x23
|
||||
u16 volume; // 0x24
|
||||
u16 timer; // 0x26
|
||||
|
||||
struct SNDLfo lfo; // 0x28
|
||||
|
||||
s16 sweepPitch; // 0x32
|
||||
|
||||
s32 length; // 0x34
|
||||
|
||||
struct SNDWaveParam waveParam; // 0x38
|
||||
|
||||
union {
|
||||
const void *waveDataPtr;
|
||||
u32 dutyCycle;
|
||||
}; // 0x44
|
||||
|
||||
void (*callback)(struct SNDExChannel *chn, u32 status, void *userData); // 0x48
|
||||
void *callbackUserData; // 0x4C
|
||||
|
||||
struct SNDExChannel *channelLLNext; // 0x50
|
||||
}; // size = 0x54
|
||||
|
||||
#define SND_TRACK_COUNT_PER_PLAYER 16
|
||||
#define SND_INVALID_TRACK_INDEX 0xFF
|
||||
|
||||
struct SNDPlayer {
|
||||
struct {
|
||||
u8 active : 1;
|
||||
u8 prepared : 1;
|
||||
u8 paused : 1;
|
||||
} flags; // 0x0
|
||||
|
||||
u8 playerId; // 0x1
|
||||
u8 unk_2[2]; // 0x2
|
||||
|
||||
u8 prio; // 0x4
|
||||
u8 volume; // 0x5
|
||||
s16 extFader; // 0x6
|
||||
|
||||
u8 tracks[SND_TRACK_COUNT_PER_PLAYER]; // 0x8
|
||||
|
||||
u16 tempo; // 0x18
|
||||
u16 tempoRatio; // 0x1A
|
||||
u16 tempoCounter; // 0x1C
|
||||
u8 unk_1E[2]; // 0x1E
|
||||
|
||||
struct SNDBankData *bank; // 0x20
|
||||
}; // size = 0x24
|
||||
|
||||
#define SND_TRACK_MAX_CALL 3
|
||||
|
||||
struct SNDBankData;
|
||||
|
||||
struct SNDTrack {
|
||||
struct {
|
||||
u8 active : 1;
|
||||
u8 noteWait : 1;
|
||||
u8 muted : 1;
|
||||
u8 tie : 1;
|
||||
u8 noteFinishWait : 1;
|
||||
u8 portamento : 1;
|
||||
u8 cmp : 1; // ???
|
||||
u8 channelMask : 1;
|
||||
} flags; // 0x00
|
||||
|
||||
u8 panRange; // 0x01
|
||||
u16 program; // 0x02
|
||||
|
||||
u8 volume; // 0x04
|
||||
u8 expression; // 0x05
|
||||
s8 pitchBend; // 0x06
|
||||
u8 bendRange; // 0x07
|
||||
|
||||
s8 pan; // 0x08
|
||||
s8 extPan; // 0x09
|
||||
s16 extFader; // 0x0A
|
||||
s16 extPitch; // 0x0C
|
||||
u8 envAttack; // 0x0E
|
||||
u8 envDecay; // 0x0F
|
||||
u8 envSustain; // 0x10
|
||||
u8 envRelease; // 0x11
|
||||
u8 priority; // 0x12
|
||||
s8 transpose; // 0x13
|
||||
|
||||
u8 portamentoKey; // 0x14
|
||||
u8 portamentoTime; // 0x15
|
||||
s16 sweepPitch; // 0x16
|
||||
|
||||
struct SNDLfoParam mod; // 0x18
|
||||
u16 channelMask; // 0x1E
|
||||
|
||||
s32 wait; // 0x20
|
||||
|
||||
const u8 *trackDataStart; // 0x24
|
||||
const u8 *trackDataPos; // 0x28
|
||||
const u8 *posCallStack[SND_TRACK_MAX_CALL]; // 0x34
|
||||
u8 loopCount[SND_TRACK_MAX_CALL]; // 0x38
|
||||
u8 callStackDepth; // 0x3B
|
||||
|
||||
struct SNDExChannel *channelLLHead; // 0x3C
|
||||
}; // size = 0x40
|
||||
|
||||
|
||||
|
||||
#endif // GUARD_SND_MAIN_H
|
||||
|
|
|
|||
|
|
@ -4,31 +4,7 @@
|
|||
#include "global.h"
|
||||
|
||||
#include "SND_main.h"
|
||||
#include "SND_alarm.h"
|
||||
|
||||
#define SND_PLAYER_COUNT 16
|
||||
#define SND_CHANNEL_COUNT 16
|
||||
#define SND_TRACK_COUNT 32
|
||||
|
||||
struct SNDWork {
|
||||
struct SNDExChannel channels[SND_CHANNEL_COUNT]; // 0x00
|
||||
struct SNDPlayer players[SND_PLAYER_COUNT]; // 0x540
|
||||
struct SNDTrack tracks[SND_TRACK_COUNT]; // 0x780
|
||||
struct SNDAlarm alarms[SND_ALARM_COUNT]; // 0xF80
|
||||
}; // size = 0x1180
|
||||
|
||||
struct SNDSharedWork {
|
||||
u32 finishedCommandTag; // 0x0
|
||||
u32 playerStatus; // 0x4
|
||||
u16 channelStatus; // 0x8
|
||||
u16 captureStatus; // 0xA
|
||||
u8 unk_C[0x14]; // 0xC
|
||||
struct {
|
||||
s16 localVars[16]; // local 0x0
|
||||
u32 tickCounter; // local 0x20
|
||||
} players[SND_PLAYER_COUNT]; // 0x20
|
||||
s16 globalVars[16]; // 0x260
|
||||
}; // size = 0x280
|
||||
#include "nitro/SND_work_shared.h"
|
||||
|
||||
struct SNDDriverInfo {
|
||||
struct SNDWork work; // 0x0000
|
||||
|
|
|
|||
|
|
@ -2,9 +2,6 @@
|
|||
#define POKEDIAMOND_ARM9_CONSTS_H
|
||||
|
||||
#include "nitro/consts_shared.h"
|
||||
#include "mmap.h"
|
||||
#include "registers.h"
|
||||
#include "systemWork.h"
|
||||
|
||||
#define HW_C5_PERMIT_MASK 0xf
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef GUARD_FX_H
|
||||
#define GUARD_FX_H
|
||||
|
||||
#include "nitro/types.h"
|
||||
|
||||
typedef s16 fx16;
|
||||
typedef s32 fx32;
|
||||
typedef s64 fx64;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
#ifndef POKEDIAMOND_ARM9_SYSTEMWORK_H
|
||||
#define POKEDIAMOND_ARM9_SYSTEMWORK_H
|
||||
|
||||
#include "OS_context.h"
|
||||
#include "nitro/OS_systemWork_shared.h"
|
||||
|
||||
#endif //POKEDIAMOND_ARM9_SYSTEMWORK_H
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "OS_cache.h"
|
||||
#include "MB_mb.h"
|
||||
#include "PXI_fifo.h"
|
||||
#include "mmap.h"
|
||||
|
||||
CARDiCommon cardi_common ALIGN(32);
|
||||
static CARDiCommandArg cardi_arg ALIGN(32);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "PAD_pad.h"
|
||||
#include "SPI_pm.h"
|
||||
#include "syscall.h"
|
||||
#include "mmap.h"
|
||||
|
||||
static CARDPulledOutCallback CARD_UserCallback;
|
||||
static BOOL CARDi_IsPulledOutFlag = FALSE;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "CP_context.h"
|
||||
#include "function_target.h"
|
||||
#include "consts.h"
|
||||
#include "registers.h"
|
||||
|
||||
ARM_FUNC asm void CP_SaveContext(register CPContext *context)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "PXI_fifo.h"
|
||||
#include "MI_dma.h"
|
||||
#include "MI_memory.h"
|
||||
#include "mmap.h"
|
||||
|
||||
CTRDGWork CTRDGi_Work;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "global.h"
|
||||
#include "fx.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "registers.h"
|
||||
|
||||
|
||||
ARM_FUNC fx32 FX_Div(fx32 numerator, fx32 denominator){
|
||||
FX_DivAsync(numerator, denominator);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "global.h"
|
||||
#include "fx.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "registers.h"
|
||||
|
||||
ARM_FUNC void VEC_Add(struct Vecx32 *a, struct Vecx32 *b, struct Vecx32 *dst){
|
||||
dst->x = a->x + b->x;
|
||||
dst->y = a->y + b->y;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
#include "global.h"
|
||||
#include "gx.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "OS_spinLock.h"
|
||||
#include "OS_terminate_proc.h"
|
||||
|
||||
u32 GXi_DmaId = 3;
|
||||
vu16 GXi_VRamLockId = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
#include "function_target.h"
|
||||
#include "consts.h"
|
||||
#include "MI_wram.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "registers.h"
|
||||
|
||||
ARM_FUNC void MI_SetWramBank(MIWram cnt)
|
||||
{
|
||||
reg_GX_VRAMCNT_WRAM = (u8)cnt;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
#include "function_target.h"
|
||||
#include "consts.h"
|
||||
#include "OS_arena.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "OS_protectionRegion.h"
|
||||
#include "OS_emulator.h"
|
||||
#include "mmap.h"
|
||||
|
||||
static BOOL OSi_Initialized = FALSE;
|
||||
static BOOL OSi_MainExArenaEnabled = FALSE;
|
||||
|
|
|
|||
|
|
@ -2,10 +2,13 @@
|
|||
// Created by red031000 on 2020-05-03.
|
||||
//
|
||||
|
||||
#include "function_target.h"
|
||||
#include "consts.h"
|
||||
#include "OS_entropy.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "registers.h"
|
||||
#include "systemWork.h"
|
||||
#include "userInfo.h"
|
||||
|
||||
ARM_FUNC void OS_GetLowEntropyData(u32 * arr)
|
||||
{
|
||||
const OSSystemWork* work = OS_GetSystemWork();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "OS_exception.h"
|
||||
#include "function_target.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "OS_protectionUnit.h"
|
||||
#include "mmap.h"
|
||||
|
||||
static OSiExContext OSi_ExContext;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "consts.h"
|
||||
#include "function_target.h"
|
||||
#include "OS_interrupt.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "registers.h"
|
||||
#include "mmap.h"
|
||||
#include "OS_thread.h"
|
||||
|
||||
#pragma optimize_for_size on
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#include "function_target.h"
|
||||
#include "OS_ownerInfo.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "systemWork.h"
|
||||
#include "MI_memory.h"
|
||||
|
||||
ARM_FUNC void OS_GetMacAddress(u8 *macAddress)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "function_target.h"
|
||||
#include "OS_reset.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "MB_mb.h"
|
||||
#include "OS_terminate_proc.h"
|
||||
#include "OS_interrupt.h"
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@
|
|||
//
|
||||
|
||||
#include "OS_spinLock.h"
|
||||
|
||||
#include "OS_system.h"
|
||||
#include "function_target.h"
|
||||
#include "consts.h"
|
||||
#include "mmap.h"
|
||||
#include "MI_exMemory.h"
|
||||
|
||||
extern void MIi_CpuClear32(u32 param1, void * addr, u32 length); //not too sure about names
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@
|
|||
#include "OS_system.h"
|
||||
#include "OS_context.h"
|
||||
#include "OS_terminate_proc.h"
|
||||
#include "consts.h"
|
||||
#include "systemWork.h"
|
||||
#include "mmap.h"
|
||||
|
||||
extern void SDK_SYS_STACKSIZE(void);
|
||||
extern void SDK_IRQ_STACKSIZE(void);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
#include "SND_alarm.h"
|
||||
#include "SND_command.h"
|
||||
#include "SND_work.h"
|
||||
#include "OS_emulator.h"
|
||||
#include "OS_system.h"
|
||||
#include "OS_cache.h"
|
||||
#include "PXI_fifo.h"
|
||||
|
||||
#define SND_CMD_WAIT_QUEUE_COUNT 8
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "global.h"
|
||||
#include "custom_allocator.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "OS_alloc.h"
|
||||
|
||||
static FreeFunc sDestructor;
|
||||
static AllocFunc sAllocator;
|
||||
|
||||
|
|
|
|||
|
|
@ -2073,10 +2073,10 @@ MOD05_021E2AD4: ; 0x021E2AD4
|
|||
bl NewString_ReadMsgData
|
||||
str r0, [sp, #0x10]
|
||||
ldr r0, [r6, #0xc]
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
mov r1, #0
|
||||
add r2, r1, #0
|
||||
bl FUN_0202A3B4
|
||||
bl SaveStruct23_Substruct2_SetField_0x0
|
||||
add r2, r0, #0
|
||||
mov r0, #1
|
||||
str r0, [sp]
|
||||
|
|
|
|||
|
|
@ -19893,17 +19893,17 @@ _022433A4: .word OS_ResetSystem
|
|||
|
||||
thumb_func_start MOD06_022433A8
|
||||
MOD06_022433A8: ; 0x022433A8
|
||||
ldr r3, _022433AC ; =FUN_0202A1E4
|
||||
ldr r3, _022433AC ; =SaveStruct23_Substruct1_Init
|
||||
bx r3
|
||||
.align 2, 0
|
||||
_022433AC: .word FUN_0202A1E4
|
||||
_022433AC: .word SaveStruct23_Substruct1_Init
|
||||
|
||||
thumb_func_start MOD06_022433B0
|
||||
MOD06_022433B0: ; 0x022433B0
|
||||
ldr r3, _022433B4 ; =FUN_0202A398
|
||||
ldr r3, _022433B4 ; =SaveStruct23_Substruct1_GetFlag1
|
||||
bx r3
|
||||
.align 2, 0
|
||||
_022433B4: .word FUN_0202A398
|
||||
_022433B4: .word SaveStruct23_Substruct1_GetFlag1
|
||||
|
||||
thumb_func_start MOD06_022433B8
|
||||
MOD06_022433B8: ; 0x022433B8
|
||||
|
|
@ -19965,26 +19965,26 @@ _02243414:
|
|||
MOD06_02243428: ; 0x02243428
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
cmp r4, #0
|
||||
bne _0224343E
|
||||
mov r1, #5
|
||||
mov r2, #2
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
pop {r4, pc}
|
||||
_0224343E:
|
||||
mov r1, #5
|
||||
mov r2, #1
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start MOD06_02243448
|
||||
MOD06_02243448: ; 0x02243448
|
||||
push {r3, lr}
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
mov r1, #5
|
||||
mov r2, #0
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
pop {r3, pc}
|
||||
|
|
@ -19993,15 +19993,15 @@ MOD06_02243448: ; 0x02243448
|
|||
MOD06_0224345C: ; 0x0224345C
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r0, #0
|
||||
bl FUN_0202A8CC
|
||||
bl SaveStruct23_GetSubstruct1
|
||||
add r4, r0, #0
|
||||
add r0, r5, #0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
mov r1, #0
|
||||
add r6, r0, #0
|
||||
add r0, r4, #0
|
||||
add r2, r1, #0
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
lsl r0, r0, #0x18
|
||||
lsr r4, r0, #0x18
|
||||
cmp r4, #5
|
||||
|
|
@ -20015,11 +20015,11 @@ _02243484:
|
|||
add r0, r6, #0
|
||||
lsr r1, r1, #0x10
|
||||
mov r2, #2
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
add r0, r6, #0
|
||||
add r1, r4, #0
|
||||
mov r2, #2
|
||||
bl FUN_0202A538
|
||||
bl SaveStruct23_Substruct2_SetField_0xC
|
||||
cmp r4, #4
|
||||
beq _022434A8
|
||||
add r0, r5, #0
|
||||
|
|
@ -20031,8 +20031,8 @@ _022434A8:
|
|||
thumb_func_start MOD06_022434AC
|
||||
MOD06_022434AC: ; 0x022434AC
|
||||
push {r3, lr}
|
||||
bl FUN_0202A8E4
|
||||
bl FUN_0202A744
|
||||
bl SaveStruct23_GetSubstruct4
|
||||
bl SaveStruct23_Substruct4_GetField_0xFE
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
pop {r3, pc}
|
||||
|
|
@ -20072,16 +20072,16 @@ MOD06_022434D0: ; 0x022434D0
|
|||
mov r0, #0x3b
|
||||
str r0, [r4, #4]
|
||||
add r0, r6, #0
|
||||
bl FUN_0202A8CC
|
||||
bl SaveStruct23_GetSubstruct1
|
||||
str r0, [r4, #0x70]
|
||||
add r0, r6, #0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
str r0, [r4, #0x74]
|
||||
ldr r0, _02243688 ; =0x12345678
|
||||
mov r1, #0
|
||||
str r0, [r4]
|
||||
ldr r0, [r4, #0x70]
|
||||
bl FUN_0202A3A0
|
||||
bl SaveStruct23_Substruct1_SetFlag1
|
||||
cmp r5, #0
|
||||
bne _0224356C
|
||||
strb r7, [r4, #0xf]
|
||||
|
|
@ -20114,25 +20114,25 @@ _02243544:
|
|||
cmp r2, #0xe
|
||||
blo _02243544
|
||||
ldr r0, [r4, #0x70]
|
||||
bl FUN_0202A1E4
|
||||
bl SaveStruct23_Substruct1_Init
|
||||
ldrb r1, [r4, #0xf]
|
||||
add r0, sp, #8
|
||||
add r2, sp, #8
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #0
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
b _0224362A
|
||||
_0224356C:
|
||||
mov r1, #0
|
||||
ldr r0, [r4, #0x70]
|
||||
add r2, r1, #0
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
strb r0, [r4, #0xf]
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #1
|
||||
mov r2, #0
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xc]
|
||||
sub r0, r0, #1
|
||||
|
|
@ -20144,16 +20144,16 @@ _0224356C:
|
|||
ldr r0, [r4, #0x70]
|
||||
mov r1, #5
|
||||
add r2, #0x2a
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
add r2, r4, #0
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #8
|
||||
add r2, #0x3e
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #0xa
|
||||
mov r2, #0
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
str r0, [r4, #8]
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #2
|
||||
|
|
@ -20161,7 +20161,7 @@ _0224356C:
|
|||
ldr r0, [r4, #0x70]
|
||||
mov r1, #9
|
||||
mov r2, #0
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
lsl r0, r0, #0x18
|
||||
lsr r0, r0, #0x18
|
||||
lsl r0, r0, #0x1d
|
||||
|
|
@ -20180,14 +20180,14 @@ _0224356C:
|
|||
lsl r3, r3, #4
|
||||
mov r1, #6
|
||||
add r2, r2, r3
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
ldrb r0, [r4, #0x10]
|
||||
mov r1, #7
|
||||
mov r2, #0
|
||||
lsl r0, r0, #0x18
|
||||
lsr r5, r0, #0x1d
|
||||
ldr r0, [r4, #0x70]
|
||||
bl FUN_0202A240
|
||||
bl SaveStruct23_Substruct1_GetField
|
||||
add r3, r0, #0
|
||||
ldr r0, _02243690 ; =0x000007E8
|
||||
mov r1, #0xa6
|
||||
|
|
@ -20226,7 +20226,7 @@ _0224362A:
|
|||
lsl r1, r1, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
mov r2, #0
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
beq _02243668
|
||||
|
|
@ -20244,7 +20244,7 @@ _02243668:
|
|||
ldrb r1, [r4, #0xf]
|
||||
ldr r0, [r4, #0x74]
|
||||
mov r2, #0
|
||||
bl FUN_0202A538
|
||||
bl SaveStruct23_Substruct2_SetField_0xC
|
||||
strh r0, [r4, #0x1c]
|
||||
_0224367E:
|
||||
add r0, r4, #0
|
||||
|
|
@ -20707,17 +20707,17 @@ _022439B8:
|
|||
strb r1, [r0]
|
||||
ldr r0, [r5, #0x70]
|
||||
mov r1, #0
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
ldrb r1, [r5, #0xc]
|
||||
add r0, sp, #0
|
||||
add r2, sp, #0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r5, #0x70]
|
||||
mov r1, #1
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
ldr r0, [r5, #0x74]
|
||||
ldr r1, [r5, #0x70]
|
||||
bl FUN_0202A4B8
|
||||
bl SaveStruct23_Substruct2_SetField_0x16
|
||||
_022439F6:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
|
||||
|
|
@ -20771,7 +20771,7 @@ _02243A52:
|
|||
add r1, #8
|
||||
lsl r1, r1, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
beq _02243A74
|
||||
|
|
@ -20793,7 +20793,7 @@ _02243A7E:
|
|||
lsl r1, r1, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
mov r2, #2
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
ldrb r2, [r5, #0xd]
|
||||
ldr r0, [sp, #4]
|
||||
mov r1, #0x1d
|
||||
|
|
@ -20801,7 +20801,7 @@ _02243A7E:
|
|||
ldrb r1, [r5, #0xf]
|
||||
ldr r0, [r5, #0x74]
|
||||
mov r2, #2
|
||||
bl FUN_0202A538
|
||||
bl SaveStruct23_Substruct2_SetField_0xC
|
||||
ldr r0, [sp, #8]
|
||||
bl FUN_02029FC8
|
||||
mov r1, #0xf
|
||||
|
|
@ -20849,7 +20849,7 @@ MOD06_02243AD8: ; 0x02243AD8
|
|||
lsr r1, r1, #0x10
|
||||
mov r2, #0
|
||||
add r4, #0x35
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
beq _02243B1A
|
||||
|
|
@ -20872,7 +20872,7 @@ _02243B26:
|
|||
add r1, #8
|
||||
lsl r1, r1, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
add r0, r6, #0
|
||||
add r1, r4, #0
|
||||
bl FUN_0202A150
|
||||
|
|
@ -20887,7 +20887,7 @@ _02243B26:
|
|||
ldrb r1, [r5, #0xf]
|
||||
ldr r0, [r5, #0x74]
|
||||
mov r2, #3
|
||||
bl FUN_0202A538
|
||||
bl SaveStruct23_Substruct2_SetField_0xC
|
||||
add r0, r6, #0
|
||||
mov r1, #0xf
|
||||
mov r2, #1
|
||||
|
|
@ -20933,19 +20933,19 @@ MOD06_02243BA8: ; 0x02243BA8
|
|||
strb r1, [r0]
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #0
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
ldrb r1, [r4, #0xc]
|
||||
add r0, sp, #0
|
||||
add r2, sp, #0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #1
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
add r2, r4, #0
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #5
|
||||
add r2, #0x2a
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
ldrh r1, [r4, #0x28]
|
||||
ldrh r2, [r4, #0x24]
|
||||
ldrh r3, [r4, #0x26]
|
||||
|
|
@ -20957,15 +20957,15 @@ MOD06_02243BA8: ; 0x02243BA8
|
|||
ldr r0, [r4, #0x70]
|
||||
mov r1, #8
|
||||
add r2, #0x3e
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
add r2, r4, #0
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #0xa
|
||||
add r2, #8
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #1
|
||||
bl FUN_0202A3A0
|
||||
bl SaveStruct23_Substruct1_SetFlag1
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #2
|
||||
bne _02243C4E
|
||||
|
|
@ -20977,7 +20977,7 @@ MOD06_02243BA8: ; 0x02243BA8
|
|||
strb r1, [r0]
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #9
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
ldrb r3, [r4, #0x10]
|
||||
ldr r2, _02243C54 ; =0x000007E8
|
||||
ldr r0, [r4, #0x70]
|
||||
|
|
@ -20987,7 +20987,7 @@ MOD06_02243BA8: ; 0x02243BA8
|
|||
lsl r3, r3, #4
|
||||
mov r1, #6
|
||||
add r2, r2, r3
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
ldr r2, _02243C58 ; =0x00000838
|
||||
ldr r0, [r4, #0x70]
|
||||
add r3, r4, r2
|
||||
|
|
@ -20996,7 +20996,7 @@ MOD06_02243BA8: ; 0x02243BA8
|
|||
lsl r2, r2, #0x18
|
||||
lsr r2, r2, #0x1d
|
||||
add r2, r3, r2
|
||||
bl FUN_0202A2C4
|
||||
bl SaveStruct23_Substruct1_SetField
|
||||
_02243C4E:
|
||||
add sp, #4
|
||||
pop {r3, r4, pc}
|
||||
|
|
@ -21234,13 +21234,13 @@ _02243DEE:
|
|||
ldr r0, [r4, #0x74]
|
||||
bne _02243E00
|
||||
mov r1, #0
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
ldr r1, _02243E2C ; =0x02250C5C
|
||||
ldrb r5, [r1, r0]
|
||||
b _02243E1E
|
||||
_02243E00:
|
||||
mov r2, #0
|
||||
bl FUN_0202A538
|
||||
bl SaveStruct23_Substruct2_SetField_0xC
|
||||
ldrb r1, [r4, #0x10]
|
||||
lsl r1, r1, #0x1d
|
||||
lsr r1, r1, #0x1e
|
||||
|
|
@ -21259,7 +21259,7 @@ _02243E1E:
|
|||
ldr r0, [r4, #0x74]
|
||||
add r1, r5, #0
|
||||
mov r2, #5
|
||||
bl FUN_0202A3B4
|
||||
bl SaveStruct23_Substruct2_SetField_0x0
|
||||
add r0, r5, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
|
@ -21283,7 +21283,7 @@ _02243E48:
|
|||
blo _02243E5E
|
||||
mov r1, #1
|
||||
mov r2, #0
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
cmp r0, #0
|
||||
beq _02243E6E
|
||||
mov r0, #0
|
||||
|
|
@ -21291,7 +21291,7 @@ _02243E48:
|
|||
_02243E5E:
|
||||
mov r1, #0
|
||||
add r2, r1, #0
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
cmp r0, #0
|
||||
beq _02243E6E
|
||||
mov r0, #0
|
||||
|
|
@ -21307,7 +21307,7 @@ MOD06_02243E74: ; 0x02243E74
|
|||
add r6, r0, #0
|
||||
add r0, r1, #0
|
||||
add r5, r2, #0
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
add r4, r0, #0
|
||||
cmp r5, #0
|
||||
beq _02243E90
|
||||
|
|
@ -21318,15 +21318,15 @@ MOD06_02243E74: ; 0x02243E74
|
|||
b _02243F10
|
||||
_02243E90:
|
||||
mov r1, #0
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
pop {r4, r5, r6, pc}
|
||||
_02243E98:
|
||||
mov r1, #4
|
||||
mov r2, #2
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
add r0, r4, #0
|
||||
mov r1, #0
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
add r5, r0, #0
|
||||
cmp r5, #0xa
|
||||
bne _02243EB2
|
||||
|
|
@ -21335,7 +21335,7 @@ _02243E98:
|
|||
_02243EB2:
|
||||
add r0, r4, #0
|
||||
mov r1, #3
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
add r0, r5, #1
|
||||
cmp r0, #5
|
||||
blt _02243EC8
|
||||
|
|
@ -21348,11 +21348,11 @@ _02243EC8:
|
|||
pop {r4, r5, r6, pc}
|
||||
_02243ECC:
|
||||
mov r1, #3
|
||||
bl FUN_0202A40C
|
||||
bl SaveStruct23_Substruct2_SetField_0x2
|
||||
add r5, r0, #0
|
||||
add r0, r4, #0
|
||||
mov r1, #0
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
cmp r0, #1
|
||||
bne _02243EE4
|
||||
mov r0, #0
|
||||
|
|
@ -21365,14 +21365,14 @@ _02243EE4:
|
|||
blo _02243F0C
|
||||
add r0, r4, #0
|
||||
mov r1, #4
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
add r0, r4, #0
|
||||
mov r1, #2
|
||||
bl FUN_0202A40C
|
||||
bl SaveStruct23_Substruct2_SetField_0x2
|
||||
add r0, r4, #0
|
||||
mov r1, #4
|
||||
mov r2, #2
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
mov r0, #1
|
||||
pop {r4, r5, r6, pc}
|
||||
_02243F0C:
|
||||
|
|
@ -21476,7 +21476,7 @@ MOD06_02243F9C: ; 0x02243F9C
|
|||
add r1, #8
|
||||
lsl r1, r1, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
lsl r0, r0, #0x18
|
||||
lsr r0, r0, #0x18
|
||||
bne _02243FC0
|
||||
|
|
@ -21749,7 +21749,7 @@ _022441B8:
|
|||
ldr r0, [r6, #0x74]
|
||||
ldr r1, [sp]
|
||||
ldr r2, [sp, #4]
|
||||
bl FUN_0202A474
|
||||
bl SaveStruct23_Substruct2_SetArray
|
||||
ldr r0, [sp, #4]
|
||||
mov r1, #0
|
||||
mov r2, #0xa8
|
||||
|
|
@ -21939,9 +21939,9 @@ MOD06_0224434C: ; 0x0224434C
|
|||
lsl r2, r2, #4
|
||||
bl MI_CpuFill8
|
||||
add r0, r6, #0
|
||||
bl FUN_0202A8E4
|
||||
bl SaveStruct23_GetSubstruct4
|
||||
add r6, r0, #0
|
||||
bl FUN_0202A744
|
||||
bl SaveStruct23_Substruct4_GetField_0xFE
|
||||
cmp r0, #0
|
||||
bne _0224437A
|
||||
add r0, r5, #0
|
||||
|
|
@ -22424,7 +22424,7 @@ _0224471C:
|
|||
ldr r0, [r6, #0x74]
|
||||
mov r1, #3
|
||||
mov r2, #0
|
||||
bl FUN_0202A538
|
||||
bl SaveStruct23_Substruct2_SetField_0xC
|
||||
ldr r1, _02244754 ; =0x00000844
|
||||
strh r0, [r6, r1]
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "mod21_02254A6C.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "heap.h"
|
||||
#include "mod21_02254A6C.h"
|
||||
#include "registers.h"
|
||||
#include "MI_memory.h"
|
||||
|
||||
extern void MOD20_022536F4(u32 *param0, u32 param1);
|
||||
|
|
|
|||
|
|
@ -4440,7 +4440,7 @@ MOD54_021D9780: ; 0x021D9780
|
|||
.word MOD54_021D9488, MOD54_021D94B4, MOD54_021D91B4, MOD54_021D9274
|
||||
.word MOD54_021D94D0, MOD54_021D91BC, MOD54_021D92AC, MOD54_021D94E8
|
||||
.word MOD54_021D91AC, MOD54_021D9238, MOD54_021D9500, FUN_0202B934
|
||||
.word MOD54_021D9518, MOD54_021D9520, FUN_0202A1E0, MOD54_021D9544
|
||||
.word MOD54_021D9518, MOD54_021D9520, SaveStruct23_Substruct4_Substruct1_sizeof, MOD54_021D9544
|
||||
.word MOD54_021D956C
|
||||
|
||||
.data
|
||||
|
|
|
|||
|
|
@ -35,10 +35,10 @@ MOD74_021D74E0: ; 0x021D74E0
|
|||
bl FUN_02029FC8
|
||||
str r0, [r4, #0x1c]
|
||||
ldr r0, [r5]
|
||||
bl FUN_0202A8D8
|
||||
bl SaveStruct23_GetSubstruct2
|
||||
str r0, [r4, #0x20]
|
||||
ldr r0, [r5]
|
||||
bl FUN_0202A8E4
|
||||
bl SaveStruct23_GetSubstruct4
|
||||
str r0, [r4, #0x24]
|
||||
mov r0, #0x4a
|
||||
str r0, [r4]
|
||||
|
|
@ -967,7 +967,7 @@ MOD74_021D7C10: ; 0x021D7C10
|
|||
ldr r0, [r5, #0x20]
|
||||
lsr r1, r1, #0x10
|
||||
mov r2, #0
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
lsl r2, r0, #0x10
|
||||
add r0, sp, #0x18
|
||||
ldrb r6, [r0, #0x10]
|
||||
|
|
@ -1195,7 +1195,7 @@ _021D7E04:
|
|||
bl AddTextPrinterParameterized2
|
||||
ldr r0, [r4, #0x20]
|
||||
mov r1, #0
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
mov r1, #0
|
||||
add r2, r0, #0
|
||||
str r1, [sp]
|
||||
|
|
|
|||
|
|
@ -1400,7 +1400,7 @@ MOD82_0222E050: ; 0x0222E050
|
|||
ldr r0, [r4]
|
||||
mov r1, #0
|
||||
ldr r0, [r0]
|
||||
bl FUN_0202A444
|
||||
bl SaveStruct23_Substruct2_SetField_0x3
|
||||
str r0, [r4, #0x38]
|
||||
str r0, [r4, #0x3c]
|
||||
mov r0, #1
|
||||
|
|
@ -2629,7 +2629,7 @@ _0222EA38:
|
|||
lsr r1, r1, #0x18
|
||||
lsr r2, r2, #0x18
|
||||
add r3, sp, #0
|
||||
bl FUN_0202A6B4
|
||||
bl SaveStruct23_Substruct4_GetArrayFlag
|
||||
cmp r0, #0
|
||||
beq _0222EA66
|
||||
mov r0, #0x12
|
||||
|
|
@ -2795,7 +2795,7 @@ _0222EB94:
|
|||
add r1, #0x48
|
||||
lsr r2, r2, #0x18
|
||||
lsr r3, r3, #0x18
|
||||
bl FUN_0202A754
|
||||
bl SaveStruct23_Substruct4_SetSubstruct1
|
||||
add r0, r4, #0
|
||||
mov r1, #0x25
|
||||
mov r2, #0x11
|
||||
|
|
@ -2812,7 +2812,7 @@ _0222EB94:
|
|||
lsr r1, r1, #0x18
|
||||
lsr r2, r2, #0x18
|
||||
add r3, sp, #0
|
||||
bl FUN_0202A60C
|
||||
bl SaveStruct23_Substruct4_SetArrayFlag
|
||||
b _0222EC44
|
||||
_0222EBD6:
|
||||
mov r1, #0x3b
|
||||
|
|
@ -2995,7 +2995,7 @@ _0222ED32:
|
|||
mov r1, #5
|
||||
ldr r0, [r0]
|
||||
mov r2, #2
|
||||
bl FUN_0202A578
|
||||
bl SaveStruct23_Substruct2_SetFlag
|
||||
add r0, r4, #0
|
||||
mov r1, #0x25
|
||||
mov r2, #0x1a
|
||||
|
|
|
|||
|
|
@ -7,14 +7,13 @@
|
|||
#include "player_data.h"
|
||||
#include "script_buffers.h"
|
||||
#include "seal.h"
|
||||
#include "unk_0202A1E0.h"
|
||||
|
||||
extern u32 *FUN_0202708C(u32 *);
|
||||
extern u32 FUN_02027168(u32 *);
|
||||
extern u16 FUN_02027184(u32 *);
|
||||
extern u32 *FUN_02027E24(struct SaveBlock2 *sav2);
|
||||
extern u8 FUN_02029E2C(struct SealCase *, u32);
|
||||
extern u32 FUN_0202A8D8(struct SaveBlock2 *);
|
||||
extern u16 FUN_0202A3B4(u32, u32, u32);
|
||||
|
||||
THUMB_FUNC struct BagView *BagView_New(u8 heap_id)
|
||||
{
|
||||
|
|
@ -122,7 +121,7 @@ THUMB_FUNC u32 FUN_0206E3D8(struct SaveBlock2 *sav2)
|
|||
|
||||
THUMB_FUNC u32 FUN_0206E3E8(struct SaveBlock2 *sav2)
|
||||
{
|
||||
return FUN_0202A3B4(FUN_0202A8D8(sav2), 0, 0);
|
||||
return SaveStruct23_Substruct2_SetField_0x0(SaveStruct23_GetSubstruct2(sav2), 0, DATA_GET);
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL FUN_0206E3F8(struct SaveBlock2 *sav2, struct String *dest, u32 item_id, u32 heap_id)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "save_block_2.h"
|
||||
#include "heap.h"
|
||||
#include "CARD_backup.h"
|
||||
#include "OS_spinLock.h"
|
||||
|
||||
#pragma thumb on
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#include "unk_020139D8.h"
|
||||
#include "unk_02024E64.h"
|
||||
#include "sav_chatot.h"
|
||||
#include "unk_0202A1E0.h"
|
||||
|
||||
extern u32 FUN_0202AC20(void);
|
||||
extern u32 FUN_02034D7C(void);
|
||||
|
|
@ -28,7 +29,6 @@ extern u32 FUN_02028980(void);
|
|||
extern u32 FUN_02029A84(void);
|
||||
extern u32 FUN_02029FB0(void);
|
||||
extern u32 Sav2_Chatot_sizeof(void);
|
||||
extern u32 FUN_0202A89C(void);
|
||||
extern u32 FUN_0202A8F4(void);
|
||||
extern u32 FUN_0202A924(void);
|
||||
extern u32 FUN_0202ABC8(void);
|
||||
|
|
@ -48,7 +48,6 @@ extern void FUN_0202805C(void *);
|
|||
extern void FUN_02028994(void *);
|
||||
extern void FUN_02029A8C(void *);
|
||||
extern void FUN_02029FB8(void *);
|
||||
extern void FUN_0202A8A4(void *);
|
||||
extern void FUN_0202A8F8(void *);
|
||||
extern void FUN_0202A92C(void *);
|
||||
extern void FUN_0202ABCC(void *);
|
||||
|
|
@ -88,7 +87,7 @@ const struct SaveChunkHeader UNK_020EE700[] = {
|
|||
{ 20, 0, (SAVSIZEFN)FUN_02029FB0, (SAVINITFN)FUN_02029FB8 },
|
||||
{ 21, 0, (SAVSIZEFN)Sav2_SealCase_sizeof, (SAVINITFN)Sav2_SealCase_init },
|
||||
{ 22, 0, (SAVSIZEFN)Sav2_Chatot_sizeof, (SAVINITFN)Sav2_Chatot_init },
|
||||
{ 23, 0, (SAVSIZEFN)FUN_0202A89C, (SAVINITFN)FUN_0202A8A4 },
|
||||
{ 23, 0, (SAVSIZEFN)SaveStruct23_sizeof, (SAVINITFN)SaveStruct23_Init },
|
||||
{ 24, 0, (SAVSIZEFN)FUN_0202A8F4, (SAVINITFN)FUN_0202A8F8 },
|
||||
{ 25, 0, (SAVSIZEFN)FUN_0202A924, (SAVINITFN)FUN_0202A92C },
|
||||
{ 26, 0, (SAVSIZEFN)FUN_0202ABC8, (SAVINITFN)FUN_0202ABCC },
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
#include "timer3.h"
|
||||
|
||||
#include "OS_interrupt.h"
|
||||
#include "OS_irqTable.h"
|
||||
#include "OS_timer.h"
|
||||
#include "OS_system.h"
|
||||
#include "registers.h"
|
||||
|
||||
static BOOL timer3_needReset;
|
||||
static vu64 timer3_counter;
|
||||
|
||||
|
|
|
|||
536
arm9/src/unk_0202A1E0.c
Normal file
536
arm9/src/unk_0202A1E0.c
Normal file
|
|
@ -0,0 +1,536 @@
|
|||
#include "global.h"
|
||||
#include "MI_memory.h"
|
||||
#include "msgdata.h"
|
||||
#include "heap.h"
|
||||
#include "unk_0202A1E0.h"
|
||||
|
||||
THUMB_FUNC s32 SaveStruct23_Substruct4_Substruct1_sizeof()
|
||||
{
|
||||
return sizeof(struct SaveStruct23_Substruct4_Substruct1); // 228
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct1_Init(struct SaveStruct23_Substruct1 *substruct1)
|
||||
{
|
||||
MI_CpuFill8(substruct1, 0, sizeof(struct SaveStruct23_Substruct1));
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct2_Init(struct SaveStruct23_Substruct2 *substruct2)
|
||||
{
|
||||
MI_CpuFill8(substruct2, 0, sizeof(struct SaveStruct23_Substruct2));
|
||||
substruct2->u_3 = 1;
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Messages_Init(struct SaveStruct23_Messages *messages)
|
||||
{
|
||||
MailMsg_init_fromTemplate(&messages->messages[0], 0);
|
||||
MailMsg_init_fromTemplate(&messages->messages[1], 1);
|
||||
MailMsg_init_fromTemplate(&messages->messages[2], 2);
|
||||
MailMsg_init_fromTemplate(&messages->messages[3], 3);
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct4_Init(struct SaveStruct23_Substruct4 *substruct4)
|
||||
{
|
||||
MI_CpuFill8(substruct4, 0, sizeof(struct SaveStruct23_Substruct4));
|
||||
}
|
||||
|
||||
THUMB_FUNC u32 SaveStruct23_Substruct1_GetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *dst)
|
||||
{
|
||||
switch (field)
|
||||
{
|
||||
case FIELD_0x0_2:
|
||||
return substruct1->u_0_2;
|
||||
case FIELD_0x2:
|
||||
return substruct1->u_2;
|
||||
case FIELD_0x3:
|
||||
return substruct1->u_3;
|
||||
case FIELD_0x4:
|
||||
return substruct1->u_4;
|
||||
case FIELD_0x6:
|
||||
return substruct1->u_6;
|
||||
case FIELD_0x8:
|
||||
MI_CpuCopy8(&substruct1->u_8, dst, 4);
|
||||
return 0;
|
||||
case FIELD_0x2C:
|
||||
MI_CpuCopy8(&substruct1->u_2C, dst, 16);
|
||||
return 0;
|
||||
case FIELD_flag0:
|
||||
return substruct1->flag0;
|
||||
case FIELD_0xC:
|
||||
MI_CpuCopy8(&substruct1->u_C, dst, 28);
|
||||
return 0;
|
||||
case FIELD_0x0_5:
|
||||
return substruct1->u_0_5;
|
||||
case FIELD_0x28:
|
||||
return substruct1->u_28;
|
||||
default:
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct1_SetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *value)
|
||||
{
|
||||
switch (field)
|
||||
{
|
||||
case FIELD_0x0_2:
|
||||
substruct1->u_0_2 = *(u8 *)value;
|
||||
break;
|
||||
case FIELD_0x2:
|
||||
substruct1->u_2 = *(u8 *)value;
|
||||
break;
|
||||
case FIELD_0x3:
|
||||
substruct1->u_3 = *(u8 *)value;
|
||||
break;
|
||||
case FIELD_0x4:
|
||||
substruct1->u_4 = *(u16 *)value;
|
||||
break;
|
||||
case FIELD_0x6:
|
||||
substruct1->u_6 = *(u16 *)value;
|
||||
break;
|
||||
case FIELD_0x8:
|
||||
MI_CpuCopy8(value, &substruct1->u_8, 4);
|
||||
break;
|
||||
case FIELD_0x2C:
|
||||
MI_CpuCopy8(value, &substruct1->u_2C, 16);
|
||||
break;
|
||||
case FIELD_flag0:
|
||||
substruct1->flag0 = *(u8 *)value;
|
||||
break;
|
||||
case FIELD_0xC:
|
||||
MI_CpuCopy8(value, &substruct1->u_C, 28);
|
||||
break;
|
||||
case FIELD_0x28:
|
||||
substruct1->u_28 = *(u32 *)value;
|
||||
break;
|
||||
case FIELD_0x0_5:
|
||||
substruct1->u_0_5 = *(u8 *)value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
THUMB_FUNC void FUN_0202A36C(struct SaveStruct23_Substruct1 *substruct1, s32 arg1, s32 arg2, s32 arg3)
|
||||
{
|
||||
if (substruct1->u_3 + arg1 < 0xff)
|
||||
{
|
||||
substruct1->u_3 += arg1;
|
||||
}
|
||||
|
||||
if (substruct1->u_4 + arg2 < 0xffff)
|
||||
{
|
||||
substruct1->u_4 += arg2;
|
||||
}
|
||||
|
||||
if (substruct1->u_6 + arg3 < 0xffff)
|
||||
{
|
||||
substruct1->u_6 += arg3;
|
||||
}
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL SaveStruct23_Substruct1_GetFlag1(struct SaveStruct23_Substruct1 *substruct1)
|
||||
{
|
||||
return substruct1->flag1;
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct1_SetFlag1(struct SaveStruct23_Substruct1 *substruct1, BOOL flag)
|
||||
{
|
||||
substruct1->flag1 = flag;
|
||||
}
|
||||
|
||||
THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0x0(struct SaveStruct23_Substruct2 *substruct2, u16 value, DataSetMode mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case DATA_SET:
|
||||
if (value > 9999)
|
||||
{
|
||||
substruct2->u_0 = 9999;
|
||||
}
|
||||
else
|
||||
{
|
||||
substruct2->u_0 = value;
|
||||
}
|
||||
break;
|
||||
case DATA_ADD:
|
||||
if (substruct2->u_0 + value > 9999)
|
||||
{
|
||||
substruct2->u_0 = 9999;
|
||||
}
|
||||
else
|
||||
{
|
||||
substruct2->u_0 += value;
|
||||
}
|
||||
break;
|
||||
case DATA_SUBSTRACT:
|
||||
if (substruct2->u_0 < value)
|
||||
{
|
||||
substruct2->u_0 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
substruct2->u_0 -= value;
|
||||
}
|
||||
break;
|
||||
case DATA_GET:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return substruct2->u_0;
|
||||
}
|
||||
|
||||
THUMB_FUNC u8 SaveStruct23_Substruct2_SetField_0x2(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case DATA_RESET:
|
||||
substruct2->u_2 = 0;
|
||||
substruct2->flag4 = 0;
|
||||
break;
|
||||
case DATA_INCREMENT:
|
||||
if (substruct2->flag4)
|
||||
{
|
||||
substruct2->u_2++;
|
||||
}
|
||||
else
|
||||
{
|
||||
substruct2->u_2 = 1;
|
||||
substruct2->flag4 = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return substruct2->u_2;
|
||||
}
|
||||
|
||||
THUMB_FUNC u8 SaveStruct23_Substruct2_SetField_0x3(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case DATA_RESET:
|
||||
substruct2->u_3 = 1;
|
||||
break;
|
||||
case DATA_INCREMENT:
|
||||
if (substruct2->u_3 < 10)
|
||||
{
|
||||
substruct2->u_3++;
|
||||
}
|
||||
break;
|
||||
case DATA_DECREMENT:
|
||||
if (substruct2->u_3 > 1)
|
||||
{
|
||||
substruct2->u_3--;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return substruct2->u_3;
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct2_SetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *src)
|
||||
{
|
||||
if (mode == 0)
|
||||
{
|
||||
MI_CpuCopy8(src, substruct2->u_C0, 168);
|
||||
}
|
||||
else
|
||||
{
|
||||
MI_CpuCopy8(src, substruct2->u_18, 168);
|
||||
}
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct2_GetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *dst)
|
||||
{
|
||||
if (mode == 0)
|
||||
{
|
||||
MI_CpuCopy8(substruct2->u_C0, dst, 168);
|
||||
}
|
||||
else
|
||||
{
|
||||
MI_CpuCopy8(substruct2->u_18, dst, 168);
|
||||
}
|
||||
}
|
||||
|
||||
THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0x16(struct SaveStruct23_Substruct2 *substruct2, struct Unk0202A4B8 *arg1)
|
||||
{
|
||||
u16 var1, var2, var3, var4, var5, total;
|
||||
|
||||
var1 = (u16) ((arg1->u_2 - 1) * 1000);
|
||||
var2 = (u16) (arg1->u_4 * 10);
|
||||
var3 = (u16) (arg1->u_3 * 20);
|
||||
|
||||
if (var2 + var3 > 950)
|
||||
{
|
||||
var4 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
var4 = (u16) (950 - (var2 + var3));
|
||||
}
|
||||
|
||||
if (arg1->u_6 > 970)
|
||||
{
|
||||
var5 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
var5 = (u16) ((1000 - arg1->u_6) / 30);
|
||||
}
|
||||
|
||||
total = (u16) (var1 + var4 + var5);
|
||||
substruct2->u_16 = total;
|
||||
return total;
|
||||
}
|
||||
|
||||
THUMB_FUNC u16 SaveStruct23_Substruct2_GetField_0x16(struct SaveStruct23_Substruct2 *substruct2)
|
||||
{
|
||||
return substruct2->u_16;
|
||||
}
|
||||
|
||||
THUMB_FUNC u8 FUN_0202A524(struct SaveStruct23_Substruct2 *substruct2)
|
||||
{
|
||||
return (u8)(substruct2->u_16 / 1000);
|
||||
}
|
||||
|
||||
THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0xC(struct SaveStruct23_Substruct2 *substruct2, u16 arg1, DataSetMode mode)
|
||||
{
|
||||
if (arg1 == 5)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch(mode) {
|
||||
case DATA_RESET:
|
||||
substruct2->u_C[arg1] = 0;
|
||||
break;
|
||||
case DATA_INCREMENT:
|
||||
if (substruct2->u_C[arg1] < 0xfffe) {
|
||||
substruct2->u_C[arg1]++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return substruct2->u_C[arg1];
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL SaveStruct23_Substruct2_SetFlag(struct SaveStruct23_Substruct2 *substruct2, u16 flagNumber, DataSetMode mode)
|
||||
{
|
||||
u16 i;
|
||||
u16 flag = 1;
|
||||
|
||||
for (i = 0; i < flagNumber ; i++)
|
||||
{
|
||||
flag <<= 1;
|
||||
}
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case DATA_RESET:
|
||||
flag = (u16) (flag ^ 0xffff);
|
||||
substruct2->flags &= flag;
|
||||
break;
|
||||
case DATA_SET:
|
||||
substruct2->flags |= flag;
|
||||
break;
|
||||
case DATA_GET:
|
||||
return (BOOL) ((substruct2->flags >> flagNumber) & 1);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct2_SetField_0x4(struct SaveStruct23_Substruct2 *substruct2, u32 value)
|
||||
{
|
||||
substruct2->u_4 = value;
|
||||
}
|
||||
|
||||
THUMB_FUNC u32 SaveStruct23_Substruct2_GetField_0x4(struct SaveStruct23_Substruct2 *substruct2)
|
||||
{
|
||||
return substruct2->u_4;
|
||||
}
|
||||
|
||||
|
||||
THUMB_FUNC void SaveStruct23_SetMessage(struct SaveBlock2 *sav2, u32 index, struct MailMessage *message)
|
||||
{
|
||||
struct SaveStruct23 *data = SavArray_get(sav2, 23);
|
||||
MailMsg_copy(&data->messages.messages[index], message);
|
||||
}
|
||||
|
||||
THUMB_FUNC struct MailMessage *SaveStruct23_GetMessage(struct SaveBlock2 *sav2, u32 index)
|
||||
{
|
||||
struct SaveStruct23 *data = SavArray_get(sav2, 23);
|
||||
return &data->messages.messages[index];
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct4_SetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3) {
|
||||
|
||||
u8 flag = 1;
|
||||
|
||||
if (arg2 == 0 || arg2 > 200)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg1 == 0 || arg1 > 10)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
u16 var1 = (u16) ((arg1 - 1) * 200 + (arg2 - 1));
|
||||
u8 index = (u8) (var1 / 8);
|
||||
u8 remainder = (u8) (var1 % 8);
|
||||
flag <<= remainder;
|
||||
|
||||
substruct4->flags[index] |= flag;
|
||||
substruct4->u_0 = (arg3->u_0 << 24) | ((arg3->u_4 & 0xff) << 16) | ((arg3->u_8 & 0xff) << 8) | arg3->u_C;
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct4_ClearArrayFlags(struct SaveStruct23_Substruct4 *substruct4)
|
||||
{
|
||||
|
||||
MI_CpuFill8(substruct4->flags, 0, 250);
|
||||
MI_CpuFill8(&substruct4->u_0, 0, 4);
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL StructUnk0202A68C_Compare(struct Unk0202A68C *struct1, struct Unk0202A68C *struct2)
|
||||
{
|
||||
if (struct1->u_0 > struct2->u_0) {
|
||||
return TRUE;
|
||||
} else if (struct1->u_4 > struct2->u_4) {
|
||||
return TRUE;
|
||||
} else if (struct1->u_8 > struct2->u_8) {
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL SaveStruct23_Substruct4_GetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3)
|
||||
{
|
||||
u8 flag = 1;
|
||||
|
||||
if (arg2 > 200 || arg1 > 10)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u32 var0 = substruct4->u_0;
|
||||
|
||||
Unk0202A68C var1;
|
||||
var1.u_0 = var0 >> 24 & 0xff;
|
||||
var1.u_4 = var0 >> 16 & 0xff;
|
||||
var1.u_8 = var0 >> 8 & 0xff;
|
||||
var1.u_C = var0 & 0xff;
|
||||
|
||||
if (StructUnk0202A68C_Compare(arg3, &var1))
|
||||
{
|
||||
SaveStruct23_Substruct4_ClearArrayFlags(substruct4);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u16 var2 = (u16) ((arg1 - 1) * 200 + (arg2 - 1));
|
||||
u8 index = (u8) (var2 / 8);
|
||||
u8 remainder = (u8) (var2 % 8);
|
||||
flag <<= remainder;
|
||||
|
||||
if (substruct4->flags[index] & flag)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
THUMB_FUNC u8 SaveStruct23_Substruct4_GetField_0xFE(struct SaveStruct23_Substruct4 *substruct4)
|
||||
{
|
||||
return substruct4->u_FE;
|
||||
}
|
||||
|
||||
THUMB_FUNC u8 SaveStruct23_Substruct4_GetField_0xFF(struct SaveStruct23_Substruct4 *substruct4)
|
||||
{
|
||||
return substruct4->u_FF;
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Substruct4_SetSubstruct1(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct1 *substruct1, u8 arg2, u8 arg3)
|
||||
{
|
||||
MI_CpuCopy8(substruct1, &substruct4->substruct1, sizeof(struct SaveStruct23_Substruct4_Substruct1)*7);
|
||||
substruct4->u_101 = arg2;
|
||||
substruct4->u_100 = arg3;
|
||||
substruct4->u_FE = 1;
|
||||
}
|
||||
|
||||
THUMB_FUNC void FUN_0202A784(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dst)
|
||||
{
|
||||
dst->u_0 = substruct4->u_101;
|
||||
dst->u_1 = substruct4->u_100;
|
||||
}
|
||||
|
||||
THUMB_FUNC void FUN_0202A798(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A798 *arg1, u32 arg2)
|
||||
{
|
||||
struct Unk0202A798_substruct *unk_substruct = &arg1->u_0;
|
||||
u8 *var1 = arg1->u_30;
|
||||
struct SaveStruct23_Substruct4_Substruct1 *substruct4_substruct1 = &substruct4->substruct1[arg2];
|
||||
struct MsgData *message;
|
||||
|
||||
unk_substruct->u_0 = 10000;
|
||||
unk_substruct->u_4 = substruct4_substruct1->u_C9;
|
||||
|
||||
if(substruct4_substruct1->u_C8_0)
|
||||
{
|
||||
message = NewMsgDataFromNarc(0, NARC_MSGDATA_MSG, 17, 11);
|
||||
ReadMsgDataIntoU16Array(message, (u32) (22 + substruct4_substruct1->u_C8_1), unk_substruct->u_8);
|
||||
DestroyMsgData(message);
|
||||
}
|
||||
else
|
||||
{
|
||||
MI_CpuCopy8(substruct4_substruct1->u_A8, unk_substruct->u_8, 16);
|
||||
}
|
||||
|
||||
MI_CpuCopy8(substruct4_substruct1->u_CA, unk_substruct->u_18, 8);
|
||||
MI_CpuCopy8(substruct4_substruct1->u_D2, unk_substruct->u_20, 8);
|
||||
MI_CpuCopy8(substruct4_substruct1->u_DA, unk_substruct->u_28, 8);
|
||||
MI_CpuCopy8(substruct4_substruct1->u_0, var1, 168);
|
||||
}
|
||||
|
||||
THUMB_FUNC void FUN_0202A838(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2, u8 arg2, u8 arg3)
|
||||
{
|
||||
MI_CpuCopy8(substruct4_substruct2, &substruct4->substruct2, sizeof(struct SaveStruct23_Substruct4_Substruct2));
|
||||
substruct4->u_103 = arg2;
|
||||
substruct4->u_102 = arg3;
|
||||
substruct4->u_FF = 1;
|
||||
}
|
||||
|
||||
THUMB_FUNC void FUN_0202A864(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dst)
|
||||
{
|
||||
dst->u_0 = substruct4->u_103;
|
||||
dst->u_1 = substruct4->u_102;
|
||||
}
|
||||
|
||||
THUMB_FUNC struct SaveStruct23_Substruct4_Substruct2 *FUN_0202A878(struct SaveStruct23_Substruct4 *substruct4, u32 heap_id)
|
||||
{
|
||||
struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2 = AllocFromHeap(heap_id, sizeof(struct SaveStruct23_Substruct4_Substruct2) /* 1020 */);
|
||||
MI_CpuCopy8(&substruct4->substruct2, substruct4_substruct2, sizeof(struct SaveStruct23_Substruct4_Substruct2));
|
||||
return substruct4_substruct2;
|
||||
}
|
||||
|
||||
THUMB_FUNC s32 SaveStruct23_sizeof()
|
||||
{
|
||||
return sizeof(struct SaveStruct23); // 0xD00 (3328)
|
||||
}
|
||||
|
||||
THUMB_FUNC void SaveStruct23_Init(struct SaveStruct23 *saveStruct23)
|
||||
{
|
||||
SaveStruct23_Substruct1_Init(&saveStruct23->substruct1);
|
||||
SaveStruct23_Substruct2_Init(&saveStruct23->substruct2);
|
||||
SaveStruct23_Messages_Init(&saveStruct23->messages);
|
||||
SaveStruct23_Substruct4_Init(&saveStruct23->substruct4);
|
||||
}
|
||||
|
||||
THUMB_FUNC struct SaveStruct23_Substruct1 *SaveStruct23_GetSubstruct1(struct SaveBlock2* sav2)
|
||||
{
|
||||
return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct1;
|
||||
}
|
||||
|
||||
THUMB_FUNC struct SaveStruct23_Substruct2 *SaveStruct23_GetSubstruct2(struct SaveBlock2* sav2)
|
||||
{
|
||||
return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct2;
|
||||
}
|
||||
|
||||
THUMB_FUNC struct SaveStruct23_Substruct4 *SaveStruct23_GetSubstruct4(struct SaveBlock2* sav2)
|
||||
{
|
||||
return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct4;
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
#include "unk_0205FA2C.h"
|
||||
#include "unk_020337E8.h"
|
||||
#include "unk_0202A1E0.h"
|
||||
|
||||
extern void *UNK_020F96DC;
|
||||
extern void *UNK_020FA6E8;
|
||||
|
|
@ -11,17 +12,9 @@ extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16);
|
|||
extern u16 MOD06_02244660(struct UnkSavStruct80 *param0, u8 *param1);
|
||||
extern u16 MOD06_022446BC(struct UnkSavStruct80 *param0, u8 *param1);
|
||||
extern u16 MOD06_022446E0(struct UnkSavStruct80 *param0, u8 *param1);
|
||||
extern void FUN_0202A5CC(u32 param0, u32 param1);
|
||||
extern u32 FUN_0202A5D0(u32 param0);
|
||||
extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1);
|
||||
extern u32 FUN_0202A8D8(struct SaveBlock2 *sav2);
|
||||
extern u32 FUN_0202A578(u32 param0, u32 param1, u32 param2);
|
||||
extern u32 FUN_02026CC4(struct SaveBlock2 *sav2);
|
||||
extern u32 FUN_02025D94(u32 param0, u32 param1);
|
||||
extern u32 FUN_0202A8CC(struct SaveBlock2 *sav2);
|
||||
extern void FUN_0202A2C4(u32 param0, u32 param1, u32 *param2);
|
||||
extern u32 FUN_0202A240(u32 param0, u32 param1, u32 param2);
|
||||
extern int FUN_0202A538(u32 param0, u16 param1, u32 param2);
|
||||
|
||||
const u8 UNK_020F7454[] = {
|
||||
0x00,
|
||||
|
|
@ -327,33 +320,33 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2)
|
|||
return 0;
|
||||
}
|
||||
|
||||
u32 res2 = FUN_0202A8D8(sav2);
|
||||
struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2);
|
||||
|
||||
u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0);
|
||||
u8 res4 = (u8)FUN_0202A578(res2, 0, 0);
|
||||
u8 res5 = (u8)FUN_0202A578(res2, 1, 0);
|
||||
BOOL flagD = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_GET);
|
||||
BOOL flag0 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_GET);
|
||||
BOOL flag1 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_GET);
|
||||
|
||||
u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0);
|
||||
u8 res7 = (u8)FUN_0202A578(res2, 2, 0);
|
||||
u8 res8 = (u8)FUN_0202A578(res2, 3, 0);
|
||||
BOOL flagE = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_GET);
|
||||
BOOL flag2 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_GET);
|
||||
BOOL flag3 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_GET);
|
||||
|
||||
if (res3 != 0 && res4 != 0 && res5 != 0)
|
||||
if (flagD && flag0 && flag1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 res9 = FUN_02026CC4(sav2);
|
||||
if (res3 == 0)
|
||||
if (!flagD)
|
||||
{
|
||||
if (FUN_02025D94(res9, 0x55) != 0)
|
||||
{
|
||||
FUN_0202A578(res2, 0xd, 1);
|
||||
SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_SET);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (res6 == 0)
|
||||
if (!flagE)
|
||||
{
|
||||
FUN_0202A578(res2, 0xe, 1);
|
||||
SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_SET);
|
||||
}
|
||||
|
||||
return 4;
|
||||
|
|
@ -364,36 +357,36 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (res4 == 0)
|
||||
if (!flag0)
|
||||
{
|
||||
if (FUN_02025D94(res9, 0x56) != 0)
|
||||
{
|
||||
FUN_0202A578(res2, 0, 1);
|
||||
SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_SET);
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (res7 == 0)
|
||||
if (!flag2)
|
||||
{
|
||||
FUN_0202A578(res2, 2, 1);
|
||||
SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_SET);
|
||||
}
|
||||
|
||||
return 4;
|
||||
}
|
||||
|
||||
if (res < 100 || res5 != 0)
|
||||
if (res < 100 || flag1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (FUN_02025D94(res9, 0x57) != 0)
|
||||
{
|
||||
FUN_0202A578(res2, 1, 1);
|
||||
SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_SET);
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (res8 == 0)
|
||||
if (!flag3)
|
||||
{
|
||||
FUN_0202A578(res2, 3, 1);
|
||||
SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_SET);
|
||||
}
|
||||
|
||||
return 4;
|
||||
|
|
@ -407,24 +400,24 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2)
|
|||
return 0;
|
||||
}
|
||||
|
||||
u32 res2 = FUN_0202A8D8(sav2);
|
||||
struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2);
|
||||
|
||||
u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0);
|
||||
u8 res4 = (u8)FUN_0202A578(res2, 0, 0);
|
||||
u8 res5 = (u8)FUN_0202A578(res2, 1, 0);
|
||||
BOOL flagD = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_GET);
|
||||
BOOL flag0 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_GET);
|
||||
BOOL flag1 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_GET);
|
||||
|
||||
u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0);
|
||||
u8 res7 = (u8)FUN_0202A578(res2, 2, 0);
|
||||
u8 res8 = (u8)FUN_0202A578(res2, 3, 0);
|
||||
BOOL flagE = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_GET);
|
||||
BOOL flag2 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_GET);
|
||||
BOOL flag3 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_GET);
|
||||
|
||||
if (res3 != 0 && res4 != 0 && res5 != 0)
|
||||
if (flagD && flag0 && flag1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (res3 == 0)
|
||||
if (!flagD)
|
||||
{
|
||||
if (res6 != 0)
|
||||
if (flagE)
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
|
@ -437,9 +430,9 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (res4 == 0)
|
||||
if (!flag0)
|
||||
{
|
||||
if (res7 != 0)
|
||||
if (flag2)
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
|
|
@ -452,12 +445,12 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (res5 != 0)
|
||||
if (flag1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (res8 != 0)
|
||||
if (flag3)
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
|
|
@ -488,42 +481,42 @@ THUMB_FUNC u32 FUN_0206007C(struct SaveBlock2 *sav2)
|
|||
{
|
||||
u32 res = FUN_02060070(FUN_020287A4(FUN_0202881C(sav2)));
|
||||
|
||||
FUN_0202A5CC(FUN_0202A8D8(sav2), res);
|
||||
SaveStruct23_Substruct2_SetField_0x4(SaveStruct23_GetSubstruct2(sav2), res);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2)
|
||||
{
|
||||
u32 res = FUN_0202A8D8(sav2);
|
||||
struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2);
|
||||
|
||||
u32 res2 = FUN_02060070(FUN_0202A5D0(res));
|
||||
u32 res2 = FUN_02060070(SaveStruct23_Substruct2_GetField_0x4(saveStruct23_substruct2));
|
||||
|
||||
FUN_0202A5CC(res, res2);
|
||||
SaveStruct23_Substruct2_SetField_0x4(saveStruct23_substruct2, res2);
|
||||
u32 res3 = FUN_02060064(res2);
|
||||
|
||||
FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3);
|
||||
SaveStruct23_Substruct1_SetField(SaveStruct23_GetSubstruct1(sav2), FIELD_0x28, &res3);
|
||||
|
||||
return res3;
|
||||
}
|
||||
|
||||
THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2)
|
||||
{
|
||||
u32 res = FUN_0202A8D8(sav2);
|
||||
struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2);
|
||||
|
||||
u32 res2 = FUN_0202A8CC(sav2);
|
||||
struct SaveStruct23_Substruct1 *saveStruct23_substruct1 = SaveStruct23_GetSubstruct1(sav2);
|
||||
|
||||
u32 res3 = FUN_02060064(FUN_0202A5D0(res));
|
||||
u32 res3 = FUN_02060064(SaveStruct23_Substruct2_GetField_0x4(saveStruct23_substruct2));
|
||||
|
||||
int i = 0;
|
||||
int res4 = FUN_0202A538(res, (u16)FUN_0202A240(res2, 0, 0), 0) * 0x18;
|
||||
int res4 = SaveStruct23_Substruct2_SetField_0xC(saveStruct23_substruct2, (u16)SaveStruct23_Substruct1_GetField(saveStruct23_substruct1, FIELD_0x0_2, 0), DATA_GET) * 0x18;
|
||||
|
||||
for (i = 0; i < res4; i++)
|
||||
{
|
||||
res3 = FUN_02060064(res3);
|
||||
}
|
||||
|
||||
FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3);
|
||||
SaveStruct23_Substruct1_SetField(SaveStruct23_GetSubstruct1(sav2), FIELD_0x28, &res3);
|
||||
|
||||
return res3;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include "MWC_string.h"
|
||||
#include "function_target.h"
|
||||
#include "nitro.h"
|
||||
#include "nitro/types.h"
|
||||
#include "constants/global.h"
|
||||
#include "error_handling.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define POKEDIAMOND_HEAP_H
|
||||
|
||||
#include "global.h"
|
||||
#include "nitro/OS_arena_shared.h"
|
||||
#include "NNS_FND_expheap.h"
|
||||
#include "NNS_FND_allocator.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include "nitro/types.h"
|
||||
#include "nitro/OS_tick_shared.h"
|
||||
#include "nitro/OS_thread_shared.h"
|
||||
|
||||
typedef void (*OSAlarmHandler) (void *);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
|
||||
#include "nitro/types.h"
|
||||
|
||||
/* UGLY HACK: include proc specific header for OSContext */
|
||||
#include "OS_context.h"
|
||||
|
||||
typedef struct OSiAlarm OSAlarm;
|
||||
|
||||
typedef struct _OSThread OSThread;
|
||||
|
|
|
|||
30
include/nitro/SND_alarm_shared.h
Normal file
30
include/nitro/SND_alarm_shared.h
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* NOTE:
|
||||
* This file is shared between ARM9 and ARM7
|
||||
* DO NOT PUT PROC SPECIFIC CODE IN HERE
|
||||
* Thank You!
|
||||
*/
|
||||
|
||||
/*
|
||||
* DO NOT INCLUDE THIS FILE DIRECTLY
|
||||
* Include SND_alarm.h from the specific proc's lib
|
||||
*/
|
||||
|
||||
#ifndef POKEDIAMOND_SND_ALARM_SHARED_H
|
||||
#define POKEDIAMOND_SND_ALARM_SHARED_H
|
||||
|
||||
#include "nitro/OS_tick_shared.h"
|
||||
#include "nitro/OS_alarm_shared.h"
|
||||
|
||||
struct SNDAlarm {
|
||||
u8 enable; // 0x00
|
||||
u8 id; // 0x01
|
||||
u16 unk_2; // 0x02
|
||||
OSTick tick; // 0x04
|
||||
OSTick period; // 0x0C
|
||||
OSAlarm alarm; // 0x14
|
||||
}; // size = 0x40
|
||||
|
||||
#define SND_ALARM_COUNT 8
|
||||
|
||||
#endif //POKEDIAMOND_SND_ALARM_SHARED_H
|
||||
176
include/nitro/SND_main_shared.h
Normal file
176
include/nitro/SND_main_shared.h
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
/*
|
||||
* NOTE:
|
||||
* This file is shared between ARM9 and ARM7
|
||||
* DO NOT PUT PROC SPECIFIC CODE IN HERE
|
||||
* Thank You!
|
||||
*/
|
||||
|
||||
/*
|
||||
* DO NOT INCLUDE THIS FILE DIRECTLY
|
||||
* Include SND_main.h from the specific proc's lib
|
||||
*/
|
||||
|
||||
#ifndef POKEDIAMOND_SND_MAIN_SHARED_H
|
||||
#define POKEDIAMOND_SND_MAIN_SHARED_H
|
||||
|
||||
struct SNDWaveParam {
|
||||
u8 format; // 0x0
|
||||
u8 loopEnabled; // 0x1
|
||||
u16 samplerate; // 0x2
|
||||
u16 timer; // 0x4
|
||||
u16 loopStart; // 0x6
|
||||
u32 loopLength; // 0x8
|
||||
}; // size = 0xC
|
||||
|
||||
struct SNDLfoParam {
|
||||
u8 target; // 0x0
|
||||
u8 speed; // 0x1
|
||||
u8 depth; // 0x2
|
||||
u8 range; // 0x3
|
||||
u16 delay; // 0x4
|
||||
}; // size = 0x6
|
||||
|
||||
struct SNDLfo {
|
||||
struct SNDLfoParam param; // 0x0
|
||||
u16 delayCounter; // 0x6
|
||||
u16 counter; // 0x8
|
||||
}; // size = 0xA
|
||||
|
||||
struct SNDExChannel {
|
||||
u8 id; // 0x00
|
||||
u8 type; // 0x01
|
||||
u8 envStatus; // 0x02
|
||||
|
||||
struct {
|
||||
u8 active : 1;
|
||||
u8 start : 1;
|
||||
u8 autoSweep : 1;
|
||||
u8 syncFlag : 5;
|
||||
} flags; // 0x03
|
||||
|
||||
u8 panRange; // 0x04
|
||||
u8 rootMidiKey; // 0x05
|
||||
s16 userDecay2; // 0x06
|
||||
|
||||
u8 midiKey; // 0x08
|
||||
u8 velocity; // 0x09
|
||||
s8 initPan; // 0x0A
|
||||
s8 userPan; // 0x0B
|
||||
|
||||
s16 userDecay; // 0x0C
|
||||
s16 userPitch; // 0x0E
|
||||
|
||||
s32 envAttenuation; // 0x10
|
||||
s32 sweepCounter; // 0x14
|
||||
s32 sweepLength; // 0x18
|
||||
|
||||
u8 envAttack; // 0x1C
|
||||
u8 envSustain; // 0x1D
|
||||
u16 envDecay; // 0x1E
|
||||
u16 envRelease; // 0x20
|
||||
u8 priority; // 0x22
|
||||
u8 pan; // 0x23
|
||||
u16 volume; // 0x24
|
||||
u16 timer; // 0x26
|
||||
|
||||
struct SNDLfo lfo; // 0x28
|
||||
|
||||
s16 sweepPitch; // 0x32
|
||||
|
||||
s32 length; // 0x34
|
||||
|
||||
struct SNDWaveParam waveParam; // 0x38
|
||||
|
||||
union {
|
||||
const void *waveDataPtr;
|
||||
u32 dutyCycle;
|
||||
}; // 0x44
|
||||
|
||||
void (*callback)(struct SNDExChannel *chn, u32 status, void *userData); // 0x48
|
||||
void *callbackUserData; // 0x4C
|
||||
|
||||
struct SNDExChannel *channelLLNext; // 0x50
|
||||
}; // size = 0x54
|
||||
|
||||
#define SND_TRACK_COUNT_PER_PLAYER 16
|
||||
#define SND_INVALID_TRACK_INDEX 0xFF
|
||||
|
||||
struct SNDBankData;
|
||||
|
||||
struct SNDPlayer {
|
||||
struct {
|
||||
u8 active : 1;
|
||||
u8 prepared : 1;
|
||||
u8 paused : 1;
|
||||
} flags; // 0x0
|
||||
|
||||
u8 playerId; // 0x1
|
||||
u8 unk_2[2]; // 0x2
|
||||
|
||||
u8 prio; // 0x4
|
||||
u8 volume; // 0x5
|
||||
s16 extFader; // 0x6
|
||||
|
||||
u8 tracks[SND_TRACK_COUNT_PER_PLAYER]; // 0x8
|
||||
|
||||
u16 tempo; // 0x18
|
||||
u16 tempoRatio; // 0x1A
|
||||
u16 tempoCounter; // 0x1C
|
||||
u8 unk_1E[2]; // 0x1E
|
||||
|
||||
struct SNDBankData *bank; // 0x20
|
||||
}; // size = 0x24
|
||||
|
||||
#define SND_TRACK_MAX_CALL 3
|
||||
|
||||
struct SNDTrack {
|
||||
struct {
|
||||
u8 active : 1;
|
||||
u8 noteWait : 1;
|
||||
u8 muted : 1;
|
||||
u8 tie : 1;
|
||||
u8 noteFinishWait : 1;
|
||||
u8 portamento : 1;
|
||||
u8 cmp : 1; // ???
|
||||
u8 channelMask : 1;
|
||||
} flags; // 0x00
|
||||
|
||||
u8 panRange; // 0x01
|
||||
u16 program; // 0x02
|
||||
|
||||
u8 volume; // 0x04
|
||||
u8 expression; // 0x05
|
||||
s8 pitchBend; // 0x06
|
||||
u8 bendRange; // 0x07
|
||||
|
||||
s8 pan; // 0x08
|
||||
s8 extPan; // 0x09
|
||||
s16 extFader; // 0x0A
|
||||
s16 extPitch; // 0x0C
|
||||
u8 envAttack; // 0x0E
|
||||
u8 envDecay; // 0x0F
|
||||
u8 envSustain; // 0x10
|
||||
u8 envRelease; // 0x11
|
||||
u8 priority; // 0x12
|
||||
s8 transpose; // 0x13
|
||||
|
||||
u8 portamentoKey; // 0x14
|
||||
u8 portamentoTime; // 0x15
|
||||
s16 sweepPitch; // 0x16
|
||||
|
||||
struct SNDLfoParam mod; // 0x18
|
||||
u16 channelMask; // 0x1E
|
||||
|
||||
s32 wait; // 0x20
|
||||
|
||||
const u8 *trackDataStart; // 0x24
|
||||
const u8 *trackDataPos; // 0x28
|
||||
const u8 *posCallStack[SND_TRACK_MAX_CALL]; // 0x34
|
||||
u8 loopCount[SND_TRACK_MAX_CALL]; // 0x38
|
||||
u8 callStackDepth; // 0x3B
|
||||
|
||||
struct SNDExChannel *channelLLHead; // 0x3C
|
||||
}; // size = 0x40
|
||||
|
||||
#endif //POKEDIAMOND_SND_MAIN_SHARED_H
|
||||
|
||||
46
include/nitro/SND_work_shared.h
Normal file
46
include/nitro/SND_work_shared.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* NOTE:
|
||||
* This file is shared between ARM9 and ARM7
|
||||
* DO NOT PUT PROC SPECIFIC CODE IN HERE
|
||||
* Thank You!
|
||||
*/
|
||||
|
||||
/*
|
||||
* DO NOT INCLUDE THIS FILE DIRECTLY
|
||||
* Include SND_work.h from the specific proc's lib
|
||||
*/
|
||||
|
||||
#ifndef POKEDIAMOND_SND_WORK_SHARED_H
|
||||
#define POKEDIAMOND_SND_WORK_SHARED_H
|
||||
|
||||
#include "nitro/SND_alarm_shared.h"
|
||||
#include "nitro/SND_main_shared.h"
|
||||
|
||||
#define SND_PLAYER_COUNT 16
|
||||
#define SND_CHANNEL_COUNT 16
|
||||
#define SND_TRACK_COUNT 32
|
||||
|
||||
struct SNDWork {
|
||||
struct SNDExChannel channels[SND_CHANNEL_COUNT]; // 0x00
|
||||
struct SNDPlayer players[SND_PLAYER_COUNT]; // 0x540
|
||||
struct SNDTrack tracks[SND_TRACK_COUNT]; // 0x780
|
||||
struct SNDAlarm alarms[SND_ALARM_COUNT]; // 0xF80
|
||||
}; // size = 0x1180
|
||||
|
||||
struct SNDSharedWork {
|
||||
u32 finishedCommandTag; // 0x0
|
||||
u32 playerStatus; // 0x4
|
||||
u16 channelStatus; // 0x8
|
||||
u16 captureStatus; // 0xA
|
||||
u8 unk_C[0x14]; // 0xC
|
||||
struct {
|
||||
s16 localVars[16]; // local 0x0
|
||||
u32 tickCounter; // local 0x20
|
||||
} players[SND_PLAYER_COUNT]; // 0x20
|
||||
s16 globalVars[16]; // 0x260
|
||||
}; // size = 0x280
|
||||
|
||||
extern struct SNDWork SNDi_Work;
|
||||
extern struct SNDSharedWork *SNDi_SharedWork;
|
||||
|
||||
#endif //POKEDIAMOND_SND_WORK_SHARED_H
|
||||
209
include/unk_0202A1E0.h
Normal file
209
include/unk_0202A1E0.h
Normal file
|
|
@ -0,0 +1,209 @@
|
|||
#ifndef POKEDIAMOND_UNK_0202A1E0_H
|
||||
#define POKEDIAMOND_UNK_0202A1E0_H
|
||||
|
||||
#include "mail_message.h"
|
||||
#include "save_block_2.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DATA_GET = 0,
|
||||
DATA_SET,
|
||||
DATA_RESET,
|
||||
DATA_INCREMENT,
|
||||
DATA_DECREMENT,
|
||||
DATA_ADD,
|
||||
DATA_SUBSTRACT
|
||||
}
|
||||
DataSetMode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FIELD_0x0_2 = 0,
|
||||
FIELD_0x2,
|
||||
FIELD_0x3,
|
||||
FIELD_0x4,
|
||||
FIELD_0x6,
|
||||
FIELD_0x8,
|
||||
FIELD_0x2C,
|
||||
FIELD_flag0,
|
||||
FIELD_0xC,
|
||||
FIELD_0x0_5,
|
||||
FIELD_0x28,
|
||||
}
|
||||
SaveStruct23_Substruct1_Field;
|
||||
|
||||
struct SaveStruct23_Substruct1
|
||||
{
|
||||
/* 0x000 */ u8 flag0 : 1;
|
||||
u8 flag1 : 1;
|
||||
u8 u_0_2 : 3;
|
||||
u8 u_0_5 : 3;
|
||||
/* 0x001 */ u8 u_1;
|
||||
/* 0x002 */ u8 u_2;
|
||||
/* 0x003 */ u8 u_3;
|
||||
/* 0x004 */ u16 u_4;
|
||||
/* 0x006 */ u16 u_6;
|
||||
/* 0x008 */ s32 u_8;
|
||||
/* 0x00C */ s32 u_C[7];
|
||||
/* 0x028 */ u32 u_28;
|
||||
/* 0x02C */ s32 u_2C[4];
|
||||
}; // total size = 0x3C (60)
|
||||
|
||||
struct SaveStruct23_Substruct2
|
||||
{
|
||||
/* 0x000 */ u16 u_0;
|
||||
/* 0x002 */ u8 u_2;
|
||||
/* 0x003 */ u8 u_3;
|
||||
/* 0x004 */ u32 u_4;
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
/* 0x008 */ u16 flag0:1;
|
||||
u16 flag1:1;
|
||||
u16 flag2:1;
|
||||
u16 flag3:1;
|
||||
u16 flag4:1;
|
||||
u16 filler_1:11;
|
||||
};
|
||||
/* 0x008 */ u16 flags;
|
||||
};
|
||||
/* 0x00A */ u8 filler_2[2];
|
||||
/* 0x00C */ u16 u_C[5];
|
||||
/* 0x016 */ u16 u_16;
|
||||
/* 0x018 */ u8 u_18[168];
|
||||
/* 0x0C0 */ u8 u_C0[168];
|
||||
}; // total size 0x168 (360)
|
||||
|
||||
struct SaveStruct23_Messages
|
||||
{
|
||||
/* 0x000 */ struct MailMessage messages[4];
|
||||
}; // total size 0x020 (32)
|
||||
|
||||
struct SaveStruct23_Substruct4_Substruct1
|
||||
{
|
||||
/* 0x000 */ u8 u_0[168];
|
||||
/* 0x0A8 */ u8 u_A8[16];
|
||||
/* 0x0B8 */ u8 filler_1[16];
|
||||
/* 0x0C8 */ u8 u_C8_0:1;
|
||||
u8 u_C8_1:1;
|
||||
u8 filler_2:6;
|
||||
/* 0x0C8 */ u8 u_C9;
|
||||
/* 0x0CA */ u16 u_CA[4];
|
||||
/* 0x0D2 */ u16 u_D2[4];
|
||||
/* 0x0DA */ u16 u_DA[4];
|
||||
/* 0x0E2 */ u8 filler_3[2];
|
||||
}; // total size 0xE4 (228)
|
||||
|
||||
struct SaveStruct23_Substruct4_Substruct2
|
||||
{
|
||||
/* 0x00 */ u8 u_0[1020];
|
||||
};
|
||||
|
||||
struct SaveStruct23_Substruct4
|
||||
{
|
||||
/* 0x000 */ u32 u_0;
|
||||
/* 0x004 */ u8 flags[250];
|
||||
/* 0x0FE */ u8 u_FE;
|
||||
/* 0x0FF */ u8 u_FF;
|
||||
/* 0x100 */ u8 u_100;
|
||||
/* 0x101 */ u8 u_101;
|
||||
/* 0x102 */ u8 u_102;
|
||||
/* 0x103 */ u8 u_103;
|
||||
/* 0x104 */ struct SaveStruct23_Substruct4_Substruct1 substruct1[7];
|
||||
/* 0x740 */ struct SaveStruct23_Substruct4_Substruct2 substruct2;
|
||||
}; // total size 0xB3C (2876)
|
||||
|
||||
struct SaveStruct23 // Struct fetched with SavArray_get(sav2, 23)
|
||||
{
|
||||
/* 0x000 */ struct SaveStruct23_Substruct1 substruct1;
|
||||
/* 0x03C */ struct SaveStruct23_Substruct2 substruct2;
|
||||
/* 0x1A4 */ struct SaveStruct23_Messages messages;
|
||||
/* 0x1C4 */ struct SaveStruct23_Substruct4 substruct4;
|
||||
}; // total size = 0xD00 (3328)
|
||||
|
||||
struct Unk0202A4B8
|
||||
{
|
||||
/* 0x000 */ u8 filler_1[2];
|
||||
/* 0x002 */ u8 u_2;
|
||||
/* 0x003 */ u8 u_3;
|
||||
/* 0x004 */ u16 u_4;
|
||||
/* 0x006 */ u16 u_6;
|
||||
};
|
||||
|
||||
typedef struct Unk0202A68C
|
||||
{
|
||||
/* 0x000 */ u32 u_0;
|
||||
/* 0x004 */ u32 u_4;
|
||||
/* 0x008 */ u32 u_8;
|
||||
/* 0x00C */ u32 u_C;
|
||||
}
|
||||
Unk0202A68C; // total size 0x10 (16)
|
||||
|
||||
struct Unk0202A784
|
||||
{
|
||||
/* 0x000 */ u8 u_0;
|
||||
/* 0x001 */ u8 u_1;
|
||||
};
|
||||
|
||||
struct Unk0202A798_substruct
|
||||
{
|
||||
/* 0x000 */ u32 u_0;
|
||||
/* 0x004 */ u16 u_4;
|
||||
/* 0x006 */ u8 filler_1[2];
|
||||
/* 0x008 */ u16 u_8[8];
|
||||
/* 0x018 */ u16 u_18[4];
|
||||
/* 0x020 */ u16 u_20[4];
|
||||
/* 0x028 */ u16 u_28[4];
|
||||
}; // total size 0x30 (48)
|
||||
|
||||
struct Unk0202A798
|
||||
{
|
||||
/* 0x000 */ struct Unk0202A798_substruct u_0;
|
||||
/* 0x030 */ u8 u_30[168];
|
||||
};
|
||||
|
||||
s32 SaveStruct23_Substruct4_Substruct1_sizeof();
|
||||
void SaveStruct23_Substruct1_Init(struct SaveStruct23_Substruct1 *substruct1);
|
||||
void SaveStruct23_Substruct2_Init(struct SaveStruct23_Substruct2 *substruct2);
|
||||
void SaveStruct23_Messages_Init(struct SaveStruct23_Messages *mailStruct);
|
||||
void SaveStruct23_Substruct4_Init(struct SaveStruct23_Substruct4 *substruct4);
|
||||
u32 SaveStruct23_Substruct1_GetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *dst);
|
||||
void SaveStruct23_Substruct1_SetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *value);
|
||||
void FUN_0202A36C(struct SaveStruct23_Substruct1 *substruct1, s32 arg1, s32 arg2, s32 arg3);
|
||||
BOOL SaveStruct23_Substruct1_GetFlag1(struct SaveStruct23_Substruct1 *substruct1);
|
||||
void SaveStruct23_Substruct1_SetFlag1(struct SaveStruct23_Substruct1 *substruct1, BOOL arg1);
|
||||
u16 SaveStruct23_Substruct2_SetField_0x0(struct SaveStruct23_Substruct2 *substruct2, u16 value, DataSetMode mode);
|
||||
u8 SaveStruct23_Substruct2_SetField_0x2(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode);
|
||||
u8 SaveStruct23_Substruct2_SetField_0x3(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode);
|
||||
void SaveStruct23_Substruct2_SetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *src);
|
||||
void SaveStruct23_Substruct2_GetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *dst);
|
||||
u16 SaveStruct23_Substruct2_SetField_0x16(struct SaveStruct23_Substruct2 *substruct2, struct Unk0202A4B8 *arg1);
|
||||
u16 SaveStruct23_Substruct2_GetField_0x16(struct SaveStruct23_Substruct2 *substruct2);
|
||||
u8 FUN_0202A524(struct SaveStruct23_Substruct2 *substruct2);
|
||||
u16 SaveStruct23_Substruct2_SetField_0xC(struct SaveStruct23_Substruct2 *substruct2, u16 arg1, DataSetMode mode);
|
||||
BOOL SaveStruct23_Substruct2_SetFlag(struct SaveStruct23_Substruct2 *substruct2, u16 flagNumber, DataSetMode mode);
|
||||
void SaveStruct23_Substruct2_SetField_0x4(struct SaveStruct23_Substruct2 *substruct2, u32 arg1);
|
||||
u32 SaveStruct23_Substruct2_GetField_0x4(struct SaveStruct23_Substruct2 *substruct2);
|
||||
void SaveStruct23_SetMessage(struct SaveBlock2 *sav2, u32 index, struct MailMessage *message);
|
||||
struct MailMessage *SaveStruct23_GetMessage(struct SaveBlock2 *sav2, u32 index);
|
||||
void SaveStruct23_Substruct4_SetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3);
|
||||
void SaveStruct23_Substruct4_ClearArrayFlags(struct SaveStruct23_Substruct4 *substruct4);
|
||||
BOOL StructUnk0202A68C_Compare(struct Unk0202A68C *struct1, struct Unk0202A68C *struct2);
|
||||
BOOL SaveStruct23_Substruct4_GetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3);
|
||||
u8 SaveStruct23_Substruct4_GetField_0xFE(struct SaveStruct23_Substruct4 *substruct4);
|
||||
u8 SaveStruct23_Substruct4_GetField_0xFF(struct SaveStruct23_Substruct4 *substruct4);
|
||||
void SaveStruct23_Substruct4_SetSubstruct1(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct1 *substruct4_substruct1, u8 arg2, u8 arg3);
|
||||
void FUN_0202A784(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dest);
|
||||
void FUN_0202A798(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A798 *arg1, u32 arg2);
|
||||
void FUN_0202A838(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2, u8 arg2, u8 arg3);
|
||||
void FUN_0202A864(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dest);
|
||||
struct SaveStruct23_Substruct4_Substruct2 *FUN_0202A878(struct SaveStruct23_Substruct4 *substruct4, u32 heap_id);
|
||||
s32 SaveStruct23_sizeof();
|
||||
void SaveStruct23_Init(struct SaveStruct23 *saveStruct23);
|
||||
struct SaveStruct23_Substruct1 *SaveStruct23_GetSubstruct1(struct SaveBlock2* sav2);
|
||||
struct SaveStruct23_Substruct2 *SaveStruct23_GetSubstruct2(struct SaveBlock2* sav2);
|
||||
struct SaveStruct23_Substruct4 *SaveStruct23_GetSubstruct4(struct SaveBlock2* sav2);
|
||||
|
||||
#endif //POKEDIAMOND_UNK_0202A1E0_H
|
||||
Loading…
Reference in New Issue
Block a user