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

This commit is contained in:
PikalaxALT 2021-11-24 13:35:10 -05:00
commit 55e46e35dd
21 changed files with 2215 additions and 4103 deletions

File diff suppressed because it is too large Load Diff

View File

@ -181,4 +181,40 @@ typedef union
}
GXBoxTestParam;
#define GX_PACK_TEXIMAGE_PARAM(texFmt, texGen, s, t, repeat, flip, pltt0, addr) \
((u32)(((addr) >> 3) | \
((texFmt) << REG_G3_TEXIMAGE_PARAM_TEXFMT_SHIFT) | \
((texGen) << REG_G3_TEXIMAGE_PARAM_TGEN_SHIFT) | \
((s) << REG_G3_TEXIMAGE_PARAM_V_SIZE_SHIFT) | \
((t) << REG_G3_TEXIMAGE_PARAM_T_SIZE_SHIFT) | \
((repeat) << REG_G3_TEXIMAGE_PARAM_RS_SHIFT) | \
((flip) << REG_G3_TEXIMAGE_PARAM_FS_SHIFT) | \
((pltt0) << REG_G3_TEXIMAGE_PARAM_TR_SHIFT)))
#define GX_PACK_POLYGONATTR_PARAM(light, polyMode, cullMode, polygonID, alpha, misc) \
((u32)(((light) << REG_G3_POLYGON_ATTR_LE_SHIFT) | \
((polyMode) << REG_G3_POLYGON_ATTR_PM_SHIFT) | \
((cullMode) << REG_G3_POLYGON_ATTR_BK_SHIFT) | \
(misc) | \
((polygonID) << REG_G3_POLYGON_ATTR_ID_SHIFT) | \
((alpha) << REG_G3_POLYGON_ATTR_ALPHA_SHIFT)))
#define GX_PACK_TEXPLTTBASE_PARAM(addr, texFmt) \
((u32)((addr) >> (4 - ((texFmt) == GX_TEXFMT_PLTT4))))
#define GX_PACK_DIFFAMB_PARAM(diffuse, ambient, IsSetVtxColor) \
((u32)((diffuse) | \
((ambient) << REG_G3_DIF_AMB_AMBIENT_RED_SHIFT) | \
((IsSetVtxColor != FALSE) << REG_G3_DIF_AMB_C_SHIFT)))
#define GX_PACK_SPECEMI_PARAM(specular, emission, IsShininess) \
((u32)((specular) | \
((emission) << REG_G3_SPE_EMI_EMISSION_RED_SHIFT) | \
((IsShininess != FALSE) << REG_G3_SPE_EMI_S_SHIFT)))
#endif //GUARD_GX_G3_H

View File

@ -1,10 +1,68 @@
#ifndef GUARD_GX_G3IMM_H
#define GUARD_GX_G3IMM_H
#include "GX_g3.h"
#include "fx.h"
void G3_LoadMtx43(struct Mtx43 *mtx);
void G3_MultMtx43(struct Mtx43 *mtx);
void G3_MultMtx33(struct Mtx33 *mtx);
#endif //GUARD_GX_G3IMM_H
static inline void G3_PushMtx()
{
reg_G3_MTX_PUSH = 0;
}
static inline void G3_PopMtx(int num)
{
reg_G3_MTX_POP = (u32)num;
}
static inline void G3_Identity()
{
reg_G3_MTX_IDENTITY = 0;
}
static inline void G3_Translate(fx32 x, fx32 y, fx32 z)
{
reg_G3_MTX_TRANS = (u32)x;
reg_G3_MTX_TRANS = (u32)y;
reg_G3_MTX_TRANS = (u32)z;
}
static inline void G3_PolygonAttr(int light, GXPolygonMode polyMode, GXCull cullMode, int polygonID, int alpha, int misc) {
reg_G3_POLYGON_ATTR = GX_PACK_POLYGONATTR_PARAM(light,
polyMode, cullMode, polygonID, alpha, misc);
}
static inline void G3_TexImageParam(GXTexFmt texFmt,
GXTexGen texGen,
GXTexSizeS s,
GXTexSizeT t,
GXTexRepeat repeat,
GXTexFlip flip, GXTexPlttColor0 pltt0, u32 addr) {
reg_G3_TEXIMAGE_PARAM = GX_PACK_TEXIMAGE_PARAM(texFmt, texGen, s, t, repeat, flip, pltt0, addr);
}
static inline void G3_TexPlttBase(u32 addr, GXTexFmt texfmt)
{
u32 param = GX_PACK_TEXPLTTBASE_PARAM(addr, texfmt);
reg_G3_TEXPLTT_BASE = param;
}
static inline void G3_MaterialColorDiffAmb(GXRgb diffuse, GXRgb ambient, BOOL IsSetVtxColor)
{
reg_G3_DIF_AMB = GX_PACK_DIFFAMB_PARAM(diffuse, ambient, IsSetVtxColor);
}
static inline void G3_MaterialColorSpecEmi(GXRgb specular, GXRgb emission, BOOL IsShininess)
{
reg_G3_SPE_EMI = GX_PACK_SPECEMI_PARAM(specular, emission, IsShininess);
}
#endif //GUARD_GX_G3IMM_H

