Sound driver: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 21: Line 21:
Has a 64 byte command FIFO.
Has a 64 byte command FIFO.


*Command 5: Stop music (pause ?)
*Command 7: Play music in following byte
*Command 7: Play music in following byte
*Command A: Fade, speed in following byte
*Command A: Fade, speed in following byte

Revision as of 15:15, 17 November 2011

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 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

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.

Driver characteristics

Makoto V3

Has a 64 byte command FIFO.

  • Command 5: Stop music (pause ?)
  • Command 7: Play music in following byte
  • Command A: Fade, speed in following byte
  • Command E: Set music speed

Command type translation table at $4FAF.

  • 0: Ignore
  • 1: Special command
  • 2: ?
  • 3: ?
  • 4: ?
  • 5: ?