merge master

This commit is contained in:
engineer124
2023-05-13 19:26:44 +10:00
989 changed files with 30928 additions and 24306 deletions
+2
View File
@@ -14,6 +14,8 @@ tags
# Project-specific ignores
*.z64
*.n64
*.v64
*.sra
*.bin
*.elf
+3 -3
View File
@@ -90,7 +90,7 @@ OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy
OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump
ASM_PROC := python3 tools/asm-processor/build.py
ASM_PROC_FLAGS := --input-enc=utf-8 --output-enc=euc-jp
ASM_PROC_FLAGS := --input-enc=utf-8 --output-enc=euc-jp --convert-statics=global-with-filename
IINC := -Iinclude -Isrc -Iassets -Ibuild -I.
@@ -210,7 +210,7 @@ build/src/libultra/rmon/%.o: OPTFLAGS := -O2
build/src/libultra/flash/%.o: OPTFLAGS := -g
build/src/libultra/flash/%.o: MIPS_VERSION := -mips1
build/src/code/audio/%.o: OPTFLAGS := -O2
build/src/audio/%.o: OPTFLAGS := -O2
build/assets/%.o: OPTFLAGS := -O1
build/assets/%.o: ASM_PROC_FLAGS :=
@@ -238,7 +238,7 @@ build/src/libultra/%.o: CC := $(CC_OLD)
build/src/libultra/voice/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC_OLD) -- $(AS) $(ASFLAGS) --
build/src/code/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
build/src/code/audio/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
build/src/audio/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
build/src/overlays/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) --
+7 -5
View File
@@ -787,7 +787,7 @@
<PlayerAnimation Name="gPlayerAnim_Link_muku" Offset="0xE4E0" />
<PlayerAnimation Name="gPlayerAnim_Link_otituku_w" Offset="0xE4E8" />
<PlayerAnimation Name="gPlayerAnim_Link_ue_wait" Offset="0xE4F0" />
<DList Name="gameplay_keep_DL_00E5C0" Offset="0xE5C0" />
<!-- Deku Flower -->
@@ -1145,8 +1145,8 @@
<Texture Name="gElegyShellGoronNecklaceTex" OutName="elegy_shell_goron_necklace" Format="i8" Width="32" Height="32" Offset="0x4DDA0" />
<Texture Name="gElegyShellGoronPlatformTex" OutName="elegy_shell_goron_platform" Format="ci8" Width="8" Height="16" Offset="0x4E1A0" />
<Texture Name="gameplay_keep_Tex_04E220" OutName="tex_04E220" Format="i8" Width="64" Height="64" Offset="0x4E220" />
<DList Name="gameplay_keep_DL_04F250" Offset="0x4F250" />
<Texture Name="gHookshotReticleTex" OutName="tex_04E220" Format="i8" Width="64" Height="64" Offset="0x4E220" />
<DList Name="gHookshotReticleDL" Offset="0x4F250" />
<Texture Name="gameplay_keep_Tex_04F2C0" OutName="tex_04F2C0" Format="ia16" Width="32" Height="64" Offset="0x4F2C0" />
<DList Name="gEffIceFragment1DL" Offset="0x50550" />
<DList Name="gEffIceFragment2MaterialDL" Offset="0x50648" />
@@ -1223,7 +1223,9 @@
<DList Name="gameplay_keep_DL_054C90" Offset="0x54C90" />
<Texture Name="gameplay_keep_Tex_054D90" OutName="tex_054D90" Format="i4" Width="16" Height="16" Offset="0x54D90" />
<Texture Name="gameplay_keep_Tex_054E10" OutName="tex_054E10" Format="i8" Width="16" Height="16" Offset="0x54E10" />
<TextureAnimation Name="gameplay_keep_Matanimheader_054F18" Offset="0x54F18" />
<Texture Name="gameplay_keep_Tex_054F20" OutName="tex_054F20" Format="i8" Width="32" Height="32" Offset="0x54F20" />
<DList Name="gameplay_keep_DL_055360" Offset="0x55360" />
<DList Name="gameplay_keep_DL_055620" Offset="0x55620" />
@@ -1477,7 +1479,7 @@
<Texture Name="gElegyShellZoraPlatformTex" OutName="elegy_shell_zora_platform" Format="rgba16" Width="8" Height="16" Offset="0x8D2E0" />
<Texture Name="gameplay_keep_Tex_08D3E0" OutName="tex_08D3E0" Format="i8" Width="64" Height="32" Offset="0x8D3E0" />
<!-- Dust Textures -->
<Texture Name="gEffDust1Tex" OutName="eff_dust_1" Format="i8" Width="32" Height="32" Offset="0x8DBE0" />
<Texture Name="gEffDust2Tex" OutName="eff_dust_2" Format="i8" Width="32" Height="32" Offset="0x8DFE0" />
@@ -1487,7 +1489,7 @@
<Texture Name="gEffDust6Tex" OutName="eff_dust_6" Format="i8" Width="32" Height="32" Offset="0x8EFE0" />
<Texture Name="gEffDust7Tex" OutName="eff_dust_7" Format="i8" Width="32" Height="32" Offset="0x8F3E0" />
<Texture Name="gEffDust8Tex" OutName="eff_dust_8" Format="i8" Width="32" Height="32" Offset="0x8F7E0" />
<Texture Name="gameplay_keep_Tex_08FBE0" OutName="tex_08FBE0" Format="i8" Width="32" Height="64" Offset="0x8FBE0" />
<Texture Name="gameplay_keep_Tex_0903E0" OutName="tex_0903E0" Format="i8" Width="32" Height="64" Offset="0x903E0" />
<Texture Name="gameplay_keep_Tex_090BE0" OutName="tex_090BE0" Format="i8" Width="32" Height="64" Offset="0x90BE0" />
+58 -49
View File
@@ -1,53 +1,62 @@
<Root>
<!-- Assets for the bearded man from OOT, body is reused in MM for Cured Swamp Spider House Man (head substituted from overlay data). -->
<File Name="object_ahg" Segment="6">
<Texture Name="object_ahg_TLUT_000000" OutName="tlut_000000" Format="rgba16" Width="16" Height="16" Offset="0x0" />
<Texture Name="object_ahg_Tex_000200" OutName="tex_000200" Format="ci8" Width="16" Height="16" Offset="0x200" />
<Texture Name="object_ahg_Tex_000300" OutName="tex_000300" Format="ci8" Width="16" Height="16" Offset="0x300" />
<Texture Name="object_ahg_Tex_000400" OutName="tex_000400" Format="ci8" Width="8" Height="8" Offset="0x400" />
<Texture Name="object_ahg_Tex_000440" OutName="tex_000440" Format="ci8" Width="8" Height="8" Offset="0x440" />
<!-- <Blob Name="object_ahg_Blob_000480" Size="0x300" Offset="0x480" /> -->
<Texture Name="object_ahg_Tex_000780" OutName="tex_000780" Format="ci8" Width="16" Height="16" Offset="0x780" />
<Texture Name="object_ahg_Tex_000880" OutName="tex_000880" Format="i8" Width="8" Height="8" Offset="0x880" />
<Texture Name="object_ahg_Tex_0008C0" OutName="tex_0008C0" Format="i8" Width="8" Height="8" Offset="0x8C0" />
<Texture Name="object_ahg_Tex_000900" OutName="tex_000900" Format="ci8" Width="32" Height="16" Offset="0x900" />
<Texture Name="object_ahg_Tex_000B00" OutName="tex_000B00" Format="ci8" Width="16" Height="16" Offset="0xB00" />
<DList Name="object_ahg_DL_002FF0" Offset="0x2FF0" />
<DList Name="object_ahg_DL_003400" Offset="0x3400" />
<DList Name="object_ahg_DL_003570" Offset="0x3570" />
<DList Name="object_ahg_DL_0036A0" Offset="0x36A0" />
<DList Name="object_ahg_DL_0037D8" Offset="0x37D8" />
<DList Name="object_ahg_DL_003948" Offset="0x3948" />
<DList Name="object_ahg_DL_003A78" Offset="0x3A78" />
<DList Name="object_ahg_DL_003BB0" Offset="0x3BB0" />
<DList Name="object_ahg_DL_003DD8" Offset="0x3DD8" />
<DList Name="object_ahg_DL_003F18" Offset="0x3F18" />
<DList Name="object_ahg_DL_004048" Offset="0x4048" />
<DList Name="object_ahg_DL_004180" Offset="0x4180" />
<DList Name="object_ahg_DL_0042C0" Offset="0x42C0" />
<DList Name="object_ahg_DL_0043F0" Offset="0x43F0" />
<DList Name="object_ahg_DL_004528" Offset="0x4528" />
<!-- <Blob Name="object_ahg_Blob_0046C8" Size="0x180" Offset="0x46C8" /> -->
<Texture Name="object_ahg_Tex_004848" OutName="tex_004848" Format="ci8" Width="8" Height="8" Offset="0x4848" />
<Texture Name="object_ahg_Tex_004888" OutName="tex_004888" Format="ci8" Width="32" Height="16" Offset="0x4888" />
<Texture Name="object_ahg_Tex_004A88" OutName="tex_004A88" Format="ci8" Width="16" Height="16" Offset="0x4A88" />
<Texture Name="object_ahg_Tex_004B88" OutName="tex_004B88" Format="ci8" Width="8" Height="16" Offset="0x4B88" />
<DList Name="object_ahg_DL_005408" Offset="0x5408" />
<DList Name="object_ahg_DL_005628" Offset="0x5628" />
<Limb Name="object_ahg_Standardlimb_0058A8" Type="Standard" EnumName="OBJECT_AHG_LIMB_01" Offset="0x58A8" />
<Limb Name="object_ahg_Standardlimb_0058B4" Type="Standard" EnumName="OBJECT_AHG_LIMB_02" Offset="0x58B4" />
<Limb Name="object_ahg_Standardlimb_0058C0" Type="Standard" EnumName="OBJECT_AHG_LIMB_03" Offset="0x58C0" />
<Limb Name="object_ahg_Standardlimb_0058CC" Type="Standard" EnumName="OBJECT_AHG_LIMB_04" Offset="0x58CC" />
<Limb Name="object_ahg_Standardlimb_0058D8" Type="Standard" EnumName="OBJECT_AHG_LIMB_05" Offset="0x58D8" />
<Limb Name="object_ahg_Standardlimb_0058E4" Type="Standard" EnumName="OBJECT_AHG_LIMB_06" Offset="0x58E4" />
<Limb Name="object_ahg_Standardlimb_0058F0" Type="Standard" EnumName="OBJECT_AHG_LIMB_07" Offset="0x58F0" />
<Limb Name="object_ahg_Standardlimb_0058FC" Type="Standard" EnumName="OBJECT_AHG_LIMB_08" Offset="0x58FC" />
<Limb Name="object_ahg_Standardlimb_005908" Type="Standard" EnumName="OBJECT_AHG_LIMB_09" Offset="0x5908" />
<Limb Name="object_ahg_Standardlimb_005914" Type="Standard" EnumName="OBJECT_AHG_LIMB_0A" Offset="0x5914" />
<Limb Name="object_ahg_Standardlimb_005920" Type="Standard" EnumName="OBJECT_AHG_LIMB_0B" Offset="0x5920" />
<Limb Name="object_ahg_Standardlimb_00592C" Type="Standard" EnumName="OBJECT_AHG_LIMB_0C" Offset="0x592C" />
<Limb Name="object_ahg_Standardlimb_005938" Type="Standard" EnumName="OBJECT_AHG_LIMB_0D" Offset="0x5938" />
<Limb Name="object_ahg_Standardlimb_005944" Type="Standard" EnumName="OBJECT_AHG_LIMB_0E" Offset="0x5944" />
<Limb Name="object_ahg_Standardlimb_005950" Type="Standard" EnumName="OBJECT_AHG_LIMB_0F" Offset="0x5950" />
<Skeleton Name="object_ahg_Skel_005998" Type="Flex" LimbType="Standard" LimbNone="OBJECT_AHG_LIMB_NONE" LimbMax="OBJECT_AHG_LIMB_MAX" EnumName="ObjectAhgLimb" Offset="0x5998" />
<Texture Name="gAhgTLUT" OutName="tlut" Format="rgba16" Width="16" Height="16" Offset="0x0" />
<Texture Name="gAhgHairLineTex" OutName="hair_line" Format="ci8" Width="16" Height="16" Offset="0x200" />
<Texture Name="gAhgHairTex" OutName="hair" Format="ci8" Width="16" Height="16" Offset="0x300" />
<Texture Name="gAhgEarTex" OutName="ear" Format="ci8" Width="8" Height="8" Offset="0x400" />
<Texture Name="gAhgSkinGradientTex" OutName="skin" Format="ci8" Width="8" Height="8" Offset="0x440"/>
<Texture Name="gAhgEyeOpenTex" OutName="eye_open" Format="ci8" Width="16" Height="16" Offset="0x480" TlutOffset="0x0"/>
<Texture Name="gAhgEyeHalfTex" OutName="eye_half" Format="ci8" Width="16" Height="16" Offset="0x580" TlutOffset="0x0"/>
<Texture Name="gAhgEyeClosedTex" OutName="eye_closed" Format="ci8" Width="16" Height="16" Offset="0x680" TlutOffset="0x0"/>
<Texture Name="gAhgFingersTex" OutName="fingers" Format="ci8" Width="16" Height="16" Offset="0x780" />
<Texture Name="gAhgShirtTex" OutName="shirt" Format="i8" Width="8" Height="8" Offset="0x880" />
<Texture Name="gAhgShoesTex" OutName="shoes" Format="i8" Width="8" Height="8" Offset="0x8C0" />
<Texture Name="gAhgBeltBuckleTex" OutName="belt_buckle" Format="ci8" Width="32" Height="16" Offset="0x900" />
<Texture Name="gAhgBeltLoopTex" OutName="belt_loop" Format="ci8" Width="16" Height="16" Offset="0xB00" />
<!-- This head is overwritten in EnSth draw. -->
<DList Name="gAhgBeardedHeadDL" Offset="0x2FF0" />
<DList Name="gAhgRightHandDL" Offset="0x3400" />
<DList Name="gAhgRightForearmDL" Offset="0x3570" />
<DList Name="gAhgRightUpperArmDL" Offset="0x36A0" />
<DList Name="gAhgLeftHandDL" Offset="0x37D8" />
<DList Name="gAhgLeftForearmDL" Offset="0x3948" />
<DList Name="gAhgLeftUpperArmDL" Offset="0x3A78" />
<DList Name="gAhgTorsoDL" Offset="0x3BB0" />
<DList Name="gAhgRightFootDL" Offset="0x3DD8" />
<DList Name="gAhgRightShinDL" Offset="0x3F18" />
<DList Name="gAhgRightThighDL" Offset="0x4048" />
<DList Name="gAhgLeftFootDL" Offset="0x4180" />
<DList Name="gAhgLeftShinDL" Offset="0x42C0" />
<DList Name="gAhgLeftThighDL" Offset="0x43F0" />
<DList Name="gAhgPelvisDL" Offset="0x4528" />
<!-- Assets for alternate heads for Ahg, left over from OOT (Unused). -->
<Texture Name="gAhg2TLUT" OutName="tlut2" Format="rgba16" Width="16" Height="12" Offset="0x46C8" />
<Texture Name="gAhgEar2Tex" OutName="ear2" Format="ci8" Width="8" Height="8" Offset="0x4848" TlutOffset="0x46C8" />
<Texture Name="gAhgMouthTex" OutName="mouth" Format="ci8" Width="32" Height="16" Offset="0x4888" TlutOffset="0x46C8" />
<Texture Name="gAhgEyeAndEyebrowTex" OutName="eye_with_eyebrow" Format="ci8" Width="16" Height="16" Offset="0x4A88" TlutOffset="0x46C8" />
<Texture Name="gAhgRedHairTex" OutName="red_hair" Format="ci8" Width="8" Height="16" Offset="0x4B88" TlutOffset="0x46C8" />
<DList Name="gAhgRedHeadDL" Offset="0x5408" />
<DList Name="gAhgShortHairHeadDL" Offset="0x5628" />
<Limb Name="gAhgPelvisLimb" Type="Standard" EnumName="AHG_LIMB_PELVIS" Offset="0x58A8" />
<Limb Name="gAhgLeftThighLimb" Type="Standard" EnumName="AHG_LIMB_LEFT_THIGH" Offset="0x58B4" />
<Limb Name="gAhgLeftShinLimb" Type="Standard" EnumName="AHG_LIMB_LEFT_SHIN" Offset="0x58C0" />
<Limb Name="gAhgLeftFootLimb" Type="Standard" EnumName="AHG_LIMB_LEFT_FOOT" Offset="0x58CC" />
<Limb Name="gAhgRightThighLimb" Type="Standard" EnumName="AHG_LIMB_RIGHT_THIGH" Offset="0x58D8" />
<Limb Name="gAhgRightShinLimb" Type="Standard" EnumName="AHG_LIMB_RIGHT_SHIN" Offset="0x58E4" />
<Limb Name="gAhgRightFootLimb" Type="Standard" EnumName="AHG_LIMB_RIGHT_FOOT" Offset="0x58F0" />
<Limb Name="gAhgTorsoLimb" Type="Standard" EnumName="AHG_LIMB_CHEST" Offset="0x58FC" />
<Limb Name="gAhgLeftUpperArmLimb" Type="Standard" EnumName="AHG_LIMB_LEFT_UPPER_ARM" Offset="0x5908" />
<Limb Name="gAhgLeftForearmLimb" Type="Standard" EnumName="AHG_LIMB_LEFT_FOREARM" Offset="0x5914" />
<Limb Name="gAhgLeftHandLimb" Type="Standard" EnumName="AHG_LIMB_LEFT_HAND" Offset="0x5920" />
<Limb Name="gAhgRightUpperArmLimb" Type="Standard" EnumName="AHG_LIMB_RIGHT_UPPER_ARM" Offset="0x592C" />
<Limb Name="gAhgRightForearmLimb" Type="Standard" EnumName="AHG_LIMB_RIGHT_FOREARM" Offset="0x5938" />
<Limb Name="gAhgRightHandLimb" Type="Standard" EnumName="AHG_LIMB_RIGHT_HAND" Offset="0x5944" />
<Limb Name="gAhgHeadLimb" Type="Standard" EnumName="AHG_LIMB_HEAD" Offset="0x5950" />
<Skeleton Name="gAhgSkel" Type="Flex" LimbType="Standard" LimbNone="AHG_LIMB_NONE" LimbMax="AHG_LIMB_MAX" EnumName="ObjectAhgLimb" Offset="0x5998" />
</File>
</Root>
+1 -1
View File
@@ -46,7 +46,7 @@
<DList Name="gGyorgBubbleModelDL" Offset="0x7EB0" />
<!-- Gyorg Title Card -->
<Texture Name="gGyorgTitleCardTex" OutName="gyorg_title_card" Format="i8" Width="128" Height="40" Offset="0x7EC8" />
<Texture Name="gGyorgTitleCardTex" OutName="gyorg_title_card" Format="ia8" Width="128" Height="40" Offset="0x7EC8" />
<!-- Gyorg Limbs -->
<Limb Name="gGyorgRootLimb" Type="Standard" EnumName="GYORG_LIMB_ROOT" Offset="0x92C8" />
+3 -3
View File
@@ -200,9 +200,9 @@
<DList Name="gMajorasWrathSpinningTopDL" Offset="0x2F640" />
<!-- Majora Title Cards -->
<Texture Name="gMajorasMaskTitleCardTex" OutName="majoras_mask_title_card" Format="i8" Width="128" Height="40" Offset="0x2F840" />
<Texture Name="gMajorasIncarnationTitleCardTex" OutName="majoras_incarnation_title_card" Format="i8" Width="128" Height="40" Offset="0x30C40" />
<Texture Name="gMajorasWrathTitleCardTex" OutName="majoras_wrath_title_card" Format="i8" Width="128" Height="40" Offset="0x32040" />
<Texture Name="gMajorasMaskTitleCardTex" OutName="majoras_mask_title_card" Format="ia8" Width="128" Height="40" Offset="0x2F840" />
<Texture Name="gMajorasIncarnationTitleCardTex" OutName="majoras_incarnation_title_card" Format="ia8" Width="128" Height="40" Offset="0x30C40" />
<Texture Name="gMajorasWrathTitleCardTex" OutName="majoras_wrath_title_card" Format="ia8" Width="128" Height="40" Offset="0x32040" />
<!-- Majora's Wrath Limbs -->
<Limb Name="gMajorasWrathRootLimb" Type="Standard" EnumName="MAJORAS_WRATH_LIMB_ROOT" Offset="0x33440" />
+1 -1
View File
@@ -101,6 +101,6 @@
<Animation Name="gGohtGetUpFromSideAnim" Offset="0x14024" /> <!-- Unused. Original name is "iceb_up" -->
<!-- Goht Title Card -->
<Texture Name="gGohtTitleCardTex" OutName="goht_title_card" Format="i8" Width="128" Height="40" Offset="0x14040" />
<Texture Name="gGohtTitleCardTex" OutName="goht_title_card" Format="ia8" Width="128" Height="40" Offset="0x14040" />
</File>
</Root>
+8 -8
View File
@@ -28,8 +28,8 @@
<Texture Name="object_dt_Tex_0071D0" OutName="tex_0071D0" Format="ci8" Width="8" Height="8" Offset="0x71D0" />
<Texture Name="object_dt_Tex_007210" OutName="tex_007210" Format="rgba16" Width="8" Height="16" Offset="0x7210" />
<Texture Name="object_dt_Tex_007310" OutName="tex_007310" Format="ci8" Width="8" Height="8" Offset="0x7310" />
<Texture Name="object_dt_Tex_007350" OutName="tex_007350" Format="ci8" Width="32" Height="32" Offset="0x7350" />
<Texture Name="object_dt_Tex_007750" OutName="tex_007750" Format="ci8" Width="16" Height="16" Offset="0x7750" />
<Texture Name="gDotourEyeShockTex" OutName="dotour_eye_shock" Format="ci8" Width="32" Height="32" Offset="0x7350" TlutOffset="0x6C50" />
<Texture Name="gDotourEyebrowHighTex" OutName="dotour_eyebrow_high" Format="ci8" Width="16" Height="16" Offset="0x7750" TlutOffset="0x6E50" />
<Texture Name="object_dt_Tex_007850" OutName="tex_007850" Format="ci8" Width="32" Height="32" Offset="0x7850" />
<Texture Name="object_dt_Tex_007C50" OutName="tex_007C50" Format="ci8" Width="16" Height="16" Offset="0x7C50" />
<Texture Name="object_dt_Tex_007D50" OutName="tex_007D50" Format="ci8" Width="32" Height="32" Offset="0x7D50" />
@@ -37,15 +37,15 @@
<Texture Name="object_dt_Tex_008190" OutName="tex_008190" Format="ci8" Width="32" Height="16" Offset="0x8190" />
<Texture Name="object_dt_Tex_008390" OutName="tex_008390" Format="rgba16" Width="32" Height="64" Offset="0x8390" />
<Texture Name="object_dt_Tex_009390" OutName="tex_009390" Format="rgba16" Width="16" Height="16" Offset="0x9390" />
<Texture Name="object_dt_Tex_009590" OutName="tex_009590" Format="ci8" Width="32" Height="32" Offset="0x9590" />
<Texture Name="gDotourEyeOpenTex" OutName="dotour_eye_open" Format="ci8" Width="32" Height="32" Offset="0x9590" TlutOffset="0x6C50" />
<Texture Name="object_dt_Tex_009990" OutName="tex_009990" Format="rgba16" Width="16" Height="32" Offset="0x9990" />
<Texture Name="object_dt_Tex_009D90" OutName="tex_009D90" Format="rgba16" Width="16" Height="16" Offset="0x9D90" />
<Texture Name="object_dt_Tex_009F90" OutName="tex_009F90" Format="ci8" Width="32" Height="32" Offset="0x9F90" />
<Texture Name="object_dt_Tex_00A390" OutName="tex_00A390" Format="ci8" Width="16" Height="16" Offset="0xA390" />
<Texture Name="object_dt_Tex_00A490" OutName="tex_00A490" Format="ci8" Width="16" Height="16" Offset="0xA490" />
<Texture Name="gDotourEyeClosedTex" OutName="dotour_eye_closed" Format="ci8" Width="32" Height="32" Offset="0x9F90" TlutOffset="0x6C50" />
<Texture Name="gDotourEyebrowMidTex" OutName="dotour_eyebrow_mid" Format="ci8" Width="16" Height="16" Offset="0xA390" TlutOffset="0x6E50" />
<Texture Name="gDotourEyebrowLowTex" OutName="dotour_eyebrow_low" Format="ci8" Width="16" Height="16" Offset="0xA490" TlutOffset="0x6E50" />
<Texture Name="object_dt_Tex_00A590" OutName="tex_00A590" Format="rgba16" Width="16" Height="16" Offset="0xA590" />
<Texture Name="object_dt_Tex_00A790" OutName="tex_00A790" Format="ci8" Width="32" Height="32" Offset="0xA790" />
<Texture Name="object_dt_Tex_00AB90" OutName="tex_00AB90" Format="ci8" Width="32" Height="32" Offset="0xAB90" />
<Texture Name="gDotourEyeLookDownTex" OutName="dotour_eye_look_down" Format="ci8" Width="32" Height="32" Offset="0xA790" TlutOffset="0x6C50" />
<Texture Name="gDotourEyeSquintTex" OutName="dotour_eye_squint" Format="ci8" Width="32" Height="32" Offset="0xAB90" TlutOffset="0x6C50" />
<TextureAnimation Name="object_dt_Matanimheader_00AFDC" Offset="0xAFDC" />
<Limb Name="object_dt_Standardlimb_00AFEC" Type="Standard" EnumName="OBJECT_DT_LIMB_01" Offset="0xAFEC" />
<Limb Name="object_dt_Standardlimb_00AFF8" Type="Standard" EnumName="OBJECT_DT_LIMB_02" Offset="0xAFF8" />
+9 -9
View File
@@ -101,7 +101,7 @@
<DList Name="object_link_child_DL_017270" Offset="0x17270" />
<DList Name="gLinkHumanGildedSwordBladeDL" Offset="0x17310" />
<DList Name="gLinkHumanRazorSwordSheathDL" Offset="0x17338" />
<DList Name="gLinkHumanHylianShieldDL" Offset="0x17458" />
<DList Name="gLinkHumanHerosShieldDL" Offset="0x17458" />
<DList Name="gLinkHumanKokiriSwordSheathDL" Offset="0x17700" />
<DList Name="object_link_child_DL_017818" Offset="0x17818" />
<DList Name="gLinkHumanHookshotDL" Offset="0x17858" />
@@ -110,17 +110,17 @@
<DList Name="object_link_child_DL_018490" Offset="0x18490" />
<Texture Name="object_link_child_TLUT_018A40" OutName="tlut_018A40" Format="rgba16" Width="16" Height="16" Offset="0x18A40" />
<Texture Name="gLinkHumanHylianShieldFrontTLUT" OutName="hylian_shield_front_tlut" Format="rgba16" Width="16" Height="16" Offset="0x18C40" />
<Texture Name="gLinkHumanHylianShieldBackTLUT" OutName="hylian_shield_back_tlut" Format="rgba16" Width="16" Height="16" Offset="0x18E40" />
<Texture Name="gLinkHumanHerosShieldFrontTLUT" OutName="hylian_shield_front_tlut" Format="rgba16" Width="16" Height="16" Offset="0x18C40" />
<Texture Name="gLinkHumanHerosShieldBackTLUT" OutName="hylian_shield_back_tlut" Format="rgba16" Width="16" Height="16" Offset="0x18E40" />
<Texture Name="gLinkHumanShieldHandleTLUT" OutName="shield_handle_tlut" Format="rgba16" Width="16" Height="16" Offset="0x19040" />
<Texture Name="object_link_child_Tex_019240" OutName="tex_019240" Format="ci8" Width="8" Height="8" Offset="0x19240" />
<Texture Name="gLinkHumanHylianShieldFrontUpperTex" OutName="hylian_shield_front_upper" Format="ci8" Width="64" Height="32" Offset="0x19280" TlutOffset="0x18C40" />
<Texture Name="gLinkHumanHerosShieldFrontUpperTex" OutName="hylian_shield_front_upper" Format="ci8" Width="64" Height="32" Offset="0x19280" TlutOffset="0x18C40" />
<Texture Name="object_link_child_Tex_019A80" OutName="tex_019A80" Format="ci8" Width="32" Height="64" Offset="0x19A80" />
<Texture Name="object_link_child_Tex_01A280" OutName="tex_01A280" Format="ci8" Width="16" Height="16" Offset="0x1A280" />
<Texture Name="object_link_child_Tex_01A380" OutName="tex_01A380" Format="rgba16" Width="64" Height="32" Offset="0x1A380" />
<Texture Name="object_link_child_Tex_01B380" OutName="tex_01B380" Format="ci8" Width="16" Height="16" Offset="0x1B380" />
<Texture Name="gLinkHumanHylianShieldFrontLowerTex" OutName="hylian_shield_front_lower" Format="ci8" Width="64" Height="32" Offset="0x1B480" TlutOffset="0x18C40" />
<Texture Name="gLinkHumanHylianShieldBackTex" OutName="hylian_shield_back" Format="ci8" Width="16" Height="32" Offset="0x1BC80" TlutOffset="0x18E40" />
<Texture Name="gLinkHumanHerosShieldFrontLowerTex" OutName="hylian_shield_front_lower" Format="ci8" Width="64" Height="32" Offset="0x1B480" TlutOffset="0x18C40" />
<Texture Name="gLinkHumanHerosShieldBackTex" OutName="hylian_shield_back" Format="ci8" Width="16" Height="32" Offset="0x1BC80" TlutOffset="0x18E40" />
<Texture Name="gLinkHumanShieldHandleTex" OutName="shield_handle" Format="ci8" Width="8" Height="16" Offset="0x1BE80" TlutOffset="0x19040" />
<Texture Name="object_link_child_Tex_01BF00" OutName="tex_01BF00" Format="rgba16" Width="8" Height="8" Offset="0x1BF00" />
<Texture Name="object_link_child_Tex_01BF80" OutName="tex_01BF80" Format="rgba16" Width="16" Height="16" Offset="0x1BF80" />
@@ -143,12 +143,12 @@
<Mtx Name="gLinkHumanSheathedRazorSwordMtx" Offset="0x1DB00" />
<DList Name="gLinkHumanSheathedRazorSwordDL" Offset="0x1DB40" />
<DList Name="gLinkHumanSheathedGildedSwordDL" Offset="0x1DB60" />
<Mtx Name="gLinkHumanHylianShieldMtx" Offset="0x1DB88" />
<DList Name="gLinkHumanHylianShieldWithMtxDL" Offset="0x1DBC8" />
<Mtx Name="gLinkHumanHerosShieldMtx" Offset="0x1DB88" />
<DList Name="gLinkHumanHerosShieldWithMtxDL" Offset="0x1DBC8" />
<Mtx Name="gLinkHumanMirrorShieldMtx" Offset="0x1DBD8" />
<DList Name="gLinkHumanMirrorShieldWithMtxDL" Offset="0x1DC18" />
<DList Name="gLinkHumanRightHandHoldingHylianShieldDL" Offset="0x1DC28" />
<DList Name="gLinkHumanRightHandHoldingHerosShieldDL" Offset="0x1DC28" />
<DList Name="object_link_child_DL_01DC38" Offset="0x1DC38" />
<DList Name="gLinkHumanRightHandHoldingMirrorShieldDL" Offset="0x1DC48" />
<DList Name="object_link_child_DL_01DC58" Offset="0x1DC58" />
+1 -1
View File
@@ -90,7 +90,7 @@
<Limb Name="gLinkGoronShieldingArmsAndLegsLimb" Type="Standard" EnumName="LINK_GORON_SHIELDING_LIMB_ARMS_AND_LEGS" Offset="0x1779C" />
<Skeleton Name="gLinkGoronShieldingSkel" Type="Flex" LimbType="Standard" LimbNone="LINK_GORON_SHIELDING_LIMB_NONE" LimbMax="LINK_GORON_SHIELDING_LIMB_MAX" EnumName="LinkGoronShieldingLimb" Offset="0x177B8" />
<!-- <Blob Name="object_link_goron_Blob_0178D0" Size="0x10" Offset="0x178D0" /> -->
<Animation Name="gLinkGoronShieldingAnim" Offset="0x178D0" />
<Limb Name="gLinkGoronRootLimb" Type="LOD" EnumName="LINK_GORON_LIMB_ROOT" Offset="0x178E0" />
<Limb Name="gLinkGoronWaistLimb" Type="LOD" EnumName="LINK_GORON_LIMB_WAIST" Offset="0x178F0" />
+2 -2
View File
@@ -40,10 +40,10 @@
<DList Name="object_link_nuts_DL_008860" Offset="0x8860" />
<DList Name="object_link_nuts_DL_008908" Offset="0x8908" />
<DList Name="object_link_nuts_DL_0089F0" Offset="0x89F0" />
<DList Name="object_link_nuts_DL_008AA0" Offset="0x8AA0" />
<DList Name="gLinkDekuClosedFlowerDL" Offset="0x8AA0" />
<DList Name="object_link_nuts_DL_008AB8" Offset="0x8AB8" />
<DList Name="object_link_nuts_DL_008BA0" Offset="0x8BA0" />
<DList Name="object_link_nuts_DL_008C50" Offset="0x8C50" />
<DList Name="gLinkDekuOpenFlowerDL" Offset="0x8C50" />
<Texture Name="object_link_nuts_Tex_008C68" OutName="tex_008C68" Format="rgba16" Width="16" Height="16" Offset="0x8C68" />
<Texture Name="object_link_nuts_Tex_008E68" OutName="tex_008E68" Format="rgba16" Width="16" Height="16" Offset="0x8E68" />
<Texture Name="object_link_nuts_Tex_009068" OutName="tex_009068" Format="rgba16" Width="8" Height="8" Offset="0x9068" />
+13 -10
View File
@@ -1,14 +1,17 @@
<Root>
<!-- Object file for Chuchus -->
<File Name="object_slime" Segment="6">
<DList Name="object_slime_DL_0004C0" Offset="0x4C0" />
<DList Name="object_slime_DL_000650" Offset="0x650" />
<TextureAnimation Name="object_slime_Matanimheader_000828" Offset="0x828" />
<DList Name="object_slime_DL_000A10" Offset="0xA10" />
<DList Name="object_slime_DL_000B68" Offset="0xB68" />
<Texture Name="object_slime_Tex_000B70" OutName="tex_000B70" Format="rgba16" Width="16" Height="16" Offset="0xB70" />
<Texture Name="object_slime_Tex_000D70" OutName="tex_000D70" Format="rgba16" Width="16" Height="16" Offset="0xD70" />
<!-- <Blob Name="object_slime_Blob_000F70" Size="0x300" Offset="0xF70" /> -->
<Texture Name="object_slime_Tex_001270" OutName="tex_001270" Format="i4" Width="32" Height="32" Offset="0x1270" />
<Texture Name="object_slime_Tex_001470" OutName="tex_001470" Format="i4" Width="64" Height="64" Offset="0x1470" />
<DList Name="gChuchuBodyDL" Offset="0x4C0" />
<DList Name="gChuchuEyesDL" Offset="0x650" />
<TextureAnimation Name="gChuchuSlimeFlowTexAnim" Offset="0x828" />
<DList Name="gChuchuPuddleDL" Offset="0xA10" />
<DList Name="gChuchuEmptyDL" Offset="0xB68" />
<Texture Name="gChuchuMouthTex" OutName="chuchu_mouth" Format="rgba16" Width="16" Height="16" Offset="0xB70" />
<Texture Name="gChuchuEyeSocketTex" OutName="chuchu_eye_socket" Format="rgba16" Width="16" Height="16" Offset="0xD70" />
<Texture Name="gChuchuEyeOpenTex" OutName="chuchu_eye_open" Format="rgba16" Width="16" Height="8" Offset="0xF70" />
<Texture Name="gChuchuEyeHalfTex" OutName="chuchu_eye_half" Format="rgba16" Width="16" Height="8" Offset="0x1070" />
<Texture Name="gChuchuEyeClosedTex" OutName="chuchu_eye_closed" Format="rgba16" Width="16" Height="8" Offset="0x1170" />
<Texture Name="gChuchuSlimeFlowTex" OutName="chuchu_slime_flow" Format="i4" Width="32" Height="32" Offset="0x1270" />
<Texture Name="gChuchuSlimeBaseTex" OutName="chuchu_slime_base" Format="i4" Width="64" Height="64" Offset="0x1470" />
</File>
</Root>
+49 -38
View File
@@ -1,42 +1,53 @@
<Root>
<!-- Assets for the guy looking up at the moon, and the guy you find in Spider Houses. -->
<!-- This object is almost a copy of object_boj, with the animations removed -->
<File Name="object_sth" Segment="6">
<!-- <Blob Name="object_sth_Blob_000000" Size="0x530" Offset="0x0" /> -->
<DList Name="object_sth_DL_001C30" Offset="0x1C30" />
<DList Name="object_sth_DL_001C38" Offset="0x1C38" />
<DList Name="object_sth_DL_001D80" Offset="0x1D80" />
<DList Name="object_sth_DL_001E88" Offset="0x1E88" />
<DList Name="object_sth_DL_001F90" Offset="0x1F90" />
<DList Name="object_sth_DL_0020D8" Offset="0x20D8" />
<DList Name="object_sth_DL_0021E0" Offset="0x21E0" />
<DList Name="object_sth_DL_0022E8" Offset="0x22E8" />
<DList Name="object_sth_DL_0024C0" Offset="0x24C0" />
<DList Name="object_sth_DL_0025D8" Offset="0x25D8" />
<DList Name="object_sth_DL_0026E8" Offset="0x26E8" />
<DList Name="object_sth_DL_0027F0" Offset="0x27F0" />
<DList Name="object_sth_DL_002908" Offset="0x2908" />
<DList Name="object_sth_DL_002A18" Offset="0x2A18" />
<DList Name="object_sth_DL_002B20" Offset="0x2B20" />
<Texture Name="object_sth_TLUT_002D08" OutName="tlut_002D08" Format="rgba16" Width="16" Height="16" Offset="0x2D08" />
<Texture Name="object_sth_Tex_002F08" OutName="tex_002F08" Format="ci8" Width="8" Height="8" Offset="0x2F08" />
<Texture Name="object_sth_Tex_002F48" OutName="tex_002F48" Format="ci8" Width="8" Height="8" Offset="0x2F48" />
<Texture Name="object_sth_Tex_002F88" OutName="tex_002F88" Format="i8" Width="16" Height="16" Offset="0x2F88" />
<Texture Name="object_sth_Tex_003088" OutName="tex_003088" Format="ci8" Width="8" Height="8" Offset="0x3088" />
<Texture Name="object_sth_Tex_0030C8" OutName="tex_0030C8" Format="i8" Width="8" Height="8" Offset="0x30C8" />
<Limb Name="object_sth_Standardlimb_003108" Type="Standard" EnumName="OBJECT_STH_LIMB_01" Offset="0x3108" />
<Limb Name="object_sth_Standardlimb_003114" Type="Standard" EnumName="OBJECT_STH_LIMB_02" Offset="0x3114" />
<Limb Name="object_sth_Standardlimb_003120" Type="Standard" EnumName="OBJECT_STH_LIMB_03" Offset="0x3120" />
<Limb Name="object_sth_Standardlimb_00312C" Type="Standard" EnumName="OBJECT_STH_LIMB_04" Offset="0x312C" />
<Limb Name="object_sth_Standardlimb_003138" Type="Standard" EnumName="OBJECT_STH_LIMB_05" Offset="0x3138" />
<Limb Name="object_sth_Standardlimb_003144" Type="Standard" EnumName="OBJECT_STH_LIMB_06" Offset="0x3144" />
<Limb Name="object_sth_Standardlimb_003150" Type="Standard" EnumName="OBJECT_STH_LIMB_07" Offset="0x3150" />
<Limb Name="object_sth_Standardlimb_00315C" Type="Standard" EnumName="OBJECT_STH_LIMB_08" Offset="0x315C" />
<Limb Name="object_sth_Standardlimb_003168" Type="Standard" EnumName="OBJECT_STH_LIMB_09" Offset="0x3168" />
<Limb Name="object_sth_Standardlimb_003174" Type="Standard" EnumName="OBJECT_STH_LIMB_0A" Offset="0x3174" />
<Limb Name="object_sth_Standardlimb_003180" Type="Standard" EnumName="OBJECT_STH_LIMB_0B" Offset="0x3180" />
<Limb Name="object_sth_Standardlimb_00318C" Type="Standard" EnumName="OBJECT_STH_LIMB_0C" Offset="0x318C" />
<Limb Name="object_sth_Standardlimb_003198" Type="Standard" EnumName="OBJECT_STH_LIMB_0D" Offset="0x3198" />
<Limb Name="object_sth_Standardlimb_0031A4" Type="Standard" EnumName="OBJECT_STH_LIMB_0E" Offset="0x31A4" />
<Limb Name="object_sth_Standardlimb_0031B0" Type="Standard" EnumName="OBJECT_STH_LIMB_0F" Offset="0x31B0" />
<Skeleton Name="object_sth_Skel_0031F8" Type="Flex" LimbType="Standard" LimbNone="OBJECT_STH_LIMB_NONE" LimbMax="OBJECT_STH_LIMB_MAX" EnumName="ObjectSthLimb" Offset="0x31F8" />
<!-- Unused copy of head from object_boj (Juggler). -->
<Array Name="gSthUnusedHeadVtx" Count="83" Offset="0x0">
<Vtx/>
</Array>
<DList Name="gSthHeadDL" Offset="0x1C30" />
<DList Name="gSthRightHandDL" Offset="0x1C38" />
<DList Name="gSthRightForearmDL" Offset="0x1D80" />
<DList Name="gSthRightUpperArmDL" Offset="0x1E88" />
<DList Name="gSthLeftHandDL" Offset="0x1F90" />
<DList Name="gSthLeftForearmDL" Offset="0x20D8" />
<DList Name="gSthLeftUpperArmDL" Offset="0x21E0" />
<DList Name="gSthTorsoDL" Offset="0x22E8" />
<DList Name="gSthRightFootDL" Offset="0x24C0" />
<DList Name="gSthRightShinDL" Offset="0x25D8" />
<DList Name="gSthRightThighDL" Offset="0x26E8" />
<DList Name="gSthLeftFootDL" Offset="0x27F0" />
<DList Name="gSthLeftShinDL" Offset="0x2908" />
<DList Name="gSthLeftThighDL" Offset="0x2A18" />
<DList Name="gSthPelvisDL" Offset="0x2B20" />
<Texture Name="gSthTLUT" OutName="sth_tlut" Format="rgba16" Width="16" Height="16" Offset="0x2D08" />
<Texture Name="gSthSkinTex" OutName="skin" Format="ci8" Width="8" Height="8" Offset="0x2F08" />
<Texture Name="gSthFingerTex" OutName="figer" Format="ci8" Width="8" Height="8" Offset="0x2F48" />
<!-- Shirt and pants get painted with color in the draw func. -->
<Texture Name="gSthShirtTex" OutName="shirt" Format="i8" Width="16" Height="16" Offset="0x2F88" />
<Texture Name="gSthBeltBuckleTex" OutName="belt_buckle" Format="ci8" Width="8" Height="8" Offset="0x3088" />
<Texture Name="gSthPantsTex" OutName="pants" Format="i8" Width="8" Height="8" Offset="0x30C8" />
<Limb Name="gSthPelvisLimb" Type="Standard" EnumName="STH_LIMB_PELVIS" Offset="0x3108" />
<Limb Name="gSthLeftThighLimb" Type="Standard" EnumName="STH_LIMB_LEFT_THIGH" Offset="0x3114" />
<Limb Name="gSthLeftShinLimb" Type="Standard" EnumName="STH_LIMB_LEFT_SHIN" Offset="0x3120" />
<Limb Name="gSthLeftFootLimb" Type="Standard" EnumName="STH_LIMB_LEFT_FOOT" Offset="0x312C" />
<Limb Name="gSthRightThighLimb" Type="Standard" EnumName="STH_LIMB_RIGHT_THIGH" Offset="0x3138" />
<Limb Name="gSthRightShinLimb" Type="Standard" EnumName="STH_LIMB_RIGHT_SHIN" Offset="0x3144" />
<Limb Name="gSthRightFootLimb" Type="Standard" EnumName="STH_LIMB_RIGHT_FOOT" Offset="0x3150" />
<Limb Name="gSthTorsoLimb" Type="Standard" EnumName="STH_LIMB_CHEST" Offset="0x315C" />
<Limb Name="gSthLeftUpperArmLimb" Type="Standard" EnumName="STH_LIMB_LEFT_UPPER_ARM" Offset="0x3168" />
<Limb Name="gSthLeftForearmLimb" Type="Standard" EnumName="STH_LIMB_LEFT_FOREARM" Offset="0x3174" />
<Limb Name="gSthLeftHandLimb" Type="Standard" EnumName="STH_LIMB_LEFT_HAND" Offset="0x3180" />
<Limb Name="gSthRightUpperArmLimb" Type="Standard" EnumName="STH_LIMB_RIGHT_UPPER_ARM" Offset="0x318C" />
<Limb Name="gSthRightForearmLimb" Type="Standard" EnumName="STH_LIMB_RIGHT_FOREARM" Offset="0x3198" />
<Limb Name="gSthRightHandLimb" Type="Standard" EnumName="STH_LIMB_RIGHT_HAND" Offset="0x31A4" />
<!-- EnSth2 uses this head, EnSth1 has a replacement head embedded in its overlay. -->
<Limb Name="gSthHeadLimb" Type="Standard" EnumName="STH_LIMB_HEAD" Offset="0x31B0" />
<Skeleton Name="gSthSkel" Type="Flex" LimbType="Standard" LimbNone="STH_LIMB_NONE" LimbMax="STH_LIMB_MAX" EnumName="ObjectSthLimb" Offset="0x31F8" />
</File>
</Root>
+11 -10
View File
@@ -1,14 +1,15 @@
<Root>
<File Name="ovl_En_Sth" BaseAddress="0x80B66D30" RangeStart="0x1890" RangeEnd="0x646C">
<DList Name="ovl_En_Sth_DL_0034A0" Offset="0x34A0"/>
<DList Name="ovl_En_Sth_DL_0037C0" Offset="0x37C0"/>
<Animation Name="ovl_En_Sth_Anim_003F50" Offset="0x3F50" /> <!-- Original name is "sth_ko_matsu" ("matsu" = "to wait") -->
<Animation Name="ovl_En_Sth_Anim_0045B4" Offset="0x45B4" /> <!-- Original name is "sth_kibunwaru" ("bad mood") -->
<Animation Name="ovl_En_Sth_Anim_004CC0" Offset="0x4CC0" /> <!-- Original name is "sth_talk2000" -->
<Animation Name="ovl_En_Sth_Anim_00533C" Offset="0x533C" /> <!-- Original name is "sth_wait2000" -->
<Animation Name="ovl_En_Sth_Anim_0059B8" Offset="0x59B8" /> <!-- Original name is "sth_miageru" ("look up") -->
<Animation Name="ovl_En_Sth_Anim_005E40" Offset="0x5E40" /> <!-- Original name is "sth_kyorokyoro" (onomatopoeic for "looking around restlessly") -->
<Animation Name="ovl_En_Sth_Anim_006354" Offset="0x6354" /> <!-- Original name is "sth_onegai" ("request; favor (to ask); wish") -->
<Animation Name="ovl_En_Sth_Anim_00645C" Offset="0x645C" /> <!-- Original name is "sth_tasukete" ("help!") -->
<DList Name="gEnSthHeadDL" Offset="0x34A0"/>
<DList Name="gEnSthExtraHairDL" Offset="0x37C0"/>
<Animation Name="gEnSthSignalAnim" Offset="0x3F50" /> <!-- Original name is "sth_ko_matsu" ("matsu" = "to wait") -->
<Animation Name="gEnSthBendDownAnim" Offset="0x45B4" /> <!-- Original name is "sth_kibunwaru" ("bad mood") -->
<Animation Name="gEnSthTalkWithHandUpAnim" Offset="0x4CC0" /> <!-- Original name is "sth_talk2000" -->
<Animation Name="gEnSthWaitAnim" Offset="0x533C" /> <!-- Original name is "sth_wait2000" -->
<Animation Name="gEnSthLookUpAnim" Offset="0x59B8" /> <!-- Original name is "sth_miageru" ("look up") -->
<Animation Name="gEnSthLookAroundAnim" Offset="0x5E40" /> <!-- Original name is "sth_kyorokyoro" (onomatopoeic for "looking around restlessly") -->
<Animation Name="gEnSthPleadAnim" Offset="0x6354" /> <!-- Original name is "sth_onegai" ("request; favor (to ask); wish") -->
<Animation Name="gEnSthPanicAnim" Offset="0x645C" /> <!-- Original name is "sth_tasukete" ("help!") -->
</File>
</Root>
+1 -1
View File
@@ -127,7 +127,7 @@ Gives the progress output that the website uses. Run for that warm glow.
### `tools/regconvert.py`
Convert `mips2c`'s `gGameInfo->data[n]` output (or a raw offset) into the appropriate variable in the REG pages. Can also be run on a file to mass-convert them: run with `-h` for details.
Convert `mips2c`'s `gRegEditor->data[n]` output (or a raw offset) into the appropriate variable in the REG pages. Can also be run on a file to mass-convert them: run with `-h` for details.
### `tools/rename_global_asm.py`
+85 -85
View File
@@ -67,7 +67,7 @@ void EnMs_Init(Actor* thisx, PlayState* play) {
Actor_SetScale(&this->actor, 0.015f);
this->actor.colChkInfo.mass = 0xFF;
this->actionFunc = func_80952734;
this->actor.speedXZ = 0.0f;
this->actor.speed = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.gravity = -1.0f;
}
@@ -81,7 +81,7 @@ void EnMs_Destroy(Actor* thisx, PlayState* play) {
void func_80952734(EnMs* this, PlayState* play) {
s16 temp_v1 = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
if (gSaveContext.save.inventory.items[10] == ITEM_NONE) {
if (gSaveContext.save.saveInfo.inventory.items[10] == ITEM_NONE) {
this->actor.textId = 0x92E;
} else {
this->actor.textId = 0x932;
@@ -107,13 +107,13 @@ void func_809529AC(EnMs* this, PlayState* play) {
func_800B8500(&this->actor, play, this->actor.xzDistToPlayer, this->actor.playerHeightRel, 0);
this->actionFunc = func_80952A1C;
} else {
Actor_PickUp(&this->actor, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Actor_OfferGetItem(&this->actor, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
}
}
void func_80952A1C(EnMs* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
func_80151938(play, 0x936U);
Message_ContinueTextbox(play, 0x936U);
this->actionFunc = func_809527F8;
} else {
func_800B8500(&this->actor, play, this->actor.xzDistToPlayer, this->actor.playerHeightRel, -1);
@@ -167,8 +167,8 @@ void func_809527F8(EnMs* this, PlayState* play) {
return;
}
if (Message_ShouldAdvance(play) != 0) {
func_801477B4(play);
Actor_PickUp((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Message_CloseTextbox(play);
Actor_OfferGetItem((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_809529AC;
return;
}
@@ -182,23 +182,23 @@ void func_809527F8(EnMs* this, PlayState* play) {
}
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
// Duplicate return node #17. Try simplifying control flow for better match
return;
}
func_801477B4(play);
if ((s32) gSaveContext.save.playerData.rupees < 0xA) {
Message_CloseTextbox(play);
if ((s32) gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
Message_ContinueTextbox(play, 0x935U);
return;
}
if ((s32) gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
if ((s32) gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
return;
}
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
}
@@ -256,8 +256,8 @@ block_5:
if (Message_ShouldAdvance(play) == 0) {
goto block_17;
}
func_801477B4(play);
Actor_PickUp((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Message_CloseTextbox(play);
Actor_OfferGetItem((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_809529AC;
return;
block_7:
@@ -273,29 +273,29 @@ block_7:
}
goto block_16;
block_11:
func_801477B4(play);
if ((s32) gSaveContext.save.playerData.rupees >= 0xA) {
Message_CloseTextbox(play);
if ((s32) gSaveContext.save.saveInfo.playerData.rupees >= 0xA) {
goto block_13;
}
play_sound(0x4806U);
func_80151938(play, 0x935U);
Message_ContinueTextbox(play, 0x935U);
return;
block_13:
if ((s32) gSaveContext.save.inventory.ammo[gItemSlots[0xA]] < 0x14) {
if ((s32) gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] < 0x14) {
goto block_15;
}
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
return;
block_15:
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
return;
block_16:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
block_17:
return;
}
@@ -312,11 +312,11 @@ which in many ways looks worse: you can see why the use of gotos in code is stro
The simplest sort of block label to eliminate is one that is only used once, and where the corresponding goto jumps over a simple block of code with no extra internal control flow structure. There are two obvious examples of this here, the first being
```C
if ((s32) gSaveContext.save.playerData.rupees >= 0xA) {
if ((s32) gSaveContext.save.saveInfo.playerData.rupees >= 0xA) {
goto block_13;
}
play_sound(0x4806U);
func_80151938(play, 0x935U);
Message_ContinueTextbox(play, 0x935U);
return;
block_13:
```
@@ -324,9 +324,9 @@ block_13:
Currently, this says to jump over the code block `play_sound...` if the condition in the if is satisfied. In non-goto terms, this means that the block should be run if the condition is *not* satisfied. This also illustrates a general property of goto-only mode: you have to reverse the senses of all of the ifs. Therefore the appropriate approach is to swap the if round, put the code block inside, and remove the goto and the label:
```C
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
Message_ContinueTextbox(play, 0x935U);
return;
}
```
@@ -359,8 +359,8 @@ block_5:
if (Message_ShouldAdvance(play) == 0) {
goto block_17;
}
func_801477B4(play);
Actor_PickUp((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Message_CloseTextbox(play);
Actor_OfferGetItem((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_809529AC;
return;
block_7:
@@ -376,27 +376,27 @@ block_7:
}
goto block_16;
block_11:
func_801477B4(play);
Message_CloseTextbox(play);
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
Message_ContinueTextbox(play, 0x935U);
return;
}
if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
if (gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
return;
}
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
return;
block_16:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
block_17:
return;
}
@@ -428,8 +428,8 @@ block_5:
if (Message_ShouldAdvance(play) == 0) {
return;
}
func_801477B4(play);
Actor_PickUp((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Message_CloseTextbox(play);
Actor_OfferGetItem((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_809529AC;
return;
block_7:
@@ -445,27 +445,27 @@ block_7:
}
goto block_16;
block_11:
func_801477B4(play);
Message_CloseTextbox(play);
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
Message_ContinueTextbox(play, 0x935U);
return;
}
if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
if (gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
return;
}
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
return;
block_16:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
}
```
@@ -495,21 +495,21 @@ So let us rewrite the entire second half as a switch:
```C
switch (play->msgCtx.choiceIndex) {
case 0:
func_801477B4(play);
Message_CloseTextbox(play);
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
Message_ContinueTextbox(play, 0x935U);
return;
}
if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
if (gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
return;
}
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
return;
@@ -518,7 +518,7 @@ So let us rewrite the entire second half as a switch:
case 1:
default:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
break;
}
```
@@ -531,17 +531,17 @@ There's a couple of other obvious things here:
```C
switch (play->msgCtx.choiceIndex) {
case 0:
func_801477B4(play);
Message_CloseTextbox(play);
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
Message_ContinueTextbox(play, 0x935U);
} else if (gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
} else {
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
}
@@ -550,7 +550,7 @@ There's a couple of other obvious things here:
case 1:
default:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
break;
}
```
@@ -588,25 +588,25 @@ block_5:
if (Message_ShouldAdvance(play) == 0) {
return;
}
func_801477B4(play);
Actor_PickUp((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Message_CloseTextbox(play);
Actor_OfferGetItem((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_809529AC;
return;
block_7:
if (Message_ShouldAdvance(play) != 0) {
switch (play->msgCtx.choiceIndex) {
case 0:
func_801477B4(play);
Message_CloseTextbox(play);
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
Message_ContinueTextbox(play, 0x935U);
} else if (gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
} else {
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
}
@@ -615,7 +615,7 @@ block_7:
case 1:
default:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
break;
}
}
@@ -652,8 +652,8 @@ void func_809527F8(EnMs* this, PlayState* play) {
if (Message_ShouldAdvance(play) == 0) {
return;
}
func_801477B4(play);
Actor_PickUp((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Message_CloseTextbox(play);
Actor_OfferGetItem((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_809529AC;
break;
@@ -661,17 +661,17 @@ void func_809527F8(EnMs* this, PlayState* play) {
if (Message_ShouldAdvance(play) != 0) {
switch (play->msgCtx.choiceIndex) {
case 0:
func_801477B4(play);
Message_CloseTextbox(play);
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
Message_ContinueTextbox(play, 0x935U);
} else if (gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
} else {
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
}
@@ -680,7 +680,7 @@ void func_809527F8(EnMs* this, PlayState* play) {
case 1:
default:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
break;
}
}
@@ -703,8 +703,8 @@ void func_809527F8(EnMs* this, PlayState* play) {
case 5:
if (Message_ShouldAdvance(play) != 0) {
func_801477B4(play);
Actor_PickUp((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Message_CloseTextbox(play);
Actor_OfferGetItem((Actor *) this, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_809529AC;
}
break;
@@ -713,17 +713,17 @@ void func_809527F8(EnMs* this, PlayState* play) {
if (Message_ShouldAdvance(play) != 0) {
switch (play->msgCtx.choiceIndex) {
case 0:
func_801477B4(play);
Message_CloseTextbox(play);
if (gSaveContext.save.playerData.rupees < 0xA) {
if (gSaveContext.save.saveInfo.playerData.rupees < 0xA) {
play_sound(0x4806U);
func_80151938(play, 0x935U);
} else if (gSaveContext.save.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
Message_ContinueTextbox(play, 0x935U);
} else if (gSaveContext.save.saveInfo.inventory.ammo[gItemSlots[0xA]] >= 0x14) {
play_sound(0x4806U);
func_80151938(play, 0x937U);
Message_ContinueTextbox(play, 0x937U);
} else {
func_8019F208();
Actor_PickUp((Actor *) this, play, 0x35, 90.0f, 10.0f);
Actor_OfferGetItem((Actor *) this, play, 0x35, 90.0f, 10.0f);
Rupees_ChangeBy(-0xA);
this->actionFunc = func_809529AC;
}
@@ -732,7 +732,7 @@ void func_809527F8(EnMs* this, PlayState* play) {
case 1:
default:
func_8019F230();
func_80151938(play, 0x934U);
Message_ContinueTextbox(play, 0x934U);
break;
}
}
+8 -12
View File
@@ -185,7 +185,7 @@ void func_80C102D4(EnRecepgirl* this, PlayState* play) {
if (this->actor.textId == 0x2AD9) {
Flags_SetSwitch(play, this->actor.params);
Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 10.0f);
if ((gSaveContext.save.weekEventReg[63] & 0x80)) {
if ((gSaveContext.save.saveInfo.weekEventReg[63] & 0x80)) {
this->actor.textId = 0x2ADF;
} else {
this->actor.textId = 0x2ADA;
@@ -203,7 +203,7 @@ void func_80C102D4(EnRecepgirl* this, PlayState* play) {
this->actor.textId = 0x2AE0;
}
}
func_80151938(play, this->actor.textId);
Message_ContinueTextbox(play, this->actor.textId);
}
}
@@ -327,17 +327,13 @@ the fourth element is the object (it is actually an enum, but the file itself ha
## Z64Utils
The latest release of Z64Utils can be downloaded from [https://github.com/Random06457/Z64Utils/releases]. To use it with MM, you also need a json file to fill in the file names: the latest version can be obtained from [https://github.com/Random06457/Z64Utils-Config]. It should work on Wine. Some graphics cards don't love it, but the 3D graphical part is only required for skeleton and animations.
The latest release of Z64Utils can be downloaded from [https://github.com/zeldaret/Z64Utils/releases]. It should work on Wine. Some graphics cards don't love it, but the 3D graphical part is only required for skeleton and animations.
Having downloaded and unzipped it, open the baserom file. This will populate the main window with a list:
![Z64Utils' main window](images/z64utils_main.png)
Search for the object file, right-click and select "Open in Object Analyzer". It will ask you to choose a segment: this is the segment that the file is put on, and allows Z64Utils to resolve the segmented addresses it references into symbols. The json already knows it should be segment `6`, so just click okay. This will open this window:
![Z64Utils' object analyzer window](images/z64utils_object_analyzer.png)
Go to "Analysis -> Find Dlists" and press OK (the defaults are usually fine). This will automatically search for displaylists in the object, which are a sufficiently distinctive format to be easy to find. We want to see the other stuff in the object too, so also do "Analysis -> Analyze Dlists". This will populate the window with even more stuff:
Search for the object file, then either double-click it or right-click it and select "Open in Object Analyzer" to open it. It will ask you to choose a segment: this is the segment that the file is put on, and allows Z64Utils to resolve the segmented addresses it references into symbols. The json already knows it should be segment `6`, so just click okay. This will open this window; displaylists and other data will automatically be analyzed when the object is opened:
![Z64Utils, with an analyzed object](images/z64utils_object_analyzed.png)
@@ -347,7 +343,7 @@ We will talk about what all these types of data are next time, but for now, all
static void* D_80C106B0[4] = { object_bg_Tex_00F8F0, object_bg_Tex_00FCF0, object_bg_Tex_0100F0, object_bg_Tex_00FCF0 };
```
actually are. We know they are set on segment 8, so we need to find where the skeleton uses them. We know from `object_bg_Skel_011B60` that this is at `0x06011B60`, so scroll down to it, right-click on it, and choose "Open in Skeleton Viewer". Pick an animation that we know it uses (sometimes Z64Utils misidentifies other things for animations), such as `object_bg_Anim_000968`, and you will get this error:
actually are. We know they are set on segment 8, so we need to find where the skeleton uses them. We know from `object_bg_Skel_011B60` that this is at `0x06011B60`, so scroll down to it and either double-click on it or right-click on it and choose "Open in Skeleton Viewer". Pick an animation that we know it uses (sometimes Z64Utils misidentifies other things for animations), such as `object_bg_Anim_000968`, and you will get this error:
![Z64Utils, error when viewing skeleton](images/z64utils_skeleton_error.png)
@@ -447,7 +443,7 @@ void EnRecepgirl_UnkLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) {
}
```
It is used to do a rotation of whatever limb `5` is. (The `+=` is because `rot->x` is the base rotation of the limb, and we have to add the same thing to it every frame to keep the angle changed and constant.) We can use Z64Utils to : setting segment `8` to one of what we know now are the eye textures, we can view the model in the skeleton viewer. The limb numbers in the object are one smaller than those in the actor (the root limb is only a concept for the code, not the object), so we find limb 4:
It is used to do a rotation of whatever limb `5` is. (The `+=` is because `rot->x` is the base rotation of the limb, and we have to add the same thing to it every frame to keep the angle changed and constant.) We can use Z64Utils to figure this out: setting segment `8` to one of what we know now are the eye textures, we can view the model in the skeleton viewer. The limb numbers in the object are one smaller than those in the actor (the root limb is only a concept for the code, not the object), so we find limb 4:
![Z64Utils highlighting a limb](images/z64utils_skeleton_head.png)
@@ -520,7 +516,7 @@ void func_80C102D4(EnRecepgirl* this, PlayState* play) {
if (this->actor.textId == 0x2AD9) { // "Welcome..."
Flags_SetSwitch(play, this->actor.params);
Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 10.0f);
if (gSaveContext.save.weekEventReg[63] & 0x80) { // showed Couple's Mask to meeting
if (gSaveContext.save.saveInfo.weekEventReg[63] & 0x80) { // showed Couple's Mask to meeting
this->actor.textId = 0x2ADF; // Mayor's office is on the left (meeting ended)
} else {
this->actor.textId = 0x2ADA; // Mayor's office is on the left (meeting ongoing)
@@ -540,7 +536,7 @@ void func_80C102D4(EnRecepgirl* this, PlayState* play) {
this->actor.textId = 0x2AE0; // drawing room on the right, don't go in without an appointment
}
}
func_80151938(play, this->actor.textId);
Message_ContinueTextbox(play, this->actor.textId);
}
}
```
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

+2 -2
View File
@@ -27,7 +27,7 @@ glabel func_809529AC
/* 0003D8 809529F8 C484009C */ lwc1 $f4, 0x9c($a0)
/* 0003DC 809529FC 8C870098 */ lw $a3, 0x98($a0)
/* 0003E0 80952A00 24060035 */ addiu $a2, $zero, 0x35
/* 0003E4 80952A04 0C02E287 */ jal Actor_PickUp
/* 0003E4 80952A04 0C02E287 */ jal Actor_OfferGetItem
/* 0003E8 80952A08 E7A40010 */ swc1 $f4, 0x10($sp)
.L80952A0C:
/* 0003EC 80952A0C 8FBF001C */ lw $ra, 0x1c($sp)
@@ -46,7 +46,7 @@ void func_809529AC(EnMs* this, PlayState* play) {
func_800B8500(&this->actor, play, this->actor.xzDistToPlayer, this->actor.playerHeightRel, 0);
this->actionFunc = func_80952A1C;
} else {
Actor_PickUp(&this->actor, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
Actor_OfferGetItem(&this->actor, play, 0x35, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
}
}
```
+1 -1
View File
@@ -111,7 +111,7 @@ If in doubt, look at completed objects in the repo, and if still in doubt, ask.
We are very fortunate that several nice tools have been written recently that are excellent for documenting asset files:
- [Z64Utils](https://github.com/Random06457/Z64Utils/releases), for looking at displaylists, textures they reference, the skeleton, animations, etc.
- [Z64Utils](https://github.com/zeldaret/Z64Utils/releases), for looking at displaylists, textures they reference, the skeleton, animations, etc.
- [Texture64](https://github.com/queueRAM/Texture64/releases), for looking at textures in all the common N64 formats (needed since Z64Utils cannot interpret textures not explicitly referenced in displaylists currently)
## Building and investigative modding

Some files were not shown because too many files have changed in this diff Show More