Post subject: MSU-1 configuration?
Player (13)
Joined: 6/17/2006
Posts: 506
Does BizHawk still support MSU-1 games, and if so how do you configure it? I trying to run a MSU-1 version of BS Zelda in it using the compatibility core. Works fine in lsnes, but BizHawk doesn't even seem to read the XML file that contains the MSU-1 information.
Player (54)
Joined: 11/20/2013
Posts: 103
I just asked about that in the development thread the other day; try the latest SVN, they just recently patched it so bsnes will read the .xml files again. I am not totally clear on what format the .xml files were "supposed" to be in but Super Road Blaster works again so you could use that as a template.
Player (13)
Joined: 6/17/2006
Posts: 506
Thank you very much for the info Khaz! Looking at the trunk though, am I wrong by saying that I need Visual Studio 2013 to compile the Windows build? I don't have $400 lying in a corner. If so, I'll have to wait for the next official release.
Samsara
She/They
Senior Judge, Site Admin, Expert player (2109)
Joined: 11/13/2006
Posts: 2822
Location: Northern California
http://tasvideos.org/Bizhawk/Compiling.html There's also an official Dropbox(?) link floating around somewhere (in this thread maybe?) that should have one of the latest SVN builds.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family. Now infrequently posting on Bluesky
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
1. yes youre wrong. 2010 works, I use it. theres a batchfile to open it in vs2010 2. none of us had $400 either
Experienced player (588)
Joined: 2/5/2011
Posts: 1417
Location: France
Samsara wrote:
http://tasvideos.org/Bizhawk/Compiling.html There's also an official Dropbox(?) link floating around somewhere (in this thread maybe?) that should have one of the latest SVN builds.
http://dl.dropbox.com/u/75355/BizHawk.zip
Current: Rayman 3 maybe? idk xD Paused: N64 Rayman 2 (with Funnyhair) GBA SMA 4 : E Reader (With TehSeven) TASVideos is like a quicksand, you get in, but you cannot quit the sand
Samsara
She/They
Senior Judge, Site Admin, Expert player (2109)
Joined: 11/13/2006
Posts: 2822
Location: Northern California
^^^ Yeah, that's the one. Looks like it hasn't been updated in a while, though.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family. Now infrequently posting on Bluesky
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3572)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
BizHawk compiles with VS2013 Community Edition (free)
It's hard to look this good. My TAS projects
Player (13)
Joined: 6/17/2006
Posts: 506
Thanks everyone! I'm gonna give it a try. :)
Samsara wrote:
http://tasvideos.org/Bizhawk/Compiling.html
This page should be more easy to find. I searched for something like that for about 15 minutes yesterday and gave up.
Player (13)
Joined: 6/17/2006
Posts: 506
Just tried again with BizHawk-1.11.1 and I still can't get MSU-1 to work. What's the expected file names for this particular emulator?
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
I've only tested it with super road blaster (load SuperRoadBlaster.xml), which was state of the art at the time we forked our bsnes. Im sure higan has gone through 10 format changes for loading msu-1 games since then. I only intend to load xmls, but if you can prove the community of weirdos making useless cd-audio msu-1 romhacks have converged on some other defacto format/solution then maybe I'll listen read more here http://forums.nesdev.com/viewtopic.php?f=12&t=11004&start=60
Player (13)
Joined: 6/17/2006
Posts: 506
Oh wow, you just answered why we needed to make a different patch for sd2snes. Great info, thanks! :) OK, so I just tried Super Road Blaster v1.2. Could not get it to work either until I realized that I needed to drag & drop the XML file instead of the ROM into the emulator. None of the other MSU-1-compatible emulators I tried behave like that. This should be documented somewhere so that other people don't run into the same problem. Now that I figured this out, I have a different error in BizHawk for BS Zelda, but I think it's related to the file format issue you mentioned earlier. I'll try to fix the problem myself and will post again if I'm still having issues.
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
The other emulators are stupid. The xml contains the information that references all the other files. It's the package file, if you will. Doing it any other way requires checking the disk for accessory files every time you open a .sfc, just in case it's an msu-1 rom.
Player (13)
Joined: 6/17/2006
Posts: 506
Thanks for the tip zeromus. I added the file names in my XML and BizHawk no longer throws an exception on me when I try to load the game. The problem now is that the game loads, but gets stuck on a black screen before reaching the initial splash screen. I'm assuming it's still a problem with my XML, but I can't figure out what. It does work in bsnes v070 so I'm assuming there's a slight difference I'm missing I'd like to debug what the problem is to be sure, but BizHawk's debugger throws an exception and closes every time I try to use it, while the trace logger is always empty. Are those features supposed to be working? I also tried using the official laevateinn debugger for bsnes, but it just prompts for a directory and quits without any explanation. In any case, is there something obviously wrong with this?
<?xml version="1.0" encoding="UTF-8"?>
<cartridge region="NTSC">
  <rom name="bszelda_map1.sfc">
    <map address="00-3f:8000-ffff" mode="shadow"/>
    <map address="40-7f:0000-ffff" mode="linear"/>
    <map address="80-bf:8000-ffff" mode="shadow"/>
    <map address="c0-ff:0000-ffff" mode="linear"/>
  </rom>
  <ram size="10000">
    <map address="10-3f:6000-7fff" mode="linear"/>
    <map address="90-bf:6000-7fff" mode="linear"/>
  </ram>
  <msu1>
    <rom name="bszelda_map1.msu"/>
    <track number="1" name="bszelda_map1-1.pcm"/>
    <track number="2" name="bszelda_map1-2.pcm"/>
    <track number="3" name="bszelda_map1-3.pcm"/>
    <track number="4" name="bszelda_map1-4.pcm"/>
    <track number="5" name="bszelda_map1-5.pcm"/>
    <track number="6" name="bszelda_map1-6.pcm"/>
    <track number="7" name="bszelda_map1-7.pcm"/>
    <track number="8" name="bszelda_map1-8.pcm"/>
    <track number="9" name="bszelda_map1-9.pcm"/> 
    <map address="00-3f:2000-2007"/>
    <map address="80-bf:2000-2007"/>
    <mmio>
      <map address="00-3f:2000-2007"/>
      <map address="80-bf:2000-2007"/>
    </mmio>
  </msu1>
