Genesis:Audio Chip Notes: Difference between revisions
m (→YM3438) |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
At the heart of the Genesis/Mega Drive's sound hardware is the '''Yamaha YM2612''' FM synthesizer chip, which is descended from the [https://en.wikipedia.org/wiki/Yamaha_YM2203 YM2203] chip which Sega had used in numerous arcade games (i.e. ''Hang-On'', ''Space Harrier'', others). The YM2612 has six 4-operator FM synthesis channels, with the sixth channel capable of 8-bit PCM sample playback. Unlike the YM2203 and the YM2151 which Sega had also used in arcade hardware, the YM2612 also has a built-in stereo DAC (digital to analog converter), saving both motherboard space and production costs. Accompanying the YM2612 are four PSG audio channels (three square wave and one noise) which originate from the VDP. The PSG core used in the VDP is based on the [https://en.wikipedia.org/wiki/Texas_Instruments_SN76489 Texas Instruments SN76489], | At the heart of the Genesis/Mega Drive's sound hardware is the '''Yamaha YM2612''' FM synthesizer chip, which is descended from the [https://en.wikipedia.org/wiki/Yamaha_YM2203 YM2203] chip which Sega had used in numerous arcade games (i.e. ''Hang-On'', ''Space Harrier'', others). The YM2612 has six 4-operator FM synthesis channels, with the sixth channel capable of 8-bit PCM sample playback. Unlike the YM2203 and the YM2151 which Sega had also used in arcade hardware, the YM2612 also has a built-in stereo DAC (digital to analog converter), saving both motherboard space and production costs. | ||
Accompanying the YM2612 are four PSG audio channels (three square wave and one noise) which originate from the VDP. The PSG core used in the VDP is based on the [https://en.wikipedia.org/wiki/Texas_Instruments_SN76489 Texas Instruments SN76489], which was first used in discrete form on the SG-1000 and then as an integrated core in the Master System. In many Genesis games, the PSG is typically used for sound effects, but was also used to great effect in some games for lead and background melodies. | |||
Both the cartridge and expansion ports also have inputs for stereo audio, which were used by both the 32X and Sega CD respectively. The 32X adds two channels of PWM sample playback, while the Sega CD adds eight channels of PCM sample playback and two CD-DA channels. Flash carts such as the Mega EverDrive X7, Mega EverDrive Pro and Mega SD also use the external audio pins for [[Master System:FM Audio Information|FM sound in certain Master System games]], and in the case of the latter two, audio from Sega CD games. | |||
==Quantization Noise aka "Ladder Effect"== | ==Quantization Noise aka "Ladder Effect"== | ||
Line 5: | Line 9: | ||
==YM3438== | ==YM3438== | ||
The YM3438 was marketed as an improved version of the YM2612. Unlike the YM2612, it uses CMOS logic | The YM3438 was marketed as an improved version of the YM2612. Unlike the YM2612, it uses CMOS logic which reduces power consumption and heat, and Yamaha also greatly reduced the "ladder effect" present in the YM2612. Sega began using the YM3438 in its discrete form in arcade hardware such as the [https://segaretro.org/Sega_System_32 System 32] and Genesis-based [https://segaretro.org/Sega_System_C System C]. The discrete YM3438 was also used in the TeraDrive, a combination of a Mega Drive and IBM-compatible PC which was only released in Japan. | ||
Starting in 1992, Sega phased in the use of the Yamaha FC1004 ASIC in Genesis hardware, which combined the VDP, I/O, and a modified YM3438 into a single chip. The first console to use this ASIC was the original Wondermega, followed by the VA7 model 1 Genesis. Future versions of the Genesis/Mega Drive hardware would use variants of this ASIC, and it would later be incorporated into the GOAC ('''G'''enesis '''O'''n '''A''' '''C'''hip) ASICs used in the VA4 model 2 and all Genesis 3s. | |||
The only two exceptions to this are the VA2 and VA2.3 model 2 consoles, which went back to using the YM2612 as the ASIC used in these models did not contain the YM3438 core. | |||
===VA7 Model 1 and VA0-VA1.8 Model 2=== | ===VA7 Model 1 and VA0-VA1.8 Model 2=== | ||
In the VA7 model 1 and VA0 through VA1.8 model 2s, the YM3438's sound is largely spoiled by poor component choices used in the audio circuitry of these systems. These consoles tend to have very muffled sound with copious amounts of distortion, and are among the worst sounding Genesis systems as a result. Thankfully, this can be rectified by using audio modification boards such as the Mega Amp or the audio portion of the Triple Bypass, which use the raw audio straight from the ASIC and put it through a different amplifier circuit, resulting in much cleaner sound. The existing circuitry can also be [[Genesis:Audio_Circuit_Mod_(Model_2)|altered with different components]] to improve the audio quality without resorting to more invasive mods. | |||
In the VA7 model 1 and VA0 through VA1.8 model 2s, the YM3438's sound is largely spoiled by poor component choices used in the audio circuitry of these systems, especially in regards to the op-amps. These consoles tend to have very muffled sound with copious amounts of distortion, and are among the worst sounding Genesis systems as a result. This has led to people blaming these issues on the different "audio chip" even though the YM3438 core is not at fault. | |||
Thankfully, this can be rectified by using audio modification boards such as the Mega Amp or the audio portion of the Triple Bypass, which use the raw audio straight from the ASIC and put it through a different amplifier circuit, resulting in much cleaner sound. The existing circuitry can also be [[Genesis:Audio_Circuit_Mod_(Model_2)|altered with different components]] to improve the audio quality without resorting to more invasive mods. | |||
==Busy flag behavior== | |||
Both the YM2612 and the YM3438 core also differ in the way they handle the busy flag, when the FM chip is busy and cannot accept new data at a particular moment. | |||
''Hellfire'''s music has a significantly slower tempo when played back on consoles with the YM3438 core because its audio driver uses the busy flag improperly. This error was fixed in the Retro-Bit rerelease of the game <ref>https://shmups.system11.org/viewtopic.php?p=1425166&sid=190e96aa1ad601743d748173c184b449#p1425166</ref> and [https://www.romhacking.net/hacks/7235/ a ROM patch is also available] so the game will have the proper tempo on all consoles. | |||
''Earthworm Jim'' also uses the busy flag improperly, but on the YM2612 instead of the 3438. This is especially notable on the first stage where the music seems to freeze in places. [https://www.romhacking.net/hacks/4916/ A patch] is also available for this bug. | |||
==Samples== | |||
===Ladder effect=== | |||
Both samples are of the track "After Burner" from the port of ''After Burner II''. The track is faded out using the game's sound test after about 30 seconds. | |||
*[[File:Afterburnerva3.wav]] - In this sample, the "ladder effect" is used to create a longer sustain time on the lead melody notes. The effect is also very noticeable during the fade out. Recorded from a VA3 model 1 Genesis. | |||
*[[File:Afterburnerxeye.wav]] - On consoles with a YM3438 core, the "ladder effect" is reduced but still present to a degree. Recorded from a Mega Jet. | |||
===Busy flag behavior=== | |||
The first three samples are of the title track from ''Earthworm Jim'', while the last two are from the first stage of ''Hellfire''. | |||
*[[File:Earthwormjimva2.WAV]] - The stuttering in the title track from ''Earthworm Jim'' is especially bad on the oldest model 1s, such as on this sample from a VA2 model 1 Genesis. | |||
*[[File:Earthwormjimva3.WAV]] - On a VA3 model 1, the stuttering is reduced but still very noticeable. | |||
*[[File:Earthwormjimva7tbp.WAV]] - How the track is supposed to sound, recorded from a VA7 model 1 modified with a Triple Bypass board. | |||
*[[File:Hellfireva3.WAV]] - How the music is supposed to sound in ''Hellfire'', which is at the same tempo as the arcade original. Recorded from a VA3 model 1. | |||
*[[File:Hellfirexeye.WAV]] - On consoles with the YM3438 core, the music is slowed down. Recorded from a JVC X'Eye. | |||
==Links and References== | ==Links and References== |
Latest revision as of 21:41, 14 January 2024
At the heart of the Genesis/Mega Drive's sound hardware is the Yamaha YM2612 FM synthesizer chip, which is descended from the YM2203 chip which Sega had used in numerous arcade games (i.e. Hang-On, Space Harrier, others). The YM2612 has six 4-operator FM synthesis channels, with the sixth channel capable of 8-bit PCM sample playback. Unlike the YM2203 and the YM2151 which Sega had also used in arcade hardware, the YM2612 also has a built-in stereo DAC (digital to analog converter), saving both motherboard space and production costs.
Accompanying the YM2612 are four PSG audio channels (three square wave and one noise) which originate from the VDP. The PSG core used in the VDP is based on the Texas Instruments SN76489, which was first used in discrete form on the SG-1000 and then as an integrated core in the Master System. In many Genesis games, the PSG is typically used for sound effects, but was also used to great effect in some games for lead and background melodies.
Both the cartridge and expansion ports also have inputs for stereo audio, which were used by both the 32X and Sega CD respectively. The 32X adds two channels of PWM sample playback, while the Sega CD adds eight channels of PCM sample playback and two CD-DA channels. Flash carts such as the Mega EverDrive X7, Mega EverDrive Pro and Mega SD also use the external audio pins for FM sound in certain Master System games, and in the case of the latter two, audio from Sega CD games.
Quantization Noise aka "Ladder Effect"
The YM2612 has a peculiar flaw with its 9-bit DAC, which causes low volume sounds to be quantized in an unusual way and is especially apparent during fades. Some composers were highly aware of this design flaw and used it in their compositions, with Yuzo Koshiro in particular being a fan of the technique.[1]
YM3438
The YM3438 was marketed as an improved version of the YM2612. Unlike the YM2612, it uses CMOS logic which reduces power consumption and heat, and Yamaha also greatly reduced the "ladder effect" present in the YM2612. Sega began using the YM3438 in its discrete form in arcade hardware such as the System 32 and Genesis-based System C. The discrete YM3438 was also used in the TeraDrive, a combination of a Mega Drive and IBM-compatible PC which was only released in Japan.
Starting in 1992, Sega phased in the use of the Yamaha FC1004 ASIC in Genesis hardware, which combined the VDP, I/O, and a modified YM3438 into a single chip. The first console to use this ASIC was the original Wondermega, followed by the VA7 model 1 Genesis. Future versions of the Genesis/Mega Drive hardware would use variants of this ASIC, and it would later be incorporated into the GOAC (Genesis On A Chip) ASICs used in the VA4 model 2 and all Genesis 3s.
The only two exceptions to this are the VA2 and VA2.3 model 2 consoles, which went back to using the YM2612 as the ASIC used in these models did not contain the YM3438 core.
VA7 Model 1 and VA0-VA1.8 Model 2
In the VA7 model 1 and VA0 through VA1.8 model 2s, the YM3438's sound is largely spoiled by poor component choices used in the audio circuitry of these systems, especially in regards to the op-amps. These consoles tend to have very muffled sound with copious amounts of distortion, and are among the worst sounding Genesis systems as a result. This has led to people blaming these issues on the different "audio chip" even though the YM3438 core is not at fault.
Thankfully, this can be rectified by using audio modification boards such as the Mega Amp or the audio portion of the Triple Bypass, which use the raw audio straight from the ASIC and put it through a different amplifier circuit, resulting in much cleaner sound. The existing circuitry can also be altered with different components to improve the audio quality without resorting to more invasive mods.
Busy flag behavior
Both the YM2612 and the YM3438 core also differ in the way they handle the busy flag, when the FM chip is busy and cannot accept new data at a particular moment.
Hellfire's music has a significantly slower tempo when played back on consoles with the YM3438 core because its audio driver uses the busy flag improperly. This error was fixed in the Retro-Bit rerelease of the game [2] and a ROM patch is also available so the game will have the proper tempo on all consoles.
Earthworm Jim also uses the busy flag improperly, but on the YM2612 instead of the 3438. This is especially notable on the first stage where the music seems to freeze in places. A patch is also available for this bug.
Samples
Ladder effect
Both samples are of the track "After Burner" from the port of After Burner II. The track is faded out using the game's sound test after about 30 seconds.
- - In this sample, the "ladder effect" is used to create a longer sustain time on the lead melody notes. The effect is also very noticeable during the fade out. Recorded from a VA3 model 1 Genesis.
- - On consoles with a YM3438 core, the "ladder effect" is reduced but still present to a degree. Recorded from a Mega Jet.
Busy flag behavior
The first three samples are of the title track from Earthworm Jim, while the last two are from the first stage of Hellfire.
- - The stuttering in the title track from Earthworm Jim is especially bad on the oldest model 1s, such as on this sample from a VA2 model 1 Genesis.
- - On a VA3 model 1, the stuttering is reduced but still very noticeable.
- - How the track is supposed to sound, recorded from a VA7 model 1 modified with a Triple Bypass board.
- - How the music is supposed to sound in Hellfire, which is at the same tempo as the arcade original. Recorded from a VA3 model 1.
- - On consoles with the YM3438 core, the music is slowed down. Recorded from a JVC X'Eye.