From d6f9c091cc3bec8425e9bcf93ce39f1d9b733c94 Mon Sep 17 00:00:00 2001 From: rozlette Date: Sat, 14 Dec 2019 03:30:11 -0600 Subject: [PATCH] Include all unnamed files in objects.py --- include/functions.h | 7 +- linker_scripts/code_script.txt | 2 +- tables/files_with_nonmatching.txt | 1 + tables/functions.py | 4 +- tables/objects.py | 171 +++++++++++++++++++++++++++--- tools/disasm.py | 2 +- 6 files changed, 165 insertions(+), 22 deletions(-) diff --git a/include/functions.h b/include/functions.h index 7a5a396851..701bdb4ddc 100644 --- a/include/functions.h +++ b/include/functions.h @@ -484,6 +484,7 @@ void func_80096410(void); // func_80096410 void func_800964D0(void); // func_800964D0 s32 __osSpSetPc(u32 data); // func_80096510 void func_80096540(void); // func_80096540 +// UNK_RET func_80096770(UNK_ARGS); void func_800967A0(void); // func_800967A0 u32 __osGetWatchLo(void); // func_80096810 void __osSetWatchLo(u32 value); // func_80096820 @@ -662,8 +663,8 @@ void EffectSS_LoadIceSmoke(UNK_TYPE4 uParm1, Vector3f* pzParm2, Vector3f* pzParm void EffectSS_LoadIceBlock(UNK_TYPE4 uParm1, Vector3f* pzParm2, Vector3f* pzParm3, Vector3f* pzParm4, UNK_TYPE2 param_5); // func_800B326C void func_800B32D0(ContextCommon* ctxt); // func_800B32D0 void func_800B3644(void); // func_800B3644 -void allocate_and_relocate_GameStateMetaInfo_overlay(GameStateMetaInfo* param_1); // func_800B3880 -void free_GameStateMetaInfo_overlay(GameStateMetaInfo* param_1); // func_800B39A4 +void DLF_LoadGameState(GameStateMetaInfo* gameState); // func_800B3880 +void DLF_FreeGameState(GameStateMetaInfo* gameState); // func_800B39A4 void Actor_PrintLists(ActorContext* actCtxt); // func_800B3AD0 void func_800B3BA4(ActorBC* iParm1, f32 uParm2, func_ptr* uParm3, f32 uParm4); // func_800B3BA4 void func_800B3BC8(Actor* iParm1, UNK_TYPE4 uParm2, GlobalContext* ctxt, UNK_PTR puParm4, Color* param_5); // func_800B3BC8 @@ -3731,6 +3732,8 @@ void func_8019AB40(void); // func_8019AB40 void func_8019AC10(void); // func_8019AC10 void func_8019ACEC(void); // func_8019ACEC void func_8019ADBC(void); // func_8019ADBC +// UNK_RET func_8019AE40(UNK_ARGS); +// UNK_RET func_8019AEC0(UNK_ARGS); void func_8019AF00(void); // func_8019AF00 void func_8019AF58(void); // func_8019AF58 void func_8019AFE8(void); // func_8019AFE8 diff --git a/linker_scripts/code_script.txt b/linker_scripts/code_script.txt index 71fcadd3e5..3e9b5ff63d 100644 --- a/linker_scripts/code_script.txt +++ b/linker_scripts/code_script.txt @@ -69,7 +69,7 @@ SECTIONS build/asm/visetmode.o(.text) build/asm/getconfig.o(.text) build/asm/setconfig.o(.text) - build/asm/boot_0x8008B6D0.o(.text) + build/asm/lookat.o(.text) build/asm/boot_0x8008B9F0.o(.text) build/src/libultra/os/stoptimer.o(.text) build/asm/probetlb.o(.text) diff --git a/tables/files_with_nonmatching.txt b/tables/files_with_nonmatching.txt index f5d74d1562..c720a0ab23 100644 --- a/tables/files_with_nonmatching.txt +++ b/tables/files_with_nonmatching.txt @@ -5,3 +5,4 @@ z_std_dma z_effect_soft_sprite z_lib z_actor +z_DLF diff --git a/tables/functions.py b/tables/functions.py index 1a9dd74abb..680589a3ad 100644 --- a/tables/functions.py +++ b/tables/functions.py @@ -652,8 +652,8 @@ 0x800B326C:("EffectSS_LoadIceBlock","void","UNK_TYPE4 uParm1, Vector3f* pzParm2, Vector3f* pzParm3, Vector3f* pzParm4, UNK_TYPE2 param_5"), 0x800B32D0:("func_800B32D0","void","ContextCommon* ctxt"), 0x800B3644:("func_800B3644","void","void"), - 0x800B3880:("allocate_and_relocate_GameStateMetaInfo_overlay","void","GameStateMetaInfo* param_1"), - 0x800B39A4:("free_GameStateMetaInfo_overlay","void","GameStateMetaInfo* param_1"), + 0x800B3880:("DLF_LoadGameState","void","GameStateMetaInfo* gameState"), + 0x800B39A4:("DLF_FreeGameState","void","GameStateMetaInfo* gameState"), 0x800B3AD0:("Actor_PrintLists","void","ActorContext* actCtxt"), 0x800B3BA4:("func_800B3BA4","void","ActorBC* iParm1, f32 uParm2, func_ptr* uParm3, f32 uParm4"), 0x800B3BC8:("func_800B3BC8","void","Actor* iParm1, UNK_TYPE4 uParm2, GlobalContext* ctxt, UNK_PTR puParm4, Color* param_5"), diff --git a/tables/objects.py b/tables/objects.py index 770b4d213d..11b9258c04 100644 --- a/tables/objects.py +++ b/tables/objects.py @@ -1,19 +1,36 @@ { + 0x80080060:"", 0x80080150:"idle", + 0x800805E0:"", 0x80080790:"z_std_dma", + 0x80080E30:"", 0x80081250:"", 0x80081820:"CIC6105", + 0x80081920:"", + 0x80081980:"", + 0x80083EB0:"", 0x80084940:"loadfragment", 0x80084DB0:"loadfragment2", + 0x80085130:"", + 0x80085320:"", + 0x80085570:"", 0x80086110:"mtxuty-cvt", + 0x80086280:"", + 0x800862E0:"", + 0x80086760:"", 0x80087160:"__osMalloc", + 0x80087830:"", + 0x80087900:"", 0x80087B00:"setcause", 0x80087B10:"sendmesg", + 0x80087C60:"", + 0x80087E00:"", 0x80087E10:"stopthread", 0x80087ED0:"recvmesg", 0x80088010:"setintmask", 0x800880B0:"getintmask", 0x80088110:"", + 0x800882A0:"", 0x80088350:"sinf", 0x80088510:"sins", 0x80088580:"sptask", @@ -21,80 +38,129 @@ 0x80088B00:"exceptasm", 0x80089430:"thread", 0x80089470:"destroythread", + 0x80089580:"", 0x80089630:"bzero", + 0x800896D0:"", 0x80089AA0:"siacs", 0x80089B60:"controller", 0x80089E40:"createthread", 0x80089F90:"contreaddata", + 0x8008A170:"", 0x8008A540:"virtualtophysical", 0x8008A5C0:"getsr", 0x8008A5D0:"setsr", 0x8008A5E0:"writebackdcache", 0x8008A660:"initialize", + 0x8008AA10:"", 0x8008AA50:"perspective", 0x8008AD70:"sirawdma", 0x8008ACE0:"sprawdma", + 0x8008AE20:"", 0x8008AE70:"virepeatline", 0x8008AEE0:"sirawread", 0x8008AF30:"getthreadid", 0x8008AF50:"sptaskyield", 0x8008AF70:"", + 0x8008B3C0:"", + 0x8008B600:"", 0x8008B650:"visetmode", 0x8008B6B0:"getconfig", 0x8008B6C0:"setconfig", + 0x8008B6D0:"lookat", + 0x8008B9F0:"", 0x8008BE70:"stoptimer", 0x8008BF60:"probetlb", 0x8008C020:"pimgr", 0x8008C190:"piacs", + 0x8008C260:"", + 0x8008C740:"", 0x8008D2C0:"getcount", + 0x8008D2E0:"", + 0x8008D350:"", + 0x8008D470:"", 0x8008D640:"seteventmesg", 0x8008D700:"sqrtf", + 0x8008D710:"", 0x8008D730:"contquery", 0x8008D7D0:"lookathil", 0x8008E050:"xprintf", + 0x8008ED30:"", 0x8008EDE0:"unmaptlball", 0x8008EE30:"pidma", + 0x8008EED0:"", + 0x8008F100:"", 0x8008F1A0:"string", 0x8008F240:"createmesgqueue", 0x8008F270:"invalicache", 0x8008F2F0:"invaldcache", 0x8008F3A0:"timerintr", + 0x8008F7D0:"", + 0x8008FA00:"", 0x8008FA30:"si", - 0x8008fAB0:"jammesg", - 0x8008fc00:"setthreadpri", - 0x8008fce0:"getthreadpri", - 0x8008fe60:"viswapbuf", + 0x8008FA60:"", + 0x8008FAB0:"jammesg", + 0x8008FC00:"setthreadpri", + 0x8008FCE0:"getthreadpri", + 0x8008FD00:"", + 0x8008FE60:"viswapbuf", + 0x8008FEB0:"", + 0x800900C0:"", 0x800902A0:"sptaskyielded", 0x80090300:"memcmp", 0x80090420:"gettime", + 0x800904B0:"", 0x80090680:"setglobalintmask", + 0x800906D0:"", + 0x80090810:"", + 0x80090900:"", + 0x80090AF0:"", + 0x80090C40:"", + 0x80090E70:"", + 0x800910A0:"", + 0x80091210:"", + 0x80091220:"", 0x80091280:"setcompare", 0x80091290:"getcompare", - 0x800912a0:"dpgetstat", - 0x800912b0:"dpsetstat", - 0x800912c0:"bcopy", + 0x800912A0:"dpgetstat", + 0x800912B0:"dpsetstat", + 0x800912C0:"bcopy", 0x800915D0:"resetglobalintmask", + 0x80091630:"", 0x800918A0:"ortho", 0x80091A60:"interrupt", 0x80091AF0:"vi", 0x80091C10:"viswapcontext", 0x80091F10:"pigetcmdq", - 0x80091f40:"cosf", + 0x80091F40:"cosf", + 0x800920B0:"", 0x80092100:"visetspecial", 0x80092260:"coss", 0x80092290:"settime", + 0x800922C0:"", 0x800923e0:"visetevent", + 0x80092440:"", + 0x80092730:"", + 0x80092920:"", + 0x80092A80:"", + 0x80092C00:"", 0x80092C80:"contsetch", - 0x80092ce0:"setfpccsr", - 0x80092cf0:"getfpccsr", - 0x80093ba0:"aigetlen", - 0x80093c00:"maptlbrdb", - 0x80093c60:"yieldthread", - 0x80093d90:"getcause", + 0x80092CE0:"setfpccsr", + 0x80092CF0:"getfpccsr", + 0x80092D00:"", + 0x80092EE0:"", + 0x800931F0:"", + 0x80093BA0:"aigetlen", + 0x80093BB0:"", + 0x80093C00:"maptlbrdb", + 0x80093C60:"yieldthread", + 0x80093CC0:"", + 0x80093D90:"getcause", + 0x80093DA0:"", + 0x80093FF0:"", 0x80094150:"settimer", 0x800942E0:"xldtob", 0x80094DF0:"ldiv", - 0x80094f80:"xlitob", + 0x80094F80:"xlitob", 0x80095270:"spgetstat", 0x80095280:"spsetstat", 0x80095220:"sirawwrite", @@ -102,11 +168,27 @@ 0x800955B0:"vigetcurrcontext", 0x800955C0:"writebackdcacheall", 0x800955F0:"getcurrfaultthread", + 0x80095600:"", + 0x80095740:"", 0x800957b0:"startthread", 0x80095900:"visetyscale", 0x80095950:"visetxscale", - 0x80095a60:"llcvt", + 0x80095A60:"llcvt", + 0x80095C70:"", + 0x80096360:"", + 0x80096410:"", + 0x800964D0:"", 0x80096510:"spsetpc", + 0x80096540:"", + 0x80096770:"", + 0x800967A0:"", + 0x80096810:"", + 0x80096820:"", + 0x80096880:"", + 0x800968B0:"", + 0x800968F0:"", + 0x80096930:"", + 0x800A5AC0:"", 0x800A5D00:"z_en_item00", 0x800A81F0:"z_eff_blure", 0x800AB5D0:"z_eff_shield_particle", @@ -119,15 +201,25 @@ 0x800B32D0:"flg_set", 0x800B3880:"z_DLF", 0x800B3AD0:"z_actor", + 0x800BF9A0:"", 0x800BFB80:"z_bgcheck", + 0x800CAAD0:"", 0x800CAE10:"", 0x800CB210:"z_camera", + 0x800E03A0:"", 0x800E0410:"z_collision_check", + 0x800E8EA0:"", + 0x800E9360:"", 0x800E93E0:"z_debug", 0x800E9470:"z_debug_display", 0x800E9C90:"z_debug_mode", 0x800EE320:"z_draw", 0x800EFE60:"z_eff_footmark", + 0x800F0390:"", + 0x800F05C0:"", + 0x800F07C0:"", + 0x800F1250:"", + 0x800F1460:"", 0x800F2620:"z_fcurve_data_skelanime", 0x800F2D30:"z_fireobj", 0x800F3940:"z_horse", @@ -138,44 +230,65 @@ 0x800FEC90:"z_lib", 0x801005C0:"z_lifemeter", 0x801019A0:"z_lights", + 0x80102C60:"", 0x80102E40:"z_map_disp", 0x801094A0:"z_map_data", 0x8010A000:"z_map_exp", 0x8010A760:"z_msgevent", + 0x8010C0C0:"", + 0x8010C230:"", 0x8010CB80:"z_parameter", 0x801224E0:"", + 0x80122660:"", 0x801226E0:"z_player_lib", 0x80129EF0:"z_prenmi", 0x8012A080:"", # probably z_quake 0x8012BC50:"z_rcp", 0x8012D510:"z_room", + 0x8012EC80:"", 0x8012F2E0:"z_scene", 0x801307C0:"z_scene_proc", 0x801322C0:"z_scene_table", + 0x801323D0:"", 0x801330E0:"z_skelanime", 0x80137970:"z_skin", 0x80138410:"z_skin_awb", + 0x80138BA0:"", + 0x8013A240:"", 0x8013A7C0:"z_sub_s", + 0x8013EC10:"", 0x8013EE60:"z_view", 0x80140260:"z_vimode", + 0x80140E80:"", 0x801418B0:"z_vismono", + 0x801420C0:"", 0x80142440:"z_vr_box", 0x801435A0:"z_vr_box_draw", 0x80143A10:"z_sram_NES", 0x80147520:"z_message", 0x801588D0:"z_message_nes", 0x8015E750:"z_message_staff", + 0x80160A90:"", 0x80160C00:"z_shrink_window", + 0x80161180:"", 0x80163700:"z_kaleido_manager", + 0x801639A0:"", + 0x80163C90:"", 0x80163DC0:"z_fbdemo", + 0x801647D0:"", 0x80164AF0:"z_fbdemo_circle", 0x801651B0:"z_overlay", 0x80165460:"z_play", 0x8016AC10:"z_play_hireso", 0x8016FCF0:"PreRender", + 0x801727F0:"", + 0x80172A00:"", + 0x80172BC0:"", + 0x80172C30:"", 0x80173130:"game", 0x80173BF0:"gamealloc", 0x80173D30:"graph", + 0x80174A40:"", 0x80174AA0:"listalloc", 0x80174BF0:"main", 0x80174F10:"padmgr", @@ -184,10 +297,30 @@ 0x80178750:"sys_cmpdma", 0x80178F30:"sys_initial_check", 0x80179300:"", + 0x801795F0:"", 0x8017FEB0:"", 0x80180160:"sys_matrix", + 0x80182CE0:"", + 0x80183070:"", 0x801830A0:"", 0x801857C0:"sys_flashrom", + 0x80185F90:"", + 0x801877D0:"", + 0x8018B0F0:"", + 0x8018EB60:"", + 0x80192BE0:"", + 0x80194710:"", + 0x80194930:"", + 0x801974D0:"", + 0x8019AE40:"", + 0x8019AEC0:"", + 0x8019AF00:"", + 0x801A51F0:"", + 0x801A5BD0:"", + 0x801A7B10:"", + 0x801AA020:"", + 0x801AA610:"", + 0x801AAAA0:"", 0x801AAAB0:"code_data", 0x801DBDF0:"code_rodata_z_en_item00", 0x801DC080:"code_rodata_z_eff_blure", @@ -265,4 +398,10 @@ 0x801E1050:"code_rodata_0x801A5BD0", 0x801E1070:"code_rodata_0x801A7B10", 0x801E1120:"code_rodata_0x801AA610", + + 0x80807940:"", + 0x8080BC20:"", + + 0x8081D240:"", + 0x8081FF80:"", } diff --git a/tools/disasm.py b/tools/disasm.py index e14b82fb5f..6a33593bed 100644 --- a/tools/disasm.py +++ b/tools/disasm.py @@ -379,7 +379,7 @@ class Disassembler: if not self.is_in_data_or_undef(addr): self.disassemble_inst(inst, addr, i, file) - if inst == 0x03E00008: # jr $ra + if inst == 0x03E00008 and self.auto_analysis: # jr $ra next_index = i+2 if file.get_inst(next_index) == 0: # nop while file.get_inst(next_index) == 0: