Jigglypoof21
Smash Cadet
When I downloaded PM + BrawlEX, I wanted to give Dreamland more tracks because hearing the same two songs over and over again gets a bit repetitive. I tried PhantomWing's code, but it didn't turn out properly (half of my stages ended up with a Battlefield Tracklist). Then, I remembered this code from 3.6 and decided to work it out. Here's what I got:
Tracklist Modifer [standardtoaster]
C210F9B4 000000GG
-------- --------
2C0300S1 418200PP
2C0300S2 418200PP
2C0300S3 418200PP
-------- --------
480000PP 386000T1
480000QQ 386000T2
480000RR 386000T3
-------- --------
7C0903A6 00000000
E0000000 80008000
This code is divided into 4 parts:
Part 1 (Start):
C210F9B4 000000GG
The GG represents the number of lines after this line in the code, but not including E0000000 80000000
This number must be in hex, and it is always odd (05, 07, 09, 0B, etc.)
Part 2 (Input):
2C0300S1 418200PP
2C0300S2 418200PP
2C0300S3 418200PP
The S#s represent the stage ids of the tracklists that you want to replace.
These lines of code can be repeated as many times as desired for the number of tracklists you want to change/swap.
I'll get to the PPs later.
Part 3 (Output):
480000PP 386000T1
480000QQ 386000T2
480000RR 386000T3
The T#s represent the new tracklists for each stage.
S1 gets its tracklist from T1.
S2 gets its tracklist from T2.
...and the pattern continues.
The PP, QQ, RR, etc. represent the number of bytes of code left, not including the land 1 and a half lines. The bottommost value (RR) will always be 08, the next one up (QQ) will always be 10, the next one up (PP) will always be 18, folowed by 20, 28, etc. Take the uppermost value and put it in the PPs in the previous section.
Part 4 (Ending):
7C0903A6 00000000
E0000000 80008000
This is the easiest part. Just copy it as is!
FAQs:
Q: Does this work with both vPM and PM+BrawlEX?
A: Yes, yes it does.
Q: Can multiple stages share the same tracklist?
A: Yes.
Q: How is My Music affected?
A: I'll give you an example. If I give Battlefield's tracklist to Dreamland, and leave Battlefield's tracklist alone, the sliders on Battlefield will adjust the song frequency for both Battlefield and Dreamland.
Q: Do I have to delete the PS2/Saffron tracklist swap code from 3.6 for this to work?
A: You can, but you don't have to. As long as this code is below the original one, this will be read and not that.
Q: Will this reverse the PS2/Saffron tracklist swap?
A: Yes, but you can add it to your code to put it back the way it was.
Q: Does this work with more than 3 stages?
A: Yes, definitely! just add lines to part 2 and 3 at the top of their section. There will now be an OO above the PP and the PPs in part 2 become OOs. If another line is added, the OOs in part 2 become NNs, etc.
Q: What if I want a 10-song tracklist?
A: Unfortunately, you can't have a 10-song tracklist; however, with the Stage-Track Dependent Song Loader, you can direct two songs to only play one.
Q: Are there any bugs?
A: Unfortunately, yes. The only one I know so far is that it can cause the same song to play for 2 matches in a row in Training, Classic, and All-Star.
Working with other codes:
This code works very well with both Pyotr's Custom Sound Engine and Oshtoby's Stage-Track Dependent Song Loader which can be found here. With all of this combined, you could give each stage a unique 12-song tracklist! You can also use this to add titles to Custom Sound Engine songs starting at 0000C000. For PM + BrawlEX, simply replace your Miscdata[13] with the one in the download as opposed to replacing the whole common2.pac.
If you have any questions, reply below and I will try to respond. I don't mind if you ask for assistance either. I know that the part with the PPs, QQs, and RRs can get quite confusing.
Tracklist Modifer [standardtoaster]
C210F9B4 000000GG
-------- --------
2C0300S1 418200PP
2C0300S2 418200PP
2C0300S3 418200PP
-------- --------
480000PP 386000T1
480000QQ 386000T2
480000RR 386000T3
-------- --------
7C0903A6 00000000
E0000000 80008000
This code is divided into 4 parts:
Part 1 (Start):
C210F9B4 000000GG
The GG represents the number of lines after this line in the code, but not including E0000000 80000000
This number must be in hex, and it is always odd (05, 07, 09, 0B, etc.)
Part 2 (Input):
2C0300S1 418200PP
2C0300S2 418200PP
2C0300S3 418200PP
The S#s represent the stage ids of the tracklists that you want to replace.
Battlefield - 01 (5 songs)
Final Destination - 02 (5 songs)
Metal Cavern - 05 (6 songs; however, if you want to give a stage a 6-song tracklist, use Norfair/Frigate/Fourside instead)
Final Destination - 02 (5 songs)
Metal Cavern - 05 (6 songs; however, if you want to give a stage a 6-song tracklist, use Norfair/Frigate/Fourside instead)
Delfino's Secret - 03 (5 songs)
Luigi's Mansion - 04 (5 songs)
Metal Cavern - 05 (6 songs; however, if you want to give a stage a 6-song tracklist, use Norfair/Frigate/Fourside instead)
Bowser's Castle - 06 (7 songs)
Peach's Castle - 2F (2 songs)
Luigi's Mansion - 04 (5 songs)
Metal Cavern - 05 (6 songs; however, if you want to give a stage a 6-song tracklist, use Norfair/Frigate/Fourside instead)
Bowser's Castle - 06 (7 songs)
Peach's Castle - 2F (2 songs)
Kongo Jungle - 07 (3 songs)
Rumble Falls - 08 (7 songs)
Jungle Japes - 2B (2 songs)
Rumble Falls - 08 (7 songs)
Jungle Japes - 2B (2 songs)
Hyrule Castle - 33 (9 songs)
Pirate Ship - 09 (8 songs)
Temple - 29 (2 songs)
Pirate Ship - 09 (8 songs)
Temple - 29 (2 songs)
Norfair - 0B (6 songs)
Frigate Orpheon - 0C (6 songs)
Brinstar - 32 (2 songs)
Frigate Orpheon - 0C (6 songs)
Brinstar - 32 (2 songs)
Yoshi's Island - 0D (5 songs)
Yoshi's Story - 2A (2 songs)
Yoshi's Story - 2A (2 songs)
Halberd - 0E (12 songs)
Fountain of Dreams - 1F (5 songs)
Dreamland - 2D (2 songs)
Fountain of Dreams - 1F (5 songs)
Dreamland - 2D (2 songs)
Lylat Cruise - 13 (11 songs)
Corneria - 30 (2 songs)
Corneria - 30 (2 songs)
Saffron City - 14 (5 songs)
Spear Pillar - 15 (5 songs)
Pokemon Stadiums - 2E (3 songs)
Spear Pillar - 15 (5 songs)
Pokemon Stadiums - 2E (3 songs)
Port Town Aero Dive - 16 (12 songs)
Big Blue - 31 (2 songs)
Big Blue - 31 (2 songs)
Infinite Glacier - 17 (5 songs)
Flat Zone 2 - 18 (3 songs)
Castle Siege - 19 (12 songs)
Fourside - 20 (6 songs)
Onett - 2C (2 songs)
Onett - 2C (2 songs)
Distant Planet - 1D (9 songs)
Wario Land - 1C (8 songs)
Smashville - 21 (5 songs + K.K. Slider; if you want a reguar 5-song tracklist, use Battlefield, FD, or various other stages)
Skyworld - 1E (4 songs)
Shadow Moses Island - 22 (9 songs)
Green Hill Zone - 23 (12 songs)
Green Hill Zone - 23 (12 songs)
Pictochat - 24 (9 songs)
Hanenbow - 25 (1 song; use this if you don't want the music title displayed; otherwise, use TR)
Training Room - 27 (1 song; use this if you want the music title displayed; otherwise, use Hanenbow)
Hanenbow - 25 (1 song; use this if you don't want the music title displayed; otherwise, use TR)
Training Room - 27 (1 song; use this if you want the music title displayed; otherwise, use Hanenbow)
STGCUSTOM01 - 40
STGCUSTOM02 - 41
STGCUSTOM03 - 42
STGCUSTOM04 - 43
etc.
STGCUSTOM02 - 41
STGCUSTOM03 - 42
STGCUSTOM04 - 43
etc.
I'll get to the PPs later.
Part 3 (Output):
480000PP 386000T1
480000QQ 386000T2
480000RR 386000T3
The T#s represent the new tracklists for each stage.
S1 gets its tracklist from T1.
S2 gets its tracklist from T2.
...and the pattern continues.
The PP, QQ, RR, etc. represent the number of bytes of code left, not including the land 1 and a half lines. The bottommost value (RR) will always be 08, the next one up (QQ) will always be 10, the next one up (PP) will always be 18, folowed by 20, 28, etc. Take the uppermost value and put it in the PPs in the previous section.
Part 4 (Ending):
7C0903A6 00000000
E0000000 80008000
This is the easiest part. Just copy it as is!
FAQs:
Q: Does this work with both vPM and PM+BrawlEX?
A: Yes, yes it does.
Q: Can multiple stages share the same tracklist?
A: Yes.
Q: How is My Music affected?
A: I'll give you an example. If I give Battlefield's tracklist to Dreamland, and leave Battlefield's tracklist alone, the sliders on Battlefield will adjust the song frequency for both Battlefield and Dreamland.
Q: Do I have to delete the PS2/Saffron tracklist swap code from 3.6 for this to work?
A: You can, but you don't have to. As long as this code is below the original one, this will be read and not that.
Q: Will this reverse the PS2/Saffron tracklist swap?
A: Yes, but you can add it to your code to put it back the way it was.
Q: Does this work with more than 3 stages?
A: Yes, definitely! just add lines to part 2 and 3 at the top of their section. There will now be an OO above the PP and the PPs in part 2 become OOs. If another line is added, the OOs in part 2 become NNs, etc.
Q: What if I want a 10-song tracklist?
A: Unfortunately, you can't have a 10-song tracklist; however, with the Stage-Track Dependent Song Loader, you can direct two songs to only play one.
Q: Are there any bugs?
A: Unfortunately, yes. The only one I know so far is that it can cause the same song to play for 2 matches in a row in Training, Classic, and All-Star.
Working with other codes:
This code works very well with both Pyotr's Custom Sound Engine and Oshtoby's Stage-Track Dependent Song Loader which can be found here. With all of this combined, you could give each stage a unique 12-song tracklist! You can also use this to add titles to Custom Sound Engine songs starting at 0000C000. For PM + BrawlEX, simply replace your Miscdata[13] with the one in the download as opposed to replacing the whole common2.pac.
If you have any questions, reply below and I will try to respond. I don't mind if you ask for assistance either. I know that the part with the PPs, QQs, and RRs can get quite confusing.
Last edited: