• 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

shuall

Smash Apprentice
Joined
Jun 26, 2013
Messages
155
Location
Philly
Is that assembly code that you've injected, or wiird codes?

EDIT: the C2 lines are what make me think it's wiird codes.
 
Last edited:

ShockSlayer

Smash Cadet
Joined
Feb 19, 2011
Messages
58
Still no luck.



Pretty sure the branches are good as well:



I'm starting to think maybe it's the injection point. Rereading through the tutorial it's never explained where "801a415c" comes from, when I tried putting the tutorial's code into the converter that specific hex showed up in the "Address/Offset" box. How is that info supposed to be found the normal way?

SS

EDIT: @ shuall shuall It's the Widescreen code from this thread. It's referred to as Gecko, don't really know all the differences tbh.
 
Last edited:

Sham Rock

Smash Apprentice
Joined
Feb 10, 2014
Messages
95
Location
Outside of your grab range
16:9 Widescreen Support (v1.02) [InternetExplorer]:
C2021ABC 00000002
39C00001 38600006
60000000 00000000

C236A4A8 00000007
C03F0034 2C0E0001
41820024 3C004080
90010030 3C004040
90010034 C0010030
EC210032 C0010034
EC210024 39C00000
281E0000 00000000

The code consists out of 2 injections.
 

ShockSlayer

Smash Cadet
Joined
Feb 19, 2011
Messages
58
Ah. That's probably it. I'll get on trying to get these to work. Am I correct in assuming that the second C2 line (C236A4A8 00000007) isn't needed either?
 

ShockSlayer

Smash Cadet
Joined
Feb 19, 2011
Messages
58
That was it, it works now! Thanks a ton man.

I'll post a video and a full writeup here soon.

SS
 

ShockSlayer

Smash Cadet
Joined
Feb 19, 2011
Messages
58
http://shockslayer.shockslayer.com/smash/16-9_Start.dol
For Version 1.02 of Melee
- 16:9 Widescreen Mode
- Start with 4 Stocks Melee (No time limit)
- C-Stick in 1P Mode
- Debug Menu replaces Tournament Mode
- Disable Pokemon Stadium Transformations
- Disable Wind Dreamland 64
- Disable Fly Guy Spawns Yoshi's Story
- Disable Arwing Spawns Corneria
- Destroyed Great Fox Guns From Start
- Disable Lava Brinstar
- No Blocks At Start Green Greens
- Disable Falling Blocks Green Greens
- Disable Whispy Woods Green Greens
- Disable Water Jets Fountain of Dreams
- Remove (Disable) Moving Platforms Fountain of Dreams
@Offset: 1420
Paste write:
39C00001 38600006
60000000 4801D694
00000000 C03F0034
2C0E0001 41820024
3C004080 90010030
3C004040 90010034
C0010030 EC210032
C0010034 EC210024
39C00000 281E0000
48366044 00000000

@Offset: 1E69C
Paste write:
4BFE2964

@Offset: 367088
Paste write:
4BC99F8C

At some point it would be beneficial to make a list of available spaces within the Start.dol and try not to overlap between existing codes, so people can take advantage of widescreen as well as skipping the results screen, etc.

Thanks again for your help guys!

SS
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
http://shockslayer.shockslayer.com/smash/16-9_Start.dol
For Version 1.02 of Melee
- 16:9 Widescreen Mode
- Start with 4 Stocks Melee (No time limit)
- C-Stick in 1P Mode
- Debug Menu replaces Tournament Mode
- Disable Pokemon Stadium Transformations
- Disable Wind Dreamland 64
- Disable Fly Guy Spawns Yoshi's Story
- Disable Arwing Spawns Corneria
- Destroyed Great Fox Guns From Start
- Disable Lava Brinstar
- No Blocks At Start Green Greens
- Disable Falling Blocks Green Greens
- Disable Whispy Woods Green Greens
- Disable Water Jets Fountain of Dreams
- Remove (Disable) Moving Platforms Fountain of Dreams
@Offset: 1420
Paste write:
39C00001 38600006
60000000 4801D694
00000000 C03F0034
2C0E0001 41820024
3C004080 90010030
3C004040 90010034
C0010030 EC210032
C0010034 EC210024
39C00000 281E0000
48366044 00000000

@Offset: 1E69C
Paste write:
4BFE2964

@Offset: 367088
Paste write:
4BC99F8C

At some point it would be beneficial to make a list of available spaces within the Start.dol and try not to overlap between existing codes, so people can take advantage of widescreen as well as skipping the results screen, etc.