View File

@ -1066,4 +1066,154 @@
#define REG_OS_TM3CNT_H_PS_SIZE 2
#define REG_OS_TM3CNT_H_PS_MASK 0x0003
// POLYGON_ATTR
#define REG_G3_POLYGON_ATTR_ID_SHIFT 24
#define REG_G3_POLYGON_ATTR_ID_SIZE 6
#define REG_G3_POLYGON_ATTR_ID_MASK 0x3f000000
#define REG_G3_POLYGON_ATTR_ALPHA_SHIFT 16
#define REG_G3_POLYGON_ATTR_ALPHA_SIZE 5
#define REG_G3_POLYGON_ATTR_ALPHA_MASK 0x001f0000
#define REG_G3_POLYGON_ATTR_FE_SHIFT 15
#define REG_G3_POLYGON_ATTR_FE_SIZE 1
#define REG_G3_POLYGON_ATTR_FE_MASK 0x00008000
#define REG_G3_POLYGON_ATTR_DT_SHIFT 14
#define REG_G3_POLYGON_ATTR_DT_SIZE 1
#define REG_G3_POLYGON_ATTR_DT_MASK 0x00004000
#define REG_G3_POLYGON_ATTR_D1_SHIFT 13
#define REG_G3_POLYGON_ATTR_D1_SIZE 1
#define REG_G3_POLYGON_ATTR_D1_MASK 0x00002000
#define REG_G3_POLYGON_ATTR_FC_SHIFT 12
#define REG_G3_POLYGON_ATTR_FC_SIZE 1
#define REG_G3_POLYGON_ATTR_FC_MASK 0x00001000
#define REG_G3_POLYGON_ATTR_XL_SHIFT 11
#define REG_G3_POLYGON_ATTR_XL_SIZE 1
#define REG_G3_POLYGON_ATTR_XL_MASK 0x00000800
#define REG_G3_POLYGON_ATTR_FR_SHIFT 7
#define REG_G3_POLYGON_ATTR_FR_SIZE 1
#define REG_G3_POLYGON_ATTR_FR_MASK 0x00000080
#define REG_G3_POLYGON_ATTR_BK_SHIFT 6
#define REG_G3_POLYGON_ATTR_BK_SIZE 1
#define REG_G3_POLYGON_ATTR_BK_MASK 0x00000040
#define REG_G3_POLYGON_ATTR_PM_SHIFT 4
#define REG_G3_POLYGON_ATTR_PM_SIZE 2
#define REG_G3_POLYGON_ATTR_PM_MASK 0x00000030
#define REG_G3_POLYGON_ATTR_LE_SHIFT 0
#define REG_G3_POLYGON_ATTR_LE_SIZE 4
#define REG_G3_POLYGON_ATTR_LE_MASK 0x0000000f
// TEXIMAGE_PARAM
#define REG_G3_TEXIMAGE_PARAM_TGEN_SHIFT 30
#define REG_G3_TEXIMAGE_PARAM_TGEN_SIZE 2
#define REG_G3_TEXIMAGE_PARAM_TGEN_MASK 0xc0000000
#define REG_G3_TEXIMAGE_PARAM_TR_SHIFT 29
#define REG_G3_TEXIMAGE_PARAM_TR_SIZE 1
#define REG_G3_TEXIMAGE_PARAM_TR_MASK 0x20000000
#define REG_G3_TEXIMAGE_PARAM_TEXFMT_SHIFT 26
#define REG_G3_TEXIMAGE_PARAM_TEXFMT_SIZE 3
#define REG_G3_TEXIMAGE_PARAM_TEXFMT_MASK 0x1c000000
#define REG_G3_TEXIMAGE_PARAM_T_SIZE_SHIFT 23
#define REG_G3_TEXIMAGE_PARAM_T_SIZE_SIZE 3
#define REG_G3_TEXIMAGE_PARAM_T_SIZE_MASK 0x03800000
#define REG_G3_TEXIMAGE_PARAM_V_SIZE_SHIFT 20
#define REG_G3_TEXIMAGE_PARAM_V_SIZE_SIZE 3
#define REG_G3_TEXIMAGE_PARAM_V_SIZE_MASK 0x00700000
#define REG_G3_TEXIMAGE_PARAM_FT_SHIFT 19
#define REG_G3_TEXIMAGE_PARAM_FT_SIZE 1
#define REG_G3_TEXIMAGE_PARAM_FT_MASK 0x00080000
#define REG_G3_TEXIMAGE_PARAM_FS_SHIFT 18
#define REG_G3_TEXIMAGE_PARAM_FS_SIZE 1
#define REG_G3_TEXIMAGE_PARAM_FS_MASK 0x00040000
#define REG_G3_TEXIMAGE_PARAM_RT_SHIFT 17
#define REG_G3_TEXIMAGE_PARAM_RT_SIZE 1
#define REG_G3_TEXIMAGE_PARAM_RT_MASK 0x00020000
#define REG_G3_TEXIMAGE_PARAM_RS_SHIFT 16
#define REG_G3_TEXIMAGE_PARAM_RS_SIZE 1
#define REG_G3_TEXIMAGE_PARAM_RS_MASK 0x00010000
#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SHIFT 0
#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SIZE 16
#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_MASK 0x0000ffff
// DIF_AMB
#define REG_G3_DIF_AMB_AMBIENT_BLUE_SHIFT 26
#define REG_G3_DIF_AMB_AMBIENT_BLUE_SIZE 5
#define REG_G3_DIF_AMB_AMBIENT_BLUE_MASK 0x7c000000
#define REG_G3_DIF_AMB_AMBIENT_GREEN_SHIFT 21
#define REG_G3_DIF_AMB_AMBIENT_GREEN_SIZE 5
#define REG_G3_DIF_AMB_AMBIENT_GREEN_MASK 0x03e00000
#define REG_G3_DIF_AMB_AMBIENT_RED_SHIFT 16
#define REG_G3_DIF_AMB_AMBIENT_RED_SIZE 5
#define REG_G3_DIF_AMB_AMBIENT_RED_MASK 0x001f0000
#define REG_G3_DIF_AMB_C_SHIFT 15
#define REG_G3_DIF_AMB_C_SIZE 1
#define REG_G3_DIF_AMB_C_MASK 0x00008000
#define REG_G3_DIF_AMB_DIFFUSE_BLUE_SHIFT 10
#define REG_G3_DIF_AMB_DIFFUSE_BLUE_SIZE 5
#define REG_G3_DIF_AMB_DIFFUSE_BLUE_MASK 0x00007c00
#define REG_G3_DIF_AMB_DIFFUSE_GREEN_SHIFT 5
#define REG_G3_DIF_AMB_DIFFUSE_GREEN_SIZE 5
#define REG_G3_DIF_AMB_DIFFUSE_GREEN_MASK 0x000003e0
#define REG_G3_DIF_AMB_DIFFUSE_RED_SHIFT 0
#define REG_G3_DIF_AMB_DIFFUSE_RED_SIZE 5
#define REG_G3_DIF_AMB_DIFFUSE_RED_MASK 0x0000001f
// SPE_EMI
#define REG_G3_SPE_EMI_EMISSION_BLUE_SHIFT 26
#define REG_G3_SPE_EMI_EMISSION_BLUE_SIZE 5
#define REG_G3_SPE_EMI_EMISSION_BLUE_MASK 0x7c000000
#define REG_G3_SPE_EMI_EMISSION_GREEN_SHIFT 21
#define REG_G3_SPE_EMI_EMISSION_GREEN_SIZE 5
#define REG_G3_SPE_EMI_EMISSION_GREEN_MASK 0x03e00000
#define REG_G3_SPE_EMI_EMISSION_RED_SHIFT 16
#define REG_G3_SPE_EMI_EMISSION_RED_SIZE 5
#define REG_G3_SPE_EMI_EMISSION_RED_MASK 0x001f0000
#define REG_G3_SPE_EMI_S_SHIFT 15
#define REG_G3_SPE_EMI_S_SIZE 1
#define REG_G3_SPE_EMI_S_MASK 0x00008000
#define REG_G3_SPE_EMI_SPECULAR_BLUE_SHIFT 10
#define REG_G3_SPE_EMI_SPECULAR_BLUE_SIZE 5
#define REG_G3_SPE_EMI_SPECULAR_BLUE_MASK 0x00007c00
#define REG_G3_SPE_EMI_SPECULAR_GREEN_SHIFT 5
#define REG_G3_SPE_EMI_SPECULAR_GREEN_SIZE 5
#define REG_G3_SPE_EMI_SPECULAR_GREEN_MASK 0x000003e0
#define REG_G3_SPE_EMI_SPECULAR_RED_SHIFT 0
#define REG_G3_SPE_EMI_SPECULAR_RED_SIZE 5
#define REG_G3_SPE_EMI_SPECULAR_RED_MASK 0x0000001f
#endif //POKEDIAMOND_ARM9_REGISTERS_H

