byuu.org
  1. byuu.org
  2. projects
  3. msu1

MSU1 - SNES Media Streaming Unit

MSU1 - SNES Media Streaming Unit2020-01-11 15:03:02

MSU1 (Media Streaming Unit 1) is an enhancement for the SNES, adding support for full-motion video and CD-quality audio. It gives us a glimpse of what the ill-fated SNES PlayStation CD-ROM add-on would have allowed, only without the disc seeking latency.

MSU1 logo
MSU1 logo

Developer API Reference

Note: this is a skeleton section for now. It will be fleshed out more over time. Thank you for your patience! ^-^;


Read Interface:

$2000 - MSU1_STATUS - Status Port

bit 0-2: MSU1 revision#
bit 3: track missing flag
bit 4: audio playing flag
bit 5: audio repeat flag
bit 6: audio busy flag
bit 7: data busy flag

$2001 - MSU1_READ - Data Port

Returns data from the MSU1 data bus.

$2002 - $2007 - MSU1_ID - Identification

These six registers return the string S-MSU1, which can be used to detect the presence of the MSU1 expansion. If not found, fallbacks can be added: skipping FMV sequences, using SPC700 audio, etc. In this way, software can optionally support MSU1 enhancements while still also running on stock hardware.

$2002 'S'
$2003 '-'
$2004 'M'
$2005 'S'
$2006 'U'
$2007 '1'

Write Interface:

$2000 - $2003 - MSU1_SEEK - Data Address

Sets the address to read data from.

$2000 byte 0
$2001 byte 1
$2002 byte 2
$2003 byte 3 + trigger

$2004 - $2005 - MSU1_TRACK - Audio Track Number

Sets the audio track to play.

$2004 byte 0
$2005 byte 1 + trigger

$2006 - MSU1_VOLUME - Audio Volume

Sets the audio volume for MSU1 audio playback (linear scale.)

#$00 => 0% volume (muted)
#$80 => ~50% volume (half volume)
#$ff => 100% volume (normal volume)

$2007 - MSU1_CONTROL - Control

Control interface.

bit 0: playback enable
bit 1: repeat enable
bit 2-7: unused

Permalink