Completed Transformation Subaction Event v1.0

Joined
Nov 9, 2014
Messages
645
#1
How to Use:
Syntax Format:
A5XXYYYY


A5 = subaction event ID, used to indicate a transformation
XX = frame to start transformed characters action state on. (Use this for when both characters transform with the same action state. Start them at a frame after the transform event already happened so they do not transform back)
YYYY = action state ID for the transformed character to enter. (list here, special moves not included)


Example:


This event transforms the character and enters the transformed character into frame 0 of Wait.

Feel free to get creative with your transformations.


Important:
You must edit your .dol to get the additional character to load. The character table, dubbed pdLoadCommonData, exists in the dol @ offset 0x3b9de0. Each entry is 0x3 bytes long and is indexed by external character ID. For convenience's sake, I've labelled where every characters entry is.

Character Entry Data Offsets
Code:
    0x0 = main character internal ID

    0x1 = subcharacter internal ID
    0x2 = transform flag (0x0 = no, 0x1 = yes)
Character Entry Offsets
Code:
3b9de0 - Captain Falcon
3b9de3 - DK
3b9de6 - Fox
3b9de9 - GaW
3b9dec - Kirby
3b9def - Bowser
3b9df2 - Link
3b9df5 - Luigi
3b9df8 - Mario
3b9dfb - Marth
3b9dfe - Mewtwo
3b9e01 - Ness
3b9e04 - Peach
3b9e07 - Pikachu
3b9e0a - ICs
3b9e0d - Jigglypuff
3b9e10 - Samus
3b9e13 - Yoshi
3b9e16 - Zelda
3b9e19 - Sheik
3b9e1c - Falco
3b9e1f - Young Link
3b9e22 - Dr Mario
3b9e25 - Roy
3b9e28 - Pichu
3b9e2b - Ganondorf
3b9e2e - Master Hand
3b9e31 - Wireframe Male
3b9e34 - Wireframe Female
3b9e37 - Giga Bowser
3b9e3a - Crazy Hand
3b9e3d - Sandbag
3b9e40 - Popo
Code:
Character Internal IDs

0x00   // Mario
0x01   // Fox
0x02   // Captain Falcon
0x03   // Donkey Kong
0x04   // Kirby
0x05   // Bowser
0x06   // Link
0x07   // Sheik
0x08   // Ness
0x09   // Peach
0x0A   // Popo
0x0B   // Nana
0x0C   // Pikachu
0x0D   // Samus
0x0E   // Yoshi
0x0F   // Jigglypuff
0x10   // Mewtwo
0x11   // Luigi
0x12   // Marth
0x13   // Zelda
0x14   // Young Link
0x15   // Dr. Mario
0x16   // Falco
0x17   // Pichu
0x18   // Mr. Game & Watch
0x19   // Ganondorf
0x1A   // Roy
0x1B   // Master Hand
0x1C   // Crazy Hand
0x1D   // Wireframe Male (Boy)
0x1E   // Wireframe Female (Girl)
0x1F   // Giga Bowser
0x20   // Sandbag

e.g: If I wanted to make Marth's subcharacter Roy, i would got to dol offset 0x3b9dfb, and from here change:

0x3b9dfb = Stays the same (Marth's internal ID)
0x3b9dfb = Change 0xFF to 0x1A (Roy's internal ID)
0x3b9dfc = Change 0x00 to 0x01 (tells the game to have this character ready to sub in)

I would then do the same for Roy, so selecting Roy would have Marth ready to transform into as well.
Code:
$Transform Subaction Event v1.0 [UnclePunch]
C202797C 00000011
7C671B78 2C030021
41820070 3CA0803B
60A5CDE0 1C630003
7CA51A14 88650001
2C0300FF 41820054
48000029 7C8802A6
7C6320AE 3DC08002
61CE6E84 7DC903A6
4E800421 7FFF1B78
7FDE2378 4800002C
4E800021 08020001
04050613 0B0C2020
0D10110F 0A070912
15161418 0319171A
1E1B1C1D 1F000000
7CE33B78 54602036
60000000 00000000
040273f0 48000020
C2168BC0 0000000C
9421FFBC BE810008
7C0802A6 90010040
4800002D 7CC802A6
7C6430AE 80010040
7C0803A6 BA810008
38210044 3DC08016
61CE8BCC 7DC903A6
4E800420 4E800021
08020001 040506FF
0B0C1A1A 0D10110F
0A0709FF 14151317
03180000 00000000
C22F6318 00000004
7FE3FB78 3DC08003
61CE6394 7DC903A6
4E800421 7C641B78
387C0000 00000000
C20727C8 0000002C
80A40008 88C50000
2C0600A5 40820148
9421FFBC BE810008
7C0802A6 90010040
7C9D2378 7CBE2B78
83E3002C 887F000C
38800001 3DC08003
61CE418C 7DC903A6
4E800421 2C030000
418200EC 8063002C
889E0001 98832354
A09E0002 B0832355
48000011 7C8802A6
909F21BC 480000C8
4E800021 9421FFBC
BE810008 7C0802A6
90010040 7C7F1B78
83DF002C 38000000
901E21BC 4800001D
7C8802A6 3DC08007
61CEEFC8 7DC903A6
4E800421 48000074
4E800021 9421FFBC
BE810008 7C0802A6
90010040 83E3002C
889F2354 3821FFD0
C8628B90 D8610010
B0810016 C8210010
EC211828 38210030
A09F2355 38A00800
38C00000 C04298F4
C06295C8 3DC08006
61CE93AC 7DC903A6
4E800421 80010040
7C0803A6 BA810008
38210044 4E800020
80010040 7C0803A6
BA810008 38210044
4E800020 80BD0008
38050004 901D0008
80010040 7C0803A6
BA810008 38210044
4E800020 7C0802A6
60000000 00000000
 
Last edited:

TDRR

Smash Journeyman
Joined
Sep 18, 2017
Messages
252
Location
Venezuela
#6
What are all the character data tables you could find in the DOL? I only found the ones that relate to bonenames and .dat IDs, but unfortunately that's not enough and characters ported over others with this method won't work.
 

TDRR

Smash Journeyman
Joined
Sep 18, 2017
Messages
252
Location
Venezuela
#8
Assuming i understood whatever you were trying to tell me, i just need to change the loaded character ID to the character i want to clone from, right?

I don't think that actually makes sense, though, because if i were to do that i suspect that it would simply load the original character's files which leaves me with a duplicate slot (whose config always mirror that of the original character)

This appears to be the only way, because after searching the DOL for "ft", "ef", "pl" and "data" i only found the same old data tables we already have documented.
 
Joined
Nov 9, 2014
Messages
645
#9
Assuming i understood whatever you were trying to tell me, i just need to change the loaded character ID to the character i want to clone from, right?

I don't think that actually makes sense, though, because if i were to do that i suspect that it would simply load the original character's files which leaves me with a duplicate slot (whose config always mirror that of the original character)

This appears to be the only way, because after searching the DOL for "ft", "ef", "pl" and "data" i only found the same old data tables we already have documented.
oh i thought you were asking where to find the character IDs in the dol to utilize this code. i dont have a list of all the file references but searching the dol should lead you to all of them.
 
Top