View File

@ -220,5 +220,7 @@ void NNS_G2dApplyAndResetOamManagerBuffer(NNSG2dOamManager *oamManager);
u32 NNS_G2dEntryOamManagerOamWithAffineIdx(
NNSG2dOamManager *oamManager, u32 param1, u32 param2);
u32 NNS_G2dEntryOamManagerAffine(NNSG2dOamManager *oamManager, u32 param1);
void NNS_G2dInitImageProxy(NNSG2dImageProxy *);
void NNS_G2dInitImagePaletteProxy(NNSG2dImagePaletteProxy *);
#endif //NNSYS_NNS_G2D_H

View File

@ -2,11 +2,12 @@
#define POKEDIAMOND_MOD63_021DB450_H
#include "global.h"
#include "unk_02006D98.h"
typedef struct UnkStruct63_021DB450 //intro base struct type
{
struct UnkStruct63_021DB450 * field_00; //oddly requires this to be set to progress past copyright/pokemon screen.
u32 field_04[3]; //mon animations?
struct UnkStruct_02006D98 * field_00; //oddly requires this to be set to progress past copyright/pokemon screen.
struct UnkStruct_02006D98_2 * field_04[3]; //mon animations?
u32 field_10;
void * field_14;
void * field_18;
@ -21,13 +22,7 @@ typedef struct UnkStruct63_021DB450 //intro base struct type
u8 filler_34[0x30];
} UnkStruct63_021DB450;
typedef struct UnkStruct63_021DB49C
{
u32 field_00;
u32 field_04;
u32 field_08;
u32 field_0C;
} UnkStruct63_021DB49C;
typedef struct UnkStruct63_021DBEF0
{

View File

@ -3,6 +3,7 @@
#include "constants/species.h"
#include "gx.h"
#include "mod63_021DB450.h"
#include "unk_02006D98.h"
//todo resolve to static code
extern u32 (*NNS_GfdDefaultFuncAllocTexVram)(u32 param0, u32 param1, u32 param2);
@ -12,38 +13,30 @@ extern void FUN_0201327C(u32 param0);
extern void FUN_020132BC(u32 param0);
extern void * FUN_02012CDC(void *, void *, void *, u32, u32, u32);
extern u32 FUN_020073A0(struct UnkStruct63_021DB450 *, struct UnkStruct63_021DB49C *, u32, u32, u32, u32, u32, u32);
extern struct UnkStruct63_021DB450 * FUN_02006D98(u32);
extern void FUN_02068C00(struct UnkStruct63_021DB49C*, u16, u32, u32, u32, u32, u32);
extern void FUN_02068C00(struct UnkStruct_02006D98_4*, u16, u32, u32, u32, u32, u32);
extern void FUN_02012CC8(void);
extern void FUN_02007558(u32, u32, u32);
extern void Camera_SetPerspectiveClippingPlane(u32, u32, u32);
extern u32 FUN_0201343C(void);
extern void FUN_02013194(void *, u32, u32, u32);
extern u32 FUN_0201318C(u32, u32, u32);
extern void FUN_02012DE4(void *);
extern void FUN_020072E8(struct UnkStruct63_021DB450 *);
extern void FUN_020081C4(struct UnkStruct63_021DB450 *);
extern void FUN_020222AC(void);
extern void NNS_G2dSetupSoftwareSpriteCamera(void);
extern u32 FUN_02006ED4(struct UnkStruct63_021DB450 *);
extern void FUN_020222B4(u32, u32);
extern void FUN_02013440(void *, u32);
extern void FUN_020133AC(void *, u32, const void *, u32);
extern void FUN_020133AC(void *, u32, const void *, struct UnkStruct_02006D98_2 *);
extern BOOL FUN_020133C8(void *);
extern void FUN_020079E0(u32, u32, s32);
extern void FUN_02013364(void);
extern void FUN_02013388(void);
void * FUN_0201341C(struct UnkStruct63_021DB450 *);
int FUN_0200782C(void *, int);
struct UnkStruct_02006D98_2 * FUN_0201341C(struct UnkStruct63_021DB450 *);
const s32 MOD63_021DBEC0[3] = {0x703, 0x7CE, 0x8A8};
const struct UnkStruct63_021DBEF0 MOD63_021DBEF0[3];
@ -71,7 +64,7 @@ THUMB_FUNC u32 MOD63_021DB498(void)
THUMB_FUNC void Title_SetupMonAnimationSprites(struct UnkStruct63_021DB450 * arg0) //TODO: this does a lot more than setup anim sprites
{
struct UnkStruct63_021DB49C sp1C;
struct UnkStruct_02006D98_4 sp1C;
int introMonArray[3] = {SPECIES_TURTWIG, SPECIES_CHIMCHAR, SPECIES_PIPLUP};
arg0->field_00 = FUN_02006D98(76); //this is needed to get into the world view, otherwise it is just black
@ -115,7 +108,7 @@ THUMB_FUNC void MOD63_021DB5A8(UnkStruct63_021DB450 *param0)
}
FUN_020222AC();
NNS_G2dSetupSoftwareSpriteCamera();
(void)FUN_02006ED4(param0->field_00);
FUN_02006ED4(param0->field_00);
MOD63_021DB934();
FUN_020222B4(1, 0);
}
@ -193,7 +186,7 @@ THUMB_FUNC BOOL MOD63_021DB5CC(UnkStruct63_021DB450 *param0, u32 param1, s32 par
THUMB_FUNC BOOL MOD63_021DB720(UnkStruct63_021DB450 *param0, u32 param1)
{
u32 field = param0->field_04[param1];
struct UnkStruct_02006D98_2 *field = param0->field_04[param1];
FUN_020079E0(field, 0x0, 0x6);
FUN_020079E0(field, 0x1, -0x10);
FUN_020079E0(field, 0xC, -0x80);
@ -210,7 +203,7 @@ THUMB_FUNC BOOL MOD63_021DB720(UnkStruct63_021DB450 *param0, u32 param1)
THUMB_FUNC BOOL MOD63_021DB784(UnkStruct63_021DB450 *param0, u32 param1)
{
u32 field = param0->field_04[param1];
struct UnkStruct_02006D98_2 *field = param0->field_04[param1];
FUN_020079E0(field, 0x0, -0x3);
FUN_020079E0(field, 0x1, -0x12);
param0->field_1D++;
@ -225,7 +218,7 @@ THUMB_FUNC BOOL MOD63_021DB784(UnkStruct63_021DB450 *param0, u32 param1)
THUMB_FUNC BOOL MOD63_021DB7D0(UnkStruct63_021DB450 *param0, u32 param1)
{
u32 field = param0->field_04[param1];
struct UnkStruct_02006D98_2 *field = param0->field_04[param1];
FUN_020079E0(field, 0x0, -0x10);
FUN_020079E0(field, 0x1, -0x10);
FUN_020079E0(field, 0xC, -0x80);
@ -242,7 +235,7 @@ THUMB_FUNC BOOL MOD63_021DB7D0(UnkStruct63_021DB450 *param0, u32 param1)
THUMB_FUNC BOOL MOD63_021DB838(UnkStruct63_021DB450 *param0, u32 param1)
{
u32 field = param0->field_04[param1];
struct UnkStruct_02006D98_2 *field = param0->field_04[param1];
FUN_020079E0(field, 0, -0x6);
FUN_020079E0(field, 1, -0x10);
param0->field_1D++;
@ -257,7 +250,7 @@ THUMB_FUNC BOOL MOD63_021DB838(UnkStruct63_021DB450 *param0, u32 param1)
THUMB_FUNC BOOL MOD63_021DB884(UnkStruct63_021DB450 *param0, u32 param1)
{
u32 field = param0->field_04[param1];
struct UnkStruct_02006D98_2 *field = param0->field_04[param1];
FUN_020079E0(field, 0, 0x8);
FUN_020079E0(field, 1, -0x10);
FUN_020079E0(field, 0xC, -0x80);
@ -274,7 +267,7 @@ THUMB_FUNC BOOL MOD63_021DB884(UnkStruct63_021DB450 *param0, u32 param1)
THUMB_FUNC BOOL MOD63_021DB8E8(UnkStruct63_021DB450 *param0, u32 param1)
{
u32 field = param0->field_04[param1];
struct UnkStruct_02006D98_2 *field = param0->field_04[param1];
FUN_020079E0(field, 0, 0x6);
FUN_020079E0(field, 1, -0x14);
param0->field_1D++;
@ -295,7 +288,7 @@ THUMB_FUNC void MOD63_021DB934(void)
THUMB_FUNC void MOD63_021DB940(struct UnkStruct63_021DB450 * a0)
{
void * r4 = FUN_0201341C(a0);
struct UnkStruct_02006D98_2 * r4 = FUN_0201341C(a0);
int sp0[3] = {0, 0, 0};
sp0[0] = (FUN_0200782C(r4, 0) - 0x80) * 0xAC;
sp0[1] = (FUN_0200782C(r4, 1) - 0x60) * 0xAC;

View File

@ -9,6 +9,7 @@
#include "unk_020061E8.h"
#include "unk_0200BB14.h"
#include "unk_0200CA44.h"
#include "unk_02006D98.h"
const struct UnkStruct_0200CABC_3 UNK_020ECE88 = {
10,
@ -50,8 +51,6 @@ extern void MOD05_021D971C(struct UnkStruct_0200CABC_2 *param0,
u32 param4,
u32 param5);
extern u32 *MOD05_021D9820(struct UnkStruct_0200CABC_2 *param0, void *);
extern struct UnkStruct63_021DB450 *FUN_02006D98(u32);
extern void FUN_020072E8(struct UnkStruct63_021DB450 *param0);
extern void FUN_02012400(u16, u16, u16, void *, void *);
extern u32 NNS_G2dGetImageLocation(u32, u32);
extern void *FUN_02012470(u16, u16, u16);
@ -898,7 +897,7 @@ THUMB_FUNC void FUN_0200DE30(struct UnkStruct_0200CABC_2 *param0, u8 param1, u8
THUMB_FUNC void FUN_0200DE80(struct UnkStruct_0200CABC_2 *param0, u16 param1, u8 param2)
{
struct UnkStruct63_021DB450 *r7 = FUN_02006D98(param0->unk162);
struct UnkStruct_02006D98 *r7 = FUN_02006D98(param0->unk162);
struct SomeDrawPokemonStruct stc;
FUN_02068C00(&stc, param1, param2, 2, 0, 0, 0);
FUN_0200DEF4(param0, &stc);
@ -907,7 +906,7 @@ THUMB_FUNC void FUN_0200DE80(struct UnkStruct_0200CABC_2 *param0, u16 param1, u8
THUMB_FUNC void FUN_0200DEC0(struct UnkStruct_0200CABC_2 *param0, struct Pokemon *param1)
{
struct UnkStruct63_021DB450 *r6 = FUN_02006D98(param0->unk162);
struct UnkStruct_02006D98 *r6 = FUN_02006D98(param0->unk162);
struct SomeDrawPokemonStruct st0;
FUN_02068B68(&st0, param1, 2);
FUN_0200DEF4(param0, &st0);

1719
arm9/src/unk_02006D98.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -408,3 +408,4 @@ narc_0173.NCGR
narc_0198.NCGR
*.png
*.pal
*.txt

View File

@ -0,0 +1,33 @@
all recn after 203 seem to be equal (PokéBall throw animation)
195:
47.rlcn
203.recn
196:
48.rlcn
204.recn
197:
49.rlcn
205.recn
198:
50.rlcn
206.recn
199:
51.rlcn
207.recn
200:
52.rlcn
208.recn
201:
53.rlcn
209.recn
202:
54.rlcn
210.recn

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

192
include/unk_02006D98.h Normal file
View File

@ -0,0 +1,192 @@
#ifndef POKEDIAMOND_UNK_02006D98_H
#define POKEDIAMOND_UNK_02006D98_H
#include "global.h"
#include "NNS_g2d.h"
struct UnkStruct_02006D98_4
{
u16 field_00;
u16 field_02;
u16 field_04;
u16 field_06;
u32 field_08;
u32 field_0C;
};
struct UnkStruct_02006D98_sub
{
s8 unk0;
u8 unk1;
};
struct UnkStruct_02006D98_sub2
{
u16 unk0_0 : 2;
u16 unk0_2 : 1;
u16 unk0_3 : 1;
u16 unk0_4 : 1;
u16 unk0_5 : 2;
s8 unk2;
u8 unk3;
s16 unk4;
s16 unk6;
s16 unk8;
s16 unka;
};
struct UnkStruct_02006D98_2
{
u32 unk00_0 : 1;
u32 unk00_1 : 6;
u32 unk00_7 : 1;
u32 unk00_8 : 1;
struct UnkStruct_02006D98_4 unk04;
struct UnkStruct_02006D98_4 unk14;
s16 unk24;
s16 unk26;
u32 unk28;
s16 unk2C;
s16 unk2E;
u32 unk30;
s16 unk34;
s16 unk36;
u16 unk38;
u16 unk3A;
u16 unk3C;
u16 unk3E;
s16 unk40;
s16 unk42;
u8 unk44;
u8 unk45;
u8 unk46;
u8 unk47;
u8 unk48;
u8 unk49;
u8 unk4A;
u8 unk4B;
u32 unk4C;
u32 unk50_0 : 5;
u32 unk50_5 : 5;
u32 unk50_a : 5;
u32 unk50_f : 5;
u32 unk50_14 : 5;
u32 unk50_19 : 5;
u32 unk50_1E : 2;
u32 unk54_0 : 1;
u32 unk54_1 : 1;
u32 unk54_2 : 5;
u32 unk54_7 : 2;
u32 unk54_9 : 1;
u32 unk54_A : 1;
u32 unk54_B : 1;
u32 unk54_C : 1;
u32 unk54_D : 4;
u8 unk58;
u8 unk59;
u8 unk5A;
u8 unk5B;
u8 unk5C[10];
void (*unk68)(struct UnkStruct_02006D98_2 *, void *);
struct UnkStruct_02006D98_sub2 unk6C;
struct UnkStruct_02006D98_sub2 unk78;
struct UnkStruct_02006D98_sub unk84[10];
};
struct UnkStruct_02006D98
{
struct UnkStruct_02006D98_2 unk000[4];
NNSG2dImageProxy unk260;
NNSG2dImagePaletteProxy unk284;
u32 unk298;
u32 unk29C;
u32 unk2A0;
u32 unk2A4;
u32 unk2A8;
u8 *unk2AC;
u16 *unk2B0;
u16 *unk2B4;
NNSG2dCharacterData unk2B8;
NNSG2dPaletteData unk2D0;
u8 unk2E0;
u8 unk2E1;
u8 unk2E2;
u8 unk2E3;
u32 unk2E4;
};
struct UnkStruct_02006D98_3
{
u8 unk0;
u8 unk1;
};
struct UnkStruct_02006D98_5
{
u8 unk00;
u8 unk01;
u8 unk02;
u8 unk03;
u8 unk04[10];
struct UnkStruct_02006D98_sub *unk10;
};
struct UnkStruct_02006D98 *FUN_02006D98(u32 heap_id);
void FUN_02006ED4(struct UnkStruct_02006D98 *param0);
void FUN_020072E8(struct UnkStruct_02006D98 *param0);
void FUN_02007314(struct UnkStruct_02006D98_2 *param0);
void FUN_0200737C(struct UnkStruct_02006D98_2 *param0, struct UnkStruct_02006D98_sub *param1);
BOOL FUN_02007390(struct UnkStruct_02006D98_2 *param0);
struct UnkStruct_02006D98_2 *FUN_020073A0(struct UnkStruct_02006D98 *param0,
struct UnkStruct_02006D98_4 *param1,
u32 param2,
u32 param3,
u32 param4,
u32 param5,
const void *param6,
void (*param7)(struct UnkStruct_02006D98_2 *, void *));
struct UnkStruct_02006D98_2 *FUN_020073E8(struct UnkStruct_02006D98 *param0,
struct UnkStruct_02006D98_4 *param1,
u32 param2,
u32 param3,
u32 param4,
u32 param5,
s32 param6,
const void *param7,
void (*param8)(struct UnkStruct_02006D98_2 *, void *));
void FUN_02007534(struct UnkStruct_02006D98_2 *param0);
void FUN_02007540(struct UnkStruct_02006D98 *param0);
void FUN_02007558(struct UnkStruct_02006D98_2 *param0, u32 param1, u32 param2);
u32 FUN_0200782C(struct UnkStruct_02006D98_2 *param0, u32 param1);
void FUN_020079E0(struct UnkStruct_02006D98_2 *param0, u32 param1, u32 param2);
void FUN_02007E40(
struct UnkStruct_02006D98_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
void FUN_02007E68(
struct UnkStruct_02006D98_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
void FUN_02007E98(
struct UnkStruct_02006D98 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
void FUN_02007EEC(struct UnkStruct_02006D98_2 *param0);
BOOL FUN_02007F20(struct UnkStruct_02006D98_2 *param0);
void FUN_02007F34(struct UnkStruct_02006D98_2 *param0, s32 param1);
void FUN_02007F48(struct UnkStruct_02006D98_2 *param0);
void FUN_02008010(struct UnkStruct_02006D98_5 *param0, struct UnkStruct_02006D98_sub *param1);
s32 FUN_02008030(struct UnkStruct_02006D98_5 *param0);
void FUN_020080D0(struct UnkStruct_02006D98_2 *param0);
void FUN_020080E0(struct UnkStruct_02006D98_2 *param0);
void FUN_0200813C(struct UnkStruct_02006D98_2 *param0);
void FUN_020081A8(struct UnkStruct_02006D98 *param0, u32 param1, u32 param2);
void FUN_020081B4(struct UnkStruct_02006D98 *param0, u32 param1, u32 param2);
u32 FUN_020081C0(u32 param0);
void FUN_020081C4(struct UnkStruct_02006D98 *param0);
void FUN_0200825C(struct UnkStruct_02006D98 *param0, u8 param1);
BOOL FUN_02008268(struct UnkStruct_02006D98_2 *param0);
void FUN_02008284(struct UnkStruct_02006D98 *param0, u32 param1);
void FUN_02008290(struct UnkStruct_02006D98 *param0, u32 param1);
void FUN_020082A8(struct UnkStruct_02006D98 *param0);
void FUN_020086F4(struct UnkStruct_02006D98 *param0);
u8 FUN_020088D8(u8 param0);
void FUN_020088EC(struct UnkStruct_02006D98_2 *param0, u8 *param1);
void FUN_02008904(u8 *param0, u32 param1, u32 param2);
u16 FUN_02008A54(u32 *param0);
void FUN_02008A74(u8 *param0);
#endif // POKEDIAMOND_UNK_02006D98_H

View File

@ -8,10 +8,10 @@ endif
DEPDIR := .deps
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.d
SRCS := \
msgenc.cpp \
SRCS := \
msgenc.cpp \
MessagesConverter.cpp \
MessagesDecoder.cpp \
MessagesDecoder.cpp \
MessagesEncoder.cpp
OBJS := $(SRCS:%.cpp=%.o)