merge master, tatl enum

This commit is contained in:
engineer124
2023-05-29 18:07:41 +10:00
565 changed files with 38111 additions and 7114 deletions
+1 -1
View File
@@ -102,7 +102,7 @@ endif
# Check code syntax with host compiler
ifneq ($(RUN_CC_CHECK),0)
CHECK_WARNINGS := -Wall -Wextra -Wno-format-security -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-variable -Wno-missing-braces -Wno-int-conversion -Wno-unused-but-set-variable -Wno-unused-label
CHECK_WARNINGS := -Wall -Wextra -Wno-format-security -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-variable -Wno-missing-braces -Wno-int-conversion -Wno-unused-but-set-variable -Wno-unused-label -Wno-sign-compare -Wno-tautological-compare
CC_CHECK := gcc -fno-builtin -fsyntax-only -funsigned-char -fdiagnostics-color -std=gnu89 -D _LANGUAGE_C -D NON_MATCHING $(IINC) -nostdinc $(CHECK_WARNINGS)
ifneq ($(WERROR), 0)
CC_CHECK += -Werror
+76 -75
View File
@@ -1,79 +1,80 @@
<Root>
<!-- Assets for Anju in a wedding dress -->
<File Name="object_and" Segment="6">
<Animation Name="object_and_Anim_0000C8" Offset="0xC8" /> <!-- Original name is "and_test" -->
<DList Name="object_and_DL_004670" Offset="0x4670" />
<DList Name="object_and_DL_004708" Offset="0x4708" />
<DList Name="object_and_DL_0047F0" Offset="0x47F0" />
<DList Name="object_and_DL_004998" Offset="0x4998" />
<DList Name="object_and_DL_004BE0" Offset="0x4BE0" />
<DList Name="object_and_DL_004D90" Offset="0x4D90" />
<DList Name="object_and_DL_004E50" Offset="0x4E50" />
<DList Name="object_and_DL_004F20" Offset="0x4F20" />
<DList Name="object_and_DL_005038" Offset="0x5038" />
<DList Name="object_and_DL_0056C0" Offset="0x56C0" />
<DList Name="object_and_DL_005888" Offset="0x5888" />
<DList Name="object_and_DL_005938" Offset="0x5938" />
<DList Name="object_and_DL_0059C8" Offset="0x59C8" />
<DList Name="object_and_DL_005A80" Offset="0x5A80" />
<DList Name="object_and_DL_005BA8" Offset="0x5BA8" />
<DList Name="object_and_DL_005C60" Offset="0x5C60" />
<DList Name="object_and_DL_005D80" Offset="0x5D80" />
<DList Name="object_and_DL_005F10" Offset="0x5F10" />
<DList Name="object_and_DL_005FF8" Offset="0x5FF8" />
<DList Name="object_and_DL_006240" Offset="0x6240" />
<DList Name="object_and_DL_0063D8" Offset="0x63D8" />
<DList Name="object_and_DL_0064C0" Offset="0x64C0" />
<DList Name="object_and_DL_006708" Offset="0x6708" />
<DList Name="object_and_DL_0067E0" Offset="0x67E0" />
<Texture Name="object_and_Tex_006C30" OutName="tex_006C30" Format="rgba16" Width="8" Height="8" Offset="0x6C30" />
<Texture Name="object_and_Tex_006CB0" OutName="tex_006CB0" Format="rgba16" Width="8" Height="16" Offset="0x6CB0" />
<Texture Name="object_and_Tex_006DB0" OutName="tex_006DB0" Format="rgba16" Width="16" Height="16" Offset="0x6DB0" />
<Texture Name="object_and_Tex_006FB0" OutName="tex_006FB0" Format="rgba16" Width="16" Height="16" Offset="0x6FB0" />
<Texture Name="object_and_Tex_0071B0" OutName="tex_0071B0" Format="i8" Width="8" Height="8" Offset="0x71B0" />
<Texture Name="object_and_Tex_0071F0" OutName="tex_0071F0" Format="i8" Width="32" Height="32" Offset="0x71F0" />
<Texture Name="object_and_Tex_0075F0" OutName="tex_0075F0" Format="rgba16" Width="16" Height="16" Offset="0x75F0" />
<Texture Name="object_and_Tex_0077F0" OutName="tex_0077F0" Format="rgba16" Width="32" Height="16" Offset="0x77F0" />
<Texture Name="object_and_Tex_007BF0" OutName="tex_007BF0" Format="rgba16" Width="16" Height="16" Offset="0x7BF0" />
<Texture Name="object_and_Tex_007DF0" OutName="tex_007DF0" Format="rgba16" Width="32" Height="32" Offset="0x7DF0" />
<Texture Name="object_and_Tex_0085F0" OutName="tex_0085F0" Format="rgba16" Width="32" Height="32" Offset="0x85F0" />
<Texture Name="object_and_Tex_008DF0" OutName="tex_008DF0" Format="rgba16" Width="32" Height="32" Offset="0x8DF0" />
<Texture Name="object_and_Tex_0095F0" OutName="tex_0095F0" Format="rgba16" Width="32" Height="32" Offset="0x95F0" />
<Texture Name="object_and_Tex_009DF0" OutName="tex_009DF0" Format="rgba16" Width="32" Height="16" Offset="0x9DF0" />
<Texture Name="object_and_Tex_00A1F0" OutName="tex_00A1F0" Format="rgba16" Width="32" Height="16" Offset="0xA1F0" />
<Texture Name="object_and_Tex_00A5F0" OutName="tex_00A5F0" Format="i8" Width="32" Height="64" Offset="0xA5F0" />
<Texture Name="object_and_Tex_00ADF0" OutName="tex_00ADF0" Format="i8" Width="32" Height="32" Offset="0xADF0" />
<Limb Name="object_and_Standardlimb_00B1F0" Type="Standard" EnumName="OBJECT_AND_LIMB_01" Offset="0xB1F0" />
<Limb Name="object_and_Standardlimb_00B1FC" Type="Standard" EnumName="OBJECT_AND_LIMB_02" Offset="0xB1FC" />
<Limb Name="object_and_Standardlimb_00B208" Type="Standard" EnumName="OBJECT_AND_LIMB_03" Offset="0xB208" />
<Limb Name="object_and_Standardlimb_00B214" Type="Standard" EnumName="OBJECT_AND_LIMB_04" Offset="0xB214" />
<Limb Name="object_and_Standardlimb_00B220" Type="Standard" EnumName="OBJECT_AND_LIMB_05" Offset="0xB220" />
<Limb Name="object_and_Standardlimb_00B22C" Type="Standard" EnumName="OBJECT_AND_LIMB_06" Offset="0xB22C" />
<Limb Name="object_and_Standardlimb_00B238" Type="Standard" EnumName="OBJECT_AND_LIMB_07" Offset="0xB238" />
<Limb Name="object_and_Standardlimb_00B244" Type="Standard" EnumName="OBJECT_AND_LIMB_08" Offset="0xB244" />
<Limb Name="object_and_Standardlimb_00B250" Type="Standard" EnumName="OBJECT_AND_LIMB_09" Offset="0xB250" />
<Limb Name="object_and_Standardlimb_00B25C" Type="Standard" EnumName="OBJECT_AND_LIMB_0A" Offset="0xB25C" />
<Limb Name="object_and_Standardlimb_00B268" Type="Standard" EnumName="OBJECT_AND_LIMB_0B" Offset="0xB268" />
<Limb Name="object_and_Standardlimb_00B274" Type="Standard" EnumName="OBJECT_AND_LIMB_0C" Offset="0xB274" />
<Limb Name="object_and_Standardlimb_00B280" Type="Standard" EnumName="OBJECT_AND_LIMB_0D" Offset="0xB280" />
<Limb Name="object_and_Standardlimb_00B28C" Type="Standard" EnumName="OBJECT_AND_LIMB_0E" Offset="0xB28C" />
<Limb Name="object_and_Standardlimb_00B298" Type="Standard" EnumName="OBJECT_AND_LIMB_0F" Offset="0xB298" />
<Limb Name="object_and_Standardlimb_00B2A4" Type="Standard" EnumName="OBJECT_AND_LIMB_10" Offset="0xB2A4" />
<Limb Name="object_and_Standardlimb_00B2B0" Type="Standard" EnumName="OBJECT_AND_LIMB_11" Offset="0xB2B0" />
<Limb Name="object_and_Standardlimb_00B2BC" Type="Standard" EnumName="OBJECT_AND_LIMB_12" Offset="0xB2BC" />
<Limb Name="object_and_Standardlimb_00B2C8" Type="Standard" EnumName="OBJECT_AND_LIMB_13" Offset="0xB2C8" />
<Limb Name="object_and_Standardlimb_00B2D4" Type="Standard" EnumName="OBJECT_AND_LIMB_14" Offset="0xB2D4" />
<Limb Name="object_and_Standardlimb_00B2E0" Type="Standard" EnumName="OBJECT_AND_LIMB_15" Offset="0xB2E0" />
<Limb Name="object_and_Standardlimb_00B2EC" Type="Standard" EnumName="OBJECT_AND_LIMB_16" Offset="0xB2EC" />
<Limb Name="object_and_Standardlimb_00B2F8" Type="Standard" EnumName="OBJECT_AND_LIMB_17" Offset="0xB2F8" />
<Limb Name="object_and_Standardlimb_00B304" Type="Standard" EnumName="OBJECT_AND_LIMB_18" Offset="0xB304" />
<Limb Name="object_and_Standardlimb_00B310" Type="Standard" EnumName="OBJECT_AND_LIMB_19" Offset="0xB310" />
<Skeleton Name="object_and_Skel_00B380" Type="Flex" LimbType="Standard" LimbNone="OBJECT_AND_LIMB_NONE" LimbMax="OBJECT_AND_LIMB_MAX" EnumName="ObjectAndLimb" Offset="0xB380" />
<Animation Name="object_and_Anim_00DA58" Offset="0xDA58" /> <!-- Original name is "wa_aruku" ("walk") -->
<Animation Name="object_and_Anim_00EE00" Offset="0xEE00" /> <!-- Original name is "wa_hidari" ("left; left hand side") -->
<Animation Name="object_and_Anim_00F6C4" Offset="0xF6C4" /> <!-- Original name is "wa_hidari_loop" -->
<Animation Name="object_and_Anim_00FE64" Offset="0xFE64" /> <!-- Original name is "wa_kaoage" ("raising face") -->
<Animation Name="object_and_Anim_01067C" Offset="0x1067C" /> <!-- Original name is "wa_kaoage_loop" -->
<Animation Name="object_and_Anim_011AFC" Offset="0x11AFC" /> <!-- Original name is "wa_kaoaruki" (probably a combination of "kaoage" and "aruki") -->
<Animation Name="object_and_Anim_0122D0" Offset="0x122D0" /> <!-- Original name is "wa_utumuki_loop" ("looking down") -->
<Animation Name="gAndStaticAnim" Offset="0xC8" /> <!-- Original name is "and_test" -->
<DList Name="gAndTrainDL" Offset="0x4670" />
<DList Name="gAndCalvesDL" Offset="0x4708" />
<DList Name="gAndShinsDL" Offset="0x47F0" />
<DList Name="gAndThighsDL" Offset="0x4998" />
<DList Name="gAndPelvisDL" Offset="0x4BE0" />
<DList Name="gAndLowerVeilDL" Offset="0x4D90" />
<DList Name="gAndUpperVeilDL" Offset="0x4E50" />
<DList Name="gAndVeilBaseDL" Offset="0x4F20" />
<DList Name="gAndHeadDL" Offset="0x5038" />
<DList Name="gAndBouquetDL" Offset="0x56C0" />
<DList Name="gAndCenterLeavesTipDL" Offset="0x5888" />
<DList Name="gAndCenterLeavesDL" Offset="0x5938" />
<DList Name="gAndRightLeavesTipDL" Offset="0x59C8" />
<DList Name="gAndRightLeavesDL" Offset="0x5A80" />
<DList Name="gAndLeftLeavesTipDL" Offset="0x5BA8" />
<DList Name="gAndLeftLeavesDL" Offset="0x5C60" />
<DList Name="gAndRightHandDL" Offset="0x5D80" />
<DList Name="gAndRightForearmDL" Offset="0x5F10" />
<DList Name="gAndRightUpperArmDL" Offset="0x5FF8" />
<DList Name="gAndLeftHandDL" Offset="0x6240" />
<DList Name="gAndLeftForearmDL" Offset="0x63D8" />
<DList Name="gAndLeftUpperArmDL" Offset="0x64C0" />
<DList Name="gAndSymbolDL" Offset="0x6708" />
<DList Name="gAndTorsoDL" Offset="0x67E0" />
<Texture Name="gAndSkinShadowTex" OutName="and_skin_shadow" Format="rgba16" Width="8" Height="8" Offset="0x6C30" />
<Texture Name="gAndHairTex" OutName="and_hair" Format="rgba16" Width="8" Height="16" Offset="0x6CB0" />
<Texture Name="gAndEarTex" OutName="and_ear" Format="rgba16" Width="16" Height="16" Offset="0x6DB0" />
<Texture Name="gAndFingersTex" OutName="and_fingers" Format="rgba16" Width="16" Height="16" Offset="0x6FB0" />
<Texture Name="gAndDressGradientTex" OutName="and_dress_gradient" Format="i8" Width="8" Height="8" Offset="0x71B0" />
<Texture Name="gAndDressSymbolTex" OutName="and_dress_symbol" Format="i8" Width="32" Height="32" Offset="0x71F0" />
<Texture Name="gAndPearlTex" OutName="and_pearl" Format="rgba16" Width="16" Height="16" Offset="0x75F0" />
<Texture Name="gAndLeavesTex" OutName="and_leaves" Format="rgba16" Width="32" Height="16" Offset="0x77F0" />
<Texture Name="gAndFlowerTex" OutName="and_flower" Format="rgba16" Width="16" Height="16" Offset="0x7BF0" />
<Texture Name="gAndEyeOpenTex" OutName="and_eye_open" Format="rgba16" Width="32" Height="32" Offset="0x7DF0" />
<Texture Name="gAndEyeClosingTex" OutName="and_eye_closing" Format="rgba16" Width="32" Height="32" Offset="0x85F0" />
<Texture Name="gAndEyeClosedTex" OutName="and_eye_closed" Format="rgba16" Width="32" Height="32" Offset="0x8DF0" />
<Texture Name="gAndEyeOpeningTex" OutName="and_eye_opening" Format="rgba16" Width="32" Height="32" Offset="0x95F0" />
<Texture Name="gAndMouthNeutralTex" OutName="and_mouth_neutral" Format="rgba16" Width="32" Height="16" Offset="0x9DF0" />
<Texture Name="gAndMouthSmileTex" OutName="and_mouth_smile" Format="rgba16" Width="32" Height="16" Offset="0xA1F0" />
<Texture Name="gAndDressSpotsTex" OutName="and_dress_spots" Format="i8" Width="32" Height="64" Offset="0xA5F0" />
<Texture Name="gAndDressCircleTex" OutName="and_dress_circle" Format="i8" Width="32" Height="32" Offset="0xADF0" />
<Limb Name="gAndRootLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_ROOT" Offset="0xB1F0" />
<Limb Name="gAndTorsoLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_TORSO" Offset="0xB1FC" />
<Limb Name="gAndSymbolLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_SYMBOL" Offset="0xB208" />
<Limb Name="gAndLeftUpperArmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_UPPER_ARM" Offset="0xB214" />
<Limb Name="gAndLeftForearmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_FOREARM" Offset="0xB220" />
<Limb Name="gAndLeftHandLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_HAND" Offset="0xB22C" />
<Limb Name="gAndRightUpperArmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_UPPER_ARM" Offset="0xB238" />
<Limb Name="gAndRightForearmLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_FOREARM" Offset="0xB244" />
<Limb Name="gAndRightHandLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_HAND" Offset="0xB250" />
<Limb Name="gAndBouquetLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_BOUQUET" Offset="0xB25C" />
<Limb Name="gAndLeftLeavesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_LEAVES" Offset="0xB268" />
<Limb Name="gAndLeftLeavesTipLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LEFT_LEAVES_TIP" Offset="0xB274" />
<Limb Name="gAndRightLeavesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_LEAVES" Offset="0xB280" />
<Limb Name="gAndRightLeavesTipLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_RIGHT_LEAVES_TIP" Offset="0xB28C" />
<Limb Name="gAndCenterLeavesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_CENTER_LEAVES" Offset="0xB298" />
<Limb Name="gAndCenterLeavesTipLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_CENTER_LEAVES_TIP" Offset="0xB2A4" />
<Limb Name="gAndVeilBaseLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_VEIL_BASE" Offset="0xB2B0" />
<Limb Name="gAndHeadLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_HEAD" Offset="0xB2BC" />
<Limb Name="gAndUpperVeilLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_UPPER_VEIL" Offset="0xB2C8" />
<Limb Name="gAndLowerVeilLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_LOWER_VEIL" Offset="0xB2D4" />
<Limb Name="gAndPelvisLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_PELVIS" Offset="0xB2E0" />
<Limb Name="gAndThighsLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_THIGHS" Offset="0xB2EC" />
<Limb Name="gAndShinsLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_SHINS" Offset="0xB2F8" />
<Limb Name="gAndCalvesLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_CALVES" Offset="0xB304" />
<Limb Name="gAndTrainLimb" Type="Standard" EnumName="OBJECT_AND_LIMB_TRAIN" Offset="0xB310" />
<Skeleton Name="gAndSkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_AND_LIMB_NONE" LimbMax="OBJECT_AND_LIMB_MAX" EnumName="ObjectAndLimb" Offset="0xB380" />
<Animation Name="gAndWalkAnim" Offset="0xDA58" /> <!-- Original name is "wa_aruku" ("walk") -->
<Animation Name="gAndRaiseHandAnim" Offset="0xEE00" /> <!-- Original name is "wa_hidari" ("left; left hand side") -->
<Animation Name="gAndRaisedHandLoopAnim" Offset="0xF6C4" /> <!-- Original name is "wa_hidari_loop" -->
<Animation Name="gAndRaiseHeadAnim" Offset="0xFE64" /> <!-- Original name is "wa_kaoage" ("raising face") -->
<Animation Name="gAndRaisedHeadLoopAnim" Offset="0x1067C" /> <!-- Original name is "wa_kaoage_loop" -->
<Animation Name="gAndRaisedHandWalkAnim" Offset="0x11AFC" /> <!-- Original name is "wa_kaoaruki" (probably a combination of "kaoage" and "aruki") -->
<Animation Name="gAndIdleAnim" Offset="0x122D0" /> <!-- Original name is "wa_utumuki_loop" ("looking down") -->
</File>
</Root>
+9 -9
View File
@@ -47,16 +47,16 @@
<Texture Name="gGoronDonGeroMaskFrillsTex" OutName="goron_don_gero_mask_frills" Format="rgba16" Width="32" Height="32" Offset="0x6440" />
<Texture Name="gGoronDonGeroMaskEyeTex" OutName="goron_don_gero_mask_eye" Format="rgba16" Width="16" Height="16" Offset="0x6C40" />
<!-- Rolled Up Half -->
<!-- Note: Seems broken -->
<!-- Scared -->
<!-- Unused leftover from OoT -->
<DList Name="gGoronEmptyDL" Offset="0x7A60" />
<DList Name="gGoronRolledUpHalfDL" Offset="0x7A68" />
<Texture Name="gGoronRolledUpHalfTLUT" OutName="goron_rolled_up_half_tlut" Format="rgba16" Width="16" Height="16" Offset="0x7EF0" />
<Texture Name="gGoronRolledUpHalfSkinTex" OutName="goron_rolled_up_half_skin" Format="ci8" Width="16" Height="16" Offset="0x80F0" />
<Texture Name="gGoronRolledUpHalfBellyButtonTex" OutName="goron_rolled_up_half_belly_button" Format="ci8" Width="8" Height="8" Offset="0x81F0" />
<Texture Name="gGoronRolledUpHalfBottomTex" OutName="goron_rolled_up_half_bottom" Format="ci8" Width="8" Height="16" Offset="0x8230" />
<Texture Name="gGoronRolledUpHalfRocksTex" OutName="goron_rolled_up_half_rocks" Format="ci8" Width="32" Height="64" Offset="0x82B0" />
<Texture Name="gGoronRolledUpHalfHairTex" OutName="goron_rolled_up_half_hair" Format="ci8" Width="16" Height="16" Offset="0x8AB0" />
<DList Name="gGoronScaredDL" Offset="0x7A68" />
<Texture Name="gGoronScaredTLUT" OutName="goron_scared_tlut" Format="rgba16" Width="16" Height="16" Offset="0x7EF0" />
<Texture Name="gGoronScaredSkinTex" OutName="goron_scared_skin" Format="ci8" Width="16" Height="16" Offset="0x80F0" />
<Texture Name="gGoronScaredBellyButtonTex" OutName="goron_scared_belly_button" Format="ci8" Width="8" Height="8" Offset="0x81F0" />
<Texture Name="gGoronScaredBottomTex" OutName="goron_scared_bottom" Format="ci8" Width="8" Height="16" Offset="0x8230" />
<Texture Name="gGoronScaredRocksTex" OutName="goron_scared_rocks" Format="ci8" Width="32" Height="64" Offset="0x82B0" />
<Texture Name="gGoronScaredHairTex" OutName="goron_scared_hair" Format="ci8" Width="16" Height="16" Offset="0x8AB0" />
<!-- Rolled Up -->
<DList Name="gGoronEmpty2DL" Offset="0x91A0" />
+9 -9
View File
@@ -1,13 +1,13 @@
<Root>
<File Name="object_spot11_obj" Segment="6">
<DList Name="object_spot11_obj_DL_000080" Offset="0x80" />
<DList Name="object_spot11_obj_DL_000088" Offset="0x88" />
<Texture Name="object_spot11_obj_Tex_000120" OutName="tex_000120" Format="rgba16" Width="32" Height="64" Offset="0x120" />
<Collision Name="object_spot11_obj_Colheader_0011C0" Offset="0x11C0" />
<DList Name="object_spot11_obj_DL_0013F0" Offset="0x13F0" />
<Texture Name="object_spot11_obj_TLUT_001560" OutName="tlut_001560" Format="rgba16" Width="16" Height="16" Offset="0x1560" />
<Texture Name="object_spot11_obj_Tex_001760" OutName="tex_001760" Format="ci8" Width="32" Height="32" Offset="0x1760" />
<Texture Name="object_spot11_obj_Tex_001B60" OutName="tex_001B60" Format="ci8" Width="32" Height="16" Offset="0x1B60" />
<Collision Name="object_spot11_obj_Colheader_001EB8" Offset="0x1EB8" />
<DList Name="gSpot11EmptyDL" Offset="0x80" />
<DList Name="gGoronDoorDL" Offset="0x88" />
<Texture Name="gGoronDoorTex" OutName="goron_door" Format="rgba16" Width="32" Height="64" Offset="0x120" />
<Collision Name="gGoronDoorCol" Offset="0x11C0" />
<DList Name="gWoodStepDL" Offset="0x13F0" />
<Texture Name="gWoodTLUT" OutName="wood_tlut" Format="rgba16" Width="16" Height="16" Offset="0x1560" />
<Texture Name="gWoodStepTopTex" OutName="wood_step_top" Format="ci8" Width="32" Height="32" Offset="0x1760" />
<Texture Name="gWoodStepSideTex" OutName="wood_step_side" Format="ci8" Width="32" Height="16" Offset="0x1B60" />
<Collision Name="gWoodStepCol" Offset="0x1EB8" />
</File>
</Root>
+9
View File
@@ -0,0 +1,9 @@
<Root>
<File Name="ovl_fbdemo_wipe1" BaseAddress="0x80AC57B0" RangeStart="0x470" RangeEnd="0xEF8">
<Array Name="sTransWipe1Vtx" Count="25" Offset="0x470">
<Vtx/>
</Array>
<Texture Name="sTransWipe1Tex" OutName="trans_wipe" Format="i4" Width="64" Height="64" Offset="0x600"/>
<DList Name="sTransWipe1DL" Offset="0xE00"/>
</File>
</Root>
Executable → Regular
View File
+1 -1
View File
@@ -136,7 +136,7 @@ void EnMs_Update(Actor* thisx, PlayState* play) {
void EnMs_Draw(Actor* thisx, PlayState* play) {
EnMs* this = THIS;
func_8012C28C(play->state.gfxCtx);
Gfx_SetupDL25_Opa(play->state.gfxCtx);
SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL,
NULL, &this->actor);
}
+1 -1
View File
@@ -244,7 +244,7 @@ void EnRecepgirl_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
func_8012C28C(play->state.gfxCtx);
Gfx_SetupDL25_Opa(play->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, D_80C106B0[this->unk_2AC]);
+4 -4
View File
@@ -29,7 +29,7 @@ void EnRecepgirl_Draw(Actor* thisx, PlayState* play) {
temp_a0 = play->state.gfxCtx;
sp30 = temp_a0;
func_8012C28C(temp_a0);
Gfx_SetupDL25_Opa(temp_a0);
temp_v1 = sp30->polyOpa.p;
sp30->polyOpa.p = temp_v1 + 8;
temp_v1->words.w0 = 0xDB060020;
@@ -105,7 +105,7 @@ void EnRecepgirl_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
func_8012C28C(play->state.gfxCtx);
Gfx_SetupDL25_Opa(play->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, D_80C106B0[this->unk_2AC]);
@@ -217,7 +217,7 @@ void ObjTree_Draw(Actor* thisx, PlayState* play) {
sp34 = (s16) (s32) (f32) thisx->shape.rot.z;
temp_a0 = play->state.gfxCtx;
temp_s0 = temp_a0;
func_8012C28C(temp_a0);
Gfx_SetupDL25_Opa(temp_a0);
temp_v0 = temp_s0->polyOpa.p;
temp_s0->polyOpa.p = temp_v0 + 8;
temp_v0->words.w0 = 0xDA380003;
@@ -309,7 +309,7 @@ void ObjTree_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
func_8012C28C(play->state.gfxCtx);
Gfx_SetupDL25_Opa(play->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_06000680);
+52 -166
View File
@@ -128,12 +128,8 @@ void MtxConv_L2F(MtxF* mtx, Mtx* mf);
void __assert(const char* file, u32 lineNum);
// void func_800862B4(void);
void* SystemArena_MallocMin1(u32 size);
void SystemArena_FreeNullCheck(void* ptr);
void SystemArena_RunInits(void);
void SystemArena_Init(void* start, size_t size);
s32 func_80086620(OSMesgQueue* param_1, PadMgr* param_2, OSContStatus* param_3);
// void func_80086760(void);
f32 func_80086760(f32 x);
// void func_80086794(void);
// void func_800867B4(void);
// void func_800867D4(void);
@@ -328,7 +324,7 @@ OSTime osGetTime(void);
void guRotateF(float m[4][4], f32 a, f32 x, f32 y, f32 z);
void guRotate(Mtx* m, f32 a, f32 x, f32 y, f32 z);
void __osSetGlobalIntMask(u32 mask);
// void osVoiceInit(void);
s32 osVoiceInit(OSMesgQueue* mq, OSVoiceHandle* handle, s32 channel);
s32 __osContChannelReset(OSMesgQueue* mq, s32 channel);
// void __osVoiceSetADConverter(void);
s32 osAiSetFrequency(u32 frequency);
@@ -609,8 +605,8 @@ void Flags_SetCollectible(PlayState* play, s32 flag);
void TitleCard_InitBossName(GameState* gameState, TitleCardContext* titleCtx, TexturePtr texture, s16 x, s16 y, u8 width, u8 height);
s32 func_800B648C(PlayState* play, s32 arg1, s32 timer, f32 arg3, Vec3f* arg4);
f32 func_800B64FC(PlayState* play, f32 arg1, Vec3f* arg2, u32* arg3);
s32 Actor_SetPlayerImpact(PlayState* play, PlayerImpactType type, s32 timer, f32 dist, Vec3f* pos);
f32 Actor_GetPlayerImpact(PlayState* play, f32 range, Vec3f* pos, PlayerImpactType* type);
void* func_800B6584(PlayState* play, s16 id, void* arg2, size_t size);
void* func_800B6608(PlayState* play, s16 id);
void* func_800B6680(PlayState* play, s16 id);
@@ -726,8 +722,9 @@ Actor* Actor_SpawnAsChildAndCutscene(ActorContext* actorCtx, PlayState* play, s1
Actor* Actor_SpawnAsChild(ActorContext* actorCtx, Actor* parent, PlayState* play, s16 actorId, f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, s32 params);
void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx);
void Enemy_StartFinishingBlow(PlayState* play, Actor* actor);
s16 func_800BBAC0(s16 arg0[2], s16 arg1, s16 arg2, s16 arg3);
s16 func_800BBB74(s16 arg0[2], s16 arg1, s16 arg2, s16 arg3);
s16 func_800BBAC0(BlinkInfo* info, s16 arg1, s16 arg2, s16 arg3);
s16 func_800BBB74(BlinkInfo* info, s16 arg1, s16 arg2, s16 arg3);
s16 func_800BBC20(BlinkInfo* info, s16 arg1, s16 arg2, s16 arg3);
void Actor_SpawnBodyParts(Actor* actor, PlayState* play, s32 partParams, Gfx** dList);
void Actor_SpawnFloorDustRing(PlayState* play, Actor* actor, Vec3f* posXZ, f32 radius, s32 countMinusOne, f32 randAccelWeight, s16 scale, s16 scaleStep, u8 useLighting);
void func_800BBFB0(PlayState* play, Vec3f* position, f32 arg2, s32 arg3, s16 arg4, s16 scaleStep, u8 arg6);
@@ -739,9 +736,9 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16
s32 Actor_IsTargeted(PlayState* play, Actor* actor);
s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor);
void func_800BC620(Vec3f* pos, Vec3f* scale, u8 alpha, PlayState* play);
void Actor_AddQuake(PlayState* play, s16 verticalMag, s16 countdown);
void Actor_AddQuakeWithSpeed(PlayState* play, s16 verticalMag, s16 countdown, s16 speed);
void func_800BC848(Actor* actor, PlayState* play, s16 y, s16 countdown);
void Actor_RequestQuake(PlayState* play, s16 y, s16 duration);
void Actor_RequestQuakeWithSpeed(PlayState* play, s16 y, s16 duration, s16 speed);
void Actor_RequestQuakeAndRumble(Actor* actor, PlayState* play, s16 quakeY, s16 quakeDuration);
void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type);
void Actor_SetColorFilter(Actor* actor, u16 colorFlag, u16 colorIntensityMax, u16 bufFlag, u16 duration);
Hilite* func_800BCBF4(Vec3f* arg0, PlayState* play);
@@ -797,47 +794,45 @@ s32 DynaPolyActor_IsSwitchPressed(DynaPolyActor* dynaActor);
s32 DynaPolyActor_IsHeavySwitchPressed(DynaPolyActor* dynaActor);
s32 DynaPolyActor_ValidateMove(PlayState* play, DynaPolyActor* dynaActor, s16 startRadius, s16 endRadius, s16 startHeight);
Camera* Camera_Alloc(View* view, CollisionContext* bg, PlayState* play);
void Camera_Free(Camera* camera);
void Camera_Init(Camera* camera, View* view, CollisionContext* bg, PlayState* play);
// void func_800DDFE0(void);
void Camera_InitPlayerSettings(Camera* camera, Player* player);
Camera* Camera_Create(View* view, CollisionContext* colCtx, PlayState* play);
void Camera_Destroy(Camera* camera);
void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, PlayState* play);
void func_800DDFE0(Camera* camera);
void Camera_InitFocalActorSettings(Camera* camera, Actor* focalActor);
s32 Camera_ChangeStatus(Camera* camera, s16 status);
// void func_800DE324(void);
// void func_800DE62C(void);
// void func_800DE840(void);
// void func_800DE890(void);
// UNK_TYPE4 func_800DE954(Camera* camera);
Vec3s* Camera_Update(Vec3s* param_1, Camera* camera);
// void func_800DF498(void);
u32 Camera_SetMode(Camera* camera, s16 mode, s8 param_3);
s32 Camera_UpdateWater(Camera* camera);
void Camera_EarthquakeDay3(Camera* camera);
s32 Camera_UpdateHotRoom(Camera* camera);
s32 Camera_SetSwordDistortion(Camera* camera);
s32 Camera_RequestGiantsMaskSetting(Camera* camera);
Vec3s* Camera_Update(Vec3s* inputDir, Camera* camera);
s32 func_800DF498(Camera* camera);
s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 forceChange);
s32 Camera_ChangeMode(Camera* camera, s16 mode);
s32 func_800DF86C(Camera* camera, s16 arg1);
// void func_800DF8EC(void);
s32 Camera_CheckValidMode(Camera* camera, s16 mode);
s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags);
s32 Camera_ChangeSetting(Camera* camera, s16 setting);
s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx);
// void func_800DFC1C(void);
// void func_800DFC40(void);
s32 Camera_GetInputDirYaw(Camera* camera);
void Camera_GetCamDir(Vec3s* dst, Camera* camera);
s32 Camera_ChangeActorCsCamIndex(Camera* camera, s32 bgCamIndex);
Vec3s* Camera_GetInputDir(Vec3s* dst, Camera* camera);
s16 Camera_GetInputDirPitch(Camera* camera);
s16 Camera_GetInputDirYaw(Camera* camera);
Vec3s* Camera_GetCamDir(Vec3s* dst, Camera* camera);
s16 Camera_GetCamDirPitch(Camera* camera);
s16 Camera_GetCamDirYaw(Camera* camera);
void Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown);
s32 Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown);
s32 Camera_SetViewParam(Camera* camera, s32 viewFlag, void* param);
// UNK_TYPE4 func_800DFEF0(s32 param_1, u16 param_2);
void func_800DFF18(Camera* camera, s32 arg1);
// UNK_TYPE4 func_800DFF34(s32 param_1);
// UNK_TYPE4 func_800DFF44(void);
s16 Camera_SetFlags(Camera* iParm1, s16 flags);
s16 Camera_ClearFlags(Camera* camera, s16 flags);
s32 Camera_UnsetViewFlag(Camera* camera, s16 viewFlag);
s32 Camera_OverwriteStateFlags(Camera* camera, s16 stateFlags);
s16 Camera_SetStateFlag(Camera* camera, s16 flags);
s16 Camera_UnsetStateFlag(Camera* camera, s16 flags);
s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 bgCamIndex, f32 arg3, s16 timer1, s16 timer2, s16 timer3);
s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera);
// UNK_TYPE4 func_800E01AC(void);
Vec3f* Camera_GetQuakeOffset(Vec3f* dst, Camera* camera);
// void func_800E01DC(s32 param_1, u32 param_2, UNK_TYPE4 param_3, UNK_TYPE4 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6);
// UNK_TYPE4 func_800E0228(void);
void func_800E0238(Camera* camera);
void Camera_SetToTrackActor(Camera* camera, Actor* actor);
s32 Camera_Copy(Camera* dstCam, Camera* srcCam);
s32 Camera_IsDbgCamEnabled(void);
Vec3f* Camera_GetQuakeOffset(Vec3f* quakeOffset, Camera* camera);
void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3);
s32 Camera_GetNegOne(void);
s16 func_800E0238(Camera* camera);
void Camera_SetFocalActor(Camera* camera, Actor* actor);
void Camera_SetTargetActor(Camera* camera, Actor* actor);
f32 Camera_GetWaterYPos(Camera* camera);
void func_800E0348(Camera* camera);
@@ -1343,7 +1338,7 @@ void* func_801068FC(PlayState* play, void* arg1, size_t size);
void func_80108AF8(PlayState* play);
s32 func_801090B0(s32 arg0);
s32 func_80109124(s16 arg0);
// void func_801091F0(void);
void func_801091F0(PlayState* play);
void func_80109428(PlayState* play);
// void func_801094A0(void);
// void func_801094C8(void);
@@ -1462,17 +1457,17 @@ f32 OLib_ClampMinDist(f32 val, f32 min);
f32 OLib_ClampMaxDist(f32 val, f32 max);
Vec3f* OLib_Vec3fDistNormalize(Vec3f* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_VecSphToVec3f(Vec3f* dest, VecSph* sph);
Vec3f* OLib_VecSphGeoToVec3f(Vec3f* dest, VecSph* sph);
Vec3f* OLib_VecGeoToVec3f(Vec3f* dest, VecGeo* geo);
VecSph* OLib_Vec3fToVecSph(VecSph* dest, Vec3f* vec);
VecSph* OLib_Vec3fToVecSphGeo(VecSph* dest, Vec3f* vec);
VecGeo* OLib_Vec3fToVecGeo(VecGeo* dest, Vec3f* vec);
VecSph* OLib_Vec3fDiffToVecSph(VecSph* dest, Vec3f* a, Vec3f* b);
VecSph* OLib_Vec3fDiffToVecSphGeo(VecSph* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_VecSphAddToVec3f(Vec3f* dest, Vec3f* a, VecSph* sph);
VecGeo* OLib_Vec3fDiffToVecGeo(VecGeo* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_AddVecGeoToVec3f(Vec3f* dest, Vec3f* a, VecGeo* geo);
Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b);
Vec3f* OLib_Vec3fDiffDegF(Vec3f* dest, Vec3f* a, Vec3f* b);
Vec3s* OLib_Vec3fDiffBinAng(Vec3s* dest, Vec3f* a, Vec3f* b);
void OLib_DbCameraVec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
void OLib_DbCameraVec3fSum(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
void OLib_Vec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
void OLib_Vec3fAdd(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
Gfx* Gfx_DrawTexRectRGBA16(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
Gfx* Gfx_DrawTexRectIA8(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
@@ -1599,87 +1594,6 @@ s32 func_80128640(PlayState* play, Player* player, Gfx* dlist);
void Player_SetFeetPos(PlayState* play, Player* player, s32 limbIndex);
void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList1, Gfx** dList2, Vec3s* rot, Actor* actor);
Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
Gfx* Gfx_CallSetupDLImpl(Gfx* gfx, u32 i);
Gfx* Gfx_CallSetupDL(Gfx* gfx, u32 i);
void Gfx_CallSetupDLAtPtr(Gfx** gfxp, u32 i);
Gfx* func_8012BFC4(Gfx* gfx);
Gfx* func_8012BFEC(Gfx* gfx);
Gfx* func_8012C014(Gfx* gfx);
void func_8012C058(GraphicsContext* gfxCtx);
void func_8012C080(GraphicsContext* gfxCtx);
void func_8012C0A8(GraphicsContext* gfxCtx);
void func_8012C0D0(GraphicsContext* gfxCtx);
void func_8012C0F8(GraphicsContext* gfxCtx);
void func_8012C120(GraphicsContext* gfxCtx);
void func_8012C148(GraphicsContext* gfxCtx);
void func_8012C170(GraphicsContext* gfxCtx);
Gfx* func_8012C198(Gfx* gfx);
void func_8012C1C0(GraphicsContext* gfxCtx);
Gfx* func_8012C1EC(Gfx* gfx);
void func_8012C214(GraphicsContext* gfxCtx);
void func_8012C240(GraphicsContext* gfxCtx);
void func_8012C268(PlayState* play);
void func_8012C28C(GraphicsContext* gfxCtx);
Gfx* func_8012C2B4(Gfx* gfx);
void func_8012C2DC(GraphicsContext* gfxCtx);
Gfx* func_8012C304(Gfx* gfx);
void func_8012C32C(GraphicsContext* gfxCtx);
void func_8012C354(GraphicsContext* gfxCtx);
void func_8012C37C(GraphicsContext* gfxCtx);
Gfx* func_8012C3A4(Gfx* gfx);
Gfx* func_8012C3CC(Gfx* gfx);
void func_8012C3F4(GraphicsContext* gfxCtx);
void func_8012C420(GraphicsContext* gfxCtx);
void func_8012C448(GraphicsContext* gfxCtx);
void func_8012C470(GraphicsContext* gfxCtx);
Gfx* func_8012C498(Gfx* gfx);
void func_8012C4C0(GraphicsContext* gfxCtx);
void func_8012C4E8(GraphicsContext* gfxCtx);
void func_8012C510(GraphicsContext* gfxCtx);
void func_8012C538(GraphicsContext* gfxCtx);
void func_8012C560(GraphicsContext* gfxCtx);
void func_8012C588(GraphicsContext* gfxCtx);
void func_8012C5B0(GraphicsContext* gfxCtx);
void func_8012C5D8(GraphicsContext* gfxCtx);
Gfx* func_8012C600(Gfx* gfx);
void func_8012C628(GraphicsContext* gfxCtx);
void func_8012C654(GraphicsContext* gfxCtx);
void func_8012C680(Gfx** gfxp);
void func_8012C6AC(GraphicsContext* gfxCtx);
void func_8012C6D4(GraphicsContext* gfxCtx);
void func_8012C6FC(GraphicsContext* gfxCtx);
Gfx* func_8012C724(Gfx* gfx);
Gfx* func_8012C74C(Gfx* gfx);
Gfx* func_8012C774(Gfx* gfx);
Gfx* func_8012C7B8(Gfx* gfx);
Gfx* func_8012C7FC(Gfx* gfx);
Gfx* func_8012C840(Gfx* gfx);
Gfx* func_8012C868(Gfx* gfx);
void func_8012C8AC(GraphicsContext* gfxCtx);
void func_8012C8D4(GraphicsContext* gfxCtx);
void func_8012C8FC(GraphicsContext* gfxCtx);
void func_8012C924(GraphicsContext* gfxCtx);
void func_8012C94C(GraphicsContext* gfxCtx);
void func_8012C974(GraphicsContext* gfxCtx);
void func_8012C9BC(GraphicsContext* gfxCtx);
void func_8012C9E4(GraphicsContext* gfxCtx);
void func_8012CA0C(Gfx** gfxp);
void func_8012CA38(GraphicsContext* gfxCtx);
Gfx* Gfx_BranchTexScroll(Gfx** gfxp, u32 x, u32 y, s32 width, s32 height);
void func_8012CB04(Gfx** gfxp, u32 x, u32 y);
Gfx* func_8012CB28(GraphicsContext* gfxCtx, u32 x, u32 y);
Gfx* Gfx_TexScroll(GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height);
Gfx* Gfx_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2);
Gfx* Gfx_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a);
Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a);
Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s32 a);
void func_8012CF0C(GraphicsContext* gfxCtx, s32 clearFb, s32 clearZb, u8 r, u8 g, u8 b);
void func_8012D374(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b);
void func_8012D40C(f32* param_1, f32* param_2, s16* param_3);
void Room_Noop(PlayState* play, Room* room, Input* input, s32 arg3);
void Room_Init(PlayState* play, RoomContext* roomCtx);
size_t Room_AllocateAndLoad(PlayState* play, RoomContext* roomCtx);
@@ -2100,34 +2014,6 @@ ListAlloc* ListAlloc_Init(ListAlloc* this);
// void ListAlloc_Free(void);
void ListAlloc_FreeAll(ListAlloc* this);
void Main(void* arg);
u32 Padmgr_GetControllerBitmask(void);
void func_80174F24(void (*arg0)(void*), void* arg1);
void func_80174F44(void (*arg0)(void*), void* arg1);
void func_80174F7C(void (*arg0)(s32), void* arg1);
void func_80174F9C(void (*arg0)(s32), void* arg1);
// OSMesgQueue* Padmgr_GetEventCallback(void);
// void func_80175008(void);
void Padmgr_SetEventCallback(OSMesg pvParm1);
// void func_8017506C(void);
// void Padmgr_Lock(void);
// void Padmgr_Unlock(void);
// void func_801750FC(void);
// void func_80175364(void);
void func_80175434(void);
void func_8017544C(s32 port, s32 rumbleOn);
void PadMgr_RumbleSet(u8 rumbleEnabled[MAXCONTROLLERS]);
s32 PadMgr_ControllerHasRumblePak(s32 port);
void Padmgr_CalcStickEdges(Input* input);
// void Padmgr_ParseState(void);
// void func_801759BC(void);
// void func_80175AE0(void);
// void Padmgr_Update(void);
// void Padmgr_Stop(void);
void func_80175E68(Input* input, s32 param_2);
void Padmgr_GetInput(Input* input, s32 param_2);
void Padmgr_GetInput2(Input* input, s32 param_2);
void Padmgr_ThreadEntry(PadMgr* padmgr);
void PadMgr_Init(OSMesgQueue* siEventCallbackQueue, IrqMgr* irqmgr, OSId threadId, OSPri threadPri, void* stack);
void Sched_SwapFramebuffer(CfbInfo* cfbInfo);
void Sched_RetraceUpdateFramebuffer(SchedContext* sched, CfbInfo* cfbInfo);
void Sched_HandleReset(SchedContext* sched);
@@ -2191,8 +2077,8 @@ f32 randPlusMinusPoint5Scaled(f32 scale);
f32 Math3D_Normalize(Vec3f* vec);
s32 Math3D_PlaneVsLineSegClosestPoint(f32 planeAA, f32 planeAB, f32 planeAC, f32 planeADist, f32 planeBA, f32 planeBB, f32 planeBC, f32 planeBDist, Vec3f* linePointA, Vec3f* linePointB, Vec3f* closestPoint);
s32 func_80179798(Vec3f* param_1, Vec3f* param_2, Vec3f* param_3, Vec3f* param_4, Vec3f* param_5, Vec3f* param_6);
// void func_80179A44(void);
void func_80179B34(float fParm1, f32 fParm2, f32 fParm5, f32 fParm6, f32 param_5, f32 param_6, f32 param_7, float* param_8, float* param_9);
void func_80179A44(Vec3f* arg0, PosRot* arg1, Vec3f* arg2);
void func_80179B34(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32* arg7, f32* arg8);
// UNK_TYPE4 func_80179B94(f32 fParm1, f32 fParm2, f32 fParm5, f32 param_4, f32 param_5, f32 param_6, f32 param_7, f32 param_8, Vec3f* param_9);
// void func_80179D74(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
void Math3D_ScaleAndAdd(Vec3f* a, Vec3f* b, f32 scale, Vec3f* dst);
@@ -2616,7 +2502,7 @@ void Audio_ResetForAudioHeapStep3(void);
void Audio_ResetForAudioHeapStep2(void);
void Audio_ResetForAudioHeapStep1(s32 specId);
// void func_801A4EB0(void);
void func_801A4EB0(void);
// void func_801A4EB8(void);
void func_801A4FD8(void);
void func_801A5080(u16 arg0);
+274
View File
@@ -0,0 +1,274 @@
#ifndef GFX_H
#define GFX_H
#include "ultra64.h"
#include "PR/sched.h"
#include "thga.h"
#include "alignment.h"
struct GameState;
typedef enum SetupDL {
/* 0x00 */ SETUPDL_0,
/* 0x01 */ SETUPDL_1,
/* 0x02 */ SETUPDL_2,
/* 0x03 */ SETUPDL_3,
/* 0x04 */ SETUPDL_4,
/* 0x05 */ SETUPDL_5,
/* 0x06 */ SETUPDL_6,
/* 0x07 */ SETUPDL_7,
/* 0x08 */ SETUPDL_8,
/* 0x09 */ SETUPDL_9,
/* 0x0A */ SETUPDL_10,
/* 0x0B */ SETUPDL_11,
/* 0x0C */ SETUPDL_12,
/* 0x0D */ SETUPDL_13,
/* 0x0E */ SETUPDL_14,
/* 0x0F */ SETUPDL_15,
/* 0x10 */ SETUPDL_16,
/* 0x11 */ SETUPDL_17,
/* 0x12 */ SETUPDL_18,
/* 0x13 */ SETUPDL_19,
/* 0x14 */ SETUPDL_20,
/* 0x15 */ SETUPDL_21,
/* 0x16 */ SETUPDL_22,
/* 0x17 */ SETUPDL_23,
/* 0x18 */ SETUPDL_24,
/* 0x19 */ SETUPDL_25,
/* 0x1A */ SETUPDL_26,
/* 0x1B */ SETUPDL_27,
/* 0x1C */ SETUPDL_28,
/* 0x1D */ SETUPDL_29,
/* 0x1E */ SETUPDL_30,
/* 0x1F */ SETUPDL_31,
/* 0x20 */ SETUPDL_32,
/* 0x21 */ SETUPDL_33,
/* 0x22 */ SETUPDL_34,
/* 0x23 */ SETUPDL_35,
/* 0x24 */ SETUPDL_36,
/* 0x25 */ SETUPDL_37,
/* 0x26 */ SETUPDL_38,
/* 0x27 */ SETUPDL_39,
/* 0x28 */ SETUPDL_40,
/* 0x29 */ SETUPDL_41,
/* 0x2A */ SETUPDL_42,
/* 0x2B */ SETUPDL_43,
/* 0x2C */ SETUPDL_44,
/* 0x2D */ SETUPDL_45,
/* 0x2E */ SETUPDL_46,
/* 0x2F */ SETUPDL_47,
/* 0x30 */ SETUPDL_48,
/* 0x31 */ SETUPDL_49,
/* 0x32 */ SETUPDL_50,
/* 0x33 */ SETUPDL_51,
/* 0x34 */ SETUPDL_52,
/* 0x35 */ SETUPDL_53,
/* 0x36 */ SETUPDL_54,
/* 0x37 */ SETUPDL_55,
/* 0x38 */ SETUPDL_56,
/* 0x39 */ SETUPDL_57,
/* 0x3A */ SETUPDL_58,
/* 0x3B */ SETUPDL_59,
/* 0x3C */ SETUPDL_60,
/* 0x3D */ SETUPDL_61,
/* 0x3E */ SETUPDL_62,
/* 0x3F */ SETUPDL_63,
/* 0x40 */ SETUPDL_64,
/* 0x41 */ SETUPDL_65,
/* 0x42 */ SETUPDL_66,
/* 0x43 */ SETUPDL_67,
/* 0x44 */ SETUPDL_68,
/* 0x45 */ SETUPDL_69,
/* 0x46 */ SETUPDL_70,
/* 0x47 */ SETUPDL_71,
/* 0x48 */ SETUPDL_72,
/* 0x49 */ SETUPDL_MAX
} SetupDL;
typedef struct {
/* 0x000 */ Gfx taskStart[9];
/* 0x048 */ Gfx clearZBuffer[8]; // original name: clear_zb_dl
/* 0x088 */ Gfx clearFrameBuffer[5]; // original name: clear_fb_dl
/* 0x0B0 */ Gfx setupBuffers[6]; // setup framebuffer and zbuffer
/* 0x0E0 */ Gfx unk_E0[12]; // unused
/* 0x140 */ Gfx syncSegments[17];
/* 0x1C8 */ Gfx setScissor[2];
/* 0x1D8 */ Gfx unk_1D8[25]; // unused
/* 0x2A0 */ Gfx disps[5];
/* 0x2C8 */ Gfx clearFillRect[3]; // fillrect for clearing buffers
/* 0x2E0 */ Gfx fillRect[3]; // fillrect for general purpose
/* 0x2F8 */ Gfx debugDisp[1];
} GfxMasterList; // size = 0x300
#define GFXPOOL_HEAD_MAGIC 0x1234
#define GFXPOOL_TAIL_MAGIC 0x5678
typedef struct GfxPool {
/* 0x00000 */ u16 headMagic; // GFXPOOL_HEAD_MAGIC
/* 0x00008 */ GfxMasterList master;
/* 0x00308 */ Gfx polyXluBuffer[0x800];
/* 0x04308 */ Gfx overlayBuffer[0x400];
/* 0x06308 */ Gfx workBuffer[0x40];
/* 0x06508 */ Gfx debugBuffer[0x40];
/* 0x06708 */ Gfx polyOpaBuffer[0x3380];
/* 0x20308 */ u16 tailMagic; // GFXPOOL_TAIL_MAGIC
} GfxPool; // size = 0x20310
typedef struct GraphicsContext {
/* 0x000 */ Gfx* polyOpaBuffer; // Pointer to "Zelda 0"
/* 0x004 */ Gfx* polyXluBuffer; // Pointer to "Zelda 1"
/* 0x008 */ char unk_8[0x8]; // Unused, could this be pointers to "Zelda 2" / "Zelda 3"
/* 0x010 */ Gfx* overlayBuffer; // Pointer to "Zelda 4"
/* 0x014 */ u32 unk_14;
/* 0x018 */ char unk_18[0x20];
/* 0x038 */ OSMesg msgBuff[8];
/* 0x058 */ OSMesgQueue* schedMsgQ;
/* 0x05C */ OSMesgQueue queue;
/* 0x074 */ char unk_74[0x04];
/* 0x078 */ OSScTask task;
/* 0x0E0 */ char unk_E0[0xD0];
/* 0x1B0 */ Gfx* workBuffer;
/* 0x1B4 */ TwoHeadGfxArena work;
/* 0x1C4 */ Gfx* debugBuffer;
/* 0x1C8 */ TwoHeadGfxArena debug;
/* 0x1D8 */ UNK_TYPE1 unk_1D8[0xAC];
/* 0x284 */ OSViMode* viMode;
/* 0x288 */ void* zbuffer;
/* 0x28C */ char unk_28C[0x1C];
/* 0x2A8 */ TwoHeadGfxArena overlay; // "Zelda 4"
/* 0x2B8 */ TwoHeadGfxArena polyOpa; // "Zelda 0"
/* 0x2C8 */ TwoHeadGfxArena polyXlu; // "Zelda 1"
/* 0x2D8 */ u32 gfxPoolIdx;
/* 0x2DC */ u16* curFrameBuffer;
/* 0x2E0 */ char unk_2E0[0x4];
/* 0x2E4 */ u32 viConfigFeatures;
/* 0x2E8 */ char unk_2E8[0x2];
/* 0x2EA */ u8 updateViMode;
/* 0x2EB */ u8 framebufferIndex;
/* 0x2EC */ void (*callback)(struct GraphicsContext*, u32);
/* 0x2F0 */ u32 callbackArg;
/* 0x2F4 */ f32 xScale;
/* 0x2F8 */ f32 yScale;
/* 0x2FC */ GfxMasterList* masterList;
} GraphicsContext; // size = 0x300
Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
Gfx* Gfx_SetupDLImpl(Gfx* gfx, u32 i);
Gfx* Gfx_SetupDL(Gfx* gfx, u32 i);
void Gfx_SetupDLAtPtr(Gfx** gfxp, u32 i);
Gfx* Gfx_SetupDL57(Gfx* gfx);
Gfx* Gfx_SetupDL57_b(Gfx* gfx);
Gfx* Gfx_SetupDL52_NoCD(Gfx* gfx);
void Gfx_SetupDL58_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL57_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL50_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL51_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL52_Xlu(GraphicsContext* gfxCtx);
void Gfx_SetupDL53_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL54_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL55_Xlu(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL26(Gfx* gfx);
void Gfx_SetupDL26_Opa(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL23(Gfx* gfx);
void Gfx_SetupDL23_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL25_Xlu2(GraphicsContext* gfxCtx);
void func_8012C268(struct GameState* gameState);
void Gfx_SetupDL25_Opa(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL71(Gfx* gfx);
void Gfx_SetupDL25_Xlu(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL72(Gfx* gfx);
void Gfx_SetupDL31_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL32_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL33_Opa(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL64(Gfx* gfx);
Gfx* Gfx_SetupDL34(Gfx* gfx);
void Gfx_SetupDL34_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL35_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL44_Xlu(GraphicsContext* gfxCtx);
void Gfx_SetupDL36_Opa(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL28(Gfx* gfx);
void Gfx_SetupDL28_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL43_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL45_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL46_Overlay(GraphicsContext* gfxCtx);
void Gfx_SetupDL38_Xlu(GraphicsContext* gfxCtx);
void Gfx_SetupDL4_Xlu(GraphicsContext* gfxCtx);
void Gfx_SetupDL37_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL2_Opa(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL39(Gfx* gfx);
void Gfx_SetupDL39_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL39_Overlay(GraphicsContext* gfxCtx);
void Gfx_SetupDL39_Ptr(Gfx** gfxp);
void Gfx_SetupDL40_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL41_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL47_Xlu(GraphicsContext* gfxCtx);
Gfx* Gfx_SetupDL66(Gfx* gfx);
Gfx* Gfx_SetupDL67(Gfx* gfx);
Gfx* Gfx_SetupDL68_NoCD(Gfx* gfx);
Gfx* Gfx_SetupDL69_NoCD(Gfx* gfx);
Gfx* Gfx_SetupDL65_NoCD(Gfx* gfx);
Gfx* Gfx_SetupDL70(Gfx* gfx);
Gfx* Gfx_SetupDL20_NoCD(Gfx* gfx);
void Gfx_SetupDL42_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL42_Overlay(GraphicsContext* gfxCtx);
void Gfx_SetupDL48_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL49_Xlu(GraphicsContext* gfxCtx);
void Gfx_SetupDL27_Xlu(GraphicsContext* gfxCtx);
void Gfx_SetupDL60_XluNoCD(GraphicsContext* gfxCtx);
void Gfx_SetupDL61_Xlu(GraphicsContext* gfxCtx);
void Gfx_SetupDL56_Opa(GraphicsContext* gfxCtx);
void Gfx_SetupDL56_Ptr(Gfx** gfxp);
void Gfx_SetupDL59_Opa(GraphicsContext* gfxCtx);
Gfx* Gfx_BranchTexScroll(Gfx** gfxp, u32 x, u32 y, s32 width, s32 height);
void func_8012CB04(Gfx** gfxp, u32 x, u32 y);
Gfx* func_8012CB28(GraphicsContext* gfxCtx, u32 x, u32 y);
Gfx* Gfx_TexScroll(GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height);
Gfx* Gfx_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2);
Gfx* Gfx_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a);
Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a);
Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s32 a);
void func_8012CF0C(GraphicsContext* gfxCtx, s32 clearFb, s32 clearZb, u8 r, u8 g, u8 b);
void func_8012D374(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b);
void func_8012D40C(f32* param_1, f32* param_2, s16* param_3);
extern Gfx gSetupDLs[SETUPDL_MAX][6];
extern Gfx gEmptyDL[];
#define WORK_DISP __gfxCtx->work.p
#define POLY_OPA_DISP __gfxCtx->polyOpa.p
#define POLY_XLU_DISP __gfxCtx->polyXlu.p
#define OVERLAY_DISP __gfxCtx->overlay.p
#define DEBUG_DISP __gfxCtx->debug.p
// __gfxCtx shouldn't be used directly.
// Use the DISP macros defined above when writing to display buffers.
#define OPEN_DISPS(gfxCtx) \
{ \
GraphicsContext* __gfxCtx = gfxCtx; \
s32 __dispPad
#define CLOSE_DISPS(gfxCtx) \
(void)0; \
} \
(void)0
#define GRAPH_ALLOC(gfxCtx, size) ((void*)((gfxCtx)->polyOpa.d = (Gfx*)((u8*)(gfxCtx)->polyOpa.d - ALIGN16(size))))
// Custom gbi macro
#define gDPSetTileCustom(pkt, fmt, siz, width, height, pal, cms, cmt, masks, maskt, shifts, shiftt) \
{ \
gDPPipeSync(pkt); \
gDPTileSync(pkt); \
gDPSetTile(pkt, fmt, siz, (((width)*siz##_TILE_BYTES) + 7) >> 3, 0, G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, \
masks, shifts); \
gDPTileSync(pkt); \
gDPSetTile(pkt, fmt, siz, (((width)*siz##_TILE_BYTES) + 7) >> 3, 0, G_TX_RENDERTILE, pal, cmt, maskt, shiftt, \
cms, masks, shifts); \
gDPSetTileSize(pkt, G_TX_RENDERTILE, 0, 0, ((width)-1) << G_TEXTURE_IMAGE_FRAC, \
((height)-1) << G_TEXTURE_IMAGE_FRAC); \
} \
(void)0
#endif
+69 -11
View File
@@ -35,10 +35,6 @@
#define CONT_CMD_WRITE_EEPROM_RX 1
#define CONT_CMD_RESET_RX 3
#define CONT_CMD_NOP 0xFF
#define CONT_CMD_END 0xFE // Indicates end of a command
#define CONT_CMD_EXE 1 // Set pif ram status byte to this to do a command
#define CONT_ERR_NO_CONTROLLER PFS_ERR_NOPACK /* 1 */
#define CONT_ERR_CONTRFAIL CONT_OVERRUN_ERROR /* 4 */
#define CONT_ERR_INVALID PFS_ERR_INVALID /* 5 */
@@ -48,6 +44,52 @@
#define CONT_ERR_VOICE_WORD 14
#define CONT_ERR_VOICE_NO_RESPONSE 15
// Joybus commands
#define CONT_CMD_REQUEST_STATUS 0
#define CONT_CMD_READ_BUTTON 1
#define CONT_CMD_READ_PAK 2
#define CONT_CMD_WRITE_PAK 3
#define CONT_CMD_READ_EEPROM 4
#define CONT_CMD_WRITE_EEPROM 5
#define CONT_CMD_READ36_VOICE 9
#define CONT_CMD_WRITE20_VOICE 10
#define CONT_CMD_READ2_VOICE 11
#define CONT_CMD_WRITE4_VOICE 12
#define CONT_CMD_SWRITE_VOICE 13
#define CONT_CMD_CHANNEL_RESET 0xFD
#define CONT_CMD_RESET 0xFF
// Bytes transmitted for each joybus command
#define CONT_CMD_REQUEST_STATUS_TX 1
#define CONT_CMD_READ_BUTTON_TX 1
#define CONT_CMD_READ_PAK_TX 3
#define CONT_CMD_WRITE_PAK_TX 35
#define CONT_CMD_READ_EEPROM_TX 2
#define CONT_CMD_WRITE_EEPROM_TX 10
#define CONT_CMD_READ36_VOICE_TX 3
#define CONT_CMD_WRITE20_VOICE_TX 23
#define CONT_CMD_READ2_VOICE_TX 3
#define CONT_CMD_WRITE4_VOICE_TX 7
#define CONT_CMD_SWRITE_VOICE_TX 3
#define CONT_CMD_RESET_TX 1
// Bytes received for each joybus command
#define CONT_CMD_REQUEST_STATUS_RX 3
#define CONT_CMD_READ_BUTTON_RX 4
#define CONT_CMD_READ_PAK_RX 33
#define CONT_CMD_WRITE_PAK_RX 1
#define CONT_CMD_READ_EEPROM_RX 8
#define CONT_CMD_WRITE_EEPROM_RX 1
#define CONT_CMD_READ36_VOICE_RX 37
#define CONT_CMD_WRITE20_VOICE_RX 1
#define CONT_CMD_READ2_VOICE_RX 3
#define CONT_CMD_WRITE4_VOICE_RX 1
#define CONT_CMD_SWRITE_VOICE_RX 1
#define CONT_CMD_RESET_RX 3
#define CONT_CMD_NOP 0xFF
#define CONT_CMD_END 0xFE // Indicates end of a command
#define CONT_CMD_EXE 1 // Set pif ram status byte to this to do a command
#define DIR_STATUS_EMPTY 0
#define DIR_STATUS_UNKNOWN 1
@@ -81,6 +123,26 @@
#define CONT_ADDR_CRC_ER 0x04
#define CONT_EEPROM_BUSY 0x80
// Accessory detection
#define CONT_ADDR_DETECT 0x8000
// Rumble
#define CONT_ADDR_RUMBLE 0xC000
// Controller Pak
// Transfer Pak
#define CONT_ADDR_GB_POWER 0x8000 // Same as the detection address, but semantically different
#define CONT_ADDR_GB_BANK 0xA000
#define CONT_ADDR_GB_STATUS 0xB000
// Addresses sent to controller accessories are in blocks, not bytes
#define CONT_BLOCKS(x) ((x) / BLOCKSIZE)
// Block addresses of the above
#define CONT_BLOCK_DETECT CONT_BLOCKS(CONT_ADDR_DETECT)
#define CONT_BLOCK_RUMBLE CONT_BLOCKS(CONT_ADDR_RUMBLE)
#define CONT_BLOCK_GB_POWER CONT_BLOCKS(CONT_ADDR_GB_POWER)
#define CONT_BLOCK_GB_BANK CONT_BLOCKS(CONT_ADDR_GB_BANK)
#define CONT_BLOCK_GB_STATUS CONT_BLOCKS(CONT_ADDR_GB_STATUS)
/* Buttons */
#define BTN_CRIGHT 0x0001
#define BTN_CLEFT 0x0002
@@ -88,6 +150,7 @@
#define BTN_CUP 0x0008
#define BTN_R 0x0010
#define BTN_L 0x0020
#define BTN_RESET 0x0080
#define BTN_DRIGHT 0x0100
#define BTN_DLEFT 0x0200
#define BTN_DDOWN 0x0400
@@ -146,6 +209,8 @@ typedef struct {
/* 0x26 */ u8 datacrc;
} __OSContRamReadFormat;
#define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr))
extern OSPifRam __osContPifRam;
// extern UNK_TYPE1 D_8009CF0C;
extern u8 __osContLastPoll;
@@ -153,11 +218,4 @@ extern u8 __osMaxControllers;
// extern OSMesgQueue D_8009CF38;
// extern OSMesg D_8009CF50;
typedef struct {
/* 0x00 */ OSContPad cur;
/* 0x06 */ OSContPad prev;
/* 0x0C */ OSContPad press; // X/Y store delta from last frame
/* 0x12 */ OSContPad rel; // X/Y store adjusted
} Input; // size = 0x18
#endif
+7 -2
View File
@@ -1,9 +1,14 @@
#ifndef IRQMGR_H
#define IRQMGR_H
#include "PR/ultratypes.h"
#include "PR/sched.h"
#include "ultra64/message.h"
#include "os.h"
#include "ultra64.h"
#define OS_SC_RETRACE_MSG 1
#define OS_SC_DONE_MSG 2
#define OS_SC_NMI_MSG 3 // name is made up, 3 is OS_SC_RDP_DONE_MSG in the original sched.c
#define OS_SC_PRE_NMI_MSG 4
typedef struct IrqMgrClient {
/* 0x0 */ struct IrqMgrClient* next;
+2 -37
View File
@@ -17,6 +17,8 @@
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
#define ARRAY_COUNTU(arr) (u32)(sizeof(arr) / sizeof(arr[0]))
#define ARRAY_COUNT_2D(arr) (ARRAY_COUNT(arr) * ARRAY_COUNT(arr[0]))
// TODO: After uintptr_t cast change should have an AVOID_UB target that just toggles the KSEG0 bit in the address rather than add/sub 0x80000000
#define PHYSICAL_TO_VIRTUAL(addr) ((uintptr_t)(addr) + RDRAM_CACHED)
#define VIRTUAL_TO_PHYSICAL(addr) (uintptr_t)((u8*)(addr) - RDRAM_CACHED)
@@ -77,26 +79,6 @@
#define ALIGN64(val) (((val) + 0x3F) & ~0x3F)
#define ALIGN256(val) (((val) + 0xFF) & ~0xFF)
extern GraphicsContext* __gfxCtx;
#define WORK_DISP __gfxCtx->work.p
#define POLY_OPA_DISP __gfxCtx->polyOpa.p
#define POLY_XLU_DISP __gfxCtx->polyXlu.p
#define OVERLAY_DISP __gfxCtx->overlay.p
#define DEBUG_DISP __gfxCtx->debug.p
// __gfxCtx shouldn't be used directly.
// Use the DISP macros defined above when writing to display buffers.
#define OPEN_DISPS(gfxCtx) \
{ \
GraphicsContext* __gfxCtx = gfxCtx; \
s32 __dispPad
#define CLOSE_DISPS(gfxCtx) \
(void)0; \
} \
(void)0
/**
* `x` vertex x
* `y` vertex y
@@ -114,23 +96,6 @@ extern GraphicsContext* __gfxCtx;
#define VTX_T(x, y, z, s, t, cr, cg, cb, a) \
{ { x, y, z }, 0, { s, t }, { cr, cg, cb, a }, }
#define GRAPH_ALLOC(gfxCtx, size) ((void*)((gfxCtx)->polyOpa.d = (Gfx*)((u8*)(gfxCtx)->polyOpa.d - ALIGN16(size))))
// Custom gbi macro
#define gDPSetTileCustom(pkt, fmt, siz, width, height, pal, cms, cmt, masks, maskt, shifts, shiftt) \
{ \
gDPPipeSync(pkt); \
gDPTileSync(pkt); \
gDPSetTile(pkt, fmt, siz, (((width)*siz##_TILE_BYTES) + 7) >> 3, 0, G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, \
masks, shifts); \
gDPTileSync(pkt); \
gDPSetTile(pkt, fmt, siz, (((width)*siz##_TILE_BYTES) + 7) >> 3, 0, G_TX_RENDERTILE, pal, cmt, maskt, shiftt, \
cms, masks, shifts); \
gDPSetTileSize(pkt, G_TX_RENDERTILE, 0, 0, ((width)-1) << G_TEXTURE_IMAGE_FRAC, \
((height)-1) << G_TEXTURE_IMAGE_FRAC); \
} \
(void)0
#define SQ(x) ((x) * (x))
#define ABS(x) ((x) >= 0 ? (x) : -(x))
#define ABS_ALT(x) ((x) < 0 ? -(x) : (x))
+97
View File
@@ -0,0 +1,97 @@
#ifndef PADMGR_H
#define PADMGR_H
#include "libc/stdbool.h"
#include "io/controller.h"
#include "irqmgr.h"
typedef struct {
/* 0x00 */ OSContPad cur;
/* 0x06 */ OSContPad prev;
/* 0x0C */ OSContPad press; // X/Y store delta from last frame
/* 0x12 */ OSContPad rel; // X/Y store adjusted
} Input; // size = 0x18
typedef enum {
/* 0 */ PADMGR_CONT_NONE,
/* 1 */ PADMGR_CONT_NORMAL,
/* 3 */ PADMGR_CONT_MOUSE = 3,
/* 4 */ PADMGR_CONT_VOICE_PLUGGED, // VRU plugged but not initialized
/* 5 */ PADMGR_CONT_VOICE,
/* -1 */ PADMGR_CONT_UNK = 0xFF
} ControllerDeviceType;
typedef enum {
/* 0 */ CONT_PAK_NONE,
/* 1 */ CONT_PAK_RUMBLE,
/* 2 */ CONT_PAK_OTHER
} ControllerPakType;
typedef struct {
/* 0x000 */ u8 validCtrlrsMask;
/* 0x004 */ void (*rumbleRetraceCallback)(void*);
/* 0x008 */ void* rumbleRetraceArg;
/* 0x00C */ void (*inputRetraceCallback)(void*);
/* 0x010 */ void* inputRetraceArg;
/* 0x014 */ OSContStatus padStatus[MAXCONTROLLERS];
/* 0x024 */ OSMesg serialMsg;
/* 0x028 */ OSMesg lockMsg;
/* 0x02C */ OSMesg interruptMsgBuf[8];
/* 0x04C */ OSMesgQueue serialLockQueue;
/* 0x064 */ OSMesgQueue lockQueue;
/* 0x07C */ OSMesgQueue interruptQueue;
/* 0x094 */ IrqMgrClient irqClient;
/* 0x09C */ IrqMgr* irqMgr;
/* 0x0A0 */ OSThread thread;
/* 0x250 */ Input inputs[MAXCONTROLLERS];
/* 0x2B0 */ OSContPad pads[MAXCONTROLLERS];
/* 0x2C8 */ u8 nControllers;
/* 0x2C9 */ u8 ctrlrType[MAXCONTROLLERS]; // type of controller currently connected to each port
/* 0x2CD */ u8 pakType[MAXCONTROLLERS]; // type of controller pak for each port (if applicable)
/* 0x2D1 */ u8 rumbleEnable[MAXCONTROLLERS]; // whether rumble is active for each port
/* 0x2D5 */ u8 rumbleTimer[MAXCONTROLLERS];
/* 0x2DC */ OSPfs rumblePfs[MAXCONTROLLERS];
/* 0x47C */ vu8 rumbleOffTimer; // amount of VI retraces to not rumble for, takes priority over rumbleOnTimer
/* 0x47D */ vu8 rumbleOnTimer; // amount of VI retraces to rumble for
/* 0x47E */ u8 isResetting;
} PadMgr; // size = 0x480
extern PadMgr gPadMgr;
// Initialization
s32 PadSetup_Init(OSMesgQueue* mq, u8* outMask, OSContStatus* status);
void PadMgr_Init(OSMesgQueue* siEvtQ, IrqMgr* irqMgr, OSId threadId, OSPri pri, void* stack);
// Fetching inputs
void PadMgr_GetInputNoLock(Input* inputs, s32 gameRequest);
void PadMgr_GetInput(Input* inputs, s32 gameRequest);
void PadMgr_GetInput2(Input* inputs, s32 gameRequest);
// Callbacks
void PadMgr_SetRumbleRetraceCallback(void (*callback)(void*), void* arg);
void PadMgr_UnsetRumbleRetraceCallback(void (*callback)(void*), void* arg);
void PadMgr_SetInputRetraceCallback(void (*callback)(void*), void* arg);
void PadMgr_UnsetInputRetraceCallback(void (*callback)(void*), void* arg);
// Valid controllers
u8 PadMgr_GetValidControllersMask(void);
// Voice queue
OSMesgQueue* PadMgr_VoiceAcquireSerialEventQueue(void);
void PadMgr_VoiceReleaseSerialEventQueue(OSMesgQueue* serialEventQueue);
// Rumble
void PadMgr_RumbleStop(void);
void PadMgr_RumblePause(void);
void PadMgr_RumbleSetSingle(s32 port, s32 enable);
void PadMgr_RumbleSet(u8 enable[MAXCONTROLLERS]);
s32 PadMgr_ControllerHasRumblePak(s32 port);
#endif
+11
View File
@@ -0,0 +1,11 @@
#ifndef SYSTEM_HEAP_H
#define SYSTEM_HEAP_H
#include "libc/stddef.h"
#include "PR/ultratypes.h"
void* SystemHeap_Malloc(size_t size);
void SystemHeap_Free(void* ptr);
void SystemHeap_Init(void* start, size_t size);
#endif
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef SYSTEM_MALLOC
#define SYSTEM_MALLOC
#ifndef SYSTEM_MALLOC_H
#define SYSTEM_MALLOC_H
#include "PR/ultratypes.h"
#include "os_malloc.h"
@@ -11,7 +11,7 @@ void SystemArena_Free(void* ptr);
void* SystemArena_Calloc(u32 elements, size_t size);
void SystemArena_GetSizes(size_t* maxFreeBlock, size_t* bytesFree, size_t* bytesAllocated);
u32 SystemArena_CheckArena(void);
void SystemArena_InitArena(void* start, size_t size);
void SystemArena_Init(void* start, size_t size);
void SystemArena_Cleanup(void);
u8 SystemArena_IsInitialized(void);
+7 -6
View File
@@ -5,13 +5,14 @@
#include "PR/pfs.h"
#include "ultra64/message.h"
#define MOTOR_START 1
#define MOTOR_STOP 0
#define MOTOR_START 1
#define MOTOR_STOP 0
#define osMotorStart(x) __osMotorAccess((x), MOTOR_START)
#define osMotorStop(x) __osMotorAccess((x), MOTOR_STOP)
#define osMotorStart(x) __osMotorAccess((x), MOTOR_START)
#define osMotorStop(x) __osMotorAccess((x), MOTOR_STOP)
s32 __osMotorAccess(OSPfs* pfs, u32 vibrate);
s32 osMotorInit(OSMesgQueue* ctrlrqueue, OSPfs* pfs, s32 channel);
s32 __osMotorAccess(OSPfs* pfs, s32 flag);
s32 osMotorInit(OSMesgQueue* mq, OSPfs* pfs, s32 channel);
#endif

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