Thanks again for your help guys!

SS
Glad you got it working. Nice vid!

I agree with you on mapping out the DOL free space. I actually have a few hundreds of lines of new codes that will be DOL injections so we should probably do this mapping after I release these (I'm aiming for sometime within the week!).
 

Goatlink

Smash Apprentice
Joined
Jul 14, 2013
Messages
146
Location
Portland, OR
maybe more of a general programing question I guess, but anyone know why there would be free space in the .dol in the first place?
 

Sham Rock

Smash Apprentice
Joined
Feb 10, 2014
Messages
95
Location
Outside of your grab range
http://shockslayer.shockslayer.com/smash/16-9_Start.dol
For Version 1.02 of Melee
- 16:9 Widescreen Mode
- Start with 4 Stocks Melee (No time limit)
- C-Stick in 1P Mode
- Debug Menu replaces Tournament Mode
- Disable Pokemon Stadium Transformations
- Disable Wind Dreamland 64
- Disable Fly Guy Spawns Yoshi's Story
- Disable Arwing Spawns Corneria
- Destroyed Great Fox Guns From Start
- Disable Lava Brinstar
- No Blocks At Start Green Greens
- Disable Falling Blocks Green Greens
- Disable Whispy Woods Green Greens
- Disable Water Jets Fountain of Dreams
- Remove (Disable) Moving Platforms Fountain of Dreams
@Offset: 1420
Paste write:
39C00001 38600006
60000000 4801D694
00000000 C03F0034
2C0E0001 41820024
3C004080 90010030
3C004040 90010034
C0010030 EC210032
C0010034 EC210024
39C00000 281E0000
48366044 00000000

@Offset: 1E69C
Paste write:
4BFE2964

@Offset: 367088
Paste write:
4BC99F8C

At some point it would be beneficial to make a list of available spaces within the Start.dol and try not to overlap between existing codes, so people can take advantage of widescreen as well as skipping the results screen, etc.

Thanks again for your help guys!

SS
This already overlaps with the "skip result screen" code.


And I still want my round of melee against you once ssbmo comes out^^
 
Last edited:

ShockSlayer

Smash Cadet
Joined
Feb 19, 2011
Messages
58
This already overlaps with the "skip result screen" code.


And I still want my round of melee against you once ssbmo comes out^^
Yeah, using the same offsets as the tutorial was just a part of my learning curve. I just wanted to make sure the space I was using wasn't occupied so I could eliminate that from the troubleshooting phase. Now that I've got a better handle on this it should be a cinch to rewrite this for a more optimal, unoccupied space. Thus the mapping project; if I'm not mistaken it should be as simple as setting a bunch of breakpoints and testing out every feature of the game.

And apparently there will be a line halfway around the block when SSBMO comes out. Sounds like fun, glad I picked up that raphnet adapter. :3

SS
 

Goatlink

Smash Apprentice
Joined
Jul 14, 2013
Messages
146
Location
Portland, OR
Yeah, using the same offsets as the tutorial was just a part of my learning curve. I just wanted to make sure the space I was using wasn't occupied so I could eliminate that from the troubleshooting phase. Now that I've got a better handle on this it should be a cinch to rewrite this for a more optimal, unoccupied space. Thus the mapping project; if I'm not mistaken it should be as simple as setting a bunch of breakpoints and testing out every feature of the game.

And apparently there will be a line halfway around the block when SSBMO comes out. Sounds like fun, glad I picked up that raphnet adapter. :3

SS
to map the free space in the .dol couldn't you just open it in a hex editor and search for large amounts of 00?
 

shuall

Smash Apprentice
Joined
Jun 26, 2013
Messages
155
Location
Philly
Just brainstorming here, but you could add on to the end of the main.dol file, as long as you define it as another .text section in the dol's header, and have it load into memory address that's after the binary. Also, if it gets too big, we risk running out of RAM. I'm going to try to get this working.
 

ShockSlayer

Smash Cadet
Joined
Feb 19, 2011
Messages
58
Just brainstorming here, but you could add on to the end of the main.dol file, as long as you define it as another .text section in the dol's header, and have it load into memory address that's after the binary. Also, if it gets too big, we risk running out of RAM. I'm going to try to get this working.
I also think that if it's bigger than the original .dol by too much you can't replace it with GC-Tool, you'd have to use GC-rebuilder.

SS
 

shuall

Smash Apprentice
Joined
Jun 26, 2013
Messages
155
Location
Philly
I also think that if it's bigger than the original .dol by too much you can't replace it with GC-Tool, you'd have to use GC-rebuilder.

SS
Yeah, I'm having a problem with testing it, because dolphin only runs gcm (isos), and I can't find any gc-rebuilder for linux. I'm going to have to find the coder for gc-rebuilder, and ask for source. Does anyone know who wrote gc-rebuilder? BSV. Or where I can find documentation on .gcms?
 
Last edited:

Luigimitsu

Smash Apprentice
Joined
Nov 6, 2005
Messages
199
Location
London
For all you lovers of custom music, here´s something I came up with last week.

Random background music (multiplayer)[Sham Rock]

every time a multiplayer battle is loaded (and only multiplayer), the game chooses a background music at random.
This however only applies to stage music, meaning the game will choose one of the following tracks:
Fire Emblem, Balloon Fight, Big Blue, Princess Peach´s Castle, Corneria, Dr.Mario, Flat Zone, EarthBound, Kongo Jungle, Great Bay, Green Greens, Multi-Man Melee 1,
Multi-Man Melee 2, Icicle Mountain, Mushroom Kingdom, Mushroom Kingdom(Finale), Mushroom KingdomII, Mushroom Kingdom(Finale), Fountain of Dreams, Jungle Japes,
Brinstar Depths, Mach Rider, Mute City, Kongo Jungle N64, Dream Land N64, Yoshi´s Island N64, Mother, Mother 2, Battle Theme, Pokemon Stadium, Poke Floats, Rainbow Cruise,
Saria´s Theme, Temple, Super Mario Bros.3, Final Destination, Metal Battle, Battlefield, Venom, Yoshi´s Island, Yoshi´s Story, Brinstar.

Now you can enjoy a 42 track custom soundtrack even if you play FD only.

Could someone with the knowledge please make a mp3 converter with the option of setting loop points? That would be swell....
Was looking for a way to add more music into the legal stages, but I have a question, can you make it so 5 songs only will play on each stage, and only that stage? I just don't want a random playlist for my stages, I like to choose the music that I want on the stage and just have around 5 or so different tracks.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Disable Trophy Spawn on Snag the Trophies Stage
  • makes it playable via debug menu or other codes
Version ── DOL Offset ────── Hex to Replace ──────────
1.02 ────── 0x2165dc ──── 480D8699 -> 60000000 ────
 

HodgyDot

Smash Apprentice
Joined
Feb 22, 2014
Messages
186
Location
Ft Worth Texas
There's a link to an original DOL file in the main post. Just open it up in a hex editor, go to the line specified to unlock all characters, and overwrite the hex values with the new values.
i could not even find the numbers listed anywhere on the hex editor lol
 

Goatlink

Smash Apprentice
Joined
Jul 14, 2013
Messages
146
Location
Portland, OR
im trying to wright a code with the format 04xxxxxx yyyyyyyy, where yyyyyyyy gets written to the memory address xxxxxx, from in Internetexplorers tutorial, but my address is 8 bytes long and cant fit in the code. Am I misunderstanding something? what do I do?
 

HodgyDot

Smash Apprentice
Joined
Feb 22, 2014
Messages
186
Location
Ft Worth Texas
Do i need to name it Start.dol and put it my root system thing to make into an iso?

0x does not mean 00. It just means the succeeding value is a hexadecimal number.
Okay i also figured out the section im edting is the last number on so i think i got it edited now just gotta try and get it on my iso now!
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
im trying to wright a code with the format 04xxxxxx yyyyyyyy, where yyyyyyyy gets written to the memory address xxxxxx, from in Internetexplorers tutorial, but my address is 8 bytes long and cant fit in the code. Am I misunderstanding something? what do I do?
The "80" at the beginning of your address is implied already in the code.

So say your address you want to write to is 0x80123456, your code would be:

04123456 yyyyyyyy

If your address was in the range of 0x81000000 and higher, so for example 0x81
123456, then your code would be:

05123456 yyyyyyyy
(so you would add 1 to 04 if your address to write to starts with 0x81)
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Do i need to name it Start.dol and put it my root system thing to make into an iso?
If all you need to do is replace the DOl file, then you don't need to worry about the name. I have instructions on the main page of the 20XX thread for replacing only the DOL file. There's probably instructions on the main post of this thread as well.
 

HodgyDot

Smash Apprentice
Joined
Feb 22, 2014
Messages
186
Location
Ft Worth Texas
0x does not mean 00. It just means the succeeding value is a hexadecimal number.
If all you need to do is replace the DOl file, then you don't need to worry about the name. I have instructions on the main page of the 20XX thread for replacing only the DOL file. There's probably instructions on the main post of this thread as well.
yeah i did that already i just know on the 20xx hack you have to move the dol.
 

HodgyDot

Smash Apprentice
Joined
Feb 22, 2014
Messages
186
Location
Ft Worth Texas
That's if you're rebuilding the ISO. You only need to rebuild an ISO if you are trying to replace a smaller file with a larger one. This is not the case with DOL files so you don't need to rebuild the entire ISO.
So just take the normal iso and switch the DOL and put on usb then profit?

Thanks for the help by the way
 

Doq

Smash Lord
Joined
Dec 28, 2012
Messages
1,037
Location
The Lab, Sweet Home, OR
The "80" at the beginning of your address is implied already in the code.

So say your address you want to write to is 0x80123456, your code would be:

04123456 yyyyyyyy

If your address was in the range of 0x81000000 and higher, so for example 0x81
123456, then your code would be:

05123456 yyyyyyyy
(so you would add 1 to 04 if your address to write to starts with 0x81)
Amazing bug in Dolphin if this is too complex:
the values at offsets 0x80000000-0x81FFFFFF are exactly the same at offsets 0x0-0x1FFFFFF
 

shuall

Smash Apprentice
Joined
Jun 26, 2013
Messages
155
Location
Philly
Amazing bug in Dolphin if this is too complex:
the values at offsets 0x80000000-0x81FFFFFF are exactly the same at offsets 0x0-0x1FFFFFF
I don't think that's a bug. I think that has something to do with virtual mem memory access on a gamecube. edit: virtual memory is something different
Memory addresses in code start at 0x80000000.
0x00000000 is the physical (hardware) start of memory, and 0x80000000 is the logical (codewise) start of memory.
Specifically it's the logical start of RAM when cached, and 0xC0000000 is the logical start not cached.

Just to specify, it's all the same memory, it's just different things have different types of addresses, so dolphin just makes it easy by mirroring it at the 3 different memory ranges.

Most of the stuff I know I learned from yagcd http://hitmen.c02.at/files/yagcd/yagcd/chap4.html#sec4.1
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Unrestricted Pause Camera (1.02) [Achilles]

Version ────── DOL Offset ────── Hex to Replace ────────── ASM Code
1.02 ──────── 0x221804 ──── C0230040 -> 39E00000 ──── lfs f1,0x40(r3) -> li r15,0
─────────── 0x2C190 ──── D03F02F8 -> 91FF02F8 ──── stfs f1,0x2F8(r31) -> stw r15,0x2F8(r31)
─────────── 0x221824 ──── C0230048 -> 3DE04700 ──── lfs f1,0x48(r3) -> lis r15,0x4700
─────────── 0x2C19C ──── D03F02FC -> 91FF02FC ──── stfs f1,0x2FC(r31) -> stw r15,0x2FC(r31)
─────────── 0x22183C ──── EC210032 -> 3DE04700 ──── fmuls f1,f1,f0 -> lis r15,0x4700
─────────── 0x2C16C ──── D03F02E8 -> 91FF02E8 ──── stfs f1,0x2E8(r31) -> stw r15,0x2E8(r31)
─────────── 0x221854 ──── EC210032 -> 3DE04700 ──── fmuls f1,f1,f0 -> lis r15,0x4700
─────────── 0x2C174 ──── D03F02EC -> 91FF02EC ──── stfs f1,0x2EC(r31) -> stw r15,0x2EC(r31)
─────────── 0x22186C ──── EC210032 -> 3DE04700 ──── fmuls f1,f1,f0 -> lis r15,0x4700
─────────── 0x2C184 ──── D03F02F4 -> 91FF02F4 ──── stfs f1,0x2F4(r31) -> stw r15,0x2F4(r31)
─────────── 0x221884 ──── EC210032 -> 3DE04700 ──── fmuls f1,f1,f0 -> lis r15,0x4700
─────────── 0x2C17C ──── D03F02F0 -> 91FF02F0 ──── stfs f1,0x2F0(r31) -> stw r15,0x2F0(r31)
 
Last edited:

Kadano

Magical Express
Joined
Feb 26, 2009
Messages
2,160
Location
Vienna, Austria
@ Achilles1515 Achilles1515 Here is your post in XenForo table code (undocumented afaik, an admin told me how to use it just a few days ago), just in case you find it to be useful for easy spacing:
Unrestricted Pause Camera (1.02) [Achilles]
Version | DOL Offset | Hex to Replace | ASM Code
1.02 | 0x221804 | C0230040 -> 39E00000 | lfs f1,0x40(r3) -> li r15,0
| 0x2C190 |D03F02F8 -> 91FF02F8 |stfs f1,0x2F8(r31) -> stw r15,0x2F8(r31)
| 0x221824| C0230048 -> 3DE04700| lfs f1,0x48(r3) -> lis r15,0x4700
| 0x2C19C |D03F02FC -> 91FF02FC |stfs f1,0x2FC(r31) -> stw r15,0x2FC(r31)
| 0x22183C| EC210032 -> 3DE04700| fmuls f1,f1,f0 -> lis r15,0x4700
| 0x2C16C |D03F02E8 -> 91FF02E8 |stfs f1,0x2E8(r31) -> stw r15,0x2E8(r31)
| 0x221854| EC210032 -> 3DE04700| fmuls f1,f1,f0 -> lis r15,0x4700
| 0x2C174 |D03F02EC -> 91FF02EC |stfs f1,0x2EC(r31) -> stw r15,0x2EC(r31)
| 0x22186C| EC210032 -> 3DE04700| fmuls f1,f1,f0 -> lis r15,0x4700
| 0x2C184 |D03F02F4 -> 91FF02F4 |stfs f1,0x2F4(r31) -> stw r15,0x2F4(r31)
| 0x221884| EC210032 -> 3DE04700| fmuls f1,f1,f0 -> lis r15,0x4700
| 0x2C17C |D03F02F0 -> 91FF02F0 |stfs f1,0x2F0(r31) -> stw r15,0x2F0(r31)
 
Last edited by a moderator:

Cloud7z

Smash Cadet
Joined
May 11, 2014
Messages
35
I can do basic dol mods but I'm confused with what to do here

PAL ------ 0x3881d0 ---- 934dc374 -> 4BC7903C ----
@15D0 onward
00050006 0007000a
000e0011 002d002e
006c00a8 00aa00af
00b000b2 00b300b4
00b500b6 00f400f8
00fb0107 01080110
01110112 01140115
011b011c 011f0121
01230124 01260161
01630164 01e001ec
01ee01ef

@1630 onward
3E40804C 6252800F
8A920000 2C140002
41800038 3A600000
9A720000 3E80804C
629471B8 8A940000
3E608000 627345D0
2C140006 41800010
3A94FFFA 3A730002
4BFFFFF0 A3530000
934DC374 48386F7C
What do I do (in HxD) where it says @15D0 onwards and @1630 onwards.

Thanks
 

shuall

Smash Apprentice
Joined
Jun 26, 2013
Messages
155
Location
Philly
There should be somewhere in your hex editor that tells you which spot you are in the file (usually a column on the left hand side). So you go to spot 15D0 in the editor and paste that huge block of code into the dol file starting at that point. The 'onward' implies that this doesn't just change one byte like some dol mods (15D0 -> 00050006), it fills a block with code.
 

Calle W

Smash Apprentice
Joined
Feb 14, 2005
Messages
170
Location
Sweden, West Coast
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)
So, I was under the impression that this would unlock All-Star Mode, VS stuff and most importantly Sound Test (needed for alternate songs on stages). This doesn't seem to be the case though. The 20XX DOL comes with these things unlocked, so there must be something I can do. I've looked through the DOL, but I haven't found anything helpful yet.

Any help would be appreciated. (This is about PAL btw)
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
So, I was under the impression that this would unlock All-Star Mode, VS stuff and most importantly Sound Test (needed for alternate songs on stages). This doesn't seem to be the case though. The 20XX DOL comes with these things unlocked, so there must be something I can do. I've looked through the DOL, but I haven't found anything helpful yet.

Any help would be appreciated. (This is about PAL btw)
@Kou
Can you get your friend Ato to look into this? His "unlock random stage toggle on boot" also unlocks sound test and all star mode, etc.

I tried to port it to PAL but things are different with the values. You can tell Ato that I think it should be line 0x15c1cc in the PAL DOL that corresponds to the similar line he changed in 1.00, but changing the line at 0x15c1cc to 0x3800000e does not unlock all the stuff like I thought it would.
 
Last edited:

Calle W

Smash Apprentice
Joined
Feb 14, 2005
Messages
170
Location
Sweden, West Coast
I've been playing around a bit, but no luck so far. I modified the ID of my original save file as a temporary fix, but it would be nice to make the use of a memory card redundant.

EDIT: I'm stupid, I could just use a Gecko code for now...
 
Last edited:
Top Bottom