• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

The DOL mod topic

SypherPhoenix

Smash Lord
Joined
Feb 12, 2007
Messages
1,563
Location
Fairfax, VA
In an effort to clean up this forum a little bit, this topic will (hopefully) serve as a guide and repository for existing and future DOL mods.


To do any sort of DOL modding yourself, you must at least have a hex editor and GC-Tool at hand. Take one of the DOLs linked below, or extract your own, and open it up in a hex editor. Find the changes you want in this topic, change the hex accordingly, and reinsert the DOL.

Original, unmodified DOL files can be found here.
A generic, 'everything' DOL can be found here. (does not actually include every mod)


Quoth Magus:
In GC-Tool click 'Tools' -> 'Replace DOL' and select the DOL for the version of the game you have. If you don't know which version you have you can do 'Extract DOL' first and then compare the filesize to see which one it matches (they are all different sizes).




Because of the way I'm going to write the mods out, it's going to be impossible to make the list both exhaustive and short. Here's a list of the listed mods; Ctrl+F to search for the ones you want.




Table of Contents

Modfications
C-Stick in 1P Mode​
Debug Menu replaces Tournament Mode​
Normal C-Stick Functionality in Develop Mode​
Taunt Cancelling​
Unlock All Characters & Stages & Random Stage Select​
Debug Menu Default Language​
Modifying Default Settings​
Stage Modifications
Pokémon Stadium - Disable Stage Transformations​
Dreamland 64 - Disable Wind​
Yoshi's Story - Disable Fly Guy Spawns​
Corneria - Disable Arwing Spawns​
Brinstar - Disable Acid​
Fountain of Dreams - Remove Side Platforms​
Green Greens - Disable Whispy Woods (Wind & Apples)​
Peach's Castle - Disable Switches and Banzai Bills​
Character Modifications
Donkey Kong - Giant Punch cannot be lost during Up+B​
Samus - Charge Shot cannot be lost during Up+B​
Mr. Game & Watch - N/B/U-Aerials L-Cancelable, U-Air Lag Bug Fix​








Major credit to Zauron and Magus420 for their contributions. Code developers will be listed. Currently, all code conversions done by either Magus, standardtoaster, or myself.
 

SypherPhoenix

Smash Lord
Joined
Feb 12, 2007
Messages
1,563
Location
Fairfax, VA
Modifications



C-Stick in 1P Mode
-C-Stick functions in 1P modes like it does in VS mode
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x167744 ──── 48000008 -> 60000000 ──── (b 0x08 -> nop)
1.01 ────── 0x167D6C ──── 48000008 -> 60000000 ──── (b 0x08 -> nop)
1.02 ────── 0x168060 ──── 48000008 -> 60000000 ──── (b 0x08 -> nop)
PAL ─────── 0x168A30 ──── 48000008 -> 60000000 ──── (b 0x08 -> nop)




Debug Menu replaces Tournament Mode
-Selecting Tournament Melee in the main menu takes you to the Debug Menu instead
-Selecting Single Button Mode takes you to the Tournament Melee mode instead
[Magus, donny2112, SypherPhoenix] - Concomitant Graphical Mod Here
Version ── DOL Offset ─── Hex to Replace ───── ASM Code
1.00 ─── 0x228F20 ──── 3800001B -> 38000006 ──── (li r0,27 -> li r0,6)
────────── 0x227F2C ──── 3800002C -> 3800001B ──── (li r0,44 -> li r0,27)

1.01 ──── 0x229A90 ──── 3800001B -> 38000006 ──── (li r0,27 -> li r0,6)
──────── 0x228A9C ──── 3800002C -> 3800001B ──── (li r0,44 -> li r0,27)

1.02──── 0x22A218 ──── 3800001B -> 38000006 ──── (li r0,27 -> li r0,6)
──────── 0x229224 ──── 3800002C -> 3800001B ──── (li r0,44 -> li r0,27)

PAL ─── 0x22C084 ──── 3800001E -> 38000006 ──── (li r0,30 -> li r0,6)
──────── 0x22B08C ──── 3800002F -> 3800001E ──── (li r0,74 -> li r0,30)



Normal C-Stick Functionality in Develop Mode
-C-Stick additionally provides Master mode functionality while in Develop Mode
[Magus]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x067918 ──── 800D9368 -> 38000000 ──── (lwz r0,-27800(r13) -> li r0,0)
1.01 ────── 0x067A28 ──── 800D9368 -> 38000000 ──── (lwz r0,-27800(r13) -> li r0,0)
1.02 ────── 0x067A70 ──── 800D9368 -> 38000000 ──── (lwz r0,-27800(r13) -> li r0,0)
PAL ─────── 0x068154 ──── 800D9388 -> 38000000 ──── (lwz r0,-27768(r13) -> li r0,0)




Taunt Cancelling
-Taunting during dash carries momentum
-Taunting can be interrupted by teeter animation
[InternetExplorer]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x0C6CF4 ──── 40820034 -> 40820058 ──── ()
─────────── 0x0DB604 ──── 4BFA5439 -> 4BFA55B5 ──── ()

1.01 ────── 0x0C6E38 ──── 40820034 -> 40820058 ──── ()
─────────── 0x0DB7DC ──── 4BFA5349 -> 4BFA54C5 ──── ()

1.02 ────── 0x0C70AC ──── 40820034 -> 40820058 ──── ()
─────────── 0x0DBA50 ──── 4BFA5295 -> 4BFA5411 ──── ()

PAL ─────── 0x0C7850 ──── 40820034 -> 40820058 ──── ()
─────────── 0x0DC204 ──── 4BFA515D -> 4BFA52D9 ──── ()




Unlock All Characters & Stages & Random Stage Select
-All characters are available (does not save to memory card)
-All stages are available (does not save to memory card)
-Random stage select is available (does not save to memory card)
[standardtoaster]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x160CA0 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
─────────── 0x160894 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
─────────── 0x16F6BC ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)

