Files
ss/include/rvl/CX/cx.h
T
2025-09-16 22:32:07 -04:00

71 lines
1.5 KiB
C

#ifndef RVL_CX_H
#define RVL_CX_H
#include "common.h"
// .text: [0x803cee90, 0x803d0b20]
#ifdef __cplusplus
extern "C" {
#endif
enum CXReadResult {
CX_READ_ERR_4 = -4,
CX_READ_ERR_3 = -3,
CX_READ_ERR_2 = -2,
CX_READ_ERR_1 = -1,
CX_READ_OK = 0,
};
typedef struct CXUncompContextLZ {
u8 _[0x18];
} CXUncompContextLZ;
typedef struct CXUncompContextRL {
u8 _[0x10];
} CXUncompContextRL;
typedef struct CXUncompContextLH {
// u8 _[0x8a8];
// taken from xenoblade
u8 *destp;
s32 destCount;
s32 forceDestCount;
u16 huffTable9[1 << (9 + 1)];
u16 huffTable12[1 << (5 + 1)];
u16 *nodep;
s32 tableSize9;
s32 tableSize12;
u32 tableIdx;
u32 stream;
u32 stream_len;
u16 length;
s8 offset_bits;
u8 headerSize;
} CXUncompContextLH;
typedef struct CXUncompContextLRC {
u8 _[0x902C];
} CXUncompContextLRC;
void CXInitUncompContextRL(CXUncompContextRL *);
void CXInitUncompContextLZ(CXUncompContextLZ *);
s32 CXReadUncompRL(CXUncompContextRL *, const void *, u32);
s32 CXReadUncompLZ(CXUncompContextLZ *, const void *, u32);
void CXInitUncompContextLH(CXUncompContextLH *);
s32 CXReadUncompLH(CXUncompContextLH *, const void *, u32);
void RCAddCount_();
void RCSearch_();
void RCGetData_();
void CXInitUncompContextLRC(CXUncompContextLRC *);
s32 CXReadUncompLRC(CXUncompContextLRC *, const void *, u32);
u32 CXGetUncompressedSize(const void *);
void CXUncompressLZ();
void CXiLHVerifyTable();
#ifdef __cplusplus
}
#endif
#endif