mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
misc work
This commit is contained in:
parent
6f304364c6
commit
dcbb258e45
123
asm/data/code_102c80.rodata.s
Normal file
123
asm/data/code_102c80.rodata.s
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
.include "macro.inc"
|
||||||
|
|
||||||
|
.section .rodata
|
||||||
|
|
||||||
|
glabel D_802EB000
|
||||||
|
.word 0x3FFDCCCC, 0xCCCCCCCD
|
||||||
|
|
||||||
|
glabel D_802EB008
|
||||||
|
.word 0x3FFDCCCC, 0xCCCCCCCD
|
||||||
|
|
||||||
|
glabel D_802EB010
|
||||||
|
.word 0x802E17EC, 0x802E1894, 0x802E1938, 0x802E19E0, 0x802E1A84, 0x802E1B18
|
||||||
|
|
||||||
|
glabel D_802EB028
|
||||||
|
.word 0x3FD33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB030
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB038
|
||||||
|
.word 0xBFC99999, 0x9999999A
|
||||||
|
|
||||||
|
glabel D_802EB040
|
||||||
|
.word 0xBF847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB048
|
||||||
|
.word 0x3FC33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB050
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB058
|
||||||
|
.word 0xBFB99999, 0x9999999A
|
||||||
|
|
||||||
|
glabel D_802EB060
|
||||||
|
.word 0xBF847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB068
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB070
|
||||||
|
.word 0x802E1B48, 0x802E1BF0, 0x802E1C94, 0x802E1D38, 0x802E1DDC, 0x802E1E6C
|
||||||
|
|
||||||
|
glabel D_802EB088
|
||||||
|
.word 0xBF847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB090
|
||||||
|
.word 0x3FB99999, 0x9999999A
|
||||||
|
|
||||||
|
glabel D_802EB098
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB0A0
|
||||||
|
.ascii "甚333333"
|
||||||
|
|
||||||
|
glabel D_802EB0A8
|
||||||
|
.word 0xBF847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB0B0
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB0B8
|
||||||
|
.word 0xBF847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB0C0
|
||||||
|
.word 0x802E1F20, 0x802E1FBC, 0x802E1FD0, 0x802E206C, 0x802E211C, 0x00000000
|
||||||
|
|
||||||
|
glabel D_802EB0D8
|
||||||
|
.word 0x3FD33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB0E0
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB0E8
|
||||||
|
.word 0xBFC99999, 0x9999999A
|
||||||
|
|
||||||
|
glabel D_802EB0F0
|
||||||
|
.word 0x3FC33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB0F8
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB100
|
||||||
|
.word 0xBFB99999, 0x9999999A
|
||||||
|
|
||||||
|
glabel D_802EB108
|
||||||
|
.word 0xBF847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB110
|
||||||
|
.word 0x3FB99999, 0x9999999A
|
||||||
|
|
||||||
|
glabel D_802EB118
|
||||||
|
.word 0x3F847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB120
|
||||||
|
.ascii "甚333333"
|
||||||
|
|
||||||
|
glabel D_802EB128
|
||||||
|
.word 0xBF847AE1, 0x47AE147B
|
||||||
|
|
||||||
|
glabel D_802EB130
|
||||||
|
.word 0x40059999, 0x9999999A
|
||||||
|
|
||||||
|
glabel D_802EB138
|
||||||
|
.word 0x40768000, 0x00000000
|
||||||
|
|
||||||
|
glabel D_802EB140
|
||||||
|
.word 0x3FD33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB148
|
||||||
|
.word 0x3FF33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB150
|
||||||
|
.word 0xC0286666, 0x66666666
|
||||||
|
|
||||||
|
glabel D_802EB158
|
||||||
|
.word 0x401921FA, 0x00000000
|
||||||
|
|
||||||
|
glabel D_802EB160
|
||||||
|
.word 0x802E2F78, 0x802E2FA4, 0x802E2FA4, 0x802E2FA4, 0x802E2FA4, 0x802E2FA4, 0x802E2FA4, 0x802E2FA4, 0x802E2F30, 0x802E2F48, 0x802E2F60, 0x802E2F30, 0x802E2F48, 0x802E2F60
|
||||||
|
|
||||||
|
glabel D_802EB198
|
||||||
|
.word 0x802E305C, 0x802E3064, 0x802E3064, 0x802E3064, 0x802E3064, 0x802E3064, 0x802E3064, 0x802E3064, 0x802E3014, 0x802E302C, 0x802E3044, 0x802E3020, 0x802E3038, 0x802E3050
|
30
asm/data/code_104940_len_dc0.rodata.s
Normal file
30
asm/data/code_104940_len_dc0.rodata.s
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
.include "macro.inc"
|
||||||
|
|
||||||
|
.section .rodata
|
||||||
|
|
||||||
|
glabel D_802EB1D0
|
||||||
|
.word 0x3FB70A3D, 0x70A3D70A
|
||||||
|
|
||||||
|
glabel D_802EB1D8
|
||||||
|
.word 0x3FA70A3D, 0x70A3D70A
|
||||||
|
|
||||||
|
glabel D_802EB1E0
|
||||||
|
.word 0x3FC70A3D, 0x70A3D70A
|
||||||
|
|
||||||
|
glabel D_802EB1E8
|
||||||
|
.word 0x3FB70A3D, 0x70A3D70A
|
||||||
|
|
||||||
|
glabel D_802EB1F0
|
||||||
|
.word 0x3FF33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB1F8
|
||||||
|
.word 0x3FD33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB200
|
||||||
|
.word 0x3FF33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB208
|
||||||
|
.word 0x3FD33333, 0x33333333
|
||||||
|
|
||||||
|
glabel D_802EB210
|
||||||
|
.word 0x802E3DCC, 0x802E3DDC, 0x802E3C34, 0x802E3C34, 0x802E3C34, 0x802E3C34, 0x802E3C34, 0x802E3C34, 0x802E3DE4, 0x802E3C34, 0x802E3CD8, 0x802E3D2C, 0x802E3D84, 0x802E3CD8, 0x802E3D2C, 0x802E3D84, 0x802E3DCC, 0x802E3DCC, 0x802E3DCC, 0x802E3DCC, 0x802E3DCC, 0x00000000, 0x00000000, 0x00000000
|
@ -776,17 +776,41 @@ typedef struct StaticItem {
|
|||||||
/* 0x1D */ char unk_1D[3];
|
/* 0x1D */ char unk_1D[3];
|
||||||
} StaticItem; // size = 0x20
|
} StaticItem; // size = 0x20
|
||||||
|
|
||||||
|
typedef struct EffectInstance {
|
||||||
|
/* 0x00 */ s32 flags;
|
||||||
|
/* 0x04 */ s32 effectIndex;
|
||||||
|
/* 0x08 */ char unk_08[4];
|
||||||
|
/* 0x0C */ void* unk_0C;
|
||||||
|
/* 0x10 */ struct Effect* effect;
|
||||||
|
} EffectInstance;
|
||||||
|
|
||||||
|
typedef struct EffectBlueprint {
|
||||||
|
/* 0x00 */ s32 unk_00;
|
||||||
|
/* 0x04 */ s32 effectIndex;
|
||||||
|
/* 0x08 */ void (*init)(EffectInstance* effectInst);
|
||||||
|
/* 0x0C */ void (*update)(EffectInstance* effectInst);
|
||||||
|
/* 0x10 */ void (*renderWorld)(EffectInstance* effectInst);
|
||||||
|
/* 0x14 */ void (*unk_14)(EffectInstance* effectInst);
|
||||||
|
} EffectBlueprint; // size = 0x18
|
||||||
|
|
||||||
typedef struct Effect {
|
typedef struct Effect {
|
||||||
/* 0x00 */ char unk_00[32];
|
/* 0x00 */ s32 flags;
|
||||||
|
/* 0x04 */ s32 effectIndex;
|
||||||
|
/* 0x08 */ s32 instanceCounter;
|
||||||
|
/* 0x0C */ s32 unk_0C;
|
||||||
|
/* 0x10 */ void (*update)(EffectInstance* effectInst);
|
||||||
|
/* 0x14 */ void (*renderWorld)(EffectInstance* effectInst);
|
||||||
|
/* 0x18 */ void (*unk_18)(EffectInstance* effectInst);
|
||||||
|
/* 0x1C */ void* unk_1C;
|
||||||
} Effect; // size = 0x20
|
} Effect; // size = 0x20
|
||||||
|
|
||||||
typedef struct EffectTableEntry {
|
typedef struct EffectTableEntry {
|
||||||
/* 0x00 */ s32 dmaStart;
|
/* 0x00 */ UNK_FUN_PTR(entryPoint);
|
||||||
/* 0x04 */ s32 dmaEnd;
|
/* 0x04 */ void* dmaStart;
|
||||||
/* 0x08 */ s32 dmaDest;
|
/* 0x08 */ void* dmaEnd;
|
||||||
/* 0x0C */ s32 unkStartRom;
|
/* 0x0C */ void* dmaDest;
|
||||||
/* 0x10 */ s32 unkEndRom;
|
/* 0x10 */ void* unkStartRom;
|
||||||
/* 0x14 */ UNK_FUN_PTR(delegate);
|
/* 0x14 */ void* unkEndRom;
|
||||||
} EffectTableEntry; // size = 0x18
|
} EffectTableEntry; // size = 0x18
|
||||||
|
|
||||||
|
|
||||||
@ -1606,6 +1630,21 @@ typedef struct {
|
|||||||
|
|
||||||
// BEGIN ENTITY-SPECIFIC STRUCTS
|
// BEGIN ENTITY-SPECIFIC STRUCTS
|
||||||
|
|
||||||
|
// from code_102c80, size unknown.
|
||||||
|
typedef struct struct802E1400 {
|
||||||
|
/* 0x000 */ Vec3f unk_00;
|
||||||
|
/* 0x00C */ char unk_0C[4];
|
||||||
|
/* 0x010 */ s8 unk_10;
|
||||||
|
/* 0x011 */ s8 unk_11;
|
||||||
|
/* 0x014 */ Vec3f unk_14;
|
||||||
|
/* 0x020 */ u16 unk_20;
|
||||||
|
/* 0x022 */ s16 unk_22;
|
||||||
|
/* 0x024 */ char unk_24[4];
|
||||||
|
/* 0x028 */ Entity* attachedEntity;
|
||||||
|
/* 0x02C */ char unk_2C[12];
|
||||||
|
/* 0x038 */ f32 unk_38;
|
||||||
|
} struct802E1400;
|
||||||
|
|
||||||
// from code_104940_len_dc0, size unknown
|
// from code_104940_len_dc0, size unknown
|
||||||
// appears to belong to the hammer blocks(?)
|
// appears to belong to the hammer blocks(?)
|
||||||
typedef struct struct802E3650 {
|
typedef struct struct802E3650 {
|
||||||
|
@ -31,7 +31,7 @@ typedef struct MapConfig {
|
|||||||
} tattle;
|
} tattle;
|
||||||
} MapConfig; // size = 0x40
|
} MapConfig; // size = 0x40
|
||||||
|
|
||||||
typedef s32 MapInit(void);
|
typedef s32 (*MapInit)(void);
|
||||||
|
|
||||||
#define MAP_ID_MAX_LEN 7 ///< "xxx_yyy" excluding null terminator.
|
#define MAP_ID_MAX_LEN 7 ///< "xxx_yyy" excluding null terminator.
|
||||||
typedef struct Map {
|
typedef struct Map {
|
||||||
@ -41,7 +41,7 @@ typedef struct Map {
|
|||||||
/* 0x0C */ void* dmaEnd;
|
/* 0x0C */ void* dmaEnd;
|
||||||
/* 0x10 */ void* dmaDest;
|
/* 0x10 */ void* dmaDest;
|
||||||
/* 0x14 */ char* bgName;
|
/* 0x14 */ char* bgName;
|
||||||
/* 0x18 */ MapInit* init; ///< Return TRUE to skip normal asset (shape/hit/bg/tex) loading.
|
/* 0x18 */ MapInit init; ///< Return TRUE to skip normal asset (shape/hit/bg/tex) loading.
|
||||||
/* 0x1C */ s16 unk_1C; // Unused?
|
/* 0x1C */ s16 unk_1C; // Unused?
|
||||||
/* 0x1E */ s8 songVariation; ///< 0 or 1. @see get_song_variation_override_for_cur_map
|
/* 0x1E */ s8 songVariation; ///< 0 or 1. @see get_song_variation_override_for_cur_map
|
||||||
/* 0x1F */ s8 flags;
|
/* 0x1F */ s8 flags;
|
||||||
|
@ -108,9 +108,9 @@ void func_802E1350(Entity* entity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_802E13B8(Entity* entity) {
|
void func_802E13B8(Entity* entity) {
|
||||||
Trigger* trigger = (Trigger*)entity->dataBuf; // TODO: Fix this
|
struct802E3650* temp = entity->dataBuf;
|
||||||
|
|
||||||
entity_init_Hammer23Block_normal(entity);
|
entity_init_Hammer23Block_normal(entity);
|
||||||
entity->unk_3C = func_802E0DE0;
|
entity->unk_3C = func_802E0DE0;
|
||||||
trigger->params1.s = 8;
|
temp->unk_04 = 8;
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,10 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
typedef struct struct802E1400 {
|
|
||||||
/* 0x000 */ Vec3f unk_00;
|
|
||||||
/* 0x00C */ char unk_0C[4];
|
|
||||||
/* 0x010 */ s8 unk_10;
|
|
||||||
/* 0x011 */ s8 unk_11;
|
|
||||||
/* 0x014 */ Vec3f unk_14;
|
|
||||||
/* 0x020 */ u16 unk_20;
|
|
||||||
/* 0x022 */ s16 unk_22;
|
|
||||||
/* 0x024 */ char unk_24[4];
|
|
||||||
/* 0x028 */ Entity* attachedEntity;
|
|
||||||
/* 0x02C */ char unk_2C[12];
|
|
||||||
/* 0x038 */ f32 unk_38;
|
|
||||||
} struct802E1400;
|
|
||||||
|
|
||||||
void func_802E246C(Entity* entity, void* arg1, void* arg2);
|
void func_802E246C(Entity* entity, void* arg1, void* arg2);
|
||||||
|
|
||||||
void func_802E1400(Entity* entity) {
|
void func_802E1400(Entity* entity) {
|
||||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
|
|
||||||
if (entity->unk_06 & 1) {
|
if (entity->unk_06 & 1) {
|
||||||
if ((playerStatus->actionState == ActionState_GROUND_POUND) || (playerStatus->actionState == ActionState_ULTRA_POUND)) {
|
if ((playerStatus->actionState == ActionState_GROUND_POUND) || (playerStatus->actionState == ActionState_ULTRA_POUND)) {
|
||||||
@ -29,11 +15,11 @@ void func_802E1400(Entity* entity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_802E1460(Entity* entity) {
|
void func_802E1460(Entity* entity) {
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
u16 temp2 = temp->unk_22--;
|
u16 temp2 = temp->unk_22--;
|
||||||
|
|
||||||
if (temp2) {
|
if (temp2) {
|
||||||
entity->position.y -= D_802EB000;
|
entity->position.y -= D_802EB000; // 1.8625;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
func_80110678(entity);
|
func_80110678(entity);
|
||||||
@ -42,11 +28,11 @@ void func_802E1460(Entity* entity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_802E14D8(Entity* entity) {
|
void func_802E14D8(Entity* entity) {
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
u16 temp2 = temp->unk_22--;
|
u16 temp2 = temp->unk_22--;
|
||||||
|
|
||||||
if (temp2) {
|
if (temp2) {
|
||||||
entity->position.y += D_802EB008;
|
entity->position.y += D_802EB008; // 1.8625;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
func_8010FD68(entity);
|
func_8010FD68(entity);
|
||||||
@ -67,7 +53,7 @@ void func_802E1614(Entity* entity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_802E1660(Entity* entity) {
|
void func_802E1660(Entity* entity) {
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||||
s8* temp2 = D_8010EBB0;
|
s8* temp2 = D_8010EBB0;
|
||||||
|
|
||||||
@ -121,7 +107,7 @@ void func_802E1740(Entity* entity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_802E176C(Entity* entity) {
|
void func_802E176C(Entity* entity) {
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
|
|
||||||
temp->unk_00.x = 1.0f;
|
temp->unk_00.x = 1.0f;
|
||||||
temp->unk_00.y = 0.1f;
|
temp->unk_00.y = 0.1f;
|
||||||
@ -133,7 +119,7 @@ void func_802E176C(Entity* entity) {
|
|||||||
INCLUDE_ASM(s32, "code_102c80", func_802E17A8);
|
INCLUDE_ASM(s32, "code_102c80", func_802E17A8);
|
||||||
|
|
||||||
void func_802E1EA8(Entity* entity) {
|
void func_802E1EA8(Entity* entity) {
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
set_area_flag(temp->unk_20);
|
set_area_flag(temp->unk_20);
|
||||||
func_80110678(entity);
|
func_80110678(entity);
|
||||||
}
|
}
|
||||||
@ -142,7 +128,7 @@ INCLUDE_ASM(s32, "code_102c80", func_802E1EDC);
|
|||||||
|
|
||||||
void func_802E234C(Entity* entity) {
|
void func_802E234C(Entity* entity) {
|
||||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
|
|
||||||
playerStatus->animFlags |= 0x1000000;
|
playerStatus->animFlags |= 0x1000000;
|
||||||
temp->unk_14.x = 1.0f;
|
temp->unk_14.x = 1.0f;
|
||||||
@ -152,7 +138,7 @@ void func_802E234C(Entity* entity) {
|
|||||||
|
|
||||||
void entity_init_BlueSwitch(Entity* entity) {
|
void entity_init_BlueSwitch(Entity* entity) {
|
||||||
Entity* temp_v0_2;
|
Entity* temp_v0_2;
|
||||||
struct802E1400* temp = (struct802E1400*)entity->dataBuf;
|
struct802E1400* temp = entity->dataBuf;
|
||||||
|
|
||||||
func_802E234C(entity);
|
func_802E234C(entity);
|
||||||
if (D_8015C7D0 == 2) {
|
if (D_8015C7D0 == 2) {
|
||||||
@ -175,7 +161,7 @@ void entity_init_HugeBlueSwitch(Entity* entity) {
|
|||||||
struct802E1400* temp;
|
struct802E1400* temp;
|
||||||
|
|
||||||
func_802E234C(entity);
|
func_802E234C(entity);
|
||||||
temp = (struct802E1400*)entity->dataBuf;
|
temp = entity->dataBuf;
|
||||||
entity->scale.x = 3.0f;
|
entity->scale.x = 3.0f;
|
||||||
entity->scale.y = 3.0f;
|
entity->scale.y = 3.0f;
|
||||||
entity->scale.z = 3.0f;
|
entity->scale.z = 3.0f;
|
||||||
|
@ -10,6 +10,7 @@ extern f64 D_802EB1F8; // 0.3
|
|||||||
extern f64 D_802EB200; // 1.2
|
extern f64 D_802EB200; // 1.2
|
||||||
extern f64 D_802EB208; // 0.3
|
extern f64 D_802EB208; // 0.3
|
||||||
|
|
||||||
|
//display list func
|
||||||
INCLUDE_ASM(s32, "code_104940_len_dc0", func_802E30C0);
|
INCLUDE_ASM(s32, "code_104940_len_dc0", func_802E30C0);
|
||||||
|
|
||||||
void func_802E31B0(Entity* entity) {
|
void func_802E31B0(Entity* entity) {
|
||||||
@ -33,7 +34,7 @@ f32 func_802E31EC(Entity* entity) {
|
|||||||
|
|
||||||
void func_802E328C(Entity* entity) {
|
void func_802E328C(Entity* entity) {
|
||||||
|
|
||||||
if ((get_entity_type(entity->listIndex) - 24) < 3U) {
|
if ((get_entity_type(entity->listIndex) - 24) < 3) {
|
||||||
entity->scale.x -= D_802EB1D0;
|
entity->scale.x -= D_802EB1D0;
|
||||||
entity->scale.z -= D_802EB1D0;
|
entity->scale.z -= D_802EB1D0;
|
||||||
entity->scale.y += D_802EB1D8;
|
entity->scale.y += D_802EB1D8;
|
||||||
@ -185,7 +186,7 @@ void func_802E3A48(Entity* entity) {
|
|||||||
void func_802E3B08(Entity* entity) {
|
void func_802E3B08(Entity* entity) {
|
||||||
s32 temp_v0;
|
s32 temp_v0;
|
||||||
u16 temp_v1;
|
u16 temp_v1;
|
||||||
struct802E3650* temp = (struct802E3650*)entity->dataBuf;
|
struct802E3650* temp = entity->dataBuf;
|
||||||
|
|
||||||
if (temp->unk_0A != 0xFFFF) {
|
if (temp->unk_0A != 0xFFFF) {
|
||||||
if (get_global_flag(temp->unk_0A) != 0) {
|
if (get_global_flag(temp->unk_0A) != 0) {
|
||||||
@ -195,7 +196,126 @@ void func_802E3B08(Entity* entity) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "code_104940_len_dc0", func_802E3BA4);
|
extern s32 D_802E9E80;
|
||||||
|
|
||||||
|
#ifdef NON_MATCHING
|
||||||
|
s32 func_802E3BA4(Entity* entity) {
|
||||||
|
u8 bVar1;
|
||||||
|
s32 bVar2;
|
||||||
|
s32 iVar3;
|
||||||
|
s32 uVar4;
|
||||||
|
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||||
|
|
||||||
|
if ((entity->alpha == 0) && ((entity->unk_06 & 1) != 0)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bVar1 = entity->unk_06;
|
||||||
|
if ((bVar1 & 4) != 0) {
|
||||||
|
s32 type = get_entity_type(entity->listIndex);
|
||||||
|
if((type == 0xC)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if((type >= 0xC)) {
|
||||||
|
if((type < 0x1b)) {
|
||||||
|
if((type > 0x14)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((playerStatus->flags & 2) == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
func_8010FD68(entity);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if ((bVar1 & 0x80) != 0) {
|
||||||
|
func_8010FD68(entity);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
bVar2 = FALSE;
|
||||||
|
if ((bVar1 & 1)) {
|
||||||
|
if ((playerStatus->actionState == 0xd) || (playerStatus->actionState == 0x0f)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((playerStatus->actionState == 0x0e) || (playerStatus->actionState == 0x10)) {
|
||||||
|
bVar2 = TRUE;
|
||||||
|
} else {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ((bVar1 & 0x40) == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if ((playerStatus->flags & 0x1000000) == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(get_entity_type(entity->listIndex)) {
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
case 0x15:
|
||||||
|
case 0x18:
|
||||||
|
if (bVar2) {
|
||||||
|
if (gPlayerData.bootsLevel < 1) {
|
||||||
|
bVar2 = FALSE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (gPlayerData.hammerLevel > -1) {
|
||||||
|
bVar2 = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!bVar2) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
func_8010FBC0(entity,&D_802E9E80);
|
||||||
|
play_sound_at_position(0x14f, 0, entity->position.x, entity->position.y ,entity->position.z);
|
||||||
|
break;
|
||||||
|
case 0x16:
|
||||||
|
case 0x19:
|
||||||
|
if (bVar2) {
|
||||||
|
if (gPlayerData.bootsLevel < 2) {
|
||||||
|
bVar2 = FALSE;
|
||||||
|
}
|
||||||
|
} else if (gPlayerData.hammerLevel > 0) {
|
||||||
|
bVar2 = TRUE;
|
||||||
|
}
|
||||||
|
if (!bVar2) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
func_8010FBC0(entity,&D_802E9E80);
|
||||||
|
play_sound_at_position(0x150, 0, entity->position.x, entity->position.y ,entity->position.z);
|
||||||
|
break;
|
||||||
|
case 0x17:
|
||||||
|
case 0x1a:
|
||||||
|
if (gPlayerData.hammerLevel < '\x02') {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
func_8010FBC0(entity,&D_802E9E80);
|
||||||
|
play_sound_at_position(0x151, 0, entity->position.x, entity->position.y ,entity->position.z);
|
||||||
|
break;
|
||||||
|
case 0x1b:
|
||||||
|
case 0x1c:
|
||||||
|
case 0x1d:
|
||||||
|
case 0x1e:
|
||||||
|
case 0x1f:
|
||||||
|
func_80110678(entity);
|
||||||
|
func_8010FD68(entity);
|
||||||
|
return 1;
|
||||||
|
case 0xb:
|
||||||
|
func_80110678(entity);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
INCLUDE_ASM(s32, "code_104940_len_dc0", func_802E3BA4, Entity* entity);
|
||||||
|
#endif
|
||||||
|
|
||||||
void entity_init_Hammer1Block_normal(Entity* entity) {
|
void entity_init_Hammer1Block_normal(Entity* entity) {
|
||||||
entity_init_Hammer23Block_normal(entity);
|
entity_init_Hammer23Block_normal(entity);
|
||||||
@ -204,7 +324,7 @@ void entity_init_Hammer1Block_normal(Entity* entity) {
|
|||||||
|
|
||||||
s32 entity_init_HammerBlock_small(Entity* entity) {
|
s32 entity_init_HammerBlock_small(Entity* entity) {
|
||||||
s32 temp_v0;
|
s32 temp_v0;
|
||||||
struct802E3650* temp = (struct802E3650*)entity->dataBuf;
|
struct802E3650* temp = entity->dataBuf;
|
||||||
|
|
||||||
temp->unk_10 = -1;
|
temp->unk_10 = -1;
|
||||||
temp->unk_14 = entity->position.y;
|
temp->unk_14 = entity->position.y;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
extern Gfx D_00074210[];
|
extern Gfx D_00074210[];
|
||||||
extern Gfx D_00074230[];
|
extern Gfx D_00074230[];
|
||||||
extern Gfx* D_8009A66C[1];
|
extern Gfx* D_8009A66C[2];
|
||||||
|
|
||||||
extern int D_000759B0[];
|
extern int D_000759B0[];
|
||||||
extern int D_000759B0_end[]; // A55D0
|
extern int D_000759B0_end[]; // A55D0
|
||||||
@ -115,16 +115,18 @@ s32 func_80027190(void) {
|
|||||||
return D_8009A5D8;
|
return D_8009A5D8;
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "code_1b40_len_20b0", func_800271A0);
|
//INCLUDE_ASM(s32, "code_1b40_len_20b0", func_800271A0);
|
||||||
/*void func_800271A0(void) {
|
void func_800271A0(void) {
|
||||||
Gfx *temp = D_8009A66C[0] + 1;
|
Gfx *temp = D_8009A66C[0];
|
||||||
|
|
||||||
|
do{
|
||||||
|
Gfx *_g = (Gfx *)((D_8009A66C[0]++));
|
||||||
|
_g->words.w0 = (((unsigned int) (((unsigned int)((0xdb)) & ((0x01 << (8)) - 1)) << (24))) | ((unsigned int) (((unsigned int)((0x06)) & ((0x01 << (8)) - 1)) << (16))) | ((unsigned int) (((unsigned int)(((0x00)*4)) & ((0x01 << (16)) - 1)) << (0)))); _g->words.w1 = (unsigned int)(0x00000000);
|
||||||
|
}while(0);
|
||||||
|
do{ Gfx *_g = (Gfx *)(D_8009A66C[0]++); _g->words.w0 = (((unsigned int) (((unsigned int)((0xde)) & ((0x01 << (8)) - 1)) << (24))) | ((unsigned int) (((unsigned int)((0x00)) & ((0x01 << (8)) - 1)) << (16))) | ((unsigned int) (((unsigned int)((0)) & ((0x01 << (16)) - 1)) << (0)))); _g->words.w1 = (unsigned int)(&D_00074230);
|
||||||
|
Gfx *_g = (Gfx *)(D_8009A66C[0]++); _g->words.w0 = (((unsigned int) (((unsigned int)((0xde)) & ((0x01 << (8)) - 1)) << (24))) | ((unsigned int) (((unsigned int)((0x00)) & ((0x01 << (8)) - 1)) << (16))) | ((unsigned int) (((unsigned int)((0)) & ((0x01 << (16)) - 1)) << (0)))); _g->words.w1 = (unsigned int)(&D_00074210); }while(0);
|
||||||
|
}
|
||||||
|
|
||||||
gSPSegment(D_8009A66C[0], 0x00, 0x00000000);
|
|
||||||
D_8009A66C[0] = temp;
|
|
||||||
gSPDisplayList(temp, &D_00074230);
|
|
||||||
D_8009A66C[0]++;
|
|
||||||
gSPDisplayList(D_8009A66C[0]++, &D_00074210);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "code_1b40_len_20b0", func_800271FC);
|
INCLUDE_ASM(s32, "code_1b40_len_20b0", func_800271FC);
|
||||||
|
|
||||||
|
@ -1,6 +1,157 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
typedef struct structE001E000 {
|
||||||
|
/* 0x000 */ s32 unk_00;
|
||||||
|
/* 0x004 */ Vec3f unk_04;
|
||||||
|
/* 0x010 */ Vec3f unk_10;
|
||||||
|
/* 0x01C */ s32 unk_1C;
|
||||||
|
/* 0x020 */ char unk_20[4];
|
||||||
|
/* 0x024 */ f32 unk_24;
|
||||||
|
/* 0x028 */ s32 unk_28;
|
||||||
|
/* 0x02C */ f32 unk_2C;
|
||||||
|
/* 0x030 */ f32 unk_30;
|
||||||
|
/* 0x034 */ f32 unk_34;
|
||||||
|
/* 0x038 */ char unk_38[4];
|
||||||
|
/* 0x03C */ s32 unk_3C;
|
||||||
|
/* 0x040 */ char unk_40[0x200];
|
||||||
|
/* 0x240 */ f32 unk_240;
|
||||||
|
/* 0x244 */ s32 unk_244;
|
||||||
|
/* 0x248 */ s32 unk_248;
|
||||||
|
/* 0x24C */ s32 unk_24C;
|
||||||
|
} structE001E000; // size = 0x250
|
||||||
|
|
||||||
|
extern Camera D_800B1DEC[2];
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "code_331940", func_E001E000);
|
INCLUDE_ASM(s32, "code_331940", func_E001E000);
|
||||||
|
/*
|
||||||
|
void *func_E001E000(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7) {
|
||||||
|
f32 temp_f0;
|
||||||
|
f32 temp_f0_2;
|
||||||
|
f32 temp_f12;
|
||||||
|
f32 temp_f20;
|
||||||
|
f32 temp_f20_2;
|
||||||
|
f32 temp_f20_3;
|
||||||
|
f32 temp_f20_4;
|
||||||
|
f32 temp_f22;
|
||||||
|
f32 temp_f22_2;
|
||||||
|
f32 temp_f24;
|
||||||
|
f32 temp_f26;
|
||||||
|
f32 temp_f2;
|
||||||
|
f32 temp_f4;
|
||||||
|
s32 temp_a0;
|
||||||
|
s32 temp_a1;
|
||||||
|
s32 temp_s0;
|
||||||
|
s32 temp_v0_2;
|
||||||
|
s32 temp_v0_3;
|
||||||
|
void *temp_s0_2;
|
||||||
|
void *temp_s1;
|
||||||
|
void *temp_s2;
|
||||||
|
void *temp_v0;
|
||||||
|
void *temp_v0_4;
|
||||||
|
f32 phi_f4;
|
||||||
|
f32 phi_f0;
|
||||||
|
f32 phi_f12;
|
||||||
|
f32 phi_f26;
|
||||||
|
void *phi_v0;
|
||||||
|
void *phi_v1;
|
||||||
|
s32 phi_a1;
|
||||||
|
f32 phi_f12_2;
|
||||||
|
void *phi_a0;
|
||||||
|
|
||||||
|
temp_s2 = func_E0200490(&subroutine_arg4, 0, 0xF, &D_E001E370, &D_E001E378, &D_E001E6E8, 0);
|
||||||
|
temp_s2->unk8 = 1;
|
||||||
|
temp_v0 = func_E02004B0(0x250); // some kind of allocation function.
|
||||||
|
temp_s1 = temp_v0;
|
||||||
|
temp_s2->unkC = temp_v0;
|
||||||
|
ASSERT(temp_s1 != NULL);
|
||||||
|
temp_s1->unk_00 = 1;
|
||||||
|
temp_s1->unk_04.x = arg1;
|
||||||
|
temp_s1->unk_04.y = arg2;
|
||||||
|
temp_s1->unk_04.z = arg3;
|
||||||
|
temp_s1->unk_1C = 0;
|
||||||
|
temp_s1->unk_24 = 0.0f;
|
||||||
|
temp_s1->unk_28 = 0;
|
||||||
|
temp_s1->unk_38 = arg0;
|
||||||
|
if (arg0 == 3) {
|
||||||
|
temp_s1->unk_240 = 0.2f;
|
||||||
|
temp_v0_2 = func_E02004E0(0xFF);
|
||||||
|
temp_a0 = 0xFF - temp_v0_2;
|
||||||
|
temp_s1->unk_244 = temp_v0_2;
|
||||||
|
temp_v0_3 = func_E02004E0(temp_a0);
|
||||||
|
temp_s0 = 0xFF - temp_v0_3;
|
||||||
|
temp_s1->unk_248 = temp_v0_3;
|
||||||
|
temp_s1->unk_24C = (s32) (temp_s0 - temp_s1->unk_244);
|
||||||
|
} else {
|
||||||
|
temp_s1->unk_244 = 0xD2;
|
||||||
|
temp_s1->unk_248 = 0xBA;
|
||||||
|
temp_s1->unk_24C = 0x5A;
|
||||||
|
temp_s1->unk_240 = 0.5f;
|
||||||
|
}
|
||||||
|
temp_f24 = arg4 - arg1;
|
||||||
|
temp_f22 = arg5 - arg2;
|
||||||
|
temp_f20 = arg6 - arg3;
|
||||||
|
temp_f26 = (temp_f24 * temp_f24) + (temp_f22 * temp_f22) + (temp_f20 * temp_f20);
|
||||||
|
phi_f4 = temp_f26;
|
||||||
|
phi_f26 = temp_f26;
|
||||||
|
if (temp_f26 != 0.0f) {
|
||||||
|
temp_f0 = func_E0200550(temp_f26);
|
||||||
|
phi_f4 = arg7 / temp_f0;
|
||||||
|
phi_f26 = temp_f0;
|
||||||
|
}
|
||||||
|
temp_s1->unk10.x = (f32) (temp_f24 * phi_f4);
|
||||||
|
temp_s1->unk10.y = (f32) (temp_f22 * phi_f4);
|
||||||
|
temp_s1->unk10.z = (f32) (temp_f20 * phi_f4);
|
||||||
|
temp_f20_2 = *(&D_800B1DEC + (gCurrentCameraID * 0x558));
|
||||||
|
temp_f22_2 = -func_E0200510(temp_f20_2);
|
||||||
|
temp_f4 = temp_f22_2 * temp_s1->unk10;
|
||||||
|
temp_f20_3 = -func_E0200500(temp_f20_2);
|
||||||
|
temp_f2 = temp_f20_3 * temp_s1->unk18;
|
||||||
|
temp_f12 = (temp_f4 * temp_f4) + (temp_f2 * temp_f2);
|
||||||
|
phi_f12_2 = temp_f12;
|
||||||
|
if (temp_f12 != 0.0f) {
|
||||||
|
phi_f12_2 = func_E0200550(temp_f12);
|
||||||
|
}
|
||||||
|
if (((temp_f22_2 * temp_s1->unk10) + (temp_f20_3 * temp_s1->unk18)) < 0.0f) {
|
||||||
|
phi_f0 = -20.0f;
|
||||||
|
phi_f12 = -phi_f12_2;
|
||||||
|
} else {
|
||||||
|
phi_f0 = 20.0f;
|
||||||
|
phi_f12 = phi_f12_2;
|
||||||
|
}
|
||||||
|
temp_s1->unk2C = phi_f0;
|
||||||
|
temp_f20_4 = -phi_f12;
|
||||||
|
temp_f0_2 = func_E0200520(0, 0, -temp_s1->unk14, temp_f20_4);
|
||||||
|
temp_s1->unk_30 = (bitwise f32) (s32) (phi_f26 / arg7);
|
||||||
|
temp_s0_2 = temp_s1 + 0x40;
|
||||||
|
temp_s1->unk24 = temp_f0_2;
|
||||||
|
temp_s1->unk20 = temp_f0_2;
|
||||||
|
temp_s1->unk34 = temp_f20_4;
|
||||||
|
func_E0200430(temp_s0_2, (bitwise s32) temp_s1->unk4, (bitwise s32) temp_s1->unk8, (bitwise s32) temp_s1->unkC);
|
||||||
|
phi_a1 = 1;
|
||||||
|
phi_a0 = temp_s0_2;
|
||||||
|
loop_13:
|
||||||
|
phi_v0 = temp_s0_2;
|
||||||
|
phi_v1 = phi_a0 + 0x40;
|
||||||
|
loop_14:
|
||||||
|
phi_v1->unk0 = (s32) phi_v0->unk0;
|
||||||
|
phi_v1->unk4 = (s32) phi_v0->unk4;
|
||||||
|
phi_v1->unk8 = (s32) phi_v0->unk8;
|
||||||
|
phi_v1->unkC = (s32) phi_v0->unkC;
|
||||||
|
temp_v0_4 = phi_v0 + 0x10;
|
||||||
|
phi_v0 = temp_v0_4;
|
||||||
|
phi_v1 = phi_v1 + 0x10;
|
||||||
|
if (temp_v0_4 != (temp_s1 + 0x80)) {
|
||||||
|
goto loop_14;
|
||||||
|
}
|
||||||
|
temp_a1 = phi_a1 + 1;
|
||||||
|
phi_a1 = temp_a1;
|
||||||
|
phi_a0 = phi_a0 + 0x40;
|
||||||
|
if (temp_a1 < 8) {
|
||||||
|
goto loop_13;
|
||||||
|
}
|
||||||
|
temp_s1->unk3C = -1;
|
||||||
|
return temp_s2;
|
||||||
|
}*/
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "code_331940", func_E001E370);
|
INCLUDE_ASM(s32, "code_331940", func_E001E370);
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
extern EffectTableEntry D_8007F210[135];
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_8006F890);
|
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_8006F890);
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_8006F8F0);
|
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_8006F8F0);
|
||||||
@ -273,6 +275,7 @@ INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_80072A70);
|
|||||||
|
|
||||||
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_80072AD0);
|
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_80072AD0);
|
||||||
|
|
||||||
|
// FILE SPLIT
|
||||||
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_80072B30);
|
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_80072B30);
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_80072BB0);
|
INCLUDE_ASM(s32, "os/code_4ac90_len_3910", func_80072BB0);
|
||||||
|
@ -20,7 +20,7 @@ INCLUDE_ASM(s32, "world/world", func_80059AB8);
|
|||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", func_80059BD4);
|
INCLUDE_ASM(s32, "world/world", func_80059BD4);
|
||||||
|
|
||||||
void func_80059C80(void) {
|
void func_80059C80(EffectInstance* effectInst) {
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", func_80059C88);
|
INCLUDE_ASM(s32, "world/world", func_80059C88);
|
||||||
@ -32,18 +32,207 @@ void func_80059D48(void) {
|
|||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", func_80059D50);
|
INCLUDE_ASM(s32, "world/world", func_80059D50);
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", render_effects);
|
#define EFFECT_LOADED 1
|
||||||
|
|
||||||
|
extern EffectInstance* D_800B4398[96]; //effectInstanceList
|
||||||
|
extern Effect D_800A4000[15];
|
||||||
|
extern void* D_80059C80;
|
||||||
|
|
||||||
|
s32 render_effects(void) {
|
||||||
|
EffectInstance** curEffectInst;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
curEffectInst = &D_800B4398[0];
|
||||||
|
for(i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||||
|
if ((curEffectInst[i] != NULL) && ((curEffectInst[i]->flags & 1) != 0) && ((curEffectInst[i]->flags & 8) != 0)) {
|
||||||
|
if(GAME_STATUS->isBattle) {
|
||||||
|
if((curEffectInst[i]->flags & 4) != 0) {
|
||||||
|
curEffectInst[i]->effect->renderWorld(curEffectInst[i]);
|
||||||
|
}
|
||||||
|
} else if((curEffectInst[i]->flags & 4) == 0) {
|
||||||
|
curEffectInst[i]->effect->renderWorld(curEffectInst[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", func_80059F94);
|
INCLUDE_ASM(s32, "world/world", func_80059F94);
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", func_8005A2BC);
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", remove_effect);
|
EffectInstance* func_8005A2BC(EffectBlueprint* effectBp) {
|
||||||
|
EffectInstance *newEffectInst;
|
||||||
|
Effect* curEffect;
|
||||||
|
s32 i;
|
||||||
|
EffectInstance** temp = &D_800B4398[0];
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "world/world", remove_all_effects);
|
// Search for an unused instance
|
||||||
|
for(i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||||
|
if (temp[i] == NULL) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ASSERT(i < ARRAY_COUNT(D_800B4398));
|
||||||
|
|
||||||
|
// Allocate space for the new instance
|
||||||
|
D_800B4398[i] = newEffectInst = general_heap_malloc(sizeof(EffectInstance));
|
||||||
|
ASSERT(newEffectInst != NULL);
|
||||||
|
|
||||||
|
curEffect = &D_800A4000[0];
|
||||||
|
newEffectInst->effectIndex = effectBp->effectIndex;
|
||||||
|
newEffectInst->flags = 1;
|
||||||
|
|
||||||
|
// Look for a loaded effect of the proper index
|
||||||
|
for(i = 0; i < ARRAY_COUNT(D_800A4000); i++) {
|
||||||
|
if ((curEffect->flags & EFFECT_LOADED) && (curEffect->effectIndex == effectBp->effectIndex)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
curEffect++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ASSERT(i < ARRAY_COUNT(D_800A4000));
|
||||||
|
|
||||||
|
// If this is the first new instance of the effect, initialize the function pointers
|
||||||
|
if (curEffect->instanceCounter == 0) {
|
||||||
|
curEffect->update = effectBp->update;
|
||||||
|
if (curEffect->update == NULL) {
|
||||||
|
curEffect->renderWorld = func_80059C80;
|
||||||
|
}
|
||||||
|
|
||||||
|
curEffect->renderWorld = effectBp->renderWorld;
|
||||||
|
if (curEffect->unk_18 == NULL) {
|
||||||
|
curEffect->unk_18 = func_80059C80;
|
||||||
|
}
|
||||||
|
|
||||||
|
curEffect->unk_18 = effectBp->unk_14;
|
||||||
|
if (curEffect->unk_18 == NULL) {
|
||||||
|
curEffect->unk_18 = func_80059C80;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
curEffect->instanceCounter++;
|
||||||
|
newEffectInst->effect = curEffect;
|
||||||
|
|
||||||
|
if (effectBp->init != NULL) {
|
||||||
|
effectBp->init(newEffectInst);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GAME_STATUS->isBattle) {
|
||||||
|
newEffectInst->flags |= 4;
|
||||||
|
}
|
||||||
|
return newEffectInst;
|
||||||
|
}
|
||||||
|
|
||||||
|
void remove_effect(EffectInstance* arg0) {
|
||||||
|
s32 i;
|
||||||
|
EffectInstance** temp = &D_800B4398[0];
|
||||||
|
|
||||||
|
for(i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||||
|
if (temp[i] == arg0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ASSERT(i < ARRAY_COUNT(D_800B4398));
|
||||||
|
|
||||||
|
if (arg0->unk_0C == NULL) {
|
||||||
|
general_heap_free(arg0);
|
||||||
|
D_800B4398[i] = NULL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
general_heap_free(arg0->unk_0C);
|
||||||
|
general_heap_free(arg0);
|
||||||
|
D_800B4398[i] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void remove_all_effects(void) {
|
||||||
|
s32 i;
|
||||||
|
EffectInstance** temp = &D_800B4398[0];
|
||||||
|
|
||||||
|
for(i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||||
|
EffectInstance* temp2 = temp[i];
|
||||||
|
if (temp2 != NULL && temp2->flags & 4) {
|
||||||
|
if(temp2->unk_0C != NULL) {
|
||||||
|
general_heap_free(temp2->unk_0C);
|
||||||
|
}
|
||||||
|
general_heap_free(temp2);
|
||||||
|
temp[i] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef s32 TlbEntry[0x1000 / 4];
|
||||||
|
typedef TlbEntry TlbMappablePage[15];
|
||||||
|
|
||||||
|
extern TlbMappablePage D_80197000;
|
||||||
|
extern EffectTableEntry D_8007F210[135];
|
||||||
|
|
||||||
|
#ifdef NON_MATCHING
|
||||||
|
// Matching, but needs a file split
|
||||||
|
s32 play_effect(s32 effectIndex) {
|
||||||
|
|
||||||
|
EffectTableEntry* effectTable = &D_8007F210[0];
|
||||||
|
EffectTableEntry* effectEntry;
|
||||||
|
Effect* curEffect;
|
||||||
|
TlbMappablePage* tlbMappablePages;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
effectEntry = &effectTable[effectIndex];
|
||||||
|
|
||||||
|
// Look for a loaded effect matching the desired index
|
||||||
|
for(i = 0, curEffect = &D_800A4000[0]; i < ARRAY_COUNT(D_800A4000); i++) {
|
||||||
|
if ((curEffect->flags & EFFECT_LOADED) && (curEffect->effectIndex == effectIndex)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
curEffect++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If an effect was found within the table, initialize it and return
|
||||||
|
if (i < ARRAY_COUNT(D_800A4000)) {
|
||||||
|
curEffect->effectIndex = effectIndex;
|
||||||
|
curEffect->unk_08 = NULL;
|
||||||
|
curEffect->flags = EFFECT_LOADED;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If a loaded effect wasn't found, look for the first empty space
|
||||||
|
for(i = 0, curEffect = &D_800A4000[0]; i < ARRAY_COUNT(D_800A4000); i++) {
|
||||||
|
if (!(curEffect->flags & EFFECT_LOADED)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
curEffect++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no empty space was found, panic
|
||||||
|
ASSERT(i < ARRAY_COUNT(D_800A4000));
|
||||||
|
|
||||||
|
// Map space for the effect
|
||||||
|
tlbMappablePages = &D_80197000;
|
||||||
|
osMapTLB(i, 0, effectEntry->dmaDest, (s32)((*tlbMappablePages)[i]) & 0xFFFFFF, -1, -1);
|
||||||
|
|
||||||
|
// Copy the effect into the newly mapped space
|
||||||
|
dma_copy(effectEntry->dmaStart, effectEntry->dmaEnd, effectEntry->dmaDest);
|
||||||
|
|
||||||
|
// If there's extra data the effect normally loads, allocate space and copy into the new space
|
||||||
|
if (effectEntry->unkStartRom != NULL) {
|
||||||
|
void* effectDataBuf = general_heap_malloc(effectEntry->unkEndRom - effectEntry->unkStartRom);
|
||||||
|
curEffect->unk_1C = effectDataBuf;
|
||||||
|
ASSERT(effectDataBuf != NULL);
|
||||||
|
dma_copy(effectEntry->unkStartRom, effectEntry->unkEndRom, curEffect->unk_1C);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the newly loaded effect data
|
||||||
|
curEffect->effectIndex = effectIndex;
|
||||||
|
curEffect->unk_08 = NULL;
|
||||||
|
curEffect->flags = EFFECT_LOADED;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
INCLUDE_ASM(s32, "world/world", play_effect);
|
INCLUDE_ASM(s32, "world/world", play_effect);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// FILE SPLIT
|
||||||
void load_world_script_api(void) {
|
void load_world_script_api(void) {
|
||||||
dma_copy(&world_script_api_ROM_START, &world_script_api_ROM_END, &world_script_api_VRAM);
|
dma_copy(&world_script_api_ROM_START, &world_script_api_ROM_END, &world_script_api_VRAM);
|
||||||
}
|
}
|
||||||
@ -100,7 +289,7 @@ static Map mac_maps[] = {
|
|||||||
{ MAP_UNSPLIT(mac_01, 0x80246730), .bgName = "nok_bg" },
|
{ MAP_UNSPLIT(mac_01, 0x80246730), .bgName = "nok_bg" },
|
||||||
{ MAP_UNSPLIT(mac_02, 0x80243580), .bgName = "nok_bg" },
|
{ MAP_UNSPLIT(mac_02, 0x80243580), .bgName = "nok_bg" },
|
||||||
{ MAP_UNSPLIT(mac_03, 0x802428B0), .bgName = "nok_bg" },
|
{ MAP_UNSPLIT(mac_03, 0x802428B0), .bgName = "nok_bg" },
|
||||||
{ MAP_UNSPLIT(mac_04, 0x80242080), .bgName = "nok_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(mac_04, 0x80242080), .bgName = "nok_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(mac_05, 0x802441A0), .bgName = "nok_bg" },
|
{ MAP_UNSPLIT(mac_05, 0x802441A0), .bgName = "nok_bg" },
|
||||||
{ MAP_UNSPLIT(mac_06, 0x802416A0), .bgName = "nok_bg" },
|
{ MAP_UNSPLIT(mac_06, 0x802416A0), .bgName = "nok_bg" },
|
||||||
};
|
};
|
||||||
@ -127,7 +316,7 @@ static Map tik_maps[] = {
|
|||||||
{ MAP_UNSPLIT(tik_21, 0x80240990), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(tik_21, 0x80240990), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(tik_22, 0x802409D0), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(tik_22, 0x802409D0), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(tik_23, 0x80241160), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(tik_23, 0x80241160), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(tik_24, 0x80240ED0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(tik_24, 0x80240ED0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(tik_25, 0x802407D0), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(tik_25, 0x802407D0), .songVariation = 1, .flags = 2 },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -152,10 +341,10 @@ static Map kmr_maps[] = {
|
|||||||
{ MAP_UNSPLIT(kmr_11, 0x80241180), .bgName = "kmr_bg" },
|
{ MAP_UNSPLIT(kmr_11, 0x80241180), .bgName = "kmr_bg" },
|
||||||
{ MAP(kmr_12), .bgName = "kmr_bg" },
|
{ MAP(kmr_12), .bgName = "kmr_bg" },
|
||||||
{ MAP_UNSPLIT(kmr_20, 0x80242C00), .bgName = "kmr_bg" }, // Mario's House
|
{ MAP_UNSPLIT(kmr_20, 0x80242C00), .bgName = "kmr_bg" }, // Mario's House
|
||||||
{ MAP_UNSPLIT(kmr_21, 0x802402F0), .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kmr_21, 0x802402F0), .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kmr_22, 0x80240DA0), .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kmr_22, 0x80240DA0), .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kmr_23, 0x80241150), .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kmr_23, 0x80241150), .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kmr_24, 0x80240120), .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kmr_24, 0x80240120), .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kmr_30, 0x802404F0) },
|
{ MAP_UNSPLIT(kmr_30, 0x802404F0) },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -281,14 +470,14 @@ static Map nok_maps[] = {
|
|||||||
|
|
||||||
/// Star Region
|
/// Star Region
|
||||||
static Map hos_maps[] = {
|
static Map hos_maps[] = {
|
||||||
{ MAP_UNSPLIT(hos_00, 0x80240D50), .bgName = "nok_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(hos_00, 0x80240D50), .bgName = "nok_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(hos_01, 0x80240E40), .bgName = "hos_bg" },
|
{ MAP_UNSPLIT(hos_01, 0x80240E40), .bgName = "hos_bg" },
|
||||||
{ MAP_UNSPLIT(hos_02, 0x80242B90), .bgName = "hos_bg" },
|
{ MAP_UNSPLIT(hos_02, 0x80242B90), .bgName = "hos_bg" },
|
||||||
{ MAP_UNSPLIT(hos_03, 0x802435F0), .bgName = "hos_bg" },
|
{ MAP_UNSPLIT(hos_03, 0x802435F0), .bgName = "hos_bg" },
|
||||||
{ MAP_UNSPLIT(hos_04, 0x80240EE0), .bgName = "hos_bg" },
|
{ MAP_UNSPLIT(hos_04, 0x80240EE0), .bgName = "hos_bg" },
|
||||||
{ MAP_UNSPLIT(hos_05, 0x80245910), .bgName = "hos_bg", .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(hos_05, 0x80245910), .bgName = "hos_bg", .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(hos_06, 0x80242570), .bgName = "hos_bg" },
|
{ MAP_UNSPLIT(hos_06, 0x80242570), .bgName = "hos_bg" },
|
||||||
{ MAP_UNSPLIT(hos_10, 0x80240CE0), .bgName = "hos_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(hos_10, 0x80240CE0), .bgName = "hos_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(hos_20, 0x80240390), .bgName = "hos_bg" },
|
{ MAP_UNSPLIT(hos_20, 0x80240390), .bgName = "hos_bg" },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -312,29 +501,29 @@ static Map kpa_maps[] = {
|
|||||||
{ MAP_UNSPLIT(kpa_40, 0x80240040), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_40, 0x80240040), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_41, 0x80240040), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_41, 0x80240040), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_50, 0x80241A40), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_50, 0x80241A40), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_51, 0x80241C40), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_51, 0x80241C40), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_52, 0x80241360), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_52, 0x80241360), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_53, 0x80240190), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_53, 0x80240190), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_60, 0x80240450), .bgName = "kpa_bg" },
|
{ MAP_UNSPLIT(kpa_60, 0x80240450), .bgName = "kpa_bg" },
|
||||||
{ MAP_UNSPLIT(kpa_61, 0x80242360), .bgName = "kpa_bg" },
|
{ MAP_UNSPLIT(kpa_61, 0x80242360), .bgName = "kpa_bg" },
|
||||||
{ MAP_UNSPLIT(kpa_62, 0x80240430), .bgName = "kpa_bg" },
|
{ MAP_UNSPLIT(kpa_62, 0x80240430), .bgName = "kpa_bg" },
|
||||||
{ MAP_UNSPLIT(kpa_63, 0x802401B0), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_63, 0x802401B0), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_70, 0x80240B10), .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kpa_70, 0x80240B10), .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kpa_81, 0x80240480), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_81, 0x80240480), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_82, 0x80240460), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_82, 0x80240460), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_83, 0x80240090), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_83, 0x80240090), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_90, 0x80240020), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_90, 0x80240020), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_91, 0x80241920), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_91, 0x80241920), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_94, 0x80240020), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_94, 0x80240020), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_95, 0x80241920), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_95, 0x80241920), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_96, 0x80240040), .songVariation = 1, .flags = 1 },
|
{ MAP_UNSPLIT(kpa_96, 0x80240040), .songVariation = 1, .flags = 1 },
|
||||||
{ MAP_UNSPLIT(kpa_100, 0x80240060), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_100, 0x80240060), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_101, 0x80240060), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_101, 0x80240060), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_102, 0x802435B0), .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kpa_102, 0x802435B0), .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kpa_111, 0x802413E0), .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kpa_111, 0x802413E0), .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kpa_112, 0x80240020), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_112, 0x80240020), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_113, 0x80240AD0), .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kpa_113, 0x80240AD0), .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kpa_114, 0x80240070), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kpa_114, 0x80240070), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kpa_115, 0x802413F0), .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kpa_115, 0x802413F0), .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kpa_116, 0x80240020), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kpa_116, 0x80240020), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kpa_117, 0x80240010), .songVariation = 1, .flags = 1 },
|
{ MAP_UNSPLIT(kpa_117, 0x80240010), .songVariation = 1, .flags = 1 },
|
||||||
@ -349,24 +538,24 @@ static Map kpa_maps[] = {
|
|||||||
/// Peach's Castle Grounds
|
/// Peach's Castle Grounds
|
||||||
static Map osr_maps[] = {
|
static Map osr_maps[] = {
|
||||||
{ MAP_UNSPLIT(osr_00, 0x802407E0), .bgName = "nok_bg" },
|
{ MAP_UNSPLIT(osr_00, 0x802407E0), .bgName = "nok_bg" },
|
||||||
{ MAP_UNSPLIT(osr_01, 0x80240B00), .bgName = "nok_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(osr_01, 0x80240B00), .bgName = "nok_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(osr_02, 0x80240170), .bgName = "kpa_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(osr_02, 0x80240170), .bgName = "kpa_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(osr_03, 0x802403F0), .bgName = "kpa_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(osr_03, 0x802403F0), .bgName = "kpa_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(osr_04, 0x802400D0), .bgName = "nok_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(osr_04, 0x802400D0), .bgName = "nok_bg", .init = (MapInit)0x80240000 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Peach's Castle
|
/// Peach's Castle
|
||||||
/// @bug There are two entries for kkj_26; the latter is unreachable.
|
/// @bug There are two entries for kkj_26; the latter is unreachable.
|
||||||
static Map kkj_maps[] = {
|
static Map kkj_maps[] = {
|
||||||
{ MAP_UNSPLIT(kkj_00, 0x80241030), .bgName = "nok_bg", .songVariation = 1, .flags = 3, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kkj_00, 0x80241030), .bgName = "nok_bg", .songVariation = 1, .flags = 3, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kkj_01, 0x80240F10), .bgName = "nok_bg", .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kkj_01, 0x80240F10), .bgName = "nok_bg", .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kkj_02, 0x80240030), .bgName = "nok_bg", .flags = 2 },
|
{ MAP_UNSPLIT(kkj_02, 0x80240030), .bgName = "nok_bg", .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kkj_03, 0x80240360), .bgName = "nok_bg", .flags = 3, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kkj_03, 0x80240360), .bgName = "nok_bg", .flags = 3, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kkj_10, 0x80241120), .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kkj_10, 0x80241120), .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kkj_11, 0x80241160), .songVariation = 1, .flags = 3 },
|
{ MAP_UNSPLIT(kkj_11, 0x80241160), .songVariation = 1, .flags = 3 },
|
||||||
{ MAP_UNSPLIT(kkj_12, 0x802408D0), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kkj_12, 0x802408D0), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kkj_13, 0x802407A0), .bgName = "kpa_bg", .songVariation = 1, .flags = 3, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kkj_13, 0x802407A0), .bgName = "kpa_bg", .songVariation = 1, .flags = 3, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kkj_14, 0x80240580), .bgName = "kpa_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kkj_14, 0x80240580), .bgName = "kpa_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kkj_15, 0x80240640) },
|
{ MAP_UNSPLIT(kkj_15, 0x80240640) },
|
||||||
{ MAP_UNSPLIT(kkj_16, 0x80241090), .flags = 0x1 },
|
{ MAP_UNSPLIT(kkj_16, 0x80241090), .flags = 0x1 },
|
||||||
{ MAP_UNSPLIT(kkj_17, 0x802405B0) },
|
{ MAP_UNSPLIT(kkj_17, 0x802405B0) },
|
||||||
@ -375,9 +564,9 @@ static Map kkj_maps[] = {
|
|||||||
{ MAP_UNSPLIT(kkj_20, 0x80240600) },
|
{ MAP_UNSPLIT(kkj_20, 0x80240600) },
|
||||||
{ MAP_UNSPLIT(kkj_21, 0x80240010), .flags = 0x1 },
|
{ MAP_UNSPLIT(kkj_21, 0x80240010), .flags = 0x1 },
|
||||||
{ MAP_UNSPLIT(kkj_22, 0x80240020), .bgName = "kpa_bg", .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kkj_22, 0x80240020), .bgName = "kpa_bg", .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kkj_23, 0x802409F0), .bgName = "kpa_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kkj_23, 0x802409F0), .bgName = "kpa_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kkj_24, 0x80240040), .bgName = "kpa_bg", .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(kkj_24, 0x80240040), .bgName = "kpa_bg", .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(kkj_25, 0x80240F50), .bgName = "kpa_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(kkj_25, 0x80240F50), .bgName = "kpa_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(kkj_26, 0x80240070), .bgName = "kpa_bg" },
|
{ MAP_UNSPLIT(kkj_26, 0x80240070), .bgName = "kpa_bg" },
|
||||||
{ MAP_UNSPLIT(kkj_26, 0x80240070), .flags = 0x2 },
|
{ MAP_UNSPLIT(kkj_26, 0x80240070), .flags = 0x2 },
|
||||||
{ MAP_UNSPLIT(kkj_27, 0x802404C0), .flags = 0x1 },
|
{ MAP_UNSPLIT(kkj_27, 0x802404C0), .flags = 0x1 },
|
||||||
@ -457,7 +646,7 @@ static Map arn_maps[] = {
|
|||||||
|
|
||||||
/// Tubba Blubba's Castle
|
/// Tubba Blubba's Castle
|
||||||
static Map dgb_maps[] = {
|
static Map dgb_maps[] = {
|
||||||
{ MAP_UNSPLIT(dgb_00, 0x802400D0), .bgName = "arn_bg", .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(dgb_00, 0x802400D0), .bgName = "arn_bg", .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(dgb_01, 0x80243460), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(dgb_01, 0x80243460), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(dgb_02, 0x80241470), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(dgb_02, 0x80241470), .songVariation = 1, .flags = 2 },
|
||||||
{ MAP_UNSPLIT(dgb_03, 0x80242830), .songVariation = 1, .flags = 2 },
|
{ MAP_UNSPLIT(dgb_03, 0x80242830), .songVariation = 1, .flags = 2 },
|
||||||
@ -541,38 +730,38 @@ static Map sam_maps[] = {
|
|||||||
|
|
||||||
/// Crystal Palace
|
/// Crystal Palace
|
||||||
static Map pra_maps[] = {
|
static Map pra_maps[] = {
|
||||||
{ MAP_UNSPLIT(pra_01, 0x80241400), .bgName = "yki_bg", .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_01, 0x80241400), .bgName = "yki_bg", .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_02, 0x802416C0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_02, 0x802416C0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_03, 0x802401E0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_03, 0x802401E0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_04, 0x80240970), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_04, 0x80240970), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_05, 0x802411F0), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_05, 0x802411F0), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_06, 0x80240F60), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_06, 0x80240F60), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_09, 0x80241670), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_09, 0x80241670), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_10, 0x802416D0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_10, 0x802416D0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_11, 0x802411F0), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_11, 0x802411F0), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_12, 0x80241220), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_12, 0x80241220), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_13, 0x80241620), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_13, 0x80241620), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_14, 0x80241200), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_14, 0x80241200), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_15, 0x80240050), .bgName = "yki_bg", .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_15, 0x80240050), .bgName = "yki_bg", .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_16, 0x80240F60), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_16, 0x80240F60), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_18, 0x80240F50), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_18, 0x80240F50), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_19, 0x802419D0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_19, 0x802419D0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_20, 0x80240F70), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_20, 0x80240F70), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_21, 0x80240140), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_21, 0x80240140), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_22, 0x802402F0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_22, 0x802402F0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_27, 0x80241220), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_27, 0x80241220), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_28, 0x80241220), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_28, 0x80241220), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_29, 0x802412C0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_29, 0x802412C0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_31, 0x802410E0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_31, 0x802410E0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_32, 0x80240850), .bgName = "sam_bg", .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_32, 0x80240850), .bgName = "sam_bg", .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_33, 0x802410C0), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_33, 0x802410C0), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_34, 0x80241040), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_34, 0x80241040), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_35, 0x80242C40), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_35, 0x80242C40), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_36, 0x80240F70), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_36, 0x80240F70), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_37, 0x80241840), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_37, 0x80241840), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_38, 0x80241700), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_38, 0x80241700), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_39, 0x80241700), .songVariation = 1, .flags = 2, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_39, 0x80241700), .songVariation = 1, .flags = 2, .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(pra_40, 0x80240F40), .songVariation = 1, .flags = 1, .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(pra_40, 0x80240F40), .songVariation = 1, .flags = 1, .init = (MapInit)0x80240000 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Shy Guy's Toy Box
|
/// Shy Guy's Toy Box
|
||||||
@ -611,8 +800,8 @@ static Map tst_maps[] = {
|
|||||||
|
|
||||||
/// Credits
|
/// Credits
|
||||||
static Map end_maps[] = {
|
static Map end_maps[] = {
|
||||||
{ MAP_UNSPLIT(end_00, 0x80242B50), .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(end_00, 0x80242B50), .init = (MapInit)0x80240000 },
|
||||||
{ MAP_UNSPLIT(end_01, 0x80243000), .init = (MapInit*)0x80240000 },
|
{ MAP_UNSPLIT(end_01, 0x80243000), .init = (MapInit)0x80240000 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Toad Town Playroom
|
/// Toad Town Playroom
|
||||||
|
@ -309,12 +309,16 @@ segments:
|
|||||||
- [0x1086a0, c, code_1086a0_len_fc0]
|
- [0x1086a0, c, code_1086a0_len_fc0]
|
||||||
- [0x109660, c, code_109660_len_1270]
|
- [0x109660, c, code_109660_len_1270]
|
||||||
- [0x10A8D0, c, code_10A8D0]
|
- [0x10A8D0, c, code_10A8D0]
|
||||||
- [0x10A9F0, i4, shadow/square, 16, 16]
|
- [0x10A9F0, bin]
|
||||||
- [0x10AA70, i4, shadow/circle, 16, 16]
|
#- [0x10A9F0, i4, shadow/square, 16, 16]
|
||||||
|
#- [0x10AA70, i4, shadow/circle, 16, 16]
|
||||||
- [0x10AAF0, bin]
|
- [0x10AAF0, bin]
|
||||||
- [0x10AB70, i4, shadow/10AB70, 32, 32]
|
#- [0x10AB70, i4, shadow/10AB70, 32, 32]
|
||||||
- [0x10AD70, i4, shadow/10AD70, 32, 32]
|
#- [0x10AD70, i4, shadow/10AD70, 32, 32]
|
||||||
- [0x10AF70, bin] # TODO
|
- [0x10AF70, bin] # TODO
|
||||||
|
- [0x10C880, rodata, code_102c80]
|
||||||
|
- [0x10CA50, rodata, code_104940_len_dc0]
|
||||||
|
- [0x10CAF0, bin]
|
||||||
- [0x1164B8, ci8, peach_letter, 150, 105]
|
- [0x1164B8, ci8, peach_letter, 150, 105]
|
||||||
- [0x11A23E, bin]
|
- [0x11A23E, bin]
|
||||||
- [0x11A240, palette, peach_letter]
|
- [0x11A240, palette, peach_letter]
|
||||||
|
@ -405,7 +405,6 @@ D_0A002F78 = 0x0A002F78;
|
|||||||
D_0A001218 = 0x0A001218;
|
D_0A001218 = 0x0A001218;
|
||||||
D_0A003F70 = 0x0A003F70;
|
D_0A003F70 = 0x0A003F70;
|
||||||
D_0A002318 = 0x0A002318;
|
D_0A002318 = 0x0A002318;
|
||||||
=======
|
|
||||||
D_8014F738 = 0x8014F738;
|
D_8014F738 = 0x8014F738;
|
||||||
|
|
||||||
D_802BDF64 = 0x802BDF64;
|
D_802BDF64 = 0x802BDF64;
|
||||||
|
Loading…
Reference in New Issue
Block a user