MSX-AUDIO
This page was last modified 18:08, 26 May 2023 by Mars2000you. Based on work by Takamichi and Gdx and others.

Contents

MSX-AUDIO

MSX-AUDIO is a standard for FM sound synthesizer cartridges, which contains an OPL-compatible chip made by Yamaha, the Y8950. This chip is called the MSX-AUDIO.

The FM sound generator in the MSX-AUDIO is compatible with the YM3526 (OPL, sometimes called OPL1), so any OPL software can be used with an MSX-AUDIO.

The chip was introduced in 1984. MSX-AUDIO based cartridges started to appear in 1986.

Specifications

According to the MSX Datapack, MSX-AUDIO BIOS and the Y8950 data sheet, these are the specifications:

Minimum configuration

  • Sound Generator: Yamaha Y8950
    • Built-in YM3526 FM sound generator (aka OPL1)
      • 9 channels of FM sound without drums or 6 channels of FM sound + FM drums
      • Single type of waveform: sine
      • Vibrato and AM oscillators
      • Two general-purpose timers
    • Built-in 4-bit hardware accelerated ADPCM (Adaptive Differential Pulse Code Modulation) sample unit. The maximum sampling rate is 16kHz
      • Built-in 8-bit PCM sample unit
      • 32kB of Sample RAM for ADPCM data
      • Built-in Mute and filtering circuits
      • General-purpose 4-bit input/output ports
  • Mono DAC LSI: Yamaha YM-3014
  • Mono sound output. (RCA connector)
  • Mono sound input. (Mic Jack connector)
  • 128kB ROM (MBIOS + BASIC Extensions + Custom firmware + ADPCM samples)
  • Work-RAM: 4 Kbytes
  • Music keyboard connector
    • 8-bit input/output port for music keyboard scanning

Maximum configuration

  • Sound Generator: Yamaha Y8950 x 2 (the second as slave)
    • Built-in YM3526 FM sound generator (aka OPL1)
      • 9 channels of FM sound without drums or 6 channels of FM sound + FM drums
      • Single type of waveform: sine
      • Vibrato and AM oscillators
      • Two general-purpose timers
    • Built-in 4-bit hardware accelerated ADPCM (Adaptive Differential Pulse Code Modulation) sample unit. The maximum sampling rate is 16kHz
      • Built-in 8-bit PCM sample unit
      • 256kB of Sample RAM or ROM for ADPCM data
      • Built-in Mute and filtering circuits
      • General-purpose 4-bit input/output ports
  • Mono DAC LSI: Yamaha YM-3014 x2
  • Mono sound output. (RCA connector)
  • Mono sound input. (Mic Jack connector)
  • 128kB ROM (MBIOS + BASIC Extensions + Custom firmware + ADPCM samples)
  • Work-RAM: 4 Kbytes
  • Music keyboard connector
    • 8-bit input/output port for music keyboard scanning

MSX-AUDIO cartridges

One cartridge with full support of all MSX-AUDIO specifications was produced and released only in Japan: the Panasonic FS-CA1.

Two other cartridges were sold in Europe but they support only partially the specifications from MSX-AUDIO standard: the Philips NMS 1205 (Music Module) and Toshiba HX-MU900 (FM-Synthesizer Unit). However they can be upgraded for almost full compliance.

In addition more recently

  • a combo cartridge called GR8NET was produced that also supports (fully?) the MSX-AUDIO
  • an extended and flashable cartridge called AudioWave has been released by Tecnobytes

The MSX-AUDIO sound volume compared to the MSX's PSG is noticeably different between each model eg Panasonic FS-CA1 is much louder than Philips NMS 1205.

External keyboard support

The MSX-AUDIO standard defines a standardized pinout for the music keyboard connector. Both the Panasonic FS-CA1 and the Toshiba HX-MU900 accept keyboards using this pinout, namely the Panasonic FS-MKB1, the Toshiba HX-MU901, the Yamaha YK-01, YK-10, YK-20. It shares the same pinout of the Yamaha SFG-01 and SFG-05 modules, albeit those two modules are not part of this standard.

The Philips NMS 1205 features the same kind of connector, but with a different and incompatible pinout. This pinout is only officially supported by the NMS 1160 music keyboard. It's possible to build adapters to connect either a standard MSX music keyboard or a Commodore keyboard. In the Netherlands there are quite a few of these Commodore music keyboards around, adapted by the PTC for use with the Philips Music Module.

Software support

Firmware

