Merge branch 'master' into unk_020040F4

This commit is contained in:
Rémi Calixte 2021-07-08 09:46:21 +02:00 committed by GitHub
commit 948727e73d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 200 additions and 287 deletions

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start abs
abs: ; 0x020DE3F0
cmp r0, #0x0
rsblt r0, r0, #0x0
bx lr
arm_func_end abs

View File

@ -1,248 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start FUN_0204AF24
FUN_0204AF24: ; 0x0204AF24
push {r3, lr}
bl FUN_02046528
bl FUN_0203739C
cmp r0, #0x0
bne _0204AF36
mov r0, #0x1
pop {r3, pc}
_0204AF36:
mov r0, #0x0
pop {r3, pc}
.balign 4
thumb_func_start FUN_0204AF3C
FUN_0204AF3C: ; 0x0204AF3C
push {r3-r5, lr}
add r5, r0, #0x0
bl FUN_02046528
add r4, r0, #0x0
bl FUN_0203739C
cmp r0, #0x0
bne _0204AF54
bl GF_AssertFail
pop {r3-r5, pc}
_0204AF54:
add r0, r4, #0x0
bl FUN_02037394
ldr r1, _0204AF68 ; =FUN_0204AF24
add r0, r5, #0x0
mov r2, #0x0
bl FUN_0204640C
pop {r3-r5, pc}
nop
_0204AF68: .word FUN_0204AF24
thumb_func_start FUN_0204AF6C
FUN_0204AF6C: ; 0x0204AF6C
push {r3, lr}
bl FUN_02046528
bl FUN_020464A4
cmp r0, #0x0
beq _0204AF7E
mov r0, #0x1
pop {r3, pc}
_0204AF7E:
mov r0, #0x0
pop {r3, pc}
.balign 4
thumb_func_start FUN_0204AF84
FUN_0204AF84: ; 0x0204AF84
push {r3-r5, lr}
add r5, r0, #0x0
bl FUN_02046528
add r4, r0, #0x0
bl FUN_0203739C
cmp r0, #0x0
beq _0204AF9C
bl GF_AssertFail
pop {r3-r5, pc}
_0204AF9C:
add r0, r4, #0x0
bl FUN_0204649C
ldr r1, _0204AFB0 ; =FUN_0204AF6C
add r0, r5, #0x0
mov r2, #0x0
bl FUN_0204640C
pop {r3-r5, pc}
nop
_0204AFB0: .word FUN_0204AF6C
thumb_func_start FUN_0204AFB4
FUN_0204AFB4: ; 0x0204AFB4
push {r3, lr}
bl FUN_0200E308
cmp r0, #0x0
beq _0204AFC2
mov r0, #0x1
pop {r3, pc}
_0204AFC2:
mov r0, #0x0
pop {r3, pc}
.balign 4
thumb_func_start FUN_0204AFC8
FUN_0204AFC8: ; 0x0204AFC8
push {r3-r4, lr}
sub sp, #0xc
add r4, r0, #0x0
bl FUN_02046528
bl FUN_0203739C
cmp r0, #0x0
bne _0204AFE2
bl GF_AssertFail
add sp, #0xc
pop {r3-r4, pc}
_0204AFE2:
mov r0, #0x6
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
mov r0, #0x4
str r0, [sp, #0x8]
mov r0, #0x0
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
bl FUN_0200E1D0
ldr r1, _0204B008 ; =FUN_0204AFB4
add r0, r4, #0x0
mov r2, #0x0
bl FUN_0204640C
add sp, #0xc
pop {r3-r4, pc}
.balign 4
_0204B008: .word FUN_0204AFB4
thumb_func_start FUN_0204B00C
FUN_0204B00C: ; 0x0204B00C
push {r3-r4, lr}
sub sp, #0xc
add r4, r0, #0x0
bl FUN_02046528
bl FUN_0203739C
cmp r0, #0x0
bne _0204B026
bl GF_AssertFail
add sp, #0xc
pop {r3-r4, pc}
_0204B026:
mov r0, #0x6
str r0, [sp, #0x0]
mov r1, #0x1
str r1, [sp, #0x4]
mov r0, #0x4
str r0, [sp, #0x8]
mov r0, #0x0
add r2, r1, #0x0
add r3, r0, #0x0
bl FUN_0200E1D0
ldr r1, _0204B04C ; =FUN_0204AFB4
add r0, r4, #0x0
mov r2, #0x0
bl FUN_0204640C
add sp, #0xc
pop {r3-r4, pc}
nop
_0204B04C: .word FUN_0204AFB4
thumb_func_start FUN_0204B050
FUN_0204B050: ; 0x0204B050
push {r3-r5, lr}
add r5, r0, #0x0
bl FUN_02046530
add r4, r0, #0x0
ldr r0, [r4, #0x0]
cmp r0, #0x0
beq _0204B06A
cmp r0, #0x1
beq _0204B078
cmp r0, #0x2
beq _0204B086
b _0204B08A
_0204B06A:
add r0, r5, #0x0
bl FUN_0204AFC8
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _0204B08A
_0204B078:
add r0, r5, #0x0
bl FUN_0204AF3C
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _0204B08A
_0204B086:
mov r0, #0x1
pop {r3-r5, pc}
_0204B08A:
mov r0, #0x0
pop {r3-r5, pc}
.balign 4
thumb_func_start FUN_0204B090
FUN_0204B090: ; 0x0204B090
ldr r3, _0204B098 ; =FUN_0204640C
ldr r1, _0204B09C ; =FUN_0204B050
mov r2, #0x0
bx r3
.balign 4
_0204B098: .word FUN_0204640C
_0204B09C: .word FUN_0204B050
thumb_func_start FUN_0204B0A0
FUN_0204B0A0: ; 0x0204B0A0
push {r3-r5, lr}
add r5, r0, #0x0
bl FUN_02046530
add r4, r0, #0x0
add r0, r5, #0x0
bl FUN_02046528
ldr r1, [r4, #0x0]
cmp r1, #0x0
beq _0204B0C0
cmp r1, #0x1
beq _0204B0CE
cmp r1, #0x2
beq _0204B0E0
b _0204B0E4
_0204B0C0:
add r0, r5, #0x0
bl FUN_0204AF84
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _0204B0E4
_0204B0CE:
bl MOD05_021E331C
add r0, r5, #0x0
bl FUN_0204B00C
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _0204B0E4
_0204B0E0:
mov r0, #0x1
pop {r3-r5, pc}
_0204B0E4:
mov r0, #0x0
pop {r3-r5, pc}
thumb_func_start FUN_0204B0E8
FUN_0204B0E8: ; 0x0204B0E8
ldr r3, _0204B0F0 ; =FUN_0204640C
ldr r1, _0204B0F4 ; =FUN_0204B0A0
mov r2, #0x0
bx r3
.balign 4
_0204B0F0: .word FUN_0204640C
_0204B0F4: .word FUN_0204B0A0

8
arm9/lib/include/MSL.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef MSL_H
#define MSL_H
//include all msl files here
#include "MSL_Common_arith.h"
#endif //MSL_H

View File

@ -0,0 +1,8 @@
#ifndef MSL_COMMON_ARITH_H
#define MSL_COMMON_ARITH_H
#include "nitro/types.h"
s32 abs(s32 val);
#endif //MSL_COMMON_ARITH_H

View File

@ -0,0 +1,7 @@
#include "MSL_Common_arith.h"
#include "function_target.h"
ARM_FUNC s32 abs(s32 val)
{
return val < 0 ? -val : val;
}

View File

@ -1,12 +1,11 @@
#include "global.h"
#include "MSL.h"
#include "palette.h"
#include "MI_memory.h"
#include "gf_gfx_loader.h"
#include "unk_0200CA44.h"
#include "unk_020222E8.h"
extern int abs(int);
THUMB_FUNC struct PaletteData *FUN_02002FD0(u32 heap_id)
{
struct PaletteData *ptr = AllocFromHeap(heap_id, sizeof(struct PaletteData));

135
arm9/src/unk_0204AF24.c Normal file
View File

@ -0,0 +1,135 @@
#include "global.h"
#include "unk_0204AF24.h"
extern void FUN_02037394(struct UnkSavStruct80 *);
extern u32 FUN_0200E308(void);
extern void FUN_0200E1D0(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 heap_id);
extern void MOD05_021E331C(struct UnkSavStruct80 *);
THUMB_FUNC BOOL FUN_0204AF24(struct UnkStruct_0204639C * arg0)
{
if(!FUN_0203739C(FUN_02046528(arg0)))
{
return TRUE;
}
return FALSE;
}
THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C * r5)
{
struct UnkSavStruct80 * r4 = FUN_02046528(r5);
if(!FUN_0203739C(r4))
{
GF_ASSERT(0);
return;
}
FUN_02037394(r4);
FUN_0204640C(r5, &FUN_0204AF24, NULL);
}
THUMB_FUNC BOOL FUN_0204AF6C(struct UnkStruct_0204639C * arg0)
{
if(FUN_020464A4(FUN_02046528(arg0)))
{
return TRUE;
}
return FALSE;
}
THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C * r5)
{
struct UnkSavStruct80 * r4 = FUN_02046528(r5);
if(FUN_0203739C(r4))
{
GF_ASSERT(0);
return;
}
FUN_0204649C(r4);
FUN_0204640C(r5, &FUN_0204AF6C, NULL);
}
THUMB_FUNC BOOL FUN_0204AFB4(struct UnkStruct_0204639C * arg0)
{
#pragma unused(arg0)
if(FUN_0200E308())
{
return TRUE;
}
return FALSE;
}
THUMB_FUNC void FUN_0204AFC8(struct UnkStruct_0204639C * r4)
{
if(!FUN_0203739C(FUN_02046528(r4)))
{
GF_ASSERT(0);
return;
}
FUN_0200E1D0(0, 0, 0, 0, 6, 1, 4);
FUN_0204640C(r4, &FUN_0204AFB4, 0);
}
THUMB_FUNC void FUN_0204B00C(struct UnkStruct_0204639C * r4)
{
if(!FUN_0203739C(FUN_02046528(r4)))
{
GF_ASSERT(0);
return;
}
FUN_0200E1D0(0, 1, 1, 0, 6, 1, 4);
FUN_0204640C(r4, FUN_0204AFB4, 0);
}
THUMB_FUNC BOOL FUN_0204B050(struct UnkStruct_0204639C * r5)
{
u32 * r4 = FUN_02046530(r5);
switch(r4[0])
{
case 0:
FUN_0204AFC8(r5);
r4[0]++;
break;
case 1:
FUN_0204AF3C(r5);
r4[0]++;
break;
case 2:
return TRUE;
default:
break;
}
return FALSE;
}
THUMB_FUNC void FUN_0204B090(struct UnkStruct_0204639C * r0)
{
FUN_0204640C(r0, &FUN_0204B050, 0);
}
THUMB_FUNC BOOL FUN_0204B0A0(struct UnkStruct_0204639C * r5)
{
u32 * r4 = FUN_02046530(r5);
struct UnkSavStruct80 * r0 = FUN_02046528(r5);
switch(r4[0])
{
case 0:
FUN_0204AF84(r5);
r4[0]++;
break;
case 1:
MOD05_021E331C(r0);
FUN_0204B00C(r5);
r4[0]++;
break;
case 2:
return TRUE;
default:
break;
}
return FALSE;
}
THUMB_FUNC void FUN_0204B0E8(struct UnkStruct_0204639C * r0)
{
FUN_0204640C(r0, &FUN_0204B0A0, 0);
}

View File

@ -3,38 +3,33 @@
#include "heap.h"
#include "event_data.h"
#include "main.h"
#include "unk_0204AF24.h"
/* Note to future reader, there might be some errors
in the return type / parameters. They are right for this code
but they might not be for every code, please do not blindly
trust these prototypes if you are decompiling these functions. */
extern THUMB_FUNC u32 MOD06_02244DB0(u32);
extern THUMB_FUNC void MOD06_02244DBC(void*);
extern THUMB_FUNC void MOD06_02244DC4(void*, void*);
extern THUMB_FUNC void MOD06_02244EF8(void*);
extern THUMB_FUNC void MOD06_02244F18(void*);
extern THUMB_FUNC BOOL MOD06_02244F24(void*);
extern THUMB_FUNC void MOD06_02244F2C(void*);
extern THUMB_FUNC void* MOD06_02245088(struct UnkSavStruct80 * savStruct);
extern THUMB_FUNC u32 MOD06_02245114(u32, struct UnkSavStruct80*);
extern THUMB_FUNC void MOD06_02245190(u32);
extern THUMB_FUNC void MOD06_02245198(u8, u32);
extern THUMB_FUNC u32 MOD06_022451F0(u32);
extern THUMB_FUNC void PlaySE(u32);
extern THUMB_FUNC void FUN_02049160(struct UnkStruct_0204639C*, u32);
extern THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C*);
extern THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C *);
extern THUMB_FUNC void FUN_0204AFC8(struct UnkStruct_0204639C *);
extern THUMB_FUNC void FUN_0204B00C(struct UnkStruct_0204639C *);
extern THUMB_FUNC void FUN_0204C1B4(struct UnkStruct_0204639C*, u32,u32,u32,u32,u32,u32,u32);
extern THUMB_FUNC u32 FUN_020553A0(u32);
extern THUMB_FUNC void FUN_0205889C(u32, u32);
extern THUMB_FUNC void FUN_0205F1C4(struct ScriptState *);
extern THUMB_FUNC void FUN_0205F1D4(struct ScriptState *);
extern THUMB_FUNC void FUN_0206367C(struct UnkSavStruct80 *, u32);
extern u32 MOD06_02244DB0(u32);
extern void MOD06_02244DBC(void*);
extern void MOD06_02244DC4(void*, void*);
extern void MOD06_02244EF8(void*);
extern void MOD06_02244F18(void*);
extern BOOL MOD06_02244F24(void*);
extern void MOD06_02244F2C(void*);
extern void * MOD06_02245088(struct UnkSavStruct80 * savStruct);
extern u32 MOD06_02245114(u32, struct UnkSavStruct80*);
extern void MOD06_02245190(u32);
extern void MOD06_02245198(u8, u32);
extern u32 MOD06_022451F0(u32);
extern void PlaySE(u32);
extern void FUN_02049160(struct UnkStruct_0204639C*, u32);
extern void FUN_0204C1B4(struct UnkStruct_0204639C*, u32,u32,u32,u32,u32,u32,u32);
extern u32 FUN_020553A0(u32);
extern void FUN_0205889C(u32, u32);
extern void FUN_0205F1C4(struct ScriptState *);
extern void FUN_0205F1D4(struct ScriptState *);
extern void FUN_0206367C(struct UnkSavStruct80 *, u32);
THUMB_FUNC void FUN_0206015C(struct UnkSavStruct80 *savStruct)
{

1
files/graphic/poketch/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
narc_0010.NCGR

19
include/unk_0204AF24.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef POKEDIAMOND_UNK_0204AF24_H
#define POKEDIAMOND_UNK_0204AF24_H
#include "nitro/types.h"
#include "unk_0204639C.h"
BOOL FUN_0204AF24(struct UnkStruct_0204639C * arg0);
void FUN_0204AF3C(struct UnkStruct_0204639C * r5);
BOOL FUN_0204AF6C(struct UnkStruct_0204639C * arg0);
void FUN_0204AF84(struct UnkStruct_0204639C * r5);
BOOL FUN_0204AFB4(struct UnkStruct_0204639C * arg0);
void FUN_0204AFC8(struct UnkStruct_0204639C * r4);
void FUN_0204B00C(struct UnkStruct_0204639C * r4);
BOOL FUN_0204B050(struct UnkStruct_0204639C * r5);
void FUN_0204B090(struct UnkStruct_0204639C * r0);
BOOL FUN_0204B0A0(struct UnkStruct_0204639C * r5);
void FUN_0204B0E8(struct UnkStruct_0204639C * r0);
#endif // POKEDIAMOND_UNK_0204AF24_H