Compare commits

...

12 Commits

Author SHA1 Message Date
gijs fa7b76925a Migrated `rodata` for `overlay_177ED0` 2023-09-27 01:45:08 +02:00
gijs becb22e146 Renamed `func_overlay_145210_801F9EC8_14B0A8` to `__big_render_func_801F9EC8` 2023-09-27 01:38:28 +02:00
gijs aec46b9023 Migrated gfx from `14E530` 2023-09-27 01:34:06 +02:00
gijs 8cef1c9e6f Address to symbol for DISPLAY_LIST_801869C8 2023-09-27 01:10:34 +02:00
gijs 408cdaf436 Decompiled `func_80080798` 2023-09-27 01:07:06 +02:00
gijs 7fd4294f59 Decompiled `func_80080768` 2023-09-27 01:05:10 +02:00
gijs 957de22ea5 Decompiled `func_80080304` 2023-09-27 01:01:37 +02:00
gijs 6c268e9cbf Further split up the data in the main segment 2023-09-27 00:55:01 +02:00
gijs 2861309bd6 Discovered `obPtrPtrDisplayList` 2023-09-27 00:49:40 +02:00
gijs 253726d9f9 Decompiled `func_overlay_145210_801F4C38_145E18` 2023-09-27 00:27:33 +02:00
gijs fabe829cbf Decompiled `func_800737A0` 2023-09-27 00:12:20 +02:00
gijs 4c35308c05 Decompiled `func_80073ED8` 2023-09-26 23:22:45 +02:00
12 changed files with 256 additions and 33 deletions

View File

@ -112,6 +112,13 @@ typedef struct {
/* 0xa8 */ OSMesgQueue field_0xa8; /* 0xa8 */ OSMesgQueue field_0xa8;
} Unk0; } Unk0;
extern SomethingMusic __MAYBE_SONG_800EB0B0;
extern SomethingMusic __MAYBE_SONG_800EB100;
extern SomethingMusic __MAYBE_SONG_800EB150;
extern SomethingMusic __MAYBE_SONG_800EB1A0;
extern SomethingMusic __MAYBE_SONG_800EB1F0;
extern SomethingMusic __MAYBE_SONG_800EB240;
extern SomethingMusic __MAYBE_SONG_800EB290;
extern SomethingMusic* __MAYBE_SONG_ARRAY_800A8218[7]; extern SomethingMusic* __MAYBE_SONG_ARRAY_800A8218[7];
extern void* musCurrentPtrBank; extern void* musCurrentPtrBank;
@ -553,10 +560,17 @@ extern u8 item_get_field_0x9(u16 arg0);
extern void func_80179354(); extern void func_80179354();
extern Gfx* obPtrDisplayList; extern Gfx* obPtrDisplayList;
extern Gfx** obPtrPtrDisplayList;
extern Gfx DISPLAY_LIST_80186BD0[]; extern Gfx DISPLAY_LIST_80186BD0[];
extern Gfx DISPLAY_LIST_80186D90[]; extern Gfx DISPLAY_LIST_80186D90[];
extern Gfx DISPLAY_LIST_8018FC80[]; extern Gfx DISPLAY_LIST_8018FC80[];
extern Gfx DISPLAY_LIST_80186E70[];
extern Gfx DISPLAY_LIST_801869C8[];
extern Gfx DISPLAY_LIST_801FCF70[];
extern Gfx DISPLAY_LIST_801FCF98[];
extern Gfx DISPLAY_LIST_800A96C8[];
extern Vp obVpMinResolution; extern Vp obVpMinResolution;
extern Vp obVpMaxResolution; extern Vp obVpMaxResolution;

View File

@ -60,7 +60,9 @@ zero = 0x800AE9D0; // type:f32
dtor = 0x800AA730; // type:f32 dtor = 0x800AA730; // type:f32
xseed = 0x800AA740; // type:u32 xseed = 0x800AA740; // type:u32
__MAYBE_VERTICES_801FD350 = 0x801FD350; // rom:0x14E530 VTX_801FD350 = 0x801FD350; // rom:0x14E530
VTX_801FD390 = 0x801FD390; // rom:0x14E570
__MAYBE_VERTICES_801FD558 = 0x801FD558; // rom:0x14E738 __MAYBE_VERTICES_801FD558 = 0x801FD558; // rom:0x14E738
__MAYBE_VERTICES_801FD600 = 0x801FD600; // rom:0x14E7E0 __MAYBE_VERTICES_801FD600 = 0x801FD600; // rom:0x14E7E0
__MAYBE_VERTICES_801FD790 = 0x801FD790; // rom:0x14E970 __MAYBE_VERTICES_801FD790 = 0x801FD790; // rom:0x14E970
@ -71,7 +73,12 @@ VTX_801FD200 = 0x801FD200; // rom:0x14E3E0
VTX_801FD2A8 = 0x801FD2A8; // rom:0x14E488 VTX_801FD2A8 = 0x801FD2A8; // rom:0x14E488
VTX_8021EF08 = 0x8021EF08; // rom:0x16FF48 VTX_8021EF08 = 0x8021EF08; // rom:0x16FF48
__big_render_func_801F9EC8 = 0x801F9EC8; // rom:0x14B0A8
obPtrDisplayList = 0x800E9BA0; obPtrDisplayList = 0x800E9BA0;
obPtrPtrDisplayList = 0x800B17B0;
__set_obPtrPtrDisplayList = 0x80080280; // rom:0x10680
obVpMinResolution = 0x80186310; // rom:0x5C210 obVpMinResolution = 0x80186310; // rom:0x5C210
obVpMaxResolution = 0x80186320; // rom:0x5C220 obVpMaxResolution = 0x80186320; // rom:0x5C220

