Author Topic: How the Virtual Boy VSU is similar to the PC Engine HuC6280  (Read 1751 times)

Offline Bruce A. Dyson

  • Jr. Member
  • Posts: 54
  • A fan of sound hardware
    • Email
How the Virtual Boy VSU is similar to the PC Engine HuC6280
« on: October 21, 2017, 05:31:19 am »
The Virtual Sound Unit (or "VSU" for short) has six channels that can be enabled and controlled to produce the illusion of sounds and music on the Nintendo Virtual Boy 3D tabletop video game console. The HuC6280 is similar in the sound synthesis used, but Nintendo was lucky that they had some fancy features on their VSU chip.

The following features are described below:

* Channels 1 through 5 are one-shot PCM channels that can use up to 5 wavetable spaces in the VSU memory. Each sample is a 6-bit voltage value (instead of 5 bits), and there are 32 of these values sequenced, repeated constantly, until the sound channel is stopped. These channels are useful for melodies (with the lowest note being D#2), and other effects. To update wave memory, all sound channels actively playing the wave data must be disabled, as write access to the data is ignored when being read internally. (The HuC6280 has 6 wave channels as opposed to 5, including support of unsigned PCM playback on each channel. It also allows for waves to be freely updated.)

* Channel 6 is a noise channel with 8 different pulse-wave random sequences available. These sequences aren't mapped in memory, but otherwise controlled and processed by a 15-bit shift register that has two output lines, with the last one being sound output, and an input bit controlled that reloads the values of the sequence length set. The output lines are fed to an XOR gate, which is then returned back to the shift register via the input line. This channel is useful for explosions, metallic noises, lawnmower noises, etc., and for percussion in music.

* Each channel has two modes of stopping playback. The first is by software, with the illusion of a bit that disables the channel when cleared, and a sequence length counter with 32 different time intervals available. Intervals are a thing about music theory, so this feature is useful in that regard.

* Each channel also has a stereo balance register where the left and right outputs can have their own volume levels. Ranging from 0 through 15 on each side, 0 is silence, 1 is the lowest audible level, and 15 is the loudest level. This can be used for stereo effects in music, and this feature is a linear version of the stereo feature from the HuC6280 soundchip.

* The frequency values on all channels are 11-bit (instead of 12 bits). Yep, the noise channel has a fine pitch control, as opposed to that of the HuC6280's noise feature on its' channels 5 and 6 (being 5-bit). This is also better than the Game Boy's noise channel as a Nintendo contrast. Fine control over noise channel pitch is not musically important anyways.

* The volume control output on a channel is 4-bit linear, as opposed to 5-bit logarithmic on the HuC6280.

* The envelope generator features are a nice thing for the VSU, in which the HuC6280 lacks. The volume control of a channel is the initial envelope start value. Then you have a grow/decay function at 8 selectable duration levels. If the envelope is growing, then the volume will increment from the initial value to the peak value 15 at the duration level selected. Otherwise, if decaying, then the volume will decrement from the initial value to silent level. This is useful for fades in your sounds or music. There is a loop function for the envelopes, in which after reaching the peak volume, will reset to the initial value and keep repeating the process. These envelope components are similar to the Game Boys'.

* Channel 5 contains exclusive sweep and modulation features, in which is similar to the HuC6280 feature that combines channels 1 and 2. The sweep function causes the frequency to go up or down constantly, or up to 7 times. The modulation function has a few features different. The modulation table is 8-bit signed data (ranging from -127 through 127), as opposed to 4-bit data on the HuC6280. And there is no multiplier for multiplying the frequency by 4 or 16. The modulation feature adds up modulation values instead of directly modifying only four bits of the frequency. As the 32 modulation samples are cycled through after the initial frequency, the value from one after another is added. When modulation is looped, the 32 samples will cycle through constantly.

* The HuC6280 has a master volume and master stereo levels. The VSU does not; All it has is a simple on/off control bit.