Renamed unnamed file to `lha`

Added more symbols
This commit is contained in:
Ogre 2023-09-06 12:59:02 +02:00
parent cf0a14e5cb
commit 2df8bc6570
5 changed files with 177 additions and 173 deletions

View File

@ -248,6 +248,8 @@ extern const char STR_rb[];
extern const char STR_wb[];
extern const char STR_Unknown_method_skiped[];
extern const char STR_EMPTY[];
extern void AddHeap(void* start, u32 length);
extern void __some_logging(const char* format, ...);

View File

@ -51,7 +51,7 @@ segments:
- [0x5FC0, c]
- [0x68E0, asm]
- [0x8700, asm]
- [0xA370, c]
- [0xA370, c, "lha"]
- [0xFC80, c, "boot"]
- [0xFDC0, asm]
- [0xFF10, asm]

View File

@ -1,171 +0,0 @@
#include "common.h"
void Unpack(s32, s32);
INCLUDE_ASM(const s32, "A370", func_80079F70);
INCLUDE_ASM(const s32, "A370", func_8007A070);
INCLUDE_ASM(const s32, "A370", Unpack);
/* ABE0 8007A7E0 */
u32 __read_u32_le(u8* arg0) {
return (arg0[0] << 24) | (arg0[1] << 16) | (arg0[2] << 8) | arg0[3];
}
INCLUDE_ASM(const s32, "A370", func_8007A80C);
INCLUDE_ASM(const s32, "A370", func_8007AB30);
INCLUDE_ASM(const s32, "A370", func_8007AB7C);
INCLUDE_ASM(const s32, "A370", func_8007ABAC);
extern char D_800AE038;
extern OSMesgQueue MQ_800AF320;
/* B030 8007AC30 */
void UnpackProc(void) {
struct {
/* 0x00 */ s32 field_0x0;
/* 0x04 */ OSMesgQueue* field_0x4;
/* 0x08 */ u8 field_0x8;
/* 0x09 */ u8 field_0x9[3];
/* 0x0C */ s32 field_0xc;
/* 0x10 */ s32 field_0x10;
} *sp10;
sp10 = NULL;
while(1) {
osRecvMesg(&MQ_800AF320, &sp10, 1);
if (sp10->field_0x8 == 1) {
Unpack(sp10->field_0x10, sp10->field_0xc);
osSendMesg(sp10->field_0x4, sp10, 1);
} else {
__some_logging(&D_800AE038, sp10->field_0x8);
}
}
}
INCLUDE_ASM(const s32, "A370", func_8007ACB0);
INCLUDE_ASM(const s32, "A370", func_8007AE9C);
INCLUDE_ASM(const s32, "A370", func_8007AF3C);
INCLUDE_ASM(const s32, "A370", func_8007AFE4);
INCLUDE_ASM(const s32, "A370", func_8007B710);
INCLUDE_ASM(const s32, "A370", func_8007B744);
INCLUDE_ASM(const s32, "A370", func_8007B7A8);
INCLUDE_ASM(const s32, "A370", func_8007B83C);
INCLUDE_ASM(const s32, "A370", can_log_crc_error);
INCLUDE_ASM(const s32, "A370", func_8007BA98);
INCLUDE_ASM(const s32, "A370", func_8007BB48);
/* BF90 8007BB90 */
void __log_lha_error(unsigned char* arg0, unsigned char* arg1) {
__some_logging(STR_LHa___s_s__s, STR_Error, arg0, arg1);
}
extern u8 D_800AE334;
/* BFC0 8007BBC0 */
void __log_fatal_error_desc(char* arg0) {
__some_logging(STR_LHa___s_s__s, STR_Fatal_error, &D_800AE334, arg0);
}
/* BFF4 8007BBF4 */
void __log_fatal_error(char* arg0, char* arg1) {
__some_logging(STR_LHa___s_s__s, STR_Fatal_error, arg0, arg1);
}
INCLUDE_ASM(const s32, "A370", func_8007BC24);
INCLUDE_ASM(const s32, "A370", func_8007BF10);
INCLUDE_ASM(const s32, "A370", func_8007C204);
INCLUDE_ASM(const s32, "A370", func_8007C25C);
INCLUDE_ASM(const s32, "A370", func_8007C378);
INCLUDE_ASM(const s32, "A370", func_8007C438);
INCLUDE_ASM(const s32, "A370", func_8007C538);
INCLUDE_ASM(const s32, "A370", __logs_read_error);
INCLUDE_ASM(const s32, "A370", func_8007C74C);
INCLUDE_ASM(const s32, "A370", func_8007CAB8);
INCLUDE_ASM(const s32, "A370", func_8007CE48);
INCLUDE_ASM(const s32, "A370", func_8007D200);
INCLUDE_ASM(const s32, "A370", func_8007D594);
INCLUDE_ASM(const s32, "A370", func_8007D5B8);
INCLUDE_ASM(const s32, "A370", func_8007D7BC);
INCLUDE_ASM(const s32, "A370", func_8007D8A8);
INCLUDE_ASM(const s32, "A370", func_8007DBF4);
INCLUDE_ASM(const s32, "A370", func_8007DDF0);
INCLUDE_ASM(const s32, "A370", func_8007DFF0);
INCLUDE_ASM(const s32, "A370", func_8007E2F8);
INCLUDE_ASM(const s32, "A370", func_8007E698);
INCLUDE_ASM(const s32, "A370", func_8007E6DC);
INCLUDE_ASM(const s32, "A370", func_8007E800);
INCLUDE_ASM(const s32, "A370", func_8007E8F0);
INCLUDE_ASM(const s32, "A370", func_8007EE2C);
INCLUDE_ASM(const s32, "A370", func_8007F1A0);
INCLUDE_ASM(const s32, "A370", func_8007F1F8);
INCLUDE_ASM(const s32, "A370", func_8007F218);
INCLUDE_ASM(const s32, "A370", func_8007F234);
INCLUDE_ASM(const s32, "A370", func_8007F314);
INCLUDE_ASM(const s32, "A370", func_8007F334);
INCLUDE_ASM(const s32, "A370", func_8007F408);
INCLUDE_ASM(const s32, "A370", func_8007F450);
INCLUDE_ASM(const s32, "A370", func_8007F47C);
INCLUDE_ASM(const s32, "A370", func_8007F4B0);
INCLUDE_ASM(const s32, "A370", func_8007F4E4);
INCLUDE_ASM(const s32, "A370", __file_read);
INCLUDE_ASM(const s32, "A370", __file_write);
void func_8007F640(void) { }
INCLUDE_ASM(const s32, "A370", func_8007F648);
INCLUDE_ASM(const s32, "A370", func_8007F844);

