SSBM Decomp
Loading...
Searching...
No Matches
sislib.c File Reference
#include "sislib.h"
#include "cobj.h"
#include "gobj.h"
#include "gobjgxlink.h"
#include "gobjobject.h"
#include "gobjplink.h"
#include "gobjuserdata.h"
#include "memory.h"
#include "state.h"
#include "tev.h"
#include "wobj.h"
#include "dolphin/gx.h"
#include "dolphin/mtx.h"
#include <printf.h>
#include <stdarg.h>
#include <stdio.h>
#include <dolphin/os.h>
#include <melee/lb/lbarchive.h>

Functions

void * HSD_SisLib_803A5798 (s32 size)
void HSD_SisLib_803A594C (void *ptr)
void HSD_SisLib_803A5A2C (void *ptr)
void HSD_SisLib_803A5CC4 (HSD_Text *text)
void HSD_SisLib_803A5D30 (void)
static void HSD_SisLib_803A5DA0_inline0 (s32 font_idx)
void HSD_SisLib_803A5DA0 (s32 font_idx)
HSD_TextHSD_SisLib_803A5ACC (int font_idx, s32 context_id, f32 pos_x, f32 pos_y, f32 pos_z, f32 box_w, f32 box_h)
void HSD_SisLib_803A5E70 (void)
void HSD_SisLib_803A5F50 (s32 font_idx)
void HSD_SisLib_803A5FBC (void)
void HSD_SisLib_803A6048 (u32 size)
void fn_803A60EC (void *gobj)
 GObj "remove" function callback.
s32 HSD_SisLib_803A611C (int font_idx, HSD_GObj *parent_gobj, u16 class_id, u8 p_link, u8 p_prio, u8 gx_link, u8 gx_prio, u32 render_prio)
void HSD_SisLib_803A62A0 (s32 font_idx, char *archive_name, char *symbol_name)
void HSD_SisLib_803A6368 (HSD_Text *text, s32 sis_idx)
u8HSD_SisLib_803A6478 (u8 *dst, u8 *src)
u8HSD_SisLib_803A6530 (s32 font_idx, s32 dst_idx, s32 src_idx)
void HSD_SisLib_803A660C (s32 font_idx, s32 dst_idx, s32 src_idx)
HSD_TextHSD_SisLib_803A6754 (int font_idx, s32 context_id)
s32 HSD_SisLib_803A67EC (u8 *data, u8 *string)
 Converts ASCII to "SIS" format.
int HSD_SisLib_803A6B98 (HSD_Text *text, float x, float y, const char *fmt,...)
u8fn_803A6FEC (u8 *sis_data, s32 entry_idx, s32 *out_size)
s32 HSD_SisLib_803A70A0 (HSD_Text *text, s32 entry_idx, char *fmt,...)
void HSD_SisLib_803A746C (HSD_Text *text, s32 entry_idx, f32 new_x, f32 new_y)
void HSD_SisLib_803A74F0 (HSD_Text *text, s32 entry_idx, GXColor *color_rgb)
void HSD_SisLib_803A7548 (HSD_Text *text, int entry_idx, float scale_x, float scale_y)
void HSD_SisLib_803A75E0 (HSD_Text *text, s32 entry_idx)
void HSD_SisLib_803A7664 (HSD_Text *text)
void HSD_SisLib_803A8134 (void *sis_data, HSD_Text *text, f32 *out_width, f32 *out_height)
void HSD_SisLib_803A7684 (HSD_Text *text, u8 *cursor, u8 flags)
s32 HSD_SisLib_803A7F0C (HSD_Text *text, s32 flags)
void HSD_SisLib_803A84BC (HSD_GObj *gobj, int pass)
HSD_ArchiveHSD_SisLib_803A945C (char *path)
void HSD_SisLib_803A947C (HSD_Archive *archive)

Variables

static HSD_WObjDesc HSD_SisLib_8040C490
static HSD_WObjDesc HSD_SisLib_8040C4A4
static u32 HSD_SisLib_804D7968
static HSD_CameraDescPerspective HSD_SisLib_8040C4B8
sislib_UnkAllocDataHSD_SisLib_804D7970
sislib_UnkAllocDataHSD_SisLib_804D7974
HSD_TextHSD_SisLib_804D7978
sislib_UnkAlloc3HSD_SisLib_804D797C
static f32 HSD_SisLib_8040CB00
 extern ?
