decompile gds (#927)

This commit is contained in:
scbroede 2026-02-04 13:28:19 -05:00 committed by GitHub
parent 45336a30a5
commit a26e03caab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 1098 additions and 1747 deletions

View File

@ -1,3 +1,3 @@
include/**/*
src/**/*
lib/**/*

View File

@ -7,7 +7,7 @@ repos:
hooks:
- id: clang-format
args: [--style=file]
exclude: ^(lib|subprojects|tools)/
exclude: ^(subprojects|tools)/
types_or: [c, c++]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0

View File

@ -5,11 +5,55 @@
#include "struct_decls/struct_02030A80_decl.h"
#include "struct_defs/dress_up_photo.h"
#include "overlay061/struct_ov61_0222B138.h"
#include "overlay061/struct_ov61_0222B2D8.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "overlay061/struct_ov61_0222B920.h"
#include "overlay062/funcptr_ov62_022349A8.h"
#include "overlay062/struct_ov62_022349A8_sub2.h"
#include "overlay062/struct_ov62_022349A8_sub3.h"
#include "overlay062/struct_ov62_0223CAA4.h"
#include "overlay062/struct_ov62_02241130.h"
#include "gds.h"
#include "message.h"
#include "savedata.h"
#include "string_gf.h"
#include "string_template.h"
typedef struct {
SaveData *saveData;
UnkFuncPtr_ov62_022349A8 unk_04;
void *unk_08;
UnkStruct_ov62_022349A8_sub1 unk_0C;
enum HeapID heapID;
int unk_148;
int unk_14C;
UnkStruct_ov62_022349A8_sub2 unk_150;
UnkStruct_ov62_0223CAA4 unk_17C;
void *unk_18C;
UnkStruct_ov62_022349A8_sub3 unk_190;
void *unk_3B4;
int unk_3B8;
int unk_3BC;
int unk_3C0;
BOOL unk_3C4;
BOOL unk_3C8;
UnkStruct_ov61_0222B138 unk_3CC;
int unk_3D8;
int unk_3DC;
int unk_3E0;
int unk_3E4;
int unk_3E8;
int unk_3EC;
int unk_3F0;
MessageLoader *unk_3F4;
StringTemplate *unk_3F8;
String *unk_3FC;
UnkStruct_ov61_0222B920 unk_400;
u8 unk_40D;
u8 unk_40E;
} UnkStruct_ov62_022349A8;
int ov61_0222B008(UnkStruct_ov62_022349A8 *param0, const UnkStruct_ov62_02241130 *param1);
void ov61_0222B0F0(UnkStruct_ov62_022349A8 *param0);
int ov61_0222B1B4(UnkStruct_ov62_022349A8 *param0, UnkStruct_02030A80 *param1, DressUpPhoto *photo);

View File

@ -1,6 +1,7 @@
#ifndef POKEPLATINUM_OV61_0222BC4C_H
#define POKEPLATINUM_OV61_0222BC4C_H
#include "overlay061/ov61_0222B008.h"
#include "overlay061/struct_ov61_0222B960.h"
#include "overlay061/struct_ov61_0222BC90.h"
#include "overlay061/struct_ov61_0222BCF8_sub1_sub1.h"
@ -8,7 +9,6 @@
#include "overlay061/struct_ov61_0222BDAC_1.h"
#include "overlay061/struct_ov61_0222BE20.h"
#include "overlay061/struct_ov61_0222BED8.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "overlay062/struct_ov62_0223DF10.h"
int ov61_0222BC4C(UnkStruct_ov62_022349A8 *param0, UnkStruct_ov61_0222B960 *param1);

View File

@ -3,7 +3,7 @@
#include "struct_defs/struct_0208C06C.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "overlay061/ov61_0222B008.h"
UnkStruct_ov62_022349A8 *ov62_0224112C(UnkStruct_0208C06C *param0);
void ov62_02241130(UnkStruct_0208C06C *param0);

View File

@ -3,10 +3,10 @@
#include "struct_decls/struct_02012744_decl.h"
#include "overlay061/ov61_0222B008.h"
#include "overlay062/struct_ov62_0223118C_sub1.h"
#include "overlay062/struct_ov62_02233310.h"
#include "overlay062/struct_ov62_0223359C.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "bg_window.h"
#include "g3d_pipeline.h"

View File

@ -1,51 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV62_022349A8_H
#define POKEPLATINUM_STRUCT_OV62_022349A8_H
#include "overlay061/struct_ov61_0222B138.h"
#include "overlay061/struct_ov61_0222B920.h"
#include "overlay062/funcptr_ov62_022349A8.h"
#include "overlay062/struct_ov62_022349A8_sub1.h"
#include "overlay062/struct_ov62_022349A8_sub2.h"
#include "overlay062/struct_ov62_022349A8_sub3.h"
#include "overlay062/struct_ov62_0223CAA4.h"
#include "message.h"
#include "savedata.h"
#include "string_gf.h"
#include "string_template.h"
typedef struct {
SaveData *saveData;
UnkFuncPtr_ov62_022349A8 unk_04;
void *unk_08;
UnkStruct_ov62_022349A8_sub1 unk_0C;
enum HeapID heapID;
int unk_148;
int unk_14C;
UnkStruct_ov62_022349A8_sub2 unk_150;
UnkStruct_ov62_0223CAA4 unk_17C;
void *unk_18C;
UnkStruct_ov62_022349A8_sub3 unk_190;
void *unk_3B4;
int unk_3B8;
int unk_3BC;
int unk_3C0;
BOOL unk_3C4;
BOOL unk_3C8;
UnkStruct_ov61_0222B138 unk_3CC;
int unk_3D8;
int unk_3DC;
int unk_3E0;
int unk_3E4;
int unk_3E8;
int unk_3EC;
int unk_3F0;
MessageLoader *unk_3F4;
StringTemplate *unk_3F8;
String *unk_3FC;
UnkStruct_ov61_0222B920 unk_400;
u8 unk_40D;
u8 unk_40E;
} UnkStruct_ov62_022349A8;
#endif // POKEPLATINUM_STRUCT_OV62_022349A8_H

View File

@ -1,11 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV62_022349A8_SUB1_H
#define POKEPLATINUM_STRUCT_OV62_022349A8_SUB1_H
typedef struct {
s32 unk_00;
u8 unk_04;
u8 language;
u8 padding_06[306];
} UnkStruct_ov62_022349A8_sub1;
#endif // POKEPLATINUM_STRUCT_OV62_022349A8_SUB1_H

View File

@ -1,23 +0,0 @@
.public memcpy
.public strcpy
.public ov61_0222CFD4
.public ov61_0222D3E8
.public ov61_0222D498
.public ov61_0222D4AC
.public ov61_0222D4C8
.public ov61_0222D4DC
.public ov61_0222D4F0
.public ov61_0222D508
.public ov61_0222D510
.public ov61_0222D53C
.public ov61_0222D54C
.public ov61_0222D6A0
.public ov61_0222D770
.public ov61_0222D7B0
.public ov61_0222D8F8
.public ov61_0222DA0C
.public ov61_0222DB8C
.public ov61_0222DB98
.public ov61_0222E0B8
.public ov61_0222E168
.public ov61_0222E2A8

View File

@ -1,34 +0,0 @@
.public OS_CreateThread
.public OS_WakeupThreadDirect
.public OS_Sleep
.public OS_InitMutex
.public OS_LockMutex
.public OS_UnlockMutex
.public OS_InitTick
.public OS_IsTickAvailable
.public OS_GetTick
.public strcpy
.public _ull_div
.public DWC_GetLastErrorEx
.public DWC_Alloc
.public DWC_Free
.public DWC_SVLGetTokenAsync
.public DWC_SVLProcess
.public inet_addr
.public SOC_Socket
.public SOC_Connect
.public SOC_Recv
.public SOC_Send
.public SOC_Shutdown
.public SOC_Close
.public SOC_GetHostByName
.public SOC_Fcntl
.public SOC_InetNtoA
.public ov61_0222D040
.public ov61_0222D4C8
.public ov61_0222D4DC
.public ov61_0222D540
.public ov61_0222D5A0
.public ov61_0222D638
.public ov61_0222DB8C
.public ov61_0222E110

View File

@ -1 +0,0 @@
.public ov61_0222E2A8

View File

@ -1,29 +0,0 @@
#pragma once
.macro arm_func_start name
.balign 4, 0
.global \name
.type \name, @function
.arm
.endm
.macro arm_func_end name
.size \name, .-\name
.endm
.macro thumb_func_start name
.balign 4, 0
.global \name
.type \name, @function
.thumb
.endm
.macro non_word_aligned_thumb_func_start name
.global \name
.type \name, @function
.thumb
.endm
.macro thumb_func_end name
.size \name, .-\name
.endm

View File

@ -1,456 +0,0 @@
.include "macros/function.inc"
.include "include/ov61_0222CEDC.inc"
.extern Unk_ov61_0222E764
.text
arm_func_start ov61_0222CEDC
ov61_0222CEDC: ; 0x0222CEDC
stmfd sp!, {r3, lr}
bl ov61_0222CFD4
mov r0, #0
ldr lr, _0222CF38 ; =0x0222E764
mov r1, r0
mov r2, r0
mov r3, r0
mov ip, #9
_0222CEFC:
stmia lr!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
subs ip, ip, #1
bne _0222CEFC
stmia lr!, {r0, r1, r2, r3}
stmia lr, {r0, r1}
ldr r1, _0222CF38 ; =0x0222E764
mov r2, #0
str r2, [r1, #0x138]
ldr r0, _0222CF3C ; =0x0222E964
strb r2, [r1, #0x140]
strh r2, [r0, #0x40]
bl ov61_0222D508
bl ov61_0222D53C
ldmia sp!, {r3, pc}
; .align 2, 0
_0222CF38: .word Unk_ov61_0222E764
_0222CF3C: .word Unk_ov61_0222E764 + 0x200
arm_func_end ov61_0222CEDC
arm_func_start ov61_0222CF40
ov61_0222CF40: ; 0x0222CF40
stmfd sp!, {r4, r5, r6, lr}
movs r5, r2
mov r6, r0
mov r4, r1
beq _0222CF80
ldr lr, _0222CFC8 ; =0x0222E764
mov ip, #0x13
_0222CF5C:
ldmia r5!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
subs ip, ip, #1
bne _0222CF5C
ldmia r5, {r0, r1}
stmia lr, {r0, r1}
ldr r0, _0222CFC8 ; =0x0222E764
mov r1, #0
str r1, [r0, #0x138]
_0222CF80:
bl ov61_0222D510
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
bl ov61_0222D4F0
ldr r0, _0222CFCC ; =0x0222E8A4
mov r1, r6
bl strcpy
ldr r1, _0222CFD0 ; =0x0222E964
mov r2, #0
ldr r0, _0222CFC8 ; =0x0222E764
strh r4, [r1, #0x40]
str r2, [r0, #0x258]
sub r1, r2, #1
str r1, [r0, #0x26c]
bl ov61_0222CFD4
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
; .align 2, 0
_0222CFC8: .word Unk_ov61_0222E764
_0222CFCC: .word Unk_ov61_0222E764 + 0x140
_0222CFD0: .word Unk_ov61_0222E764 + 0x200
arm_func_end ov61_0222CF40
arm_func_start ov61_0222CFD4
ov61_0222CFD4: ; 0x0222CFD4
stmfd sp!, {r3, lr}
bl ov61_0222D770
ldr r0, _0222D03C ; =0x0222E764
ldr r0, [r0, #0x258]
cmp r0, #0
beq _0222CFFC
bl ov61_0222D4AC
ldr r0, _0222D03C ; =0x0222E764
mov r1, #0
str r1, [r0, #0x258]
_0222CFFC:
ldr r0, _0222D03C ; =0x0222E764
mov r1, #0xf
str r1, [r0, #0x244]
mov r1, #0x1e
str r1, [r0, #0x248]
str r1, [r0, #0x24c]
mov r2, #0
str r2, [r0, #0x254]
str r2, [r0, #0x25c]
str r2, [r0, #0x260]
str r2, [r0, #0x264]
str r2, [r0, #0x268]
mov r1, #1
str r1, [r0, #0x13c]
str r2, [r0, #0x250]
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D03C: .word Unk_ov61_0222E764
arm_func_end ov61_0222CFD4
arm_func_start ov61_0222D040
ov61_0222D040: ; 0x0222D040
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov r5, #0
ldr r4, _0222D1F8 ; =0x0222E764
mov fp, #9
mov sl, #7
mov r6, #1
mov r7, r5
_0222D05C:
ldr r0, [r4, #0x13c]
mov r8, r7
cmp r0, #9
addls pc, pc, r0, lsl #2
b _0222D1B4
_0222D070: ; jump table
b _0222D098 ; case 0
b _0222D098 ; case 1
b _0222D0A0 ; case 2
b _0222D0D4 ; case 3
b _0222D108 ; case 4
b _0222D13C ; case 5
b _0222D184 ; case 6
b _0222D098 ; case 7
b _0222D098 ; case 8
b _0222D098 ; case 9
_0222D098:
mov r8, r6
b _0222D1B4
_0222D0A0:
bl ov61_0222DB98
cmp r0, #0
bne _0222D0C4
ldr r0, [r4, #0x250]
mov r8, #1
cmp r0, #0xd
moveq sb, sl
movne sb, fp
b _0222D0C8
_0222D0C4:
mov sb, #3
_0222D0C8:
bl ov61_0222D4C8
str sb, [r4, #0x13c]
b _0222D1B4
_0222D0D4:
bl ov61_0222D6A0
cmp r0, #0
bne _0222D0F8
ldr r0, [r4, #0x250]
mov r8, #1
cmp r0, #0xd
moveq sb, #7
movne sb, #9
b _0222D0FC
_0222D0F8:
mov sb, #4
_0222D0FC:
bl ov61_0222D4C8
str sb, [r4, #0x13c]
b _0222D1B4
_0222D108:
bl ov61_0222D7B0
cmp r0, #0
bne _0222D12C
ldr r0, [r4, #0x250]
mov r8, #1
cmp r0, #0xd
moveq sb, #7
movne sb, #9
b _0222D130
_0222D12C:
mov sb, #5
_0222D130:
bl ov61_0222D4C8
str sb, [r4, #0x13c]
b _0222D1B4
_0222D13C:
bl ov61_0222D8F8
cmp r0, #0
bne _0222D160
ldr r0, [r4, #0x250]
mov r8, #1
cmp r0, #0xd
moveq sb, #7
movne sb, #9
b _0222D164
_0222D160:
mov sb, #6
_0222D164:
ldr r0, [r4, #0x258]
cmp r0, #0
beq _0222D178
bl ov61_0222D4AC
str r5, [r4, #0x258]
_0222D178:
bl ov61_0222D4C8
str sb, [r4, #0x13c]
b _0222D1B4
_0222D184:
bl ov61_0222DA0C
cmp r0, #0
bne _0222D1A4
ldr r0, [r4, #0x250]
cmp r0, #0xd
moveq sb, #7
movne sb, #9
b _0222D1A8
_0222D1A4:
mov sb, #8
_0222D1A8:
mov r8, #1
bl ov61_0222D4C8
str sb, [r4, #0x13c]
_0222D1B4:
cmp r8, #0
bne _0222D1F0
ldr r0, [r4, #0x268]
cmp r0, #1
bne _0222D1E0
ldr r0, _0222D1F8 ; =0x0222E764
mov r1, #7
str r1, [r0, #0x13c]
mov r1, #0xd
str r1, [r0, #0x250]
b _0222D1F0
_0222D1E0:
bl ov61_0222D4DC
mov r0, #1
bl ov61_0222DB8C
b _0222D05C
_0222D1F0:
bl ov61_0222D4DC
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
; .align 2, 0
_0222D1F8: .word Unk_ov61_0222E764
arm_func_end ov61_0222D040
arm_func_start ov61_0222D1FC
ov61_0222D1FC: ; 0x0222D1FC
stmfd sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl ov61_0222D4C8
ldr r0, _0222D3E4 ; =0x0222E764
ldr r0, [r0, #0x13c]
cmp r0, #9
addls pc, pc, r0, lsl #2
b _0222D274
_0222D228: ; jump table
b _0222D250 ; case 0
b _0222D274 ; case 1
b _0222D250 ; case 2
b _0222D250 ; case 3
b _0222D250 ; case 4
b _0222D250 ; case 5
b _0222D250 ; case 6
b _0222D270 ; case 7
b _0222D270 ; case 8
b _0222D270 ; case 9
_0222D250:
bl ov61_0222D4DC
ldr r0, _0222D3E4 ; =0x0222E764
mov r1, #9
str r1, [r0, #0x13c]
mov r1, #1
str r1, [r0, #0x250]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0222D270:
bl ov61_0222CFD4
_0222D274:
bl ov61_0222D4DC
mov r0, r7
bl ov61_0222E2A8
ldr r2, _0222D3E4 ; =0x0222E764
mvn r1, #0
str r0, [r2, #0x25c]
cmp r0, r1
bne _0222D2AC
mov r0, #9
str r0, [r2, #0x13c]
mov r0, #2
str r0, [r2, #0x250]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0222D2AC:
cmp r4, r1
str r5, [r2, #0x260]
addne r0, r4, #0x140
strne r0, [sp]
bne _0222D2F4
mov r0, r7
bl ov61_0222E168
mvn r1, #0
str r0, [sp]
cmp r0, r1
bne _0222D2F4
ldr r0, _0222D3E4 ; =0x0222E764
mov r1, #9
str r1, [r0, #0x13c]
mov r1, #2
str r1, [r0, #0x250]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0222D2F4:
ldr r0, [sp]
bl ov61_0222D498
ldr ip, _0222D3E4 ; =0x0222E764
cmp r0, #0
str r0, [ip, #0x258]
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
ldr r1, [sp]
add r3, sp, #0
str r1, [ip, #0x254]
ldrb r2, [r3]
ldrb r1, [r3, #1]
mov r4, #0x13
strb r2, [r0]
strb r1, [r0, #1]
ldrb r2, [r3, #2]
ldrb r1, [r3, #3]
strb r2, [r0, #2]
strb r1, [r0, #3]
ldr lr, [ip, #0x258]
strh r7, [lr, #4]
add r5, lr, #8
_0222D34C:
ldmia ip!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _0222D34C
ldmia ip, {r0, r1}
stmia r5, {r0, r1}
mov r0, #0
strh r0, [lr, #6]
ldr r2, [sp]
mov r1, r6
add r0, lr, #0x140
sub r2, r2, #0x140
bl memcpy
ldr r0, _0222D3E4 ; =0x0222E764
ldr r2, [r0, #0x258]
ldr r1, [r0, #0x254]
add r0, r2, #4
sub r1, r1, #4
add r2, r2, #4
bl ov61_0222E0B8
ldr r0, _0222D3E4 ; =0x0222E764
mov r1, #2
str r1, [r0, #0x13c]
bl ov61_0222D4C8
bl ov61_0222D54C
cmp r0, #0
bne _0222D3D8
ldr r0, _0222D3E4 ; =0x0222E764
mov r1, #9
str r1, [r0, #0x13c]
mov r1, #6
str r1, [r0, #0x250]
bl ov61_0222D4DC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0222D3D8:
bl ov61_0222D4DC
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
; .align 2, 0
_0222D3E4: .word Unk_ov61_0222E764
arm_func_end ov61_0222D1FC
arm_func_start ov61_0222D3E8
ov61_0222D3E8: ; 0x0222D3E8
ldr r0, _0222D3F4 ; =0x0222E764
ldr r0, [r0, #0x13c]
bx lr
; .align 2, 0
_0222D3F4: .word Unk_ov61_0222E764
arm_func_end ov61_0222D3E8
arm_func_start ov61_0222D3F8
ov61_0222D3F8: ; 0x0222D3F8
stmfd sp!, {r3, lr}
bl ov61_0222D4C8
bl ov61_0222D3E8
cmp r0, #8
beq _0222D418
bl ov61_0222D4DC
mov r0, #0
ldmia sp!, {r3, pc}
_0222D418:
bl ov61_0222D4DC
ldr r0, _0222D42C ; =0x0222E764
ldr r0, [r0, #0x260]
add r0, r0, #4
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D42C: .word Unk_ov61_0222E764
arm_func_end ov61_0222D3F8
arm_func_start ov61_0222D430
ov61_0222D430: ; 0x0222D430
stmfd sp!, {r3, lr}
bl ov61_0222D4C8
bl ov61_0222D3E8
cmp r0, #8
beq _0222D450
bl ov61_0222D4DC
mvn r0, #0
ldmia sp!, {r3, pc}
_0222D450:
bl ov61_0222D4DC
ldr r0, _0222D460 ; =0x0222E764
ldr r0, [r0, #0x25c]
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D460: .word Unk_ov61_0222E764
arm_func_end ov61_0222D430
arm_func_start ov61_0222D464
ov61_0222D464: ; 0x0222D464
stmfd sp!, {r3, lr}
bl ov61_0222D4C8
bl ov61_0222D3E8
cmp r0, #9
beq _0222D484
bl ov61_0222D4DC
mov r0, #0
ldmia sp!, {r3, pc}
_0222D484:
bl ov61_0222D4DC
ldr r0, _0222D494 ; =0x0222E764
ldr r0, [r0, #0x250]
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D494: .word Unk_ov61_0222E764
arm_func_end ov61_0222D464

View File

@ -1,682 +0,0 @@
.include "macros/function.inc"
.include "include/ov61_0222D498.inc"
.text
arm_func_start ov61_0222D498
ov61_0222D498: ; 0x0222D498
ldr ip, _0222D4A8 ; =DWC_Alloc
mov r1, r0
mov r0, #0
bx ip
; .align 2, 0
_0222D4A8: .word DWC_Alloc
arm_func_end ov61_0222D498
arm_func_start ov61_0222D4AC
ov61_0222D4AC: ; 0x0222D4AC
stmfd sp!, {r3, lr}
movs r1, r0
ldmeqia sp!, {r3, pc}
mov r0, #0
mov r2, r0
bl DWC_Free
ldmia sp!, {r3, pc}
arm_func_end ov61_0222D4AC
arm_func_start ov61_0222D4C8
ov61_0222D4C8: ; 0x0222D4C8
ldr ip, _0222D4D4 ; =OS_LockMutex
ldr r0, _0222D4D8 ; =0x0222EA98
bx ip
; .align 2, 0
_0222D4D4: .word OS_LockMutex
_0222D4D8: .word Unk_ov61_0222E764 + 0x334
arm_func_end ov61_0222D4C8
arm_func_start ov61_0222D4DC
ov61_0222D4DC: ; 0x0222D4DC
ldr ip, _0222D4E8 ; =OS_UnlockMutex
ldr r0, _0222D4EC ; =0x0222EA98
bx ip
; .align 2, 0
_0222D4E8: .word OS_UnlockMutex
_0222D4EC: .word Unk_ov61_0222E764 + 0x334
arm_func_end ov61_0222D4DC
arm_func_start ov61_0222D4F0
ov61_0222D4F0: ; 0x0222D4F0
stmfd sp!, {r3, lr}
ldr r0, _0222D504 ; =0x0222EA98
bl OS_InitMutex
mov r0, #1
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D504: .word Unk_ov61_0222E764 + 0x334
arm_func_end ov61_0222D4F0
arm_func_start ov61_0222D508
ov61_0222D508: ; 0x0222D508
mov r0, #1
bx lr
arm_func_end ov61_0222D508
arm_func_start ov61_0222D510
ov61_0222D510: ; 0x0222D510
stmfd sp!, {r3, lr}
bl OS_IsTickAvailable
cmp r0, #0
bne _0222D524
bl OS_InitTick
_0222D524:
ldr r0, _0222D538 ; =0x0222E764
mov r1, #0x10
str r1, [r0, #0x270]
mov r0, #1
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D538: .word Unk_ov61_0222E764
arm_func_end ov61_0222D510
arm_func_start ov61_0222D53C
ov61_0222D53C: ; 0x0222D53C
bx lr
arm_func_end ov61_0222D53C
arm_func_start ov61_0222D540
ov61_0222D540: ; 0x0222D540
ldr ip, _0222D548 ; =ov61_0222D040
bx ip
; .align 2, 0
_0222D548: .word ov61_0222D040
arm_func_end ov61_0222D540
arm_func_start ov61_0222D54C
ov61_0222D54C: ; 0x0222D54C
stmfd sp!, {r3, lr}
sub sp, sp, #8
mov r1, #0x800
ldr r0, _0222D590 ; =0x0222E764
str r1, [sp]
ldr ip, [r0, #0x270]
ldr r0, _0222D594 ; =0x0222E9D8
ldr r1, _0222D598 ; =ov61_0222D540
ldr r3, _0222D59C ; =0x0222F2B0
mov r2, #0
str ip, [sp, #4]
bl OS_CreateThread
ldr r0, _0222D594 ; =0x0222E9D8
bl OS_WakeupThreadDirect
mov r0, #1
add sp, sp, #8
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D590: .word Unk_ov61_0222E764
_0222D594: .word Unk_ov61_0222E764 + 0x274
_0222D598: .word ov61_0222D540
_0222D59C: .word Unk_ov61_0222EAB0 + 0x800
arm_func_end ov61_0222D54C
arm_func_start ov61_0222D5A0
ov61_0222D5A0: ; 0x0222D5A0
ldrsb ip, [r0]
mov r2, #0
mov r3, r2
cmp ip, #0
beq _0222D61C
mov r1, r2
_0222D5B8:
cmp ip, #0x30
blt _0222D5DC
cmp ip, #0x39
bgt _0222D5DC
add r2, r2, #1
cmp r2, #4
blt _0222D610
mov r0, #0
bx lr
_0222D5DC:
cmp ip, #0x2e
bne _0222D608
cmp r2, #0
moveq r0, #0
bxeq lr
add r3, r3, #1
mov r2, r1
cmp r3, #4
blt _0222D610
mov r0, r1
bx lr
_0222D608:
mov r0, #0
bx lr
_0222D610:
ldrsb ip, [r0, #1]!
cmp ip, #0
bne _0222D5B8
_0222D61C:
cmp r3, #3
bne _0222D630
cmp r2, #0
movne r0, #1
bxne lr
_0222D630:
mov r0, #0
bx lr
arm_func_end ov61_0222D5A0
arm_func_start ov61_0222D638
ov61_0222D638: ; 0x0222D638
stmfd sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl ov61_0222D5A0
cmp r0, #0
bne _0222D68C
mov r0, r5
bl SOC_GetHostByName
cmp r0, #0
beq _0222D684
ldr r0, [r0, #0xc]
ldr r0, [r0, #0]
ldr r0, [r0, #0]
str r0, [sp]
bl SOC_InetNtoA
mov r1, r0
mov r0, r4
bl strcpy
b _0222D698
_0222D684:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_0222D68C:
mov r0, r4
mov r1, r5
bl strcpy
_0222D698:
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov61_0222D638
arm_func_start ov61_0222D6A0
ov61_0222D6A0: ; 0x0222D6A0
stmfd sp!, {r3, lr}
sub sp, sp, #0x10
mov r0, #2
mov r1, #1
mov r2, #0
bl SOC_Socket
ldr r2, _0222D768 ; =0x0222E764
mvn r1, #0
str r0, [r2, #0x26c]
cmp r0, r1
bne _0222D6E0
mov r0, #3
str r0, [r2, #0x250]
add sp, sp, #0x10
mov r0, #0
ldmia sp!, {r3, pc}
_0222D6E0:
mov r1, #3
mov r2, #0
bl SOC_Fcntl
ldr r1, _0222D768 ; =0x0222E764
orr r2, r0, #4
ldr r0, [r1, #0x26c]
mov r1, #4
bl SOC_Fcntl
cmp r0, #0
bge _0222D720
ldr r0, _0222D768 ; =0x0222E764
mov r1, #4
str r1, [r0, #0x250]
add sp, sp, #0x10
mov r0, #0
ldmia sp!, {r3, pc}
_0222D720:
ldr r0, _0222D76C ; =0x0222E8A4
add r1, sp, #0
bl ov61_0222D638
cmp r0, #0
bne _0222D74C
ldr r0, _0222D768 ; =0x0222E764
mov r1, #5
str r1, [r0, #0x250]
add sp, sp, #0x10
mov r0, #0
ldmia sp!, {r3, pc}
_0222D74C:
add r0, sp, #0
bl inet_addr
ldr r1, _0222D768 ; =0x0222E764
str r0, [r1, #0x264]
mov r0, #1
add sp, sp, #0x10
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D768: .word Unk_ov61_0222E764
_0222D76C: .word Unk_ov61_0222E764 + 0x140
arm_func_end ov61_0222D6A0
arm_func_start ov61_0222D770
ov61_0222D770: ; 0x0222D770
stmfd sp!, {r3, lr}
ldr r0, _0222D7AC ; =0x0222E764
mvn r1, #0
ldr r0, [r0, #0x26c]
cmp r0, r1
ldmeqia sp!, {r3, pc}
mov r1, #2
bl SOC_Shutdown
ldr r0, _0222D7AC ; =0x0222E764
ldr r0, [r0, #0x26c]
bl SOC_Close
ldr r0, _0222D7AC ; =0x0222E764
mvn r1, #0
str r1, [r0, #0x26c]
ldmia sp!, {r3, pc}
; .align 2, 0
_0222D7AC: .word Unk_ov61_0222E764
arm_func_end ov61_0222D770
arm_func_start ov61_0222D7B0
ov61_0222D7B0: ; 0x0222D7B0
stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #8
mov r2, #8
mov r1, #2
ldr r0, _0222D8EC ; =0x0222E964
strb r2, [sp]
strb r1, [sp, #1]
ldrh r1, [r0, #0x40]
ldr r0, _0222D8F0 ; =0x0222E764
mov r2, r1, asr #8
mov r1, r1, lsl #8
and r2, r2, #0xff
and r1, r1, #0xff00
orr r1, r2, r1
strh r1, [sp, #2]
ldr r0, [r0, #0x264]
str r0, [sp, #4]
bl OS_GetTick
ldr r2, _0222D8F4 ; =0x0007FD88
mov r3, #0
bl _ull_div
ldr r5, _0222D8F4 ; =0x0007FD88
ldr sb, _0222D8F0 ; =0x0222E764
mov r7, r0
mov r4, #0
mov sl, #1
add r6, sp, #0
mvn r8, #0x19
_0222D820:
ldr r0, [sb, #0x26c]
mov r1, r6
bl SOC_Connect
cmp r0, #0
bge _0222D8E0
cmp r0, r8
bne _0222D880
ldr r0, [sb, #0x244]
cmp r0, #0
beq _0222D8A4
bl OS_GetTick
mov r2, r5
mov r3, r4
bl _ull_div
ldr r1, [sb, #0x244]
subs r0, r0, r7
cmp r0, r1
blt _0222D8A4
ldr r0, _0222D8F0 ; =0x0222E764
mov r1, #0xa
str r1, [r0, #0x250]
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_0222D880:
mvn r1, #0x1d
cmp r0, r1
beq _0222D8E0
ldr r0, _0222D8F0 ; =0x0222E764
mov r1, #7
str r1, [r0, #0x250]
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_0222D8A4:
bl ov61_0222D4C8
ldr r0, [sb, #0x268]
cmp r0, #1
bne _0222D8D0
ldr r0, _0222D8F0 ; =0x0222E764
mov r1, #0xd
str r1, [r0, #0x250]
bl ov61_0222D4DC
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_0222D8D0:
bl ov61_0222D4DC
mov r0, sl
bl ov61_0222DB8C
b _0222D820
_0222D8E0:
mov r0, #1
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
; .align 2, 0
_0222D8EC: .word Unk_ov61_0222E764 + 0x200
_0222D8F0: .word Unk_ov61_0222E764
_0222D8F4: .word 0x0007FD88
arm_func_end ov61_0222D7B0
arm_func_start ov61_0222D8F8
ov61_0222D8F8: ; 0x0222D8F8
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sb, #0
bl OS_GetTick
ldr r2, _0222DA04 ; =0x0007FD88
mov r3, sb
bl _ull_div
ldr r7, _0222DA04 ; =0x0007FD88
ldr r5, _0222DA08 ; =0x0222E764
mov sl, r0
mov r8, sb
mov r6, sb
mov fp, #1
mvn r4, #5
_0222D92C:
ldr r0, [r5, #0x254]
ldr r1, [r5, #0x258]
sub r2, r0, sb
cmp r2, r0
movgt r2, r0
ldr r0, [r5, #0x26c]
mov r3, r8
add r1, r1, sb
bl SOC_Send
cmp r0, r4
beq _0222D984
cmp r0, #0
bge _0222D974
ldr r0, _0222DA08 ; =0x0222E764
mov r1, #0xb
str r1, [r0, #0x250]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0222D974:
ldr r1, [r5, #0x254]
add sb, sb, r0
cmp sb, r1
beq _0222D9FC
_0222D984:
ldr r0, [r5, #0x248]
cmp r0, #0
beq _0222D9C4
bl OS_GetTick
mov r2, r7
mov r3, r6
bl _ull_div
ldr r1, [r5, #0x248]
subs r0, r0, sl
cmp r0, r1
blt _0222D9C4
ldr r0, _0222DA08 ; =0x0222E764
mov r1, #0xb
str r1, [r0, #0x250]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0222D9C4:
bl ov61_0222D4C8
ldr r0, [r5, #0x268]
cmp r0, #1
bne _0222D9EC
ldr r0, _0222DA08 ; =0x0222E764
mov r1, #0xd
str r1, [r0, #0x250]
bl ov61_0222D4DC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0222D9EC:
bl ov61_0222D4DC
mov r0, fp
bl ov61_0222DB8C
b _0222D92C
_0222D9FC:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
; .align 2, 0
_0222DA04: .word 0x0007FD88
_0222DA08: .word Unk_ov61_0222E764
arm_func_end ov61_0222D8F8
arm_func_start ov61_0222DA0C
ov61_0222DA0C: ; 0x0222DA0C
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sl, #0
sub r0, sl, #1
str r0, [sp]
bl OS_GetTick
ldr r2, _0222DB84 ; =0x0007FD88
mov r3, sl
bl _ull_div
mvn r4, #0
ldr fp, _0222DB84 ; =0x0007FD88
ldr r6, _0222DB88 ; =0x0222E764
mov sb, r0
sub r5, r4, #5
add r7, sp, #0
mov r8, sl
_0222DA48:
ldr r1, [r6, #0x260]
ldr r2, [r6, #0x25c]
ldr r0, [r6, #0x26c]
mov r3, r8
add r1, r1, sl
sub r2, r2, sl
bl SOC_Recv
cmp r0, r5
beq _0222DB04
cmp r0, #0
bgt _0222DA88
ldr r0, _0222DB88 ; =0x0222E764
mov r1, #9
str r1, [r0, #0x250]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0222DA88:
add sl, sl, r0
cmp sl, #4
blo _0222DAC4
ldr r0, [sp]
cmp r0, r4
bne _0222DAC4
ldr r2, [r6, #0x260]
ldrb r1, [r2]
ldrb r0, [r2, #1]
strb r1, [r7]
strb r0, [r7, #1]
ldrb r1, [r2, #2]
ldrb r0, [r2, #3]
strb r1, [r7, #2]
strb r0, [r7, #3]
_0222DAC4:
ldr r0, [sp]
cmp sl, r0
bne _0222DB04
cmp r0, r4
beq _0222DB04
ldr r0, _0222DB88 ; =0x0222E764
sub r1, sl, #4
ldr r2, [r0, #0x260]
add r0, r2, #4
add r2, r2, #4
bl ov61_0222E110
ldr r1, [sp]
ldr r0, _0222DB88 ; =0x0222E764
sub r1, r1, #4
str r1, [r0, #0x25c]
b _0222DB7C
_0222DB04:
ldr r0, [r6, #0x24c]
cmp r0, #0
beq _0222DB44
bl OS_GetTick
mov r2, fp
mov r3, #0
bl _ull_div
ldr r1, [r6, #0x24c]
subs r0, r0, sb
cmp r0, r1
blt _0222DB44
ldr r0, _0222DB88 ; =0x0222E764
mov r1, #0xc
str r1, [r0, #0x250]
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0222DB44:
bl ov61_0222D4C8
ldr r0, [r6, #0x268]
cmp r0, #1
bne _0222DB6C
ldr r0, _0222DB88 ; =0x0222E764
mov r1, #0xd
str r1, [r0, #0x250]
bl ov61_0222D4DC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0222DB6C:
bl ov61_0222D4DC
mov r0, #1
bl ov61_0222DB8C
b _0222DA48
_0222DB7C:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
; .align 2, 0
_0222DB84: .word 0x0007FD88
_0222DB88: .word Unk_ov61_0222E764
arm_func_end ov61_0222DA0C
arm_func_start ov61_0222DB8C
ov61_0222DB8C: ; 0x0222DB8C
ldr ip, _0222DB94 ; =OS_Sleep
bx ip
; .align 2, 0
_0222DB94: .word OS_Sleep
arm_func_end ov61_0222DB8C
arm_func_start ov61_0222DB98
ov61_0222DB98: ; 0x0222DB98
stmfd sp!, {r4, r5, lr}
sub sp, sp, #0x17c
ldr r0, _0222DCD0 ; =0x0222E764
ldr r0, [r0, #0x138]
cmp r0, #1
addeq sp, sp, #0x17c
moveq r0, #1
ldmeqia sp!, {r4, r5, pc}
ldr r0, _0222DCD4 ; =0x0222E638
add r1, sp, #8
bl DWC_SVLGetTokenAsync
cmp r0, #0
bne _0222DBE4
ldr r0, _0222DCD0 ; =0x0222E764
mov r1, #0xe
str r1, [r0, #0x250]
add sp, sp, #0x17c
mov r0, #0
ldmia sp!, {r4, r5, pc}
_0222DBE4:
ldr r4, _0222DCD0 ; =0x0222E764
mov r5, #1
_0222DBEC:
bl DWC_SVLProcess
cmp r0, #3
bne _0222DC40
ldr r4, _0222DCD8 ; =0x0222E76A
add r3, sp, #0x4d
mov r2, #0x96
_0222DC04:
ldrb r1, [r3]
ldrb r0, [r3, #1]
add r3, r3, #2
strb r1, [r4]
strb r0, [r4, #1]
add r4, r4, #2
subs r2, r2, #1
bne _0222DC04
ldrb r2, [r3]
ldr r1, _0222DCD0 ; =0x0222E764
mov r0, #1
strb r2, [r4]
str r0, [r1, #0x138]
add sp, sp, #0x17c
ldmia sp!, {r4, r5, pc}
_0222DC40:
cmp r0, #4
bne _0222DC6C
add r0, sp, #0
add r1, sp, #4
bl DWC_GetLastErrorEx
ldr r0, _0222DCD0 ; =0x0222E764
mov r1, #0xe
str r1, [r0, #0x250]
add sp, sp, #0x17c
mov r0, #0
ldmia sp!, {r4, r5, pc}
_0222DC6C:
cmp r0, #5
bne _0222DC8C
ldr r0, _0222DCD0 ; =0x0222E764
mov r1, #0xe
str r1, [r0, #0x250]
add sp, sp, #0x17c
mov r0, #0
ldmia sp!, {r4, r5, pc}
_0222DC8C:
bl ov61_0222D4C8
ldr r0, [r4, #0x268]
cmp r0, #1
bne _0222DCB8
ldr r0, _0222DCD0 ; =0x0222E764
mov r1, #0xd
str r1, [r0, #0x250]
bl ov61_0222D4DC
add sp, sp, #0x17c
mov r0, #0
ldmia sp!, {r4, r5, pc}
_0222DCB8:
bl ov61_0222D4DC
mov r0, r5
bl ov61_0222DB8C
b _0222DBEC
_0222DCC8:
.byte 0x5F, 0xDF, 0x8D, 0xE2, 0x30, 0x80, 0xBD, 0xE8
_0222DCD0: .word Unk_ov61_0222E764
_0222DCD4: .word Unk_ov61_0222E638
_0222DCD8: .word Unk_ov61_0222E764 + 0x6
arm_func_end ov61_0222DB98
.data
.global Unk_ov61_0222E638
Unk_ov61_0222E638: ; 0x0222E638
.space 0x1
.bss
.global Unk_ov61_0222E764
Unk_ov61_0222E764: ; 0x0222E764
.space 0x34C
.global Unk_ov61_0222EAB0
Unk_ov61_0222EAB0: ; 0x0222EAB0
.space 0x810

View File

@ -1,360 +0,0 @@
.include "macros/function.inc"
.include "include/ov61_0222E0B8.inc"
.text
arm_func_start ov61_0222E0B8
ov61_0222E0B8: ; 0x0222E0B8
stmfd sp!, {r3, r4, r5, lr}
mov r5, #0
cmp r1, #0
ldmleia sp!, {r3, r4, r5, pc}
ldr lr, _0222E10C ; =0x0222E65C
mov ip, r5
_0222E0D0:
cmp r5, #0
moveq r4, ip
beq _0222E0F0
ldrb r4, [r0]
add r3, r5, r1
add r3, r4, r3
and r3, r3, #0xff
ldrb r4, [lr, r3]
_0222E0F0:
ldrb r3, [r0, r5]
add r5, r5, #1
cmp r5, r1
eor r3, r4, r3
strb r3, [r2], #1
blt _0222E0D0
ldmia sp!, {r3, r4, r5, pc}
; .align 2, 0
_0222E10C: .word Unk_ov61_0222E65C
arm_func_end ov61_0222E0B8
arm_func_start ov61_0222E110
ov61_0222E110: ; 0x0222E110
stmfd sp!, {r3, r4, r5, lr}
mov r5, #0
cmp r1, #0
ldmleia sp!, {r3, r4, r5, pc}
ldr lr, _0222E164 ; =0x0222E65C
mov ip, r5
_0222E128:
cmp r5, #0
moveq r4, ip
beq _0222E148
ldrb r4, [r0]
add r3, r5, r1
add r3, r4, r3
and r3, r3, #0xff
ldrb r4, [lr, r3]
_0222E148:
ldrb r3, [r2, r5]
eor r3, r3, r4
strb r3, [r2, r5]
add r5, r5, #1
cmp r5, r1
blt _0222E128
ldmia sp!, {r3, r4, r5, pc}
; .align 2, 0
_0222E164: .word Unk_ov61_0222E65C
arm_func_end ov61_0222E110
arm_func_start ov61_0222E168
ov61_0222E168: ; 0x0222E168
ldr r2, _0222E294 ; =0x00005209
cmp r0, r2
bgt _0222E1C0
bge _0222E24C
sub r1, r2, #0x3e8
cmp r0, r1
bgt _0222E1B0
ldr r1, _0222E298 ; =0x00004E20
cmp r0, r1
blt _0222E1A4
beq _0222E234
add r1, r1, #1
cmp r0, r1
beq _0222E23C
b _0222E284
_0222E1A4:
cmp r0, #0
beq _0222E22C
b _0222E284
_0222E1B0:
sub r1, r2, #1
cmp r0, r1
beq _0222E244
b _0222E284
_0222E1C0:
add r1, r2, #0x3e8
cmp r0, r1
bgt _0222E1E0
bge _0222E25C
ldr r1, _0222E29C ; =0x000055F0
cmp r0, r1
beq _0222E254
b _0222E284
_0222E1E0:
ldr r2, _0222E2A0 ; =0x000059D8
cmp r0, r2
bgt _0222E1F4
beq _0222E264
b _0222E284
_0222E1F4:
add r1, r2, #3
cmp r0, r1
bgt _0222E284
add r1, r2, #1
cmp r0, r1
blt _0222E284
beq _0222E26C
add r1, r2, #2
cmp r0, r1
beq _0222E274
add r1, r2, #3
cmp r0, r1
beq _0222E27C
b _0222E284
_0222E22C:
mov r0, #0x400
b _0222E28C
_0222E234:
mov r0, #0xe0
b _0222E28C
_0222E23C:
mov r0, #0xc
b _0222E28C
_0222E244:
mov r0, #0x220
b _0222E28C
_0222E24C:
mov r0, #0xc
b _0222E28C
_0222E254:
mov r0, #0
b _0222E28C
_0222E25C:
mov r0, #0x24
b _0222E28C
_0222E264:
ldr r0, _0222E2A4 ; =0x00001D4C
b _0222E28C
_0222E26C:
mov r0, #0x1c
b _0222E28C
_0222E274:
mov r0, #0xc
b _0222E28C
_0222E27C:
mov r0, #8
b _0222E28C
_0222E284:
mvn r0, #0
bx lr
_0222E28C:
add r0, r0, #0x140
bx lr
; .align 2, 0
_0222E294: .word 0x00005209
_0222E298: .word 0x00004E20
_0222E29C: .word 0x000055F0
_0222E2A0: .word 0x000059D8
_0222E2A4: .word 0x00001D4C
arm_func_end ov61_0222E168
arm_func_start ov61_0222E2A8
ov61_0222E2A8: ; 0x0222E2A8
stmfd sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #0x30
ldr r6, _0222E458 ; =0x0222E580
add lr, sp, #0
mov ip, r0
mov r5, lr
ldmia r6!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldmia r6!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldr r4, _0222E45C ; =0x00005209
ldmia r6, {r0, r1, r2, r3}
stmia lr, {r0, r1, r2, r3}
cmp ip, r4
bgt _0222E340
bge _0222E408
ldr r1, _0222E460 ; =0x00004E20
cmp ip, r1
bgt _0222E31C
bge _0222E3F0
cmp ip, #0
bgt _0222E440
mvn r6, #0
cmp ip, r6
blt _0222E440
beq _0222E3AC
cmp ip, #0
beq _0222E3E8
b _0222E440
_0222E31C:
add r0, r1, #1
cmp ip, r0
bgt _0222E330
beq _0222E3F8
b _0222E440
_0222E330:
add r0, r1, #0x3e8
cmp ip, r0
beq _0222E400
b _0222E440
_0222E340:
add r0, r4, #0x3e8
cmp ip, r0
bgt _0222E360
bge _0222E418
ldr r0, _0222E464 ; =0x000055F0
cmp ip, r0
beq _0222E410
b _0222E440
_0222E360:
ldr r1, _0222E468 ; =0x000059D8
cmp ip, r1
bgt _0222E374
beq _0222E420
b _0222E440
_0222E374:
add r0, r1, #3
cmp ip, r0
bgt _0222E440
add r0, r1, #1
cmp ip, r0
blt _0222E440
beq _0222E428
add r0, r1, #2
cmp ip, r0
beq _0222E430
add r0, r1, #3
cmp ip, r0
beq _0222E438
b _0222E440
_0222E3AC:
mov r7, #0
mov r4, r6
_0222E3B4:
ldr r0, [r5, r7, lsl #2]
cmp r0, r4
beq _0222E3D4
bl ov61_0222E2A8
cmp r0, r6
movgt r6, r0
add r7, r7, #1
b _0222E3B4
_0222E3D4:
mvn r0, #0
cmp r6, r0
bne _0222E44C
add sp, sp, #0x30
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0222E3E8:
mov r6, #0x400
b _0222E44C
_0222E3F0:
mov r6, #8
b _0222E44C
_0222E3F8:
ldr r6, _0222E46C ; =0x0000093C
b _0222E44C
_0222E400:
mov r6, #8
b _0222E44C
_0222E408:
ldr r6, _0222E470 ; =0x00002B74
b _0222E44C
_0222E410:
mov r6, #4
b _0222E44C
_0222E418:
mov r6, #0x630
b _0222E44C
_0222E420:
mov r6, #8
b _0222E44C
_0222E428:
ldr r6, _0222E474 ; =0x00001C24
b _0222E44C
_0222E430:
sub r6, r1, #0x3c80
b _0222E44C
_0222E438:
mov r6, #0
b _0222E44C
_0222E440:
add sp, sp, #0x30
mvn r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0222E44C:
add r0, r6, #8
add sp, sp, #0x30
ldmia sp!, {r3, r4, r5, r6, r7, pc}
; .align 2, 0
_0222E458: .word Unk_ov61_0222E580
_0222E45C: .word 0x00005209
_0222E460: .word 0x00004E20
_0222E464: .word 0x000055F0
_0222E468: .word 0x000059D8
_0222E46C: .word 0x0000093C
_0222E470: .word 0x00002B74
_0222E474: .word 0x00001C24
arm_func_end ov61_0222E2A8
.rodata
.global Unk_ov61_0222E550
Unk_ov61_0222E550: ; 0x0222E550
.word 0x5, 0x3, 0x2
.word 0x4, 0x1, 0x6, 0x9
.word 0x2, 0x7, 0x8, 0x6
.word 0x3
.global Unk_ov61_0222E580
Unk_ov61_0222E580: ; 0x0222E580
.word 0x0, 0x4E20, 0x4E21
.word 0x5208, 0x5209, 0x55F0, 0x55F1
.word 0x59D8, 0x59D9, 0x59DA, 0x59DB
.word 0xFFFFFFFF
.global Unk_ov61_0222E5B0
Unk_ov61_0222E5B0: ; 0x0222E5B0
.word 0x5, 0x3, 0x2
.word 0x4, 0x1, 0x6, 0x9
.word 0x2, 0x7, 0x8, 0x6
.word 0x3
.data
.global Unk_ov61_0222E65C
Unk_ov61_0222E65C: ; 0x0222E65C
.byte 0x93, 0x18, 0x33, 0x28
.byte 0x0B, 0x07, 0x03, 0x82, 0x02, 0x43, 0x8A, 0x86, 0xDB, 0x38, 0x34, 0x19, 0xD6, 0xF9, 0x59, 0xB2
.byte 0xAD, 0x6A, 0x7D, 0xBC, 0xEE, 0xE0, 0x3A, 0x3F, 0xCA, 0x4C, 0x25, 0x68, 0xF4, 0xA9, 0x5B, 0xF7
.byte 0x22, 0x60, 0x5A, 0x6F, 0xFA, 0x1B, 0x79, 0xE9, 0x17, 0xB1, 0x00, 0x9C, 0xAA, 0x5E, 0x9D, 0xFF
.byte 0xEA, 0xA0, 0x0D, 0x4B, 0x75, 0xF6, 0x61, 0x85, 0x5D, 0xBB, 0xDC, 0xFB, 0x64, 0x2E, 0x7A, 0xAB
.byte 0xF1, 0xE8, 0x44, 0x0C, 0xB8, 0x8F, 0xA8, 0x0A, 0x8E, 0xBD, 0xE1, 0x3B, 0xFC, 0x3C, 0x9F, 0x1A
.byte 0x56, 0xC5, 0xE2, 0xF5, 0x47, 0xD9, 0xD7, 0x8C, 0xCD, 0x97, 0xF0, 0x7B, 0x8B, 0xC3, 0x4F, 0x45
.byte 0x04, 0x90, 0x81, 0x1E, 0x6B, 0xC9, 0xD3, 0x73, 0xC6, 0xE7, 0x24, 0xBA, 0x32, 0xF3, 0xC0, 0xEC
.byte 0x57, 0xCC, 0xC4, 0xB6, 0xC1, 0xAE, 0xAF, 0x88, 0xF2, 0x84, 0xCE, 0x4A, 0x0F, 0x94, 0x41, 0xB4
.byte 0x74, 0x2A, 0xD1, 0x70, 0x1C, 0xD4, 0xB0, 0xC2, 0x09, 0x08, 0x16, 0x9B, 0xB5, 0x8D, 0x2B, 0xD2
.byte 0x89, 0xB7, 0x99, 0xA1, 0x30, 0x65, 0x54, 0x40, 0x96, 0x71, 0xFE, 0xBF, 0x31, 0x06, 0xE5, 0x14
.byte 0xE6, 0xDA, 0x48, 0x26, 0xAC, 0x87, 0x9A, 0xD8, 0xA6, 0xEB, 0x92, 0xCF, 0xFD, 0x77, 0x1D, 0x21
.byte 0x9E, 0x36, 0x35, 0x53, 0x3E, 0xD0, 0xD5, 0x62, 0x58, 0x5F, 0x63, 0x7C, 0x7E, 0x52, 0x29, 0x12
.byte 0x2C, 0x78, 0x05, 0x91, 0x55, 0xE3, 0xA2, 0xB9, 0xF8, 0x50, 0x95, 0x13, 0x80, 0x7F, 0x11, 0x27
.byte 0xCB, 0x37, 0x4E, 0x51, 0x15, 0xEF, 0xA7, 0x72, 0x4D, 0x83, 0x49, 0xA4, 0x69, 0xDE, 0x20, 0xA3
.byte 0x67, 0xDF, 0x10, 0x42, 0x39, 0x6C, 0x2D, 0xC7, 0x23, 0xE4, 0xDD, 0xED, 0xBE, 0x66, 0xB3, 0x2F
.byte 0x01, 0x6E, 0x6D, 0xC8, 0x1F, 0x98, 0xA5, 0x46, 0x76, 0x5C, 0x3D, 0x0E

View File

@ -1,11 +0,0 @@
.include "macros/function.inc"
.text
arm_func_start ov61_0222E478
ov61_0222E478: ; 0x0222E478
bx lr
arm_func_end ov61_0222E478

View File

@ -1,38 +1,46 @@
#ifndef POKEPLATINUM_GLOBAL_TERMINAL_H
#define POKEPLATINUM_GLOBAL_TERMINAL_H
#include "overlay062/struct_ov62_022349A8_sub1.h"
#include <nitro/types.h>
#include "overlay062/struct_ov62_022349A8_sub3_sub1.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub2.h"
#include "overlay062/struct_ov62_0223D518_sub1.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub3.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub4.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub5.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub5.h"
#include "overlay062/struct_ov62_0223D518_sub1.h"
#ifdef __cplusplus
extern "C" {
#endif
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 * param0);
typedef struct {
s32 unk_00;
u8 unk_04;
u8 language;
char unk_06[301]; // DWC_SVL_TOKEN_LENGTH + 1
u8 padding[5];
} UnkStruct_ov62_022349A8_sub1;
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 *param0);
void ov61_0222DCFC(void);
int ov61_0222DD08(void);
int ov61_0222DD24(void);
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 * param0, void * param1);
BOOL ov61_0222DD8C(long param0, void * param1);
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 * param1, void * param2);
BOOL ov61_0222DE34(long param0, void * param1);
BOOL ov61_0222DE98(void * param0);
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 * param0, void * param1);
void * ov61_0222DE80(void);
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 *param0, void *param1);
BOOL ov61_0222DD8C(long param0, void *param1);
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 *param1, void *param2);
BOOL ov61_0222DE34(long param0, void *param1);
BOOL ov61_0222DE98(void *param0);
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 *param0, void *param1);
void *ov61_0222DE80(void);
long ov61_0222DE74(void);
long ov61_0222DE8C(long param0);
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 * param0, void * param1);
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 * param0, void * param1);
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 * param0, void * param1);
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 * param0, void * param1);
BOOL ov61_0222E058(u64 param0, u32 param1, void * param2);
BOOL ov61_0222E08C(u64 param0, void * param1);
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 *param0, void *param1);
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 *param0, void *param1);
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1);
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1);
BOOL ov61_0222E058(u64 param0, u32 param1, void *param2);
BOOL ov61_0222E08C(u64 param0, void *param1);
#ifdef __cplusplus
}

View File

@ -1,7 +1,33 @@
#ifndef GDS_INTERNAL_H
#define GDS_INTERNAL_H
#include <nitro/os/common/mutex.h>
#include <nitro/os/common/thread.h>
#include <nitro/types.h>
#include "gds.h"
typedef struct {
UnkStruct_ov62_022349A8_sub1 unk_00;
int unk_138;
int unk_13C;
char unk_140[0x100];
u16 unk_240;
int unk_244;
int unk_248;
int unk_24C;
int unk_250;
int unk_254;
void *unk_258;
int unk_25C;
void *unk_260;
int unk_264;
int unk_268;
int unk_26C;
int unk_270;
OSThread unk_274;
OSMutex unk_334;
} UnkStruct_ov61_0222E764;
typedef struct {
u16 unk_00;
u16 unk_02;
@ -38,13 +64,46 @@ typedef struct {
u32 unk_08;
} UnkStruct_ov61_0222E058;
BOOL ov61_0222CF40(char *param0, int param1, UnkStruct_ov62_022349A8_sub1 *param2);
int ov61_0222D3E8(void);
int ov61_0222D464(void);
void ov61_0222E478(void *param0, char *param1);
BOOL ov61_0222D1FC(int param0, void *param1, void *param2, int param3);
long ov61_0222D430(void);
void *ov61_0222D3F8(void);
long ov61_0222E2A8(long param0);
typedef struct {
u16 unk_00;
u16 unk_02;
UnkStruct_ov62_022349A8_sub1 unk_04;
void *unk_136;
} UnkStruct_ov61_0222D1FC;
#endif // GDS_INTERNAL_H
UnkStruct_ov61_0222E764 Unk_ov61_0222E764;
void ov61_0222CEDC(void);
BOOL ov61_0222CF40(char *url, int port, UnkStruct_ov62_022349A8_sub1 *param2);
void ov61_0222D040(void);
BOOL ov61_0222D1FC(int param0, void *param1, void *param2, int param3);
int ov61_0222D3E8(void);
void *ov61_0222D3F8(void);
int ov61_0222D430(void);
int ov61_0222D464(void);
void *ov61_0222D498(u32 size);
void ov61_0222D4AC(void *ptr);
void ov61_0222D4C8(void);
void ov61_0222D4DC(void);
int ov61_0222D4F0(void);
int ov61_0222D508(void);
int ov61_0222D510(void);
void ov61_0222D53C(void);
int ov61_0222D54C(void);
BOOL ov61_0222D6A0(void);
void ov61_0222D770(void);
BOOL ov61_0222D7B0(void);
BOOL ov61_0222D8F8(void);
BOOL ov61_0222DA0C(void);
void ov61_0222DB8C(u32 param0);
BOOL ov61_0222DB98(void);
void ov61_0222E0B8(u8 *param0, int param1, u8 *param2);
void ov61_0222E110(u8 *param0, int param1, u8 *param2);
int ov61_0222E168(int param0);
int ov61_0222E2A8(int param0);
void ov61_0222E478(void *param0, char *param1);
#endif // GDS_INTERNAL_H

View File

@ -1,9 +1,9 @@
libgds_srcs = files(
'asm/ov61_0222CEDC.s',
'asm/ov61_0222D498.s',
'src/ov61_0222CEDC.c',
'src/ov61_0222D498.c',
'src/ov61_0222DCDC.c',
'asm/ov61_0222E0B8.s',
'asm/ov61_0222E478.s'
'src/ov61_0222E0B8.c',
'src/ov61_0222E478.c'
)
libgds_public_includes = include_directories('include')
@ -11,14 +11,21 @@ libgds_public_includes = include_directories('include')
libgds_c_args = [
'-nothumb',
'-wrap:sdk', '2.0/sp2p2',
'-wrap:noipa'
'-wrap:noipa',
]
libgds_link_args = [
'-library',
'-nothumb',
'-main', '""',
]
libgds = static_library('gds',
sources: libgds_srcs,
c_args: libgds_c_args,
link_args: libgds_link_args,
nasm_args: asm_args,
include_directories: [public_includes, libgds_public_includes],
dependencies: [ nitrosdk_dep, nitrosystem_dep ],
dependencies: [nitrosdk_dep, nitrosystem_dep, nitrowifi_dep, nitrodwc_dep],
pic: false
)
)

300
lib/gds/src/ov61_0222CEDC.c Normal file
View File

@ -0,0 +1,300 @@
#include <string.h>
#include "gds.h"
#include "gds_internal.h"
static void ov61_0222CFD4(void);
void ov61_0222CEDC(void)
{
ov61_0222CFD4();
memset(&Unk_ov61_0222E764.unk_00, 0, sizeof(UnkStruct_ov62_022349A8_sub1));
Unk_ov61_0222E764.unk_138 = 0;
Unk_ov61_0222E764.unk_140[0] = 0;
Unk_ov61_0222E764.unk_240 = 0;
ov61_0222D508();
ov61_0222D53C();
}
BOOL ov61_0222CF40(char *url, int port, UnkStruct_ov62_022349A8_sub1 *param2)
{
if (param2) {
Unk_ov61_0222E764.unk_00 = *param2;
Unk_ov61_0222E764.unk_138 = 0;
}
int v0 = ov61_0222D510();
if (!v0) {
return FALSE;
}
ov61_0222D4F0();
strcpy(Unk_ov61_0222E764.unk_140, url);
Unk_ov61_0222E764.unk_240 = port;
Unk_ov61_0222E764.unk_258 = 0;
Unk_ov61_0222E764.unk_26C = -1;
ov61_0222CFD4();
return TRUE;
}
static void ov61_0222CFD4(void)
{
ov61_0222D770();
if (Unk_ov61_0222E764.unk_258) {
ov61_0222D4AC(Unk_ov61_0222E764.unk_258);
Unk_ov61_0222E764.unk_258 = NULL;
}
Unk_ov61_0222E764.unk_244 = 15;
Unk_ov61_0222E764.unk_248 = 30;
Unk_ov61_0222E764.unk_24C = 30;
Unk_ov61_0222E764.unk_254 = NULL;
Unk_ov61_0222E764.unk_25C = 0;
Unk_ov61_0222E764.unk_260 = NULL;
Unk_ov61_0222E764.unk_264 = 0;
Unk_ov61_0222E764.unk_268 = 0;
Unk_ov61_0222E764.unk_13C = 1;
Unk_ov61_0222E764.unk_250 = 0;
}
void ov61_0222D040(void)
{
BOOL v0;
int v1;
while (TRUE) {
v0 = FALSE;
switch (Unk_ov61_0222E764.unk_13C) {
case 0:
case 1:
case 7:
case 8:
case 9:
v0 = TRUE;
break;
case 2:
if (!ov61_0222DB98()) {
if (Unk_ov61_0222E764.unk_250 == 13) {
v1 = 7;
} else {
v1 = 9;
}
v0 = TRUE;
} else {
v1 = 3;
}
ov61_0222D4C8();
Unk_ov61_0222E764.unk_13C = v1;
break;
case 3:
if (!ov61_0222D6A0()) {
if (Unk_ov61_0222E764.unk_250 == 13) {
v1 = 7;
} else {
v1 = 9;
}
v0 = TRUE;
} else {
v1 = 4;
}
ov61_0222D4C8();
Unk_ov61_0222E764.unk_13C = v1;
break;
case 4:
if (!ov61_0222D7B0()) {
if (Unk_ov61_0222E764.unk_250 == 13) {
v1 = 7;
} else {
v1 = 9;
}
v0 = TRUE;
} else {
v1 = 5;
}
ov61_0222D4C8();
Unk_ov61_0222E764.unk_13C = v1;
break;
case 5:
if (!ov61_0222D8F8()) {
if (Unk_ov61_0222E764.unk_250 == 13) {
v1 = 7;
} else {
v1 = 9;
}
v0 = TRUE;
} else {
v1 = 6;
}
if (Unk_ov61_0222E764.unk_258 != 0) {
ov61_0222D4AC(Unk_ov61_0222E764.unk_258);
Unk_ov61_0222E764.unk_258 = 0;
}
ov61_0222D4C8();
Unk_ov61_0222E764.unk_13C = v1;
break;
case 6:
if (!ov61_0222DA0C()) {
if (Unk_ov61_0222E764.unk_250 == 13) {
v1 = 7;
} else {
v1 = 9;
}
} else {
v1 = 8;
}
v0 = TRUE;
ov61_0222D4C8();
Unk_ov61_0222E764.unk_13C = v1;
break;
}
if (v0) {
break;
}
if (Unk_ov61_0222E764.unk_268 == 1) {
Unk_ov61_0222E764.unk_13C = 7;
Unk_ov61_0222E764.unk_250 = 13;
break;
}
ov61_0222D4DC();
ov61_0222DB8C(1);
}
ov61_0222D4DC();
}
BOOL ov61_0222D1FC(int param0, void *param1, void *param2, int param3)
{
ov61_0222D4C8();
switch (Unk_ov61_0222E764.unk_13C) {
case 0:
case 2:
case 3:
case 4:
case 5:
case 6:
ov61_0222D4DC();
Unk_ov61_0222E764.unk_13C = 9;
Unk_ov61_0222E764.unk_250 = 1;
return FALSE;
case 7:
case 8:
case 9:
ov61_0222CFD4();
case 1:
default:
ov61_0222D4DC();
}
int v0 = ov61_0222E2A8(param0);
Unk_ov61_0222E764.unk_25C = v0;
if (v0 == -1) {
Unk_ov61_0222E764.unk_13C = 9;
Unk_ov61_0222E764.unk_250 = 2;
return FALSE;
}
Unk_ov61_0222E764.unk_260 = param2;
int v2;
if (param3 != -1) {
v2 = param3 + 0x140;
} else {
v2 = ov61_0222E168(param0);
if (v2 == -1) {
Unk_ov61_0222E764.unk_13C = 9;
Unk_ov61_0222E764.unk_250 = 2;
return FALSE;
}
}
void *v1 = ov61_0222D498(v2);
Unk_ov61_0222E764.unk_258 = v1;
if (v1 == NULL) {
return FALSE;
}
Unk_ov61_0222E764.unk_254 = v2;
memcpy(v1, &v2, 4);
UnkStruct_ov61_0222D1FC *v3 = Unk_ov61_0222E764.unk_258 + 4;
v3->unk_00 = param0;
v3->unk_04 = Unk_ov61_0222E764.unk_00;
v3->unk_02 = 0;
memcpy(&v3->unk_136, param1, v2 - 0x140);
ov61_0222E0B8(Unk_ov61_0222E764.unk_258 + 4, Unk_ov61_0222E764.unk_254 - 4, Unk_ov61_0222E764.unk_258 + 4);
Unk_ov61_0222E764.unk_13C = 2;
ov61_0222D4C8();
int result = ov61_0222D54C();
if (!result) {
Unk_ov61_0222E764.unk_13C = 9;
Unk_ov61_0222E764.unk_250 = 6;
ov61_0222D4DC();
return FALSE;
} else {
ov61_0222D4DC();
return TRUE;
}
}
int ov61_0222D3E8(void)
{
return Unk_ov61_0222E764.unk_13C;
}
void *ov61_0222D3F8(void)
{
ov61_0222D4C8();
int v0 = ov61_0222D3E8();
if (v0 != 8) {
ov61_0222D4DC();
return NULL;
}
ov61_0222D4DC();
return Unk_ov61_0222E764.unk_260 + 4;
}
int ov61_0222D430(void)
{
ov61_0222D4C8();
int v0 = ov61_0222D3E8();
if (v0 != 8) {
ov61_0222D4DC();
return -1;
}
ov61_0222D4DC();
return Unk_ov61_0222E764.unk_25C;
}
int ov61_0222D464(void)
{
ov61_0222D4C8();
int v0 = ov61_0222D3E8();
if (v0 != 9) {
ov61_0222D4DC();
return 0;
}
ov61_0222D4DC();
return Unk_ov61_0222E764.unk_250;
}

357
lib/gds/src/ov61_0222D498.c Normal file
View File

@ -0,0 +1,357 @@
#include <dwc.h>
#include <gs/nonport.h>
#include <nitro/wm/common/wm.h>
#include <nitroWiFi/soc.h>
#include <string.h>
#include "gds.h"
#include "gds_internal.h"
u8 Unk_ov61_0222EAB0[0x800];
void *ov61_0222D498(u32 size)
{
return DWC_Alloc(DWC_ALLOCTYPE_AUTH, size);
}
void ov61_0222D4AC(void *ptr)
{
if (ptr == NULL) {
return;
}
DWC_Free(DWC_ALLOCTYPE_AUTH, ptr, 0);
}
void ov61_0222D4C8(void)
{
OS_LockMutex(&Unk_ov61_0222E764.unk_334);
}
void ov61_0222D4DC(void)
{
OS_UnlockMutex(&Unk_ov61_0222E764.unk_334);
}
int ov61_0222D4F0(void)
{
OS_InitMutex(&Unk_ov61_0222E764.unk_334);
return 1;
}
int ov61_0222D508(void)
{
return 1;
}
int ov61_0222D510(void)
{
if (!OS_IsTickAvailable()) {
OS_InitTick();
}
Unk_ov61_0222E764.unk_270 = 16;
return 1;
}
void ov61_0222D53C(void)
{
return;
}
static void ov61_0222D540(void *param0)
{
ov61_0222D040();
}
int ov61_0222D54C(void)
{
OS_CreateThread(&Unk_ov61_0222E764.unk_274, ov61_0222D540, 0, &Unk_ov61_0222EAB0[0x800], 0x800, Unk_ov61_0222E764.unk_270);
OS_WakeupThreadDirect(&Unk_ov61_0222E764.unk_274);
return 1;
}
static BOOL ov61_0222D5A0(char *param0)
{
int v0 = 0;
int v1 = 0;
while (*param0 != 0) {
if ('0' <= *param0 && *param0 <= '9') {
v0++;
if (v0 >= 4) {
return FALSE;
}
} else if (*param0 == '.') {
if (v0 == 0) {
return FALSE;
}
v1++;
v0 = 0;
if (v1 >= 4) {
return FALSE;
}
} else {
return FALSE;
}
param0++;
}
return v1 == 3 && v0 != 0;
}
static BOOL ov61_0222D638(char *param0, char *param1)
{
int v0 = ov61_0222D5A0(param0);
if (!v0) {
SOCHostEnt *v1 = SOC_GetHostByName(param0);
if (v1) {
SOCInAddr v2 = { ((u32 *)v1->addrList[0])[0] };
char *v3 = SOC_InetNtoA(v2);
strcpy(param1, v3);
} else {
return FALSE;
}
} else {
strcpy(param1, param0);
}
return TRUE;
}
BOOL ov61_0222D6A0(void)
{
int v0 = SOC_Socket(SOC_PF_INET, SOC_SOCK_STREAM, 0);
Unk_ov61_0222E764.unk_26C = v0;
if (v0 == -1) {
Unk_ov61_0222E764.unk_250 = 3;
return FALSE;
}
int v1 = SOC_Fcntl(v0, SOC_F_GETFL, 0);
int v2 = SOC_Fcntl(Unk_ov61_0222E764.unk_26C, SOC_F_SETFL, v1 | SOC_O_NONBLOCK);
if (v2 < 0) {
Unk_ov61_0222E764.unk_250 = 4;
return FALSE;
}
char v3[14];
BOOL v4 = ov61_0222D638(Unk_ov61_0222E764.unk_140, v3);
if (!v4) {
Unk_ov61_0222E764.unk_250 = 5;
return FALSE;
}
int v5 = inet_addr(v3);
Unk_ov61_0222E764.unk_264 = v5;
return TRUE;
}
void ov61_0222D770(void)
{
if (Unk_ov61_0222E764.unk_26C == -1) {
return;
}
SOC_Shutdown(Unk_ov61_0222E764.unk_26C, 2);
SOC_Close(Unk_ov61_0222E764.unk_26C);
Unk_ov61_0222E764.unk_26C = -1;
}
BOOL ov61_0222D7B0(void)
{
SOCSockAddrIn v0;
v0.len = sizeof(SOCSockAddrIn);
v0.family = SOC_PF_INET;
v0.port = ((Unk_ov61_0222E764.unk_240 >> 8) & 0xFF) | ((Unk_ov61_0222E764.unk_240 << 8) & 0xFF00);
v0.addr.addr = Unk_ov61_0222E764.unk_264;
u64 v1 = OS_GetTick() / 0x7FD88;
while (TRUE) {
int v2 = SOC_Connect(Unk_ov61_0222E764.unk_26C, &v0);
if (v2 < 0) {
if (v2 == SOC_EINPROGRESS) {
if (Unk_ov61_0222E764.unk_244 != 0) {
int v3 = OS_GetTick() / 0x7FD88 - v1;
if (v3 >= Unk_ov61_0222E764.unk_244) {
Unk_ov61_0222E764.unk_250 = 10;
return FALSE;
}
}
} else if (v2 != SOC_EISCONN) {
Unk_ov61_0222E764.unk_250 = 7;
return FALSE;
} else {
break;
}
ov61_0222D4C8();
if (Unk_ov61_0222E764.unk_268 == 1) {
Unk_ov61_0222E764.unk_250 = 13;
ov61_0222D4DC();
return FALSE;
}
} else {
break;
}
ov61_0222D4DC();
ov61_0222DB8C(1);
}
return 1;
}
BOOL ov61_0222D8F8(void)
{
int v0 = 0;
u64 v1 = OS_GetTick() / 0x7FD88;
while (TRUE) {
int v2 = Unk_ov61_0222E764.unk_254 - v0;
if (v2 > Unk_ov61_0222E764.unk_254) {
v2 = Unk_ov61_0222E764.unk_254;
}
int v3 = SOC_Send(Unk_ov61_0222E764.unk_26C, Unk_ov61_0222E764.unk_258 + v0, v2, 0);
if (v3 != -6) {
if (v3 < 0) {
Unk_ov61_0222E764.unk_250 = 11;
return FALSE;
}
v0 += v3;
if (v0 == Unk_ov61_0222E764.unk_254) {
break;
}
}
if (Unk_ov61_0222E764.unk_248 != 0) {
int v4 = OS_GetTick() / 0x7FD88 - v1;
if (v4 >= Unk_ov61_0222E764.unk_248) {
Unk_ov61_0222E764.unk_250 = 11;
return FALSE;
}
}
ov61_0222D4C8();
if (Unk_ov61_0222E764.unk_268 == 1) {
Unk_ov61_0222E764.unk_250 = 13;
ov61_0222D4DC();
return FALSE;
}
ov61_0222D4DC();
ov61_0222DB8C(1);
}
return TRUE;
}
BOOL ov61_0222DA0C(void)
{
u64 v1;
u32 v0 = 0;
int v6 = -1;
v1 = OS_GetTick() / 0x7FD88;
while (TRUE) {
int v3 = SOC_Recv(Unk_ov61_0222E764.unk_26C, Unk_ov61_0222E764.unk_260 + v0, Unk_ov61_0222E764.unk_25C - v0, 0);
if (v3 != SOC_EWOULDBLOCK) {
if (v3 <= 0) {
Unk_ov61_0222E764.unk_250 = 9;
return FALSE;
}
v0 += v3;
if (v0 >= 4 && v6 == -1) {
memcpy(&v6, Unk_ov61_0222E764.unk_260, sizeof(int));
}
if (v0 == v6 && v6 != -1) {
ov61_0222E110(Unk_ov61_0222E764.unk_260 + 4, v0 - 4, Unk_ov61_0222E764.unk_260 + 4);
Unk_ov61_0222E764.unk_25C = v6 - 4;
break;
}
}
if (Unk_ov61_0222E764.unk_24C != 0) {
int v4 = OS_GetTick() / 0x7FD88 - v1;
if (v4 >= Unk_ov61_0222E764.unk_24C) {
Unk_ov61_0222E764.unk_250 = 12;
return FALSE;
}
}
ov61_0222D4C8();
if (Unk_ov61_0222E764.unk_268 == 1) {
Unk_ov61_0222E764.unk_250 = 13;
ov61_0222D4DC();
return FALSE;
}
ov61_0222D4DC();
ov61_0222DB8C(1);
}
return TRUE;
}
void ov61_0222DB8C(u32 param0)
{
OS_Sleep(param0);
}
BOOL ov61_0222DB98(void)
{
if (Unk_ov61_0222E764.unk_138 == 1) {
return TRUE;
}
DWCSvlResult v0;
if (!DWC_SVLGetTokenAsync("", &v0)) {
Unk_ov61_0222E764.unk_250 = 14;
return FALSE;
}
while (TRUE) {
DWCSvlState v1 = DWC_SVLProcess();
if (v1 == DWC_ETYPE_SHUTDOWN_FM) {
memcpy(&Unk_ov61_0222E764.unk_00.unk_06, &v0.svltoken, DWC_SVL_TOKEN_LENGTH + 1);
Unk_ov61_0222E764.unk_138 = 1;
return TRUE;
} else if (v1 == DWC_ETYPE_SHUTDOWN_GHTTP) {
DWCErrorType v3;
int v2;
DWC_GetLastErrorEx(&v2, &v3);
Unk_ov61_0222E764.unk_250 = 14;
return FALSE;
} else if (v1 == DWC_ETYPE_SHUTDOWN_ND) {
Unk_ov61_0222E764.unk_250 = 14;
return FALSE;
} else {
ov61_0222D4C8();
if (Unk_ov61_0222E764.unk_268 == 1) {
Unk_ov61_0222E764.unk_250 = 13;
ov61_0222D4DC();
return FALSE;
}
}
ov61_0222D4DC();
ov61_0222DB8C(1);
}
}

View File

@ -1,125 +1,142 @@
#include "nitro/types.h"
#include <nitro/types.h>
#include "gds.h"
#include "gds_internal.h"
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 *param0) {
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 *param0)
{
return ov61_0222CF40("pkgdsprod.nintendo.co.jp", 12400, param0);
}
void ov61_0222DCFC(void) {
void ov61_0222DCFC(void)
{
ov61_0222CEDC();
}
int ov61_0222DD08(void) {
int ov61_0222DD08(void)
{
ov61_0222D4C8();
int v0 = ov61_0222D3E8();
ov61_0222D4DC();
return v0;
}
int ov61_0222DD24(void) {
int ov61_0222DD24(void)
{
return ov61_0222D464();
}
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 *param0, void *param1) {
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 *param0, void *param1)
{
UnkStruct_ov62_022349A8_sub3_sub1 v0 = *param0;
ov61_0222E478(param0, "--");
ov61_0222D1FC(0x4E20, &v0, param1, -1);
ov61_0222D1FC(20000, &v0, param1, -1);
}
BOOL ov61_0222DD8C(long param0, void *param1) {
BOOL ov61_0222DD8C(long param0, void *param1)
{
UnkStruct_ov61_0222DD8C v0;
v0.unk_00 = 0;
v0.unk_02 = 0;
v0.unk_04 = param0;
v0.unk_08 = param0 >> 31;
return ov61_0222D1FC(0x4E21, &v0, param1, -1);
return ov61_0222D1FC(20001, &v0, param1, -1);
}
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 *param1, void *param2) {
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 *param1, void *param2)
{
UnkStruct_ov61_0222DDCC v0;
v0.unk_00 = param0;
v0.unk_04 = *param1;
ov61_0222E478(param1, "--");
return ov61_0222D1FC(0x5208, &v0, param2, -1);
return ov61_0222D1FC(21000, &v0, param2, -1);
}
BOOL ov61_0222DE34(long param0, void *param1) {
BOOL ov61_0222DE34(long param0, void *param1)
{
UnkStruct_ov61_0222DD8C v0;
v0.unk_00 = 0;
v0.unk_02 = 0;
v0.unk_04 = param0;
v0.unk_08 = param0 >> 31;
return ov61_0222D1FC(0x5209, &v0, param1, -1);
return ov61_0222D1FC(21001, &v0, param1, -1);
}
long ov61_0222DE74(void) {
long ov61_0222DE74(void)
{
return ov61_0222D430();
}
void *ov61_0222DE80(void) {
void *ov61_0222DE80(void)
{
return ov61_0222D3F8();
}
long ov61_0222DE8C(long param0) {
long ov61_0222DE8C(long param0)
{
return ov61_0222E2A8(param0);
}
BOOL ov61_0222DE98(void *param0) {
return ov61_0222D1FC(0x55F0, NULL, param0, -1);
BOOL ov61_0222DE98(void *param0)
{
return ov61_0222D1FC(22000, NULL, param0, -1);
}
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 *param0, void *param1) {
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 *param0, void *param1)
{
UnkStruct_ov62_0223D518_sub1 v0 = *param0;
return ov61_0222D1FC(0x55F1, &v0, param1, -1);
return ov61_0222D1FC(22001, &v0, param1, -1);
}
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 *param0, void *param1) {
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 *param0, void *param1)
{
UnkStruct_ov62_022349A8_sub3_sub3 v0 = *param0;
return ov61_0222D1FC(0x59D8, &v0, param1, -1);
return ov61_0222D1FC(23000, &v0, param1, -1);
}
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 *param0, void *param1) {
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 *param0, void *param1)
{
UnkStruct_ov61_0222DF60 v0;
v0.unk_00 = 0;
v0.unk_04 = *param0;
v0.unk_00 = 0; // ?
v0.unk_02 = 0;
return ov61_0222D1FC(0x59D9, &v0, param1, -1);
return ov61_0222D1FC(23001, &v0, param1, -1);
}
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1) {
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1)
{
UnkStruct_ov61_0222DFA8 v0 = { 0 };
v0.unk_00 = 1;
v0.unk_0C = param0->unk_00;
return ov61_0222D1FC(0x59D9, &v0, param1, -1);
return ov61_0222D1FC(23001, &v0, param1, -1);
}
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1) {
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1)
{
UnkStruct_ov61_0222DFA8 v0 = { 0 };
v0.unk_00 = 2;
v0.unk_0C = param0->unk_00;
return ov61_0222D1FC(0x59D9, &v0, param1, -1);
return ov61_0222D1FC(23001, &v0, param1, -1);
}
BOOL ov61_0222E058(u64 param0, u32 param1, void *param2) {
BOOL ov61_0222E058(u64 param0, u32 param1, void *param2)
{
UnkStruct_ov61_0222E058 v0;
v0.unk_00 = param0;
v0.unk_08 = param1;
return ov61_0222D1FC(0x59DA, &v0, param2, -1);
return ov61_0222D1FC(23002, &v0, param2, -1);
}
BOOL ov61_0222E08C(u64 param0, void *param1) {
BOOL ov61_0222E08C(u64 param0, void *param1)
{
u64 v0 = param0;
return ov61_0222D1FC(0x59DB, &v0, param1, -1);
return ov61_0222D1FC(23003, &v0, param1, -1);
}

210
lib/gds/src/ov61_0222E0B8.c Normal file
View File

@ -0,0 +1,210 @@
#include <nitro/types.h>
#include "gds.h"
#include "gds_internal.h"
// clang-format off
static u8 Unk_ov61_0222E65C[] = {
0x93, 0x18, 0x33, 0x28, 0x0B, 0x07, 0x03, 0x82, 0x02, 0x43, 0x8A, 0x86, 0xDB, 0x38, 0x34, 0x19,
0xD6, 0xF9, 0x59, 0xB2, 0xAD, 0x6A, 0x7D, 0xBC, 0xEE, 0xE0, 0x3A, 0x3F, 0xCA, 0x4C, 0x25, 0x68,
0xF4, 0xA9, 0x5B, 0xF7, 0x22, 0x60, 0x5A, 0x6F, 0xFA, 0x1B, 0x79, 0xE9, 0x17, 0xB1, 0x00, 0x9C,
0xAA, 0x5E, 0x9D, 0xFF, 0xEA, 0xA0, 0x0D, 0x4B, 0x75, 0xF6, 0x61, 0x85, 0x5D, 0xBB, 0xDC, 0xFB,
0x64, 0x2E, 0x7A, 0xAB, 0xF1, 0xE8, 0x44, 0x0C, 0xB8, 0x8F, 0xA8, 0x0A, 0x8E, 0xBD, 0xE1, 0x3B,
0xFC, 0x3C, 0x9F, 0x1A, 0x56, 0xC5, 0xE2, 0xF5, 0x47, 0xD9, 0xD7, 0x8C, 0xCD, 0x97, 0xF0, 0x7B,
0x8B, 0xC3, 0x4F, 0x45, 0x04, 0x90, 0x81, 0x1E, 0x6B, 0xC9, 0xD3, 0x73, 0xC6, 0xE7, 0x24, 0xBA,
0x32, 0xF3, 0xC0, 0xEC, 0x57, 0xCC, 0xC4, 0xB6, 0xC1, 0xAE, 0xAF, 0x88, 0xF2, 0x84, 0xCE, 0x4A,
0x0F, 0x94, 0x41, 0xB4, 0x74, 0x2A, 0xD1, 0x70, 0x1C, 0xD4, 0xB0, 0xC2, 0x09, 0x08, 0x16, 0x9B,
0xB5, 0x8D, 0x2B, 0xD2, 0x89, 0xB7, 0x99, 0xA1, 0x30, 0x65, 0x54, 0x40, 0x96, 0x71, 0xFE, 0xBF,
0x31, 0x06, 0xE5, 0x14, 0xE6, 0xDA, 0x48, 0x26, 0xAC, 0x87, 0x9A, 0xD8, 0xA6, 0xEB, 0x92, 0xCF,
0xFD, 0x77, 0x1D, 0x21, 0x9E, 0x36, 0x35, 0x53, 0x3E, 0xD0, 0xD5, 0x62, 0x58, 0x5F, 0x63, 0x7C,
0x7E, 0x52, 0x29, 0x12, 0x2C, 0x78, 0x05, 0x91, 0x55, 0xE3, 0xA2, 0xB9, 0xF8, 0x50, 0x95, 0x13,
0x80, 0x7F, 0x11, 0x27, 0xCB, 0x37, 0x4E, 0x51, 0x15, 0xEF, 0xA7, 0x72, 0x4D, 0x83, 0x49, 0xA4,
0x69, 0xDE, 0x20, 0xA3, 0x67, 0xDF, 0x10, 0x42, 0x39, 0x6C, 0x2D, 0xC7, 0x23, 0xE4, 0xDD, 0xED,
0xBE, 0x66, 0xB3, 0x2F, 0x01, 0x6E, 0x6D, 0xC8, 0x1F, 0x98, 0xA5, 0x46, 0x76, 0x5C, 0x3D, 0x0E
};
// clang-format on
void ov61_0222E0B8(u8 *param0, int param1, u8 *param2)
{
for (int i = 0; i < param1; i++) {
u8 v0;
if (i != 0) {
int v1 = (i + param1 + param0[0]) & 0xFF;
v0 = Unk_ov61_0222E65C[v1];
} else {
v0 = 0;
}
*(param2++) = v0 ^ param0[i];
}
}
void ov61_0222E110(u8 *param0, int param1, u8 *param2)
{
for (int i = 0; i < param1; i++) {
u8 v0;
if (i != 0) {
int v1 = (i + param1 + param0[0]) & 0xFF;
v0 = Unk_ov61_0222E65C[v1];
} else {
v0 = 0;
}
param2[i] ^= v0;
}
}
int ov61_0222E168(int param0)
{
int v0;
switch (param0) {
case 0:
v0 = 0x400;
break;
case 20000:
v0 = 0xE0;
break;
case 20001:
v0 = 0xC;
break;
case 21000:
v0 = 0x220;
break;
case 21001:
v0 = 0xC;
break;
case 22000:
v0 = 0;
break;
case 22001:
v0 = 0x24;
break;
case 23000:
v0 = 0x1D4C;
break;
case 23001:
v0 = 0x1C;
break;
case 23002:
v0 = 0xC;
break;
case 23003:
v0 = 8;
break;
default:
return -1;
}
return v0 + 0x140;
}
static const int Unk_ov61_0222E550[] = {
0x5,
0x3,
0x2,
0x4,
0x1,
0x6,
0x9,
0x2,
0x7,
0x8,
0x6,
0x3
};
int ov61_0222E2A8(int param0)
{
const int v0[] = {
0,
20000,
20001,
21000,
21001,
22000,
22001,
23000,
23001,
23002,
23003,
-1
};
int v1;
switch (param0) {
case -1:
int v2 = 0;
v1 = -1;
while (TRUE) {
int v4 = v0[v2];
if (v4 == -1) {
break;
}
int v3 = ov61_0222E2A8(v4);
if (v3 > v1) {
v1 = v3;
}
v2++;
}
if (v1 == -1) {
return -1;
}
break;
case 0:
v1 = 0x400;
break;
case 20000:
v1 = 8;
break;
case 20001:
v1 = 0x93C;
break;
case 21000:
v1 = 8;
break;
case 21001:
v1 = 0x2B74;
break;
case 22000:
v1 = 4;
break;
case 22001:
v1 = 0x630;
break;
case 23000:
v1 = 8;
break;
case 23001:
v1 = 0x1C24;
break;
case 23002:
v1 = 0x1D58;
break;
case 23003:
v1 = 0;
break;
default:
return -1;
}
return v1 + 8;
}
static const int Unk_ov61_0222E5B0[] = {
0x5,
0x3,
0x2,
0x4,
0x1,
0x6,
0x9,
0x2,
0x7,
0x8,
0x6,
0x3
};

View File

@ -0,0 +1,7 @@
#include "gds.h"
#include "gds_internal.h"
void ov61_0222E478(void *param0, char *param1)
{
return;
}

View File

@ -1,8 +1,8 @@
#ifndef SPL_MANAGER_H
#define SPL_MANAGER_H
#include <nitro/types.h>
#include <nitro/gx/g3.h>
#include <nitro/types.h>
#include "spl_emitter.h"
#include "spl_particle.h"

View File

@ -83,12 +83,12 @@ void SPLEmitter_EmitParticles(SPLEmitter *emtr, SPLParticleList *list)
emtr->emissionCountFractional = emitCountDec & FX32_DEC_MASK;
enum SPLEmissionType emitType = header->flags.emissionType;
if (emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER
|| emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER_UNIFORM
|| emitType == SPL_EMISSION_TYPE_CIRCLE
|| emitType == SPL_EMISSION_TYPE_CYLINDER_SURFACE
|| emitType == SPL_EMISSION_TYPE_CYLINDER
|| emitType == SPL_EMISSION_TYPE_HEMISPHERE_SURFACE
if (emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER
|| emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER_UNIFORM
|| emitType == SPL_EMISSION_TYPE_CIRCLE
|| emitType == SPL_EMISSION_TYPE_CYLINDER_SURFACE
|| emitType == SPL_EMISSION_TYPE_CYLINDER
|| emitType == SPL_EMISSION_TYPE_HEMISPHERE_SURFACE
|| emitType == SPL_EMISSION_TYPE_HEMISPHERE) {
SPLEmitter_ComputeOrthogonalAxes(emtr);
}

View File

@ -10,10 +10,12 @@
#include "spl_particle.h"
#define DECODE_WH(X) ((u16)(1 << ((X) + 3)))
// clang-format off
#define EMITTER_SHOULD_TERMINATE(emtr, header) \
(((header->flags.selfMaintaining && header->emitterLifeTime != 0 && emtr->state.started && emtr->age > header->emitterLifeTime) \
|| emtr->state.terminate) \
|| emtr->state.terminate) \
&& emtr->particles.count == 0 && emtr->childParticles.count == 0)
// clang-format on
static u32 SPLUtil_AllocTextureVRAM(u32 size, BOOL is4x4);
static u32 SPLUtil_AllocPaletteVRAM(u32 size, BOOL is4Pltt);

View File

@ -18,7 +18,6 @@
#include "overlay061/struct_ov61_0222B960.h"
#include "overlay061/struct_ov61_0222BDC8.h"
#include "overlay062/ov62_02248408.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub3.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub4.h"
#include "overlay062/struct_ov62_022349A8_sub3_sub5.h"

View File

@ -4,6 +4,7 @@
#include <nitro.h>
#include <string.h>
#include "overlay061/ov61_0222B008.h"
#include "overlay061/struct_ov61_0222B960.h"
#include "overlay061/struct_ov61_0222BC4C.h"
#include "overlay061/struct_ov61_0222BC4C_1.h"
@ -24,7 +25,6 @@
#include "overlay061/struct_ov61_0222BEB8.h"
#include "overlay061/struct_ov61_0222BED8.h"
#include "overlay061/struct_ov61_0222BED8_sub1.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "overlay062/struct_ov62_02239DA4_sub1.h"
#include "overlay062/struct_ov62_0223DF10.h"

View File

@ -14,6 +14,7 @@
#include "struct_defs/struct_0208B878.h"
#include "struct_defs/struct_0208C06C.h"
#include "overlay061/ov61_0222B008.h"
#include "overlay061/ov61_0222BC4C.h"
#include "overlay061/struct_ov61_0222BE20.h"
#include "overlay062/ov62_0222F2C0.h"
@ -27,7 +28,6 @@
#include "overlay062/struct_ov62_02233750.h"
#include "overlay062/struct_ov62_02233828.h"
#include "overlay062/struct_ov62_02233F74.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "overlay062/struct_ov62_0223CAA4.h"
#include "overlay062/struct_ov62_02248CDC.h"

View File

@ -11,7 +11,6 @@
#include "overlay062/ov62_02239D60.h"
#include "overlay062/ov62_0223CAEC.h"
#include "overlay062/ov62_02241204.h"
#include "overlay062/struct_ov62_022349A8.h"
#include "overlay062/struct_ov62_02241130.h"
#include "inlines.h"

View File

@ -1,6 +1,6 @@
[wrap-git]
url = https://github.com/ntrtwl/NitroDWC.git
revision = 4d29f686ae4c2af03f7132571e1481620df3ade1
revision = 51e5adf40cfde2b24a885990bf785bf40d54a66c
depth = 1
directory = NitroDWC-2.2.30008