MSU-1 && Get SuperRoadBlaster working on Higan / Bsnes > v0.87

This has nothing to do with SNES Tracker.. Well it might.. If for some reason SNES Tracker supports MSU-1 .. which it has no reason to.. they’re unrelated and operate independently of each other.. But anyways it was hard to figure out how to get this thing working correctly on new Higan..

Keep everything the same but add this SuperRoadBlaster.bml file to the SuperRoadBlaster.sfc directory.

SuperRoadBlaster.bml

cartridge region=NTSC
  rom name=SuperRoadBlaster.sfc size=0x40000
  map id=rom address=00-3f,80-bf:8000-ffff
  map id=rom address=40-7d,c0-ff:0000-ffff

  ram name=SuperRoadBlaster.srm size=0x800
  map id=ram address=20-3f,a0-bf:6000-7fff
  map id=ram address=70-7d:0000-ffff

  msu1
    map id=io address=00-3f,80-bf:2000-2007
    rom name=SuperRoadBlaster.msu size=0x1eb60169
    track number=0 name=SuperRoadBlaster-0.pcm
    track number=1 name=SuperRoadBlaster-1.pcm
    track number=2 name=SuperRoadBlaster-2.pcm
    track number=3 name=SuperRoadBlaster-3.pcm
    track number=4 name=SuperRoadBlaster-4.pcm
    track number=5 name=SuperRoadBlaster-5.pcm
    track number=6 name=SuperRoadBlaster-6.pcm
    track number=7 name=SuperRoadBlaster-7.pcm
    track number=8 name=SuperRoadBlaster-8.pcm
    track number=9 name=SuperRoadBlaster-9.pcm
    track number=10 name=SuperRoadBlaster-10.pcm
    track number=11 name=SuperRoadBlaster-11.pcm
    track number=12 name=SuperRoadBlaster-12.pcm
    track number=13 name=SuperRoadBlaster-13.pcm
    track number=14 name=SuperRoadBlaster-14.pcm
    track number=15 name=SuperRoadBlaster-15.pcm
    track number=16 name=SuperRoadBlaster-16.pcm
    track number=17 name=SuperRoadBlaster-17.pcm
    track number=18 name=SuperRoadBlaster-18.pcm
    track number=19 name=SuperRoadBlaster-19.pcm
    track number=20 name=SuperRoadBlaster-20.pcm
    track number=21 name=SuperRoadBlaster-21.pcm
    track number=22 name=SuperRoadBlaster-22.pcm
    track number=23 name=SuperRoadBlaster-23.pcm
    track number=24 name=SuperRoadBlaster-24.pcm
    track number=25 name=SuperRoadBlaster-25.pcm
    track number=26 name=SuperRoadBlaster-26.pcm
    track number=27 name=SuperRoadBlaster-27.pcm
    track number=28 name=SuperRoadBlaster-28.pcm
    track number=29 name=SuperRoadBlaster-29.pcm
    track number=30 name=SuperRoadBlaster-30.pcm
    track number=31 name=SuperRoadBlaster-31.pcm
    track number=32 name=SuperRoadBlaster-32.pcm
    track number=33 name=SuperRoadBlaster-33.pcm
    track number=34 name=SuperRoadBlaster-34.pcm
    track number=35 name=SuperRoadBlaster-35.pcm
    track number=36 name=SuperRoadBlaster-36.pcm
    track number=37 name=SuperRoadBlaster-37.pcm
    track number=38 name=SuperRoadBlaster-38.pcm
    track number=39 name=SuperRoadBlaster-39.pcm
    track number=40 name=SuperRoadBlaster-40.pcm
    track number=41 name=SuperRoadBlaster-41.pcm
    track number=42 name=SuperRoadBlaster-42.pcm
    track number=43 name=SuperRoadBlaster-43.pcm
    track number=44 name=SuperRoadBlaster-44.pcm
    track number=45 name=SuperRoadBlaster-45.pcm
    track number=46 name=SuperRoadBlaster-46.pcm
    track number=47 name=SuperRoadBlaster-47.pcm
    track number=48 name=SuperRoadBlaster-48.pcm
    track number=49 name=SuperRoadBlaster-49.pcm
    track number=50 name=SuperRoadBlaster-50.pcm
    track number=51 name=SuperRoadBlaster-51.pcm
    track number=52 name=SuperRoadBlaster-52.pcm
    track number=53 name=SuperRoadBlaster-53.pcm
    track number=54 name=SuperRoadBlaster-54.pcm
    track number=55 name=SuperRoadBlaster-55.pcm
    track number=56 name=SuperRoadBlaster-56.pcm
    track number=57 name=SuperRoadBlaster-57.pcm
    track number=58 name=SuperRoadBlaster-58.pcm
    track number=59 name=SuperRoadBlaster-59.pcm
    track number=60 name=SuperRoadBlaster-60.pcm
    track number=61 name=SuperRoadBlaster-61.pcm
    track number=62 name=SuperRoadBlaster-62.pcm
    track number=63 name=SuperRoadBlaster-63.pcm
    track number=64 name=SuperRoadBlaster-64.pcm
    track number=65 name=SuperRoadBlaster-65.pcm
    track number=66 name=SuperRoadBlaster-66.pcm
    track number=67 name=SuperRoadBlaster-67.pcm
    track number=68 name=SuperRoadBlaster-68.pcm
    track number=69 name=SuperRoadBlaster-69.pcm
    track number=70 name=SuperRoadBlaster-70.pcm
    track number=71 name=SuperRoadBlaster-71.pcm
    track number=72 name=SuperRoadBlaster-72.pcm
    track number=73 name=SuperRoadBlaster-73.pcm
    track number=74 name=SuperRoadBlaster-74.pcm
    track number=75 name=SuperRoadBlaster-75.pcm
    track number=76 name=SuperRoadBlaster-76.pcm
    track number=77 name=SuperRoadBlaster-77.pcm
    track number=78 name=SuperRoadBlaster-78.pcm
    track number=79 name=SuperRoadBlaster-79.pcm
    track number=80 name=SuperRoadBlaster-80.pcm
    track number=81 name=SuperRoadBlaster-81.pcm
    track number=82 name=SuperRoadBlaster-82.pcm
    track number=83 name=SuperRoadBlaster-83.pcm
    track number=84 name=SuperRoadBlaster-84.pcm
    track number=85 name=SuperRoadBlaster-85.pcm
    track number=86 name=SuperRoadBlaster-86.pcm
    track number=87 name=SuperRoadBlaster-87.pcm
    track number=88 name=SuperRoadBlaster-88.pcm
    track number=89 name=SuperRoadBlaster-89.pcm
    track number=90 name=SuperRoadBlaster-90.pcm
    track number=91 name=SuperRoadBlaster-91.pcm
    track number=92 name=SuperRoadBlaster-92.pcm
    track number=93 name=SuperRoadBlaster-93.pcm
    track number=94 name=SuperRoadBlaster-94.pcm
    track number=95 name=SuperRoadBlaster-95.pcm
    track number=96 name=SuperRoadBlaster-96.pcm
    track number=97 name=SuperRoadBlaster-97.pcm
    track number=98 name=SuperRoadBlaster-98.pcm
    track number=99 name=SuperRoadBlaster-99.pcm
    track number=100 name=SuperRoadBlaster-100.pcm
    track number=101 name=SuperRoadBlaster-101.pcm
    track number=102 name=SuperRoadBlaster-102.pcm
    track number=103 name=SuperRoadBlaster-103.pcm
    track number=104 name=SuperRoadBlaster-104.pcm
    track number=105 name=SuperRoadBlaster-105.pcm
    track number=106 name=SuperRoadBlaster-106.pcm
    track number=107 name=SuperRoadBlaster-107.pcm
    track number=108 name=SuperRoadBlaster-108.pcm
    track number=109 name=SuperRoadBlaster-109.pcm
    track number=110 name=SuperRoadBlaster-110.pcm
    track number=111 name=SuperRoadBlaster-111.pcm
    track number=112 name=SuperRoadBlaster-112.pcm
    track number=113 name=SuperRoadBlaster-113.pcm
    track number=114 name=SuperRoadBlaster-114.pcm
    track number=115 name=SuperRoadBlaster-115.pcm
    track number=116 name=SuperRoadBlaster-116.pcm
    track number=117 name=SuperRoadBlaster-117.pcm
    track number=118 name=SuperRoadBlaster-118.pcm
    track number=119 name=SuperRoadBlaster-119.pcm
    track number=120 name=SuperRoadBlaster-120.pcm
    track number=121 name=SuperRoadBlaster-121.pcm

