MSU1 Getting Started Guide

Go down

MSU1 Getting Started Guide Empty MSU1 Getting Started Guide

Post by qwertymodo on Sat 27 Jan 2018 - 19:54

This is a guide I've been wanting to write for awhile now, but haven't gotten around to actually doing it.  Now, with Karkat accepting MSU1 into the aLttP Randomizer, I suspect I'm going to be answering a lot of these questions on Discord repeatedly, so it's time to sit down and write.

What is MSU1?
The MSU-1 is a custom coprocessor much like the DSP chips used in games like Super Mario Kart or Pilotwings, designed by byuu, the author of bsnes and higan.  This chip enables playback of CD-quality (44.1kHz, 16-bit) audio, 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, and even play full-motion videos.

What do I need to play MSU1 games?
MSU1 ROM hacks are supported in higan, bsnes, Snes9x v1.55, and the SD2SNES flash cart.  They are not supported by ZSNES, old Snes9x forks such as Snes9x-2010 or Snes9x-next, or by the Super Everdrive flash cart.  Playing an MSU1 game requires several files, including a patch file, a data ROM, and several PCM audio files.  It also may or may not require a manifest file, depending on what 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 do anything.  If you don't like it, move along.

These tracks sound terrible!
Unless you're talking about actual audio problems with the files you downloaded, see above.  If you ARE experiencing sound problems, there are a couple of potential causes.  If the audio files are way too loud and sound distorted, the files may have been boosted, and you need to find audio files that are properly normalized.  Try looking here or here for properly normalized audio tracks.  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".  The 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 the MSU1 is only going to sound as good as the actual audio file.

Ok, I downloaded all of these files... now what?
If you downloaded one large file named with a .msu1 extension, see the section below on using Mercurial Magic.  Otherwise, you should have downloaded a .zip/.7z/.rar file, which you'll need to extract.  Once you have extracted the files, you should have a patch file, either .ips or .bps.  You can apply this patch to your ROM file using Floating IPS (LttP 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 patch was successful by loading the patched ROM in your emulator of choice.  At this point, the audio won't be working, but it's good to check that the patch applied successfully and that the game still runs, instead of resulting in a black screen or a crash, especially if your patch was in the .ips format.  Now that you have a patched ROM, the next step depends on what emulator you are using.

The SD2SNES and Snes9x 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 ROM.  This file might be named msu1.rom or else it will end with the .msu file extension.  If you don't have this file (as is often the case with audio-only MSU1 hacks), you can just create a blank file with the correct file name.  Rename this file to match the name of your ROM with the .msu extension.


Next, rename the .pcm files to also match the name of your ROM, followed by a dash and the track number, without any leading 0's.  Place all of these files into the same directory and load the ROM, and you should hear the new MSU1 audio playing.

MSU1 Getting Started Guide FKoEooll

Follow the same instructions as SD2SNES/Snes9x, but you will also need a manifest.xml file, except for the latest release of bsnes+, where manifests are no longer required.  See below for manifest instructions.

higan can detect the MSU1 either through the use of a manifest file, or else through renaming 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 naming format, but manifests are also a constant annoyance.  If you want to use the 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 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)

MSU1 Getting Started Guide TegQVHml

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 he describes.
  • 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

MSU1 Getting Started Guide Image212

Since : 2014-10-21

Back to top Go down

MSU1 Getting Started Guide Empty Re: MSU1 Getting Started Guide

Post by qwertymodo on Sat 27 Jan 2018 - 19:54

Super GameBoy
Ever since MSU-1 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 GameBoy cartridge to implement MSU-1 music hacks for GameBoy games!  Even better, as we were finishing up our first couple of games, somebody released a Super GameBoy firmware for the SD2SNES/FXPak Pro flash cart, which included MSU-1 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 MSU-1 hacks, but there are a few differences that need to be accounted for.  First of all, you will need the Super GameBoy 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 SGB2 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 actually runs at the correct 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.



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 GameBoy 2 [RECOMMENDED]:


Boot ROM: sgb2.boot.rom
CRC32: 53d0dd63

BIOS: Super Game Boy 2 (Japan).sfc
CRC32: cb176e45

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 MSU-1 files.  The boot ROM should be named sgb1.boot.rom or sgb2.boot.rom.  The BIOS file should be named to match the MSU-1 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, to make your life easier, it can just be 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.

MSU1 Getting Started Guide J9ztHKz

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 MSU-1 audio.

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, click System>Load Special>Load Super GameBoy 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 and play with MSU-1 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, and then you won't have any problem if it does change in the future.


First of all, download the latest official SD2SNES/FXPak Pro firmware from 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  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, but it won't hurt if you have both types of files on both carts, the extras will just be ignored.  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.

MSU1 Getting Started Guide En0Hq8g

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 need to recheck your files.  If it does say OK, then the firmware is all set up correctly and you're ready to load your games.

MSU1 Getting Started Guide Ytz4nYu

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.

MSU1 Getting Started Guide EkIL9U4

Last edited by qwertymodo on Wed 15 Jul 2020 - 16:14; edited 2 times in total

MSU1 Getting Started Guide Image212

Since : 2014-10-21

Back to top Go down

MSU1 Getting Started Guide Empty Re: MSU1 Getting Started Guide

Post by qwertymodo on Sat 27 Jan 2018 - 19:54

*Reserved for Mercurial Magic explanation*

MSU1 Getting Started Guide Image212

Since : 2014-10-21

Back to top Go down

Back to top

Permissions in this forum:
You cannot reply to topics in this forum