DICTIONARY VROM_CODE 0x00A94000 // start of code within rom VROM_SS_STICK E_16 // ovl_Effect_Ss_Stick is effect 16 VROM_ARMS_HOOK A_102 // Arms_Hook is actor 102 VROM_OBJ O_0x14 // object to overwrite HIERARCHY_CODE 0x00108D10 // Relative to the start of code; // Link's hierarchy pointer will // be written at this address SEG 0x06000000 // ram segment OBJ_BOY 0x0014 // object_link_boy object number // Hierarchy DL_WAIST 0x00EBE8 "Limb 1" // this is the name zzconvert automatically uses DL_RTHIGH 0x00F260 "Limb 3" DL_RSHIN 0x00F868 "Limb 4" DL_RFOOT 0x00FDE8 "Limb 5" DL_LTHIGH 0x010280 "Limb 6" DL_LSHIN 0x010898 "Limb 7" DL_LFOOT 0x010E18 "Limb 8" DL_HEAD 0x011D20 "Limb 10" DL_HAT 0x0126F8 "Limb 11" DL_COLLAR 0x012900 "Limb 12" DL_LSHOULDER 0x012D00 "Limb 13" DL_LFOREARM 0x013228 "Limb 14" DL_RSHOULDER 0x014868 "Limb 16" DL_RFOREARM 0x014D88 "Limb 17" DL_TORSO 0x016188 "Limb 20" // Hands DL_LHAND 0x013890 "Limb 15" DL_LFIST 0x013DF0 "Fist.L" DL_LHAND_BOTTLE 0x014310 "Bottle.Hand.L" DL_RHAND 0x0153C0 "Limb 18" DL_RFIST 0x015928 "Fist.R" // Items DL_SWORD_SHEATH 0x015D58 "Sheath" DL_SWORD_HILT 0x0168E8 "Hilt.2" DL_SWORD_BLADE 0x016E48 "Blade.2" DL_LONGSWORD_HILT 0x017148 "Hilt.3" DL_LONGSWORD_BLADE 0x0174E0 "Blade.3" DL_LONGSWORD_BROKEN 0x017700 "Broken.Blade.3" DL_SHIELD_HYLIAN 0x018BC0 "Shield.2" DL_SHIELD_MIRROR 0x0190E8 "Shield.3" DL_HAMMER 0x0184A8 "Hammer" DL_BOTTLE 0x0188E8 "Bottle" DL_BOW 0x019810 "Bow" DL_OCARINA_TIME 0x019AE0 "Ocarina.2" DL_HOOKSHOT 0x019FC0 "Hookshot" // Flair DL_UPGRADE_LFOREARM 0x01D688 "Gauntlet.Forearm.L" DL_UPGRADE_LHAND 0x01D9A8 "Gauntlet.Hand.L" DL_UPGRADE_LFIST 0x01DD68 "Gauntlet.Fist.L" DL_UPGRADE_RFOREARM 0x01E048 "Gauntlet.Forearm.R" DL_UPGRADE_RHAND 0x01E368 "Gauntlet.Hand.R" DL_UPGRADE_RFIST 0x01E728 "Gauntlet.Fist.R" DL_BOOT_LIRON 0x01EB38 "Foot.2.L" DL_BOOT_RIRON 0x01EF50 "Foot.2.R" DL_BOOT_LHOVER 0x01F588 "Foot.3.L" DL_BOOT_RHOVER 0x01FC80 "Foot.3.R" // First Person DL_FPS_LFOREARM 0x01A9D8 "FPS.Forearm.L" DL_FPS_LHAND 0x01BAA0 "FPS.Hand.L" DL_FPS_RFOREARM 0x01C510 "FPS.Forearm.R" DL_FPS_RHAND 0x01D1C8 "FPS.Hand.R" DL_FPS_HOOKSHOT 0x020728 "FPS.Hookshot" // Misc DL_HOOKSHOT_CHAIN 0x020BA0 "Hookshot.Chain" DL_HOOKSHOT_HOOK 0x020D78 "Hookshot.Spike" DL_HOOKSHOT_AIM 0x020E58 "Hookshot.Aiming.Reticule" DL_BOW_STRING 0x020F20 "Bow.String" DL_BLADEBREAK 0x0212A0 "Blade.3.Break" END OBJECT MATRIX_SWORD_BACK: Matrix( 0, 0, 0, -715, -310, 78, 1, 1, 1 ); MATRIX_SHIELD_BACK: Matrix( 0, 0, 180, 935, 94, 29, 1, 1, 1 ); DL_SWORD_SHEATHED: CallMatrix( MATRIX_SWORD_BACK ); CallList( DL_SWORD_HILT ); PopMatrix( 1 ); CallList( DL_SWORD_SHEATH ); DL_SHIELD_HYLIAN_BACK: CallMatrix( MATRIX_SHIELD_BACK ); CallList( DL_SHIELD_HYLIAN ); DL_SHIELD_MIRROR_BACK: CallMatrix( MATRIX_SHIELD_BACK ); CallList( DL_SHIELD_MIRROR ); DL_SWORD_SHIELD_HYLIAN: CallList( DL_SWORD_SHEATHED ); CallList( DL_SHIELD_HYLIAN_BACK ); DL_SWORD_SHIELD_MIRROR: CallList( DL_SWORD_SHEATHED ); CallList( DL_SHIELD_MIRROR_BACK ); DL_SHEATH0_HYLIAN: CallList( DL_SWORD_SHEATH ); CallList( DL_SHIELD_HYLIAN_BACK ); DL_SHEATH0_MIRROR: CallList( DL_SWORD_SHEATH ); CallList( DL_SHIELD_MIRROR_BACK ); DL_LFIST_SWORD: CallList( DL_SWORD_HILT ); CallList( DL_SWORD_BLADE ); CallList( DL_LFIST ); DL_LFIST_LONGSWORD: CallList( DL_LONGSWORD_HILT ); CallList( DL_LONGSWORD_BLADE ); CallList( DL_LFIST ); DL_LFIST_LONGSWORD_BROKEN: CallList( DL_LONGSWORD_HILT ); CallList( DL_LONGSWORD_BROKEN ); CallList( DL_LFIST ); DL_LFIST_HAMMER: CallList( DL_HAMMER ); CallList( DL_LFIST ); DL_RFIST_SHIELD_HYLIAN: CallList( DL_SHIELD_HYLIAN ); CallList( DL_RFIST ); DL_RFIST_SHIELD_MIRROR: CallList( DL_SHIELD_MIRROR ); CallList( DL_RFIST ); DL_RFIST_BOW: CallList( DL_BOW ); CallList( DL_RFIST ); DL_RFIST_HOOKSHOT: CallList( DL_HOOKSHOT ); CallList( DL_RFIST ); DL_RHAND_OCARINA_TIME: CallList( DL_OCARINA_TIME ); CallList( DL_RHAND ); DL_FPS_RHAND_BOW: CallList( DL_BOW ); CallList( DL_FPS_RHAND ); DL_FPS_LHAND_HOOKSHOT: CallList( DL_FPS_HOOKSHOT ); CallList( DL_FPS_RHAND ); END REPOINT // code GoTo( VROM_CODE+0x00108E88 ); SetAdvance( 8 ); Write32( DL_RFIST ); // Right Fist (High Poly) Write32( DL_RFIST ); // Right Fist (Low Poly) Write32( DL_RFIST ); // Right Fist + Deku Shield (High Poly) Write32( DL_RFIST ); // Right Fist + Deku Shield (Low Poly) Write32( DL_RFIST_SHIELD_HYLIAN ); // Right Fist + Hylian Shield (High Poly) Write32( DL_RFIST_SHIELD_HYLIAN ); // Right Fist + Hylian Shield (Low Poly) Write32( DL_RFIST_SHIELD_MIRROR ); // Right Fist + Mirror Shield (High Poly) Write32( DL_RFIST_SHIELD_MIRROR ); // Right Fist + Mirror Shield (Low Poly) Write32( DL_SWORD_SHEATHED ); // Sheathed Sword (High Poly) Write32( DL_SWORD_SHEATHED ); // Sheathed Sword (Low Poly) Write32( DL_SWORD_SHEATHED ); // Deku Shield + Sheathed Sword (High Poly) Write32( DL_SWORD_SHEATHED ); // Deku Shield + Sheathed Sword (Low Poly) Write32( DL_SWORD_SHIELD_HYLIAN ); // Hylian Shield + Sheathed Sword (High Poly) Write32( DL_SWORD_SHIELD_HYLIAN ); // Hylian Shield + Sheathed Sword (Low Poly) Write32( DL_SWORD_SHIELD_MIRROR ); // Mirror Shield + Sheathed Sword (High Poly) Write32( DL_SWORD_SHIELD_MIRROR ); // Mirror Shield + Sheathed Sword (Low Poly) Write32( 0x00000000 ); // ? (High Poly) Write32( 0x00000000 ); // ? (Low Poly) Write32( 0x00000000 ); // Deku Shield without Sheath (High Poly) Write32( 0x00000000 ); // Deku Shield without Sheath (Low Poly) Write32( DL_SWORD_SHEATH ); // Sword Sheath (High Poly) Write32( DL_SWORD_SHEATH ); // Sword Sheath (Low Poly) Write32( DL_SWORD_SHEATH ); // Deku Shield + Sheath (High Poly) Write32( DL_SWORD_SHEATH ); // Deku Shield + Sheath (Low Poly) Write32( DL_SHEATH0_HYLIAN ); // Hylian Shield + Sheath (High Poly) Write32( DL_SHEATH0_HYLIAN ); // Hylian Shield + Sheath (Low Poly) Write32( DL_SHEATH0_MIRROR ); // Mirror Shield + Sheath (High Poly) Write32( DL_SHEATH0_MIRROR ); // Mirror Shield + Sheath (Low Poly) Write32( 0x00000000 ); // ? (High Poly) Write32( 0x00000000 ); // ? (Low Poly) Write32( 0x00000000 ); // ? (High Poly) Write32( 0x00000000 ); // ? (Low Poly) Write32( DL_LFIST_LONGSWORD ); // Left Fist + Biggoron Sword (High Poly) Write32( DL_LFIST_LONGSWORD ); // Left Fist + Biggoron Sword (Low Poly) Write32( DL_LFIST_LONGSWORD_BROKEN ); // Left Fist + Broken Giant's Knife (High Poly) Write32( DL_LFIST_LONGSWORD_BROKEN ); // Left Fist + Broken Giant's Knife (Low Poly) Write32( DL_LHAND ); // Left Hand (High Poly) Write32( DL_LHAND ); // Left Hand (Low Poly) Write32( DL_LFIST ); // Left Fist (High Poly) Write32( DL_LFIST ); // Left Fist (Low Poly) Write32( DL_LFIST_SWORD ); // Left Fist + Kokiri Sword (High Poly) Write32( DL_LFIST_SWORD ); // Left Fist + Kokiri Sword (Low Poly) Write32( DL_LFIST_SWORD ); // Left Fist + Master Sword (High Poly) Write32( DL_LFIST_SWORD ); // Left Fist + Master Sword (Low Poly) Write32( DL_RHAND ); // Right Hand (High Poly) Write32( DL_RHAND ); // Right Hand (Low Poly) Write32( DL_RFIST ); // Right Fist (High Poly) Write32( DL_RFIST ); // Right Fist (Low Poly) Write32( DL_RFIST_BOW ); // Right Fist + Fairy Bow (and/or Fairy Slinghot?) (High Poly) Write32( DL_RFIST_BOW ); // Right Fist + Fairy Bow (and/or Fairy Slinghot?) (Low Poly) Write32( DL_SWORD_SHEATHED ); // Sheathed Sword (High Poly) Write32( DL_SWORD_SHEATHED ); // Sheathed Sword (Low Poly) Write32( DL_SWORD_SHEATH ); // Sword Sheath (High Poly) Write32( DL_SWORD_SHEATH ); // Sword Sheath (Low Poly) Write32( DL_WAIST ); // Waist (High Poly) Write32( DL_WAIST ); // Waist (Low Poly) Write32( DL_RFIST_BOW ); // Right Fist + Fairy Bow (and/or Fairy Slinghot?) (High Poly) Write32( DL_RFIST_BOW ); // Right Fist + Fairy Bow (and/or Fairy Slinghot?) (Low Poly) Write32( DL_RHAND_OCARINA_TIME ); // Right Hand + Fairy Ocarina (High Poly) Write32( DL_RHAND_OCARINA_TIME ); // Right Hand + Fairy Ocarina (Low Poly) Write32( DL_RHAND_OCARINA_TIME ); // Right Hand + Ocarina of Time (High Poly) Write32( DL_RHAND_OCARINA_TIME ); // Right Hand + Ocarina of Time (Low Poly) Write32( DL_RFIST_HOOKSHOT ); // Right Fist + Hookshot / Longshot (High Poly) Write32( DL_RFIST_HOOKSHOT ); // Right Fist + Hookshot / Longshot (Low Poly) Write32( DL_LFIST_HAMMER ); // Left Fist + Megaton Hammer (High Poly) Write32( DL_LFIST_HAMMER ); // Left Fist + Megaton Hammer (Low Poly) Write32( DL_LFIST ); // Left Fist + Boomerang (High Poly) Write32( DL_LFIST ); // Left Fist + Boomerang (Low Poly) Write32( DL_LHAND_BOTTLE ); // Outstretched Left Hand for Holding Bottles (High Poly) Write32( DL_LHAND_BOTTLE ); // Outstretched Left Hand for Holding Bottles (Low Poly) Write32( DL_FPS_LFOREARM ); // FPS Left Forearm Write32( DL_FPS_LHAND ); // FPS Left Hand Write32( DL_RSHOULDER ); // Right Shoulder (High Poly) Write32( DL_FPS_RFOREARM ); // FPS Right Forearm Write32( DL_FPS_RHAND_BOW ); // FPS Right Hand + Fairy Bow GoTo( VROM_CODE+0x001091BC ); SetAdvance( 4 ); Write32( DL_BOOT_LIRON ); // Left Iron Boot Write32( DL_BOOT_RIRON ); // Right Iron Boot Write32( DL_BOOT_LHOVER ); // Left Hover Boot Write32( DL_BOOT_RHOVER ); // Right Hover Boot GoTo( VROM_CODE+0x00109298 ); Write32( DL_BOTTLE ); // Empty Bottle GoTo( VROM_CODE+0x001092D4 ); SetAdvance( 4 ); Write32( DL_BOW_STRING ); // Fairy Bow String Float( 0.0 ); // Fairy Bow String Anchor (X Position Float) Float( -360.4 ); // Fairy Bow String Anchor (Y Position Float) 0xC3B43333 // Hardcoded Assembly Pointers GoTo( VROM_CODE+0x000728BE ); // Left Silver/Golden Gauntlet Forearm Hi32( DL_UPGRADE_LFOREARM ); GoTo( VROM_CODE+0x000728C2 ); Lo32( DL_UPGRADE_LFOREARM ); GoTo( VROM_CODE+0x000728DA ); // Right Silver / Golden Gauntlet Forearm Hi32( DL_UPGRADE_RFOREARM ); GoTo( VROM_CODE+0x000728DE ); Lo32( DL_UPGRADE_RFOREARM ); GoTo( VROM_CODE+0x000728FA ); // Left Silver / Golden Gauntlet Hand (Fist) Hi32( DL_UPGRADE_LFIST ); GoTo( VROM_CODE+0x0007290E ); Lo32( DL_UPGRADE_LFIST ); GoTo( VROM_CODE+0x00072912 ); // Left Silver / Golden Gauntlet Hand (Open Hand) Hi32( DL_UPGRADE_LHAND ); GoTo( VROM_CODE+0x0007291E ); Lo32( DL_UPGRADE_LHAND ); GoTo( VROM_CODE+0x0007294A ); // Right Silver / Golden Gauntlet Hand (Fist) Hi32( DL_UPGRADE_RFIST ); GoTo( VROM_CODE+0x0007294E ); Lo32( DL_UPGRADE_RFIST ); GoTo( VROM_CODE+0x0007295A ); // Right Silver / Golden Gauntlet Hand (Open Hand) Hi32( DL_UPGRADE_RHAND ); GoTo( VROM_CODE+0x0007295E ); Lo32( DL_UPGRADE_RHAND ); GoTo( VROM_CODE+0x0007359A ); // FPS Right Hand + FPS Hookshot / Longshot Hi32( DL_FPS_LHAND_HOOKSHOT ); GoTo( VROM_CODE+0x0007359E ); Lo32( DL_FPS_LHAND_HOOKSHOT ); GoTo( VROM_CODE+0x00073E56 ); // Hookshot / Longshot Aiming Reticle Hi32( DL_HOOKSHOT_AIM ); GoTo( VROM_CODE+0x00073E5E ); Lo32( DL_HOOKSHOT_AIM ); // Arms_Hook GoTo( VROM_ARMS_HOOK+0x00000A6E ); // Hookshot / Longshot Spike Hi32( DL_HOOKSHOT_HOOK ); GoTo( VROM_ARMS_HOOK+0x00000A72 ); Lo32( DL_HOOKSHOT_HOOK ); GoTo( VROM_ARMS_HOOK+0x00000B8A ); // Hookshot / Longshot Chain Hi32( DL_HOOKSHOT_CHAIN ); GoTo( VROM_ARMS_HOOK+0x00000B8E ); Lo32( DL_HOOKSHOT_CHAIN ); GoTo( VROM_ARMS_HOOK+0x00000BE8 ); // Hookshot / Longshot Object File Write16( OBJ_BOY ); // ovl_Effect_Ss_Stick GoTo( VROM_SS_STICK+0x0000035C ); // Broken Piece of Giant's Knife Write32( DL_BLADEBREAK ); GoTo( VROM_SS_STICK+0x00000358 ); // Giant's Knife / Biggoron Sword Object File Write16( OBJ_BOY ); END