View File

@ -79,7 +79,7 @@ segments:
- [0x10590, asm] - [0x10590, asm]
- [0x105D0, asm] - [0x105D0, asm]
- [0x10610, asm] - [0x10610, asm]
- [0x10680, asm] - [0x10680, c, "_ob_shrill_snail"]
- [0x10CF0, c, "_ob_soft_coach"] - [0x10CF0, c, "_ob_soft_coach"]
- [0x10D70, asm] - [0x10D70, asm]
- [0x10E70, asm] - [0x10E70, asm]
@ -317,6 +317,10 @@ segments:
- [0x2E450, data] - [0x2E450, data]
- [0x387C0, data, "data/overlay_table"] - [0x387C0, data, "data/overlay_table"]
- [0x38B50, data] - [0x38B50, data]
- [0x39900, data, "gfx/_ob_star_skate"]
- [0x39B90, data]
- [0x39C90, data]
- [0x39CB0, data]
- [0x3A2F0, .data, "gfx/_ob_saucy_hose"] - [0x3A2F0, .data, "gfx/_ob_saucy_hose"]
- [0x3A3E0, data] - [0x3A3E0, data]
@ -697,7 +701,8 @@ segments:
- [0x14DE90, data] - [0x14DE90, data]
- [0x14E3E0, .data, "vtx/_ob_abundant_frogs"] - [0x14E3E0, .data, "vtx/_ob_abundant_frogs"]
- [0x14E530, data] - [0x14E530, .data, "gfx/_ob_disastrous_knot"]
- [0x14E5E0, data]
- [0x14EA70, .rodata, "overlay_145210/_ob_shivering_chalk"] - [0x14EA70, .rodata, "overlay_145210/_ob_shivering_chalk"]
- [0x14EAC0, .rodata, "overlay_145210/_ob_hypnotic_lamp"] - [0x14EAC0, .rodata, "overlay_145210/_ob_hypnotic_lamp"]
@ -769,35 +774,25 @@ segments:
- { start: 0x177ED0, type: bss, vram: 0x8021AFB0 } - { start: 0x177ED0, type: bss, vram: 0x8021AFB0 }
- [0x177ED0, bin] - type: code
dir: overlay_177ED0
start: 0x177ED0
vram: 0x80214F80
bss_size: 0x18D0
symbol_name_format: overlay_177ED0_$VRAM_$ROM
exclusive_ram_id: test_overlapping
subsegments:
- [0x177ED0, c, "_ob_zany_payment"]
- [0x1782C0, c, "_ob_steep_grandmother"]
- [0x178450, c, "_ob_possible_engine"]
# - type: code - [0x17BCF0, data]
# dir: overlay_177ED0
# start: 0x177ED0
# vram: 0x80214F80
# bss_size: 0x18D0
# symbol_name_format: overlay_177ED0_$VRAM_$ROM
# exclusive_ram_id: test_overlapping
# subsegments:
# - [0x177ED0, asm]
# - [0x1782C0, asm]
# - [0x178450, asm]
# - [0x17BCD0, rodata] - [0x17F9A0, .rodata, "_ob_possible_engine"]
# - [0x17BCE0, rodata]
# - [0x17C500, rodata]
# - [0x17CC20, rodata]
# - [0x17CCE0, rodata]
# - [0x17F130, rodata]
# - [0x17F460, rodata]
# - [0x17F7F0, rodata]
# - [0x17F8D0, rodata]
# - [0x17F8F0, rodata]
# - [0x17F900, rodata]
# - [0x17F910, rodata]
# # - { start: 0x17F9C0, type: bss, vram: 0x8021CA70 } - { start: 0x17F9C0, type: bss, vram: 0x8021CA70 }
- [0x17F9C0, bin]
# - type: code # - type: code
# dir: overlay_17F9C0 # dir: overlay_17F9C0

