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)
 
void HSD_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)
 
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, u8 *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)
 
static void HSD_SisLib_803A7F0C_inline (HSD_Text *text, s32 flags, s32 *out_remove_size, u32 *stack_pos, s32 *out_value)
 
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 ? *HSD_SisLib_804D796C; extern u8 *HSD_SisLib_804D7978; sislib_UnknownType001 HSD_SisLib_8040C490 = { 0, 1.0F };
 
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.54% match - needs register allocation fix (var_r4 allocated to r3 instead of r4) a generic allocator used by multiple data types

◆ HSD_SisLib_803A594C()

void HSD_SisLib_803A594C ( void *  ptr)
Todo:
Currently 92.39% match - needs register allocation fix in coalesce block (new_size/old_next register assignment differs)

◆ 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()

static 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()

void 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,
  ... 
)

<

Todo:
what size is this?

<

Todo:
is this the correct usage of vaargs?

◆ 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_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,
u8 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_803A7F0C_inline()

static void HSD_SisLib_803A7F0C_inline ( HSD_Text text,
s32  flags,
s32 out_remove_size,
u32 *  stack_pos,
s32 out_value 
)
inlinestatic

◆ 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