Audio Circuit (Neo Geo AES)
The Neo Geo AES has a fairly complex audio circuit worth exploring.
The audio is generated from several places:
- The Game Cartridge (over SDAC, SDPADC and SDRADC)
- The Z80 / Neo-C1 / Neo-D0 (over SDDC)
The Z80 CPU works in conjunction with the NEO-C1 to do the interactive data control to the YM2610 Sound Processor
IMPORTANT: If the !NMI (pin 17) has a damaged trace to NEO-D0 then its Read (pin 35) will never be high, and so it will never read in and process sound data causing no audio to play.
The NEO-C1 is a pin mapping controller to allow correct communications between the Z80 and other parts of the system, that will need to be working and connected for it to allow audio to be processed and dispatched by the Z80.
The Neo-D0 is responsible for generating the audio and controlling the YM2610 sound processor. It uses the Z80 in assistance to control the YM2610, this includes generating the audio for the BIOS intro.
The NEO-D0 controls the !READ, !WRITE and !CS pins of the YM2610.
The NEO-C1 / NEO-D0 / Z80 control the SDDC pins of the YM2610.
The D0-7 pins are interactive data which controls generating sounds using a process (the Z80).
The audio from the game cartridge comes in on SDAC, SDPADC and SDRADC.
ADAC0 and 1 are address pins for 2 bit digital audio so they toggle between 00, 01, 10 and 11.
The SDR is the PCB A channels address/data signals for generating PCM audio for channel A.
The SDP is the PCB B channels address/data signals for generating PCM audio for channel B.
Both are digital sound data as 8bit data.
Notice the changing digital data as audio plays.
When the game is quiet it looks like this (pin 10 of YM2610 as example).
Notice the completely static repeating pulses.
A good test is to remove the game, boot to blank screen BIOS, and a working YM2610 should show a single pulse or small peaks like so:
And a faulty YM2610 often looks like this on pin 10 with no game inserted (high then pulsing low, often stable or eratic):
The resulting combined audio from the game cartridge, Z80 and NEO-D0 are output as a single bit stream on pin 31 (OPO) which is the input to the YM3016 Digital To Analog converter on pin 4 (SD).
Some basic checks for operation using Fatal Fury Special:
- Ground should have continuity to ground
- 5V should be on VCC pins 19/28/62
- !TEST pin 40 should be 5V
- Phase S (pin 64) should output 2.685MHz square wave
- Phase M (pin 63) should be an 8MHz clock input.
- RMPX (pin 20) should be 111.9kHz square wave
- !ROE (pin 21) should be the invert of RMPX (inverted 111.9kHz wave)
- Analog Out (pin 27) should be 2V DC
- SH1 (pin 29) and SH2 (pin 30) should be 55.94kHz 4.2V square wave
- IC (pin 33) is !RESET and should be 5V
- Data pins D0-D7 (pins 2 to 9) should be pulsing about 4.2V to 5V
- A0 (pin 60) and A1 (pin 61) should toggle 4.2V
- !Read (pin 59) should toggle low constantly but with long gaps
- !Write (pin 58) should toggle low constantly but with long gaps
- !CS (pin 57) should toggle low constantly but with long gaps
- !IRQ (pin 56) should toggle low, with typical gaps of 5-10ms
- RADx (pins 10 to 17) should be pulsing about 4.2V to 5V
- RAx (pins 22, 23, 35, 36) should be pulsing about 4.2V to 5V
- The high RA22 (pin 37) and RA23 (pin 38) are usually 0V
- PAx (pins 41-44), should be 4.2V DC until used, then pulse like on intro
- !POE (pin 46) should sit at 4.2V DC until PAx pins toggle, and then toggle
- !PMPX (pin 47) should sit at 0V DC until PAx pins toggle, and then toggle
- PADx (pins 48-55) should sit at 0V DC (noisy) until PAx pins toggle, and then toggle
The pin to observe for digital audio output is pin 31, OPO.
With no sound we get a pulse high every 9us (111.9kHz).
Then when audio plays it shows the streamed data.
After this the YM3016 has the job of converting this digital stream to analog audio output.
The !READ, !WRITE and !CS pins are controlled by the NEO-D0.
If you see issues with them, make sure the pins are connected to the NEO-D0.
If the conditions of the NEO-D0 are not satisfied it might also not drive the pins low and could indicate a problem with the Z80, RAM, D0, C1 or traces between them all, usually the data or address bus.
The YM3016 expects a 2.685MHz clock on pin 5.
As well as the two sample signals on pins 7 and 8 at 55.94kHz (generated by the YM2610).
And the audio digital stream on pin 4 (SD).
It will then output the audio on channels 1, 2 and Common (pins 10, 11 and 12 respectively).
There is also a TOBUF output on pin 13 that goes through a buffer and back into COM.
Without the op amp chip installed (PC458C / PC471 / 4558 / 4559) therefore no input into COM, the audio still works but is more gritty, so I suspect the TOBUF is a filter of some sort for the audio.
TOBUF is a 1Vpp audio signal.
RB (pin 16) is similar to TOBUF as an output to the op amp, and input fed back into BC/MP (pins 14/15).
Finally after the YM3016 has converted the digital audio into analog left and right, it passes these left and right signals from Channel 1 (pin 10, Left) and Channel 2 (pin 11, Right) through an op amp (PC458C / PC471 / 4558).
At this point the buffered left and right audio splits off. One path goes through the volume slider on the front of the console, then into the headphone amp (NJM2066, or discrete circuitry).
The other path sends the left and right audio channels through capacitors mixed together, then through one more op amp (PC458C / PC471 / 4558) and off to the AV port pin.