169
src/lha.c Normal file
View File

@ -0,0 +1,169 @@
#include "common.h"
void Unpack(s32, s32);
INCLUDE_ASM(const s32, "lha", func_80079F70);
INCLUDE_ASM(const s32, "lha", func_8007A070);
INCLUDE_ASM(const s32, "lha", Unpack);
/* ABE0 8007A7E0 */
u32 __read_u32_le(u8* arg0) {
return (arg0[0] << 24) | (arg0[1] << 16) | (arg0[2] << 8) | arg0[3];
}
INCLUDE_ASM(const s32, "lha", func_8007A80C);
INCLUDE_ASM(const s32, "lha", func_8007AB30);
INCLUDE_ASM(const s32, "lha", func_8007AB7C);
INCLUDE_ASM(const s32, "lha", func_8007ABAC);
extern char D_800AE038;
extern OSMesgQueue MQ_800AF320;
/* B030 8007AC30 */
void UnpackProc(void) {
struct {
/* 0x00 */ s32 field_0x0;
/* 0x04 */ OSMesgQueue* field_0x4;
/* 0x08 */ u8 field_0x8;
/* 0x09 */ u8 field_0x9[3];
/* 0x0C */ s32 field_0xc;
/* 0x10 */ s32 field_0x10;
} *sp10;
sp10 = NULL;
while(1) {
osRecvMesg(&MQ_800AF320, &sp10, 1);
if (sp10->field_0x8 == 1) {
Unpack(sp10->field_0x10, sp10->field_0xc);
osSendMesg(sp10->field_0x4, sp10, 1);
} else {
__some_logging(&D_800AE038, sp10->field_0x8);
}
}
}
INCLUDE_ASM(const s32, "lha", func_8007ACB0);
INCLUDE_ASM(const s32, "lha", func_8007AE9C);
INCLUDE_ASM(const s32, "lha", func_8007AF3C);
INCLUDE_ASM(const s32, "lha", func_8007AFE4);
INCLUDE_ASM(const s32, "lha", func_8007B710);
INCLUDE_ASM(const s32, "lha", func_8007B744);
INCLUDE_ASM(const s32, "lha", func_8007B7A8);
INCLUDE_ASM(const s32, "lha", func_8007B83C);
INCLUDE_ASM(const s32, "lha", can_log_crc_error);
INCLUDE_ASM(const s32, "lha", func_8007BA98);
INCLUDE_ASM(const s32, "lha", func_8007BB48);
/* BF90 8007BB90 */
void __log_lha_error(unsigned char* arg0, unsigned char* arg1) {
__some_logging(STR_LHa___s_s__s, STR_Error, arg0, arg1);
}
/* BFC0 8007BBC0 */
void __log_fatal_error_desc(char* arg0) {
__some_logging(STR_LHa___s_s__s, STR_Fatal_error, &STR_EMPTY, arg0);
}
/* BFF4 8007BBF4 */
void __log_fatal_error(char* arg0, char* arg1) {
__some_logging(STR_LHa___s_s__s, STR_Fatal_error, arg0, arg1);
}
INCLUDE_ASM(const s32, "lha", func_8007BC24);
INCLUDE_ASM(const s32, "lha", func_8007BF10);
INCLUDE_ASM(const s32, "lha", func_8007C204);
INCLUDE_ASM(const s32, "lha", func_8007C25C);
INCLUDE_ASM(const s32, "lha", func_8007C378);
INCLUDE_ASM(const s32, "lha", func_8007C438);
INCLUDE_ASM(const s32, "lha", func_8007C538);
INCLUDE_ASM(const s32, "lha", __logs_read_error);
INCLUDE_ASM(const s32, "lha", func_8007C74C);
INCLUDE_ASM(const s32, "lha", func_8007CAB8);
INCLUDE_ASM(const s32, "lha", func_8007CE48);
INCLUDE_ASM(const s32, "lha", func_8007D200);
INCLUDE_ASM(const s32, "lha", func_8007D594);
INCLUDE_ASM(const s32, "lha", func_8007D5B8);
INCLUDE_ASM(const s32, "lha", func_8007D7BC);
INCLUDE_ASM(const s32, "lha", func_8007D8A8);
INCLUDE_ASM(const s32, "lha", func_8007DBF4);
INCLUDE_ASM(const s32, "lha", func_8007DDF0);
INCLUDE_ASM(const s32, "lha", func_8007DFF0);
INCLUDE_ASM(const s32, "lha", func_8007E2F8);
INCLUDE_ASM(const s32, "lha", func_8007E698);
INCLUDE_ASM(const s32, "lha", func_8007E6DC);
INCLUDE_ASM(const s32, "lha", func_8007E800);
INCLUDE_ASM(const s32, "lha", func_8007E8F0);
INCLUDE_ASM(const s32, "lha", func_8007EE2C);
INCLUDE_ASM(const s32, "lha", func_8007F1A0);
INCLUDE_ASM(const s32, "lha", func_8007F1F8);
INCLUDE_ASM(const s32, "lha", func_8007F218);
INCLUDE_ASM(const s32, "lha", func_8007F234);
INCLUDE_ASM(const s32, "lha", func_8007F314);
INCLUDE_ASM(const s32, "lha", func_8007F334);
INCLUDE_ASM(const s32, "lha", func_8007F408);
INCLUDE_ASM(const s32, "lha", func_8007F450);
INCLUDE_ASM(const s32, "lha", func_8007F47C);
INCLUDE_ASM(const s32, "lha", func_8007F4B0);
INCLUDE_ASM(const s32, "lha", func_8007F4E4);
INCLUDE_ASM(const s32, "lha", __file_read);
INCLUDE_ASM(const s32, "lha", __file_write);
void func_8007F640(void) { }
INCLUDE_ASM(const s32, "lha", func_8007F648);
INCLUDE_ASM(const s32, "lha", func_8007F844);

View File

@ -22,6 +22,10 @@ NAME_SHEEN = 0x8018E9FC; // type:asciz size:0x6
CLASS_NAME_DRAGON_MASTER = 0x80190230; // type:asciz
__PTR_BIG_STRUCT = 0x80196AF8; // type:u32
__maybe_get_used_character_slots = 0x8016C048;
__SOME_OVERLAY_TABLE = 0x800A83C0; // size:0x28
__SOME_OVERLAY_TABLE_1 = 0x800A83E8; // size:0x28
__SOME_OVERLAY_TABLE_2 = 0x800A8410; // size:0x28
@ -364,7 +368,7 @@ Unpack = 0x8007A110;
__read_u32_le = 0x8007A7E0;
__load_song = 0x800EA488;
__load_song = 0x800EA488; // rom:0x3FA18
__SONG_VOLUME = 0x800EB2E0;
__SONG_SOURCE_START = 0x800EB4F0;
__SONG_SOURCE_END = 0x800EB4F4;