Merge branch 'vrc6' of https://github.com/cam900/furnace into cam900-vrc6

This commit is contained in:
tildearrow 2022-03-27 22:16:04 -05:00
commit 4422ff7695
17 changed files with 1234 additions and 3 deletions

View file

@ -28,6 +28,7 @@ depending on the instrument type, there are currently 13 different types of an i
- [Seta/Allumer X1-010](x1_010.md) - for use with Wavetable portion in Seta/Allumer X1-010.
- [Konami SCC/Bubble System WSG](scc.md) - for use with Konami SCC and Wavetable portion in Bubble System's sound hardware.
- [Namco 163](n163.md) - for use with Namco 163.
- [Konami VRC6](vrc6.md) - for use with VRC6's PSG sound source.
# macros

View file

@ -0,0 +1,7 @@
# VRC6 instrument editor
VRC6 instrument editor consists of only three macros:
- [Volume] - volume sequence
- [Arpeggio] - pitch sequencr
- [Duty cycle] - spicifies duty cycle for pulse wave channels

View file

@ -29,5 +29,6 @@ this is a list of systems that Furnace supports, including each system's effects
- [PC Speaker](pcspkr.md)
- [Commodore PET](pet.md)
- [Commodore VIC-20](vic20.md)
- [Konami VRC6](vrc6.md)
Furnace also reads .dmf files with the [Yamaha YMU759](ymu759.md) system, but...

View file

@ -0,0 +1,16 @@
# Konami VRC6
Its one of NES mapper with sound expansion, and one of two VRCs with this feature by Konami.
The chip has 2 pulse wave channel and single sawtooth channel.
volume register is 4 bit for pulse wave and 6 bit for sawtooth, but sawtooth output is corrupted when volume register value is too high. because this register is 8 bit accumulator in technically, its output is wraparoundable.
pulse wave duty cycle is 8 level, it can be ignored and it has potential for DAC at this case: volume register in this mode is DAC output and it can be PCM playback through this mode.
Furnace supports this routine for PCM playback, but it's consume a lot of CPU resource in real hardware. (even if conjunction with VRC6 integrated IRQ timer)
# effects
- `12xx`: set duty cycle. (0 to 7)
- `17xx`: toggle PCM mode.
* All effects are affects at pulse channels only.