static u8 HSD_SisLib_8040CD40
static HSD_ArchiveHSD_SisLib_804D1110 [5]
SISHSD_SisLib_804D1124 [5]
s8 HSD_SisLib_804D6390 [4] = { 0, 0, 0, 0 }
static sislib_UnkAllocDataHSD_SisLib_804D796C

Function Documentation

◆ HSD_SisLib_803A5798()

void * HSD_SisLib_803A5798 ( s32 size)
Todo
Currently 99.40% match - remaining diffs are register allocation (HSD_SisLib_804D7970 ptr in r3 instead of r4) plus the "" literal pooling to HSD_SisLib_804D6390, both link/regalloc-resolved a generic allocator used by multiple data types

◆ HSD_SisLib_803A594C()

void HSD_SisLib_803A594C ( void * ptr)
Todo
Currently 92.57% match - register allocation/scheduling in coalesce block: compiler reassociates new_size add and reuses free_cur reg for old_next instead of the alloc_cur->size reg

◆ HSD_SisLib_803A5A2C()

void HSD_SisLib_803A5A2C ( void * ptr)

◆ HSD_SisLib_803A5CC4()

void HSD_SisLib_803A5CC4 ( HSD_Text * text)

◆ HSD_SisLib_803A5D30()

void HSD_SisLib_803A5D30 ( void )

◆ HSD_SisLib_803A5DA0_inline0()

void HSD_SisLib_803A5DA0_inline0 ( s32 font_idx)
inlinestatic

◆ HSD_SisLib_803A5DA0()

void HSD_SisLib_803A5DA0 ( s32 font_idx)

◆ HSD_SisLib_803A5ACC()

HSD_Text * HSD_SisLib_803A5ACC ( int font_idx,
s32 context_id,
f32 pos_x,
f32 pos_y,
f32 pos_z,
f32 box_w,
f32 box_h )

this is the context id that comes from HSD_SisLib_803A611C, it essentially tells us which camera to use

◆ HSD_SisLib_803A5E70()

void HSD_SisLib_803A5E70 ( void )

◆ HSD_SisLib_803A5F50()

void HSD_SisLib_803A5F50 ( s32 font_idx)

◆ HSD_SisLib_803A5FBC()

void HSD_SisLib_803A5FBC ( void )

◆ HSD_SisLib_803A6048()

void HSD_SisLib_803A6048 ( u32 size)
Todo
Currently 97.56% match - extra lwz reload optimized away by compiler after dual global store

◆ fn_803A60EC()

void fn_803A60EC ( void * gobj)

GObj "remove" function callback.

◆ HSD_SisLib_803A611C()

s32 HSD_SisLib_803A611C ( int font_idx,
HSD_GObj * parent_gobj,
u16 class_id,
u8 p_link,
u8 p_prio,
u8 gx_link,
u8 gx_prio,
u32 render_prio )

◆ HSD_SisLib_803A62A0()

void HSD_SisLib_803A62A0 ( s32 font_idx,
char * archive_name,
char * symbol_name )

◆ HSD_SisLib_803A6368()

void HSD_SisLib_803A6368 ( HSD_Text * text,
s32 sis_idx )

◆ HSD_SisLib_803A6478()

u8 * HSD_SisLib_803A6478 ( u8 * dst,
u8 * src )

◆ HSD_SisLib_803A6530()

u8 * HSD_SisLib_803A6530 ( s32 font_idx,
s32 dst_idx,
s32 src_idx )

◆ HSD_SisLib_803A660C()

void HSD_SisLib_803A660C ( s32 font_idx,
s32 dst_idx,
s32 src_idx )

◆ HSD_SisLib_803A6754()

HSD_Text * HSD_SisLib_803A6754 ( int font_idx,
s32 context_id )

<

Todo
This being a byte store means one of my assumptions is wrong;

<

Todo
Do any other Data struct usages have a 0xC member?

◆ HSD_SisLib_803A67EC()

s32 HSD_SisLib_803A67EC ( u8 * data,
u8 * string )

Converts ASCII to "SIS" format.

  • Maps ASCII characters to SIS characters by using byte pair lookup tables
    Parameters
    dataoutput buffer for the converted string
    stringASCII string to be converted
    Returns
    length of encoded string

◆ HSD_SisLib_803A6B98()

int HSD_SisLib_803A6B98 ( HSD_Text * text,
float x,
float y,
const char * fmt,
... )

