Merge branch 'master' into ZSMv1

This commit is contained in:
ZeroByteOrg 2022-09-23 22:24:22 -05:00
commit c3654eb67c
138 changed files with 10160 additions and 2938 deletions

View file

@ -0,0 +1,7 @@
# Generic PCM DAC
Realtek HD Audio's predecessor. It's just a 1/8/16-bit sample channel, with freely selectable rate and mono/stereo settings. With it, you can emulate PCM DACs found in Williams arcade boards, Sound Blasters, MSX TurboR, Atari STE, NEC PC-9801-86 etc.
# effects
none yet.

View file

@ -9,4 +9,4 @@ additionally, it offers an 8-bit DAC which can be used to play samples. only one
# effects
- `12xx`: set duty cycle or noise mode of channel.
- may be 0-3 for the pulse channels and 0-1 for the noise channel.
- may be 0-3 for the pulse channels.

View file

@ -1,8 +1,8 @@
# Namco 163 (also called N163, Namco C163, Namco 106 (sic), Namco 160 or Namco 129)
This is one of Namco's NES mappers, with up to 8 wavetable channels. It has also 128 byte of internal RAM, and both channel register and wavetables are stored here. Wavetables are variable size and freely allocable anywhere in RAM, it means it can use part of or continuously pre-loaded waveform and its sequences in RAM. But waveform RAM area becomes smaller as more channels are activated; as channel registers consumes 8 bytes for each channel. You must avoid conflict with channel register area and waveform for avoid broken channel playback.
This is one of Namco's NES mappers, with up to 8 wavetable channels. It has also 256 nibbles (128 bytes) of internal RAM, and both channel registers and wavetables are stored here. Wavetables are variable in size and freely allocable anywhere in RAM, it means it can use part of or continuously pre-loaded waveform and its sequences in RAM. At least 128 nibbles (64 bytes) can be dedicated to waves, with more available if not all channels are used - waveform RAM area becomes smaller as more channels are activated, since channel registers consume 8 bytes for each channel. You must avoid conflict with channel register area and waveform to avoid broken channel playback.
It outputs only a single channel at clock; so its sound quality gets more crunchy as more channels are activated.
Namco 163 uses time-division multiplexing for its output. this means that only one channel is output per sample (like OPLL and OPN2). therefore, its sound quality gets worse as more channels are activated.
Furnace supports loading waveforms into RAM and waveform playback simultaneously, and channel limit is dynamically changeable with effect commands.
You must load waveform to RAM first for playback, as its load behavior auto-updates when every waveform changes.

View file

@ -32,6 +32,8 @@ these fields are 0 in format versions prior to 100 (0.6pre1).
the format versions are:
- 116: Furnace 0.6pre1.5
- 115: Furnace dev115
- 114: Furnace dev114
- 113: Furnace dev113
- 112: Furnace dev112
@ -342,7 +344,9 @@ size | description
1 | SN periods under 8 are treated as 1 (>=108) or reserved
1 | cut/delay effect policy (>=110) or reserved
1 | 0B/0D effect treatment (>=113) or reserved
4 | reserved
1 | automatic system name detection (>=115) or reserved
| - this one isn't a compatibility flag, but it's here for convenience...
3 | reserved
--- | **virtual tempo data**
2 | virtual tempo numerator of first song (>=96) or reserved
2 | virtual tempo denominator of first song (>=96) or reserved
@ -499,7 +503,11 @@ size | description
1 | ws
1 | ksr
1 | operator enabled (>=114) or reserved
11 | reserved
1 | KVS mode (>=115) or reserved
| - 0: off
| - 1: on
| - 2: auto (depending on alg)
10 | reserved
--- | **Game Boy instrument data**
1 | volume
1 | direction