From 0d4db39c14d4ffffcd6e0624cb291678e1b1835f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 16 Oct 2022 01:01:31 -0500 Subject: [PATCH] add Virtual Boy docs --- papers/doc/7-systems/virtual-boy.md | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 papers/doc/7-systems/virtual-boy.md diff --git a/papers/doc/7-systems/virtual-boy.md b/papers/doc/7-systems/virtual-boy.md new file mode 100644 index 00000000..94a2d049 --- /dev/null +++ b/papers/doc/7-systems/virtual-boy.md @@ -0,0 +1,43 @@ +# Virtual Boy + +a "portable" video game console made by Nintendo in the '90's. + +it supposedly was the beginning of virtual reality... nah, instead it failed to sell well because you use it for 15 minutes and then you get a headache. + +its sound generation chip is called Virtual Sound Unit (VSU), a wavetable chip that is a lot like PC Engine, but unlike that, the waves are twice as tall, it doesn't go too low in terms of frequency (~D-2), and the last channel (yep, it has 6 channels) is a noise one. + +additionally, channel 5 offers a modulation/sweep unit. the former is similar to FDS' but has much reduced speed control. + +# effects + +- `10xx`: set waveform. +- `11xx`: set noise length (0 to 7). + - only in the noise channel. +- `12xy`: setup envelope. + - `x` determines whether envelope is enabled or not. + - 0: disabled + - 1: enabled + - 3: enabled and loop + - yeah, the value 2 isn't useful. + - `y` sets the speed and direction. + - 0-7: down + - 8-F: up +- `13xy`: setup sweep. + - `x` sets the speed. + - 0 and 8 are "speed 0" - sweep is ineffective. + - `y` sets the shift (0 to 7). + - 8 and higher will mute the channel. + - only in channel 5. +- `14xy`: setup modulation. + - `x` determines whether it's enabled or not. + - 0: disabled + - 1: enabled + - 3: enabled and loop + - 2 isn't useful here either. + - `y` sets the speed. + - 0 and 8 are "speed 0" - modulation is ineffective. + - no, you can't really do Yamaha FM using this. + - only in channel 5. +- `15xx`: set modulation wave. + - `xx` points to a wavetable. it should have a height of 255. + - this is an alternative to setting the modulation wave through the instrument.