├── .gitattributes ├── .gitignore ├── ASM ├── Additional Codes │ ├── Allow Staling in Develop Mode.asm │ ├── Better Camera │ │ ├── C-Stick Pans Camera.asm │ │ ├── CStickPanOffscreen │ │ │ ├── Bottom.asm │ │ │ ├── Left.asm │ │ │ ├── Right.asm │ │ │ └── Top.asm │ │ ├── Slow Camera With R - Pan.asm │ │ ├── Slow Camera With R - Rotate.asm │ │ ├── Slow Camera With R - Zoom.asm │ │ ├── SnapToOffscreenPlayers │ │ │ ├── Always Onscreen.asm │ │ │ └── Snap.asm │ │ └── Unrestricted Camera.asm │ ├── Boot to Event Mode │ │ ├── Boot to Main Menu Or CSS.asm │ │ └── Main Menu Starts at Event Mode.asm │ ├── Change Default Hand Position.asm │ ├── Collision Link Draw Order Fix [Punkline] │ │ ├── New Draw Location.asm │ │ └── Remove Original Draw.asm │ ├── Debug Menu Codes │ │ ├── Debug Language is English by Default.asm │ │ ├── Exiting Debug Goes to Main Menu.asm │ │ └── Tournament Mode Goes to Debug.asm │ ├── Default Tournament Settings │ │ ├── 4 Stocks.asm │ │ ├── 8 Minutes.asm │ │ ├── No Items.asm │ │ ├── Stock Mode.asm │ │ └── Tournament Stages.asm │ ├── Disable FoD Reflection.asm │ ├── Disable FoD in Doubles.asm │ ├── Disable Item Spawn in Develop Mode.asm │ ├── Disable Rumble on Unplug.asm │ ├── Disable Special Records │ │ ├── Disable Special Messages.asm │ │ └── Disable Trophy Messages.asm │ ├── Display Animation Name for Special Moves in Develop Mode │ │ └── Display Animation Name for Special Moves in Develop Mode.asm │ ├── Display Ungrabbable Hurtboxes │ │ └── Main.asm │ ├── Enable 1P in VS Mode No Time.asm │ ├── Enable C Stick Always │ │ ├── Enable CStick for CPU in Debug.asm │ │ ├── Rotate Camera with Dpad Down and C Stick - Initiate.asm │ │ ├── Rotate Camera with Dpad Down and C Stick.asm │ │ ├── Single Player Always Returns False.asm │ │ └── Spoof Debug Level as 0 for Human C Stick Inputs.asm │ ├── Faster CSS Load.asm │ ├── Hide Nametag When Invisible.asm │ ├── Hide Player GFX When Hitboxes Enabled │ │ ├── Hide GFX When Hitboxes Enabled.asm │ │ ├── Hide OnHit GFX When Hitboxes Enabled 2.asm │ │ └── Hide OnHit GFX When Hitboxes Enabled.asm │ ├── Hitbox Visualizer │ │ ├── Always Draw TopN For Items.asm │ │ ├── Color Changes Based On Damage.asm │ │ ├── Display Chain ECBs - GObj 7.asm │ │ ├── Main.asm │ │ └── Reverse Hitbox ID Order.asm │ ├── Hold A+B for Salty Runback + Hold A+X for Random Stage + Skip Result Screen.asm │ ├── Hold Z for Rapid Frame Advance │ │ ├── P1 - Check Rapid Fire Input.asm │ │ ├── P2 - Check Rapid Fire Input.asm │ │ ├── P3 - Check Rapid Fire Input.asm │ │ └── P4 - Check Rapid Fire Input.asm │ ├── Idle Screen │ │ └── Main.asm │ ├── Initialize Stage Data.asm │ ├── L+R+A Returns to CSS During SSS.asm │ ├── Lag Reduction Prompt │ │ └── Main.asm │ ├── Last Unplug Closes All CSS Doors.asm │ ├── Longer Nametags │ │ ├── 8 Letter Tags │ │ │ ├── 8Characters1.asm │ │ │ ├── 8Characters2.asm │ │ │ ├── 8Characters3.asm │ │ │ ├── 8Characters4.asm │ │ │ ├── Adjust Cursor Position.asm │ │ │ ├── Character Spacing.asm │ │ │ ├── Copy 8 Characters1.asm │ │ │ ├── Copy 8 Characters2.asm │ │ │ ├── Disable Tag Rumble - Ignore Tag Rumble.asm │ │ │ ├── Disable Tag Rumble - Init.asm │ │ │ ├── Disable Tag Rumble - RumbleLoad.asm │ │ │ ├── Disable Tag Rumble - RumbleThink.asm │ │ │ └── ZeroNametagText.asm │ │ └── Scale Nametag BG │ │ │ └── Main.asm │ ├── Music At 0% By Default.asm │ ├── Neutral Respawn.asm │ ├── Neutral Spawn.asm │ ├── On Crash │ │ ├── Clear Bootup OSReports.asm │ │ ├── Disable Brinstar OSReport.asm │ │ ├── Disable Effect AnimList OSReport.asm │ │ ├── Disable Fourside OSReport.asm │ │ ├── Disable Fourside OSReport2.asm │ │ ├── Disable PS OSReport.asm │ │ ├── Disable YoshisIsland OSReport.asm │ │ ├── Disable mpcoll OSReport.asm │ │ ├── Dont Output Compile Date on Assert.asm │ │ ├── Dont Output Compile Date on Invalid Read.asm │ │ ├── Enable OSReport Print to Screen.asm │ │ ├── LRZ Shows Advanced Details │ │ │ ├── Any Debug Level Displays Advanced Details.s │ │ │ └── Check for LRZ.s │ │ ├── Only Show First 8 Lines of Stack.asm │ │ └── Reboot With LRAStart.asm │ ├── PRIM LITE │ │ ├── PRIM 01.asm │ │ ├── PRIM 02.asm │ │ ├── PRIM 03.asm │ │ ├── PRIM 04.asm │ │ ├── PRIM 05.asm │ │ ├── PRIM 06.asm │ │ ├── PRIM 07.asm │ │ ├── PRIM 08.asm │ │ ├── PRIM 09.asm │ │ ├── PRIM 10.asm │ │ ├── PRIM 11.asm │ │ ├── PRIM 12.asm │ │ ├── PRIM 13.asm │ │ ├── PRIM 14.asm │ │ ├── PRIM 15.asm │ │ ├── PRIM 16.asm │ │ ├── PRIM 17.asm │ │ ├── PRIM 18.asm │ │ ├── PRIM 19.asm │ │ ├── PRIM 20.asm │ │ └── main.bin │ ├── Pad - Update During Frame Advance.asm │ ├── Pause During Game Start │ │ ├── Check to Pause.asm │ │ └── Check to Unpause.asm │ ├── Physics Display │ │ └── Main.asm │ ├── Polling Drift Fix │ │ ├── a.asm │ │ ├── about.txt │ │ ├── b.asm │ │ ├── c.asm │ │ └── d.asm │ ├── Random CSS Music v2 │ │ ├── random music modification.asm │ │ ├── roll on bootup.asm │ │ └── roll on match end.asm │ ├── Rumble Off │ │ └── Rumble Off.asm │ ├── Stage Music = 50 50.asm │ ├── Toggle Rumble From CSS │ │ └── Toggle Rumble From CSS.asm │ ├── Unlock Everything │ │ ├── Unlock All Characters │ │ │ ├── Spoof All Characters as Unlocked.asm │ │ │ └── Spoof Individual Characters as Unlocked.asm │ │ ├── Unlock All Rules │ │ │ ├── Unlock Random Stage Select.asm │ │ │ └── Unlock Score Display.asm │ │ ├── Unlock All Special Messages │ │ │ ├── Special Messages 1.asm │ │ │ ├── Special Messages 2.asm │ │ │ ├── Spoof No Pending Messages 2.asm │ │ │ └── Spoof No Pending Messages.asm │ │ ├── Unlock All Stages │ │ │ ├── Spoof All Stages Unlocked.asm │ │ │ └── Spoof Individual Stage Unlocked.asm │ │ ├── Unlock All Trophies │ │ │ ├── Fill Save Data.asm │ │ │ ├── Have 99 of Every Trophy.asm │ │ │ └── Spoof All Trophies as Unlocked.asm │ │ ├── Unlock All-Star.asm │ │ └── Unlock Sound Test.asm │ ├── Unplugging Closes CSS Door.asm │ └── Use Save Banner #1.asm ├── Globals.s ├── Readme.md ├── m-ex │ ├── Custom Playerdata Variables │ │ ├── Adjust Size.asm │ │ ├── Initialize Extended Playerblock Values in Result Screen.asm │ │ ├── Initialize Extended Playerblock Values.asm │ │ └── OwnsAnim │ │ │ ├── Check Animation Owner.s │ │ │ └── Store Animation Owner.s │ ├── Header.s │ ├── Standalone Functions │ │ ├── LoadRELDAT.asm │ │ ├── Reloc.asm │ │ └── calloc.asm │ └── UCF 0.84 │ │ ├── UCF DBOOC SquatRv Fix.asm │ │ ├── UCF Dashback.asm │ │ ├── UCF Pad Buffer and 1.0 Cardinals.asm │ │ ├── UCF SDI.asm │ │ ├── UCF Shield Drop Extended.asm │ │ ├── UCF Shield Drop.asm │ │ ├── UCF Shield SDI.asm │ │ ├── UCF Store Inputs CPU.asm │ │ ├── UCF Store Inputs.asm │ │ ├── UCF Text.asm │ │ └── UCF Tumble.asm └── training-mode │ ├── Custom Events │ ├── A+B to Reset Event │ │ ├── Check for Reset on Game End.asm │ │ └── Check for Reset on LRAStart.asm │ ├── CSS and SSS │ │ ├── Add SSS To Event Match Scene List.asm │ │ ├── Backup HMN And CPU Choices │ │ │ ├── Backup Event CPU.asm │ │ │ └── Restore Event CPU.asm │ │ ├── Display Event Name on CSS.asm │ │ ├── Load CSS + Preload CPU.asm │ │ ├── Load SSS For Certain Events.asm │ │ ├── Overwrite VS Text.asm │ │ └── Toggle CSS Icon Vibibility │ │ │ └── Toggle CSS Icon Vibibility.asm │ ├── Credits Codes │ │ ├── Dont Display Info In TM Credits.asm │ │ ├── Dont Display Titles In Training Mode Credits.asm │ │ └── Swap Out Credit Names in TM Credits.asm │ ├── Custom Event Code - Rewrite.asm │ ├── Custom Event Preload Behavior │ │ ├── Disable Event Preload - CSS Enter.asm │ │ ├── Disable Event Preload - Match Enter.asm │ │ ├── Disable Event Preload.asm │ │ ├── Dont Adjust CPU Color in Event Mode When Its Already in Use.asm │ │ └── Load Character ssm Files.asm │ ├── Event Select Screen │ │ ├── Better X and Y Event Jump │ │ │ ├── Jump Down - Update Cursor.asm │ │ │ ├── Jump Down.asm │ │ │ ├── Jump Up - Update Cursor.asm │ │ │ └── Jump Up.asm │ │ ├── Change ESS Proc To Pri 1.asm │ │ ├── Choose Any Character for Events │ │ │ ├── Always Copy CSS Character Info.asm │ │ │ ├── Always Show Select Character Texture.asm │ │ │ └── Always Spoof AnyCharacter.asm │ │ ├── Custom ESS Button Actions.asm │ │ ├── Event High Scores │ │ │ ├── Load Event High Scores.asm │ │ │ └── Save Event High Scores.asm │ │ ├── Event Text │ │ │ ├── CannotScrollPastEventsOnPage.asm │ │ │ ├── Custom Event Highscore Types.asm │ │ │ ├── Display Custom Event Descriptions.asm │ │ │ ├── Display Custom Event Names on ESS.asm │ │ │ ├── Never Scroll If Less than 9 Events on Page.asm │ │ │ ├── OnlyDisplayEventsOnPage.asm │ │ │ └── SkipDisplayingEventNames.asm │ │ ├── Spoof All Events as Not Played.asm │ │ └── Version Indicator │ │ │ ├── Event Code Version Indicator.asm │ │ │ ├── Remove Event Texture.asm │ │ │ ├── Remove Version Indicator 1.asm │ │ │ ├── Remove Version Indicator 2.asm │ │ │ └── Toggle Tutorial Text.asm │ └── Unlock All Events │ │ ├── Unlock Event 1.asm │ │ └── Unlock Event 2.asm │ ├── Hooks │ ├── OnBoot.asm │ ├── OnCSSLoad.asm │ ├── OnSceneChange.asm │ └── OnStartMelee.asm │ ├── Misc │ ├── Adjust Pad Params │ │ ├── Adjust Menu Navigation Deadzone Boot.asm │ │ ├── Adjust Menu Navigation Deadzone.asm │ │ └── Increase Rapid Fire Timer.s │ ├── Allow light press in LRAS.asm │ ├── Better VS Mode Frame Counter │ │ ├── Inc Counter.asm │ │ └── Init Counter.asm │ ├── Boot Up Tasks.asm │ ├── CSS - Increase SIS Text Heap.asm │ ├── Character Randomness │ │ ├── Common.s │ │ ├── GnW Hammer.asm │ │ ├── Luigi Misfire.asm │ │ ├── Nana Throw.asm │ │ ├── Peach FSmash.asm │ │ ├── Peach Item.asm │ │ └── Peach Turnip.asm │ ├── Corneria - Move Ship on Stage Init.asm │ ├── Count NonExistant Player Kills.asm │ ├── Disable Calls to ScoreDisplay_Remove.asm │ ├── Disable USB Screenshot.asm │ ├── Display Stick Info When Paused │ │ ├── Create Text on Pause.asm │ │ └── Remove Text on UnPause.asm │ ├── Display Tweet Message And Version Number.asm │ ├── Do Not Save Nametag Region to Memcard for GALE01.asm │ ├── Frame Advance Rewrite.asm │ ├── GObj_Destory Exits When Input = 0.asm │ ├── HSD_Update Tweak │ │ ├── Allow Z in VS While Paused.asm │ │ ├── Always Run Debug Update.asm │ │ ├── Check for DBLevel.asm │ │ ├── Clear HSDUpdate for no Debug Melee.asm │ │ └── Clear HSDUpdate for no Debug.asm │ ├── Load .gct on Boot.s │ ├── Load eventMenu.dat.asm │ ├── Never Play Movies in Archives.asm │ ├── OSReport Match Load Time │ │ ├── Output Time Since Last Tick.asm │ │ └── Store Starting Tick.asm │ ├── On No Save.asm │ ├── Save File Renaming.asm │ ├── ScoreDisplay - Change GXLink Pri.asm │ ├── SearchStringTable.asm │ ├── Skip Assert for Respawn Platform.asm │ ├── Skip Assert for no_reaction_always.asm │ ├── Skip SetGroundStateAssert For Restore States.asm │ ├── Text - Increment Max Size.asm.asm │ └── Text Modifications │ │ ├── Add Symbols to ASCII-Menu Text Lookup Table.asm │ │ ├── Make Spaces Not Store 00s.asm │ │ ├── Make Spaces Store 0x1A.asm │ │ └── Parse Numbers Correctly.asm │ └── Onscreen Display │ ├── Act OOS Frame Display │ ├── Count During GuardOff.asm │ ├── Count During ShieldWait.asm │ ├── Display OOS Frame Count Standalone.asm │ ├── GuardOff - Display OOS Frame Count.asm │ ├── GuardWait - Display OOS Frame Count.asm │ └── Init Frame Count.asm │ ├── Act OOTumble │ ├── DamageFall - Check For Interrupt.asm │ ├── DamageFlyTop - CheckForInterrupt.asm │ ├── DamageLightHit - Check For Animation Interrupt.asm │ ├── DamageLightHit - Check For Interrupt - Aerial Jump.asm │ ├── DamageLightHit - Check ForInterrupt 2.asm.asm │ ├── DamageLightHit - Check ForInterrupt.asm │ ├── Increment Post Hitstun Count.asm │ └── Static Function - Display Frames Spent Post Hitstun.asm │ ├── Act Oo Float.asm │ ├── Act OoAirborne │ ├── Aerial Out of DoubleJump.asm │ ├── Aerial Out of Drop.asm │ ├── Aerial Out of Fall.asm │ ├── Aerial Out of Jump.asm │ ├── Display Act OoAirborne Frame Count - Static Function.asm │ ├── DoubleJump Out of Jump.asm │ ├── Special Out of DoubleJump.asm │ ├── Special Out of Drop.asm │ ├── Special Out of Fall.asm │ └── Special Out of Jump.asm │ ├── Act OoWait │ └── Act OOWait- Standalone.asm │ ├── Additional Playerblock Variables │ ├── Fastfall Timer │ │ ├── Display FF Timing.asm │ │ ├── Increment Fastfall Variable.asm │ │ └── Initialize Fastfall Variable.asm │ ├── Frame Advantage │ │ ├── Initialize Frame Advantage Think.asm │ │ └── Save Pointer to Shield Owner On Hit.asm │ ├── Previous Move Instance Hit By │ │ └── Backup Previous Move Instance Player was Hit By.asm │ └── StatesAndTimers │ │ ├── IncFrameCounts.asm │ │ └── ShiftStates.asm │ ├── Airdodge Item Throw.asm │ ├── Boost Grab.asm │ ├── Bowser Fortress NIL.asm │ ├── Check For ICs Static Function.asm │ ├── Combo Counter │ ├── Better Combo Counter │ │ ├── Custom Function Blrl + Keep Combo Counter Going For Missed Techs+Getups.asm │ │ ├── Disregard Projectile Hitboxes w Same Move ID.asm │ │ ├── Disregard Throw Hitboxes.asm.bak │ │ ├── Interrupting Move with Same Move Gives a Unique ID.asm │ │ ├── Keep Combo Counter Going For Missed Techs+Getups.asm │ │ ├── Pummels and Multi-Hits Increment Total Damage But Not Combo Counter.asm │ │ ├── Skip Original Combo End Check.asm │ │ └── Throw Hitboxes Update Variable in Playerblock.asm │ └── Combo Counter - On Combo Increment.asm │ ├── Dashback │ ├── Dashback Display - Static Function.asm │ ├── Grab Out of Tilt Turn.asm.bak │ └── Run Out of Tilt Turn.asm │ ├── Generic Per Frame.asm │ ├── Glide Toss.asm │ ├── Grab Breakout.asm │ ├── Jump Cancel.asm │ ├── L Cancel Display NEW.asm │ ├── Ledge Codes │ ├── Frames Spent in CliffWait.asm │ ├── GALINT │ │ ├── GALINT Aerail Interrupt.asm │ │ ├── GALINT Laser Land.asm │ │ ├── GALINT Ledgedash.asm │ │ ├── GALINT No Impact Land.asm │ │ └── Standalaone - GALINT Display.asm │ └── Ledgestall │ │ └── Ledgestall Display.asm │ ├── Message Display System │ ├── Create Message Struct.asm │ ├── Disable Hiding Score on Pause.asm │ ├── Disable Showing Score on Unpause.asm │ └── Display Message 2.0.asm │ ├── Powershield.asm │ ├── SDI Display │ ├── Initialize Total SDI Inputs Variable.asm │ └── SDI Display Main.asm │ ├── Toggle UI │ ├── Can Disable All Toggles in Custom RSS.asm │ ├── Disable Save to Bitfield Every Change.asm │ ├── Load Alt Text When Loaded With L.asm │ ├── Load Random Stage Select On L Press.asm │ ├── Load Toggles When Loaded With L .asm │ ├── Press L for OSD Indicator.asm │ ├── Remove Press L for OSD Indicator.asm │ ├── Remove Text When Leaving Custom RSS.asm │ ├── Return to Event Screen When Pressing Start.asm │ ├── Return to First Page When Loaded With L.asm │ ├── Save Toggles When Loaded With L.asm │ ├── Set Flag on Leaving Custom RSS.asm │ └── XY To Adjust OSD Position.asm │ ├── Wavedash Display │ ├── Save Airdodge Y Angle.asm │ └── Wavedash Timing Display.asm │ └── Yoshi Egg Toss.asm ├── Additional ISO Files └── opening.bnr ├── Build TM Codeset ├── codes.json ├── gecko ├── gecko.exe └── powerpc-gekko-as.exe ├── Build TM Start.dol ├── patch.xdelta ├── patch_jp.xdelta └── xdelta.exe ├── DEVELOPMENT.md ├── GTME01.map ├── Logos ├── Training-Mode-banner-small.png ├── Training-Mode-banner.png └── Training-Mode-large.png ├── Makefile ├── MexTK ├── HSDRaw.dll ├── MexTK.exe ├── MexTK.exe.config ├── cssFunction.txt ├── evFunction.txt ├── ftFunction.txt ├── grFunction.txt ├── include │ ├── 1p.h │ ├── audio.h │ ├── collision.h │ ├── color.h │ ├── css.h │ ├── datatypes.h │ ├── devtext.h │ ├── dynamics.h │ ├── effects.h │ ├── fighter.h │ ├── gx.h │ ├── hsd.h │ ├── inline.h │ ├── item.h │ ├── match.h │ ├── math.h │ ├── memcard.h │ ├── mex.h │ ├── obj.h │ ├── offsets.h │ ├── preload.h │ ├── result.h │ ├── scene.h │ ├── stage.h │ ├── structs.h │ ├── text.h │ └── useful.h ├── itFunction.txt ├── kbFunction.txt ├── melee.link ├── mex.h ├── mjFunction.txt ├── mnFunction.txt └── tmFunction.txt ├── README.md ├── TM-CE ├── DRAG VANILLA MELEE HERE.bat ├── build_linux_and_mac.sh └── xdelta3.exe ├── build_windows.bat ├── dats ├── eventMenu.dat ├── lab.dat ├── labCSS.dat ├── lcancel.dat ├── ledgedash.dat └── wavedash.dat ├── gc_fst ├── gc_fst.exe └── src ├── edgeguard.c ├── edgeguard.h ├── events.c ├── events.h ├── lab.c ├── lab.h ├── lab_common.h ├── lab_css.c ├── lcancel.c ├── lcancel.h ├── ledgedash.c ├── ledgedash.h ├── powershield.c ├── wavedash.c └── wavedash.h /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows thumbnail cache files 2 | Thumbs.db 3 | ehthumbs.db 4 | ehthumbs_vista.db 5 | 6 | # Folder config file 7 | Desktop.ini 8 | 9 | # Recycle Bin used on file shares 10 | $RECYCLE.BIN/ 11 | 12 | # Windows Installer files 13 | *.cab 14 | *.msi 15 | *.msm 16 | *.msp 17 | 18 | # Windows shortcuts 19 | *.lnk 20 | 21 | # ========================= 22 | # Operating System Files 23 | # ========================= 24 | ASM/Misc/Store Version Number.asm 25 | ASM/Misc/Overwrite Compile Date.asm 26 | 27 | # ========================== 28 | # Project files 29 | # ========================== 30 | Build\ TM\ Codeset/mac/gecko 31 | Additional\ ISO\ Files/codes.gct 32 | Additional\ ISO\ Files/Start.dol 33 | ASM_OLD/ 34 | build/ 35 | root/ 36 | *.iso 37 | 38 | # Mac files 39 | .DS_Store 40 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Allow Staling in Develop Mode.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80089250 2 | 3 | b 0x8 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/C-Stick Pans Camera.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002cb30 2 | .include "../../Globals.s" 3 | 4 | .set Player, 5 5 | .set FloatPointer, 6 6 | 7 | # Float regs 8 | .set Deadzone, 5 9 | .set DeadzoneNeg, 6 10 | .set PlayerY, 7 11 | .set PlayerX, 8 12 | 13 | # Get Float Pointer 14 | bl Floats 15 | mflr FloatPointer 16 | # Get Player Input Struct 17 | load r3, 0x804C1FAC 18 | lbz r4, 0x02C5(r31) 19 | mulli Player, r4, 0x44 20 | add Player, r3, Player 21 | # Get Deadzone Value from PlCo 22 | lwz r3, -0x514C(r13) 23 | lfs Deadzone, 0(r3) 24 | fneg DeadzoneNeg, Deadzone 25 | 26 | CheckYDeadzone: 27 | # Check Y Value 28 | lfs PlayerY, 0x2C(Player) 29 | fcmpo cr0, PlayerY, DeadzoneNeg 30 | ble- StoreY 31 | fcmpo cr0, PlayerY, Deadzone 32 | blt- CheckXDeadzone 33 | 34 | StoreY: 35 | lfs f1, 0x318(r31) # Get X 36 | lfs f2, 0x330(r31) # Get zoom level 37 | lfs f3, 0x0(FloatPointer) # Get multiplier 38 | fdivs f3, f2, f3 # Zoom * var 39 | fmuls PlayerY, PlayerY, f3 # Stick axis * zoomed 40 | fadds f1, f1, PlayerY # Add to X 41 | stfs f1, 0x318(r31) # Store 42 | 43 | CheckXDeadzone: 44 | lfs PlayerY, 0x28(Player) 45 | fcmpo cr0, PlayerY, DeadzoneNeg 46 | ble- StoreX 47 | fcmpo cr0, PlayerY, Deadzone 48 | blt- Exit 49 | 50 | StoreX: 51 | lfs f1, 0x314(r31) 52 | lfs f2, 0x330(r31) # Get zoom level 53 | lfs f3, 0x0(FloatPointer) # Get multiplier 54 | fdivs f3, f2, f3 # Zoom * var 55 | fmuls PlayerY, PlayerY, f3 # Stick axis * zoomed 56 | fadds f1, f1, PlayerY # Add to Y 57 | stfs f1, 0x314(r31) 58 | b Exit 59 | 60 | Floats: 61 | blrl 62 | .float 125 63 | 64 | Exit: 65 | lbz r0, 0x02C5(r31) 66 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/CStickPanOffscreen/Bottom.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002c6e4 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/CStickPanOffscreen/Left.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002c6bc 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/CStickPanOffscreen/Right.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002c6a8 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/CStickPanOffscreen/Top.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002c6d0 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/Slow Camera With R - Pan.asm: -------------------------------------------------------------------------------- 1 | # to be inserted at 8022804c 2 | 3 | .include "../../Globals.s" 4 | .include "../../m-ex/Header.s" 5 | 6 | backupall 7 | 8 | li r3, 0 9 | 10 | load r4, HSD_InputStructStart 11 | li r5, 4 12 | CheckForL: 13 | lwz r6, 0x0(r4) 14 | or r3, r3, r6 15 | addi r4, r4, 0x44 16 | addi r5, r5, -1 17 | cmpwi r5, 0 18 | bne CheckForL 19 | EndCheckForL: 20 | li r4, PAD_TRIGGER_R 21 | and r3, r3, r4 22 | 23 | bl NormalSpeed 24 | mflr r4 25 | cmpwi r3, 0 26 | beq EndGetSpeed 27 | bl SlowSpeed 28 | mflr r4 29 | EndGetSpeed: 30 | lfs f2, 0x0(r4) 31 | b Exit 32 | 33 | SlowSpeed: 34 | blrl 35 | .float 0.2 36 | NormalSpeed: 37 | blrl 38 | .float 2.0 39 | 40 | Exit: 41 | restoreall 42 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/Slow Camera With R - Rotate.asm: -------------------------------------------------------------------------------- 1 | # to be inserted at 80227ac4 2 | 3 | .include "../../Globals.s" 4 | .include "../../m-ex/Header.s" 5 | 6 | backupall 7 | 8 | li r3, 0 9 | 10 | load r4, HSD_InputStructStart 11 | li r5, 4 12 | CheckForL: 13 | lwz r6, 0x0(r4) 14 | or r3, r3, r6 15 | addi r4, r4, 0x44 16 | addi r5, r5, -1 17 | cmpwi r5, 0 18 | bne CheckForL 19 | EndCheckForL: 20 | li r4, PAD_TRIGGER_R 21 | and r3, r3, r4 22 | 23 | bl NormalSpeed 24 | mflr r4 25 | cmpwi r3, 0 26 | beq EndGetSpeed 27 | bl SlowSpeed 28 | mflr r4 29 | EndGetSpeed: 30 | lfs f0, 0x0(r4) 31 | stfs f0, -0x3C88(rtoc) # need to store, this value is read for both x & y rotation 32 | b Exit 33 | 34 | SlowSpeed: 35 | blrl 36 | .float 0.001745 37 | NormalSpeed: 38 | blrl 39 | .float 0.01745 40 | 41 | Exit: 42 | restoreall 43 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/Slow Camera With R - Zoom.asm: -------------------------------------------------------------------------------- 1 | # to be inserted at 80227cec 2 | 3 | .include "../../Globals.s" 4 | .include "../../m-ex/Header.s" 5 | 6 | backupall 7 | 8 | li r3, 0 9 | 10 | load r4, HSD_InputStructStart 11 | li r5, 4 12 | CheckForL: 13 | lwz r6, 0x0(r4) 14 | or r3, r3, r6 15 | addi r4, r4, 0x44 16 | addi r5, r5, -1 17 | cmpwi r5, 0 18 | bne CheckForL 19 | EndCheckForL: 20 | li r4, PAD_TRIGGER_R 21 | and r3, r3, r4 22 | 23 | bl NormalSpeed 24 | mflr r4 25 | cmpwi r3, 0 26 | beq EndGetSpeed 27 | bl SlowSpeed 28 | mflr r4 29 | EndGetSpeed: 30 | lfs f2, 0x0(r4) 31 | b Exit 32 | 33 | SlowSpeed: 34 | blrl 35 | .float 0.005 36 | NormalSpeed: 37 | blrl 38 | .float 0.05 39 | 40 | Exit: 41 | restoreall 42 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/SnapToOffscreenPlayers/Always Onscreen.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002cf34 2 | .include "../../../Globals.s" 3 | 4 | .set REG_Pauser, 31 5 | .set REG_Count, 30 6 | 7 | backup 8 | 9 | # Get player port who paused 10 | load r3, 0x8046b6a0 11 | lbz REG_Pauser, 0x1(r3) 12 | 13 | # Search all players for this port 14 | li REG_Count, 0 15 | 16 | Loop: 17 | mr r3, REG_Count 18 | branchl r12, PlayerBlock_LoadMainCharDataOffset 19 | cmpwi r3, 0 20 | beq IncLoop 21 | # Check their port to see if it matches 22 | mr r3, REG_Count 23 | branchl r12, 0x8003345c 24 | cmpw r3, REG_Pauser 25 | beq FoundPauser 26 | 27 | IncLoop: 28 | addi REG_Count, REG_Count, 1 29 | cmpwi REG_Count, 4 30 | blt Loop 31 | b Dead 32 | 33 | FoundPauser: 34 | # Check if player is alive 35 | mr r3, REG_Count 36 | branchl r12, PlayerBlock_LoadMainCharDataOffset 37 | lwz r3, 0x2C(r3) 38 | lbz r3, 0x221F(r3) 39 | rlwinm. r3, r3, 0, 25, 25 40 | bne Dead 41 | 42 | Alive: 43 | li r3, 0 44 | b Exit 45 | 46 | Dead: 47 | li r3, 1 48 | 49 | Exit: 50 | restore 51 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/SnapToOffscreenPlayers/Snap.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002c5f0 2 | .include "../../../Globals.s" 3 | 4 | .set REG_Pauser, 31 5 | .set REG_Count, 30 6 | 7 | backup 8 | 9 | # Get player port who paused 10 | load r3, 0x8046b6a0 11 | lbz REG_Pauser, 0x1(r3) 12 | 13 | # Search all players for this port 14 | li REG_Count, 0 15 | 16 | Loop: 17 | mr r3, REG_Count 18 | branchl r12, PlayerBlock_LoadMainCharDataOffset 19 | cmpwi r3, 0 20 | beq IncLoop 21 | # Check their port to see if it matches 22 | mr r3, REG_Count 23 | branchl r12, 0x8003345c 24 | cmpw r3, REG_Pauser 25 | beq FoundPauser 26 | 27 | IncLoop: 28 | addi REG_Count, REG_Count, 1 29 | cmpwi REG_Count, 4 30 | blt Loop 31 | b Dead 32 | 33 | FoundPauser: 34 | # Check if player is alive 35 | mr r3, REG_Count 36 | branchl r12, PlayerBlock_LoadMainCharDataOffset 37 | lwz r3, 0x2C(r3) 38 | lbz r3, 0x221F(r3) 39 | rlwinm. r3, r3, 0, 25, 25 40 | bne Dead 41 | 42 | Alive: 43 | restore 44 | branch r12, 0x8002c644 45 | 46 | Dead: 47 | 48 | Exit: 49 | restore 50 | lfs f0, 0x000C(r26) 51 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Better Camera/Unrestricted Camera.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8002f5bc 2 | loc_0x0: 3 | lis r3, 0x8048 4 | lbz r3, -25240(r3) 5 | rlwinm. r3, r3, 0, 30, 30 6 | beq- loc_0x48 7 | lis r3, 0x8048 8 | lbz r3, -25296(r3) 9 | cmpwi r3, 0x1C 10 | beq- loc_0x48 11 | li r3, 0x0 12 | stw r3, 760(r31) 13 | lis r3, 0x4700 14 | stw r3, 744(r31) 15 | stw r3, 748(r31) 16 | stw r3, 752(r31) 17 | stw r3, 756(r31) 18 | stw r3, 764(r31) 19 | lis r3, 0x8003 20 | b loc_0x50 21 | 22 | loc_0x48: 23 | lis r3, 0x8003 24 | stfs f1, 764(r31) 25 | 26 | loc_0x50: 27 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Boot to Event Mode/Boot to Main Menu Or CSS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801BFA20 2 | .include "../../Globals.s" 3 | 4 | .set LoopCount, 12 5 | .set InputStruct, 11 6 | 7 | # Check if any player is pressing Z 8 | li LoopCount, 0 9 | load InputStruct, InputStructStart 10 | 11 | # Loop through inputs 12 | InputLoop: 13 | mulli r0, LoopCount, 68 14 | add r3, r0, InputStruct 15 | lwz r3, 0(r3) 16 | rlwinm. r0, r3, 0, 21, 21 # Check For X 17 | bne LoadCSS 18 | addi LoopCount, LoopCount, 1 19 | cmpwi LoopCount, 4 20 | blt InputLoop 21 | b LoadEventMenu 22 | 23 | LoadCSS: 24 | # Play SFX 25 | li r3, 1 26 | branchl r12, SFX_MenuCommonSound 27 | li r3, 2 28 | b Exit 29 | 30 | # Boot to Event Menu 31 | LoadEventMenu: 32 | li r3, 1 33 | 34 | Exit: 35 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Boot to Event Mode/Main Menu Starts at Event Mode.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801b02dc 2 | .include "../../Globals.s" 3 | 4 | .set entity, 31 5 | .set player, 31 6 | .set playerdata, 31 7 | 8 | # Spoof current (soon to be previous) screen 9 | li r3, Scene.EventMode 10 | load r4, SceneController 11 | stb r3, Scene.CurrentMajor(r4) 12 | 13 | li r3, 0x00 14 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Change Default Hand Position.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 804dc47c 2 | # Credit Achilles1515 3 | .float -2.5 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Collision Link Draw Order Fix [Punkline]/New Draw Location.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80030288 2 | .include "../../Globals.s" 3 | 4 | branchl r12, 0x80030A78 5 | cmpwi r3, 0 6 | beq- _return 7 | 8 | # checks for collision link display flag 9 | 10 | _if_drawing_stage_collisions: 11 | branchl r12, 0x80059e60 12 | 13 | # moves post-process drawing call to before player draw 14 | # causes geometry to be drawn on black/white screen, if enabled simultaneously 15 | 16 | _return: 17 | lbz r0, 0(r31) 18 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Collision Link Draw Order Fix [Punkline]/Remove Original Draw.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8005a2ec 2 | .include "../../Globals.s" 3 | 4 | nop 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Debug Menu Codes/Debug Language is English by Default.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803fa258 2 | .long 0x00000001 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Debug Menu Codes/Exiting Debug Goes to Main Menu.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801B0A14 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Debug Menu Codes/Tournament Mode Goes to Debug.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8022D638 2 | li r0, 6 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Default Tournament Settings/4 Stocks.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803D4A4C 2 | .long 0x04000A00 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Default Tournament Settings/8 Minutes.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803D4A50 2 | .long 0x08010100 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Default Tournament Settings/No Items.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803D4A60 2 | .long 0xFF000000 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Default Tournament Settings/Stock Mode.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803D4A48 2 | .long 0x00340000 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Default Tournament Settings/Tournament Stages.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803D4A78 2 | .long 0xE70000B0 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Disable FoD Reflection.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008114c 2 | .include "../Globals.s" 3 | 4 | .set REG_ReflectCallback, 31 5 | 6 | # Save reflection callback 7 | mr r3, r0 8 | backup 9 | mr REG_ReflectCallback, r3 10 | # Count player gobjs 11 | branchl r12, 0x800860c4 # CountPlayers 12 | 13 | # Check if 4 or more 14 | cmpwi r3, 4 15 | blt ShowReflect 16 | # Dont draw reflection 17 | li r3, 0 18 | b Exit 19 | 20 | ShowReflect: 21 | mr r3, REG_ReflectCallback 22 | b Exit 23 | 24 | Exit: 25 | restore 26 | mr r0, r3 27 | lwz r4, GObj_Lists(r13) 28 | lwz r3, 0x0020(r4) 29 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Disable FoD in Doubles.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80266ce0 2 | .include "../Globals.s" 3 | 4 | ####################################### 5 | ## Runs During CSS -> SSS Transition ## 6 | ####################################### 7 | 8 | .set REG_RandomStageField, 5 9 | .set REG_RulesPointer, 6 10 | 11 | # Ensure only all other legal stages are enabled 12 | # Get Random Stage Select Bitflags 13 | lwz REG_RulesPointer, MemcardData(r13) 14 | addi REG_RulesPointer, REG_RulesPointer, 7344 15 | lwz REG_RandomStageField, 0x18(REG_RulesPointer) 16 | # Check if only all legal stages are on 17 | load r3, 0xE70000B0 18 | xor. r3, r3, REG_RandomStageField 19 | beq CheckForTeams 20 | # Check if the only other stage off is FoD 21 | cmpwi r3, 0x20 22 | beq CheckForTeams 23 | b Exit 24 | 25 | CheckForTeams: 26 | # Get Teams On/Off Bool 27 | lwz r3, -0x49F0(r13) 28 | lbz r3, 0x18(r3) 29 | # Check If Teams is On or Off 30 | cmpwi r3, 0x1 31 | beq Doubles 32 | 33 | Singles: 34 | # Flip FoD Bit On in Random Stage Bitflag (FoD is bit #26) 35 | li r3, 0x1 36 | rlwimi REG_RandomStageField, r3, 5, 26, 26 37 | stw REG_RandomStageField, 0x18(REG_RulesPointer) 38 | b Exit 39 | 40 | Doubles: 41 | # Flip FoD Bit Off in Random Stage Bitflag (FoD is bit #26) 42 | li r3, 0x0 43 | rlwimi REG_RandomStageField, r3, 5, 26, 26 44 | stw REG_RandomStageField, 0x18(REG_RulesPointer) 45 | b Exit 46 | 47 | Exit: 48 | li r3, 1 49 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Disable Item Spawn in Develop Mode.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80226530 2 | .include "../Globals.s" 3 | 4 | nop 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Disable Rumble on Unplug.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803775a4 2 | .include "../Globals.s" 3 | 4 | # Check if unplugged 5 | lbz r3, 0x000A(r25) # current read 6 | extsb r3, r3 7 | cmpwi r3, -1 8 | bne Original 9 | lbz r3, 0x0041(r26) # prev read 10 | extsb. r3, r3 11 | bne Original 12 | # Disable rumble 13 | mr r3, r24 14 | li r4, 0 15 | branchl r12, Rumble_StoreRumbleFlag 16 | 17 | Original: 18 | lbz r0, 0x000A(r25) 19 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Disable Special Records/Disable Special Messages.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80173eec 2 | blr 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Disable Special Records/Disable Trophy Messages.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80172898 2 | blr 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Display Animation Name for Special Moves in Develop Mode/Display Animation Name for Special Moves in Develop Mode.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80226acc 2 | .include "../../Globals.s" 3 | 4 | .set entity, 31 5 | .set playerdata, 28 6 | .set player, 29 7 | 8 | # Get Animation Data Pointer 9 | mr r3, playerdata 10 | lwz r4, 0x14(playerdata) 11 | branchl r12, 0x80085fd4 12 | 13 | # Get Move Name String 14 | lwz r3, 0x0(r3) 15 | 16 | # Get Start of Move Name 17 | StringSearchLoop: 18 | lbzu r4, 0x1(r3) 19 | cmpwi r4, 0x4E # Check For "N" 20 | bne StringSearchLoop 21 | lbzu r4, 0x1(r3) 22 | cmpwi r4, 0x5F # Check for Underscore 23 | bne StringSearchLoop 24 | addi r3, r3, 0x1 # Start of Move Name in r3 25 | 26 | # Copy Move Name To Cut Off "fiagtree" Text 27 | bl StringSpace 28 | mflr r5 29 | subi r4, r5, 0x1 30 | subi r3, r3, 0x1 31 | 32 | StringCopyLoop: 33 | lbzu r6, 0x1(r3) 34 | cmpwi r6, 0x5F # Check for Underscore 35 | beq ExitCopyLoop 36 | stbu r6, 0x1(r4) 37 | b StringCopyLoop 38 | 39 | ExitCopyLoop: 40 | li r3, 0x0 41 | stbu r3, 0x1(r4) 42 | mr r4, r5 43 | b exit 44 | 45 | StringSpace: 46 | blrl 47 | .long 0x00000000 48 | .long 0x00000000 49 | .long 0x00000000 50 | .long 0x00000000 51 | .long 0x00000000 52 | .long 0x00000000 53 | .long 0x00000000 54 | 55 | exit: 56 | mr r3, r31 57 | crclr 6 58 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Display Ungrabbable Hurtboxes/Main.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8000a284 2 | .include "../../Globals.s" 3 | 4 | # Check if vuln 5 | cmpwi r6, 0 6 | bne Exit 7 | # Check if this is an ungrabbable hurtbox 8 | lwz r0, 0x48(r28) 9 | cmpwi r0, 0 10 | bne Exit 11 | # Override color 12 | bl Color 13 | mflr r3 14 | b Skip 15 | 16 | Color: 17 | blrl 18 | .long 0xAB27FF80 19 | 20 | Exit: 21 | lwz r3, 0(r3) 22 | 23 | Skip: 24 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Enable 1P in VS Mode No Time.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80263064 2 | .include "../Globals.s" 3 | 4 | .set REG_ReadyPlayers, 31 5 | 6 | backup 7 | 8 | # Backup players 9 | mr REG_ReadyPlayers, r4 10 | # Check if mode is set to time 11 | branchl r12, LoadRulesSettingsPointer1 12 | lbz r4, 0x2(r3) 13 | cmpwi r4, 0 14 | bne Check2Players 15 | # Check if time is set to none 16 | lbz r4, 0x3(r3) 17 | cmpwi r4, 0 18 | bne Check2Players 19 | 20 | Check1Player: 21 | # Check for 1 players 22 | cmpwi REG_ReadyPlayers, 1 23 | b Exit 24 | 25 | Check2Players: 26 | # Check for 2 players 27 | cmpwi REG_ReadyPlayers, 2 28 | 29 | Exit: 30 | restore 31 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Enable C Stick Always/Enable CStick for CPU in Debug.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006ae00 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Enable C Stick Always/Rotate Camera with Dpad Down and C Stick - Initiate.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802274f0 2 | .include "../../Globals.s" 3 | 4 | # Get Inputs 5 | load r4, 0x804c1fac 6 | mulli r3, r30, 68 7 | add r3, r3, r4 8 | 9 | # Check for dpad down 10 | lwz r3, 0x0(r3) 11 | rlwinm. r3, r3, 0, 29, 29 12 | bne Original 13 | 14 | # Exit 15 | branch r12, 0x802275f4 16 | 17 | Original: 18 | lfs f0, -0x3CA4(rtoc) 19 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Enable C Stick Always/Rotate Camera with Dpad Down and C Stick.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80227b70 2 | .include "../../Globals.s" 3 | 4 | # Get Inputs 5 | load r4, 0x804c1fac 6 | add r4, r4, r5 7 | 8 | # Check for dpad down 9 | lwz r4, 0x0(r4) 10 | rlwinm. r4, r4, 0, 29, 29 11 | bne Original 12 | 13 | # Exit 14 | branch r12, 0x80227b98 15 | 16 | Original: 17 | lfs f0, -0x3CA4(rtoc) 18 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Enable C Stick Always/Single Player Always Returns False.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016B480 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Enable C Stick Always/Spoof Debug Level as 0 for Human C Stick Inputs.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006AE90 2 | li r0, 0 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Faster CSS Load.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802641B0 2 | li r0, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hide Nametag When Invisible.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802fccd8 2 | .include "../Globals.s" 3 | 4 | # Check if Doubles 5 | load r3, 0x8046b6a0 6 | lbz r3, 0x24D0(r3) 7 | cmpwi r3, 0x1 8 | beq Original 9 | # Get PLayer 10 | lbz r3, 0(r31) 11 | branchl r12, PlayerBlock_LoadMainCharDataOffset 12 | # Get Player Data 13 | lwz r4, 0x2C(r3) 14 | # Check if Mewtwo 15 | lwz r3, 0x4(r4) 16 | cmpwi r3, 0x10 17 | bne NotMewtwoAridodge 18 | # Check if Airdodging 19 | lwz r3, 0x10(r4) 20 | cmpwi r3, 0xEC 21 | beq HideNametag 22 | 23 | NotMewtwoAridodge: 24 | # Get Invis Bit 25 | lbz r3, 0x221E(r4) 26 | rlwinm. r3, r3, 0, 24, 24 27 | beq- Original 28 | 29 | HideNametag: 30 | # Is Invisible, Hide Tag 31 | lis r12, 0x802F 32 | ori r12, r12, 0xCCC8 33 | mtctr r12 34 | bctr 35 | 36 | Original: 37 | cmplwi r30, 0 38 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hide Player GFX When Hitboxes Enabled/Hide GFX When Hitboxes Enabled.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8005FE30 2 | .include "../../Globals.s" 3 | 4 | # Check if a GObj was sent as an arg 5 | cmpwi r4, 0 6 | beq Original 7 | # Check if this is a player GObj 8 | lhz r8, 0x0(r4) 9 | cmpwi r8, 0x4 10 | beq Fighter 11 | cmpwi r8, 0x6 12 | beq Item 13 | b Original 14 | 15 | Fighter: 16 | # Get player's hitbox visibility flag 17 | lwz r8, 0x2C(r4) 18 | lbz r8, 0x21FC(r8) 19 | rlwinm. r8, r8, 0, 30, 30 20 | beq Original 21 | b Skip 22 | 23 | Item: 24 | # Get item's hitbox visibility flag 25 | lwz r8, 0x2C(r4) 26 | lbz r8, 0xDAA(r8) 27 | rlwinm. r8, r8, 0, 30, 30 28 | beq Original 29 | b Skip 30 | 31 | Skip: 32 | li r3, 0 33 | branch r12, 0x80061d40 34 | 35 | Original: 36 | addi r28, r3, 0 37 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hide Player GFX When Hitboxes Enabled/Hide OnHit GFX When Hitboxes Enabled 2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8007a430 2 | .include "../../Globals.s" 3 | 4 | # Get player's hitbox visibility flag 5 | lwz r12, 0x002C(r30) 6 | lbz r12, 0x21FC(r12) 7 | rlwinm. r12, r12, 0, 30, 30 8 | beq Original 9 | branch r12, 0x8007a6a8 10 | 11 | Original: 12 | lwz r0, 0x0030(r17) 13 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hide Player GFX When Hitboxes Enabled/Hide OnHit GFX When Hitboxes Enabled.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8007a180 2 | .include "../../Globals.s" 3 | 4 | # Get player's hitbox visibility flag 5 | lbz r0, 0x21FC(r6) 6 | rlwinm. r0, r0, 0, 30, 30 7 | beq Original 8 | branch r12, 0x8007a6a8 9 | 10 | Original: 11 | lwz r0, 0x0030(r4) 12 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hitbox Visualizer/Always Draw TopN For Items.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800593b0 2 | .include "../../Globals.s" 3 | 4 | backup 5 | 6 | lwz r31, 0x2C(r28) 7 | 8 | # Draw TopN 9 | lwz r10, -0x7920(rtoc) 10 | lwz r9, -0x791C(rtoc) 11 | lwz r8, -0x7918(rtoc) 12 | lwz r7, -0x7914(rtoc) 13 | lwz r6, -0x7910(rtoc) 14 | lwz r5, -0x790C(rtoc) 15 | lwz r4, -0x7908(rtoc) 16 | lwz r0, -0x7924(rtoc) 17 | stw r10, 0x00DC(sp) 18 | stw r9, 0x00D8(sp) 19 | stw r8, 0x00D4(sp) 20 | stw r7, 0x00D0(sp) 21 | stw r6, 0x00CC(sp) 22 | stw r5, 0x00C8(sp) 23 | stw r4, 0x00C4(sp) 24 | stw r0, 0x00C0(sp) 25 | branchl r12, 0x80058ACC 26 | li r3, 168 27 | li r4, 0 28 | li r5, 4 29 | branchl r12, 0x8033D0DC 30 | lfs f3, 0x4C(r31) # X offset? 31 | lfs f2, -0x7964(rtoc) 32 | lfs f4, 0x50(r31) # Y offset? 33 | fsubs f1, f3, f2 34 | lfs f5, 0x54(r31) # Z Offset 35 | fadds f0, f2, f3 36 | fsubs f6, f4, f2 37 | stfs f1, -0x8000(r30) 38 | fadds f1, f2, f4 39 | stfs f4, -0x8000(r30) 40 | stfs f5, -0x8000(r30) 41 | stfs f0, -0x8000(r30) 42 | stfs f4, -0x8000(r30) 43 | stfs f5, -0x8000(r30) 44 | stfs f3, -0x8000(r30) 45 | stfs f6, -0x8000(r30) 46 | stfs f5, -0x8000(r30) 47 | stfs f3, -0x8000(r30) 48 | stfs f1, -0x8000(r30) 49 | stfs f5, -0x8000(r30) 50 | 51 | Exit: 52 | restore 53 | branch r12, 0x800593d0 54 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hitbox Visualizer/Display Chain ECBs - GObj 7.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800593dc 2 | .include "../../Globals.s" 3 | 4 | .set REG_CurrentGObj, 31 5 | .set REG_GX, 30 6 | 7 | backup 8 | 9 | lis REG_GX, 0xcc01 10 | 11 | # Draw location of all chains (0x28) 12 | lwz r3, -0x3E74(r13) 13 | lwz REG_CurrentGObj, 0x28(r3) 14 | b Loop_CheckNext 15 | 16 | Loop: 17 | .set REG_CurrentGObjData, 29 18 | 19 | # Get Data 20 | lwz REG_CurrentGObjData, 0x2C(REG_CurrentGObj) 21 | /* 22 | # Draw TopN 23 | lwz r10, -0x7920(rtoc) 24 | lwz r9, -0x791C(rtoc) 25 | lwz r8, -0x7918(rtoc) 26 | lwz r7, -0x7914(rtoc) 27 | lwz r6, -0x7910(rtoc) 28 | lwz r5, -0x790C(rtoc) 29 | lwz r4, -0x7908(rtoc) 30 | lwz r0, -0x7924(rtoc) 31 | stw r10, 0x00DC(sp) 32 | stw r9, 0x00D8(sp) 33 | stw r8, 0x00D4(sp) 34 | stw r7, 0x00D0(sp) 35 | stw r6, 0x00CC(sp) 36 | stw r5, 0x00C8(sp) 37 | stw r4, 0x00C4(sp) 38 | stw r0, 0x00C0(sp) 39 | branchl r12, 0x80058ACC 40 | li r3, 168 41 | li r4, 0 42 | li r5, 4 43 | branchl r12, 0x8033D0DC 44 | lfs f3, 0x4C(REG_CurrentGObjData) # X offset? 45 | lfs f2, -0x7964(rtoc) 46 | lfs f4, 0x50(REG_CurrentGObjData) # Y offset? 47 | fsubs f1, f3, f2 48 | lfs f5, 0x54(REG_CurrentGObjData) # Z Offset 49 | fadds f0, f2, f3 50 | fsubs f6, f4, f2 51 | stfs f1, -0x8000(r30) 52 | fadds f1, f2, f4 53 | stfs f4, -0x8000(r30) 54 | stfs f5, -0x8000(r30) 55 | stfs f0, -0x8000(r30) 56 | stfs f4, -0x8000(r30) 57 | stfs f5, -0x8000(r30) 58 | stfs f3, -0x8000(r30) 59 | stfs f6, -0x8000(r30) 60 | stfs f5, -0x8000(r30) 61 | stfs f3, -0x8000(r30) 62 | stfs f1, -0x8000(r30) 63 | stfs f5, -0x8000(r30) 64 | */ 65 | # Check if collision is up to date 66 | lwz r0, -0x51F4(r13) 67 | lwz r4, 0x0038+48(REG_CurrentGObjData) 68 | cmpw r0, r4 69 | bne Loop_Inc 70 | # Draw ECB 71 | addi r3, REG_CurrentGObjData, 48 72 | branchl r12, 0x80058b5c 73 | 74 | # Check if more 75 | Loop_Inc: 76 | lwz REG_CurrentGObj, 0x8(REG_CurrentGObj) 77 | 78 | Loop_CheckNext: 79 | cmpwi REG_CurrentGObj, 0 80 | bne Loop 81 | 82 | Exit: 83 | restore 84 | lmw r26, 0x0118(sp) 85 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hitbox Visualizer/Reverse Hitbox ID Order.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80080614 2 | # just before the branch to color hitboxes, we reverse the ID draw order 3 | 4 | # regular: 5 | # r3 = r31 + 2324 + r25 * 312 (FighterData.hitbox[i]) 6 | 7 | # re-ordered: 8 | # r3 = r31 + 2324 + (3-r25) * 312 (FighterData.hitbox[3-i]) 9 | 10 | li r3, 3 11 | sub r3, r3, r25 12 | mulli r3, r3, 312 13 | addi r3, r3, 2324 14 | add r3, r3, r31 15 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hold A+B for Salty Runback + Hold A+X for Random Stage + Skip Result Screen.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a5b14 2 | .include "../Globals.s" 3 | 4 | .set REG_LoopCount, 29 5 | 6 | # Init loop 7 | li REG_LoopCount, 0 8 | 9 | Loop: 10 | # Get players inputs 11 | mr r3, REG_LoopCount 12 | branchl r12, Inputs_GetPlayerHeldInputs 13 | 14 | # Check Inputs 15 | rlwinm. r0, r4, 0, 23, 23 # check A 16 | beq- LoopInc 17 | rlwinm. r0, r4, 0, 22, 22 # check B 18 | bne- Runback 19 | rlwinm. r0, r4, 0, 21, 21 # check X 20 | bne RandomStage 21 | 22 | LoopInc: 23 | addi REG_LoopCount, REG_LoopCount, 1 24 | cmpwi REG_LoopCount, 4 25 | blt Loop 26 | b LoadCSS 27 | 28 | Runback: 29 | li r27, 0x2 # reload match scene 30 | b exit 31 | 32 | RandomStage: 33 | branchl r12, 0x802599EC # get random stage ID 34 | 35 | # convert SSS ID to internal stage ID 36 | load r4, 0x803f06D0 # load stage ID table 37 | mulli r3, r3, 28 # stage ID to offset 38 | add r4, r4, r3 # add to start of table 39 | lbz r3, 0xB(r4) # get internal stage ID 40 | # Store to match struct 41 | load r4, 0x8045AC64 # load VS match struct 42 | sth r3, 0x2(r4) # store stage half to struct 43 | # Store to preload table 44 | load r4, 0x8043207c # Preload Cache 45 | stw r3, 0xC(r4) # Store to Preload Cache 46 | # Request Load 47 | branchl r12, 0x80018254 48 | 49 | li r27, 0x2 # reload match scene 50 | b exit 51 | 52 | LoadCSS: 53 | li r27, 0 # 4 is results 54 | 55 | exit: 56 | 57 | Original: 58 | li r29, 0 59 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hold Z for Rapid Frame Advance/P1 - Check Rapid Fire Input.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016bbd4 2 | lwz r0, 0x000C(r4) 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hold Z for Rapid Frame Advance/P2 - Check Rapid Fire Input.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016bc00 2 | lwz r0, 0x000C(r4) 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hold Z for Rapid Frame Advance/P3 - Check Rapid Fire Input.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016bc2c 2 | lwz r0, 0x000C(r4) 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Hold Z for Rapid Frame Advance/P4 - Check Rapid Fire Input.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016bc58 2 | lwz r0, 0x000C(r4) 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Initialize Stage Data.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801c154c 2 | .include "../Globals.s" 3 | 4 | # Initialize data 5 | li r4, 516 6 | branchl r12, ZeroAreaLength 7 | 8 | Exit: 9 | cmplwi r26, 0 10 | -------------------------------------------------------------------------------- /ASM/Additional Codes/L+R+A Returns to CSS During SSS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8025B8BC 2 | .include "../Globals.s" 3 | 4 | # Load first minor of current major 5 | load r3, SceneController 6 | lbz r3, 0x0(r3) 7 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Last Unplug Closes All CSS Doors.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802605e4 2 | .include "../Globals.s" 3 | 4 | backup 5 | 6 | # Check if all controllers are unplugged 7 | load r3, HSD_Pad+0x144 8 | li r4, 0 9 | 10 | UnplugLoop: 11 | mulli r5, r4, 68 12 | add r5, r5, r3 13 | lbz r5, 0x41(r5) 14 | extsb. r5, r5 15 | beq Exit 16 | addi r4, r4, 1 17 | cmpwi r4, 4 18 | blt UnplugLoop 19 | 20 | .set REG_LoopCount, 31 21 | .set REG_DoorStruct, 30 22 | # All are unplugged, close all doors 23 | load REG_DoorStruct, CSS_DoorStructs 24 | li REG_LoopCount, 0 25 | 26 | DoorUpdateLoop: 27 | # Change State 28 | mulli r3, REG_LoopCount, 0x24 29 | add r3, r3, REG_DoorStruct 30 | li r4, 3 31 | stb r4, CSSDoor_State(r3) 32 | # Update Door State 33 | mr r3, REG_LoopCount 34 | branchl r12, CSS_UpdateCSPInfo 35 | # Inc Loop 36 | addi REG_LoopCount, REG_LoopCount, 1 37 | cmpwi REG_LoopCount, 4 38 | blt DoorUpdateLoop 39 | 40 | Exit: 41 | restore 42 | lbz r0, 0x0004(r31) 43 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/8Characters1.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023c710 2 | .include "../../../Globals.s" 3 | 4 | cmplwi r3, 7 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/8Characters2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023c320 2 | .include "../../../Globals.s" 3 | 4 | cmplwi r3, 7 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/8Characters3.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023c6c4 2 | .include "../../../Globals.s" 3 | 4 | cmplwi r3, 7 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/8Characters4.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023cf9c 2 | .include "../../../Globals.s" 3 | 4 | cmpwi r27, 0x8 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Adjust Cursor Position.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023E0A4 2 | .include "../../../Globals.s" 3 | 4 | fsubs f0, f0, f2 5 | bl Floats 6 | mflr r4 7 | lfs f1, 0(r4) 8 | fdivs f0, f0, f1 9 | b Exit 10 | 11 | Floats: 12 | blrl 13 | .float 2 14 | 15 | Exit: 16 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Character Spacing.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023cf74 2 | .include "../../../Globals.s" 3 | 4 | nop 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Copy 8 Characters1.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023cb08 2 | .include "../../../Globals.s" 3 | 4 | li r10, 0 5 | mr r9, r6 6 | b GetTag_Loop 7 | 8 | GetTag_IncLoop: 9 | stb r3, 0x0(r7) 10 | addi r5, r5, 1 11 | addi r7, r7, 1 12 | addi r9, r9, 1 13 | 14 | GetTag_Loop: 15 | lbz r3, 0x0(r9) 16 | cmpwi r3, 0 17 | bne GetTag_IncLoop 18 | # Check if all 8 letters are read 19 | addi r6, r6, 3 20 | mr r9, r6 21 | addi r10, r10, 1 22 | cmpwi r10, 8 23 | blt GetTag_Loop 24 | li r4, 0 25 | branch r12, 0x8023cbec 26 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Copy 8 Characters2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023c02c 2 | .include "../../../Globals.s" 3 | 4 | .set REG_Source, 4 5 | .set REG_Dest, 7 6 | .set REG_CharCount, 8 7 | .set REG_SourceCopied, 9 8 | 9 | li r10, 0 10 | li REG_CharCount, 0 11 | addi REG_Dest, r30, 408 12 | mr REG_SourceCopied, REG_Source 13 | b GetTag_Loop 14 | 15 | GetTag_IncLoop: 16 | stb r3, 0x0(REG_Dest) 17 | addi REG_CharCount, REG_CharCount, 1 18 | addi REG_Dest, REG_Dest, 1 19 | addi REG_SourceCopied, REG_SourceCopied, 1 20 | 21 | GetTag_Loop: 22 | lbz r3, 0x0(REG_SourceCopied) 23 | cmpwi r3, 0 24 | bne GetTag_IncLoop 25 | # Check if all 8 letters are read 26 | addi REG_Source, REG_Source, 3 27 | mr REG_SourceCopied, REG_Source 28 | addi r10, r10, 1 29 | cmpwi r10, 8 30 | blt GetTag_Loop 31 | mr r7, REG_CharCount 32 | branch r12, 0x8023c118 33 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Disable Tag Rumble - Ignore Tag Rumble.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80167810 2 | .include "../../../Globals.s" 3 | 4 | nop 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Disable Tag Rumble - Init.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023c12c 2 | .include "../../../Globals.s" 3 | 4 | nop 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Disable Tag Rumble - RumbleLoad.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80248c8c 2 | .include "../../../Globals.s" 3 | 4 | li r3, 0 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/Disable Tag Rumble - RumbleThink.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802477f8 2 | .include "../../../Globals.s" 3 | 4 | li r3, 0 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/8 Letter Tags/ZeroNametagText.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8023e9e4 2 | .include "../../../Globals.s" 3 | 4 | li r3, 0 5 | subi r4, r31, 3 6 | li r5, 0 7 | 8 | Loop: 9 | stbu r3, 0x3(r4) 10 | 11 | Loop_Inc: 12 | addi r5, r5, 1 13 | cmpwi r5, 8 14 | blt Loop 15 | 16 | mr r3, r15 17 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Longer Nametags/Scale Nametag BG/Main.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802fcfc8 2 | .include "../../../Globals.s" 3 | 4 | # Original 5 | stfs f0, 0x002C(r28) 6 | 7 | # Check if HMN 8 | mr r3, r27 9 | branchl r12, PlayerBlock_LoadSlotType 10 | cmpwi r3, 0 11 | bne Exit 12 | # Get nametag ID 13 | mr r3, r27 14 | branchl r12, PlayerBlock_LoadNameTagSlot # 0x8003556c 15 | cmpwi r3, 120 16 | beq Exit 17 | # Get nametag text 18 | branchl r12, Nametag_LoadNametagSlotText # 0x8023754c 19 | 20 | # Count letters 21 | subi r3, r3, 2 22 | li r5, 0 23 | 24 | CountLetterLoop: 25 | lbzu r4, 0x2(r3) 26 | cmpwi r4, 0 27 | beq CountLetterLoop_Exit 28 | addi r5, r5, 1 29 | b CountLetterLoop 30 | 31 | CountLetterLoop_Exit: 32 | # Normal size if 4 or less 33 | cmpwi r5, 4 34 | ble Exit 35 | # Cast to float 36 | li r3, 0 37 | subi r4, r5, 4 38 | branchl r12, cvt_sll_flt 39 | bl Floats 40 | mflr r3 41 | lfs f2, 0x0(r3) 42 | lfs f3, 0x2C(r28) 43 | fdivs f2, f3, f2 44 | fmuls f1, f1, f2 45 | fadds f1, f1, f3 46 | stfs f1, 0x002C(r28) 47 | b Exit 48 | 49 | Floats: 50 | blrl 51 | .float 4 52 | 53 | Exit: 54 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Music At 0% By Default.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803d4a74 2 | 3 | .long 0x64000000 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Clear Bootup OSReports.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80160154 2 | .include "../../Globals.s" 3 | 4 | # Remove all previous OSReports 5 | load r3, 0x804cf7e8 6 | li r4, 0 7 | stw r4, 0xC(r3) 8 | 9 | li r0, 0 10 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Disable Brinstar OSReport.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801fe738 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Disable Effect AnimList OSReport.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800a0080 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Disable Fourside OSReport.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801f3500 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Disable Fourside OSReport2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801f35c0 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Disable PS OSReport.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801c3a84 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Disable YoshisIsland OSReport.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80202a40 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Disable mpcoll OSReport.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8005a2f8 2 | 3 | b 0x30 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Dont Output Compile Date on Assert.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80228aec 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Dont Output Compile Date on Invalid Read.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80228bf0 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Enable OSReport Print to Screen.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80397878 2 | b 0x20C 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/LRZ Shows Advanced Details/Any Debug Level Displays Advanced Details.s: -------------------------------------------------------------------------------- 1 | # To be inserted at 80394eac 2 | .include "../../../Globals.s" 3 | 4 | nop 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/LRZ Shows Advanced Details/Check for LRZ.s: -------------------------------------------------------------------------------- 1 | # To be inserted at 80395704 2 | .include "../../../Globals.s" 3 | 4 | # Get Held Buttons 5 | lwz r3, 0xC0(r30) 6 | # Check for LRZ 7 | cmpwi r3, 0x70 8 | beq PressedButtons 9 | # Not Pressing LRZ 10 | branch r12, 0x80395728 11 | 12 | PressedButtons: 13 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Only Show First 8 Lines of Stack.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80394afc 2 | cmpwi r29, 8 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/On Crash/Reboot With LRAStart.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80397c10 2 | .include "../../Globals.s" 3 | 4 | # Get inputs 5 | lwz r3, 0xC0(r31) 6 | rlwinm. r0, r3, 0, 0x20 7 | beq Exit 8 | rlwinm. r0, r3, 0, 0x40 9 | beq Exit 10 | rlwinm. r0, r3, 0, 0x100 11 | beq Exit 12 | rlwinm. r0, r3, 0, 0x1000 13 | beq Exit 14 | 15 | # Reboot 16 | li r3, 0 17 | li r4, 0 18 | li r5, 0 19 | branchl r12, 0x8034844c 20 | 21 | Exit: 22 | lbz r0, 0(r31) 23 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 01.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800C2D3C 2 | 3 | loc_0x0: 4 | lis r0, 0x800C 5 | ori r0, r0, 0x2690 6 | mtlr r0 7 | blrl 8 | addi r5, r24, 0x1 9 | lis r0, 0x800C 10 | ori r0, r0, 0x2DA4 11 | mtctr r0 12 | bctr 13 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 02.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 802E8B48 2 | 3 | lfd f1, -32608(r2) 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 03.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 804DD848 2 | 3 | loc_0x0: 4 | lis r0, 0x8036 5 | ori r3, r0, 0x1FC4 6 | mtctr r3 7 | li r3, -1 8 | bctr 9 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 04.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 804DD84C 2 | 3 | loc_0x0: 4 | mflr r0 5 | stw r0, 4(r1) 6 | stwu r1, -64(r1) 7 | stmw r29, 16(r1) 8 | mr r30, r3 9 | mr r31, r4 10 | mr r3, r4 11 | mr r4, r5 12 | lis r0, 0x800C 13 | ori r0, r0, 0x268C 14 | mtlr r0 15 | blrl 16 | lis r0, 0x800C 17 | ori r0, r0, 0x2690 18 | mtlr r0 19 | blrl 20 | rlwinm r3, r31, 0, 24, 31 21 | cmpwi r3, 0x5 22 | blt+ loc_0x84 23 | cmpwi r3, 0x7 24 | bgt- loc_0x84 25 | rlwinm r3, r31, 16, 22, 31 26 | li r4, 0x5 27 | beq- loc_0x74 28 | lis r0, 0x8033 29 | ori r0, r0, 0xD240 30 | mtlr r0 31 | blrl 32 | b loc_0x84 33 | 34 | loc_0x74: 35 | lis r0, 0x8033 36 | ori r0, r0, 0xD298 37 | mtlr r0 38 | blrl 39 | 40 | loc_0x84: 41 | rlwinm r3, r31, 3, 24, 28 42 | addi r3, r3, 0x80 43 | li r4, 0x0 44 | rlwinm r5, r30, 0, 16, 31 45 | lis r0, 0x8033 46 | ori r0, r0, 0xD0DC 47 | mtlr r0 48 | blrl 49 | lis r3, 0xCC01 50 | subi r3, r3, 0x8000 51 | lmw r29, 16(r1) 52 | lwz r0, 0x44(r1) 53 | addi r1, r1, 0x40 54 | mtlr r0 55 | blr 56 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 05.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800C2684 2 | 3 | loc_0x0: 4 | rlwinm r3, r31, 20, 30, 31 5 | rlwinm r4, r31, 24, 29, 31 6 | rlwinm r5, r31, 28, 29, 31 7 | rlwinm r6, r31, 0, 28, 31 8 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 06.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800c2688 2 | 3 | b 0xC 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 07.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800c26b0 2 | 3 | rlwinm r3, r30, 20, 31, 31 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 08.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800c26b4 2 | 3 | rlwinm r4, r30, 24, 29, 31 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 09.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800c26b8 2 | 3 | rlwinm r5, r30, 21, 31, 31 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 10.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800c26c0 2 | 3 | rlwinm r3, r30, 19, 31, 31 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 11.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800c272c 2 | 3 | rlwinm r3, r30, 2, 30, 31 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 12.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800C268C 2 | 3 | loc_0x0: 4 | mflr r0 5 | stw r0, 4(r1) 6 | stwu r1, -16384(r1) 7 | stmw r30, 16(r1) 8 | mr r30, r3 9 | mr r31, r4 10 | lis r0, 0x800C 11 | li r3, 0x1 12 | ori r0, r0, 0x2678 13 | mtctr r0 14 | bctr 15 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 13.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800C2690 2 | 3 | loc_0x0: 4 | mflr r0 5 | stw r0, 4(r1) 6 | stwu r1, -16384(r1) 7 | lis r0, 0x8033 8 | ori r0, r0, 0xC3C8 9 | mtlr r0 10 | blrl 11 | lis r0, 0x800C 12 | ori r0, r0, 0x2D40 13 | mtctr r0 14 | bctr 15 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 14.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800C2DA0 2 | 3 | loc_0x0: 4 | lwz r0, 0x4004(r1) 5 | addi r1, r1, 0x4000 6 | mtlr r0 7 | blr 8 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 15.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 802EAA38 2 | 3 | lfd f1, -32608(r2) 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 16.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 802E8D68 2 | 3 | lfd f1, -32608(r2) 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 17.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 804DD860 2 | 3 | .long 0x00101303 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 18.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 804DD864 2 | 3 | .long 0x00001455 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 19.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800C2674 2 | 3 | loc_0x0: 4 | lwz r3, -8576(r2) 5 | lwz r4, -8572(r2) 6 | lis r0, 0x800C 7 | ori r0, r0, 0x268C 8 | mtlr r0 9 | blrl 10 | lis r0, 0x800C 11 | ori r0, r0, 0x2738 12 | mtctr r0 13 | lbz r0, 8449(r28) 14 | bctr 15 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/PRIM 20.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800C2734 2 | 3 | loc_0x0: 4 | lmw r30, 16(r1) 5 | lwz r0, 0x4004(r1) 6 | addi r1, r1, 0x4000 7 | mtlr r0 8 | blr 9 | -------------------------------------------------------------------------------- /ASM/Additional Codes/PRIM LITE/main.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/ASM/Additional Codes/PRIM LITE/main.bin -------------------------------------------------------------------------------- /ASM/Additional Codes/Pad - Update During Frame Advance.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a4e48 2 | 3 | # doing this to make the menu inputs work with the TM menu 4 | # while the engine is paused. not sure if there are any 5 | # side effects to doing this but it seems to work?? 6 | 7 | nop 8 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Pause During Game Start/Check to Pause.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016CA9C 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Pause During Game Start/Check to Unpause.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016CC1C 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Polling Drift Fix/a.asm: -------------------------------------------------------------------------------- 1 | # insert at 801a5050 2 | 3 | CHECK: 4 | lis r3, 0x804c 5 | lbz r3, 0x1f7b(r3) 6 | cmpwi r3, 0 7 | beq CHECK 8 | li r3, 0 9 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Polling Drift Fix/about.txt: -------------------------------------------------------------------------------- 1 | Aitch: 2 | Taken from https://smashboards.com/threads/video-lag-reduction-codes-for-console.501438/ 3 | No idea how it works. 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Polling Drift Fix/b.asm: -------------------------------------------------------------------------------- 1 | # insert at 801a4c24 2 | 3 | lfs f2, -0x6584(r2) 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Polling Drift Fix/c.asm: -------------------------------------------------------------------------------- 1 | # insert at 8001985c 2 | 3 | lis r3, 0x804c 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Polling Drift Fix/d.asm: -------------------------------------------------------------------------------- 1 | # insert at 80019860 2 | 3 | stw r9, 0x1f5c(r3) 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Random CSS Music v2/random music modification.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015ecec 2 | .macro branchl reg, address 3 | lis \reg, \address @h 4 | ori \reg, \reg, \address @l 5 | mtctr \reg 6 | bctrl 7 | .endm 8 | 9 | .macro branch reg, address 10 | lis \reg, \address @h 11 | ori \reg, \reg, \address @l 12 | mtctr \reg 13 | bctr 14 | .endm 15 | 16 | .macro load reg, address 17 | lis \reg, \address @h 18 | ori \reg, \reg, \address @l 19 | .endm 20 | 21 | .macro loadf regf, reg, address 22 | lis \reg, \address @h 23 | ori \reg, \reg, \address @l 24 | stw \reg, -0x4(sp) 25 | lfs \regf, -0x4(sp) 26 | .endm 27 | 28 | .macro backup 29 | addi sp, sp, -0x4 30 | mflr r0 31 | stw r0, 0(sp) 32 | .endm 33 | 34 | .macro restore 35 | lwz r0, 0(sp) 36 | mtlr r0 37 | addi sp, sp, 0x4 38 | .endm 39 | 40 | .set ActionStateChange, 0x800693ac 41 | .set HSD_Randi, 0x80380580 42 | .set HSD_Randf, 0x80380528 43 | .set Wait, 0x8008a348 44 | .set Fall, 0x800cc730 45 | 46 | .set entity, 31 47 | .set player, 31 48 | 49 | li r3, 0x3 50 | branchl r12, HSD_Randi 51 | 52 | cmpwi r3, 0x0 53 | beq MainMenu1 54 | cmpwi r3, 0x1 55 | beq MainMenu2 56 | cmpwi r3, 0x2 57 | beq Trophy 58 | 59 | MainMenu1: 60 | li r0, 0x34 61 | b done 62 | 63 | MainMenu2: 64 | li r0, 0x36 65 | b done 66 | 67 | Trophy: 68 | li r0, 0x35 69 | b done 70 | 71 | done: 72 | stb r0, 0x0001(r31) 73 | branch r12, 0x8015ed1c 74 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Random CSS Music v2/roll on bootup.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a45a8 2 | .macro branchl reg, address 3 | lis \reg, \address @h 4 | ori \reg, \reg, \address @l 5 | mtctr \reg 6 | bctrl 7 | .endm 8 | 9 | .macro branch reg, address 10 | lis \reg, \address @h 11 | ori \reg, \reg, \address @l 12 | mtctr \reg 13 | bctr 14 | .endm 15 | 16 | .macro load reg, address 17 | lis \reg, \address @h 18 | ori \reg, \reg, \address @l 19 | .endm 20 | 21 | .macro loadf regf, reg, address 22 | lis \reg, \address @h 23 | ori \reg, \reg, \address @l 24 | stw \reg, -0x4(sp) 25 | lfs \regf, -0x4(sp) 26 | .endm 27 | 28 | .macro backup 29 | addi sp, sp, -0x4 30 | mflr r0 31 | stw r0, 0(sp) 32 | .endm 33 | 34 | .macro restore 35 | lwz r0, 0(sp) 36 | mtlr r0 37 | addi sp, sp, 0x4 38 | .endm 39 | 40 | .set ActionStateChange, 0x800693ac 41 | .set HSD_Randi, 0x80380580 42 | .set HSD_Randf, 0x80380528 43 | .set Wait, 0x8008a348 44 | .set Fall, 0x800cc730 45 | 46 | .set entity, 31 47 | .set player, 31 48 | 49 | branchl r12, 0x8015ecbc 50 | 51 | original: 52 | li r0, 45 53 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Random CSS Music v2/roll on match end.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016eba8 2 | .macro branchl reg, address 3 | lis \reg, \address @h 4 | ori \reg, \reg, \address @l 5 | mtctr \reg 6 | bctrl 7 | .endm 8 | 9 | .macro branch reg, address 10 | lis \reg, \address @h 11 | ori \reg, \reg, \address @l 12 | mtctr \reg 13 | bctr 14 | .endm 15 | 16 | .macro load reg, address 17 | lis \reg, \address @h 18 | ori \reg, \reg, \address @l 19 | .endm 20 | 21 | .set ActionStateChange, 0x800693ac 22 | .set HSD_Randi, 0x80380580 23 | .set HSD_Randf, 0x80380528 24 | .set Wait, 0x8008a348 25 | .set Fall, 0x800cc730 26 | 27 | .set entity, 31 28 | .set player, 31 29 | 30 | branchl r12, 0x8015ecbc 31 | 32 | original: 33 | lwz r0, 0x001C(sp) 34 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Rumble Off/Rumble Off.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803d4a70 2 | 3 | .long 0x00000000 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Stage Music = 50 50.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801C26B0 2 | li r0, 50 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Toggle Rumble From CSS/Toggle Rumble From CSS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802608D8 2 | .include "../../Globals.s" 3 | 4 | # CREDIT: Dan Salvato 5 | # https://smashboards.com/threads/d-pad-up-down-on-css-to-toggle-rumble-with-cursor-shake-effect.417382/ 6 | # https://web.archive.org/web/20151121044233/https://www.20xx.me/blog/toggling-rumble-the-te-way 7 | 8 | # If shake bit is on, skip d-pad checks (we're still shaking) 9 | lbz r3, 7(r31) 10 | cmpwi r3, 0x0 11 | bne- Shake 12 | lbz r4, 4(r31) 13 | # Check if d-pad up or down is pressed 14 | mr r23, r4 15 | lwz r0, MemcardData(r13) 16 | add r3, r0, r4 17 | lbz r5, 7360(r3) 18 | rlwinm. r0, r28, 0, 28, 28 19 | bne- RumbleOn 20 | rlwinm. r0, r28, 0, 29, 29 21 | bne- RumbleOff 22 | b Exit 23 | 24 | RumbleOn: 25 | cmplwi r5, 1 26 | beq- Exit 27 | mr r3, r23 28 | li r4, 0x0 29 | li r5, 0xE 30 | li r6, 0x0 31 | subi r7, r13, 0x66B0 32 | branchl r12, 0x80378430 33 | # set r4 to 1 indicating we want to enable rumble 34 | li r4, 1 35 | b ToggleRumble 36 | 37 | RumbleOff: 38 | cmplwi r5, 0 39 | beq- Exit 40 | # set r4 to 0 indicating we want to disable rumble 41 | li r4, 0 42 | 43 | ToggleRumble: 44 | mr r3, r23 45 | branchl r12, Rumble_StoreRumbleFlag 46 | li r4, 0x1 47 | stb r4, 7(r31) 48 | lis r4, 0xC040 49 | stw r4, 20(r31) 50 | 51 | Shake: 52 | # Get x position, amplitude, and decay 53 | lfs f1, 0x14(r31) 54 | lfs f2, -0x71F4(r2) 55 | lfs f0, 0xC(r31) 56 | fadds f0, f1, f0 57 | stfs f0, 12(r31) 58 | # Flip amplitude 59 | fneg f3, f1 60 | fcmpo cr0, f3, f1 61 | bgt- SkipDecay 62 | # If amplitude went from positive to negative, then multiply by decay 63 | fmuls f3, f3, f2 64 | 65 | SkipDecay: 66 | # Store new amplitude value 67 | stfs f3, 0x14(r31) 68 | blt- Exit 69 | 70 | # Check if amplitude is less than .001 (approx) 71 | lfs f4, -0x7DA8(r2) 72 | fcmpo cr0, f3, f4 73 | bgt- Exit 74 | 75 | # If so, turn off the shake bit and set amplitude to 0 76 | li r4, 0x0 77 | stw r4, 0x14(r31) 78 | stb r4, 7(r31) 79 | 80 | Exit: 81 | lbz r4, 4(r31) # Replaced code line 82 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Characters/Spoof All Characters as Unlocked.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80164b14 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Characters/Spoof Individual Characters as Unlocked.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801648f4 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Rules/Unlock Random Stage Select.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015ee4c 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Rules/Unlock Score Display.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015ee14 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Special Messages/Special Messages 1.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015d968 2 | .include "../../../Globals.s" 3 | 4 | li r3, 1 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Special Messages/Special Messages 2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015d9d8 2 | .include "../../../Globals.s" 3 | 4 | li r3, 1 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Special Messages/Spoof No Pending Messages 2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8017229c 2 | .include "../../../Globals.s" 3 | 4 | li r3, 0 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Special Messages/Spoof No Pending Messages.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801737b0 2 | .include "../../../Globals.s" 3 | 4 | li r3, 0 5 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Stages/Spoof All Stages Unlocked.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80164658 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Stages/Spoof Individual Stage Unlocked.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801644e8 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Trophies/Fill Save Data.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015f6f8 2 | .include "../../../Globals.s" 3 | 4 | # Get trophy data 5 | lwz r3, MemcardData(r13) 6 | addi r3, r3, 7376 7 | # Set trophy count 8 | li r4, 293 9 | sth r4, 0x0(r3) 10 | # Set individual trophies as unlocked 11 | addi r3, r3, 4 12 | li r4, 99 13 | li r5, 0x24f 14 | branchl r12, memset 15 | 16 | Exit: 17 | cmpwi r25, 0 18 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Trophies/Have 99 of Every Trophy.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8030490c 2 | li r3, 99 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All Trophies/Spoof All Trophies as Unlocked.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803044f0 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock All-Star.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015ee98 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unlock Everything/Unlock Sound Test.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015eddc 2 | li r3, 1 3 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Unplugging Closes CSS Door.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802605fc 2 | .include "../Globals.s" 3 | li r6, 3 4 | -------------------------------------------------------------------------------- /ASM/Additional Codes/Use Save Banner #1.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8001c838 2 | .include "../Globals.s" 3 | 4 | .set entity, 31 5 | .set player, 31 6 | 7 | # Check if Memcard 8 | lis r3, 0x8000 9 | lwz r3, 0x0(r3) 10 | load r4, 0x47544d45 # GTME 11 | cmpw r3, r4 12 | beq ISO 13 | 14 | Memcard: 15 | li r0, 2 16 | b Exit 17 | 18 | ISO: 19 | li r0, 1 20 | 21 | Exit: 22 | -------------------------------------------------------------------------------- /ASM/m-ex/Custom Playerdata Variables/Adjust Size.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 800679bc 2 | .include "../../Globals.s" 3 | .include "../Header.s" 4 | 5 | li r4, FighterDataTotalSize 6 | -------------------------------------------------------------------------------- /ASM/m-ex/Custom Playerdata Variables/Initialize Extended Playerblock Values in Result Screen.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800BE830 2 | .include "../../Globals.s" 3 | .include "../Header.s" 4 | 5 | # Backup Data Pointer After Creation 6 | addi r30, r3, 0 7 | 8 | # Get Player Data Length 9 | load r4, 0x80458fd0 10 | lwz r4, 0x20(r4) 11 | # Zero Entire Data Block 12 | branchl r12, ZeroAreaLength 13 | 14 | exit: 15 | mr r3, r30 16 | lis r4, 0x8046 17 | -------------------------------------------------------------------------------- /ASM/m-ex/Custom Playerdata Variables/Initialize Extended Playerblock Values.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80068eec 2 | .include "../../Globals.s" 3 | .include "../Header.s" 4 | 5 | # Backup Data Pointer After Creation 6 | addi r30, r3, 0 7 | 8 | # Get Player Data Length 9 | load r4, 0x80458fd0 10 | lwz r4, 0x20(r4) 11 | # Zero Entire Data Block 12 | branchl r12, ZeroAreaLength 13 | 14 | exit: 15 | mr r3, r30 16 | lis r4, 0x8046 17 | -------------------------------------------------------------------------------- /ASM/m-ex/Custom Playerdata Variables/OwnsAnim/Check Animation Owner.s: -------------------------------------------------------------------------------- 1 | # To be inserted @ 8006fe20 2 | .include "../../../Globals.s" 3 | .include "../../Header.s" 4 | 5 | .set REG_PlayerData, 3 6 | 7 | # Check if anim is coming from opponent 8 | lwz r0, MEX_AnimOwner(REG_PlayerData) 9 | cmpwi r0, 0 10 | -------------------------------------------------------------------------------- /ASM/m-ex/Custom Playerdata Variables/OwnsAnim/Store Animation Owner.s: -------------------------------------------------------------------------------- 1 | # To be inserted @ 80069ce0 2 | .include "../../../Globals.s" 3 | .include "../../Header.s" 4 | 5 | .set REG_OpponentGObj, 23 6 | .set REG_PlayerData, 26 7 | 8 | # Check if anim is coming from opponent 9 | cmpwi REG_OpponentGObj, 0 10 | beq OwnsAnim 11 | 12 | NoOwnsAnim: 13 | li r3, 1 14 | stw r3, MEX_AnimOwner(REG_PlayerData) 15 | b Exit 16 | 17 | OwnsAnim: 18 | li r3, 0 19 | stw r3, MEX_AnimOwner(REG_PlayerData) 20 | 21 | Exit: 22 | cmplwi r23, 0 23 | -------------------------------------------------------------------------------- /ASM/m-ex/Standalone Functions/calloc.asm: -------------------------------------------------------------------------------- 1 | # To be inserted @ 803d706C 2 | .include "../../Globals.s" 3 | .include "../Header.s" 4 | 5 | .set REG_Size, 31 6 | .set REG_Alloc, 30 7 | 8 | # init 9 | backup 10 | mr REG_Size, r3 11 | # alloc 12 | branchl r12, HSD_MemAlloc 13 | mr REG_Alloc, r3 14 | # clear 15 | li r4, 0 16 | mr r5, REG_Size 17 | branchl r12, memset 18 | # Exit 19 | mr r3, REG_Alloc 20 | restore 21 | blr 22 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF DBOOC SquatRv Fix.asm: -------------------------------------------------------------------------------- 1 | # Address: 800D65EC 2 | # Tags: [affects-gameplay] 3 | 4 | .long 0x4800003D 5 | .long 0x3F170A3D 6 | .long 0x42A00000 7 | .long 0x38D1B717 8 | .long 0x00000000 9 | .long 0x00000000 10 | .long 0xFC200A10 11 | .long 0xC0440004 12 | .long 0xC0640008 13 | .long 0xEC2118B8 14 | .long 0xFC20081E 15 | .long 0xD824000C 16 | .long 0x80C40010 17 | .long 0x38C60002 18 | .long 0x4E800020 19 | .long 0xC0040094 20 | .long 0x7C8802A6 21 | .long 0x88C50670 22 | .long 0x2C060001 23 | .long 0x4080002C 24 | .long 0xC0250620 25 | .long 0x4BFFFFC5 26 | .long 0x7C0631D6 27 | .long 0xC0250624 28 | .long 0x4BFFFFB9 29 | .long 0x7CC631D6 30 | .long 0x7C003214 31 | .long 0x2C001900 32 | .long 0x40810008 33 | .long 0xC0040000 34 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF SDI.asm: -------------------------------------------------------------------------------- 1 | # Address: 8008E54C 2 | # Tags: [affects-gameplay] 3 | 4 | .long 0x7C002800 5 | .long 0x418000DC 6 | .long 0x89230673 7 | .long 0x28090001 8 | .long 0x40810014 9 | .long 0x89230674 10 | .long 0x3D406000 11 | .long 0x28090001 12 | .long 0x418100BC 13 | .long 0xC183062C 14 | .long 0x3D406000 15 | .long 0xC0030628 16 | .long 0xED8C0332 17 | .long 0xEC00603A 18 | .long 0xC18404B0 19 | .long 0xED8C0332 20 | .long 0xFC0C0000 21 | .long 0x40810098 22 | .long 0x3D008007 23 | .long 0x89430618 24 | .long 0x3908AD10 25 | .long 0x85280750 26 | .long 0x55293032 27 | .long 0x7D293670 28 | .long 0x39290004 29 | .long 0x7D294214 30 | .long 0x1D0A000C 31 | .long 0x1D4A0006 32 | .long 0x7D094214 33 | .long 0x89080008 34 | .long 0x38E8FFFE 35 | .long 0x7D0A4214 36 | .long 0x54E707BE 37 | .long 0x5508083C 38 | .long 0x7D4A3A14 39 | .long 0x7CC94214 40 | .long 0x554A083C 41 | .long 0x7D0940AE 42 | .long 0x7CE95214 43 | .long 0x7D2950AE 44 | .long 0x7D080774 45 | .long 0x89470001 46 | .long 0x7D290774 47 | .long 0x7D294050 48 | .long 0x89060001 49 | .long 0x7D4A0774 50 | .long 0x7D2949D6 51 | .long 0x7D080774 52 | .long 0x7D4A4050 53 | .long 0x7D4A51D6 54 | .long 0x7D295214 55 | .long 0x3D406000 56 | .long 0x2C090F04 57 | .long 0x40810008 58 | .long 0x3D408000 59 | .long 0x7D580120 60 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF Shield Drop Extended.asm: -------------------------------------------------------------------------------- 1 | # Address: 8009A0B8 2 | # Tags: [affects-gameplay] 3 | 4 | .long 0x4C401382 5 | .long 0x4182003C 6 | .long 0x3D208007 7 | .long 0x89040618 8 | .long 0x3929AD10 9 | .long 0x81490750 10 | .long 0x1D08000C 11 | .long 0x39290754 12 | .long 0x554A3032 13 | .long 0x7D4A3670 14 | .long 0x7D295214 15 | .long 0x7D294214 16 | .long 0x89290009 17 | .long 0x28090001 18 | .long 0x4081000C 19 | .long 0x4C421242 20 | .long 0x4800000C 21 | .long 0x4C421182 22 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF Shield Drop.asm: -------------------------------------------------------------------------------- 1 | # Address: 800998A4 2 | # Tags: [affects-gameplay] 3 | 4 | .long 0x4800003D 5 | .long 0xBF4CCCCD 6 | .long 0x42A00000 7 | .long 0x38D1B717 8 | .long 0x00000000 9 | .long 0x00000000 10 | .long 0xFC200A10 11 | .long 0xC0460004 12 | .long 0xC0660008 13 | .long 0xEC2118B8 14 | .long 0xFC20081E 15 | .long 0xD826000C 16 | .long 0x80E60010 17 | .long 0x38E70002 18 | .long 0x4E800020 19 | .long 0x8083002C 20 | .long 0x7CC802A6 21 | .long 0x80ADAEB4 22 | .long 0xC004063C 23 | .long 0xC0250314 24 | .long 0xFC000840 25 | .long 0x40810070 26 | .long 0x88040670 27 | .long 0x80E50320 28 | .long 0x7C003800 29 | .long 0x41800060 30 | .long 0xC0240624 31 | .long 0xC0060000 32 | .long 0xFC010040 33 | .long 0x40810050 34 | .long 0x8004083C 35 | .long 0x2C00FFFF 36 | .long 0x41820044 37 | .long 0x80040840 38 | .long 0x540005EF 39 | .long 0x41820038 40 | .long 0x4BFFFF89 41 | .long 0x7C0739D6 42 | .long 0xC0240620 43 | .long 0x4BFFFF7D 44 | .long 0x7CE739D6 45 | .long 0x7C003A14 46 | .long 0x2C001900 47 | .long 0x40810018 48 | .long 0x80E1001C 49 | .long 0x38210018 50 | .long 0x38E70008 51 | .long 0x7CE803A6 52 | .long 0x4E800020 53 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF Shield SDI.asm: -------------------------------------------------------------------------------- 1 | # Address: 80093294 2 | # Tags: [affects-gameplay] 3 | 4 | .long 0x7C030000 5 | .long 0x41800094 6 | .long 0x89240673 7 | .long 0x3CC06000 8 | .long 0x28090001 9 | .long 0x41810080 10 | .long 0xC1840628 11 | .long 0xC00504B0 12 | .long 0xFC0C0000 13 | .long 0x40800070 14 | .long 0x3D008007 15 | .long 0x89440618 16 | .long 0x3908AD10 17 | .long 0x85280750 18 | .long 0x55293032 19 | .long 0x7D293670 20 | .long 0x39290004 21 | .long 0x7D294214 22 | .long 0x1D0A000C 23 | .long 0x1D4A0006 24 | .long 0x7D094214 25 | .long 0x89080008 26 | .long 0x7CEA4214 27 | .long 0x3908FFFE 28 | .long 0x550807BE 29 | .long 0x54E7083C 30 | .long 0x7D4A4214 31 | .long 0x7CE938AE 32 | .long 0x554A083C 33 | .long 0x7D2950AE 34 | .long 0x7CE70774 35 | .long 0x7D290774 36 | .long 0x7D293850 37 | .long 0x7D2949D6 38 | .long 0x2C090F04 39 | .long 0x40810008 40 | .long 0x3CC08000 41 | .long 0x7CD80120 42 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF Store Inputs CPU.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006adf4 2 | .include "../../Globals.s" 3 | .include "../Header.s" 4 | 5 | # Original Line 6 | stfs f1, 0x0624(r31) 7 | 8 | # Update array of previous inputs 9 | lbz r3, MEX_UCFPrevX(r31) 10 | stb r3, MEX_UCF2fX(r31) 11 | lbz r3, MEX_UCFCurrX(r31) 12 | stb r3, MEX_UCFPrevX(r31) 13 | 14 | # Store current 15 | lbz r3, 0x1A8C(r31) 16 | stb r3, MEX_UCFCurrX(r31) 17 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF Store Inputs.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006ae8c 2 | .include "../../Globals.s" 3 | .include "../Header.s" 4 | 5 | # Original Line 6 | stfs f0, 0x0624(r31) 7 | 8 | # Update array of previous inputs 9 | lbz r4, MEX_UCFPrevX(r31) 10 | stb r4, MEX_UCF2fX(r31) 11 | lbz r4, MEX_UCFCurrX(r31) 12 | stb r4, MEX_UCFPrevX(r31) 13 | 14 | # Store current 15 | lbz r4, 0x18(r3) 16 | stb r4, MEX_UCFCurrX(r31) 17 | -------------------------------------------------------------------------------- /ASM/m-ex/UCF 0.84/UCF Tumble.asm: -------------------------------------------------------------------------------- 1 | # Address: 800908F4 2 | # Tags: [affects-gameplay] 3 | 4 | .long 0x2C030001 5 | .long 0x4082008C 6 | .long 0xC19F0628 7 | .long 0x3D406000 8 | .long 0xFD806210 9 | .long 0xFC0C0000 10 | .long 0x40800074 11 | .long 0x3D008007 12 | .long 0x895F0618 13 | .long 0x3908AD10 14 | .long 0x85280750 15 | .long 0x55293032 16 | .long 0x7D293670 17 | .long 0x39290004 18 | .long 0x7D294214 19 | .long 0x1D0A000C 20 | .long 0x1D4A0006 21 | .long 0x7D094214 22 | .long 0x89080008 23 | .long 0x7CEA4214 24 | .long 0x3908FFFE 25 | .long 0x550807BE 26 | .long 0x54E7083C 27 | .long 0x7D4A4214 28 | .long 0x7CE938AE 29 | .long 0x554A083C 30 | .long 0x7D2950AE 31 | .long 0x7CE70774 32 | .long 0x3D406000 33 | .long 0x7D290774 34 | .long 0x7D293850 35 | .long 0x7D2949D6 36 | .long 0x2C0915F9 37 | .long 0x40810008 38 | .long 0x3D408000 39 | .long 0x7D580120 40 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/A+B to Reset Event/Check for Reset on Game End.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bba38 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Get all players inputs 6 | li r3, 4 7 | branchl r12, Inputs_GetPlayerHeldInputs 8 | 9 | # Check Inputs 10 | rlwinm. r0, r4, 0, 23, 23 # check A 11 | beq- Original 12 | rlwinm. r0, r4, 0, 22, 22 # check B 13 | beq- Original 14 | 15 | Runback: 16 | branch r12, 0x801bb7a0 17 | 18 | Original: 19 | li r3, 1 20 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/A+B to Reset Event/Check for Reset on LRAStart.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bb844 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Get all players inputs 6 | li r3, 4 7 | branchl r12, Inputs_GetPlayerHeldInputs 8 | 9 | # Check Inputs 10 | rlwinm. r0, r4, 0, 23, 23 # check A 11 | beq- Original 12 | rlwinm. r0, r4, 0, 22, 22 # check B 13 | beq- Original 14 | 15 | Runback: 16 | branch r12, 0x801bb7a0 17 | 18 | Original: 19 | li r3, 1 20 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/CSS and SSS/Backup HMN And CPU Choices/Backup Event CPU.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bab18 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # Get Backup Location 6 | lwz r9, MemcardData(r13) 7 | addi r9, r9, 3344 8 | # Backup HMN Character Choice 9 | lwz r3, CSS_Data(r13) # CSS Match Info 10 | addi r4, r9, 104 # Character Backup Location 11 | li r5, 0 # Unk Backup Location 12 | addi r6, r9, 107 # Costume Backup Location 13 | addi r7, r9, 114 # Nametag Backup Location 14 | li r8, 0 # Unk Backup Location 15 | branchl r12, 0x801b0730 16 | 17 | # Also copy to Event's CSS Backup Data for compatibility 18 | # Get Backup Location 19 | lwz r9, MemcardData(r13) 20 | addi r9, r9, 1328 21 | # Backup HMN Character Choice 22 | lwz r3, CSS_Data(r13) # CSS Match Info 23 | addi r4, r9, 2 # Character Backup Location 24 | li r5, 0 # Unk Backup Location 25 | addi r6, r9, 3 # Costume Backup Location 26 | addi r7, r9, 4 # Nametag Backup Location 27 | li r8, 0 # Unk Backup Location 28 | branchl r12, 0x801b0730 29 | 30 | # Get Backup Location 31 | lwz r9, MemcardData(r13) 32 | addi r9, r9, 3344 33 | # Backup CPU Character Choice 34 | lwz r3, CSS_Data(r13) # CSS Match Info 35 | addi r4, r9, 140 # Character Backup Location 36 | li r5, 0 # Unk Backup Location 37 | addi r6, r9, 143 # Costume Backup Location 38 | addi r7, r9, 150 # Nametag Backup Location 39 | li r8, 0 # Unk Backup Location 40 | branchl r12, 0x801b07e8 41 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/CSS and SSS/Load CSS + Preload CPU.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801baa80 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set REG_Stage, 26 6 | .set REG_CPU, 27 7 | .set REG_CSSType, 28 8 | .set EventID, 29 9 | .set PageID, 30 10 | .set REG_SceneData, 31 11 | 12 | backup 13 | 14 | # Save scene data 15 | mr REG_SceneData, r3 16 | # Get Current Event Number 17 | lwz r4, MemcardData(r13) 18 | lbz EventID, 0x0535(r4) 19 | # Get Current Page in 20 | lwz r4, MemcardData(r13) 21 | lbz PageID, CurrentEventPage(r4) 22 | 23 | # Set ko pointer 24 | addi r4, r13, -0x4F70 25 | stw r4, 0x4(REG_SceneData) 26 | 27 | # Get this events CSS Type 28 | mr r3, PageID 29 | mr r4, EventID 30 | rtocbl r12, TM_GetCSSType 31 | mr REG_CSSType, r3 32 | 33 | CheckToPreloadCPU: 34 | # Check if this event has a pre-determined CPU 35 | mr r3, PageID 36 | mr r4, EventID 37 | rtocbl r12, TM_GetCPUFighter 38 | extsb REG_CPU, r3 39 | 40 | CheckToPreloadStage: 41 | # Check if this event has a pre-determined stage 42 | mr r3, PageID 43 | mr r4, EventID 44 | rtocbl r12, TM_GetStage 45 | extsb REG_Stage, r3 46 | 47 | UpdatePreloadTable: 48 | # Store Preload 49 | load r3, PreloadTable 50 | cmpwi REG_CPU, -1 51 | beq UpdatePreloadTable_CheckStage 52 | stw REG_CPU, 0x1C(r3) # p2 character 53 | 54 | UpdatePreloadTable_CheckStage: 55 | cmpwi REG_Stage, -1 56 | beq Exit 57 | stw REG_Stage, 0x10(r3) # stage 58 | b Exit 59 | 60 | Exit: 61 | mr r4, REG_CSSType # Return CSS Choice 62 | mr r3, REG_SceneData # Restore scene data 63 | restore 64 | lbz r5, 0x0002(r31) # get r5 again since we clobbered it 65 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/CSS and SSS/Load SSS For Certain Events.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bab28 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | stb r0, 0x000A(r31) 6 | 7 | # Get Event ID 8 | lwz r3, MemcardData(r13) 9 | lbz r4, 0x0535(r3) 10 | lbz r3, CurrentEventPage(r3) 11 | # Check if this event has a SSS 12 | rtocbl r12, TM_GetIsSelectStage 13 | cmpwi r3, 0 14 | beq original 15 | 16 | SSS: 17 | # Store SSS as Next Scene 18 | load r3, SceneController 19 | li r4, 0x3 20 | stb r4, 0x5(r3) 21 | 22 | original: 23 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/CSS and SSS/Overwrite VS Text.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80266314 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Overwrites a call to CSS_UpdateRulesText 6 | # And sets the menu text to null if in event mode. 7 | 8 | # Ensure this is event mode 9 | load r3, SceneController 10 | lbz r3, Scene.CurrentMajor(r3) 11 | cmpwi r3, Scene.EventMode 12 | bne Original 13 | 14 | li r3, 0 15 | li r4, 0x4a 16 | li r5, 0 17 | branchl r12, 0x803a6530 18 | 19 | li r3, 0 20 | li r4, 0x4a 21 | li r5, 0 22 | branchl r12, 0x803a660c 23 | b Exit 24 | 25 | Original: 26 | branchl r12, 0x8025bd30 27 | Exit: 28 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Credits Codes/Dont Display Info In TM Credits.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801abb1c 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set playerdata, 31 8 | 9 | load r3, SceneController 10 | lbz r3, 0x0(r3) 11 | cmpwi r3, 0x1 12 | bne exit 13 | 14 | branch r12, 0x801abdf4 15 | 16 | exit: 17 | lwz r3, 0(r23) 18 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Credits Codes/Dont Display Titles In Training Mode Credits.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801aae50 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set playerdata, 31 8 | .set text, 31 9 | 10 | load r5, SceneController 11 | lbz r5, 0x0(r5) 12 | cmpwi r5, 0x1 # Main Menu 13 | beq Skip 14 | branchl r12, 0x803a6368 15 | 16 | Skip: 17 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Custom Event Preload Behavior/Disable Event Preload - CSS Enter.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801baaa8 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | CustomEvent: 6 | branch r12, 0x801baabc 7 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Custom Event Preload Behavior/Disable Event Preload - Match Enter.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bb648 2 | li r0, -1 # Load -1, which doesnt attempt to hijack any preload table values 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Custom Event Preload Behavior/Disable Event Preload.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803db000 2 | .long 0x012b0000 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Custom Event Preload Behavior/Dont Adjust CPU Color in Event Mode When Its Already in Use.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bb294 2 | b 0x30 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Custom Event Preload Behavior/Load Character ssm Files.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bab04 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | backup 6 | 7 | mr r31, r3 8 | 9 | # Loop through selected characters and load .ssm files 10 | mr r27, r31 11 | li r28, 0 12 | mulli r0, r28, 36 13 | li r29, 0 14 | li r30, 0 15 | 16 | Loop: 17 | lbz r3, 0x70(r27) 18 | extsb r3, r3 19 | branchl r12, 0x80026e84 20 | addi r28, r28, 1 21 | cmpwi r28, 6 22 | or r29, r29, r4 23 | or r30, r30, r3 24 | addi r27, r27, 36 25 | blt Loop 26 | 27 | # Clear Audio Cache? 28 | li r3, 20 29 | branchl r12, 0x80026f2c 30 | # Request All ssm Files 31 | li r3, 4 32 | mr r5, r30 33 | mr r6, r29 34 | branchl r12, 0x8002702c 35 | # Load Preload Cache 36 | branchl r12, 0x80027168 37 | 38 | exit: 39 | mr r3, r31 40 | restore 41 | addi r4, r31, 2 42 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Better X and Y Event Jump/Jump Down - Update Cursor.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024da98 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # Update cursor position 6 | # Get Texture Data 7 | lwz r3, -0x4A40(r13) 8 | lwz r3, 0x0028(r3) 9 | addi r4, sp, 0x40 10 | li r5, 11 11 | li r6, -1 12 | crclr 6 13 | branchl r12, 0x80011e24 14 | # Get New Y Offset 15 | lis r0, 0x4330 16 | stw r0, 0xA8(sp) 17 | lwz r3, -0x4A40(r13) 18 | lwz r3, 0x002C(r3) 19 | lbz r3, 0x0(r3) # event selection ID 20 | stw r3, 0xAC(sp) 21 | lfd f1, 0xA8(sp) 22 | lfd f2, -0x3888(rtoc) 23 | fsubs f1, f1, f2 24 | bl Float 25 | mflr r3 26 | lfs f2, 0x0(r3) 27 | fmuls f1, f1, f2 28 | # Change Y offset 29 | lwz r3, 0x40(sp) 30 | stfs f1, 0x3C(r3) 31 | # DirtySub 32 | lwz r3, 0x40(sp) 33 | branchl r12, HSD_JObjSetMtxDirtySub 34 | b Original 35 | 36 | Float: 37 | blrl 38 | .float -1.32 39 | 40 | Original: 41 | mr r3, r28 42 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Better X and Y Event Jump/Jump Up - Update Cursor.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024dbb4 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # Update cursor position 6 | # Get Texture Data 7 | lwz r3, -0x4A40(r13) 8 | lwz r3, 0x0028(r3) 9 | addi r4, sp, 0x40 10 | li r5, 11 11 | li r6, -1 12 | crclr 6 13 | branchl r12, 0x80011e24 14 | # Get New Y Offset 15 | lis r0, 0x4330 16 | stw r0, 0xA8(sp) 17 | lwz r3, -0x4A40(r13) 18 | lwz r3, 0x002C(r3) 19 | lbz r3, 0x0(r3) # event selection ID 20 | stw r3, 0xAC(sp) 21 | lfd f1, 0xA8(sp) 22 | lfd f2, -0x3888(rtoc) 23 | fsubs f1, f1, f2 24 | bl Float 25 | mflr r3 26 | lfs f2, 0x0(r3) 27 | fmuls f1, f1, f2 28 | # Change Y offset 29 | lwz r3, 0x40(sp) 30 | stfs f1, 0x3C(r3) 31 | # DirtySub 32 | lwz r3, 0x40(sp) 33 | branchl r12, HSD_JObjSetMtxDirtySub 34 | b Original 35 | 36 | Float: 37 | blrl 38 | .float -1.32 39 | 40 | Original: 41 | mr r3, r28 42 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Better X and Y Event Jump/Jump Up.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024dabc 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set EventID, 31 6 | .set PageID, 30 7 | .set NumOfEvents, 30 8 | 9 | backup 10 | 11 | # Get Current Event 12 | lbz r3, 0x0(r28) 13 | lwz r4, 0x4(r28) 14 | add EventID, r3, r4 15 | 16 | # Check if already on first event 17 | cmpwi EventID, 0 18 | ble exit 19 | 20 | # Jump 9 events 21 | subi r3, EventID, 9 22 | # Check if exceeded 0 23 | cmpwi r3, 0 24 | ble FirstEvent 25 | 26 | JumpEvent: 27 | # sub 9 from event ID 28 | lbz r3, 0x0(r28) 29 | subi r3, r3, 9 30 | stb r3, 0x0(r28) 31 | b UpdateText 32 | 33 | FirstEvent: 34 | li r3, 0 35 | stb r3, 0x0(r28) 36 | stw r3, 0x4(r28) 37 | b UpdateText 38 | 39 | UpdateText: 40 | # overflow event ID to scroll ID 41 | lbz r3, 0x0(r28) 42 | extsb r3, r3 43 | cmpwi r3, 0 44 | bge UpdateText1 45 | # get overflow and add to scroll 46 | lwz r4, 0x4(r28) 47 | add r3, r3, r4 48 | stw r3, 0x4(r28) # add to scroll 49 | li r3, 0 50 | stb r3, 0x0(r28) 51 | 52 | UpdateText1: 53 | # Play SFX and Update Text 54 | li r3, 2 55 | branchl r12, SFX_MenuCommonSound 56 | restore 57 | branch r12, 0x8024daf8 58 | 59 | exit: 60 | restore 61 | branch r12, 0x8024e198 62 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Change ESS Proc To Pri 1.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024e910 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | li r5, 1 6 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Choose Any Character for Events/Always Copy CSS Character Info.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bb1b0 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Choose Any Character for Events/Always Show Select Character Texture.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024d0e8 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Choose Any Character for Events/Always Spoof AnyCharacter.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bbfb0 2 | li r0, 33 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event High Scores/Load Event High Scores.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015cf60 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # r3 = event 6 | # r4 = event score pointer 7 | 8 | .set REG_EventID, 3 9 | .set REG_EventScorePointer, 4 10 | .set REG_PageID, 5 11 | 12 | backup 13 | 14 | # temp move eventID 15 | mr 6, REG_EventID 16 | # Get Page ID in r3 for function call 17 | lbz r3, CurrentEventPage(REG_EventScorePointer) 18 | # Get event page offset 19 | rtocbl r12, TM_GetPageEventOffset 20 | mr REG_PageID, r3 21 | #restore REG_EventID 22 | mr REG_EventID, r6 23 | # Multiply and add to score pointer 24 | mulli REG_PageID, REG_PageID, 4 25 | add REG_EventScorePointer, REG_PageID, REG_EventScorePointer 26 | # Now this events offset 27 | mulli REG_EventID, REG_EventID, 4 28 | add REG_EventScorePointer, REG_EventID, REG_EventScorePointer 29 | # Load score 30 | lwz r3, 0x1A70(REG_EventScorePointer) 31 | b Exit 32 | 33 | Exit: 34 | restore 35 | blr 36 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event High Scores/Save Event High Scores.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8015cf74 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # r3 = event 6 | # r4 = score 7 | # r5 = event score pointer 8 | 9 | .set REG_EventID, 3 10 | .set REG_EventScore, 4 11 | .set REG_EventScorePointer, 5 12 | .set REG_PageID, 6 13 | 14 | backup 15 | 16 | # temp move eventID 17 | mr 7, REG_EventID 18 | # Get Page ID in r3 for function call 19 | lbz r3, CurrentEventPage(REG_EventScorePointer) 20 | # Get event's score offset using function 21 | rtocbl r12, TM_GetPageEventOffset 22 | mr REG_PageID, r3 23 | #restore REG_EventID 24 | mr REG_EventID, r7 25 | # Multiply and add to score pointer 26 | mulli REG_PageID, REG_PageID, 4 27 | add REG_EventScorePointer, REG_PageID, REG_EventScorePointer 28 | # Now this events offset 29 | mulli REG_EventID, REG_EventID, 4 30 | add REG_EventScorePointer, REG_EventID, REG_EventScorePointer 31 | # Save score 32 | stw REG_EventScore, 0x1A70(REG_EventScorePointer) 33 | b Exit 34 | 35 | Exit: 36 | restore 37 | blr 38 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event Text/CannotScrollPastEventsOnPage.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024dec8 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set PageID, 31 6 | 7 | # Get number of events on this page 8 | lwz r3, MemcardData(r13) 9 | lbz r3, CurrentEventPage(r3) 10 | rtocbl r12, TM_GetPageEventNum 11 | 12 | # Get current event 13 | lbz r4, 0(r28) 14 | 15 | # If on the last event, dont scroll down 16 | cmpw r4, r3 17 | blt Exit 18 | 19 | # Exit EventThink 20 | branch r12, 0x8024e198 21 | 22 | Exit: 23 | lbz r0, 0(r28) 24 | cmplwi r0, 8 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event Text/Custom Event Highscore Types.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801beb8c 2 | .include "../../../../Globals.s" 3 | 4 | backup 5 | 6 | mr r4, r3 7 | lwz r3, MemcardData(r13) 8 | lbz r3, CurrentEventPage(r3) 9 | rtocbl r12, TM_GetScoreType 10 | 11 | restore 12 | blr 13 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event Text/Display Custom Event Names on ESS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024d470 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # r24 = text struct 6 | # r27 = Event ID 7 | 8 | CustomEvent: 9 | .set text, 24 10 | 11 | # Create Text 12 | li r3, 0 13 | li r4, 0 14 | branchl r12, Text_CreateTextStruct 15 | mr text, r3 16 | 17 | # Store pointer to text so it can be removed by the game 18 | stw text, 0x0(r23) 19 | 20 | # Set Text Values 21 | lfs f1, 0x0030(r31) 22 | lfs f4, 0x007C(sp) 23 | fadds f1, f4, f1 24 | lfs f0, 0x0034(r31) 25 | fadds f2, f31, f0 26 | lfs f3, -0x3874(rtoc) 27 | lfs f4, -0x386C(rtoc) 28 | lfs f5, -0x3868(rtoc) 29 | stfs f1, 0x00(text) 30 | stfs f2, 0x04(text) 31 | stfs f3, 0x08(text) 32 | stfs f4, 0x0C(text) 33 | stfs f5, 0x10(text) 34 | lfs f0, -0x3878(rtoc) 35 | stfs f0, 0x0024(text) 36 | stfs f0, 0x0028(text) 37 | li r3, 1 38 | stb r3, 0x48(text) 39 | li r3, 1 40 | stb r3, 0x49(text) 41 | 42 | backup 43 | 44 | # Get Event Name 45 | lwz r3, MemcardData(r13) 46 | lbz r3, CurrentEventPage(r3) 47 | mr r4, r27 48 | rtocbl r12, TM_GetEventName 49 | 50 | # Add subtext 51 | mr r4, r3 52 | mr r3, text 53 | lfs f1, -0x3870(rtoc) 54 | lfs f2, -0x3870(rtoc) 55 | branchl r12, Text_InitializeSubtext 56 | 57 | # Get event file 58 | lwz r3, MemcardData(r13) 59 | lbz r3, CurrentEventPage(r3) 60 | mr r4, r27 61 | rtocbl r12, TM_GetEventFile 62 | cmpwi r3, 0 63 | bne HasFile 64 | 65 | NoFile: 66 | # Change color 67 | mr r3, text 68 | li r4, 0 69 | bl Color 70 | mflr r5 71 | branchl r12, Text_ChangeTextColor 72 | 73 | HasFile: 74 | # Exit 75 | restore 76 | branch r12, 0x8024d4c8 77 | 78 | Color: 79 | blrl 80 | .byte 180, 180, 180, 255 81 | 82 | VanillaEvent: 83 | 84 | Original: 85 | lfs f0, 0x0034(r31) 86 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event Text/Never Scroll If Less than 9 Events on Page.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024e438 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # Original Codeline 6 | addi r30, r3, 0 7 | 8 | # First check if page has 9 events 9 | lwz r3, MemcardData(r13) 10 | lbz r3, CurrentEventPage(r3) 11 | rtocbl r12, TM_GetPageEventNum 12 | cmpwi r3, 9 13 | bge Original 14 | # Set no scroll 15 | li r0, 0 16 | stw r0, 0x4(r30) 17 | # Set selection 18 | stb r31, 0x0(r30) 19 | # Exit 20 | branch r12, 0x8024e464 21 | 22 | Original: 23 | addi r3, r30, 0 24 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event Text/OnlyDisplayEventsOnPage.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024cffc 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set PageID, 31 6 | 7 | # Get number of events on this page 8 | lwz r3, MemcardData(r13) 9 | lbz r3, CurrentEventPage(r3) 10 | rtocbl r12, TM_GetPageEventNum 11 | cmpwi r3, 8 12 | blt Exit 13 | subi r3, r3, 8 14 | 15 | Exit: 16 | lwz r0, 0x001C(sp) 17 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Event Text/SkipDisplayingEventNames.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024d3e8 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set PageID, 31 6 | 7 | # Get number of events on this page 8 | lwz r3, MemcardData(r13) 9 | lbz r3, CurrentEventPage(r3) 10 | rtocbl r12, TM_GetPageEventNum 11 | 12 | # Check if event exists on this page 13 | cmpw r27, r3 14 | ble Exit 15 | 16 | # Zero out Lv X text 17 | li r3, 0 18 | stw r3, 0(r23) 19 | # Remove Text 20 | lwz r3, 0x24(r23) 21 | branchl r12, Text_RemoveText 22 | li r3, 0 23 | stw r3, 0x24(r23) 24 | # Skip displaying this event 25 | branch r12, 0x8024d4c8 26 | 27 | Exit: 28 | li r3, 0 29 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Spoof All Events as Not Played.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024d288 2 | 3 | li r3, 0 4 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Version Indicator/Remove Event Texture.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8022e5e4 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # Original Codeline 6 | stw r3, -0x4AE8(r13) 7 | 8 | # GET START OF DAT 9 | lwz r5, 0x0(r3) # get dat length 10 | subi r3, r3, 0x31 # get to the end of the dat in memory 11 | sub r5, r3, r5 # get start of dat 12 | 13 | # Zero 14 | li r3, 0 15 | 16 | # Make Background Texture Transparent 17 | load r4, 0x1e754 18 | add r4, r4, r5 19 | stw r3, 0xC(r4) 20 | # Make Background Texture (Lang:JP) Transparent 21 | load r4, 0x1e755 22 | add r4, r4, r5 23 | stw r3, 0xC(r4) 24 | 25 | # Make Subject Table Texture Transparent 26 | load r4, 0x1ec88 27 | add r4, r4, r5 28 | stw r3, 0xC(r4) 29 | # Make Subject Table Texture (Lang:JP) Transparent 30 | load r4, 0x1ec89 31 | add r4, r4, r5 32 | stw r3, 0xC(r4) 33 | 34 | exit: 35 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Version Indicator/Remove Version Indicator 1.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024e304 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set MainTextOffset, -0x4EB4 6 | .set LeftArrowTextOffset, -0x4EB0 7 | .set RightArrowTextOffset, -0x4EAC 8 | 9 | # Remove All Text 10 | lwz r3, MainTextOffset (r13) 11 | branchl r12, Text_RemoveText 12 | lwz r3, LeftArrowTextOffset (r13) 13 | branchl r12, Text_RemoveText 14 | lwz r3, RightArrowTextOffset (r13) 15 | branchl r12, Text_RemoveText 16 | 17 | # Original Line 18 | lwz r3, 0x0074(r31) 19 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Version Indicator/Remove Version Indicator 2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024e3b0 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set MainTextOffset, -0x4EB4 6 | .set LeftArrowTextOffset, -0x4EB0 7 | .set RightArrowTextOffset, -0x4EAC 8 | 9 | # Remove All Text 10 | lwz r3, MainTextOffset (r13) 11 | branchl r12, Text_RemoveText 12 | lwz r3, LeftArrowTextOffset (r13) 13 | branchl r12, Text_RemoveText 14 | lwz r3, RightArrowTextOffset (r13) 15 | branchl r12, Text_RemoveText 16 | 17 | # Original Line 18 | lwz r3, 0x0074(r31) 19 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Event Select Screen/Version Indicator/Toggle Tutorial Text.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024d84c 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set MainTextOffset, -0x4EB4 6 | .set LeftArrowTextOffset, -0x4EB0 7 | .set RightArrowTextOffset, -0x4EAC 8 | 9 | backup 10 | 11 | .set REG_PageNum, 22 12 | .set EventID, 23 13 | .set PageID, 24 14 | 15 | # Get number of pages 16 | rtocbl r12, TM_GetPageNum 17 | mr REG_PageNum, r3 18 | # Get Event ID 19 | lbz r3, 0x0(r31) 20 | lwz r4, 0x4(r31) 21 | add EventID, r3, r4 22 | # Check if first page 23 | lwz r3, MemcardData(r13) 24 | lbz PageID, CurrentEventPage(r3) 25 | cmpwi PageID, 0 26 | bne ShowFirstPage 27 | # Hide left arrow 28 | li r4, 1 29 | b FirstPageVisibility 30 | 31 | ShowFirstPage: 32 | # Show left arrow 33 | li r4, 0 34 | b FirstPageVisibility 35 | 36 | FirstPageVisibility: 37 | lwz r3, LeftArrowTextOffset (r13) 38 | stb r4, 0x4D(r3) 39 | 40 | # Check if last page 41 | cmpw PageID, REG_PageNum 42 | bne ShowLastPage 43 | # Hide right arrow 44 | li r4, 1 45 | b LastPageVisibility 46 | 47 | ShowLastPage: 48 | # Show right arrow 49 | li r4, 0 50 | b LastPageVisibility 51 | 52 | LastPageVisibility: 53 | lwz r3, RightArrowTextOffset (r13) 54 | stb r4, 0x4D(r3) 55 | 56 | end: 57 | restore 58 | lwz r0, 0x0024(sp) 59 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Unlock All Events/Unlock Event 1.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8024CEC4 2 | b 0x58 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Custom Events/Unlock All Events/Unlock Event 2.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80162EE8 2 | beq- 0xC 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Hooks/OnBoot.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bfa28 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | # Call function in TmDt 6 | rtocbl r12, TM_OnBoot 7 | 8 | # Original Line 9 | lwz r0, 0x001C(sp) 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Hooks/OnCSSLoad.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80266810 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | backup 6 | 7 | # Check if event scene 8 | load r3, SceneController 9 | lbz r3, Scene.CurrentMajor(r3) 10 | cmpwi r3, Scene.EventMode 11 | bne Exit 12 | 13 | # Init pointer as 0 14 | li r3, 0 15 | stw r3, 0x80(sp) 16 | 17 | # Get file string 18 | lwz r3, MemcardData(r13) 19 | lbz r3, CurrentEventPage(r3) 20 | lwz r4, MemcardData(r13) 21 | lbz r4, 0x0535(r4) 22 | rtocbl r12, TM_GetCSSFile 23 | cmpwi r3, 0 24 | beq Exit 25 | 26 | # Load this file 27 | addi r4, sp, 0x80 28 | bl SymbolName 29 | mflr r5 30 | branchl r12, 0x803d7080 31 | 32 | # Execute the function 33 | lwz r12, 0x80(sp) 34 | cmpwi r12, 0 35 | beq Exit 36 | mtctr r12 37 | bctrl 38 | 39 | b Exit 40 | 41 | SymbolName: 42 | blrl 43 | .string "cssFunction" 44 | .align 2 45 | 46 | Exit: 47 | # Original Line 48 | restore 49 | lwz r3, -0x49F0(r13) 50 | -------------------------------------------------------------------------------- /ASM/training-mode/Hooks/OnSceneChange.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a4c94 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | # Original Line 6 | stw r3, -0x4F74(r13) 7 | 8 | # Call function in TmDt 9 | rtocbl r12, TM_OnSceneChange 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Hooks/OnStartMelee.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016e8c8 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | # Call function in TmDt 6 | rtocbl r12, TM_OnStartMelee 7 | 8 | # Original Line 9 | lwz r12, 0x0044(r31) 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Adjust Pad Params/Adjust Menu Navigation Deadzone Boot.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80406dc0 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set Deadzone, 40 6 | 7 | .byte 00 8 | .byte Deadzone 9 | .byte 00 10 | .byte 00 11 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Adjust Pad Params/Adjust Menu Navigation Deadzone.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 804c1f8c 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set Deadzone, 40 6 | 7 | .byte 00 8 | .byte Deadzone 9 | .byte 00 10 | .byte 00 11 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Adjust Pad Params/Increase Rapid Fire Timer.s: -------------------------------------------------------------------------------- 1 | # To be inserted at 8037797c 2 | .include "../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set AltTimer, 3 6 | 7 | # Check if R is held 8 | lwz r0, 0x0(r26) 9 | rlwinm. r0, r0, 0, 0x20 10 | beq Original 11 | # Use new timer 12 | li r0, AltTimer 13 | b Exit 14 | 15 | Original: 16 | # Original timer 17 | lwz r0, 0x0010(r30) 18 | 19 | Exit: 20 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Allow light press in LRAS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016d1f8 2 | # In SceneThink_VSMove, just before the branch to skip the lras check 3 | 4 | .include "../../Globals.s" 5 | .include "../../m-ex/Header.s" 6 | 7 | load r3, 0x804c1fac # master pad array 8 | li r6, 0 9 | 10 | LRAS_Loop: 11 | lwz r4, 0x0(r3) # held 12 | 13 | CheckStart: 14 | andi. r0, r4, PAD_BUTTON_START 15 | beq Continue 16 | 17 | CheckA: 18 | andi. r0, r4, PAD_BUTTON_A 19 | beq Continue 20 | 21 | CheckL: 22 | mr r20, r3 23 | mr r3, r20 24 | lbz r5, 0x1C(r3) # triggerLeft 25 | cmpwi r5, AnalogTriggerThreshold 26 | bge CheckLEnd 27 | andi. r0, r4, PAD_TRIGGER_L 28 | bne CheckLEnd 29 | b Continue 30 | CheckLEnd: 31 | 32 | CheckR: 33 | lbz r5, 0x1D(r3) # triggerRight 34 | cmpwi r5, AnalogTriggerThreshold 35 | bge CheckREnd 36 | andi. r0, r4, PAD_TRIGGER_R 37 | bne CheckREnd 38 | b Continue 39 | CheckREnd: 40 | li r3, 1 41 | b Exit 42 | 43 | Continue: 44 | addi r3, r3, 0x44 # inc pad 45 | addi r6, r6, 1 # inc ply 46 | cmpwi r6, 6 47 | bne LRAS_Loop 48 | li r3, 0 49 | 50 | Exit: 51 | cmpwi r3, 1 52 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Better VS Mode Frame Counter/Inc Counter.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016d310 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | lwz r3, TM_GameFrameCounter(r13) 6 | addi r3, r3, 1 7 | stw r3, TM_GameFrameCounter(r13) 8 | 9 | Exit: 10 | lwz r31, 0x0034(sp) 11 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Better VS Mode Frame Counter/Init Counter.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016e744 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | li r3, 0 6 | stw r3, TM_GameFrameCounter(r13) 7 | 8 | Exit: 9 | stw r30, 0x0018(sp) 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Boot Up Tasks.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801b02ec 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | # Set CPU Info 6 | li r3, 0x21 7 | stb r3, EventCPUBackup_CharID(rtoc) # Set CPU Character ID 8 | 9 | Original: 10 | lwz r0, 0x001C(sp) 11 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/CSS - Increase SIS Text Heap.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a3f9c 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | li r3, 18432 6 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Character Randomness/Common.s: -------------------------------------------------------------------------------- 1 | .include "../../../Globals.s" 2 | 3 | .set CharRng_Setting_Peach_Item, 0x0 4 | .set CharRng_Setting_Peach_FSmash, 0x1 5 | .set CharRng_Setting_Luigi_Misfire, 0x2 6 | .set CharRng_Setting_GnW_Hammer, 0x3 7 | .set CharRng_Setting_Nana_Throw, 0x4 8 | 9 | .macro CharRng_FetchSetting reg, setting, default_branch 10 | load \reg, EventVars_Ptr 11 | lwz \reg, 0x0(\reg) 12 | lwz \reg, EventVars_PersistentData(\reg) # persistent data 13 | cmpwi \reg, 0 # if persistent data is null, we default to normal rng behavior 14 | beq \default_branch 15 | lbz \reg, \setting(\reg) 16 | .endm 17 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Character Randomness/GnW Hammer.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8014c780 2 | 3 | .include "Common.s" 4 | 5 | # r3 = 0-index number output 6 | # r31 contains Fighter 7 | 8 | CharRng_FetchSetting r6, CharRng_Setting_GnW_Hammer, SetHammer 9 | 10 | cmpwi r6, 0 # 0 = default setting 11 | beq+ SetHammer 12 | subi r30, r6, 1 # 1-9 gotta be 0-indexed 13 | 14 | SetHammer: 15 | # original line 16 | stw r30, 0x222c(r31) 17 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Character Randomness/Luigi Misfire.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80142ae0 2 | 3 | .include "Common.s" 4 | 5 | # r3 = output, 0 is misfire, 1 is no misfire 6 | # r31 contains Fighter 7 | 8 | CharRng_FetchSetting r6, CharRng_Setting_Luigi_Misfire, RandomMisfire 9 | 10 | cmpwi r6, 1 11 | blt+ RandomMisfire 12 | beq AlwaysMisfire 13 | 14 | NeverMisfire: 15 | li r3, 1 16 | b Exit 17 | 18 | RandomMisfire: 19 | # original line 20 | branchl r12, HSD_Randi 21 | b Exit 22 | 23 | AlwaysMisfire: 24 | li r3, 0 25 | 26 | Exit: -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Character Randomness/Nana Throw.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800dd368 2 | 3 | .include "Common.s" 4 | 5 | # r4 = selected throw 6 | # r31 contains Fighter 7 | 8 | # original line 9 | addi r4, r30, 0 10 | lwz r30, 0x4(r31) # internal char id 11 | cmpwi r30, 0xb 12 | bne- Exit # isn't Nana 13 | 14 | CharRng_FetchSetting r5, CharRng_Setting_Nana_Throw, Exit 15 | cmpwi r5, 0 # 0 = default setting 16 | beq+ Exit 17 | li r4, 0xda # 1 - fthrow 18 | add r4, r4, r5 19 | 20 | Exit: 21 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Character Randomness/Peach FSmash.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8011c1f4 2 | # Overwrites HSD_Randi call 3 | 4 | .include "Common.s" 5 | 6 | CharRng_FetchSetting r3, CharRng_Setting_Peach_FSmash, RandomFSmash 7 | 8 | cmpwi r3, 0 # 0 = default setting 9 | beq+ RandomFSmash 10 | 11 | # reset last fsmash item 12 | li r0, -1 13 | stw r0, 0x2234(r31) 14 | 15 | subi r3, r3, 1 16 | b Exit 17 | 18 | RandomFSmash: 19 | li r3, 3 20 | branchl r12, HSD_Randi 21 | 22 | Exit: 23 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Character Randomness/Peach Item.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8011d0a4 2 | 3 | .include "Common.s" 4 | 5 | .set PEACH_TURNIP_MENUID, 0x1 6 | .set PEACH_MRSATURN_MENUID, 0x5 7 | .set PEACH_BOBOMB_MENUID, 0x6 8 | .set PEACH_BEAMSWORD_MENUID, 0x7 9 | 10 | .set PEACH_TURNIP_ITEMID, 0x63 11 | .set PEACH_MRSATURN_ITEMID, 0x07 12 | .set PEACH_BOBOMB_ITEMID, 0x06 13 | .set PEACH_BEAMSWORD_ITEMID, 0x0C 14 | 15 | # r6 = ItemKind to be passed to it_802BD4AC 16 | # r30 contains Fighter 17 | 18 | CharRng_FetchSetting r6, CharRng_Setting_Peach_Item, SetResult 19 | 20 | cmpwi r6, 0 # 0 = default setting 21 | beq+ SetResult 22 | cmpwi r6, PEACH_BEAMSWORD_MENUID 23 | beq PullBeamsword 24 | cmpwi r6, PEACH_BOBOMB_MENUID 25 | beq PullBobomb 26 | cmpwi r6, PEACH_MRSATURN_MENUID 27 | beq PullMrSaturn 28 | # r6 != 0 && r6 < mrsaturn && r6 >= turnip 29 | 30 | PullTurnip: 31 | li r31, PEACH_TURNIP_ITEMID 32 | b SetResult 33 | 34 | PullMrSaturn: 35 | li r31, PEACH_MRSATURN_ITEMID 36 | b SetResult 37 | 38 | PullBobomb: 39 | li r31, PEACH_BOBOMB_ITEMID 40 | b SetResult 41 | 42 | PullBeamsword: 43 | li r31, PEACH_BEAMSWORD_ITEMID 44 | 45 | SetResult: 46 | # original line 47 | mr r6, r31 48 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Character Randomness/Peach Turnip.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802bd3ec 2 | 3 | .include "Common.s" 4 | 5 | .set PEACH_REGULAR_TURNIP_MENUID, 0x1 6 | .set PEACH_WINKY_TURNIP_MENUID, 0x2 7 | .set PEACH_DOT_EYES_TURNIP_MENUID, 0x3 8 | .set PEACH_STITCH_FACE_TURNIP_MENUID, 0x4 9 | 10 | .set PEACH_REGULAR_TURNIP_RNG_VALUE, 0 11 | .set PEACH_WINKY_TURNIP_RNG_VALUE, 52 12 | .set PEACH_DOT_EYES_TURNIP_RNG_VALUE, 56 13 | .set PEACH_STITCH_FACE_TURNIP_RNG_VALUE, 57 14 | 15 | # r3 = RNG Return Value 16 | # r29 contains Fighter_GObj 17 | CharRng_FetchSetting r9, CharRng_Setting_Peach_Item, RandomTurnip 18 | 19 | cmpwi r9, 0 # 0 = default setting 20 | beq+ RandomTurnip 21 | cmpwi r9, PEACH_REGULAR_TURNIP_MENUID 22 | beq PullRegularTurnip 23 | cmpwi r9, PEACH_WINKY_TURNIP_MENUID 24 | beq PullWinkyTurnip 25 | cmpwi r9, PEACH_DOT_EYES_TURNIP_MENUID 26 | beq PullDotEyesTurnip 27 | # r == PEACH_STITCH_FACE_TURNIP_MENUID 28 | 29 | PullStitchFaceTurnip: 30 | li r3, PEACH_STITCH_FACE_TURNIP_RNG_VALUE 31 | b Exit 32 | 33 | PullRegularTurnip: 34 | li r3, PEACH_REGULAR_TURNIP_RNG_VALUE 35 | b Exit 36 | 37 | PullWinkyTurnip: 38 | li r3, PEACH_WINKY_TURNIP_RNG_VALUE 39 | b Exit 40 | 41 | PullDotEyesTurnip: 42 | li r3, PEACH_DOT_EYES_TURNIP_RNG_VALUE 43 | b Exit 44 | 45 | RandomTurnip: 46 | # original line 47 | branchl r12, HSD_Randi 48 | 49 | Exit: 50 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Corneria - Move Ship on Stage Init.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801dd980 2 | .macro branchl reg, address 3 | lis \reg, \address @h 4 | ori \reg, \reg, \address @l 5 | mtctr \reg 6 | bctrl 7 | .endm 8 | 9 | .macro branch reg, address 10 | lis \reg, \address @h 11 | ori \reg, \reg, \address @l 12 | mtctr \reg 13 | bctr 14 | .endm 15 | 16 | .macro load reg, address 17 | lis \reg, \address @h 18 | ori \reg, \reg, \address @l 19 | .endm 20 | 21 | .macro loadf regf, reg, address 22 | lis \reg, \address @h 23 | ori \reg, \reg, \address @l 24 | stw \reg, -0x4(sp) 25 | lfs \regf, -0x4(sp) 26 | .endm 27 | 28 | .macro backup 29 | mflr r0 30 | stw r0, 0x4(r1) 31 | stwu r1, -0x100(r1) # make space for 12 registers 32 | stmw r20, 0x8(r1) 33 | .endm 34 | 35 | .macro restore 36 | lmw r20, 0x8(r1) 37 | lwz r0, 0x104(r1) 38 | addi r1, r1, 0x100 # release the space 39 | mtlr r0 40 | .endm 41 | 42 | /* 43 | I honestly cant believe this code is needed. Melee spawns the players at Y coordinate 300, 44 | but the stage starts at Y coordinate 0. Because of this, when i get the coordinate of the 45 | ground ID i want to spawn the players over, corneria is technically IN THE BLASTZONE. 46 | Therefore, i spawn the players in the blastzone and it loads state on death, so it infinitely 47 | kills the players and eventually crashes. 48 | 49 | This code changes corneria's initialization code to move the ship, instead of waiting for the 50 | per frame think function to do it. This way the stage is in the right position when i 51 | request the coordinates. 52 | */ 53 | 54 | # Move Corneria 55 | mr r3, r30 56 | branchl r12, 0x801c2fe0 57 | 58 | # Original Codeline 59 | lwz r0, 0x0034(sp) 60 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Count NonExistant Player Kills.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801bc59c 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Disable Calls to ScoreDisplay_Remove.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802ff4fc 2 | blr 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Disable USB Screenshot.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a5070 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | nop 6 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Display Stick Info When Paused/Remove Text on UnPause.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a1124 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Only in Event Mode 6 | load r3, SceneController 7 | lbz r3, Scene.CurrentMajor(r3) 8 | cmpwi r3, Scene.EventMode 9 | bne Exit 10 | 11 | # Get Text Struct 12 | load r3, 0x804a1f58 13 | lwz r3, 0x8(r3) 14 | # Remove Text Struct 15 | branchl r12, Text_RemoveText 16 | 17 | # Get GObj 18 | load r5, 0x804a1f58 19 | lwz r3, 0xC(r5) 20 | # Zero Out Data 21 | li r4, 0 22 | stw r4, 0x8(r5) 23 | stw r4, 0xC(r5) 24 | # Remove GObj 25 | branchl r12, GObj_Destroy 26 | 27 | Exit: 28 | # Original Codeline 29 | lwz r0, 0x000C(sp) 30 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Do Not Save Nametag Region to Memcard for GALE01.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8001ae8c 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | # Check If Save Chunk #2 and #3 6 | cmpwi r25, 0x2 7 | beq SkipSave 8 | cmpwi r25, 0x3 9 | beq SkipSave 10 | b original 11 | 12 | # Check For Game ID GALE01(Memcard Only) 13 | SkipSave: 14 | lis r3, 0x8000 15 | lwz r3, 0x0(r3) 16 | load r4, 0x47414c45 # GALE 17 | cmpw r3, r4 18 | bne original 19 | li r0, 0 20 | b exit 21 | 22 | original: 23 | lwz r0, 0x00F4(r31) 24 | 25 | exit: 26 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Frame Advance Rewrite.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016bbb4 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | .set REG_Timer, 10 6 | .set REG_Inputs, 11 7 | .set REG_Count, 12 8 | 9 | backup 10 | 11 | bl Timer 12 | mflr REG_Timer 13 | load REG_Inputs, 0x804c1fac 14 | li REG_Count, 0 15 | 16 | Loop: 17 | .set REG_ThisInputs, 9 18 | mulli r3, REG_Count, 68 19 | add REG_ThisInputs, r3, REG_Inputs 20 | 21 | # Check for Z 22 | lwz r0, 0x0(REG_ThisInputs) 23 | rlwinm. r0, r0, 0, 0x10 24 | beq LoopInc 25 | 26 | # increment timer 27 | lwz r3, 0x0(REG_Timer) 28 | addi r3, r3, 1 29 | stw r3, 0x0(REG_Timer) 30 | # Check if held for 30 frames 31 | lwz r3, 0x0(REG_Timer) 32 | cmpwi r3, 1 33 | beq Success 34 | cmpwi r3, 30 35 | bge Success 36 | b Failure 37 | 38 | Success: 39 | # Inputted, now remove input 40 | li r4, 0 41 | lwz r0, 0x0(REG_ThisInputs) 42 | rlwimi r0, r4, 4, 0x10 43 | stw r0, 0x0(REG_ThisInputs) 44 | lwz r0, 0x8(REG_ThisInputs) 45 | rlwimi r0, r4, 4, 0x10 46 | stw r0, 0x8(REG_ThisInputs) 47 | # Exit with success 48 | li r3, 1 49 | b Exit 50 | 51 | LoopInc: 52 | addi REG_Count, REG_Count, 1 53 | cmpwi REG_Count, 4 54 | blt Loop 55 | 56 | # Reset timer 57 | li r3, 0 58 | stw r3, 0x0(REG_Timer) 59 | # Set advance to 0 60 | load r3, 0x80479d48 61 | li r4, 0 62 | lbz r0, 0x22(r3) 63 | rlwimi r0, r4, 31, 0x1 64 | stb r0, 0x22(r3) 65 | 66 | Failure: 67 | li r3, 0 68 | b Exit 69 | 70 | Timer: 71 | blrl 72 | .long 0 73 | 74 | Exit: 75 | restore 76 | blr 77 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/GObj_Destory Exits When Input = 0.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80390240 2 | b 0xD8 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/HSD_Update Tweak/Allow Z in VS While Paused.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006b0b4 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/HSD_Update Tweak/Always Run Debug Update.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a4df4 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/HSD_Update Tweak/Check for DBLevel.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a49a8 2 | .include "../../../Globals.s" 3 | 4 | lwz r0, DEBUGLV(r13) 5 | cmpwi r0, 3 6 | bge isDebug 7 | 8 | NoDebug: 9 | # Run just HSDUpdate 10 | branch r12, 0x801a4a78 11 | 12 | isDebug: 13 | # Run as normal 14 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/HSD_Update Tweak/Clear HSDUpdate for no Debug Melee.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a4b14 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Finish storing function 6 | stw r4, 0x0018(r5) 7 | 8 | # Check if DBLevel 9 | lwz r0, DEBUGLV(r13) 10 | cmpwi r0, 3 11 | bge isDebug 12 | 13 | NoDebug: 14 | # Clear these functions 15 | li r0, 0 16 | stw r0, 0x0014(r5) 17 | stw r0, 0x0018(r5) 18 | 19 | isDebug: 20 | # Run as normal 21 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/HSD_Update Tweak/Clear HSDUpdate for no Debug.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801a4c08 2 | .include "../../../Globals.s" 3 | 4 | # Finish storing function (original code line) 5 | stw r0, 0x0028(r31) 6 | 7 | # Check if DBLevel 8 | lwz r0, DEBUGLV(r13) 9 | cmpwi r0, 3 10 | bge isDebug 11 | 12 | NoDebug: 13 | # Clear these functions 14 | li r0, 0 15 | stw r0, 0x24(r31) 16 | stw r0, 0x28(r31) 17 | 18 | isDebug: 19 | # Run as normal 20 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Never Play Movies in Archives.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80259090 2 | b 0x18 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/OSReport Match Load Time/Output Time Since Last Tick.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016e91c 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # ************************************************* 6 | .if debug==1 7 | # Get Prev Tick 8 | lwz r3, -0x49b4(r13) 9 | # Get Current Tick 10 | mftbl r4 11 | # Find Difference 12 | sub r3, r4, r3 13 | 14 | # Convert to ms 15 | # Get Clock Bus 16 | load r4, 0x800000f8 17 | lwz r4, 0x0(r4) 18 | # Clock Bus / 4 19 | li r5, 4 20 | divw r4, r4, r5 21 | # Divided by 1000 22 | li r5, 1000 23 | divw r4, r4, r5 24 | # divided by ticks 25 | divw r4, r3, r4 26 | 27 | # OSReport Difference 28 | bl OSReportString 29 | mflr r3 30 | branchl r12, OSReport 31 | b Exit 32 | 33 | OSReportString: 34 | blrl 35 | .string "Match loaded in: %dms " 36 | .align 2 37 | .endif 38 | 39 | # ************************************************* 40 | 41 | Exit: 42 | lwz r0, 0x0024(sp) 43 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/OSReport Match Load Time/Store Starting Tick.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8016e740 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | mr r31, r3 6 | 7 | .if debug==1 8 | # Store Current tick 9 | mftbl r3 10 | stw r3, -0x49b4(r13) 11 | .endif 12 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/On No Save.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 801af6f4 2 | .include "../../Globals.s" 3 | 4 | .set MEMCARD_HASSAVE, 0x0 5 | .set MEMCARD_NOSAVE, 0x4 6 | .set MEMCARD_NONE, 0xF 7 | .set MEMCARD_NONE2, 0xD 8 | 9 | # Skip if we have save 10 | cmpwi r29, MEMCARD_HASSAVE 11 | beq Original 12 | 13 | InitSave: 14 | backup 15 | lwz r4, MemcardData(r13) 16 | # Set Max OSD on No Memcard 17 | li r3, 1 18 | stb r3, OSDMaxWindows(r4) 19 | # Set Initial Page Number 20 | li r3, 1 21 | stb r3, CurrentEventPage(r4) 22 | # Enable Recommended OSDs 23 | li r3, 0 24 | stb r3, OSDRecommended(r4) 25 | # Turn off OSDs by default 26 | li r3, 0 27 | stw r3, OSDBitfield(r4) 28 | 29 | restore 30 | 31 | cmpwi r29, MEMCARD_NOSAVE 32 | beq Original 33 | 34 | NoMemcard: 35 | # No memcard available 36 | # Exit memcard think and disable saving 37 | branch r12, 0x801b01ac 38 | 39 | Original: 40 | cmpwi r29, 0 41 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Save File Renaming.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8001c800 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | # Check For Game ID GTME(ISO) 6 | lis r11, 0x8000 7 | lwz r11, 0x0(r11) 8 | load r12, 0x47544d45 # GTME 9 | cmpw r11, r12 10 | beq ISO 11 | b Memcard 12 | 13 | ISO: 14 | bl ISOSaveName 15 | mflr r5 16 | b exit 17 | 18 | Memcard: 19 | bl MemcardSaveName 20 | mflr r5 21 | bl MemcardStringFormat 22 | mflr r4 23 | b exit 24 | 25 | ISOSaveName: 26 | blrl 27 | .long 0x54726169 28 | .long 0x6e696e67 29 | .long 0x204d6f64 30 | .long 0x65206279 31 | .long 0x20556e63 32 | .long 0x6c655075 33 | .long 0x6e636820 34 | .long 0x20202020 35 | 36 | ISOSaveDesc: 37 | # blrl 38 | .long 0x47616D65 39 | .long 0x20446174 40 | .long 0x61000000 41 | 42 | MemcardSaveName: 43 | blrl 44 | .long 0x53757065 45 | .long 0x7220536D 46 | .long 0x61736820 47 | .long 0x42726F73 48 | .long 0x2E204D65 49 | .long 0x6C656520 50 | .long 0x20202020 51 | .long 0x20202020 52 | 53 | MemcardSaveDesc: 54 | # blrl 55 | .long 0x4d6f6420 56 | .long 0x4c61756e 57 | .long 0x63686572 58 | .long 0x20283120 59 | .long 0x6f662032 60 | .long 0x29000000 61 | 62 | MemcardStringFormat: 63 | blrl 64 | .long 0x25730000 65 | 66 | exit: 67 | branchl r12, sprintf 68 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/ScoreDisplay - Change GXLink Pri.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802ff4d8 2 | li r9, 1 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/SearchStringTable.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 0x80005530 2 | .include "../../Globals.s" 3 | .include "../../m-ex/Header.s" 4 | 5 | ############################################# 6 | .set ID, 31 7 | .set LoopCount, 30 8 | .set Name, 29 9 | 10 | backup 11 | 12 | # Get ID 13 | mr ID, r3 14 | # Get Names 15 | mr Name, r4 16 | # Init Loop Count 17 | li LoopCount, 0 18 | 19 | SearchStringTable_Loop: 20 | # Check if we are up to the correct name 21 | cmpw ID, LoopCount 22 | beq SearchStringTable_Exit 23 | # Get string length 24 | mr r3, Name 25 | branchl r12, strlen 26 | # Add to current name pointer 27 | add Name, Name, r3 28 | addi Name, Name, 1 29 | # Inc Loop Count 30 | addi LoopCount, LoopCount, 1 31 | b SearchStringTable_Loop 32 | 33 | SearchStringTable_Exit: 34 | mr r3, Name 35 | restore 36 | blr 37 | 38 | ################################### 39 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Skip Assert for Respawn Platform.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800d5524 2 | b 0x7C 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Skip Assert for no_reaction_always.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006d494 2 | b 0x20C 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Skip SetGroundStateAssert For Restore States.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8007d8e8 2 | b 0x30 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Text - Increment Max Size.asm.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803a6b7c 2 | b -0x360 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Text Modifications/Make Spaces Not Store 00s.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803a6868 2 | b 0x34 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Text Modifications/Make Spaces Store 0x1A.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803a6860 2 | li r8, 26 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Misc/Text Modifications/Parse Numbers Correctly.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 803a69c0 2 | b 0x3C 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOS Frame Display/Count During GuardOff.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80092ce8 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 4 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | 11 | ########################################################## 12 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 13 | ## Is 0x80 long and is zero'd at the start ## 14 | ## of every VS Match ## 15 | ## Store Text Info here ## 16 | ########################################################## 17 | 18 | lwz playerdata, 0x002C(r31) 19 | 20 | lhz r5, TM_ShieldFrames(playerdata) 21 | 22 | cmpwi r5, 0xFF 23 | beq skipInc 24 | addi r5, r5, 0x1 25 | sth r5, TM_ShieldFrames(playerdata) 26 | 27 | skipInc: 28 | lwz r0, 0x0024(sp) 29 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOS Frame Display/Count During ShieldWait.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80092a38 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 4 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | 11 | ########################################################## 12 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 13 | ## Is 0x80 long and is zero'd at the start ## 14 | ## of every VS Match ## 15 | ## Store Text Info here ## 16 | ########################################################## 17 | 18 | lwz r4, 0x002C(r3) 19 | 20 | lhz r5, TM_ShieldFrames(playerdata) 21 | 22 | cmpwi r5, 0xFF 23 | beq skipInc 24 | addi r5, r5, 0x1 25 | sth r5, TM_ShieldFrames(playerdata) 26 | 27 | skipInc: 28 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOS Frame Display/GuardOff - Display OOS Frame Count.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80092dfc 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set TextCreateFunction, 0x80005928 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | mr r4, r30 20 | branchl r12, 0x80005508 21 | 22 | lwz r0, 0x0024(sp) 23 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOS Frame Display/GuardWait - Display OOS Frame Count.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80092b58 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | .set entity, 31 5 | .set playerdata, 31 6 | .set player, 30 7 | .set text, 29 8 | .set textprop, 28 9 | .set TextCreateFunction, 0x80005928 10 | 11 | ########################################################## 12 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 13 | ## Is 0x80 long and is zero'd at the start ## 14 | ## of every VS Match ## 15 | ## Store Text Info here ## 16 | ########################################################## 17 | 18 | mr r4, r30 19 | branchl r12, 0x80005508 20 | 21 | lwz r0, 0x001C(sp) 22 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOS Frame Display/Init Frame Count.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80093388 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | .set entity, 31 5 | .set playerdata, 31 6 | .set player, 30 7 | .set text, 29 8 | .set textprop, 28 9 | 10 | ########################################################## 11 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 12 | ## Is 0x80 long and is zero'd at the start ## 13 | ## of every VS Match ## 14 | ## Store Text Info here ## 15 | ########################################################## 16 | 17 | # init count 18 | li r0, 0 19 | sth r0, TM_ShieldFrames(r29) 20 | 21 | lwz r0, 0x234C(r29) 22 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/DamageFall - Check For Interrupt.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80090924 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | # Check If Entered Fall 13 | lwz r4, 0x10(r31) 14 | cmpwi r4, 0x1D 15 | bne CheckToDisplay 16 | 17 | li r3, 1 18 | 19 | CheckToDisplay: 20 | # Branch to Interrupt Check With Interrupt Bool in r3 and player in r4 21 | mr r4, r30 22 | branchl r12, 0x80005504 23 | 24 | lwz r0, 0x001C(sp) 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/DamageFlyTop - CheckForInterrupt.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008ff14 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | # Branch to Interrupt Check With Interrupt Bool in r3 and player in r4 13 | mr r4, r31 14 | branchl r12, 0x80005504 15 | 16 | branch r12, 0x8008ff1c 17 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/DamageLightHit - Check For Animation Interrupt.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008f914 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Branch to Interrupt Check With Interrupt Bool in r3 and player in r4 6 | mr r4, r31 7 | branchl r12, 0x80005504 8 | 9 | branch r12, 0x8008f920 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/DamageLightHit - Check For Interrupt - Aerial Jump.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008f8fc 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Branch to Interrupt Check With Interrupt Bool in r3 and player in r4 6 | mr r4, r31 7 | branchl r12, 0x80005504 8 | 9 | branch r12, 0x8008f904 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/DamageLightHit - Check ForInterrupt 2.asm.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008faf0 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Branch to Interrupt Check With Interrupt Bool in r3 and player in r4 6 | mr r4, r30 7 | branchl r12, 0x80005504 8 | 9 | branch r12, 0x8008fb00 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/DamageLightHit - Check ForInterrupt.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008fae4 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Branch to Interrupt Check With Interrupt Bool in r3 and player in r4 6 | mr r4, r30 7 | branchl r12, 0x80005504 8 | 9 | branch r12, 0x8008fb00 10 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/Increment Post Hitstun Count.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006ab60 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set Text, 30 8 | .set TextProp, 29 9 | 10 | ################################### 11 | ## Increment Post-Hitstun Frames ## 12 | ################################### 13 | 14 | # Check If In Hitstun 15 | lbz r3, 0x221C(r31) 16 | rlwinm. r0, r3, 31, 31, 31 17 | beq NoHitstun 18 | 19 | InHitstun: 20 | li r3, 0 21 | sth r3, TM_PostHitstunFrameCount(r31) 22 | b Hitstun_End 23 | 24 | NoHitstun: 25 | lhz r3, TM_PostHitstunFrameCount(r31) 26 | addi r3, r3, 1 27 | sth r3, TM_PostHitstunFrameCount(r31) 28 | b Hitstun_End 29 | 30 | Hitstun_End: 31 | exit: 32 | lwz r12, 0x21A0(r31) 33 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OOTumble/Static Function - Display Frames Spent Post Hitstun.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80005504 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set REG_FighterData, 31 7 | .set player, 30 8 | 9 | .set REG_TextColor, 29 10 | .set REG_Text, 28 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | backup 20 | 21 | mr player, r4 22 | lwz REG_FighterData, 0x2c(player) 23 | 24 | # Check For Interrupt 25 | cmpwi r3, 0x1 26 | bne Exit 27 | 28 | # CHECK IF ENABLED 29 | li r0, OSD.ActOoHitstun # PowerShield ID 30 | # lwz r4, -0xdbc(rtoc) #get frame data toggle bits 31 | lwz r4, MemcardData(r13) 32 | lwz r4, 0x1F24(r4) 33 | li r3, 1 34 | slw r0, r3, r0 35 | and. r0, r0, r4 36 | beq Exit 37 | 38 | CheckForFollower: 39 | mr r3, REG_FighterData 40 | branchl r12, 0x80005510 41 | cmpwi r3, 0x1 42 | beq Exit 43 | 44 | # Check if frame 1 45 | lhz r3, TM_PostHitstunFrameCount(REG_FighterData) 46 | cmpwi r3, 0 47 | bgt WhiteText 48 | 49 | GreenText: 50 | li REG_TextColor, MSGCOLOR_GREEN 51 | b PrintMessage 52 | 53 | WhiteText: 54 | li REG_TextColor, MSGCOLOR_WHITE 55 | b PrintMessage 56 | 57 | PrintMessage: 58 | li r3, 5 # Message Kind 59 | lbz r4, 0xC(REG_FighterData) # Message Queue 60 | mr r5, REG_TextColor 61 | bl ActOoHitstun_String 62 | mflr r6 63 | lhz r7, TM_PostHitstunFrameCount(REG_FighterData) 64 | addi r7, r7, 1 65 | Message_Display 66 | 67 | b Exit 68 | 69 | ################### 70 | ## TEXT CONTENTS ## 71 | ################### 72 | 73 | ActOoHitstun_String: 74 | blrl 75 | .string "Act OoHitstun\nFrame %d" 76 | .align 2 77 | 78 | ############################## 79 | 80 | Exit: 81 | restore 82 | blr 83 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act Oo Float.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8011bebc 2 | 3 | .include "../../Globals.s" 4 | .include "../../m-ex/Header.s" 5 | 6 | .set playerdata, 31 7 | 8 | backupall 9 | 10 | # CHECK IF ENABLED 11 | li r0, OSD.FighterSpecificTech 12 | lwz r4, MemcardData(r13) 13 | lwz r4, 0x1F24(r4) 14 | li r3, 1 15 | slw r0, r3, r0 16 | and. r0, r0, r4 17 | beq Exit 18 | 19 | # CHECK FOR FOLLOWER 20 | mr r3, playerdata 21 | branchl r12, 0x80005510 22 | cmpwi r3, 0x1 23 | beq Exit 24 | 25 | # DISPLAY OSD 26 | li r3, OSD.FighterSpecificTech 27 | lbz r4, 0xC(playerdata) 28 | 29 | bl Text 30 | mflr r6 31 | lhz r7, 0x23F8(playerdata) 32 | 33 | cmpwi r7, 15 34 | bgt Exit 35 | li r5, MSGCOLOR_RED 36 | cmpwi r7, 1 37 | bne Display 38 | li r5, MSGCOLOR_GREEN 39 | 40 | Display: 41 | Message_Display 42 | b Exit 43 | 44 | Text: 45 | blrl 46 | .string "Act OoFloat\nFrame %d" 47 | .align 2 48 | 49 | Exit: 50 | restoreall 51 | lfs f1, 0x2230 (r31) 52 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Aerial Out of DoubleJump.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800cc570 2 | .include "../../../Globals.s" 3 | 4 | .set player, 29 5 | 6 | backup 7 | 8 | # fulfill requirements of the static function before branching 9 | mr r4, player # store player to r4 10 | bl Text # store the address of OSD text to r6 11 | mflr r6 12 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 13 | 14 | branchl r12, 0x8000550c 15 | b Exit 16 | 17 | Text: 18 | blrl 19 | .string "Aerial OoDblJump\nFrame %d" 20 | .align 2 21 | 22 | Exit: 23 | restore 24 | cmpwi r3, 0 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Aerial Out of Drop.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8009a350 2 | .include "../../../Globals.s" 3 | 4 | .set player, 31 5 | 6 | backup 7 | 8 | # fulfill requirements of the static function before branching 9 | mr r4, player # store player to r4 10 | bl Text # store the address of OSD text to r6 11 | mflr r6 12 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 13 | 14 | branchl r12, 0x8000550c 15 | b Exit 16 | 17 | Text: 18 | blrl 19 | .string "Aerial OoDrop\nFrame %d" 20 | .align 2 21 | 22 | Exit: 23 | restore 24 | cmpwi r3, 0 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Aerial Out of Fall.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800ccb40 2 | # This ASM is injected to "800CCAAC:Fighter_IASACheck_AllAerial" function which is called from some air action states' IASA function. 3 | # So this can affect to other action states' IASA besides "Fall". 4 | .include "../../../Globals.s" 5 | 6 | .set player, 31 7 | 8 | backup 9 | 10 | # fulfill requirements of the static function before branching 11 | mr r4, player # store player to r4 12 | bl Text # store the address of OSD text to r6 13 | mflr r6 14 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 15 | 16 | branchl r12, 0x8000550c 17 | b Exit 18 | 19 | Text: 20 | blrl 21 | .string "Aerial OoFall\nFrame %d" 22 | .align 2 23 | 24 | Exit: 25 | restore 26 | cmpwi r3, 0 27 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Aerial Out of Jump.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800cb3a8 2 | .include "../../../Globals.s" 3 | 4 | .set player, 30 5 | 6 | backup 7 | 8 | # fulfill requirements of the static function before branching 9 | mr r4, player # store player to r4 10 | bl Text # store the address of OSD text to r6 11 | mflr r6 12 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 13 | 14 | branchl r12, 0x8000550c 15 | b Exit 16 | 17 | Text: 18 | blrl 19 | .string "Aerial OoJump\nFrame %d" 20 | .align 2 21 | 22 | Exit: 23 | restore 24 | cmpwi r3, 0 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/DoubleJump Out of Jump.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800cb400 2 | .include "../../../Globals.s" 3 | 4 | .set player, 30 5 | 6 | backup 7 | 8 | # fulfill requirements of the static function before branching 9 | mr r4, player # store player to r4 10 | bl Text # store the address of OSD text to r6 11 | mflr r6 12 | li r10, OSD.Miscellaneous # store the OSD kind ID to r10 / Originally OSD.ActOoAirborne is natural, but use other ID to show at the same time as Aerial OoJump for fighters with DoubleJump cancel techniques 13 | 14 | branchl r12, 0x8000550c 15 | b Exit 16 | 17 | Text: 18 | blrl 19 | .string "DblJump OoJump\nFrame %d" 20 | .align 2 21 | 22 | Exit: 23 | restore 24 | cmpwi r3, 0 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Special Out of DoubleJump.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800cc51c 2 | .include "../../../Globals.s" 3 | 4 | .set player, 29 5 | 6 | backup 7 | 8 | # fulfill requirements of the static function before branching 9 | mr r4, player # store player to r4 10 | bl Text # store the address of OSD text to r6 11 | mflr r6 12 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 13 | 14 | branchl r12, 0x8000550c 15 | b Exit 16 | 17 | Text: 18 | blrl 19 | .string "Special OoDblJump\nFrame %d" 20 | .align 2 21 | 22 | Exit: 23 | restore 24 | cmpwi r3, 0 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Special Out of Drop.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8009a2fc 2 | .include "../../../Globals.s" 3 | 4 | .set player, 31 5 | 6 | backup 7 | 8 | # fulfill requirements of the static function before branching 9 | mr r4, player # store player to r4 10 | bl Text # store the address of OSD text to r6 11 | mflr r6 12 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 13 | 14 | branchl r12, 0x8000550c 15 | b Exit 16 | 17 | Text: 18 | blrl 19 | .string "Special OoDrop\nFrame %d" 20 | .align 2 21 | 22 | Exit: 23 | restore 24 | cmpwi r3, 0 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Special Out of Fall.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800CCAC4 2 | # This ASM is injected to "800CCAAC:Fighter_IASACheck_AllAerial" function which is called from some air action states' IASA function. 3 | # So this can affect to other action states' IASA besides "Fall". 4 | .include "../../../Globals.s" 5 | 6 | .set player, 31 7 | 8 | backup 9 | 10 | # fulfill requirements of the static function before branching 11 | mr r4, player # store player to r4 12 | bl Text # store the address of OSD text to r6 13 | mflr r6 14 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 15 | 16 | branchl r12, 0x8000550c 17 | b Exit 18 | 19 | Text: 20 | blrl 21 | .string "Special OoFall\nFrame %d" 22 | .align 2 23 | 24 | Exit: 25 | restore 26 | cmpwi r3, 0 27 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Act OoAirborne/Special Out of Jump.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800cb354 2 | .include "../../../Globals.s" 3 | 4 | .set player, 30 5 | 6 | backup 7 | 8 | # fulfill requirements of the static function before branching 9 | mr r4, player # store player to r4 10 | bl Text # store the address of OSD text to r6 11 | mflr r6 12 | li r10, OSD.ActOoAirborne # store the OSD kind ID to r10 13 | 14 | branchl r12, 0x8000550c 15 | b Exit 16 | 17 | Text: 18 | blrl 19 | .string "Special OoJump\nFrame %d" 20 | .align 2 21 | 22 | Exit: 23 | restore 24 | cmpwi r3, 0 25 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Additional Playerblock Variables/Fastfall Timer/Increment Fastfall Variable.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8007d550 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set Text, 30 8 | .set TextProp, 29 9 | 10 | # Increment FastFall Variable 11 | lhz r6, TM_CanFastfallFrameCount(r3) 12 | addi r6, r6, 0x1 13 | sth r6, TM_CanFastfallFrameCount(r3) 14 | 15 | # Original Codeline 16 | lwz r6, -0x514C(r13) 17 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Additional Playerblock Variables/Fastfall Timer/Initialize Fastfall Variable.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800698c8 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set Text, 30 8 | .set TextProp, 29 9 | 10 | # Store IsFastFalling Bit (Original Line) 11 | stb r0, 0x221A(r26) 12 | 13 | # Initialize FastFall Variable 14 | li r0, 0 15 | sth r0, TM_CanFastfallFrameCount(r26) 16 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Additional Playerblock Variables/Frame Advantage/Save Pointer to Shield Owner On Hit.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80076eac 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | ################################# 6 | ## On Hitbox->Shield Collision ## 7 | ################################# 8 | 9 | # Store Pointer to Player Whose Shield Was Hit 10 | stw r31, TM_PlayerWhoShieldedAttack(r29) 11 | 12 | InjectionExit: 13 | lfs f1, 0x19B4(r31) 14 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Additional Playerblock Variables/Previous Move Instance Hit By/Backup Previous Move Instance Player was Hit By.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8003820c 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | # Backup Previous Move Instance ID 13 | lhz r3, 0x18EC(r25) 14 | sth r3, 0x2418(r25) 15 | 16 | # Original Line 17 | rlwinm. r3, r27, 0, 16, 31 18 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Airdodge Item Throw.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80099c7C 2 | # Just after determining to start an item throw/zdrop in Interrupt_AS_EscapeAir_Airdodge 3 | 4 | .include "../../Globals.s" 5 | .include "../../m-ex/Header.s" 6 | 7 | .set playerdata, 31 8 | .set player, 30 9 | .set isThrow, 29 10 | 11 | # r29 unused in host function, 12 | # so we can safely move before saving registers 13 | mr isThrow, r0 14 | 15 | backupall 16 | 17 | # CHECK IF ENABLED 18 | li r0, OSD.RollAirdodgeInterrupt 19 | lwz r4, MemcardData(r13) 20 | lwz r4, 0x1F24(r4) 21 | li r3, 1 22 | slw r0, r3, r0 23 | and. r0, r0, r4 24 | beq Exit 25 | 26 | # CHECK FOR FOLLOWER 27 | mr r3, playerdata 28 | branchl r12, 0x80005510 29 | cmpwi r3, 0x1 30 | beq Exit 31 | 32 | # DISPLAY OSD 33 | li r3, OSD.RollAirdodgeInterrupt 34 | lbz r4, 0xC(playerdata) 35 | load r5, MSGCOLOR_WHITE 36 | 37 | cmpwi isThrow, 0 38 | bne Throw 39 | ZDrop: 40 | bl Text_ZDrop 41 | mflr r6 42 | lhz r7, TM_FramesinCurrentAS(playerdata) 43 | b Display 44 | Throw: 45 | bl Text_ItemThrow 46 | mflr r6 47 | lhz r7, TM_FramesInPrevASStart(playerdata) 48 | 49 | Display: 50 | Message_Display 51 | b Exit 52 | 53 | Text_ItemThrow: 54 | blrl 55 | .string "Airdodge Item Throw\nFrame %d" 56 | .align 2 57 | 58 | Text_ZDrop: 59 | blrl 60 | .string "Airdodge Z-Drop\nFrame %d" 61 | .align 2 62 | 63 | Exit: 64 | restoreall 65 | cmpwi r0, 0 66 | 67 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Boost Grab.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800d8b58 2 | # Just after determining to start a boost grab in Interrupt_Grab_FromDashAttack 3 | 4 | .include "../../Globals.s" 5 | .include "../../m-ex/Header.s" 6 | 7 | .set playerdata, 31 8 | .set player, 30 9 | 10 | backupall 11 | 12 | # CHECK IF ENABLED 13 | li r0, OSD.BoostGrab 14 | lwz r4, MemcardData(r13) 15 | lwz r4, 0x1F24(r4) 16 | li r3, 1 17 | slw r0, r3, r0 18 | and. r0, r0, r4 19 | beq Exit 20 | 21 | # CHECK FOR FOLLOWER 22 | mr r3, playerdata 23 | branchl r12, 0x80005510 24 | cmpwi r3, 0x1 25 | beq Exit 26 | 27 | # DISPLAY OSD 28 | li r3, OSD.BoostGrab 29 | lbz r4, 0xC(playerdata) 30 | load r5, MSGCOLOR_WHITE 31 | bl Text 32 | mflr r6 33 | lhz r7, TM_FramesinCurrentAS(playerdata) 34 | Message_Display 35 | 36 | b Exit 37 | 38 | Text: 39 | blrl 40 | .string "Boost Grab\nFrame %d" 41 | 42 | Exit: 43 | restoreall 44 | addi r3, r30, 0 45 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Bowser Fortress NIL.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80096d44 2 | # There is potential for a general purpose special move->NIL OSD here 3 | 4 | .include "../../Globals.s" 5 | .include "../../m-ex/Header.s" 6 | 7 | .set playerdata, 31 8 | .set player, 30 9 | 10 | backupall 11 | mr playerdata, r3 12 | 13 | # CHECK IF ENABLED 14 | li r0, OSD.FighterSpecificTech 15 | lwz r4, MemcardData(r13) 16 | lwz r4, 0x1F24(r4) 17 | li r3, 1 18 | slw r0, r3, r0 19 | and. r0, r0, r4 20 | beq Exit 21 | 22 | # CHECK FOR FOLLOWER 23 | mr r3, playerdata 24 | branchl r12, 0x80005510 25 | cmpwi r3, 0x1 26 | beq Exit 27 | 28 | lwz r3, 0x4(playerdata) 29 | cmpwi r3, Bowser.Int 30 | bne Exit 31 | 32 | # ensure whirling fortress air was the previous action state 33 | lhz r3, 0x23FC(playerdata) 34 | cmpwi r3, 360 35 | bne Exit 36 | 37 | lfs f1, 0x894(r31) 38 | fctiwz f1, f1 39 | stfd f1, 0x00F0 (sp) 40 | lwz r7, 0x00F4 (sp) 41 | addi r7, r7, 1 42 | 43 | li r3, OSD.FighterSpecificTech 44 | lbz r4, 0xC(playerdata) 45 | 46 | cmpwi r7, 1 47 | bne MissedNIL 48 | SuccessfulNIL: 49 | li r5, MSGCOLOR_GREEN 50 | bl Text_SuccessfulNIL 51 | mflr r6 52 | b Display 53 | MissedNIL: 54 | li r5, MSGCOLOR_RED 55 | bl Text_MissedNIL 56 | mflr r6 57 | 58 | Display: 59 | Message_Display 60 | b Exit 61 | 62 | Text_SuccessfulNIL: 63 | blrl 64 | .string "Successful NIL\nSp Fall Frames: %d" 65 | .align 2 66 | 67 | Text_MissedNIL: 68 | blrl 69 | .string "Missed NIL:\nSp Fall Frames: %d" 70 | .align 2 71 | 72 | Exit: 73 | restoreall 74 | lwz r0, 0x2350 (r3) 75 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Check For ICs Static Function.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80005510 2 | 3 | .include "../../Globals.s" 4 | 5 | .set playerdata, 31 6 | .set player, 30 7 | 8 | backup 9 | 10 | mr r31, r3 11 | 12 | # Get Byte 13 | lbz r3, 0x221F(playerdata) 14 | 15 | # Check If Subchar 16 | rlwinm. r0, r3, 29, 31, 31 17 | beq NoFollower 18 | 19 | # Check If Follower 20 | lbz r3, 0xC(playerdata) # get slot 21 | branchl r12, PlayerBlock_LoadExternalCharID # get external character ID 22 | load r4, 0x803bcde0 # pdLoadCommonData table 23 | mulli r0, r3, 3 # struct length 24 | add r3, r4, r0 # get characters entry 25 | lbz r0, 0x2(r3) # get subchar functionality 26 | cmpwi r0, 0x0 # if not a follower, exit 27 | bne NoFollower 28 | 29 | Follower: 30 | li r3, 0x1 31 | b 0x8 32 | 33 | NoFollower: 34 | li r3, 0x0 35 | 36 | Exit: 37 | restore 38 | blr 39 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Custom Function Blrl + Keep Combo Counter Going For Missed Techs+Getups.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006ab88 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set actionableFlag, 28 10 | .set hitbool, 27 11 | 12 | # Check For Function Pointer 13 | lwz r12, TM_AnimCallback(r31) 14 | cmpwi r12, 0x0 15 | beq SkipFunctionBlrl 16 | mtlr r12 17 | addi r3, r30, 0 18 | blrl 19 | 20 | SkipFunctionBlrl: 21 | ################################# 22 | ## Check To End Combo Progress ## 23 | ################################# 24 | 25 | # Check Hitstun 26 | lbz r0, 0x221C(r31) 27 | rlwinm. r0, r0, 31, 31, 31 28 | bne InjectionExit 29 | # Am I in Missfoot? 30 | lwz r3, 0x10(playerdata) 31 | cmpwi r3, 0xFB 32 | beq InjectionExit 33 | # Am I in Non-IASA Landing? 34 | cmpwi r3, 0x2A 35 | bne SkipIASALandingCheck 36 | lfs f1, 0x0894(playerdata) 37 | lfs f0, 0x01F4(playerdata) 38 | fcmpo cr0, f1, f0 39 | blt InjectionExit 40 | 41 | SkipIASALandingCheck: 42 | # Am I in Missed Tech, Tech Roll, Slow Getup, Or Getup Attack 43 | lwz r0, 0x10(playerdata) 44 | cmpwi r0, 0xB7 45 | blt EndCombo 46 | cmpwi r0, 0xC9 47 | bgt CheckGrab 48 | b InjectionExit 49 | 50 | CheckGrab: 51 | cmpwi r0, 0xDF 52 | blt EndCombo 53 | cmpwi r0, 0xE8 54 | bgt CheckThrow 55 | b InjectionExit 56 | 57 | CheckThrow: 58 | cmpwi r0, 0xEF 59 | blt EndCombo 60 | cmpwi r0, 0xF3 61 | bgt CheckSpecialThrows 62 | b InjectionExit 63 | 64 | CheckSpecialThrows: 65 | cmpwi r0, 0x10A 66 | blt EndCombo 67 | cmpwi r0, 0x130 68 | bgt EndCombo 69 | b InjectionExit 70 | 71 | EndCombo: 72 | lbz r3, 0x000C(r31) 73 | lbz r4, 0x221F(r31) 74 | rlwinm r4, r4, 29, 31, 31 75 | branchl r12, 0x800411c4 76 | 77 | InjectionExit: 78 | lwz r0, 0x0034(sp) 79 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Disregard Projectile Hitboxes w Same Move ID.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800789e0 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # r31 = Projectile Data 6 | # r30 = Victim GObj 7 | 8 | # Check If Same Move ID as Last Hit 9 | lwz r3, 0x2C(r30) 10 | lhz r3, 0x18EC(r3) # Last Move Instance Victim Was Hit By 11 | lhz r4, 0xDA8(r31) # Attacking Player's Current Move Instance 12 | cmpw r3, r4 13 | beq SkipComboIncrement 14 | 15 | b Exit 16 | 17 | SkipComboIncrement: 18 | branch r12, 0x80078a10 19 | 20 | Exit: 21 | lwz r3, 0x0518(r31) 22 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Disregard Throw Hitboxes.asm.bak: -------------------------------------------------------------------------------- 1 | #To be inserted at 80078950 2 | .include "../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | #Original Line 6 | lwz r7, 0x002C (r30) 7 | 8 | #Check if this is a Pummel 9 | lwz r3,0x10(r7) 10 | cmpwi r3,0xD9 11 | beq Exit 12 | 13 | #Allow for Cliff Attacks 14 | cmpwi r3,0x100 15 | beq Exit 16 | cmpwi r3,0x101 17 | beq Exit 18 | 19 | #Check If Attacker Is Grabbable (Attacker is Set Grabbable When the Throw Releases the Victim) 20 | lhz r3,0x1A6A(r7) #Grabbable Flag 21 | cmpwi r3,0x0 22 | bne SkipComboIncrement 23 | 24 | #Check If Attacker Is Throwing, Allow Combo Inc 25 | lwz r3,0x10(r7) 26 | cmpwi r3,0xDB 27 | blt SkipThrowCheck 28 | cmpwi r3,0xDE 29 | bgt SkipThrowCheck 30 | b Exit 31 | SkipThrowCheck: 32 | 33 | #Check If Same Move ID as Last Hit 34 | #lwz r3,0x2C(r31) 35 | #lhz r3,0x18EC(r3) #Last Move Instance Victim Was Hit By 36 | #lhz r4,0x2088(r7) #Attacking Player's Current Move Instance 37 | #cmpw r3,r4 38 | #beq SkipComboIncrement 39 | 40 | b Exit 41 | 42 | SkipComboIncrement: 43 | branch r12,0x8007897c 44 | 45 | Exit: 46 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Interrupting Move with Same Move Gives a Unique ID.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80089610 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | # Check If Move Was Interrupted With the Same Move 6 | lwz r3, 0x10(r26) # New Move 7 | lhz r4, TM_OneASAgo(r26) # Previous Moe 8 | cmpw r3, r4 9 | bne Original 10 | 11 | # Interrupted move with same move, assign unique move ID 12 | branch r12, 0x8008961c 13 | 14 | Original: 15 | lbz r0, 0x2073(r31) 16 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Keep Combo Counter Going For Missed Techs+Getups.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006ab48 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set playerdata, 31 8 | 9 | # Am I in Hitstun? (Ran prior to the injection) 10 | 11 | # Am I in Missfoot? 12 | lwz r3, 0x10(playerdata) 13 | cmpwi r3, 0xFB 14 | beq ContinueCombo 15 | 16 | # Am I in Non-IASA Landing? 17 | cmpwi r3, 0x2A 18 | bne SkipIASALandingCheck 19 | lfs f1, 0x0894(playerdata) 20 | lfs f0, 0x01F4(playerdata) 21 | fcmpo cr0, f1, f0 22 | blt ContinueCombo 23 | 24 | SkipIASALandingCheck: 25 | # Am I in Missed Tech, Tech Roll, Slow Getup, Or Getup Attack 26 | lwz r0, 0x10(playerdata) 27 | cmpwi r0, 0xB7 28 | blt EndCombo 29 | cmpwi r0, 0xC9 30 | bgt CheckGrab 31 | b ContinueCombo 32 | 33 | CheckGrab: 34 | cmpwi r0, 0xDF 35 | blt EndCombo 36 | cmpwi r0, 0xE8 37 | bgt CheckThrow 38 | b ContinueCombo 39 | 40 | CheckThrow: 41 | cmpwi r0, 0xEF 42 | blt EndCombo 43 | cmpwi r0, 0xF3 44 | bgt CheckSpecialThrows 45 | b ContinueCombo 46 | 47 | CheckSpecialThrows: 48 | cmpwi r0, 0x10A 49 | blt EndCombo 50 | cmpwi r0, 0x130 51 | bgt EndCombo 52 | b ContinueCombo 53 | 54 | ContinueCombo: 55 | branch r12, 0x8006ab58 56 | 57 | EndCombo: 58 | lbz r4, 0x221F(r31) 59 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Pummels and Multi-Hits Increment Total Damage But Not Combo Counter.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80040f04 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set playerdata, 31 8 | 9 | # r27 = Attacker Slot 10 | # r28 = Victim Slot 11 | 12 | # r5 = Attacker 13 | # r6 = Victim 14 | 15 | # This injection makes the Pummel Move ID skip the combo count increment. Originally only 5 moves perform this behavior, pummel not being one of them. 16 | 17 | # Get Attacker Pointer 18 | mr r3, r27 19 | branchl r12, PlayerBlock_LoadMainCharDataOffset 20 | lwz r5, 0x2C(r3) 21 | # Get Victim Pointer 22 | mr r3, r28 23 | branchl r12, PlayerBlock_LoadMainCharDataOffset 24 | lwz r6, 0x2C(r3) 25 | 26 | ###################### 27 | ## Check For Pummel ## 28 | ###################### 29 | 30 | cmpwi r30, 0x34 31 | beq NoComboInc 32 | 33 | ################################# 34 | ## Check For Same Move as Last ## 35 | ################################# 36 | 37 | SameMoveCheck: 38 | lhz r3, 0x18EC(r6) # Last Move Instance Victim Was Hit By 39 | lhz r4, 0x2088(r5) # Attacking Player's Current Move Instance 40 | cmpw r3, r4 41 | bne SkipSameMoveCheck 42 | # Check If Its a Throw 43 | cmpwi r30, 0x35 44 | blt NoComboInc 45 | cmpwi r30, 0x38 46 | bgt NoComboInc 47 | # Check If Attacker Is Grabbable (Attacker is Set Grabbable When the Throw Releases the Victim) 48 | lhz r3, 0x1A6A(r5) # Grabbable Flag 49 | cmpwi r3, 0x0 50 | bne NoComboInc 51 | b Original 52 | 53 | SkipSameMoveCheck: 54 | ################################ 55 | ## Check For MidGrab Hitboxes ## 56 | ################################ 57 | 58 | # Allow Cliff Attacks 59 | cmpwi r30, 0x3F 60 | beq Original 61 | cmpwi r30, 0x3E 62 | beq Original 63 | 64 | # Check If Attacker Is Grabbable (Attacker is Set Grabbable When the Throw Releases the Victim) 65 | lhz r3, 0x1A6A(r5) # Grabbable Flag 66 | cmpwi r3, 0x0 67 | bne NoComboInc 68 | 69 | b Original 70 | 71 | NoComboInc: 72 | # Spoof Pummel as Some Other Move that Triggers the Check 73 | li r30, 76 74 | 75 | Original: 76 | addi r3, r28, 0 77 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Skip Original Combo End Check.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8006ab44 2 | b 0x14 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Combo Counter/Better Combo Counter/Throw Hitboxes Update Variable in Playerblock.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800dde68 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set player, 31 7 | .set playerdata, 31 8 | 9 | # Store/Update Last Damage Source For Victim 10 | stw r24, 0x1868(r30) 11 | 12 | Exit: 13 | # Original Line 14 | lwz r0, 0x1988(r30) 15 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Dashback/Grab Out of Tilt Turn.asm.bak: -------------------------------------------------------------------------------- 1 | #To be inserted at 800c9b38 2 | .include "../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity,31 6 | .set playerdata,31 7 | .set player,30 8 | .set text,29 9 | .set textprop,28 10 | .set hitbool,27 11 | 12 | 13 | ########################################################## 14 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 15 | ## Is 0x80 long and is zero'd at the start ## 16 | ## of every VS Match ## 17 | ## Store Text Info here ## 18 | ########################################################## 19 | 20 | backupall 21 | 22 | #Check If Jumped 23 | cmpwi r3,0x0 24 | beq Moonwalk_Exit 25 | 26 | #Check If Dashed Back (Flag at 0x2340) 27 | mr r3,player 28 | mr r4,r20 29 | branchl r12,0x80005518 30 | 31 | Moonwalk_Exit: 32 | restoreall 33 | cmpwi r3,0x0 34 | 35 | cmpwi r20, 0 36 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Dashback/Run Out of Tilt Turn.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800c9b88 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | backupall 20 | 21 | # Ensure NOT Coming From Dash or Crouch 22 | lhz r3, TM_OneASAgo(playerdata) # load last AS 23 | cmpwi r3, 0x14 24 | beq Exit 25 | cmpwi r3, 0x28 26 | beq Exit 27 | 28 | # Check If Dashed Back (Flag at 0x2340) 29 | mr r3, player 30 | lhz r4, 0x894(playerdata) 31 | cmpwi r4, 0x4000 32 | beq 0xC 33 | li r4, 0x0 34 | b 0x8 35 | li r4, 0x1 36 | branchl r12, 0x80005518 37 | 38 | Exit: 39 | restoreall 40 | mr r3, r30 41 | li r4, 0x0 42 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Glide Toss.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800956c0 2 | # Just after determining to start a glide toss in Interrupt_RollCheckForThrow 3 | 4 | .include "../../Globals.s" 5 | .include "../../m-ex/Header.s" 6 | 7 | .set playerdata, 31 8 | .set player, 30 9 | 10 | backupall 11 | 12 | # CHECK IF ENABLED 13 | li r0, OSD.RollAirdodgeInterrupt 14 | lwz r4, MemcardData(r13) 15 | lwz r4, 0x1F24(r4) 16 | li r3, 1 17 | slw r0, r3, r0 18 | and. r0, r0, r4 19 | beq Exit 20 | 21 | # CHECK FOR FOLLOWER 22 | mr r3, playerdata 23 | branchl r12, 0x80005510 24 | cmpwi r3, 0x1 25 | beq Exit 26 | 27 | # DISPLAY OSD 28 | li r3, OSD.RollAirdodgeInterrupt 29 | lbz r4, 0xC(playerdata) 30 | load r5, MSGCOLOR_WHITE 31 | bl Text 32 | mflr r6 33 | lhz r7, TM_FramesinCurrentAS(playerdata) 34 | Message_Display 35 | 36 | b Exit 37 | 38 | Text: 39 | blrl 40 | .string "Glide Toss\nFrame %d" 41 | 42 | Exit: 43 | restoreall 44 | mr r3, r30 45 | 46 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Jump Cancel.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800cb698 2 | .include "../../Globals.s" 3 | 4 | .set playerdata, 31 5 | .set player, 30 6 | 7 | backup 8 | mr player, r31 9 | lwz playerdata, 0x2c(player) 10 | 11 | # Check For Not JumpSqaut 12 | lwz r3, 0x10(playerdata) 13 | cmpwi r3, 0x18 14 | beq Exit 15 | 16 | # CHECK IF ENABLED 17 | li r0, OSD.ActOoJumpSquat # OSD Menu ID 18 | # lwz r4, -0xdbc(rtoc) #get frame data toggle bits 19 | lwz r4, MemcardData(r13) 20 | lwz r4, 0x1F24(r4) 21 | li r3, 1 22 | slw r0, r3, r0 23 | and. r0, r0, r4 24 | beq Exit 25 | 26 | CheckForFollower: 27 | mr r3, playerdata 28 | branchl r12, 0x80005510 29 | cmpwi r3, 0x1 30 | beq Exit 31 | 32 | SetColor: 33 | load r5, MSGCOLOR_RED 34 | lhz r3, 0x2408(playerdata) 35 | cmpwi r3, 0x1 36 | bne EndSetColor 37 | load r5, MSGCOLOR_GREEN 38 | EndSetColor: 39 | 40 | li r3, 19 # ID 41 | lbz r4, 0xC(playerdata) # queue 42 | lhz r7, 0x2408(playerdata) 43 | bl Text 44 | mflr r6 45 | Message_Display 46 | 47 | b Exit 48 | 49 | ################### 50 | ## TEXT CONTENTS ## 51 | ################### 52 | 53 | Text: 54 | blrl 55 | .string "Jump Cancel\nFrame %d" 56 | .align 2 57 | 58 | ############################## 59 | 60 | Exit: 61 | restore 62 | lwz r0, 0x0024(sp) 63 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Ledge Codes/Frames Spent in CliffWait.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8009ab78 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set playerdata, 31 6 | .set player, 30 7 | 8 | stw r0, 0x2064(r6) 9 | 10 | backupall 11 | 12 | mr playerdata, r6 13 | 14 | # CHECK IF ENABLED 15 | li r0, OSD.Ledge # PowerShield ID 16 | lwz r4, MemcardData(r13) 17 | lwz r4, 0x1F24(r4) 18 | li r3, 1 19 | slw r0, r3, r0 20 | and. r0, r0, r4 21 | beq Exit 22 | 23 | CheckForFollower: 24 | mr r3, playerdata 25 | branchl r12, 0x80005510 26 | cmpwi r3, 0x1 27 | beq Exit 28 | 29 | # Check if Over 20 Frames 30 | lhz r3, 0x23f8(playerdata) 31 | cmpwi r3, 20 32 | bgt Exit 33 | 34 | SetColor: 35 | load r5, MSGCOLOR_RED 36 | lhz r3, 0x23f8(playerdata) 37 | subi r3, r3, 1 38 | cmpwi r3, 0x1 39 | bne EndSetColor 40 | load r5, MSGCOLOR_GREEN 41 | EndSetColor: 42 | 43 | li r3, 13 # ID 44 | lbz r4, 0xC(playerdata) # queue 45 | lhz r7, 0x23f8(playerdata) 46 | subi r7, r7, 1 47 | bl Text 48 | mflr r6 49 | Message_Display 50 | 51 | b Exit 52 | 53 | ################### 54 | ## TEXT CONTENTS ## 55 | ################### 56 | 57 | Text: 58 | blrl 59 | .string "Frames in\nCliffwait: %d" 60 | .align 2 61 | 62 | ############################## 63 | 64 | Exit: 65 | restoreall 66 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Ledge Codes/GALINT/GALINT Aerail Interrupt.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008d6f4 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | backupall 20 | 21 | # Check For CliffWait 22 | lhz r4, TM_ThreeASAgo (r5) 23 | cmpwi r4, 0xFD 24 | bne Exit 25 | 26 | li r4, 1 27 | branchl r12, 0x80005514 28 | 29 | Exit: 30 | restoreall 31 | branchl r12, 0x800d5bf8 32 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Ledge Codes/GALINT/GALINT Laser Land.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80082c40 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | backupall 20 | 21 | # Search last 5 AS's for CliffWait 22 | li r5, 0x0 23 | lwz r6, 0x2C(28) 24 | 25 | CliffWaitSearch: 26 | mulli r3, r5, 0x2 27 | addi r3, r3, TM_PrevASStart 28 | lhzx r3, r3, r6 29 | cmpwi r3, 0xFD 30 | beq DisplayGALINT 31 | addi r5, r5, 1 32 | cmpwi r5, 5 33 | ble CliffWaitSearch 34 | b Exit 35 | 36 | # Display GALINT 37 | DisplayGALINT: 38 | mr r3, r28 39 | li r4, 0 40 | branchl r12, 0x80005514 41 | 42 | Exit: 43 | restoreall 44 | mr r3, r28 45 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Ledge Codes/GALINT/GALINT Ledgedash.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800d5d5c 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | backupall 20 | 21 | lwz r5, 0x2C(r31) 22 | 23 | # Check If Coming From Airdodge 24 | lhz r3, TM_OneASAgo (r5) 25 | cmpwi r3, 0xEC 26 | bne Exit 27 | # Check For CliffWait 28 | lhz r3, TM_FourASAgo (r5) 29 | cmpwi r3, 0xFD 30 | bne Exit 31 | 32 | mr r3, r31 33 | li r4, 0 34 | branchl r12, 0x80005514 35 | 36 | Exit: 37 | restoreall 38 | mr r3, r31 39 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Ledge Codes/GALINT/GALINT No Impact Land.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80082b4c 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | backupall 20 | 21 | lwz r5, 0x2C(r30) 22 | 23 | # Check For CliffWait 24 | lhz r3, TM_TwoASAgo (r5) 25 | cmpwi r3, 0xFD 26 | bne Exit 27 | 28 | mr r3, r30 29 | li r4, 0 30 | branchl r12, 0x80005514 31 | 32 | Exit: 33 | restoreall 34 | mr r3, r30 35 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Ledge Codes/GALINT/Standalaone - GALINT Display.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80005514 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set playerdata, 31 6 | .set player, 30 7 | .set REG_isAerialInterrupt, 28 8 | .set REG_GALINT, 27 9 | 10 | backupall 11 | 12 | mr player, r3 13 | lwz playerdata, 0x2c(player) 14 | mr REG_isAerialInterrupt, r4 15 | 16 | # CHECK IF ENABLED 17 | li r0, OSD.Ledge # PowerShield ID 18 | lwz r4, MemcardData(r13) 19 | lwz r4, 0x1F24(r4) 20 | li r3, 1 21 | slw r0, r3, r0 22 | and. r0, r0, r4 23 | beq Exit 24 | 25 | CheckForFollower: 26 | mr r3, playerdata 27 | branchl r12, 0x80005510 28 | cmpwi r3, 0x1 29 | beq Exit 30 | 31 | # Check if Over 20 Frames past GALINT 32 | lhz r3, TM_TangibleFrameCount(playerdata) 33 | cmpwi r3, 20 34 | bgt Exit 35 | 36 | # Get GALINT Frames (Ledge Intang - Landing Lag) 37 | lwz REG_GALINT, 0x1990(playerdata) 38 | cmpwi REG_isAerialInterrupt, 0 39 | beq SkipAI 40 | lfs f1, 0x1F4(playerdata) 41 | fctiwz f1, f1 42 | stfd f1, 0x80(sp) 43 | lwz r3, 0x84(sp) 44 | sub REG_GALINT, REG_GALINT, r3 45 | SkipAI: 46 | 47 | SetColor: 48 | load r5, MSGCOLOR_RED 49 | lhz r7, TM_TangibleFrameCount(playerdata) 50 | neg r7, r7 51 | cmpwi REG_GALINT, 0x0 52 | ble EndSetColor 53 | load r5, MSGCOLOR_GREEN 54 | mr r7, REG_GALINT 55 | EndSetColor: 56 | 57 | li r3, 19 # ID 58 | lbz r4, 0xC(playerdata) # queue 59 | bl Text 60 | mflr r6 61 | Message_Display 62 | 63 | b Exit 64 | 65 | ################### 66 | ## TEXT CONTENTS ## 67 | ################### 68 | 69 | Text: 70 | blrl 71 | .string "GALINT\nFrames: %d" 72 | .align 2 73 | 74 | ############################## 75 | 76 | Exit: 77 | restoreall 78 | blr 79 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Ledge Codes/Ledgestall/Ledgestall Display.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 800814ec 2 | .include "../../../../Globals.s" 3 | .include "../../../../m-ex/Header.s" 4 | 5 | .set playerdata, 31 6 | .set player, 30 7 | 8 | ########################################################## 9 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 10 | ## Is 0x80 long and is zero'd at the start ## 11 | ## of every VS Match ## 12 | ## Store Text Info here ## 13 | ########################################################## 14 | 15 | backupall 16 | 17 | lwz playerdata, 0x2c(player) 18 | 19 | # CHECK IF ENABLED 20 | li r0, OSD.Ledge # Ledge Codes ID 21 | # lwz r4, -0xdbc(rtoc) #get frame data toggle bits 22 | lwz r4, MemcardData(r13) 23 | lwz r4, 0x1F24(r4) 24 | li r3, 1 25 | slw r0, r3, r0 26 | and. r0, r0, r4 27 | beq Exit 28 | 29 | CheckForFollower: 30 | mr r3, playerdata 31 | branchl r12, 0x80005510 32 | cmpwi r3, 0x1 33 | beq Exit 34 | 35 | # Check If Under 15 Frames 36 | lhz r3, 0x2416(playerdata) 37 | subi r3, r3, 1 38 | cmpwi r3, 15 39 | bgt Exit 40 | 41 | SetColor: 42 | load r5, MSGCOLOR_RED 43 | bl TextVulnerable 44 | mflr r6 45 | 46 | lhz r3, 0x2416(playerdata) 47 | subi r3, r3, 1 48 | cmpwi r3, 0 49 | bgt EndSetColor 50 | 51 | load r5, MSGCOLOR_GREEN 52 | bl TextPerfect 53 | mflr r6 54 | EndSetColor: 55 | 56 | li r3, 19 # ID 57 | lbz r4, 0xC(playerdata) # queue 58 | lhz r7, 0x2416(playerdata) 59 | subi r7, r7, 1 60 | Message_Display 61 | 62 | b Exit 63 | 64 | ################### 65 | ## TEXT CONTENTS ## 66 | ################### 67 | 68 | TextVulnerable: 69 | blrl 70 | .string "Ledgestall\nVulnerable: %d" 71 | .align 2 72 | 73 | TextPerfect: 74 | blrl 75 | .string "Ledgestall\nPerfect" 76 | .align 2 77 | 78 | ############################## 79 | 80 | Exit: 81 | restoreall 82 | lwz r0, 0x0034(sp) 83 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Message Display System/Disable Hiding Score on Pause.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802f33b8 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Message Display System/Disable Showing Score on Unpause.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802f33f0 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/SDI Display/Initialize Total SDI Inputs Variable.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8008f71c 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set entity, 31 6 | .set playerdata, 31 7 | .set player, 30 8 | .set text, 29 9 | .set textprop, 28 10 | .set hitbool, 27 11 | 12 | ########################################################## 13 | ## 804a1f5c -> 804a1fd4 = Static Stock Icon Text Struct ## 14 | ## Is 0x80 long and is zero'd at the start ## 15 | ## of every VS Match ## 16 | ## Store Text Info here ## 17 | ########################################################## 18 | 19 | # Get Victims Data 20 | lwz r6, 0x2C(r31) 21 | # Get Attacker GObj 22 | lwz r5, 0x1868(r6) 23 | # If Pointer doesn't exist, its most likely environmental damage (break the targets walls) 24 | cmpwi r5, 0x0 25 | beq ResetSDICount 26 | # Check if Player 27 | lhz r0, 0(r5) # Entity Type 28 | lwz r5, 0x2C(r5) # Get Attacker Data 29 | cmpwi r0, 4 # Player 30 | beq LastPlayerMove 31 | cmpwi r0, 6 # Item 32 | beq LastItemMove 33 | b exit # If neither, exit 34 | 35 | LastPlayerMove: 36 | # Get current Move Instance from attacker 37 | lhz r4, 0x2088(r5) 38 | b GetLastMoveVictimHitBy 39 | 40 | LastItemMove: 41 | # Get current Move Instance from attacker 42 | lhz r4, 0xDA8(r5) 43 | 44 | GetLastMoveVictimHitBy: 45 | # Get last Move Instance Victim was hit by 46 | lhz r3, TM_PreviousMoveInstanceHitBy(r6) 47 | 48 | # If the move instance is 0, was most likely a stage element (corneria lasers) 49 | cmpwi r4, 0 50 | beq ResetSDICount 51 | 52 | # Check If New Hit 53 | cmpw r3, r4 54 | beq exit 55 | 56 | # Reset SDI Counter 57 | ResetSDICount: 58 | li r0, 0x0 59 | sth r0, TM_SuccessfulSDIInputs (r6) 60 | sth r0, TM_TotalSDIInputs (r6) 61 | 62 | exit: 63 | cmpwi r30, 0 64 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Can Disable All Toggles in Custom RSS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80236064 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # CHECK FLAG IN RULES STRUCT 6 | load r3, 0x804a04f0 7 | lbz r0, 0x0011(r3) 8 | cmpwi r0, 0x2 9 | blt original 10 | 11 | # REMOVE CUSTOM TEXT 12 | li r0, 0 13 | b exit 14 | 15 | original: 16 | li r0, 1 17 | 18 | exit: 19 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Disable Save to Bitfield Every Change.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 802360e0 2 | nop 3 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Load Random Stage Select On L Press.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8022f578 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | rlwinm. r0, r3, 0, 25, 25 # CHECK FOR L 6 | beq exit 7 | 8 | # PLAY SFX 9 | li r3, 1 10 | branchl r4, SFX_MenuCommonSound 11 | 12 | # SET FLAG IN RULES STRUCT 13 | li r0, 2 # 2 = frame data toggle 14 | load r3, 0x804a04f0 15 | stb r0, 0x0011(r3) 16 | 17 | # SET SOMETHING 18 | li r0, 5 19 | sth r0, -0x4AD8(r13) 20 | 21 | # LOAD RSS 22 | branchl r3, 0x80237410 23 | 24 | # REMOVE CURRENT THINK FUNCTION 25 | mr r3, r29 26 | branchl r4, GObj_Destroy 27 | 28 | branch r3, 0x8022fb68 29 | 30 | # branch r3, 0x8022f5f4 31 | 32 | exit: 33 | rlwinm. r0, r3, 0, 22, 22 34 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Load Toggles When Loaded With L .asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80236e00 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # CHECK FLAG IN RULES STRUCT 6 | load r4, 0x804a04f0 7 | lbz r0, 0x0011(r4) 8 | cmpwi r0, 0x2 9 | blt original 10 | 11 | # CUSTOM CODE 12 | rlwinm r0, r3, 0, 16, 31 13 | # lwz r4, -0xdbc(rtoc) #get frame data toggle bits 14 | lwz r4, MemcardData(r13) 15 | lwz r4, 0x1F24(r4) 16 | 17 | li r3, 1 18 | slw r0, r3, r0 19 | and. r0, r0, r4 20 | beq Off 21 | 22 | On: 23 | li r3, 0x1 24 | b exit 25 | 26 | Off: 27 | li r3, 0x0 28 | b exit 29 | 30 | original: 31 | branchl r4, 0x80164250 32 | 33 | exit: 34 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Remove Press L for OSD Indicator.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80230974 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | .set text, 31 6 | .set textproperties, 30 7 | 8 | Original: 9 | stw r0, 0x0130(r31) 10 | 11 | # Get Pointer 12 | lwz r3, -0x4EB4(r13) 13 | cmpwi r3, 0 14 | beq Exit 15 | # Remove Text 16 | branchl r12, Text_RemoveText 17 | 18 | Exit: 19 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Remove Text When Leaving Custom RSS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80236bbc 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # CHECK FLAG IN RULES STRUCT 6 | load r3, 0x804a04f0 7 | lbz r0, 0x0011(r3) 8 | cmpwi r0, 0x2 9 | blt original 10 | 11 | # REMOVE CUSTOM TEXT 12 | lwz r3, 0x40(r31) # GET TEXT POINTER 13 | branchl r12, Text_RemoveText # REMOVE TEXT 14 | 15 | lwz r3, 0x44(r31) # GET TEXT POINTER 16 | branchl r12, Text_RemoveText # REMOVE TEXT 17 | 18 | branch r12, 0x80236be0 # EXIT 19 | 20 | original: 21 | li r25, 0 22 | 23 | exit: 24 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Return to Event Screen When Pressing Start.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80236128 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # CHECK FLAG IN RULES STRUCT 6 | lbz r3, 0x0011(r31) 7 | cmpwi r3, 0x3 8 | bne original 9 | 10 | LoadEvents: 11 | mr r3, r27 12 | branchl r12, GObj_Destroy 13 | lwz r3, MemcardData(r13) 14 | lbz r3, 0x0535(r3) # Get Last Event Match 15 | li r4, 1 # No Delay On Text Loading 16 | branchl r12, 0x8024e838 17 | branch r12, 0x80236164 18 | 19 | original: 20 | li r3, 2 21 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Return to First Page When Loaded With L.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80235fe4 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # CHECK FLAG IN RULES STRUCT 6 | load r3, 0x804a04f0 7 | lbz r0, 0x0011(r3) 8 | cmpwi r0, 0x2 9 | blt original 10 | 11 | # DETERMINE WHERE TO RETURN 12 | cmpwi r0, 0x2 13 | beq LoadRulesFirstPage 14 | cmpwi r0, 0x3 15 | beq LoadEvents 16 | 17 | LoadRulesFirstPage: 18 | branchl r12, 0x8023164c 19 | b exit 20 | 21 | LoadEvents: 22 | lwz r3, MemcardData(r13) 23 | lbz r3, 0x0535(r3) # Get Last Event Match 24 | li r4, 1 # No Delay On Text Loading 25 | branchl r12, 0x8024e838 26 | b exit 27 | 28 | original: 29 | branchl r12, 0x802339fc 30 | 31 | exit: 32 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Save Toggles When Loaded With L.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80235994 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # CHECK FLAG IN RULES STRUCT 6 | load r5, 0x804a04f0 7 | lbz r0, 0x0011(r5) 8 | cmpwi r0, 0x2 9 | blt original 10 | 11 | # CUSTOM CODE 12 | rlwinm r0, r3, 0, 24, 31 # put menu selection in r0 13 | # lwz r5, -0xdbc(rtoc) #get frame data toggle bits 14 | lwz r6, MemcardData(r13) 15 | lwz r5, 0x1F24(r6) 16 | rlwinm. r4, r4, 0, 24, 31 # check if turning on or off 17 | 18 | beq turnOff 19 | 20 | turnOn: 21 | li r4, 1 22 | slw r0, r4, r0 23 | or r0, r5, r0 24 | stw r0, 0x1F24(r6) 25 | # stw r0, -0xdbc(rtoc) #store frame data toggle bits 26 | b exit 27 | 28 | turnOff: 29 | li r4, 1 30 | slw r0, r4, r0 31 | andc r0, r5, r0 32 | stw r0, 0x1F24(r6) 33 | # stw r0, -0xdbc(rtoc) #store frame data toggle bits 34 | b exit 35 | 36 | original: 37 | branchl r5, 0x801641e4 38 | 39 | exit: 40 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Toggle UI/Set Flag on Leaving Custom RSS.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80235fcc 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # CHECK FLAG IN RULES STRUCT 6 | lbz r0, 0x0011(r31) 7 | cmpwi r0, 0x2 8 | bge exit 9 | 10 | original: 11 | stb r30, 0x0011(r31) 12 | 13 | exit: 14 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Wavedash Display/Save Airdodge Y Angle.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 80099b74 2 | .include "../../../Globals.s" 3 | .include "../../../m-ex/Header.s" 4 | 5 | # Get Airdodge Angle 6 | mr r3, r31 7 | branchl r12, Joystick_Angle_Retrieve 8 | stfs f1, TM_AirdodgeAngle(r31) 9 | 10 | lwz r3, 0x10(r31) 11 | cmpwi r3, ASID_JumpF 12 | beq GetHopType 13 | cmpwi r3, ASID_JumpB 14 | beq GetHopType 15 | 16 | InvalidHopType: 17 | li r3, 2 18 | stw r3, TM_ShortOrFullHop(r31) 19 | b Exit 20 | 21 | GetHopType: 22 | # Get Hop Type 23 | # read state_var1, which is 0 for fullhop and 1 for shorthop 24 | lwz r3, 0x2340(r31) 25 | stw r3, TM_ShortOrFullHop(r31) 26 | 27 | Exit: 28 | addi r3, r29, 0 29 | -------------------------------------------------------------------------------- /ASM/training-mode/Onscreen Display/Yoshi Egg Toss.asm: -------------------------------------------------------------------------------- 1 | # To be inserted at 8012e208 2 | # Inserted right after call to Projectile_YoshiEggThrow_CalculateAngle 3 | # f6 is angle, f3 is press duration, r31 is fighter data 4 | 5 | .include "../../Globals.s" 6 | .include "../../m-ex/Header.s" 7 | 8 | backupall 9 | 10 | # ensure enabled 11 | li r0, OSD.FighterSpecificTech 12 | lwz r4, MemcardData(r13) 13 | lwz r4, 0x1F24(r4) 14 | li r3, 1 15 | slw r0, r3, r0 16 | and. r0, r0, r4 17 | beq Exit 18 | 19 | bl Data 20 | mflr r3 21 | 22 | # mirror if facing left: angle = pi-angle 23 | lfs f2, 0x2C(r31) # facing direction 24 | fsubs f1, f1, f1 # zero f1 25 | fcmpo cr0, f2, f1 26 | bgt SkipMirrorAngle 27 | 28 | lfs f1, 0x4(r3) 29 | fsubs f6, f1, f6 30 | 31 | SkipMirrorAngle: 32 | lfs f1, 0x0(r3) 33 | fdivs f1, f6, f1 34 | fmr f2, f3 35 | 36 | li r3, OSD.FighterSpecificTech 37 | lbz r4, 0xC(r31) 38 | bl Message 39 | mflr r6 40 | li r5, MSGCOLOR_WHITE 41 | 42 | Message_Display 43 | b Exit 44 | 45 | Data: 46 | blrl 47 | .float 0.0174533 # radians / degrees ratio 48 | .float 3.1415926 # pi 49 | 50 | Message: 51 | blrl 52 | .string "Egg Toss\nAngle: %.0f\nStrength: %.0f" 53 | .align 2 54 | 55 | Exit: 56 | restoreall 57 | lwz r3, 0x2344 (r31) 58 | -------------------------------------------------------------------------------- /Additional ISO Files/opening.bnr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Additional ISO Files/opening.bnr -------------------------------------------------------------------------------- /Build TM Codeset/codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "settings": { 3 | "areIncludesRelativeFromFile": true 4 | }, 5 | "outputFiles": 6 | [ 7 | { 8 | "file": "../Additional ISO Files/codes.gct" 9 | } 10 | ], 11 | "codes": [ 12 | { 13 | "name": "Training Mode Codset", 14 | "authors": [ 15 | "UnclePunch" 16 | ], 17 | "description": [ 18 | "Complete TM Codeset" 19 | ], 20 | "build": [ 21 | { 22 | "type": "injectFolder", 23 | "sourceFolder": "../ASM", 24 | "isRecursive": true 25 | } 26 | ] 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /Build TM Codeset/gecko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Build TM Codeset/gecko -------------------------------------------------------------------------------- /Build TM Codeset/gecko.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Build TM Codeset/gecko.exe -------------------------------------------------------------------------------- /Build TM Codeset/powerpc-gekko-as.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Build TM Codeset/powerpc-gekko-as.exe -------------------------------------------------------------------------------- /Build TM Start.dol/patch.xdelta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Build TM Start.dol/patch.xdelta -------------------------------------------------------------------------------- /Build TM Start.dol/patch_jp.xdelta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Build TM Start.dol/patch_jp.xdelta -------------------------------------------------------------------------------- /Build TM Start.dol/xdelta.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Build TM Start.dol/xdelta.exe -------------------------------------------------------------------------------- /Logos/Training-Mode-banner-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Logos/Training-Mode-banner-small.png -------------------------------------------------------------------------------- /Logos/Training-Mode-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Logos/Training-Mode-banner.png -------------------------------------------------------------------------------- /Logos/Training-Mode-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/Logos/Training-Mode-large.png -------------------------------------------------------------------------------- /MexTK/HSDRaw.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/MexTK/HSDRaw.dll -------------------------------------------------------------------------------- /MexTK/MexTK.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/MexTK/MexTK.exe -------------------------------------------------------------------------------- /MexTK/MexTK.exe.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /MexTK/cssFunction.txt: -------------------------------------------------------------------------------- 1 | OnCSSLoad -------------------------------------------------------------------------------- /MexTK/evFunction.txt: -------------------------------------------------------------------------------- 1 | Event_Init 2 | Event_Update 3 | Event_Think 4 | Event_Menu -------------------------------------------------------------------------------- /MexTK/ftFunction.txt: -------------------------------------------------------------------------------- 1 | onload 2 | ondeath 3 | onunknown 4 | move_logic 5 | specialn 6 | specialairn 7 | specials 8 | specialairs 9 | specialhi 10 | specialairhi 11 | speciallw 12 | specialairlw 13 | onabsorb 14 | onitempickup 15 | onmakeiteminvisible 16 | onmakeitemvisible 17 | onitemdrop 18 | onitemcatch 19 | onunknownitemrelated 20 | onunknowncharactermodelflags1 21 | onunknowncharactermodelflags2 22 | onhit 23 | onunknowneyetexturerelated 24 | onframe 25 | onactionstatechange 26 | onrespawn 27 | onmodelrender 28 | onshadowrender 29 | onunknownmultijump 30 | onactionstatechangewhileeyetextureischanged 31 | ontwoentrytable 32 | enterfloat 33 | enterdoublejump 34 | entertether 35 | onlanding 36 | onsmashf 37 | onsmashhi 38 | onsmashlw -------------------------------------------------------------------------------- /MexTK/grFunction.txt: -------------------------------------------------------------------------------- 1 | null_1 2 | map_gobjs 3 | null_2 4 | oninit 5 | onunk1 6 | onload 7 | ongo 8 | onunk2 9 | onTouchLine 10 | onunk4 11 | -------------------------------------------------------------------------------- /MexTK/include/1p.h: -------------------------------------------------------------------------------- 1 | #ifndef MEX_H_1P 2 | #define MEX_H_1P 3 | 4 | #include "structs.h" 5 | #include "datatypes.h" 6 | 7 | struct ClassicLineupDesc 8 | { 9 | s16 stage_index; // 0x0 10 | s8 ckind[5]; // 0x2, read @ 801b2bf0 11 | }; 12 | 13 | struct ClassicLineup // array of these @ 14 | { 15 | u8 index; // 0x0, 13 is terminator @ 801b2c8c 16 | u8 flags; // 0x1, 0x08 corresponds to array1, 0x02 corresponds to array2, and 0x01 corresponds to array3, 0 corresponds to array4, 0x80 will refer to the below value (x2), 0x20 always uses lineupdesc @ 803ddf88 (looks like master hand) 17 | u8 x2; // 0x2, enum check for flag 0x80, 1 will use lineupdesc @ 804d4318, 2 will use lineupdesc @ 804d4320, 3 will use 804d4328 18 | u16 x4; // 0x4 19 | u16 x6; // 0x6 20 | u8 x8; // 0x8 21 | ClassicLineupDesc *lineupdesc; // 0xc, checked constantly in ClassicMode_DefineStagesAndCharValue 22 | }; 23 | 24 | // variables 25 | static ClassicLineup *stc_clsc_lineup = 0x803ddec8; 26 | static u8 *stc_clsc_shuffledorder1 = 0x80490900; // 9 elements 27 | static u8 *stc_clsc_shuffledorder2 = 0x804908f4; // 10 elements 28 | static u8 *stc_clsc_shuffledorder3 = 0x804908d4; // 27 elements 29 | static u8 *stc_clsc_shuffledorder4 = 0x804908ac; // 38 elements 30 | 31 | // functions 32 | ClassicLineupDesc *ClassicMode_GetNextNonDuplicateLineupDesc(ClassicLineupDesc *lineupdesc, s8 *shuffled_order, ClassicLineup *final_lineup); // finds and returns a ptr to the first lineupdesc without a character that matches p1. checks in the order of shuffled order 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /MexTK/include/datatypes.h: -------------------------------------------------------------------------------- 1 | #ifndef MEX_H_DATATYPES 2 | #define MEX_H_DATATYPES 3 | 4 | #include "structs.h" 5 | #include "offsets.h" 6 | 7 | // Data types 8 | typedef signed char s8; 9 | typedef signed short s16; 10 | typedef signed int s32; 11 | typedef signed long long s64; 12 | typedef unsigned char u8; 13 | typedef unsigned short u16; 14 | typedef unsigned int u32; 15 | typedef unsigned long long u64; 16 | typedef float f32; 17 | typedef double f64; 18 | 19 | // PadGet Types 20 | #define PADGET_MASTER 0 21 | #define PADGET_ENGINE 1 22 | 23 | // Matrix definition 24 | typedef float Mtx[3][4]; 25 | typedef float (*MtxPtr)[4]; 26 | typedef float Mtx44[4][4]; 27 | typedef float (*Mtx44Ptr)[4]; 28 | 29 | // Ghidrish 30 | #define undefined8 long 31 | #define undefined4 int 32 | #define byte char 33 | #define uint unsigned int 34 | 35 | // bool lingo 36 | #define true 1 37 | #define false 0 38 | 39 | // Other Macros 40 | #define RTOC 0x804df9e0 41 | #define RTOC_PTR(offset) *(void **)(RTOC + offset) 42 | #define RTOC_INT(offset) *(int *)(RTOC + offset) 43 | #define R13_PTR(offset) *(void **)(R13 + offset) 44 | #define R13_INT(offset) *(int *)(R13 + offset) 45 | #define R13_U8(offset) *(u8 *)(R13 + offset) 46 | #define R13_FLOAT(offset) *(float *)(R13 + offset) 47 | #define AS_FLOAT(num) *(float *)&num 48 | #define AS_INT(num) *(int *)&num 49 | #define ACCESS_INT(addr) *(int *)(addr) 50 | #define ACCESS_U8(addr) *(u8 *)(addr) 51 | #define ACCESS_PTR(addr) *(void **)(addr) 52 | 53 | /*** Structs ***/ 54 | 55 | struct Vec2 56 | { 57 | float X; 58 | float Y; 59 | }; 60 | 61 | struct Vec3 62 | { 63 | float X; 64 | float Y; 65 | float Z; 66 | }; 67 | 68 | struct Vec4 69 | { 70 | float X; 71 | float Y; 72 | float Z; 73 | float W; 74 | }; 75 | 76 | #endif 77 | -------------------------------------------------------------------------------- /MexTK/include/offsets.h: -------------------------------------------------------------------------------- 1 | #ifndef MEX_H_OFFSETS 2 | #define MEX_H_OFFSETS 3 | 4 | #define R13 0x804db6a0 5 | #define STAGE_CONST -0x4C08 // this is an offset used on dreamland, should be safe to use for custom stages 6 | #define MEMCARD -0x77C0 7 | #define PLCO_SHIELDCOLORS -0x5190 8 | #define PLCO_FTCOMMON -0x514C 9 | #define STAGE 0x8049e6c8 // this is the static stage struct, labelled Stage in this file 10 | #define EVMENU_ASSETS -0x4A08 11 | #define EVENT_VAR -0x4A0C // global pointer to a bunch of event variables 12 | #define COLL_TEST -0x51f4 13 | #define MATCH_HUD 0x804a10c8 14 | #define COBJDESC_MATCHHUD 0x80b52980 15 | #define MATCH_CAM 0x80452c68 16 | #define MATCH 0x8046b6a0 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /MexTK/itFunction.txt: -------------------------------------------------------------------------------- 1 | item_state_table 2 | onspawn 3 | ondestroy 4 | onpickup 5 | ondrop 6 | onthrow 7 | ongivedamage 8 | ontakedamage 9 | onenterair 10 | onreflect 11 | onunk1 12 | onunk2 13 | onhitshieldbounce 14 | onhitshielddeterminedestroy 15 | onunk3 16 | -------------------------------------------------------------------------------- /MexTK/kbFunction.txt: -------------------------------------------------------------------------------- 1 | onkirbyswallow 2 | onkirbyloseability 3 | kirbyspecialn 4 | kirbyspecialairn 5 | onkirbyhurt 6 | initcopyitems 7 | move_logic -------------------------------------------------------------------------------- /MexTK/mex.h: -------------------------------------------------------------------------------- 1 | #ifndef MEX_H 2 | #define MEX_H 3 | 4 | #include "include/structs.h" 5 | #include "include/datatypes.h" 6 | 7 | #include "include/useful.h" 8 | #include "include/gx.h" 9 | #include "include/1p.h" 10 | #include "include/audio.h" 11 | #include "include/dynamics.h" 12 | #include "include/match.h" 13 | #include "include/collision.h" 14 | #include "include/color.h" 15 | #include "include/css.h" 16 | #include "include/devtext.h" 17 | #include "include/effects.h" 18 | #include "include/fighter.h" 19 | #include "include/hsd.h" 20 | #include "include/inline.h" 21 | #include "include/item.h" 22 | #include "include/math.h" 23 | #include "include/memcard.h" 24 | #include "include/mex.h" 25 | #include "include/obj.h" 26 | #include "include/offsets.h" 27 | #include "include/preload.h" 28 | #include "include/scene.h" 29 | #include "include/stage.h" 30 | #include "include/text.h" 31 | 32 | #endif -------------------------------------------------------------------------------- /MexTK/mjFunction.txt: -------------------------------------------------------------------------------- 1 | minor_scene 2 | major_load 3 | major_unload 4 | css_load 5 | sss_load -------------------------------------------------------------------------------- /MexTK/mnFunction.txt: -------------------------------------------------------------------------------- 1 | minor_think 2 | minor_load 3 | minor_unload 4 | -------------------------------------------------------------------------------- /MexTK/tmFunction.txt: -------------------------------------------------------------------------------- 1 | eventPages 2 | GetEventDesc 3 | GetEventName 4 | GetEventDescription 5 | GetPageName 6 | GetPageEventNum 7 | GetTMVersShort 8 | GetTMVersLong 9 | GetTMCompile 10 | GetPageNum 11 | GetCSSType 12 | GetIsSelectStage 13 | GetFighter 14 | GetCPUFighter 15 | GetStage 16 | GetEventFile 17 | GetCSSFile 18 | EventInit 19 | OnSceneChange 20 | OnBoot 21 | OnStartMelee 22 | OnFileLoad 23 | Message_Display 24 | GetScoreType 25 | GetPageEventOffset 26 | GetJumpTableOffset 27 | GetEventCharList -------------------------------------------------------------------------------- /TM-CE/DRAG VANILLA MELEE HERE.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | 4 | REM set directory to location of this file. Needed when drag n dropping across directories. 5 | cd /d %~dp0 6 | 7 | set ISO="%~1" 8 | 9 | if %ISO%=="" ( 10 | echo Please drag a v1.02 NTSC melee iso on top of 'DRAG VANILLA MELEE HERE.bat' 11 | goto end 12 | ) else ( 13 | echo iso: %ISO% 14 | ) 15 | 16 | xdelta3 -f -d -s %ISO% patch.xdelta TM-CE.iso || ( echo ERROR: The ISO is not a valid v1.02 NTSC melee iso & goto end ) 17 | echo TM-CE.iso has been successfully created! 18 | 19 | :end 20 | 21 | REM pause if not run from command line 22 | echo %CMDCMDLINE% | findstr /C:"/c">nul && pause 23 | -------------------------------------------------------------------------------- /TM-CE/build_linux_and_mac.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SCRIPT_DIR=$(dirname "$(readlink -f "$0")") 4 | XDELTA_PATCH_PATH="$SCRIPT_DIR/patch.xdelta" 5 | 6 | if command -v xdelta3 > /dev/null; then 7 | XDELTA_CMD="xdelta3" 8 | elif command -v xdelta > /dev/null; then 9 | XDELTA_CMD="xdelta" 10 | else 11 | echo "ERROR: xdelta is not installed. Please install xdelta or xdelta3 through your package manager." 12 | exit 1 13 | fi 14 | 15 | if [[ -z "${1}" ]]; then 16 | echo "ERROR: ISO was not passed" 17 | exit 1 18 | fi 19 | 20 | if [[ ! -f "${1}" ]]; then 21 | echo "ERROR: ISO '${1}' is not a valid file" 22 | exit 1 23 | fi 24 | 25 | if ! ${XDELTA_CMD} -f -d -s "${1}" "${XDELTA_PATCH_PATH}" TM-CE.iso; then 26 | echo "ERROR: The ISO '${1}' is not a valid v1.02 NTSC melee iso" 27 | exit 1 28 | fi 29 | 30 | echo "############ TM-CE.iso has been successfully created ######################" 31 | 32 | if [[ ! -t 0 ]]; then 33 | echo "Press Enter to continue..." 34 | read -r 35 | fi 36 | -------------------------------------------------------------------------------- /TM-CE/xdelta3.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/TM-CE/xdelta3.exe -------------------------------------------------------------------------------- /dats/eventMenu.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/dats/eventMenu.dat -------------------------------------------------------------------------------- /dats/lab.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/dats/lab.dat -------------------------------------------------------------------------------- /dats/labCSS.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/dats/labCSS.dat -------------------------------------------------------------------------------- /dats/lcancel.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/dats/lcancel.dat -------------------------------------------------------------------------------- /dats/ledgedash.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/dats/ledgedash.dat -------------------------------------------------------------------------------- /dats/wavedash.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/dats/wavedash.dat -------------------------------------------------------------------------------- /gc_fst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/gc_fst -------------------------------------------------------------------------------- /gc_fst.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexanderHarrison/TrainingMode-CommunityEdition/12fa0745a08eff2a8d5f57b3fb3fae4cb4e74f69/gc_fst.exe --------------------------------------------------------------------------------