1.01 ────── 0x161280 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
─────────── 0x160E74 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
─────────── 0x16FE1C ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)

1.02 ────── 0x1614A8 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
─────────── 0x16109C ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
─────────── 0x170160 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)

PAL ───── 0x161E78 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
────── 0x161A6C ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)
────── 0x170B14 ──── A0BF0000 -> 38A007FF ──── (lhz r5,0(r31) -> li r5,2047)




Debug Menu Default Language
[SypherPhoenix]
Version ── DOL Offset ─── Hex to Replace
1.00 ────── 0x3F53CB ─────── 00 -> ??
1.01 ────── 0x3F657B ─────── 00 -> ??
1.02 ────── 0x3F725B ─────── 00 -> ??
PAL ─────── 0x3F8003 ─────── 02 -> ??

Values:
00 - Japanese
01 - US English
02 - UK English (PAL Only)
03 - German (PAL Only)
04 - French (PAL Only)
05 - Italian (PAL Only)
06 - Spanish (PAL Only)




Modifying Default Settings
[Magus, Qual_, SypherPhoenix]
Version ── DOL Offset
1.00 ─ 0x3CFB90
1.01 ─ 0x3D0D68
1.02 ─ 0x3D1A48
PAL ──── 0x3D20C0



.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 10 11 12 13 14 15 16 17 18 19
?? ?? AA BB CC DD EE FF GG HH II JJ KK ?? ?? ?? ?? ?? ?? ??
00 34 00 02 03 00 0A 00 00 00 01 00 00 00 08 08 00 00 08 00

20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
?? ?? ?? ?? PP ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? QQ QQ QQ QQ
FF FF FF FF 02 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF

40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
R1 R2 R3 R4 MM SS LL ?? TT TT TT TT ?? ?? ?? ?? ?? ?? ?? ??
01 01 01 01 00 01 00 00 FF FF FF FF 00 00 00 00 00 00 00 02

60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
02 80 01 E0 01 E0 00 28 00 00 02 80 01 E0 00 00 00 00 00 00



Orange is what's read by the game when it's figuring out default settings.
Use the list below along with the corresponding variable (turquoise) to change the default settings.
Some of these have no effect if game data is present on the memory card; it will prefer the saved data.

[collapse=Default Settings Variable List]A (Rules)
00 - Time (Default)
01 - Stock
02 - Coin
03 - Bonus

B (Time Limit)
00 - None
01 - 1 Minute
02 - 2 Minutes (Default)
63 - 99 Minutes

C (Stock)
01 - 1 Stock
03 - 3 Stock (Default)
63 - 99 Stock

D (Handicap)
00 - Off (Default)
01 - Auto
02 - On

E (Damage Ratio)
05 - 0.5
0A - 1.0 (Default)
14 - 2.0

F (Stage Selection)
00 - On (Default)
01 - Random
02 - Ordered
03 - Turns
04 - Loser

G (Stock Match Time Limit)
00 - None (Default)
63 - 99 Minutes

H (Friendly Fire)
00 - Off (Default)
01 - On

I (Pause)
00 - Off
01 - On (Default)

J (Score Display)
00 - Off (Default)
01 - On

K (Self Destructs)
00 - -1 (Default)
01 - 0
02 - -2

P (Item Frequency)
FF - None
00 - Very Low
01 - Low
02 - Medium (Default)
03 - High
04 - Very High
05 - Very Very High (Unselectable)
06 - Extremely High (Unselectable)

Q (Item Toggle)


R (Rumble) - Number Corresponds to Player Slot
00 - Off
01 - On (Default)

M (Sound Balance)
00 - Regular Balance (Default)
64 - Maximum SFX Balance (No Music)
9C - Maximum Music Balance (No SFX)
[collapse="Explanation"]Each tick using the in-game adjustment modify the value by 0x5. All values from 0x9C - 0x64, crossing over 0x00, are acceptable. Values between 0x65 and 0x9B crash the game.[/collapse]

S (Deflicker)
00 - Off
01 - On (Default)

L (Language) - Game Uses System Default Regardless of Value
00 - Japanese
01 - US English
02 - UK English (PAL Only)
03 - German (PAL Only)
04 - French (PAL Only)
05 - Italian (PAL Only)
06 - Spanish (PAL Only)

T (Random Stage Toggle)
FF FF FF FF - All On (Default)
E7 00 00 B0 - Pokémon Stadium, Battlefield, Yoshi's Story, Dreamland 64, Final Destination, Fountain of Dreams
[collapse="Lazy Explanation"]This is a simple on/off toggle, with each bit corresponding to a stage. The first three bits should stay at 1, while the others correspond to the stages in this image, in order from left to right.
[/collapse]
[/collapse]










Stage Modifications



Pokémon Stadium - Disable Stage Transformations
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x1CD158 ──── 48002FA5 -> 60000000 ──── (bl 0x2FA4 -> nop)
1.01 ────── 0x1CDABC ──── 48002FA5 -> 60000000 ──── (bl 0x2FA4 -> nop)
1.02 ────── 0x1CE128 ──── 48003001 -> 60000000 ──── (bl 0x3000 -> nop)
PAL ─────── 0x1CFD4C ──── 48003135 -> 60000000 ──── (bl 0x3134 -> nop)




Dreamland 64 - Disable Wind
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x20CF3C ──── 4800059C -> 60000000 ──── (b 0x59C -> nop)
1.01 ────── 0x20D89C ──── 4800059C -> 60000000 ──── (b 0x59C -> nop)
1.02 ────── 0x20E024 ──── 4800059C -> 60000000 ──── (b 0x59C -> nop)
PAL ─────── 0x20FE8C ──── 4800059C -> 60000000 ──── (b 0x59C -> nop)




