Programs Required: Project Smash Attacks! (I used 2.35), OpenSA2 (Possibly)
Project M uses an If statement to determine whether it should use the Doctor Mario effects or the default ones. This is done by comparing a variable called LA-Basic[54] to a scalar which represents the IDs it covers. LA-Basic[54] is a variable that holds the ID of the costume currently in use. For Project M, it compares this to see if it is greater than or equal to 7, which is the ID of the first costume for Doctor Mario. All of the IDs after it are for the various colors of Doctor Mario costumes.
Single Slot Doctor Mario Outfit
The first step is to open FitMario.pac within Project Smash Attacks!. This file holds the information needed for Mario's move set. Next click on the Sub Action tab, then in Sub Action box and type in 57. This will take you to Sub Action 57, which is part of Mario's side smash. Mario's side smash has an electrical effect for Doctor Mario.
Within the code you should see the fourth line, which is "If Compare: LA-Basic[54] >= 7". Double click on this, then go to the Comparison Method and change it from 00000004 to 00000002. This will now check to see if the costume is 7, rather than if the costume is 7 or above.
Go to the GFX Event List for this Sub Action and do the same for the If Comparison here too.
These are the following Sub Actions that need to be changed, and what Event Lists are needed:
- Side Smash - 57 - Main, GFX
- Side Smash - 58 - Main, GFX, SFX
- Side Smash - 5A - Main, GFX, SFX
- Down Taunt - 1C0 - Main, GFX, SFX
- Down Taunt - 1C1 - GFX, SFX
- Neutral Special - 1CE - GFX, SFX
- Neutral Special (Air) - 1CF - GFX
After doing this, Doctor Mario's special side smash, down taunt, and the throwing sound effects will only play for costume 7. However, these Sub Actions can only spawn the fireball/pill, and it has little to no choice in which one it receives. To make the final changes we must use OpenSA2 to find the article's Sub Routines that decide how the projectile looks. Now it would be best to save the FitMario.pac (preferably to a new location or with a new name rather than overriding the default one).
Now we need the offsets for the article's Sub Routines, which describe which models, sounds, etc the projectile itself uses.
These offsets were as following in Project M 3.6b, and even though they are unlikely to change in the foreseeable future I will include how to find them:
0026054
0027774
0026DEC
002631C
If They Have Changed:
Open OpenSA2, and then open FitMario.pac. At the top tabs, click on Articles, then change it to Article 0x1, which only shows Regular in its list of Actions. Now go to Sub Actions, and record the offset from the first line of Main. Then change the Event List to GFX, and record that offset, and then again for SFX. Finally, click on Sub Routines, and find which of the three has this code or coding resembling it:
Code:
Terminate Collisions
If - LA-Basic[29] < 7.00x
Graphic Effect - blablabla
Else
Graphic Effect - blablabla
End If
Terminate Instance
Record this offset.
Now close OpenSA2 and return to PSA. Go to the Sub Routine Tab and search for the offsets in the order listed (or found). For the first, change "If Compare: LA-Basic[29] >= 7" to == 7, same as before.
For the second, do the same, as with the third.
For the last one, change "If Compare: LA-Basic[29] < 7" to != 7 by setting the Comparison method to 00000003.
After all of this, only slot 7 should use the Doctor Mario effects.