77
src/_ob_shrill_snail.c Normal file
View File

@ -0,0 +1,77 @@
#include "common.h"
extern s8 D_800A96C0;
extern s16 D_800B17B4;
extern s16 D_800B17B6;
extern s16 D_800B17B8;
extern s16 D_800B17BA;
extern s16 D_800B17BC;
extern s16 D_800B17BE;
extern s16 D_800B17C0;
extern u8 D_800B17C2;
extern void func_800803B8();
/* 10680 80080280 */
void __set_obPtrPtrDisplayList(Gfx **displayList) {
obPtrPtrDisplayList = displayList;
}
/* 1068C 8008028C */
void func_8008028C(void) {
D_800B17C0 = 0;
D_800B17BE = 0;
D_800B17BC = 0;
D_800B17BA = 0;
D_800B17B8 = 0;
D_800B17B6 = 0;
D_800B17B4 = 0;
D_800B17C2 = 0xFF;
D_800A96C0 = 0;
gSPDisplayList((*obPtrPtrDisplayList)++, DISPLAY_LIST_800A96C8);
}
/* 10704 80080304 */
void func_80080304(s16 arg0, s16 arg1) {
D_800B17C0 = 0;
D_800B17BE = 0;
D_800B17BC = 0;
D_800B17BA = 0;
D_800B17B8 = 0;
D_800B17B6 = 0;
D_800B17B4 = 0;
D_800B17C2 = 0xFF;
D_800A96C0 = 0;
gSPDisplayList((*obPtrPtrDisplayList)++, DISPLAY_LIST_800A96C8);
D_800B17B4 = arg0;
D_800B17B6 = arg1;
}
INCLUDE_ASM(const s32, "_ob_shrill_snail", func_8008038C);
INCLUDE_ASM(const s32, "_ob_shrill_snail", func_800803B8);
/* 10B68 80080768 */
void func_80080768(s16 arg, s16 arg1, s16 arg2) {
D_800B17B8 = arg1;
D_800B17BA = arg1;
D_800B17BC = arg2;
func_800803B8();
}
/* 10B98 80080798 */
void func_80080798(s16 arg, s16 arg1, s16 arg2) {
D_800B17B8 = arg1;
D_800B17BA = arg1;
D_800B17BC = arg2;
D_800A96C0 = 1;
func_800803B8();
D_800A96C0 = 0;
}
INCLUDE_ASM(const s32, "_ob_shrill_snail", func_800807DC);
INCLUDE_ASM(const s32, "_ob_shrill_snail", func_80080894);

View File

@ -0,0 +1,55 @@
#include "common.h"
/* 14E530 801FD350 */
u32 VTX_801FD350[] = {
0xFFE80025,
0x00000000,
0x00000000,
0x000000FF,
0xFFE80011,
0x00000000,
0x000004C0,
0x000000FF,
0x00180011,
0x00000000,
0x0BC004C0,
0x000000FF,
0x00180025,
0x00000000,
0x0BC00000,
0x000000FF
};
/* 14E570 801FD390 */
u32 VTX_801FD390[] = {
0xFFE80011,
0x00000000,
0x00000500,
0x000000C0,
0xFFE8FFFD,
0x00000000,
0x000009C0,
0x00000000,
0x0018FFFD,
0x00000000,
0x0BC009C0,
0x00000000,
0x00180011,
0x00000000,
0x0BC00500,
0x000000C0
};
/* 14E5B0 801FD3D0 */
Gfx DISPLAY_LIST_801FD3D0[] = {
gsSPVertex(VTX_801FD350, 4, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList()
};
/* 14E5C8 801FD3E8 */
Gfx DISPLAY_LIST_801FD3E8[] = {
gsSPVertex(VTX_801FD390, 4, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList()
};

View File

@ -1,4 +1,5 @@
#include "common.h" #include "common.h"
#include "libmus.h"
INCLUDE_ASM(const s32, "main", func_80070C60); INCLUDE_ASM(const s32, "main", func_80070C60);
@ -221,7 +222,14 @@ INCLUDE_ASM(const s32, "main", func_80073398);
INCLUDE_ASM(const s32, "main", func_800733F8); INCLUDE_ASM(const s32, "main", func_800733F8);
INCLUDE_ASM(const s32, "main", func_800737A0); /* 3BA0 800737A0 */
void func_800737A0(void) {
gDPPipeSync(obPtrDisplayList++);
gSPSegment(obPtrDisplayList++, 0, 0);
gDPPipeSync(obPtrDisplayList++);
gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_80186E70);
gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801869C8);
}
INCLUDE_ASM(const s32, "main", func_8007382C); INCLUDE_ASM(const s32, "main", func_8007382C);
@ -241,7 +249,26 @@ INCLUDE_ASM(const s32, "main", func_80073C48);
INCLUDE_ASM(const s32, "main", func_80073CB0); INCLUDE_ASM(const s32, "main", func_80073CB0);
INCLUDE_ASM(const s32, "main", func_80073ED8); extern s32 D_800A81F4;
extern s32 D_800A81F8;
extern s32 D_800C4BCC;
/* 42D8 80073ED8 */
void func_80073ED8(void) {
if (D_800A81F4 == 0) {
__MAYBE_SONG_800EB0B0.field_0x2c = 0;
__MAYBE_SONG_800EB100.field_0x2c = 0;
__MAYBE_SONG_800EB150.field_0x2c = 0;
__MAYBE_SONG_800EB1A0.field_0x2c = 0;
__MAYBE_SONG_800EB1F0.field_0x2c = 0;
__MAYBE_SONG_800EB240.field_0x2c = 0;
__MAYBE_SONG_800EB290.field_0x2c = 0;
MusStop(MUSFLAG_SONGS | MUSFLAG_EFFECTS, 12);
D_800A81F4 = 12;
D_800A81F8 = D_800C4BCC;
}
}
INCLUDE_ASM(const s32, "main", func_80073F58); INCLUDE_ASM(const s32, "main", func_80073F58);