Yoshi's Story - Disable Fly Guy Spawns
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x1DEE64 ──── 480000D1 -> 60000000 ──── (bl 0xD0 -> nop)
1.01 ────── 0x1DF7C8 ──── 480000D1 -> 60000000 ──── (bl 0xD0 -> nop)
1.02 ────── 0x1DFF28 ──── 480000D1 -> 60000000 ──── (bl 0xD0 -> nop)
PAL ─────── 0x1E1D58 ──── 480000D1 -> 60000000 ──── (bl 0xD0 -> nop)




Corneria - Disable Arwing Spawns
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x1D95FC ──── 4BFFF3D5 -> 60000000 ──── ()
1.01 ────── 0x1D9F60 ──── 4BFFF3D5 -> 60000000 ──── ()
1.02 ────── 0x1DA628 ──── 4BFFF3D5 -> 60000000 ──── ()
PAL ─────── 0x1DC438 ──── 4BFFF3D5 -> 60000000 ──── ()




Brinstar - Disable Acid
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x1D5594 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)
1.01 ────── 0x1D5EF8 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)
1.02 ────── 0x1D65C0 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)
PAL ─────── 0x1D83D0 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)




Fountain of Dreams - Remove Side Platforms
-Remove (Disable) Side Platforms
-Disable Water Jets
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x1C84C4 ──── 801B0014 -> 4800013C ──── (lwz r0,20(r27) -> b 0x13C)
─────────── 0x1C84BC ──── EC0007FA -> FC000028 ──── (fmadds f0,f0,f31,f0 -> fsub f0,f0,f0)

1.01 ────── 0x1CDABC ──── 801B0014 -> 4800013C ──── (lwz r0,20(r27) -> b 0x13C)
─────────── 0x1C8E20 ──── EC0007FA -> FC000028 ──── (fmadds f0,f0,f31,f0 -> fsub f0,f0,f0)

1.02 ────── 0x1C9494 ──── 801B0014 -> 4800013C ──── (lwz r0,20(r27) -> b 0x13C)
─────────── 0x1C948C ──── EC0007FA -> FC000028 ──── (fmadds f0,f0,f31,f0 -> fsub f0,f0,f0)

PAL ─────── 0x1CB0B8 ──── 801B0014 -> 4800013C ──── (lwz r0,20(r27) -> b 0x13C)
─────────── 0x1CB0B0 ──── EC0007FA -> FC000028 ──── (fmadds f0,f0,f31,f0 -> fsub f0,f0,f0)




Green Greens - Disable Whispy Woods (Wind & Apples)
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x20F538 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)
1.01 ────── 0x210068 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)
1.02 ────── 0x2107F0 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)
PAL ─────── 0x1EB0C8 ──── 7C0802A6 -> 4E800020 ──── (mflr r0 -> blr)




Peach's Castle - Disable Switches and Banzai Bills
[Zauron]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x1C94D8 ──── 48001FA1 -> 4800000C ──── (bl 0x1FA0 -> b 0x0C)
1.01 ────── 0x1C9E3C ──── 48001FA1 -> 4800000C ──── (bl 0x1FA0 -> b 0x0C)
1.02 ────── 0x1CA4A8 ──── 48001FA1 -> 4800000C ──── (bl 0x1FA0 -> b 0x0C)
PAL ─────── 0x1CC0CC ──── 48001FA1 -> 4800000C ──── (bl 0x1FA0 -> b 0x0C)










Character Modifications



Donkey Kong - Giant Punch cannot be lost during Up+B
[VietGeek]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x10C18C ──── 9004222C -> 60000000 ──── (stw r0,8748(r4) -> nop)
1.01 ────── 0x10C470 ──── 9004222C -> 60000000 ──── (stw r0,8748(r4) -> nop)
1.02 ────── 0x10C6E4 ──── 9004222C -> 60000000 ──── (stw r0,8748(r4) -> nop)
PAL ─────── 0x10CE98 ──── 9004222C -> 60000000 ──── (stw r0,8748(r4) -> nop)




Samus - Charge Shot cannot be lost during Up+B
[VietGeek]
Version ── DOL Offset ────── Hex to Replace ───── ASM Code
1.00 ────── 0x125818 ──── 901F2230 -> 60000000 ──── (stw r0,8752(r31) -> nop)
1.01 ────── 0x125BC8 ──── 901F2230 -> 60000000 ──── (stw r0,8752(r31) -> nop)
1.02 ────── 0x125EA4 ──── 901F2230 -> 60000000 ──── (stw r0,8752(r31) -> nop)
PAL ─────── 0x126648 ──── 901F2230 -> 60000000 ──── (stw r0,8752(r31) -> nop)





Mr. Game & Watch - N/B/U-Aerials L-Cancelable, U-Air Lag Bug Fix
[Magus]

NTSC 1.00
Attack ── DOL Offset ────── Hex to Replace ───── ASM Code
N-Air ──── 0x147F98 ──── 3880015E -> 38800041 ──── (li r4,350 --> li r4,65)
────────── 0x147FA4 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x147FA8 ──── C02501F8 -> C0230258 ──── (lfs f1,504(r5) --> lfs f1,600(r3))
────────── 0x147FAC ──── 4BF42095 -> 4BF41F89 ──── (bl 0x8008d460 --> bl 0x8008D354)

B-Air ──── 0x148028 ──── 3880015F -> 38800043 ──── (li r4,351 --> li r4,67)
────────── 0x148034 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x148038 ──── C0250200 -> C0230260 ──── (lfs f1,512(r5) --> lfs f1,608(r3))
────────── 0x14803C ──── 4BF42005 -> 4BF41EF9 ──── (bl 0x8008d460 --> bl 0x8008D354)