◆ fn_803A6FEC()

u8 * fn_803A6FEC ( u8 * sis_data,
s32 entry_idx,
s32 * out_size )
Todo
there seems to be a file boundary before this function, because its data section is 8-byte aligned after the previous C strings

◆ HSD_SisLib_803A70A0()

s32 HSD_SisLib_803A70A0 ( HSD_Text * text,
s32 entry_idx,
char * fmt,
... )

◆ HSD_SisLib_803A746C()

void HSD_SisLib_803A746C ( HSD_Text * text,
s32 entry_idx,
f32 new_x,
f32 new_y )

◆ HSD_SisLib_803A74F0()

void HSD_SisLib_803A74F0 ( HSD_Text * text,
s32 entry_idx,
GXColor * color_rgb )

◆ HSD_SisLib_803A7548()

void HSD_SisLib_803A7548 ( HSD_Text * text,
int entry_idx,
float scale_x,
float scale_y )

◆ HSD_SisLib_803A75E0()

void HSD_SisLib_803A75E0 ( HSD_Text * text,
s32 entry_idx )

◆ HSD_SisLib_803A7664()

void HSD_SisLib_803A7664 ( HSD_Text * text)

◆ HSD_SisLib_803A8134()

void HSD_SisLib_803A8134 ( void * sis_data,
HSD_Text * text,
f32 * out_width,
f32 * out_height )

◆ HSD_SisLib_803A7684()

void HSD_SisLib_803A7684 ( HSD_Text * text,
u8 * cursor,
u8 flags )

◆ HSD_SisLib_803A7F0C()

s32 HSD_SisLib_803A7F0C ( HSD_Text * text,
s32 flags )

◆ HSD_SisLib_803A84BC()

void HSD_SisLib_803A84BC ( HSD_GObj * gobj,
int pass )

◆ HSD_SisLib_803A945C()

HSD_Archive * HSD_SisLib_803A945C ( char * path)

◆ HSD_SisLib_803A947C()

void HSD_SisLib_803A947C ( HSD_Archive * archive)

Variable Documentation

◆ HSD_SisLib_8040C490

HSD_WObjDesc HSD_SisLib_8040C490
static
Initial value:
= {
{ 0, 0, 1 },
}
#define NULL
Definition stddef.h:19

◆ HSD_SisLib_8040C4A4

HSD_WObjDesc HSD_SisLib_8040C4A4
static
Initial value:
= {
{ 0, 0, 0 },
}

◆ HSD_SisLib_804D7968

u32 HSD_SisLib_804D7968
static

◆ HSD_SisLib_8040C4B8

HSD_CameraDescPerspective HSD_SisLib_8040C4B8
static
Initial value:
= {
0,
0,
1,
0,
0x280,
0,
0x1E0,
0,
0x280,
0,
0x1E0,
0,
0,
0,
65535,
30,
1.3333,
}
static HSD_WObjDesc HSD_SisLib_8040C4A4
Definition sislib.c:29
static HSD_WObjDesc HSD_SisLib_8040C490
Definition sislib.c:23

◆ HSD_SisLib_804D7970

sislib_UnkAllocData* HSD_SisLib_804D7970

◆ HSD_SisLib_804D7974

sislib_UnkAllocData* HSD_SisLib_804D7974

◆ HSD_SisLib_804D7978

HSD_Text* HSD_SisLib_804D7978

◆ HSD_SisLib_804D797C

sislib_UnkAlloc3* HSD_SisLib_804D797C

◆ HSD_SisLib_8040CB00

f32 HSD_SisLib_8040CB00
static

extern ?

*HSD_SisLib_804D796C; extern u8 *HSD_SisLib_804D7978; sislib_UnknownType001 HSD_SisLib_8040C490 = { 0, 1.0F }; u8 HSD_SisLib_8040C490[0x60] = { 0 };

◆ HSD_SisLib_8040CD40

u8 HSD_SisLib_8040CD40
static

◆ HSD_SisLib_804D1110

HSD_Archive* HSD_SisLib_804D1110[5]
static

◆ HSD_SisLib_804D1124

SIS* HSD_SisLib_804D1124[5]

◆ HSD_SisLib_804D6390

s8 HSD_SisLib_804D6390[4] = { 0, 0, 0, 0 }

◆ HSD_SisLib_804D796C

sislib_UnkAllocData* HSD_SisLib_804D796C
static