Skip to content

Commit

Permalink
Decompile lib func_us_801B4830 and func_us_801B3FB4 (#2190)
Browse files Browse the repository at this point in the history
  • Loading branch information
gamezter authored Feb 7, 2025
1 parent 8416cbd commit 0489752
Show file tree
Hide file tree
Showing 4 changed files with 373 additions and 98 deletions.
2 changes: 2 additions & 0 deletions config/splat.us.stlib.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ segments:
- [0x2B938, .rodata, first_c_file]
- [0x2CE78, .rodata, e_shop]
- [0x2CF14, .rodata, unk_33EC8]
- [0x2CF48, .rodata, unk_3420C]
- [0x2D278, .rodata, unk_36F30]
- [0x2D848, .rodata, unk_3BEB0]
- [0x2D868, .rodata, unk_3C57C]
Expand All @@ -76,6 +77,7 @@ segments:
- [0x2DED0, c, first_c_file]
- [0x3245C, c, e_shop]
- [0x33EC8, c, unk_33EC8]
- [0x3420C, c, unk_3420C]
- [0x36324, c, unk_36F30]
- [0x3BEB0, c, unk_3BEB0]
- [0x3C57C, c, unk_3C57C]
Expand Down
2 changes: 1 addition & 1 deletion include/game.h
Original file line number Diff line number Diff line change
Expand Up @@ -1122,7 +1122,7 @@ typedef struct {
} MenuNavigation; /* size=0x4C */

typedef struct {
/* 0x000, 0x8003C9F8 */ u32 buttonConfig[BUTTON_COUNT];
/* 0x000, 0x8003C9F8 */ s32 buttonConfig[BUTTON_COUNT];
/* 0x020, 0x8003CA18 */ u16 buttonMask[BUTTON_COUNT];
/* 0x030, 0x8003CA28 */ s32 timeAttackRecords[TIMEATTACK_EVENT_END];
/* 0x0B0, 0x8003CAA8 */ s32 cloakColors[6];
Expand Down
131 changes: 34 additions & 97 deletions src/st/lib/unk_33EC8.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,40 @@

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B3EC8);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B3FB4);
Primitive* func_us_801B3FB4(Primitive* prim, u8* uv, u16 count, s32 arg3) {
u8 d;
s32 i;
u32 max;
u8* ptr;

ptr = uv;
max = 0;
for (i = 0; i < count; i++) {
#ifdef VERSION_PSP
if (*ptr == 0xFF) {
break;
}
ptr++;
max++;
}
for (i = 0; i < max; i++) {
#endif
d = *uv++;
prim->u0 = (d & 0xF) * 8;
prim->v0 = (d & 0xF0) >> 1;
if (arg3 != 0) {
prim->drawMode = DRAW_DEFAULT;
}
prim = prim->next;
}
#ifdef VERSION_PSP
for (; i < count; i++) {
prim->drawMode = DRAW_HIDE;
prim = prim->next;
}
#endif
return prim;
}

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B4010);

Expand All @@ -24,99 +57,3 @@ INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801ACF24);
INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801ACF34);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801ACF40);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B420C);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B4830);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801ACF88);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801ACFA4);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801ACFC4);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801ACFE0);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD000);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD024);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B4ED4);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B5068);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD088);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD098);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD0A8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD0B8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD0C8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD0D8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD0E8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD0F4);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B56E4);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B5F18);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B5F84);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B60C8);

INCLUDE_ASM("st/lib/nonmatchings/unk_33EC8", func_us_801B6124);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD134);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD144);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD14C);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD150);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD15C);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD16C);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD178);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD188);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD198);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD1A8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD1B0);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD1C4);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD1D0);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD1D8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD1EC);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD1F8);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD204);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD210);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD21C);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD22C);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD234);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD248);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD254);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD264);

INCLUDE_RODATA("st/lib/nonmatchings/unk_33EC8", D_us_801AD26C);
Loading

0 comments on commit 0489752

Please sign in to comment.