furnace/papers/doc/7-systems/n163.md

46 lines
2.5 KiB
Markdown
Raw Normal View History

2022-07-26 23:23:01 +00:00
# - ANNOUNCEMENT -
Start calling it C163! The TRUE name of the chip!
The line will be consistent with your help:
- Namco C15
- Namco C30
- Namco C140
- **Namco C163**
- Namco C219
- Namco C352
The C names are official as indicated by:
- MAME
- VGMPlay
- Korg × Bandai Namco (from Kamata info page)
C stands for Custom! Call it C163!
# Namco 163 (also called Namco C163, 106, 160 or 129)
2022-03-22 16:48:45 +00:00
2022-06-04 21:09:51 +00:00
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.
2022-03-22 16:48:45 +00:00
2022-06-04 21:09:51 +00:00
It outputs only a single channel at clock; so its sound quality gets more crunchy as more channels are activated.
2022-03-22 16:48:45 +00:00
2022-06-04 21:09:51 +00:00
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.
Both waveform playback and load command works independently per each channel columns, (Global) commands don't care about the channel columns for work commands and its load behavior is independent with per-channel column load commands.
2022-03-22 16:48:45 +00:00
# effects
- `10xx`: set waveform for playback.
- `11xx`: set waveform position in RAM for playback. (single nibble unit)
- `12xx`: set waveform length in RAM for playback. (04 to FC, 4 nibble unit)
- `130x`: set playback waveform update behavior. (0: off, bit 0: update now, bit 1: update when every waveform is changed)
- `14xx`: set waveform for load to RAM.
- `15xx`: set waveform position for load to RAM. (single nibble unit)
- `16xx`: set waveform length for load to RAM. (04 to FC, 4 nibble unit)
- `170x`: set waveform load behavior. (0: off, bit 0: load now, bit 1: load when every waveform is changed)
- `180x`: set channel limit (0 to 7, x + 1)
- `20xx`: (Global) set waveform for load to RAM.
- `21xx`: (Global) set waveform position for load to RAM. (single nibble unit)
- `22xx`: (Global) set waveform length for load to RAM. (04 to FC, 4 nibble unit)
- `230x`: (Global) set waveform load behavior. (0: off, bit 0: load now, bit 1: load when every waveform is changed)