U-Air ──── 0x1480B8 ──── 38800160 -> 38800044 ──── (li r4,352 --> li r4,68)
────────── 0x1480C4 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x1480C8 ──── C0250200 -> C0230264 ──── (lfs f1,512(r5) --> lfs f1,612(r3))
────────── 0x1480CC ──── 4BF41F75 -> 4BF41E69 ──── (bl 0x8008d460 --> bl 0x8008D354)



NTSC 1.01
Attack ── DOL Offset ────── Hex to Replace ───── ASM Code
N-Air ──── 0x1483E8 ──── 3880015E -> 38800041 ──── (li r4,350 --> li r4,65)
────────── 0x1483F4 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x1483F8 ──── C02501F8 -> C0230258 ──── (lfs f1,504(r5) --> lfs f1,600(r3))
────────── 0x1473FC ──── 4BF41D2D -> 4BF41C21 ──── (bl 0x8008d460 --> bl 0x8008D354)

B-Air ──── 0x1484D0 ──── 3880015F -> 38800043 ──── (li r4,351 --> li r4,67)
────────── 0x1484DC ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x1484E0 ──── C0250200 -> C0230260 ──── (lfs f1,512(r5) --> lfs f1,608(r3))
────────── 0x1484E4 ──── 4BF41C45 -> 4BF41B39 ──── (bl 0x8008d460 --> bl 0x8008D354)

U-Air ──── 0x1485B8 ──── 38800160 -> 38800044 ──── (li r4,352 --> li r4,68)
────────── 0x1485C4 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x1485C8 ──── C0250200 -> C0230264 ──── (lfs f1,512(r5) --> lfs f1,612(r3))
────────── 0x1485CC ──── 4BF41B5D -> 4BF41A51 ──── (bl 0x8008d460 --> bl 0x8008D354)




NTSC 1.02
Attack ── DOL Offset ────── Hex to Replace ───── ASM Code
N-Air ──── 0x1486DC ──── 3880015E -> 38800041 ──── (li r4,350 --> li r4,65)
────────── 0x1486E8 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x1486EC ──── C02501F8 -> C0230258 ──── (lfs f1,504(r5) --> lfs f1,600(r3))
────────── 0x1486F0 ──── 4BF41BF9 -> 4BF41AED ──── (bl 0x8008d460 --> bl 0x8008D354)

B-Air ──── 0x1487C4 ──── 3880015F -> 38800043 ──── (li r4,351 --> li r4,67)
────────── 0x1487D0 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x1487D4 ──── C0250200 -> C0230260 ──── (lfs f1,512(r5) --> lfs f1,608(r3))
────────── 0x1487D8 ──── 4BF41B11 -> 4BF41A05 ──── (bl 0x8008d460 --> bl 0x8008D354)

U-Air ──── 0x1488AC ──── 38800160 -> 38800044 ──── (li r4,352 --> li r4,68)
────────── 0x1488B8 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x1488BC ──── C0250200 -> C0230264 ──── (lfs f1,512(r5) --> lfs f1,612(r3))
────────── 0x1488C0 ──── 4BF41A29 -> 4BF4191D ──── (bl 0x8008d460 --> bl 0x8008D354)




PAL
Attack ── DOL Offset ────── Hex to Replace ───── ASM Code
N-Air ──── 0x148E80 ──── 3880015E -> 38800041 ──── (li r4,350 --> li r4,65)
────────── 0x148E8C ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x148E90 ──── C02501F8 -> C0230258 ──── (lfs f1,504(r5) --> lfs f1,600(r3))
────────── 0x148E94 ──── 4BF41B0D -> 4BF41A01 ──── (bl 0x8008d460 --> bl 0x8008D354)

B-Air ──── 0x148F68 ──── 3880015F -> 38800043 ──── (li r4,351 --> li r4,67)
────────── 0x148F74 ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x148F78 ──── C0250200 -> C0230260 ──── (lfs f1,512(r5) --> lfs f1,608(r3))
────────── 0x148F7C ──── 4BF41A25 -> 4BF41919 ──── (bl 0x8008d460 --> bl 0x8008D354)

U-Air ──── 0x149050 ──── 38800160 -> 38800044 ──── (li r4,352 --> li r4,68)
────────── 0x14905C ──── 80A3002C -> 90830070 ──── (lwz r5,44(r3) --> stw r4,112(r3))
────────── 0x149060 ──── C0250200 -> C0230264 ──── (lfs f1,512(r5) --> lfs f1,612(r3))
────────── 0x149064 ──── 4BF4193D -> 4BF41831 ──── (bl 0x8008d460 --> bl 0x8008D354)
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Ok, sorry to perpetually bother you SypherPhoenix, but I'm only at C-stick in 1p mode and I've already got problems. In the blank NTSC 1.1 dol that you uploaded, there is no dol offset 0x167D6C, there is only the offset 00167D60. In fact, all the offsets end in 0...I'm so lost.

Also, that 0x at the beginning of each of your dol offsets just means 00 right?

Edit: I got the mod to work by replacing the 00167D60 offset. However, I was not able to do the same with changing the default settings (ie instead of replacing the 0x3D0D68 offset, replacing the 003D0D60 offset).
 

SypherPhoenix

Smash Lord
Joined
Feb 12, 2007
Messages
1,563
Location
Fairfax, VA
omg someone posted in my topic

Your hex editor probably displays 16 bytes per row, which means that all the values to the left/right of these rows end in 0...However, each byte has its own address.



The address 167D6C is at the beginning of the highlighted section in this image...Hopefully now you understand?
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Many thanks, I understand now and changed the default settings. One last thing to bother you about:

How would I know which hex's to replace for some of these other codes by Zauron that you linked here:

[collapse=copypasta from the linked site]
Code:
The Codes

