Sound driver

From NeoGeo Development Wiki
Revision as of 15:00, 26 January 2018 by Defalt (talk | contribs) (Changed MV1C to MV1B as 1C has SM1)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sound drivers are the Z80 programs, which are in charge of playing music and sounds through the YM2610 according to short commands issued by the 68k CPU.

They're contained in the M1 ROMs or in the Z80 files, on MVS systems (except on MV1B) an embedded driver named SM1 is used for testing. In games, they hold the music and sample player code, as well as "tracker music" type data (sometimes banked).

The Universe BIOS has a jukebox function that uses a database of music commands for every game.

Command buffer

As there is no hardware FIFO buffer for sound commands between the 68k and Z80 CPU, the drivers themselves have to implement one in software to make sure no commands are skipped if sent too fast.

For example, the Mr.Noric 3.0 driver has a 64 entry FIFO memory which loops back if full.


CDDA tracks playback isn't directly initiated by the Z80, but depending on games, the command and track number can come from the Z80's RAM. CDDA capable drivers can contain a table to map each sound command to a type (CDDA or synthesized), allowing for sound effects to be played by the YM2610 and the music directly from the CD.