1. IntroductionThis tutorial will show you how to edit the MyMusic entries for any stage in the game.
This will cover how to change the series playlist a stage uses, add song entries for each series playlist, edit the default song order/rarity for each stage, make certain songs stage specific in a series, and how to make totally custom series playlists.
This tutorial assumes you have an exploitable Switch and are capable of modding the game. It also expects you to already know how to use ParamXML/prcEditor and SmashPad to compress your files.
2. RequirementsBefore we start, you will need the following:
With the latest release of the Ultimate Mod Manager, the trunicated ui_bgm_db is no longer needed, so just extract the one from your data.arc and edit that one instead.
- A ui_stage_db.prc extracted from your data.arc or taken from another mod. The vanilla file is located under
3. Changing a Stage's Game Series PlaylistFirst, open your ui_stage_db.prc file with the prcEditor. Each "struct" represents a different stage. You can press "Enter" on your keyboard to view the data and see which stage is which.
Scroll through the structs until you find the stage you want to edit. For this example, I am going to edit Yoshi's Island (Melee), which is "struct (18)". You can edit any stage(s) you desire to.
There are two parameters here that are important. bgm_set_id and the parameter right below it with the hash of
The string attached to bgm_set_id controls which MyMusic playlist series the stage will use. In this case, it's the Yoshi series.
0x0e471f300acontrols which slot the stage uses for its default song order and song rarity. We don't need to touch this right now, but it will be important later.
For this tutorial, we are going to change bgm_set_id from bgmyoshi to bgmmario. This will change the Yoshi's Island's MyMusic page so it uses Mario songs instead of Yoshi songs.
Save your modified ui_stage_db.prc and compress it with SmashPad. Test it out in-game and you should clearly see the change you made successful. Yoshi's Island's MyMusic page should look just like this.
4. Editing Game Series Playlists for MyMusicMaybe you don't want to have Yoshi's Island only have Mario songs, but instead want to add Super Mario world songs to the Yoshi playlist instead. Or maybe you just want Mario World songs to only show up on Yoshi's Island and no other Yoshi stage. In either case, you will want to edit the game playlist directly.
The next couple parts will show you how to add songs to different series playlists, adjust their order, different rarity per stage, and make individual songs stage specific.
4.1. Adding Songs to Game SeriesAdding songs to different series playlists is very simple to do. First, open ui_bgm_db.prc with the prcEditor.
For now, the only important lists are the ones that start with "bgm".
You can edit any playlist you would like, but for the tutorial, we are going to be adding Super Mario World songs to the Yoshi playlist. You could just make the entries from scratch, but I find it easier to copy the data from other series playlists. So we will start off by expanding bgmyoshi and bgmmario.
Now we need to find the songs we want to copy over. The songs are listed under ui_bgm_id by their internal names, but it's usually pretty easy still to find the song you want.
Once you find the songs you want (in this case, the Super Mario World songs), you will have to copy them individually. You can do so by clicking the struct, then pressing "Ctrl+C" on your keyboard.
After copying, select the list/series you want to add the song to (bgmyoshi, in this case). Paste the song you want with "Ctrl+V" on your keyboard.
4.1.1. Fixing the Newly Added Songs
If you expand the structs of the newly added songs, you will notice that they may have a different number of parameter entries in them. If it has more, you will need to remove the extra or add more if there's less.
Removing the excess entries is easy, just select an entry you want to remove and press the "Del" (Delete) key on your keyboard. Make sure only to delete the excess entries (in this case, all of the entries after incidence3).
Be very careful when deleting, there is currently no undo button, so if you mess up, you will have to remove and re-copy the song over.
If your song has less parameter entries than the base songs in a series, then you will have to add the missing entries. There is currently no way to do this with the prcEditor, so we will need to do things a bit differently.
You will need to copy and paste one of the original songs into the same playlist, then change the ui_bgm_id to be the same as your new song.
4.2. Editing the Order/Default Rarity of Songs for Individual StagesNow that you've added some songs to another playlist, you will probably want to adjust the order they appear in MyMusic.
With ui_bgm_db.prc still open, go to any of the songs in the playlist you've added.
Each set of order and incidence parameters are for a different stage. The order is for the default order in the MyMusic page while incidence is for the song's default rarity.
As for which stage goes to which group, remember back to a bit earlier when we were changing the playlist a stage uses in ui_stage_db.prc.
The second param after bgm_set_id is the group that our stage will use in the series playlist.
Now that you know which stage goes to what, you can edit the order and default rarity freely.
Incidence doesn't really matter whether you set it or not since the values are only used if you reset your stage's MyMusic page.
For order, it doesn't matter if you have multiple songs using the same order number. The game will just sequentially order songs with the same number based on their order in the series playlist.
4.3. Setting Songs to be Stage SpecificNow that we have our newly added songs and their order set up, you may want to make some or all of the songs stage specific (as in they only play on one or two stages).
Doing so is basically the same process as setting their order.
For all stages you don't want the song playable on, set order to -1
5. Making Custom Series Playlists for StagesDue to the prcEditor not being able to rename lists or duplicate anything besides lists, we will have to part of this tutorial using ParamXML.
Starting off, save any edits you made to ui_bgm_db.prc, then convert it using ParamXML.
Now you will need to copy/paste this text to the very end of the XML file right before the
<list size="0" hash="">
Now you will need to create a hash the put between the quotes in hash=""
Note that you can't just type in random text, we have to make and use a hexidecimal hash.
You can use any program or site that can calculate CRC32 hashes, but I recommend using this site.
Make sure your settings look like this on the site before continuing.
In the input box, type "bgm" followed by whatever you want. (I'm using "bgmnes")
Now click "Calculate CRC" and it will spit out your CRC right below.
In my case, it was
We aren't done yet though. Now you need to count how many characters your input text has and add the hexadecimal number for that after the
0xand before the rest of the hash.
In my case, I used "bgmnes" which has 6 characters, so I'm going to add
06to the hash.
So my final hash is
Now we can add the hash to our XML file. Make sure you place it inside the quotes and that there aren't any spaces before or after it.
Now you can save the XML and convert the ui_bgm_db.xml file back to a .prc file.
Make sure you still have your hash, we still need it.
Next, open ui_stage_db.prc with the prcEditor.
Go to all the stages you want using your new playlist and paste the hash you made under
Don't forget to also set the stage group number param right below bgm_set_id
Now our new stage playlist is set up and we have stages using them.
All that's left to do is to add songs to the playlist. The process is identical to adding songs to existing playlists.
Once you add your songs, compress your ui_stage_db.prc file and ui_bgm_db.prc file and inject them into your game.
If you did everything right, it should work perfectly in game!