SoundCortex limitations - Kyuchumimo/Micro-Joy-Home-Video-Computer GitHub Wiki

This software emulates AY-3-8910 and Konami SCC sound chips, however it does not work properly to date, so it is important to know its limitations in order to overcome them.

General

Like the VDP, in most cases there is no need to read the memory/registers of the tone generators. However, there are registers or memory addresses where bits need to be changed. such as AY-3-8910 register 7 mixer setting or Konami SCC+ memory address 0xB8AF on/off switch channel 1 to 5.
For these cases, it is necessary to read its byte and modify the bits we are interested in. If we do not read the byte previously, we will not know the state in which the memory or register is, so we will have to modify all the bits completely.
The solution would be that by means of software, if data is written to these registers or memory addresses, the data should be kept in a variable in the music library itself or in a global variable.

AY-3-8910 emulation

Envelopes are a feature of the AY-3-8910 that allows tones to change their amplitude over time, avoiding having to use software to control the amplitude, which results in lower memory consumption, although this affects all audio channels.
My advice is not to use envelopes, since amplitude changes can be emulated by software with the help of instruments within Furnace program.

  • AY-3-8910 is louder than it should be.
    Image

It is estimated that the emulation of the AY-3-8910 chip could be x1.4 times louder than it should be and becoming more prominent at higher volume values. Fortunately, Furnace has a mixer feature where you can compensate for the audio volume of each chip individually and get an idea of how it really sounds.
Image

  • AY-3-8910 noise emulation is silent for some frequencies.
    The AY-3-8910 noise emulation is inaudible or invalid for values 29, 30 and 31 of the “noise freq” parameter in the AY-3-8910/SSG instruments in Furnace. These values in binary correspond to 00010, 00001, and 00000 respectively in register 6 of the AY-3-8910.

Konami SCC+ emulation

If you try to use notes above F-5, you will hear little or no tone. However, there is a trick to offset octaves.

Imagine that you have a waveform like the one shown below
sawtooth-og

To gain one more octave upward, you should flatten your waveform as shown below. Furnace does not support this theory automatically and I don't think he will ever support it for something so niche. This process must be done manually. Remember that Konami SCC waveforms must be 32 bytes long. You should go to WaveTools and in the text box where next is the Scale X button put 16, then press the button, now the waveform is 16 bytes long, copy and paste the text that contains the waveform to duplicate it and make it 32 bytes long and you are done. You can repeat this process many times, but at the cost of losing half sample rate.
sawtooth-squashed

I believe these limitations can be overlooked considering the benefits it offers:

  • Low cost best sound chip alternative (~ $0.5 USD)
  • 8 audio channels (PSG + Wavetable)
  • Small form factor (DIP8)
  • Few external components
  • Low pin count to interface
  • No external clock required
  • Easy to flash / program