View File

@ -48,4 +48,19 @@ INCLUDE_ASM(const s32, "overlay_145210/_ob_shivering_chalk", func_overlay_145210
INCLUDE_ASM(const s32, "overlay_145210/_ob_shivering_chalk", func_overlay_145210_801F4C24_145E04); INCLUDE_ASM(const s32, "overlay_145210/_ob_shivering_chalk", func_overlay_145210_801F4C24_145E04);
INCLUDE_ASM(const s32, "overlay_145210/_ob_shivering_chalk", func_overlay_145210_801F4C38_145E18); extern u8 D_overlay_145210_801FDA24_14EC04;
/* 145E18 801F4C38 */
void func_overlay_145210_801F4C38_145E18(s32 arg0) {
if (arg0 != 0) {
if (D_overlay_145210_801FDA24_14EC04 != 1) {
D_overlay_145210_801FDA24_14EC04 = 1;
gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801FCF70);
}
} else if (D_overlay_145210_801FDA24_14EC04 != 2) {
D_overlay_145210_801FDA24_14EC04 = 2;
gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801FCF98);
}
}

View File

@ -2,7 +2,7 @@
INCLUDE_ASM(const s32, "overlay_145210/_ob_terrible_event", func_overlay_145210_801F9970_14AB50); INCLUDE_ASM(const s32, "overlay_145210/_ob_terrible_event", func_overlay_145210_801F9970_14AB50);
INCLUDE_ASM(const s32, "overlay_145210/_ob_terrible_event", func_overlay_145210_801F9EC8_14B0A8); INCLUDE_ASM(const s32, "overlay_145210/_ob_terrible_event", __big_render_func_801F9EC8);
INCLUDE_ASM(const s32, "overlay_145210/_ob_terrible_event", func_overlay_145210_801FA6F0_14B8D0); INCLUDE_ASM(const s32, "overlay_145210/_ob_terrible_event", func_overlay_145210_801FA6F0_14B8D0);

View File

@ -45,7 +45,7 @@ Vtx VTX_8021EF08[] = {
/* 170098 8021F058 */ /* 170098 8021F058 */
Gfx DISPLAY_LIST_8021F058[] = { Gfx DISPLAY_LIST_8021F058[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPDisplayList(0x801869C8), gsSPDisplayList(DISPLAY_LIST_801869C8),
gsDPPipeSync(), gsDPPipeSync(),
gsDPPipeSync(), gsDPPipeSync(),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),

View File

@ -0,0 +1,19 @@
#include "common.h"
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_80215500_178450);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_80215AF4_178A44);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_80217220_17A170);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_802174D8_17A428);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_80217538_17A488);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_802175B4_17A504);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_80217710_17A660);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_80218A34_17B984);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_possible_engine", func_overlay_177ED0_80218D80_17BCD0);

View File

@ -0,0 +1,5 @@
#include "common.h"
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_steep_grandmother", func_overlay_177ED0_80215370_1782C0);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_steep_grandmother", func_overlay_177ED0_802154CC_17841C);

View File

@ -0,0 +1,9 @@
#include "common.h"
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_zany_payment", func_overlay_177ED0_80214F80_177ED0);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_zany_payment", func_overlay_177ED0_80214FB0_177F00);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_zany_payment", func_overlay_177ED0_80215290_1781E0);
INCLUDE_ASM(const s32, "overlay_177ED0/_ob_zany_payment", func_overlay_177ED0_8021533C_17828C);