</cartridge>
As a reference, this is the manifest I use for higan:
unverified

cartridge region=NTSC
  rom name=program.rom size=0x400000
  ram name=save.ram size=0x10000
  map id=rom address=00-3f,80-bf:8000-ffff
  map id=rom address=40-7f,c0-ff:0000-ffff
  map id=ram address=10-3f,90-bf:6000-7fff mask=0xe000

  msu1
    rom name=bszelda_map1.msu size=0x0000
    map id=io address=00-3f,80-bf:2000-2007
    
    track number=1 name=bszelda_map1-1.pcm
    track number=2 name=bszelda_map1-2.pcm
    track number=3 name=bszelda_map1-3.pcm
    track number=4 name=bszelda_map1-4.pcm
    track number=5 name=bszelda_map1-5.pcm
    track number=6 name=bszelda_map1-6.pcm
    track number=7 name=bszelda_map1-7.pcm
    track number=8 name=bszelda_map1-8.pcm
    track number=9 name=bszelda_map1-9.pcm

information
  title: bszelda_map1
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
i can't debug that xml. bizhawk's debugger is incomplete garbage. test it on bsnes 0.87, that's what we're based on.
Player (13)
Joined: 6/17/2006
Posts: 506
I just realized my ROM had a header. This what was preventing the game from loading properly. It's weird that you don't have to clean it when loading the ROM directly, but you need to do so when you include MSU-1 data. Is it a bug? Unfortunately, now I have yet again another issue: BizHawk is playing track 2 instead of track 1 with my current XML! I tried in bsnes v087 and the correct track is loaded, so this appears to be a BizHawk-exclusive issue. I compared again using Super Road Blaster v1.2. and I realized that tracks aren't loading properly for that game either in BizHawk, since there's no audio at the beginning of the intro video. Again, it works fine in bsnes v087. This should be fixed.
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
Our code doesn't load the rom, and our code doesn't load the xml. I don't know anything about what bsnes requires when it ingests an msu-1 xml. But it sounds sensible to me that it should be headerless. The XML based rom loading approach is supposed to be for purified stuff and the old legacy sfc loading (dropped after 087, wasnt it?) needs headers. This isn't a bug or anything we're going to address, but thanks for finding it out. I'll get it in our wiki somehow. The missing intro music is in SuperRoadBlaster-121.pcm. The SuperRoadBlaster.xml version 1.2 distrubuted by the author does not reference PCMs above -109.pcm. This is blatantly wrong. It's easily fixed. I don't know for sure how bsnes works (it must be guessing filenames based on *-N.pcm based on the base rom filename and with N matching the track number. This is in keeping with bsnes's use of the .sfc file and implied accessory files) and I don't care. I'll wager if you have an off by one error in your track assignments, you too have made an error in your xml. Bsnes must be guessing correctly for you too. In these respects, we are not going to be compatible with bsnes's disregard for its own formats. I have confidence with this intel you can fix your msu-1 game.
Player (13)
Joined: 6/17/2006
Posts: 506
Good point about the missing PCM declarations in the Super Road Blaster XML, I didn't notice that. The PCMs do seem to match the gameplay if we exclude the missing tracks. What I'm saying however is bsnes v083 and BizHawk v1.11.1 don't play the same track numbers when being fed the same XML I posted above for BS Zelda, which doesn't make sense considering it's supposed to be the same code base. I even tried decrementing the file names by one to match how it was done in Super Road Blaster, but it still plays the wrong track. To be more exact, BizHawk always plays one track number above the one it's supposed to play (2 instead of 1, 3 instead of 2, etc.) One thing's for sure though: if that's not a bug in BizHawk, then something is different compared to the original code it's based on and I'm completely clueless as to what it is. The only theories I have right now are the following: a) The initial memory at power on is different between bsnes and BizHawk and the game code does not initialize it properly. b) BizHawk introduced a bug where it would be attempting to load the nth element from a list of tracks, but assumes that the first element in the list is the track 0 instead of track 1 under certain circumstances. I'm checking with the author of the hack for case a). In the meantime, it would be great if someone from the development team could investigate case b).
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
bizhawk introduced no such bug. super road blaster worked fine. bsnes doesnt use the xml. therefore it will play music according to how the music files are named. you tried to fiddle around with the off by one error. there was still an off by one error. therefore, your trial was a failure. try again. or perhaps youre finding a difference between bsnes 083 and 087 (which we're based on) i suspect bsnes looks for *-0.pcm when playing track 1 and when the game plays track 1, no sound comes out because theres no *-0.pcm. then when the game plays track 2, *-1.pcm plays that corresponds to this XML: http://pastebin.com/d2tAGkv3 (how to paste xml in this forum?? i dont know) In other words: an off by one error, fixed differently; try again.
Joined: 3/26/2019
Posts: 3
Anyone know the current bsnes core version that is used in the current Bizhawk release? I'm attempting to get MSU-1 to work and it seems this forum topic is the closest thing that resembles anything showing that this has worked for someone. I'm currently working with Zelda 3 (Link to the Past) Randomizer ROMs that output pre-patched ROMs specifically for MSU-1 support (reference: alttpr.com) I'm looking to only import audio, which is 34 tracks. There is an optional 35th track for an optional video that I'm not interested in customizing. I have a couple things I'm lookingto have cleared up: 1) The manifest.bml and game_name.xml seem to contain redundant information, are they really both needed? If so, what should both files look like for bsnes? The format given above didn't seem to work. 2) I have all the 34 tracks (track-n.pcm), the game ROM (game_name.sfc), the XML (game_name.xml), the MSU ROM (a 0-byte msu1.rom), and a manifest.bml. These are all within the same directory. Is this correct? 3) The XML is referencing the file names for tracks, game ROM, and MSU ROM. The manifest is similarly referencing the files, however, unclear if the rom and ram name at the top has to stay as program.rom and save.ram. 4) The addresses used in both files I assume will vary game to game, as opposed to emulator to emulator. I have been provided these addresses from a guy who developed many MSU-1 packs for this game, contacting him resulted in him directing me to ask the question here as he himself never got Bizhawk to work. But, I assume the addresses he provided are valid, as they work for his other uses. 5) For the manifest.bml, I see some cases where there's both a "cartridge" configuration along with an identical looking "board" configuration. Is this 2nd "board" section needed? I also see some manifests with and without a "configuration" section, and also a variable amount of info in the "information" section. I'm a bit confused on wich of this is actually required and/or what it's true purpose is. Ultimately, and I think many in the community would benefit from it, I'm looking to know a bit of the theory behind how this is supposed to work, then from there determine what's useful or not. Any documentation or guides on how this is supposed to work?
Masterjun
He/Him
Site Developer, Skilled player (1987)
Joined: 10/12/2010
Posts: 1185
Location: Germany
codemann8 wrote:
Anyone know the current bsnes core version that is used in the current Bizhawk release?
In BizHawk, go to Help -> About.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Joined: 3/26/2019
Posts: 3
Ok thank you, looks like I'm dealing with bsnes v87.
Joined: 3/26/2019
Posts: 3
I should also mention, I did try loading the XML into Bizhawk, I got an exception error, but after clicking Continue, the ROM seemed to load fine, just without music (sound effects neither) also every 30 or so frames it freezes for a couple frames. The freezing doesn't happen when I load the ROM directly. The error I got was: "System.NullReferenceException: Object reference not set to an instance of an object. at BizHawk.Client.EmuHawk.MainForm._LoadRom(String path, LoadRomArgs args) at BizHawk.Client.EmuHawk.MainForm.LoadRom(String path, LoadRomArgs args) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)"