YM2610

From NeoGeo Development Wiki
Revision as of 17:11, 21 February 2011 by Furrtek (talk | contribs)
Jump to navigation Jump to search
YM2610 chip

The YM2610 is a sound synthesis chip made by Yamaha, used in every of the NeoGeo's hardware versions. It was merged with the Z80, the YM3016 and the Z80 memory controler in the NEO-YSA chip on late revisions of the NeoGeo CD and CDZ.

Its analog outputs only sound generated by the SSG. The FM and ADPCM parts use an external YM3016 DAC.

Communication

The YM2610 is programmed through two pair of "ports": A and B. They're usually called Address A, Data A, Address B, Data B. They're respectively linked to the Z80's ports 4, 5, 6 and 7.

  • Port A (Z80 ports 4 and 5) concerns the SSG, ADPCM-B and FM channels 1 and 2.
  • Port B (Z80 ports 6 and 7) concerns the ADPCM-A and FM channels 3 and 4.
  • Data A (Z80 port 5) can also be read ?

The Z80's A0 and A1 lines are directly connected to the YM2610's A0 and A1 inputs. A2 informs the NEO-D0 chip that the I/O request is for the YM2610.

Sound generation parts

Its able to produce sound using SSG, FM synthesis and ADPCM playback.

SSG (Simple Sound Generator)

Given its limited capacities, the SSG is rarely used for music in NeoGeo games. It's more often used for sound effects like coin-in, continue countdowns or "GO >>>" indicators in side-scrollers.

The SSG part has 3 square wave channels with programmable frequency, and a LFSR noise channel, all with programmable amplitude. An unique enveloppe generator with predefined shapes can also be linked to the SSG's channels amplitudes. (Is SSG only mono ?)

FM (Frequency Modulation)

The FM part has 4 channels, each having their own parametrable operators, panning and amplitude. It's the most used way of generatic music in games.

ADPCM

APDCM playback allows sampled sounds to be played along with the synthesized ones. Its used for anything that can't be easily synthesized like voices, percussions or wind instruments. Viewpoint uses a lot of sampled drum loops and explosion sounds.

The ADPCM-A part has 6 channels, with a fixed playback frequency of 18.5kHz. Samples can be any size from 256 bytes to 1MB, by 256 bytes increments.

YM 2610 port name Address (Z80 port 6) Data (Z80 port 7)
Port B (Z80 ports 6 and 7) $00
Bit 7 6 5 4 3 2 1 0
Def Dump -CH6 ONCH5 ONCH4 ONCH3 ONCH2 ON CH1 ON
$01
Bit 7 6 5 4 3 2 1 0
Def - Master volume
$08~$0D (one for each channel from 1 to 6)
Bit 7 6 5 4 3 2 1 0
Def L R-Channel volume
$10~$15 (one for each channel from 1 to 6)
Bit 7 6 5 4 3 2 1 0
Def Sample's start address/256 LSB
$18~$1D (one for each channel from 1 to 6)
Bit 7 6 5 4 3 2 1 0
Def Sample's start address/256 MSB
$20~$25 (one for each channel from 1 to 6)
Bit 7 6 5 4 3 2 1 0
Def Sample's stop address/256 LSB
$28~$2D (one for each channel from 1 to 6)
Bit 7 6 5 4 3 2 1 0
Def Sample's stop address/256 MSB

The ADPCM-B part only has 1 channel, but the playback frequency can be changed.