All three commercial Y8950 cartridges feature some kind of internal music editor. Both the Panasonic FS-CA1 and the Toshiba HX-MU900 feature the same application (MSX Music-System), while the Philips NMS-1205 features a specific one developed by Richard Watts Computers Ltd and Music Sales Ltd (Music-BOX).

In both the NMS 1205 and the HX-MU900, the built-in music editor starts up automatically when the MSX is turned on, unless the ESC key is pressed at startup. It can also be the case with the Panasonic FS-CA1, according the position of the switch at the back of the cartridge.

Upgraded versions made by the MSX scene for the Philips and Toshiba cartridges inverse the procedure as you need then to press the ESC key while booting to launch the firmware.

This music editor isn't needed to use the cartridge. You can replace the ROM with any other kind of 32kB ROM in the Philips and Toshiba cartridges.

MSX-AUDIO Basic

The MSX-AUDIO ROM also contains the MSX-AUDIO BASIC extension. These BASIC instructions allow compatibility with the majority of the large library of songs created for MSX-MUSIC.

For the original MSX-AUDIO 1.0 ROM you have to replace the CALL MUSIC instruction with CALL AUDIO, but for v1.3 that's not required anymore.

MSX-AUDIO ROM v1.3

This version is an unofficial update by sd-snatcher for upgraded Philips NMS 1205 and Toshiba HX-MU900 cartridges and also the OPL3 cartridge (MSXpro). With the original MSX-AUDIO ROM (v1.0) you have to enter the instruction CALL AUDIO to initialize the MSX-AUDIO, but with this v1.3 it can be done with CALL MUSIC.

MSX-AUDIO BIOS v1.3 also features an MSX-MUSIC BIOS compatible interface. This means that any software that supports the MSX-MUSIC and uses its BIOS calls to write on the FM chip (as required by the MSX standard) will also be compatible with the upgraded MSX-AUDIO module.

All software released by ASCII is known to be compatible, and other games were patched to fix the I/O to use the BIOS calls, like i.e.: Fire Hawk: Thexder - The Second Contact.

Commercial products

Games on cartridge with MSX-AUDIO support:

Only 1 MSX1 game and 3 MSX2 games in cartridge format can use MSX-AUDIO.

You can insert the Panasonic MSX-AUDIO cartridge in one slot and the game in another slot for these games:

The Panasonic MSX-AUDIO cartridge needs to be in slot 1 and the game in slot 2 for Xevious, because it does not hook into H.STKE when initializing the MSX.

Games on floppy disk with MSX-AUDIO support:

Most Compile games and most of the Disc Stations by Compile also support MSX-AUDIO. Some examples are:

For a complete list of software with support for MSX-AUDIO, check out Generation-MSX

Since the Philips and Toshiba cartridges don't contain the MSX-AUDIO BIOS, the Compile software assumes there is no MSX-AUDIO present. Without upgrades, Compile games in disk format can be fooled into detecting MSX-AUDIO support as follows:

  • boot the MSX computer with the Philips or Toshiba cartridge in one slot while pressing the ESC key
  • insert the Compile game or Disc Station in drive A
  • in MSX-BASIC, enter the following command:
POKE -54,35:POKE&HF346,1:_SYSTEM

Note: This method does not work under MSX-DOS2, so press also the '1' key on MSX turbo R.

Scene products

Almost all scene software which contains music composed in FAC Soundtracker, Moonblaster, Oracle or other music editors that support MSX-AUDIO, support the ADPCM sample unit of the Philips NMS 1205 Music Module. Some even support the keyboard.

Only FAC Soundtracker supports the keyboard of the Toshiba cartridge. Only Tyfoonsoft's ProTracker editor doesn't support the ADPCM sample unit.

Another example that makes uses of the ADPCM sampler is Trax Player by NOP, a program to play songs (samples) directly from disk while loading. You can find some songs recorded with TraxPlayer in the MSX archive.

There is some rare software that supports the 256kB sample RAM extension. Examples of these are the demo Unknown Reality by NOP and the MSX-AUDIO BIOS itself. Supersoniqs sells upgrade kits for the Philips and Toshiba Music Modules that contain both 256KB Sample RAM and the MSX-AUDIO BIOS.

Programming

See MSX-AUDIO BASIC and MSX-AUDIO programming

Emulation

The old CJS MSX2 emulator was the first one to support MSX-AUDIO, followed by more emulators. In 2001 Mitsutaka Okazaki wrote an Y8950 emulation engine which is used in the newest MSX emulators. For more information, see the MSX emulator section.