furnace/doc/7-systems/n163.md
Electric Keet fdfbff3999 De-capitalization of docs (and little typo fixes)
There are also a couple tiny instances of formatting, like [sic] in the Namco 163 doc (yes, it is now correctly formatted) and a couple labels that needed bold.
2023-09-10 10:16:55 -07:00

2.2 KiB

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 256 nibbles (128 bytes) of internal RAM which is shared between channel state and waves.

wavetables are variable in size and may be allocated anywhere 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.

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.

waveform load position versus waveform position

in Furnace, waveform load position/length is different from the waveform position/length.

when placing a note, the load pos/len and the pos/len are set to the values specified in the instrument.

waveforms are loaded in the region set by the load pos/len, which you can change using effects 15xx and 16xx as described below.

the region that will play is set by the waveform pos/len, which you can alter using effects 11xx and 12xx.

the waveform pos/len macros only change the pos/len, and not the load one.

if the waveform changes (e.g. ins change, wave macro or wave synth), or the load pos/len changes, the wave is written to memory.

effects

  • 10xx: set waveform for playback.
  • 11xx: set waveform position in RAM for playback.
  • 12xx: set waveform length in RAM for playback.
    • x goes from 04 to FC in steps of 4.
  • 15xx: set waveform load position.
  • 16xx: set waveform load length.
    • x goes from 04 to FC in steps of 4.
  • 180x: set channel limit.
    • range of x is 0 to 7. 1 is added to get results of 1 through 8.
  • 20xx: load a waveform to RAM.
    • x is the waveform.
    • the length is determined by the wave's width (it will be snapped to a multiple of 4 if it isn't).
    • make sure to use 21xx first!
  • 21xx: set position for 20xx.

info

this chip uses the Namco 163 instrument editor.