Decompile most effect files in "code" (#144)

- `z_effect`: Matched and essentially all documented.
- `z_eff_spark.c`: Decompiled (1 non matching left) and mostly documented.
- `z_eff_shield_particle.c`: Matched and mostly documented.
- `z_eff_blure.c`: Decompiled (5 non matchings left) and partially documented.
- `z_effect_soft_sprite.c`: Matched and mostly documented.
- `z_eff_ss_dead.c`: Matched but not documented.
- `z_effect_soft_sprite_dlftbls.c`: "Matched" (only data, contains the effect ss overlay table).
- `z_effect_soft_sprite_old_init.c`: Not decompiled, but functions are categorized by effect ss overlay. And they should be decompiled at the same time as their corresponding effect ss in the future.

Other changes:
- Added a lot of types/enums to `z64effect.h`and moved+renamed some structs from `z64.h` to this header
- Added effect ss overlay segments to `segment_symbols.h` and effect ss init vars to `initvars.h`
- Added a macro called `VTX_T` to generate a `Vtx_t` in the same style as `VTX`
- Fixed `flg_set.c` .bss to be in the right file
- Removed `tools/overlayhelpers/batchdisasm` since it's no longer relevant
- Removed unused leftover asm from recent PRs
This commit is contained in:
Roman971
2020-05-18 20:24:00 +02:00
committed by GitHub
parent 785011c33c
commit e29b77919b
227 changed files with 3739 additions and 8132 deletions
@@ -1,17 +0,0 @@
import os
overlayListFile = open("overlays.cfg")
overlayListLines = overlayListFile.readlines()
for line in overlayListLines:
overlayName = line.split(' ')[0]
overlayVRAM = int(line.split(' ')[1], 16)
#print(overlayName)
overlaySize = os.path.getsize("../../../baserom/" + overlayName)
execStr = "./mipsdisasm -o output/%s.s ../../../baserom/%s 0x%x:0x%x -v -p" % (overlayName, overlayName, overlayVRAM, overlayVRAM + overlaySize)
print(execStr)
os.system(execStr)
@@ -1,133 +0,0 @@
import os
import struct
def Main():
symbolFile = open("symbols.txt")
symbolList = symbolFile.readlines()
symbolFile.close()
asmFiles = os.listdir("output")
for fileName in asmFiles:
print("Processing " + fileName)
asmFile = open("output/" + fileName)
asmText = asmFile.read()
for symbolLine in symbolList:
asmText = asmText.replace(symbolLine.split(' ')[0], symbolLine.split(' ')[1])
asmText = ".include \"macro.inc\"\n\n" + asmText
asmText = FixIncBin(fileName, asmText)
asmText = FixMove(asmText)
asmText = FixInvalidOpcodes(asmText)
outputFile = open("output2/" + fileName, "w+")
outputFile.write(asmText)
outputFile.close()
asmFile.close()
def FixInvalidOpcodes(asmText):
asmLines = asmText.split('\n')
i = 0
while i < len(asmLines):
asmLine = asmLines[i]
if (asmLine.find("Because of invalid n64 opcode") != -1):
nextLine = asmLines[i + 1]
if (nextLine.find("/*") != -1):
asmLines.insert(i + 1, "/*" + nextLine.split("/*")[1])
asmLines[i + 1] = nextLine.split("*/")[0] + "*/ .word 0x" + nextLine.split(" ")[3]
i += 1
output = ""
for i in range(len(asmLines)):
output += asmLines[i] + "\n"
return output
def FixMove(asmText):
asmLines = asmText.split('\n')
i = 0
while i < len(asmLines):
asmLine = asmLines[i]
if (asmLine.find(" move $") != -1 and asmLine.split("/*")[1].split(" ")[3].endswith("21")):
registers = asmLine.split("move")[1]
asmLines[i] = asmLine.split("*/")[0] + "*/ addu %s, $zero" % (registers)
i += 1
output = ""
for i in range(len(asmLines)):
output += asmLines[i] + "\n"
return output
def FixIncBin(fileName, asmText):
asmLines = asmText.split('\n')
ovlFile = open("../../../baserom/" + fileName.split('.s')[0], "rb")
ovlData = bytearray(ovlFile.read())
ovlFile.close()
headerOffset = struct.unpack_from(">I", ovlData, offset = len(ovlData) - 4)[0]
headerAddress = len(ovlData) - headerOffset
dataSectionAddress = struct.unpack_from(">I", ovlData, offset = headerAddress + 4)[0]
#print(dataSectionAddress)
fixLineIndex = -1
fixLineAddress = 0
fixLineFileAddress = 0
i = 0
while i < len(asmLines):
asmLine = asmLines[i]
if ((asmLine.startswith("D_") and asmLine.endswith(":")) or (i == len(asmLines) - 1 and fixLineIndex != -1)):
if (fixLineIndex == -1):
if (asmLines[i + 1].startswith(".")):
i += 1
if (asmLines[i + 1].split(" ")[3].startswith("27BD") == False):
fixLineFileAddress = int(asmLines[i + 1].split(" ")[1], 16)
if (fixLineFileAddress < dataSectionAddress):
i += 1
continue
fixLineAddress = int(asmLine.split("D_")[1].split(":")[0], 16)
fixLineIndex = i + 1
else:
if (i == len(asmLines) - 1):
ovlSize = os.path.getsize("../../../baserom/" + fileName.split('.s')[0])
dataSize = ovlSize - fixLineFileAddress
asmLines[fixLineIndex] = ".incbin \"baserom/%s\", 0x%X, 0x%X" % (fileName.split('.s')[0], fixLineFileAddress, dataSize)
del asmLines[fixLineIndex + 1 : i]
else:
currentAddress = int(asmLine.split("D_")[1].split(":")[0], 16)
dataSize = currentAddress - fixLineAddress
del asmLines[fixLineIndex : i - 1]
asmLines[fixLineIndex] = ".incbin \"baserom/%s\", 0x%X, 0x%X" % (fileName.split('.s')[0], fixLineFileAddress, dataSize)
i -= (i - fixLineIndex)
fixLineIndex = -1
i += 1
output = ""
for i in range(len(asmLines)):
output += asmLines[i] + "\n"
return output
Main()
@@ -1,13 +0,0 @@
outFile = open("output.cfg", "w+")
inFile = open("../../../docs/notes/out.csv")
lines = inFile.readlines()
for line in lines:
name = line.split(',')[1]
vramAddress = line.split(',')[2]
if (name.startswith("ovl_")):
outFile.write(name + " " + vramAddress)
outFile.close()
Binary file not shown.
@@ -1,469 +0,0 @@
ovl_title 80800000
ovl_select 80800B90
ovl_opening 80803BF0
ovl_file_choose 80803D40
ovl_kaleido_scope 80813820
ovl_player_actor 80832210
ovl_map_mark_data 80858B70
ovl_En_Test 8085F650
ovl_Arms_Hook 80864F00
ovl_Arrow_Fire 80865D10
ovl_Arrow_Ice 80867CD0
ovl_Arrow_Light 80869CB0
ovl_Bg_Bdan_Objects 8086BCA0
ovl_Bg_Bdan_Switch 8086D010
ovl_Bg_Bom_Guard 8086E550
ovl_Bg_Bombwall 8086E7D0
ovl_Bg_Bowl_Wall 8086F160
ovl_Bg_Breakwall 8086FBE0
ovl_Bg_Ddan_Jd 80870AB0
ovl_Bg_Ddan_Kd 808710F0
ovl_Bg_Dodoago 80871A00
ovl_Bg_Dy_Yoseizo 80872830
ovl_Bg_Ganon_Otyuka 80875920
ovl_Bg_Gate_Shutter 80878160
ovl_Bg_Gjyo_Bridge 808786C0
ovl_Bg_Gnd_Darkmeiro 80878C30
ovl_Bg_Gnd_Firemeiro 808794C0
ovl_Bg_Gnd_Iceblock 80879AA0
ovl_Bg_Gnd_Nisekabe 8087AC50
ovl_Bg_Gnd_Soulmeiro 8087ADC0
ovl_Bg_Haka 8087B6B0
ovl_Bg_Haka_Gate 8087BDF0
ovl_Bg_Haka_Huta 8087CFC0
ovl_Bg_Haka_Megane 8087DA40
ovl_Bg_Haka_MeganeBG 8087DE30
ovl_Bg_Haka_Sgami 8087E4E0
ovl_Bg_Haka_Ship 8087F100
ovl_Bg_Haka_Trap 8087FCA0
ovl_Bg_Haka_Tubo 80881250
ovl_Bg_Haka_Water 80881D00
ovl_Bg_Haka_Zou 808825C0
ovl_Bg_Heavy_Block 80883790
ovl_Bg_Hidan_Curtain 808851A0
ovl_Bg_Hidan_Dalm 80885E20
ovl_Bg_Hidan_Firewall 80886660
ovl_Bg_Hidan_Fslift 80886E40
ovl_Bg_Hidan_Fwbig 808872F0
ovl_Bg_Hidan_Hamstep 80888040
ovl_Bg_Hidan_Hrock 80889130
ovl_Bg_Hidan_Kousi 80889960
ovl_Bg_Hidan_Kowarerukabe 8088A020
ovl_Bg_Hidan_Rock 8088B080
ovl_Bg_Hidan_Rsekizou 8088C200
ovl_Bg_Hidan_Sekizou 8088CEC0
ovl_Bg_Hidan_Sima 8088E3D0
ovl_Bg_Hidan_Syoku 8088F3C0
ovl_Bg_Ice_Objects 8088F810
ovl_Bg_Ice_Shelter 80890740
ovl_Bg_Ice_Shutter 80891AC0
ovl_Bg_Ice_Turara 80891F20
ovl_Bg_Ingate 80892740
ovl_Bg_Jya_1flift 80892B60
ovl_Bg_Jya_Amishutter 808932C0
ovl_Bg_Jya_Bigmirror 808936E0
ovl_Bg_Jya_Block 808941A0
ovl_Bg_Jya_Bombchuiwa 808944A0
ovl_Bg_Jya_Bombiwa 808951A0
ovl_Bg_Jya_Cobra 808958F0
ovl_Bg_Jya_Goroiwa 80897970
ovl_Bg_Jya_Haheniron 808980C0
ovl_Bg_Jya_Ironobj 808988A0
ovl_Bg_Jya_Kanaami 80899740
ovl_Bg_Jya_Lift 80899BA0
ovl_Bg_Jya_Megami 8089A130
ovl_Bg_Jya_Zurerukabe 8089B440
ovl_Bg_Menkuri_Eye 8089BC70
ovl_Bg_Menkuri_Kaiten 8089C1B0
ovl_Bg_Menkuri_Nisekabe 8089C330
ovl_Bg_Mizu_Bwall 8089C480
ovl_Bg_Mizu_Movebg 8089DC30
ovl_Bg_Mizu_Shutter 8089EE50
ovl_Bg_Mizu_Uzu 8089F6E0
ovl_Bg_Mizu_Water 8089F8B0
ovl_Bg_Mjin 808A0780
ovl_Bg_Mori_Bigst 808A0BC0
ovl_Bg_Mori_Elevator 808A1800
ovl_Bg_Mori_Hashigo 808A2560
ovl_Bg_Mori_Hashira4 808A3060
ovl_Bg_Mori_Hineri 808A37D0
ovl_Bg_Mori_Idomizu 808A4640
ovl_Bg_Mori_Kaitenkabe 808A4DC0
ovl_Bg_Mori_Rakkatenjo 808A5570
ovl_Bg_Po_Event 808A6210
ovl_Bg_Po_Syokudai 808A80B0
ovl_Bg_Pushbox 808A8AE0
ovl_Bg_Relay_Objects 808A8E50
ovl_Bg_Spot00_Break 808A95E0
ovl_Bg_Spot00_Hanebasi 808A9780
ovl_Bg_Spot01_Fusya 808AA9C0
ovl_Bg_Spot01_Idohashira 808AACE0
ovl_Bg_Spot01_Idomizu 808ABAE0
ovl_Bg_Spot01_Idosoko 808ABE80
ovl_Bg_Spot01_Objects2 808AC140
ovl_Bg_Spot02_Objects 808AC660
ovl_Bg_Spot03_Taki 808ADAE0
ovl_Bg_Spot05_Soko 808AE470
ovl_Bg_Spot06_Objects 808AE780
ovl_Bg_Spot07_Taki 808AFC30
ovl_Bg_Spot08_Bakudankabe 808B02D0
ovl_Bg_Spot08_Iceblock 808B0960
ovl_Bg_Spot09_Obj 808B1AE0
ovl_Bg_Spot11_Bakudankabe 808B2180
ovl_Bg_Spot11_Oasis 808B27F0
ovl_Bg_Spot12_Gate 808B2F90
ovl_Bg_Spot12_Saku 808B3420
ovl_Bg_Spot15_Rrbox 808B3960
ovl_Bg_Spot15_Saku 808B4850
ovl_Bg_Spot16_Bombstone 808B4C30
ovl_Bg_Spot16_Doughnut 808B6440
ovl_Bg_Spot17_Bakudankabe 808B6BC0
ovl_Bg_Spot17_Funen 808B7400
ovl_Bg_Spot18_Basket 808B7710
ovl_Bg_Spot18_Futa 808B8780
ovl_Bg_Spot18_Obj 808B8910
ovl_Bg_Spot18_Shutter 808B93D0
ovl_Bg_Sst_Floor 808B9910
ovl_Bg_Toki_Hikari 808B9F00
ovl_Bg_Toki_Swd 808BAE40
ovl_Bg_Treemouth 808BC500
ovl_Bg_Umajump 808BDBE0
ovl_Bg_Vb_Sima 808BDD60
ovl_Bg_Ydan_Hasi 808BE500
ovl_Bg_Ydan_Maruta 808BED40
ovl_Bg_Ydan_Sp 808BF410
ovl_Bg_Zg 808C0C20
ovl_Boss_Dodongo 808C1190
ovl_Boss_Fd 808CADC0
ovl_Boss_Fd2 808D2670
ovl_Boss_Ganon 808D6870
ovl_Boss_Ganon2 808FCF40
ovl_Boss_Ganondrof 80910640
ovl_Boss_Goma 80915A10
ovl_Boss_Mo 8091BB00
ovl_Boss_Sst 8092C5D0
ovl_Boss_Tw 80938CD0
ovl_Boss_Va 8094F2C0
ovl_Demo_6K 80966950
ovl_Demo_Du 80969AD0
ovl_Demo_Ec 8096D4B0
ovl_Demo_Effect 80970F50
ovl_Demo_Ext 80977390
ovl_Demo_Geff 80977E40
ovl_Demo_Gj 80978930
ovl_Demo_Go 8097C870
ovl_Demo_Gt 8097D670
ovl_Demo_Ik 80983300
ovl_Demo_Im 80984BE0
ovl_Demo_Kankyo 80988E80
ovl_Demo_Kekkai 8098CFD0
ovl_Demo_Sa 8098E460
ovl_Demo_Shd 80991230
ovl_Demo_Tre_Lgt 809936C0
ovl_Door_Ana 80993EF0
ovl_Door_Gerudo 809945E0
ovl_Door_Killer 80994C50
ovl_Door_Shutter 809962A0
ovl_Door_Toki 80998620
ovl_Door_Warp1 80998780
ovl_Efc_Erupc 8099CCB0
ovl_Eff_Dust 8099D8D0
ovl_Effect_Ss_Blast 8099EDB0
ovl_Effect_Ss_Bomb 8099F1B0
ovl_Effect_Ss_Bomb2 8099F650
ovl_Effect_Ss_Bubble 809A0040
ovl_Effect_Ss_D_Fire 809A0550
ovl_Effect_Ss_Dead_Db 809A0AA0
ovl_Effect_Ss_Dead_Dd 809A0FE0
ovl_Effect_Ss_Dead_Ds 809A1610
ovl_Effect_Ss_Dead_Sound 809A1B30
ovl_Effect_Ss_Dt_Bubble 809A1CB0
ovl_Effect_Ss_Dust 809A22D0
ovl_Effect_Ss_En_Fire 809A2B60
ovl_Effect_Ss_En_Ice 809A3330
ovl_Effect_Ss_Extra 809A3CC0
ovl_Effect_Ss_Fcircle 809A4120
ovl_Effect_Ss_Fhg_Flash 809A4660
ovl_Effect_Ss_Fire_Tail 809A5740
ovl_Effect_Ss_G_Fire 809A5ED0
ovl_Effect_Ss_G_Magma 809A6150
ovl_Effect_Ss_G_Magma2 809A63A0
ovl_Effect_Ss_G_Ripple 809A6960
ovl_Effect_Ss_G_Spk 809A6F30
ovl_Effect_Ss_G_Splash 809A7540
ovl_Effect_Ss_Hahen 809A79F0
ovl_Effect_Ss_HitMark 809A8150
ovl_Effect_Ss_Ice_Piece 809A8700
ovl_Effect_Ss_Ice_Smoke 809A8BF0
ovl_Effect_Ss_K_Fire 809A91B0
ovl_Effect_Ss_Kakera 809A9680
ovl_Effect_Ss_KiraKira 809AA810
ovl_Effect_Ss_Lightning 809AAEF0
ovl_Effect_Ss_Sibuki 809AB630
ovl_Effect_Ss_Sibuki2 809ABD60
ovl_Effect_Ss_Solder_Srch_Ball 809AC130
ovl_Effect_Ss_Stick 809AC2D0
ovl_Effect_Ss_Stone1 809AC700
ovl_Elf_Msg 809ACB20
ovl_Elf_Msg2 809AD700
ovl_En_Am 809ADF20
ovl_En_Ani 809B0370
ovl_En_Anubice 809B1120
ovl_En_Anubice_Fire 809B25A0
ovl_En_Anubice_Tag 809B3400
ovl_En_Arow_Trap 809B37D0
ovl_En_Arrow 809B3920
ovl_En_Attack_Niw 809B5100
ovl_En_Ba 809B6350
ovl_En_Bb 809B82E0
ovl_En_Bdfire 809BC030
ovl_En_Bigokuta 809BCC60
ovl_En_Bili 809BF8A0
ovl_En_Bird 809C1BB0
ovl_En_Blkobj 809C2060
ovl_En_Bom 809C26D0
ovl_En_Bom_Bowl_Man 809C3630
ovl_En_Bom_Bowl_Pit 809C4E40
ovl_En_Bom_Chu 809C5830
ovl_En_Bombf 809C6F60
ovl_En_Boom 809C8480
ovl_En_Box 809C8DC0
ovl_En_Brob 809CAB10
ovl_En_Bubble 809CBC00
ovl_En_Butte 809CD070
ovl_En_Bw 809CE6E0
ovl_En_Bx 809D1AE0
ovl_En_Changer 809D2690
ovl_En_Clear_Tag 809D35B0
ovl_En_Cow 809DEE00
ovl_En_Crow 809E0240
ovl_En_Cs 809E18B0
ovl_En_Daiku 809E2B30
ovl_En_Daiku_Kakariko 809E4320
ovl_En_Dekubaba 809E57D0
ovl_En_Dekunuts 809E9560
ovl_En_Dh 809EAD40
ovl_En_Dha 809EC880
ovl_En_Diving_Game 809ED870
ovl_En_Dns 809EF350
ovl_En_Dnt_Demo 809F08E0
ovl_En_Dnt_Jiji 809F1AE0
ovl_En_Dnt_Nomal 809F32C0
ovl_En_Dodojr 809F63C0
ovl_En_Dodongo 809F8250
ovl_En_Dog 809FAFD0
ovl_En_Door 809FC1D0
ovl_En_Ds 809FD030
ovl_En_Du 809FDC30
ovl_En_Dy_Extra 809FF6F0
ovl_En_Eg 809FFD90
ovl_En_Eiyer 809FFFA0
ovl_En_Elf 80A01C30
ovl_En_Encount1 80A06720
ovl_En_Encount2 80A07990
ovl_En_Ex_Item 80A08EA0
ovl_En_Ex_Ruppy 80A0A410
ovl_En_Fd 80A0B6C0
ovl_En_Fd_Fire 80A0E4B0
ovl_En_Fhg_Fire 80A0F260
ovl_En_Fire_Rock 80A11C20
ovl_En_Firefly 80A13070
ovl_En_Fish 80A15280
ovl_En_Floormas 80A17510
ovl_En_Fr 80A1A9A0
ovl_En_Fu 80A1D810
ovl_En_Fw 80A1E5A0
ovl_En_Fz 80A1FDC0
ovl_En_G_Switch 80A21EC0
ovl_En_Ganon_Mant 80A23D60
ovl_En_Ganon_Organ 80A28000
ovl_En_Gb 80A2F180
ovl_En_Ge1 80A30970
ovl_En_Ge2 80A32BD0
ovl_En_Ge3 80A34620
ovl_En_GeldB 80A35310
ovl_En_GirlA 80A3A750
ovl_En_Gm 80A3D6E0
ovl_En_Go 80A3E570
ovl_En_Go2 80A42D30
ovl_En_Goma 80A48EC0
ovl_En_Goroiwa 80A4BCA0
ovl_En_Gs 80A4E320
ovl_En_Guest 80A50220
ovl_En_Hata 80A50D50
ovl_En_Heishi1 80A512D0
ovl_En_Heishi2 80A52EA0
ovl_En_Heishi3 80A55640
ovl_En_Heishi4 80A560D0
ovl_En_Hintnuts 80A57200
ovl_En_Holl 80A58C10
ovl_En_Honotrap 80A59C30
ovl_En_Horse 80A5B2F0
ovl_En_Horse_Game_Check 80A67550
ovl_En_Horse_Ganon 80A68660
ovl_En_Horse_Link_Child 80A693D0
ovl_En_Horse_Normal 80A6B250
ovl_En_Horse_Zelda 80A6D8D0
ovl_En_Hs 80A6E3A0
ovl_En_Hs2 80A6EFA0
ovl_En_Hy 80A6F5B0
ovl_En_Ice_Hono 80A72FF0
ovl_En_Ik 80A74310
ovl_En_In 80A78FB0
ovl_En_Insect 80A7BE20
ovl_En_Ishi 80A7E460
ovl_En_It 80A87680
ovl_En_Jj 80A87800
ovl_En_Js 80A88E10
ovl_En_Jsjutan 80A897A0
ovl_En_Kakasi 80A8F170
ovl_En_Kakasi2 80A90010
ovl_En_Kakasi3 80A90D20
ovl_En_Kanban 80A91FA0
ovl_En_Karebaba 80A95350
ovl_En_Ko 80A96DB0
ovl_En_Kusa 80A9AFA0
ovl_En_Kz 80A9C550
ovl_En_Light 80A9DB40
ovl_En_Lightbox 80A9E9D0
ovl_En_M_Fire1 80A9EE40
ovl_En_M_Thunder 80A9EFE0
ovl_En_Ma1 80AA0690
ovl_En_Ma2 80AA19A0
ovl_En_Ma3 80AA2AA0
ovl_En_Mag 80AA3B00
ovl_En_Mb 80AA6050
ovl_En_Md 80AAA250
ovl_En_Mk 80AAC900
ovl_En_Mm 80AAD770
ovl_En_Mm2 80AAEE50
ovl_En_Ms 80AAFD20
ovl_En_Mu 80AB0420
ovl_En_Nb 80AB0D90
ovl_En_Niw 80AB5780
ovl_En_Niw_Girl 80AB8F80
ovl_En_Niw_Lady 80AB9C40
ovl_En_Nutsball 80ABBA50
ovl_En_Nwc 80ABC0E0
ovl_En_Ny 80ABCBB0
ovl_En_OE2 80ABE6A0
ovl_En_Okarina_Effect 80ABE760
ovl_En_Okarina_Tag 80ABED20
ovl_En_Okuta 80AC0660
ovl_En_Ossan 80AC2CA0
ovl_En_Owl 80AC9F20
ovl_En_Part 80ACDDD0
ovl_En_Peehat 80ACF4A0
ovl_En_Po_Desert 80AD2CB0
ovl_En_Po_Field 80AD3B00
ovl_En_Po_Relay 80AD7740
ovl_En_Po_Sisters 80AD8F90
ovl_En_Poh 80ADDD50
ovl_En_Pu_box 80AE20C0
ovl_En_Rd 80AE2400
ovl_En_Reeba 80AE4CD0
ovl_En_River_Sound 80AE6930
ovl_En_Rl 80AE72B0
ovl_En_Rr 80AE8440
ovl_En_Ru1 80AEAC10
ovl_En_Ru2 80AF2550
ovl_En_Sa 80AF5560
ovl_En_Sb 80AF77F0
ovl_En_Scene_Change 80AF8C70
ovl_En_Sda 80AF8E20
ovl_En_Shopnuts 80AFA720
ovl_En_Si 80AFB690
ovl_En_Siofuki 80AFBB80
ovl_En_Skb 80AFC9A0
ovl_En_Skj 80AFE2B0
ovl_En_Skjneedle 80B01EB0
ovl_En_Ssh 80B02270
ovl_En_St 80B04890
ovl_En_Sth 80B07540
ovl_En_Stream 80B0B7A0
ovl_En_Sw 80B0BDB0
ovl_En_Syateki_Itm 80B0F6B0
ovl_En_Syateki_Man 80B10870
ovl_En_Syateki_Niw 80B118F0
ovl_En_Ta 80B13AA0
ovl_En_Takara_Man 80B17560
ovl_En_Tana 80B17F30
ovl_En_Tg 80B18360
ovl_En_Tite 80B18A80
ovl_En_Tk 80B1B900
ovl_En_Torch 80B1D890
ovl_En_Torch2 80B1D980
ovl_En_Toryo 80B20170
ovl_En_Tp 80B20DE0
ovl_En_Tr 80B22CF0
ovl_En_Trap 80B24660
ovl_En_Tubo_Trap 80B258F0
ovl_En_Vali 80B266B0
ovl_En_Vase 80B28EB0
ovl_En_Vb_Ball 80B28FA0
ovl_En_Viewer 80B2A200
ovl_En_Vm 80B2D460
ovl_En_Wall_Tubo 80B2EDF0
ovl_En_Wallmas 80B2F520
ovl_En_Weather_Tag 80B31020
ovl_En_Weiyer 80B32290
ovl_En_Wf 80B33CB0
ovl_En_Wonder_Item 80B38060
ovl_En_Wonder_Talk 80B390F0
ovl_En_Wonder_Talk2 80B39ED0
ovl_En_Wood02 80B3AF70
ovl_En_Xc 80B3C1E0
ovl_En_Yabusame_Mark 80B42DC0
ovl_En_Yukabyun 80B439C0
ovl_En_Zf 80B44050
ovl_En_Zl1 80B4AB40
ovl_En_Zl2 80B4E990
ovl_En_Zl3 80B533B0
ovl_En_Zl4 80B5B7B0
ovl_En_Zo 80B60220
ovl_En_fHG 80B629C0
ovl_End_Title 80B65720
ovl_Fishing 80B699A0
ovl_Item_B_Heart 80B85150
ovl_Item_Etcetera 80B855F0
ovl_Item_Inbox 80B85FE0
ovl_Item_Ocarina 80B86130
ovl_Item_Shield 80B86920
ovl_Magic_Dark 80B873D0
ovl_Magic_Fire 80B88D70
ovl_Magic_Wind 80B8B100
ovl_Mir_Ray 80B8D050
ovl_Obj_Bean 80B8EA80
ovl_Obj_Blockstop 80B91460
ovl_Obj_Bombiwa 80B915F0
ovl_Obj_Comb 80B91B60
ovl_Obj_Dekujr 80B92420
ovl_Obj_Elevator 80B92B00
ovl_Obj_Hamishi 80B92F90
ovl_Obj_Hana 80B93860
ovl_Obj_Hsblock 80B93B60
ovl_Obj_Ice_Poly 80B94260
ovl_Obj_Kibako 80B94CA0
ovl_Obj_Kibako2 80B959D0
ovl_Obj_Lift 80B960D0
ovl_Obj_Lightswitch 80B96BA0
ovl_Obj_Makekinsuta 80B98270
ovl_Obj_Makeoshihiki 80B98510
ovl_Obj_Mure 80B98AA0
ovl_Obj_Mure2 80B99F40
ovl_Obj_Mure3 80B9A9D0
ovl_Obj_Oshihiki 80B9B180
ovl_Obj_Roomtimer 80B9CFD0
ovl_Obj_Switch 80B9D210
ovl_Obj_Syokudai 80B9F2B0
ovl_Obj_Timeblock 80B9FFA0
ovl_Obj_Tsubo 80BA0D60
ovl_Obj_Warp2block 80BA1DF0
ovl_Object_Kankyo 80BA2AA0
ovl_Oceff_Spot 80BA6070
ovl_Oceff_Storm 80BA70E0
ovl_Oceff_Wipe 80BA8D90
ovl_Oceff_Wipe2 80BA9BB0
ovl_Oceff_Wipe3 80BAB3F0
ovl_Oceff_Wipe4 80BACC10
ovl_Shot_Sun 80BADCC0
@@ -1 +0,0 @@
ovl_Bg_Ingate 80892740
@@ -1,204 +0,0 @@
func_80001AA0 DmaMgr_SendRequest1
func_80001FF0 __assert
func_80002130 osSyncPrintf
func_80002E10 LogUtils_LogThreadId
func_80004450 bzero
func_800061D0 osCreateMesgQueue
func_8001F548 Item_DropCollectible
func_8001F77C Item_DropCollectible2
func_8001F940 Item_DropCollectibleRandom
func_80026CD4 Effect_Add
func_800274E0 Effect_SS_Delete
func_80029E8C Effect_SpawnFragment
func_8002B1E0 ActorShape_Init
func_8002B5EC ActorShadow_DrawFunc_Circle
func_8002B614 ActorShadow_DrawFunc_WhiteCircle
func_8002B644 ActorShadow_DrawFunc_Squiggly
func_8002B8C4 ActorShadow_DrawFunc_Teardrop
func_8002CB40 Flags_GetSwitch
func_8002CB74 Flags_SetSwitch
func_8002CBB4 Flags_UnsetSwitch
func_8002CBF8 Flags_GetUnknown
func_8002CC2C Flags_SetUnknown
func_8002CC6C Flags_UnsetUnknown
func_8002CCB0 Flags_GetTreasure
func_8002CCC4 Flags_SetTreasure
func_8002CCDC Flags_GetClear
func_8002CCF0 Flags_SetClear
func_8002CD08 Flags_UnsetClear
func_8002CD24 Flags_GetTempClear
func_8002CD38 Flags_SetTempClear
func_8002CD50 Flags_UnsetTempClear
func_8002CD6C Flags_GetCollectible
func_8002CDA0 Flags_SetCollectible
func_8002CE00 TitleCard_InitBossName
func_8002CE40 TitleCard_InitPlaceName
func_8002D570 Actor_Kill
func_8002D5B8 Actor_SetHeight
func_8002D62C Actor_SetScale
func_8002D644 Actor_SetObjectDependency
func_8002D8E0 Actor_MoveForward
func_8002DC74 Actor_HeightDiff
func_8002F828 Audio_PlayActorSound2
func_80031F50 Actor_Spawn
func_80032458 Actor_SpawnAttached
func_80032C3C Actor_Find
func_80033748 Actor_ChangeType
func_80033940 Actor_SetTextWithPrefix
func_80033EF8 Math_Rand_ZeroFloat
func_80033F20 Math_Rand_CenteredFloat
func_80035260 Gfx_DrawDListOpa
func_80035324 Gfx_DrawDListXlu
func_800353F4 Actor_FindNearby
func_80035628 Actor_ApplyDamage
func_80035B4C Flags_GetEventChkInf
func_80035B74 Flags_SetEventChkInf
func_8003EA74 DynaPolyInfo_RegisterActor
func_8003EB84 DynaPolyInfo_GetActor
func_8003ED58 DynaPolyInfo_Free
func_80041880 DynaPolyInfo_Alloc
func_80043480 DynaPolyInfo_SetActorMove
func_8005AFD4 Camera_SetCameraData
func_8005B200 CollisionBtlTbl_Get
func_8005C364 ActorCollider_AllocCylinder
func_8005C3AC ActorCollider_FreeCylinder
func_8005C4AC ActorCollider_InitCylinder
func_8005D79C Actor_CollisionCheck_SetAT
func_8005D9F4 Actor_CollisionCheck_SetAC
func_8005DC4C Actor_CollisionCheck_SetOT
func_800626DC ActorCollider_Cylinder_Update
func_80063E9C DebugDisplay_AddObject
func_800693D8 Cutscene_SetSegment
func_80069420 MemCopy
func_8006BAD8 Audio_PlaySoundAtPosition
func_800777E0 Lib_MemSet
func_80077834 Math_Coss
func_80077870 Math_Sins
func_800778AC Math_ApproxUpdateScaledS
func_8007797C Math_ApproxS
func_80077A00 Math_ApproxF
func_80077D90 Math_Rand_S16Offset
func_80077DDC Math_Rand_S16OffsetStride
func_80077E40 Math_Vec3f_Copy
func_80077E5C Math_Vec3s_ToVec3f
func_80077E9C Math_Vec3f_Sum
func_80077ED0 Math_Vec3f_Diff
func_80077F04 Math_Vec3s_DiffToVec3f
func_80077F5C Math_Vec3f_Scale
func_80077F90 Math_Vec3f_DistXYZ
func_80077FD0 Math_Vec3f_DistXYZAndStoreDiff
func_80078028 Math_Vec3f_DistXZ
func_80078068 Math_Vec3f_Yaw
func_8007809C Math_Vec3f_Pitch
func_800780DC Actor_ProcessInitChain
func_80078310 Math_SmoothScaleMaxMinF
func_8007841C Math_SmoothScaleMaxF
func_8007848C Math_SmoothDownscaleMaxF
func_8007869C Math_SmoothScaleMaxMinS
func_800787BC Math_SmoothScaleMaxS
func_80078860 Color_RGBA8_Copy
func_80079CB4 Health_IsCritical
func_80079D8C Lights_InitType0PositionalLight
func_80079DF0 Lights_InitType2PositionalLight
func_80079E58 Lights_SetPositionalLightColorAndRadius
func_8007A6C4 Lights_CreateMapper
func_8007A6FC Lights_ClearHead
func_8007A708 Lights_RemoveAll
func_8007A764 Lights_Insert
func_8007A7C4 Lights_Remove
func_8009812C Object_GetIndex
func_80098188 Object_IsLoaded
func_800A15C8 SkelAnime_Draw
func_800A2000 SkelAnime_GetFrameCount
func_800A457C SkelAnime_Init
func_800A49FC SkelAnime_FrameUpdateMatrix
func_800A51A0 SkelAnime_ChangeAnim
func_800C5484 GameState_AllocEnd
func_800C69CC Graph_Alloc
func_800D0664 atan2s
func_800D07D4 atan2f
func_800D3F20 Fault_SleepImpl
func_800D3F90 Fault_ClientProcessThread
func_800D4004 Fault_ProcessClientContext
func_800D4188 Fault_ProcessClient
func_800D41DC Fault_AddClient
func_800D42C0 Fault_RemoveClient
func_800D43B8 Fault_AddAddrConvClient
func_800D4490 Fault_RemoveAddrConvClient
func_800D4588 Fault_ConvertAddress
func_800D463C Fault_Sleep
func_800D4678 Fault_PadCallback
func_800D46B4 Fault_UpdatePadImpl
func_800D4700 Fault_WaitForInputImpl
func_800D484C Fault_WaitForInput
func_800D4898 Fault_DrawRec
func_800D48F8 Fault_FillScreenBlack
func_800D494C Fault_FillScreenRed
func_800D49A0 Fault_DrawCornerRec
func_800D49F4 Fault_PrintFReg
func_800D4AA0 Fault_LogFReg
func_800D4B50 Fault_PrintFPCR
func_800D4BF4 Fault_LogFPCR
func_800D4C8C Fault_PrintThreadContext
func_800D4FA8 Fault_LogThreadContext
func_800D52A4 Fault_FindFaultedThread
func_800D532C Fault_Wait5Seconds
func_800d53BC Fault_WaitForButtonCombo
func_800D5688 Fault_DrawMemDumpPage
func_800D57F4 Fault_DrawMemDump
func_800D5B88 Fault_DrawStackTrace
func_800D5D08 Fault_LogStackTrace
func_800D5E78 Fault_ResumeThread
func_800D5EF4 Fault_CommitFB
func_800D5FB4 Fault_ProcessClients
func_800D6094 Fault_UpdatePad
func_800D60D0 Fault_ThreadEntry
func_800D6430 Fault_SetFB
func_800D6484 Fault_Start
func_800D65B8 Fault_HangupFaultClient
func_800D66B4 Fault_AddHungupAndCrashImpl
func_800D670C Fault_AddHungupAndCrash
func_800D6770 FaultDrawer_SetOsSyncPrintfEnabled
func_800D6780 FaultDrawer_DrawRecImpl
func_800D689C FaultDrawer_DrawChar
func_800D6A0C FaultDrawer_ColorToPrintColor
func_800D6ABC FaultDrawer_UpdatePrintColor
func_800D6B5C FaultDrawer_SetForeColor
func_800D6BA4 FaultDrawer_SetBackColor
func_800D6BEC FaultDrawer_SetFontColor
func_800D6C34 FaultDrawer_SetCharPad
func_800D6C44 FaultDrawer_SetCursor
func_800D6D5C FaultDrawer_FillScreen
func_800D6DEC FaultDrawer_FormatStringFunc
func_800D6FF8 FaultDrawer_VPrintf
func_800D7048 FaultDrawer_Printf
func_800D7098 FaultDrawer_DrawText
func_800D70E8 FaultDrawer_SetDrawerFB
func_800D7114 FaultDrawer_SetInputCallback
func_800D7124 FaultDrawer_WritebackFBDCache
func_800D7180 FaultDrawer_SetDefault
func_800F738C Audio_PlaySoundGeneral
func_800FA00C Audio_SetBGM
func_800FAF60 GfxPrint_InitDlist
func_800FB3AC GfxPrint_SetColor
func_800FB3F8 GfxPrint_SetPosPx
func_800FB41C GfxPrint_SetPos
func_800FB444 GfxPrint_SetBasePosPx
func_800FB458 GfxPrint_PrintCharImpl
func_800FB8EC GfxPrint_PrintChar
func_800FBAAC GfxPrint_PrintStringWithSize
func_800FBB08 GfxPrint_PrintString
func_800FBB60 GfxPrint_Callback
func_800FBB8C GfxPrint_Ctor
func_800FBC14 GfxPrint_Dtor
func_800FBC1C GfxPrint_Open
func_800FBC64 GfxPrint_Close
func_800FBC94 GfxPrint_VPrintf
func_800FBCB4 GfxPrint_Printf
func_800FD9AC Math_Rand_ZeroOne
func_80100290 sinf
func_80104610 cosf
func_80104780 coss
D_8015E660 gSaveContext
D_8015FA90 gGameInfo