These codes are for US version 1.0 of Super Smash Bros. Melee, simply because that is the version I own. I do not know how to convert them to other versions.
Dual 1v1 Mode:

In my normal Smash group of 4 players, we have limited time and no one wants to wait out matches, yet we prefer 1v1-style fights. This code allows this by letting all 4 players play at once, but each "set" of 1v1 players can't directly interfere with the other fight (beyond things like messing with the camera or edge hogging). Once each pair has a winner, the two winners can battle it out for the overall winner of the match!

The only downside is that you can no longer play team matches with Friendly Fire turned off - but no one worth their salt plays Teams without Friendly Fire turned on anyway.

To use:

   1. Turn Friendly Fire to OFF.
   2. Switch to Team mode and set the team colors so that each set of players that should fight each other are the same color. Players will only be able to hurt other players set to the same team color.
   3. (Optional) Switch Team mode back off so players can switch to whatever costume they want.
   4. Start the match
   5. When the match is over, re-shuffle team colors as desired (this step can be skipped using another code further down!). 

Dual 1v1 mode code:

   1. 7XBM-UEQM-ABZVX
   2. A6CE-M7QR-BFYE0
   3. JQ55-16XM-MJ1QH
   4. V0VW-V6HU-BA5M1
   5. VV4N-V7KU-9KZ0D
   6. JVWV-TCNZ-EBQ0J
   7. 3XUP-9HV3-19VGM
   8. A5EJ-Z01W-QV6AC
   9. GKNJ-R1D0-RN06Q
  10. 0R9K-5803-72TV2
  11. QAW8-Q6HD-GA4BQ
  12. 7QCH-W9J8-AC728
  13. W8G7-QB4W-E2Y79
  14. UZG9-JHF8-7RQBV
  15. 23N4-M3MQ-86ECP
  16. VTWP-83ZW-EXH80
  17. U8WR-KB0Y-ZTV3P
  18. 6UZU-R4FT-8T5PC
  19. 8G9U-HHQQ-HXPUP
  20. GT3X-5BCU-2V8GB
  21. 4HGF-F6KY-UCMYR
  22. 0GJ2-K81G-4ZF8P
  23. 3Z08-2UJG-T6F03
  24. 011B-0E8W-YMFRM
  25. X3BD-K9K4-8UG4E 

The above code has an initially unintended side effect - attacks from the "neutral" faction will not attack any players. This means most stage hazards won't hurt anyone, but also things like mushrooms and power stars. I figured out how to re-enable the "neutral" faction with this alternate version of the above code:

Dual 1v1 mode w/ working "neutral" attacks code:

   1. G7R9-9U9P-QD0F8
   2. A6CE-M7QR-BFYE0
   3. JQ55-16XM-MJ1QH
   4. A5EJ-Z01W-QV6AC
   5. GKNJ-R1D0-RN06Q
   6. QAW8-Q6HD-GA4BQ
   7. 7QCH-W9J8-AC728
   8. W8G7-QB4W-E2Y79
   9. 23N4-M3MQ-86ECP
  10. VTWP-83ZW-EXH80
  11. U8WR-KB0Y-ZTV3P
  12. 6UZU-R4FT-8T5PC
  13. 8G9U-HHQQ-HXPUP
  14. GT3X-5BCU-2V8GB
  15. 4HGF-F6KY-UCMYR
  16. 0GJ2-K81G-4ZF8P
  17. 3Z08-2UJG-T6F03
  18. 011B-0E8W-YMFRM
  19. X3BD-K9K4-8UG4E 

Shuffle teams based on rank:

The Dual 1v1 mode is pretty cool, but having to switch teams around after every match can be tedious. This code gets rid of that step by automating the shuffling of team assignments based on the rankings from the previous match. With it, there is no need to switch to Teams mode at all, unless you just want to check as a reminder of who is fighting whom.

The players that recieved 1st or 2nd place will be set to fight each other for the next match, and the players that got 3rd and 4th place will fight each other. When the game is first booted everyone can fight everyone, so you can treat the first match as a FFA "placements" match that determines the pairings for the first paired-off match.

Of course, even with this code enabled, you can still at any time manually switch to Teams mode and change around the pairings before starting the next match.

Note: In the unlikely event of a tie, this code will not compensate and will still assign directly based on rank. You will want to manually go into Teams mode and fix the color assignments in this case.

Re-shuffle teams by Rank code:

   1. 9C4P-UPXK-6M6HW
   2. KXA2-GHYB-YBXU3
   3. ZK06-1YTD-9H46A
   4. 3CCZ-VRD6-P1A14
   5. 52WJ-9W0E-ANW0A
   6. KKRF-4KAY-DT3FX
   7. A88D-RTXA-B6GF3
   8. 9V4P-CT75-FVM7U
   9. H378-K5Z5-C9YXH
  10. 8W1X-M0N5-PJTDU
  11. TUF3-DFTP-CXVTQ
  12. PA3J-UNHD-NPAG8
  13. BDNM-ETD8-41EQ3
  14. DE05-Z4H6-6DQHG
  15. QF4R-***K-MMDE2
  16. HDX9-U3DM-JBRV6
  17. GGXC-RE77-TTYR2
  18. BYPU-CMM2-81RYF
  19. D82N-CQ7G-DEWRZ
  20. Z639-H6A4-GGTJ2
  21. 1TQB-W6YX-QQWRW
  22. TAHU-FMJF-BVHM2
  23. 83BK-451R-TK4D7
  24. PQ9B-Q9ZB-MRXMC
  25. 3FV1-Z9K0-4PNQ6
  26. 28XW-RBC5-TFCVZ
  27. VHDR-UM94-BT76H
  28. KH5F-385R-AR6YC
  29. GJ24-6AC6-UVZQB
  30. E9FZ-A3QA-YCERP 

Disable some stage features:

Many stages have annoying features that interfere with a straight skill-based fight. Argue fairness as you will, but we would rather not have stages do some of this stuff. This code disables the following stage features:

    * Brinstar: Rising lava
    * Corneria: Attacking ships and Great Fox gun
    * Dreamland 64: Wind
    * Fountain of Dreams: Moving platforms
    * Green Greens: Wind, apples, and falling blocks
    * Peach's Castle: Switches and Bullet Bills
    * Pokemon Stadium: Transformations
    * Yoshi's Story: Shy guys

Disable stage features code:

   1. 12GV-JMV8-Z38E8
   2. PC0M-DD84-KDEN8
   3. 8N46-M6MR-3FF6D
   4. CR16-BE3A-E5ZQT
   5. N0A2-0X7Z-K4QXV
   6. JFY3-RBX4-E6X32
   7. 7KPA-W91E-EM8MJ
   8. K0UD-W4V9-4HGK5
   9. Z04D-ZEZ4-Q7GT5
  10. 69R5-52CR-98W45
  11. 43FJ-MTHU-MDNA4
  12. RHMY-M2YG-QRGD5
  13. 7BRE-D2BT-GPR8A 

C-stick smashes in 1p Mode:

Want to use Training Mode and still have the c-stick do smash attacks instead of moving the camera? Don't we all! Now you can with this code.

C-stick 1p mode code:

   1. T1PY-QR55-E4EWG
   2. GCH0-5WBT-26FY8 



For other hackers

Below are the unencrypted versions of the above codes complete with comments on what each line does, for anyone wanting to further modify the codes or make new ones. The codes were encrypted using GCNCrypt.
Dual 1v1 mode:

'Make sure FF (Friendly Fire) is checked for grabs even with Team mode off
040787D0 60000000
'Make sure FF is checked for melee attacks even with Team mode off
04078A3C 60000000
'Make sure FF is checked for projectile vs projectile even with Team mode off
0426F434 60000000
'Make sure team id's are compared for self-damaging projectiles (Link's bombs)
0426f44c 60000000
0426f458 60000000
0407901C 60000000
'Check Team of Projectile attacks
04078FFC 88770020
'Compare Projectile team to "Neutral"
04079000 2C0300FF
'Skip attacks from "Neutral" team (leave out this line to make "Neutral" attacks work!)
04079004 418207A0
'Swap FF logic for grabs (ONLY grab teammates)
000787EC 00000040
'Swap FF logic for melee attacks (ONLY attack teammates)
00078A7C 00000040
'Swap FF logic for projectiles (ONLY hit teammates)
0007902C 00000040
'Swap FF logic for projectile vs projectile attacks (ONLY hit teammate's projectiles)
'0026F44C 00000040
'Special force jump to custom code stored in memory only used by debug mode
0416b748 4828CDD9
'New code - subtract # of deaths from total # of players
043F8520 7C1FE850
'New code - Set address to store resulting # of living players
043F8524 3FC0803F
'New code - Store # of living players
043F8528 901E7FD0
'New code - Perform original operation that was changed to a code jump
043F852c 381DFFFF
'New code - Return back to original code
043F8530 4E800020
'Check - is FF turned OFF in menus?
48459F51 00000000
'If above is true, turn FF off in the match as well
0046BBA1 00000000
'If above is true, always switch Teams mode off
0046BBA8 00000000
'Is there less than 3 players still alive (checking value set by custom code above)?
2C3F7FD0 00000003
'If above is true, turn temp in-game FF mode ON so last 2 players can kill each other
0046BBA1 00000001
Shuffle teams based on rank:

'This address stores the player number of the last player that died, but at the start of a match it defaults to 6. Here we check if it is 6 to know if a match started.
484696E5 00000006
'If just started a match (last player died == 6), set a value to FF as a marker. This value will get set back to normal when the match ends by normal game code, and is how to know the match ended.
0047E8CD 000000FF
'By the same above check, change the player number of the last player that died to '5' so don't do the above more than once.
004696E5 00000005
'Check - if last player that died is still 6, match must have just started, so don't continue.
904696E5 00000006
'Check - if last player that died is a special tag 'FF', must have already performed the below, so don't continue.
904696E5 000000FF
'Check - if this address is still special tag 'FF' from intial code, match must not have ended yet, so don't continue.
9047E8CD 000000FF
'Check - if Friendly Fire is turned off, not using Dual 1v1 mode anyway, so don't continue.
88459F51 00000000
'Set Player 1 to red team
003EEF76 00000000
0047E861 00000000
'Set player 2 to red team
003EEF9A 00000000
0047E885 00000000
'Set player 3 to red team
003EEFBE 00000000
0047E8A9 00000000
'Set player 4 to red team
003EEFE2 00000000
0047E8CD 00000000
'If player 1's rank is > 2 (3rd or 4th place), set to blue team.
7047A0BD 00000001
003EEF76 00000001
0047E861 00000001
'If player 2's rank is > 2 (3rd or 4th place), set to blue team.
7047A165 00000001
003EEF9A 00000001
0047E885 00000001
'If player 3's rank is > 2 (3rd or 4th place), set to blue team.
7047A20D 00000001
003EEFBE 00000001
0047E8A9 00000001
'If player 4's rank is > 2 (3rd or 4th place), set to blue team.
7047A2B5 00000001
003EEFE2 00000001
0047E8CD 00000001
'Set the last player that died to 'FF' to prevent doing this more than once after match ends. It will get set back to 6 by normal game code at the beginning of the next match.
004696E5 000000FF
'Tag for Action Replay that this is the end of the multi-line if checks above.
00000000 40000000
Disable some stage features:

'Skip functions for creating switches and bullets in Peach's Castle.
041CC8F8 4800000C
'Disable update for rising lava in Brinstar.
041D89B4 4E800020
'Tree AI never decides to blow wind in Dreamland.
0421035C 60000000
'Turn off the moving platforms and the water that holds them up in Fountain of Dreams.
041CB8DC FC000028
041CB8E4 4800013C
'Disable update that spawns ships in Corneria.
041DCA1C 60000000
'Tell the Great Fox's gun to start out dead (so it won't shoot or act as a platform).
041E035C 40800430
'Turn off initial bricks appearing in Green Greens.
04213434 60000000
'Disable update for new bricks falling in Green Greens.
0421586C 60000000
'Disable update for tree (wind and apples) in Green Greens.
04212958 4E800020
'Disable stage transformation timer update in Pokemon Stadium.
041D0578 60000000
'Disable update that spawns shy guys in Yoshi's Story.
041E2284 60000000
C-stick smashes in 1p Mode:

'Always report in VS mode
0416AB64 60000000
Stage hacking tips:

Smash Melee's code keeps a linked list of objects with update functions, which it runs through and calls the update functions every game frame. This list is constantly having objects added to and deleted from it. Each stage adds several objects to the list, and the easiest way to change the stage's behaviour is to tell these functions to not do anything.

Each stage has an initialization function, and while it is possible to find out what function is run for each stage by following a series of several links in memory, the easist way is to put a breakpoint at the address 0x801BFA90, start the stage you want to mess with, and then step once when the breakpoint is hit. This will put you at the start of that stage's initialization function.

During the initialization function several objects will be added to the update list. To find where the update functions are, starting from the initialization function you found, scroll down the code to find the return code (blr) and put a breakpoint there. Next, put a breakpoint at the address 0x8038DF40. This is part of the function that adds new objects to the list.

Now let the code run until that breakpoint is reached. When it is, look at the address in register #28. This is the address of the update function for the object being added. Keep running the code and jot down the addresses in register 28 until you hit the breakpoint at the end of the stage's initialization function. After that, more objects will be added all the time but they are not related to the stage.

There are two global update functions you will see that should be ignored - 0x801C0D00 (which updates animations) and 0x801C0D68 (unknown purpose). The rest are likely specific to that stage. Many of those will be nothing more than a return (blr) though, as an "empty" update, so those can also be ignored.

A quick change just to see what happens is to take those update functions and tell them to just return immediately by using a code like 04XXXXXX 4E800020, where XXXXXX is the last 6 digits of the address of the update function. If that does more than you intended, you may need to step through the update functions and find things to change, often just telling it to skip a branch or something using 60000000.

You can also try to mess with the stage's init function, though I've rarely found this useful. One thing that has been useful to know though is that many objects have init functions of their own, where additional steps are taken. For example, I had to edit the init function for the main stage platform of Green Green's in order to get rid of the initial yellow blocks. You can find these in a similar way to finding the update functions - while in the stage's init function, put a breakpoint at 0x802122F8 and step once to get into the init function of initialized objects for that stage.

Good luck hacking!
[/collapse]

For example I'd really like dual 1v1, have corneria's gun start out dead, and no switches or bullets in peach's castle. It would also be nice to have the unlock all stages and characters code modded in so that I can test all my textures in dolphin.

Edit: NM, I found your post with the corneria gun code and the peach's castle code. It's weird you couldn't get peach's castle to work, as it worked when I used it on my AR. I'll test it in dolphin. Any chance you could do dual 1v1?:awesome:
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
So I saw this post of yours:

I would but the commonly distributed "unlock all characters and stages" code isn't working with dolphin.

The one included in Dolphin:
04459F58 08000000
04459F60 08000000

ARCentral:
04459F58 FFFFFFFF
04459F60 FFFFFFFF

Using SSBM 1.0, if someone can either test these and confirm that they work, or find another one that definitely works, I'll put it in a dol for you guys.
I have a working 1.0 code that unlocks all stages and characters on my AR. The code is:

0FA2-KD7C-4590B
A4BP-APCY-5DFMK

I decrypted that to get:

0008014C 0400BB40
04459F60 FFFFFFFF

Would it be possible to port that into a 1.1 code and tell me what hex's I need to replace?

Edit: Also, my working 1.0 peach's castle code is:

GAC2-WMBN-UPU2U
PC0M-DD84-KDEN8

Which I decrypted to:

000808B6 08000000
041CC8F8 4800000C

Don't know if that helps you or not.
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
I have a working 1.0 code that unlocks all stages and characters on my AR. The code is:

0FA2-KD7C-4590B
A4BP-APCY-5DFMK

I decrypted that to get:

0008014C 0400BB40
04459F60 FFFFFFFF

Would it be possible to port that into a 1.1 code and tell me what hex's I need to replace?
Any news on this? This code would be extremely helpful.
 

SypherPhoenix

Smash Lord
Joined
Feb 12, 2007
Messages
1,563
Location
Fairfax, VA
How would I know which hex's to replace for some of these other codes by Zauron that you linked here:
You'd just have to use Magus' method of searching for the value after finding it in memory with a memory viewer, which should be possible to do using Dolphin. Be aware that a lot of AR codes don't target the DOL.


Would it be possible to port that into a 1.1 code and tell me what hex's I need to replace?
arcentral.net/Codes/NTSC/

The 1.1 code is almost certainly in there somewhere, it's too vanilla not to be.

Edit: Also, my working 1.0 peach's castle code is:

GAC2-WMBN-UPU2U
PC0M-DD84-KDEN8

Which I decrypted to:

000808B6 08000000
041CC8F8 4800000C

Don't know if that helps you or not.
This actually is very helpful, Zauron has the decryption listed incorrectly on his website, which is why it wasn't working. I'll do the conversion sometime tonight and update the OP. Thanks.

Edit: OP updated.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Magus posted about the 0x3420 offset for 1.00 codes. Doing so with your unlock all chars code would put the dol offset as 0x456B40 and the 1.00 dol only goes to 0x4366F0 :(

And now we're stuck again....
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
You'd just have to use Magus' method of searching for the value after finding it in memory with a memory viewer, which should be possible to do using Dolphin. Be aware that a lot of AR codes don't target the DOL.
Hoo boy.

The 1.1 code should be:

01CC16C2 08000000
0445B240 FFFFFFFF
0445B248 FFFFFFFF

So if I understand Magus correctly, the second two lines are located in the mem address at

8045B240
8045B248

And I change both of those addresses to "FFFFFFFF".

So two questions, what I do with the first line? And, where in dolphin is the memory viewer?


I live close enough to Magus, maybe I should just drive over and kidnap him.
 

SypherPhoenix

Smash Lord
Joined
Feb 12, 2007
Messages
1,563
Location
Fairfax, VA
AR codes have a 'verifier line' before the actual code that's only used when putting in the code, so when decrypting from an AR code you should always ignore the first line.

For the memory viewer, just run dolphin with a -d flag to start it in debug mode. You can either do this through the command prompt or by changing the shortcut.


Keep in mind that you aren't able to use all of Dolphin's debug features (like breakpoints...) unless you actually build the program in debug mode yourself.


So what does it target if its not the DOL?
Varies based on its location. You'll just have to do file comparisons, unless there's a list somewhere of the file locations within the iso.
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Lawl, I launched dolphin and I have the code (I think). Looking for adresses

8045B240
8045B248

Realized there's no way to scroll, now I'm rapid clicking all the way down...xD

Edit: Holy **** there's gotta be a search function.

...think I found it.
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ


So I found the mem addresses and...there's nothing. How did Magus get from here:

"Looking at 801D0578 in memory with a USB gecko in v1.00 of the game (version the code is for)"

To here:

" I can see it's replacing 48002FA5"??
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Actually I haven't. I assumed you couldn't. How did you start it?

Edit: Thanks sypher for the peach's castle code, seems to work.
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Ok so address 8045b240 has the info:

JITblock 2048

And address 8045b248 is blank. Still not sure what I'm supposed to do with that.

Adresses near it are:

8045b23c JITblock 2056
8045b238 ( ill ) 08010100

I've tried searching things in my dol file like 0801010020562048, and I've found some stuff (like I've found 2048, 2056, and 08010100 hex values independent of each other), but I'm not really sure what I'm supposed be looking for, if it even is in the dol file.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
I feel like I am really close to figuring SOMETHING out. I am using the PAL version btw because the AR code:
Open All Characters
0444CD30 FFFFFFFF

works for that version and I dont have a 1.0 melee.

So I boot it up without the cheat on and go to the memory location of 8044CD30 and it is all zeros. Then I boot it up with the code on and the zeros turn to FFFFFFFF as expected. cool. So then I open up the DOL in a hex editor and search for hex values that are around the memory location of 8044CD30 and it finds them! Specifically in line 0x3d20dc of the PAL iso. Its not a one-to-one match though, as the memory viewer has a whole bunch of extra zeros and what not. But I changed what looks to be like the right hex files in the dol to FFFFFFFF and then try it and nothing happens.....grrr
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Well I'm ready to say that this just isn't going to get done unless someone far more competent than me comes along and does it.
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Thanks very much for that but...how do I port this to 1.1?:lol:

I understand that I have to subtract or add some offset to go from 1.0 to 1.1, what's the offset and do I add or subtract? Time to brush up on my non-base10 math skills...

Wait a minute, what base are ssbm codes in?
 

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
I found the same line in the .dol by comparing the lines around it.

Unlock all characters v1.1
0x161280 - A0BF0000 -> 38A07FFF

Unlock all stages v1.1
0x160E74 - A0BF0000 -> 38A07FFF
 

SypherPhoenix

Smash Lord
Joined
Feb 12, 2007
Messages
1,563
Location
Fairfax, VA
Unlock all characters v1.0

DOL offset: 0x160CA0 - A0BF0000 -> 38A007FF

Unlock all stages v1.0

DOL offset: 0x160894 - A0BF0000 -> 38A007FF


:)

Are you the author of this or did you convert this from another code? When I add this to the OP I want to give proper credit.

If you are the author, would you mind detailing your methods?
 

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
I am the author of that code.

I went to the offset you listed earlier for unlocking characters and saw that with all stages and chars unlocked, the value there was 07FF07FF. I poked the first half of it to zero and saw that it changed what characters were unlocked. I did the same thing with the second half of it and it was for the stages. I put a breakpoint on it for when it's read/written to and found the two offsets for it. The commands that loads it loads the first half of it from the offset you listed earlier. I changed that command to just load it as completely unlocked already instead of loading from the memory card.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Can you port those dol offsets to 1.2 and PAL? Because, ironically, I only have 1.2 and PAL isos (although I hope my 1.1 finished downloading last night). I'll probably look at that after work if you havent done that already. I love you StandardToaster
 

SypherPhoenix

Smash Lord
Joined
Feb 12, 2007
Messages
1,563
Location
Fairfax, VA
^it's in the OP


thanks for the info st.

while i was porting the codes i noticed that there was a third similar string in the dol file...changing the A0BF0000 in that to 38A007FF unlocked random stage select, which is fairly useful for competitive play, so i threw it in the OP with the others. the change didn't seem to have any other effects, but i'm not completely sure.
 

Theftz22

Smash Lord
Joined
Mar 21, 2008
Messages
1,030
Location
Hopewell, NJ
Awesome, thanks! So what more is there to do with DOL mods? Anyone have ideas / working on anything? Or are all those ideas in IE's training post...
Well, there's always porting Zauron's 25 line dual 1v1 code, but I strongly suspect that that's far too much work for any lone reasonable man to complete.
 
Top Bottom