information:
  title:  Super Road Blaster
  name:   Super Road Blaster
  region: NA

Sources
http://www.smwcentral.net/?p=viewthread&t=71558

Here is some important info I discovered and wrote myself 😛

Super Road Blaster source is obviously a gold mine.

Here's what I discovered tonight.. more details found in Makefile

converting video to png with ffmpeg, snippet from Road Blaster, https://github.com/DocSchoko/SNES-SuperRoadBlaster/blob/master/tools/xmlsceneparser.py: 
os.system("ffmpeg -y -i %s -s 256x192 -pix_fmt rgb8 %s/video_%%06d.gfx_video.png -ss %s -t %s" % (options.get('videofile'), options.get('chapterfolder'), timestart, duration))

Super Blaster has tool to convert png to snes gfx..

this somehow gets compiled in a data file "gamename.msu" by https://github.com/DocSchoko/SNES-SuperRoadBlaster/blob/master/tools/msu1blockwriter.py

now audio
os.system("ffmpeg -y -i %s -acodec pcm_s16le -ar 44100 -ac 2 %s/audio.sfx_video.wav -ss %s -t %s" % (options.get('videofile'), options.get('chapterfolder'), timestart, duration))

https://github.com/DocSchoko/SNES-SuperRoadBlaster/blob/master/tools/msu1blockwriter.py also does the audio pcm file output.. 

it is up to you to follow Super Road Blaster further or create your own file format.. but basically you would be storing sequential frames of tiles, tile map, and color palette data, perhaps along with an audio track



create a skeleton snes program that sets up a BG layer at a certain VRAM address that MSU1 will upload to. and then u learn how to program MSU1 to send the data to VRAM
http://helmet.kafuka.org/msu1.htm

Good luck, cause there's not much doc on MSU1 that I can see...
Perhaps the original source code behind what we just  watched: http://www.dforce3000.de/pub/SuperRoadBlaster.sfc.7z
https://github.com/DocSchoko/SNES-SuperRoadBlaster

Leave a comment