MSU1 Getting Started Guide
Page 1 of 1
MSU1 Getting Started Guide
What is MSU1?
MSU1 is a custom coprocessor much like the DSP chips used in games like Super Mario Kart or Pilotwings, designed by byuu/Near, the author of BSNES and higan. This "chip" enables playback of CD quality lossless audio (16-bit, 44.1kHz), as well as addressing up to 4GB of data, far more than a typical SNES cartridge could ever hold. This allows ROM hacks to replace the background music of games with high quality versions that can be seamlessly looped, stream data not already contained in the ROM file and even play full-motion videos.
What do I need to play MSU1 games?
MSU1 ROM hacks are supported in higan, various BSNES forks, Snes9x v1.55 and up, ikari_01's SD2SNES (now known as the FXPak) flash cart and MiSTer FPGA. They are not supported by ZSNES or old Snes9x forks such as Snes9x-2010 or Snes9x-next, or by Krikzz's Super Everdrive flash cart. Playing an MSU1 game requires several files, including a patched ROM, an MSU data file and several PCM audio files. It also may, or may not, require a manifest file depending on which emulator you are using. See below for a full explanation of these files.
But... why? The original music sounds better!
Nobody's forcing you to play MSU1 hacked games. The original game is still there for you to play and enjoy. If you don't like MSU1, move along.
This music sounds terrible!
Unless you're talking about actual audio problems with the files you've downloaded, see directly above. If you ARE experiencing sound problems, there are a couple of potential causes. If the audio files are too loud and sound distorted, the files may have been boosted for use with older versions of MSU1 hacks and you need to find audio files that have been properly normalized. Try looking here or here for properly normalized audio tracks, but the recommended option is to update your ROM with the very latest patch and audio files from the relevant game article in the MSU1 hacks database here. If you're wondering why this happened, I wrote up an explanation of the problem here. Also, it's possible that the audio files are simply very poor quality, sounding terribly compressed or otherwise just "bad". MSU1 is only playing the audio files that it is given. If the original audio source was low quality, such as a bad YouTube rip or low-bitrate MP3 file, then MSU1 is only going to sound as good as the original audio source. Audio editors should always endeavor to source high quality, lossless audio files for use with MSU1 hacks, otherwise the lossless audio capability of the MSU1 standard is wasted.
OK, I've downloaded all of these files... now what?
If you have downloaded one large file named with a .msu1 extension, see the section below on using Mercurial Magic. Otherwise, you have probably downloaded a .zip/.7z/.rar file, which you'll need to extract. Once you have extracted the files, you should have a patch file (usually either .ips or .bps). You can apply these patches to your original ROM file using Floating IPS (aLttP Randomizer users, skip this step, the patch is already applied by the Randomizer website).
Now that the patch is applied, you can test that the patching process was successful by loading the patched ROM in your emulator or flash cart of choice. At this point the audio most likely won't be working, unless the patch has been coded with what we call "SPC fallback". This is where the code will play the SPC audio from the original game if there is no PCM file detected for that particular track, but it's still good to check that the patch was applied successfully and that the game runs instead of resulting in a black screen or a crash, especially if your patch was in the .ips format. BPS patches require a specific ROM checksum, so you cannot apply a BPS patch to a ROM that it wasn't intended for, but with IPS patches you can apply them to any ROM, so extra care is required to make sure the correct base ROM is used or the game will not work. Base ROMs used for MSU1 patches are generally headerless. A great source of known good headerless ROM dumps is the "No-Intro" ROM set.
Now that you have a patched ROM, the next step depends on which emulator/flash cart you are using.
SD2SNES (FXPak) / Snes9x / BSNES Plus / MiSTer
The SD2SNES (FXPak), Snes9x, BSNES Plus and MiSTer do not use a manifest file to enable MSU1. Instead, they rely on your files following a specific naming format in order to detect the presence of the MSU1. First, you'll need the MSU1 data file. This file might be named msu1.rom, but more commonly it will end with the .msu file extension. If you don't have this file (as is sometimes the case with audio-only MSU1 hacks), you can simply create a blank file with the correct file name and extension. Rename this file to match the name of your MSU1 patched ROM (e.g. alttp_msu1.sfc & alttp_msu1.msu).
BE SURE TO DISABLE HIDDEN FILE EXTENSIONS
Next, rename the .pcm files to also match the name of your MSU1 patched ROM and MSU data file, usually followed by a dash or underscore and the track number, without any leading 0's (e.g. alttp_msu1-1.pcm, alttp_msu1-2.pcm etc.). Place all of these files into the same directory and load the MSU1 patched ROM. You should now hear the new MSU1 PCM audio playing.
Example:
bsnes / bsnes-classic
Follow the same instructions as SD2SNES/Snes9x, but you will also need a manifest.xml file. See below for manifest instructions.
https://www.zeldix.net/t1789-create-a-bml-file-for-higan
higan
higan can detect the MSU1 either through the use of a manifest file, or through naming all of the files in a specific manner. Most people choose to use manifests because it allows them to keep using the SD2SNES/Snes9x/BSNES Plus/MiSTer naming format, but manifests are also a constant annoyance. If you want to use a manifest, see below for manifest instructions. To set up higan without manifests, the first thing to do is locate your library folder. This can be found by opening higan and selecting "Settings > Advanced" and looking at the "Game Library > Location" field. Navigate to this folder and open the "Super Famicom" folder (or create it if you have not yet imported any games into your library). Now create a game folder for your new game. It can be named anything you like, but the folder name must end with .sfc. Copy all of the MSU1 files into this new game folder and rename them exactly as follows:
ROM file (.sfc/.smc): program.rom
Save file (.srm): save.ram
MSU1 data (.msu): msu1.rom
PCM audio files: track-#.pcm (e.g. track-1.pcm, track-2.pcm, etc. no trailing 0's)
Example:
Now, you should be able to load the game from your higan library.
SNES Classic / hakchi2
See the guide here with a few changes:
Since you'll be using Snes9x "under the hood" the file names should follow the naming format described above under SD2SNES/Snes9x.
MSU1 is a custom coprocessor much like the DSP chips used in games like Super Mario Kart or Pilotwings, designed by byuu/Near, the author of BSNES and higan. This "chip" enables playback of CD quality lossless audio (16-bit, 44.1kHz), as well as addressing up to 4GB of data, far more than a typical SNES cartridge could ever hold. This allows ROM hacks to replace the background music of games with high quality versions that can be seamlessly looped, stream data not already contained in the ROM file and even play full-motion videos.
What do I need to play MSU1 games?
MSU1 ROM hacks are supported in higan, various BSNES forks, Snes9x v1.55 and up, ikari_01's SD2SNES (now known as the FXPak) flash cart and MiSTer FPGA. They are not supported by ZSNES or old Snes9x forks such as Snes9x-2010 or Snes9x-next, or by Krikzz's Super Everdrive flash cart. Playing an MSU1 game requires several files, including a patched ROM, an MSU data file and several PCM audio files. It also may, or may not, require a manifest file depending on which emulator you are using. See below for a full explanation of these files.
But... why? The original music sounds better!
Nobody's forcing you to play MSU1 hacked games. The original game is still there for you to play and enjoy. If you don't like MSU1, move along.
This music sounds terrible!
Unless you're talking about actual audio problems with the files you've downloaded, see directly above. If you ARE experiencing sound problems, there are a couple of potential causes. If the audio files are too loud and sound distorted, the files may have been boosted for use with older versions of MSU1 hacks and you need to find audio files that have been properly normalized. Try looking here or here for properly normalized audio tracks, but the recommended option is to update your ROM with the very latest patch and audio files from the relevant game article in the MSU1 hacks database here. If you're wondering why this happened, I wrote up an explanation of the problem here. Also, it's possible that the audio files are simply very poor quality, sounding terribly compressed or otherwise just "bad". MSU1 is only playing the audio files that it is given. If the original audio source was low quality, such as a bad YouTube rip or low-bitrate MP3 file, then MSU1 is only going to sound as good as the original audio source. Audio editors should always endeavor to source high quality, lossless audio files for use with MSU1 hacks, otherwise the lossless audio capability of the MSU1 standard is wasted.
OK, I've downloaded all of these files... now what?
If you have downloaded one large file named with a .msu1 extension, see the section below on using Mercurial Magic. Otherwise, you have probably downloaded a .zip/.7z/.rar file, which you'll need to extract. Once you have extracted the files, you should have a patch file (usually either .ips or .bps). You can apply these patches to your original ROM file using Floating IPS (aLttP Randomizer users, skip this step, the patch is already applied by the Randomizer website).
Now that the patch is applied, you can test that the patching process was successful by loading the patched ROM in your emulator or flash cart of choice. At this point the audio most likely won't be working, unless the patch has been coded with what we call "SPC fallback". This is where the code will play the SPC audio from the original game if there is no PCM file detected for that particular track, but it's still good to check that the patch was applied successfully and that the game runs instead of resulting in a black screen or a crash, especially if your patch was in the .ips format. BPS patches require a specific ROM checksum, so you cannot apply a BPS patch to a ROM that it wasn't intended for, but with IPS patches you can apply them to any ROM, so extra care is required to make sure the correct base ROM is used or the game will not work. Base ROMs used for MSU1 patches are generally headerless. A great source of known good headerless ROM dumps is the "No-Intro" ROM set.
Now that you have a patched ROM, the next step depends on which emulator/flash cart you are using.
SD2SNES (FXPak) / Snes9x / BSNES Plus / MiSTer
The SD2SNES (FXPak), Snes9x, BSNES Plus and MiSTer do not use a manifest file to enable MSU1. Instead, they rely on your files following a specific naming format in order to detect the presence of the MSU1. First, you'll need the MSU1 data file. This file might be named msu1.rom, but more commonly it will end with the .msu file extension. If you don't have this file (as is sometimes the case with audio-only MSU1 hacks), you can simply create a blank file with the correct file name and extension. Rename this file to match the name of your MSU1 patched ROM (e.g. alttp_msu1.sfc & alttp_msu1.msu).
BE SURE TO DISABLE HIDDEN FILE EXTENSIONS
Next, rename the .pcm files to also match the name of your MSU1 patched ROM and MSU data file, usually followed by a dash or underscore and the track number, without any leading 0's (e.g. alttp_msu1-1.pcm, alttp_msu1-2.pcm etc.). Place all of these files into the same directory and load the MSU1 patched ROM. You should now hear the new MSU1 PCM audio playing.
Example:
bsnes / bsnes-classic
Follow the same instructions as SD2SNES/Snes9x, but you will also need a manifest.xml file. See below for manifest instructions.
https://www.zeldix.net/t1789-create-a-bml-file-for-higan
higan
higan can detect the MSU1 either through the use of a manifest file, or through naming all of the files in a specific manner. Most people choose to use manifests because it allows them to keep using the SD2SNES/Snes9x/BSNES Plus/MiSTer naming format, but manifests are also a constant annoyance. If you want to use a manifest, see below for manifest instructions. To set up higan without manifests, the first thing to do is locate your library folder. This can be found by opening higan and selecting "Settings > Advanced" and looking at the "Game Library > Location" field. Navigate to this folder and open the "Super Famicom" folder (or create it if you have not yet imported any games into your library). Now create a game folder for your new game. It can be named anything you like, but the folder name must end with .sfc. Copy all of the MSU1 files into this new game folder and rename them exactly as follows:
ROM file (.sfc/.smc): program.rom
Save file (.srm): save.ram
MSU1 data (.msu): msu1.rom
PCM audio files: track-#.pcm (e.g. track-1.pcm, track-2.pcm, etc. no trailing 0's)
Example:
Now, you should be able to load the game from your higan library.
SNES Classic / hakchi2
See the guide here with a few changes:
- Use pre-converted .pcm files rather than converting them the way they describe
- There is no need for a manifest file (xml/bml)
- Use Floating IPS for .bps patches, not Lunar IPS
- Do not use any of the year-versioned Snes9x cores (e.g. snes9x-2010), as they don't include MSU1 support. Use snes9x or snes9x_dual_core
Since you'll be using Snes9x "under the hood" the file names should follow the naming format described above under SD2SNES/Snes9x.
Last edited by qwertymodo on Tue 13 Nov 2018 - 2:52; edited 6 times in total
qwertymodo- Since : 2014-10-21
Re: MSU1 Getting Started Guide
Super Game Boy
Ever since MSU1 hacking has taken off, people have been looking into the idea of doing similar hacks for other consoles. Recently, Conn discovered that it is possible to use the Super Game Boy cartridge to implement MSU1 music hacks for Game Boy games. Even better, as we were finishing up our first couple of games, somebody released a Super Game Boy firmware for the SD2SNES/FXPak flash cart, which included MSU1 support, so it's actually possible to run these hacks on hardware as well, not just emulation.
For the most part, the setup is very similar to other MSU1 hacks, but there are a few differences that need to be accounted for. First of all, you will need the Super Game Boy boot ROM and BIOS files. There are two known versions of the SGB boot ROM, one used in the original gray carts (SGB1), and another used exclusively on the Japanese-only blue Super Game Boy 2 model. There are at least 5 known versions of the SGB BIOS, 4 of which were used in the original model, and one for the SGB2. While you can use any version you want, it is highly recommended to use the SGB2 BIOS and boot ROM for several reasons, including the fact that the SGB2 runs at the original Game Boy's clock speed, whereas the SGB1 runs too fast, which may cause issues.
While we can't provide the BIOS and boot ROM files for legal reasons, we can provide CRC hash values so you can verify that you have the correct files.
BSNES
The first thing you need to do for BSNES is to copy the boot ROM into the BSNES firmware directory and the BIOS into the same directory as your GB ROM and MSU1 files. The boot ROM should be named sgb1.boot.rom or sgb2.boot.rom. The BIOS file should be named to match the MSU1 files. One thing to keep in mind is that the emulator searches for the .msu and .pcm files based on the the name of the BIOS file, NOT based on the name of the GB ROM file. However, it's easier to make everything match even though the GB ROM name doesn't actually matter. Also, because of this behavior, it's probably a good idea to just make a new copy of the SGB BIOS file for every game.
Once the files are in place, open the emulator, click "System > Load Game" and select the BIOS file as the game to load. Once you select the BIOS file, it should open a second file load dialog where you will then select the GB ROM file. As long as everything is in place, the game should load and play with MSU1 audio.
BSNES+
BSNES+ is mostly set up the same as BSNES, so follow the setup instructions above except for the boot ROM file, which is not used for BSNES+. Once the rest of the files are set up, open the emulator and click "System > Load Special > Load Super Game Boy Cartridge". This will open a dialog box with two file selection boxes. Under "Base cartridge" browse to and select your BIOS file, and under "Game Boy cartridge", browse to and select your GB ROM file. Click "Load" and the game should load with MSU1 audio. BSNES+ may be updated at some point in the future to use the GB ROM for filename matching, so as mentioned above it's probably a good idea to just rename the GB and BIOS files to both match each other, then you won't have any problem if it does change in the future.
higan
(to do...)
SD2SNES (FXPak)
Firstly, download the latest official SD2SNES (FXPak) firmware from https://sd2snes.de/blog/downloads and set up your SD card so you can play games normally. After you've confirmed that everything is set up properly, grab the latest SGB firmware from https://github.com/redacted173/sd2snes/releases (official SD2SNES firmware v1.11.0 has this included already, so overwriting the files in the next step will be unnecessary if you decide to upgrade to that firmware version. Anyone staying on firmware versions below v1.11.0 should follow the next steps). Extract the files you find inside the zip file to your SD card. It will ask to overwrite at least one file (firmware.img), which you should do. Technically, you only need the .bit files on the original SD2SNES models, and only the .bi3 files on the new FXPax Pro. Once you've extracted the new firmware you'll want to copy the SGB boot ROM and BIOS files to the /sd2snes folder on the card. The boot ROM should be named sgb2_boot.bin and the BIOS should be named sgb2_snes.bin.
Once you have set everything up, load up the flash cart and open the menu by pressing X, then select "System Information". Verify that the "Firmware Version" field shows SGB, and then check the bottom of the window where it says "sgb2_boot.bin/sgb2_snes.bin: checking" and wait until it says OK. If it doesn't show OK then something is wrong and you will need to recheck your files. If it does say OK then the firmware is set up correctly and you're ready to load your games.
Unlike emulators, the SD2SNES uses the GB ROM filename for matching the .msu and .pcm filenames. This is why it is suggested above to just name everything to match, because then the same folder will work in emulators and on the SD2SNES. When you load the game, you'll want to load the GB ROM file directly. The BIOS file is loaded from the /sd2snes folder and if you have a copy in the ROM directory, it will be ignored.
Ever since MSU1 hacking has taken off, people have been looking into the idea of doing similar hacks for other consoles. Recently, Conn discovered that it is possible to use the Super Game Boy cartridge to implement MSU1 music hacks for Game Boy games. Even better, as we were finishing up our first couple of games, somebody released a Super Game Boy firmware for the SD2SNES/FXPak flash cart, which included MSU1 support, so it's actually possible to run these hacks on hardware as well, not just emulation.
For the most part, the setup is very similar to other MSU1 hacks, but there are a few differences that need to be accounted for. First of all, you will need the Super Game Boy boot ROM and BIOS files. There are two known versions of the SGB boot ROM, one used in the original gray carts (SGB1), and another used exclusively on the Japanese-only blue Super Game Boy 2 model. There are at least 5 known versions of the SGB BIOS, 4 of which were used in the original model, and one for the SGB2. While you can use any version you want, it is highly recommended to use the SGB2 BIOS and boot ROM for several reasons, including the fact that the SGB2 runs at the original Game Boy's clock speed, whereas the SGB1 runs too fast, which may cause issues.
While we can't provide the BIOS and boot ROM files for legal reasons, we can provide CRC hash values so you can verify that you have the correct files.
- Super GameBoy (NOT RECOMMENDED):
- Code:
Boot ROM: sgb1.boot.rom
CRC32: ec8a83b9
BIOS (beta): Super Game Boy (Japan, USA) (Beta).sfc
CRC32: f5ffb691
BIOS (Rev 0): Super Game Boy (World).sfc
CRC32: 2e35edbb
BIOS (Rev 1): Super Game Boy (Japan, USA) (Rev 1).sfc
CRC32: 27a03c98
BIOS (Rev 2): Super Game Boy (World) (Rev 2).sfc
CRC32: 8a4a174f
- Super Game Boy 2 (RECOMMENDED):
- Code:
Boot ROM: sgb2.boot.rom
CRC32: 53d0dd63
BIOS: Super Game Boy 2 (Japan).sfc
CRC32: cb176e45
BSNES
The first thing you need to do for BSNES is to copy the boot ROM into the BSNES firmware directory and the BIOS into the same directory as your GB ROM and MSU1 files. The boot ROM should be named sgb1.boot.rom or sgb2.boot.rom. The BIOS file should be named to match the MSU1 files. One thing to keep in mind is that the emulator searches for the .msu and .pcm files based on the the name of the BIOS file, NOT based on the name of the GB ROM file. However, it's easier to make everything match even though the GB ROM name doesn't actually matter. Also, because of this behavior, it's probably a good idea to just make a new copy of the SGB BIOS file for every game.
Once the files are in place, open the emulator, click "System > Load Game" and select the BIOS file as the game to load. Once you select the BIOS file, it should open a second file load dialog where you will then select the GB ROM file. As long as everything is in place, the game should load and play with MSU1 audio.
BSNES+
BSNES+ is mostly set up the same as BSNES, so follow the setup instructions above except for the boot ROM file, which is not used for BSNES+. Once the rest of the files are set up, open the emulator and click "System > Load Special > Load Super Game Boy Cartridge". This will open a dialog box with two file selection boxes. Under "Base cartridge" browse to and select your BIOS file, and under "Game Boy cartridge", browse to and select your GB ROM file. Click "Load" and the game should load with MSU1 audio. BSNES+ may be updated at some point in the future to use the GB ROM for filename matching, so as mentioned above it's probably a good idea to just rename the GB and BIOS files to both match each other, then you won't have any problem if it does change in the future.
higan
(to do...)
SD2SNES (FXPak)
Firstly, download the latest official SD2SNES (FXPak) firmware from https://sd2snes.de/blog/downloads and set up your SD card so you can play games normally. After you've confirmed that everything is set up properly, grab the latest SGB firmware from https://github.com/redacted173/sd2snes/releases (official SD2SNES firmware v1.11.0 has this included already, so overwriting the files in the next step will be unnecessary if you decide to upgrade to that firmware version. Anyone staying on firmware versions below v1.11.0 should follow the next steps). Extract the files you find inside the zip file to your SD card. It will ask to overwrite at least one file (firmware.img), which you should do. Technically, you only need the .bit files on the original SD2SNES models, and only the .bi3 files on the new FXPax Pro. Once you've extracted the new firmware you'll want to copy the SGB boot ROM and BIOS files to the /sd2snes folder on the card. The boot ROM should be named sgb2_boot.bin and the BIOS should be named sgb2_snes.bin.
Once you have set everything up, load up the flash cart and open the menu by pressing X, then select "System Information". Verify that the "Firmware Version" field shows SGB, and then check the bottom of the window where it says "sgb2_boot.bin/sgb2_snes.bin: checking" and wait until it says OK. If it doesn't show OK then something is wrong and you will need to recheck your files. If it does say OK then the firmware is set up correctly and you're ready to load your games.
Unlike emulators, the SD2SNES uses the GB ROM filename for matching the .msu and .pcm filenames. This is why it is suggested above to just name everything to match, because then the same folder will work in emulators and on the SD2SNES. When you load the game, you'll want to load the GB ROM file directly. The BIOS file is loaded from the /sd2snes folder and if you have a copy in the ROM directory, it will be ignored.
Last edited by qwertymodo on Wed 15 Jul 2020 - 16:14; edited 2 times in total
qwertymodo- Since : 2014-10-21
Re: MSU1 Getting Started Guide
*Reserved for Mercurial Magic explanation*
qwertymodo- Since : 2014-10-21
Similar topics
» Guide to convert region/version of MSU1 patches.
» i started to work on ...
» getting lunar compress started
» F-Zero MSU1
» FMV GUIDE NEEDED
» i started to work on ...
» getting lunar compress started
» F-Zero MSU1
» FMV GUIDE NEEDED
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum