APU (Audio Processing Unit)
- https://www.nesdev.org/wiki/APU
- https://www.emulationonline.com/systems/nes/apu-audio/
| 채널 | |
|---|---|
| Pulse 1 | |
| Pulse 2 | |
| Triangle | |
| Noise | |
| DMC |
레지스터
| $4000 | PULSE1_CONTROL_REGISTER | # DDLC VVVV (duty, length halt, constant vol, volume) |
| $4001 | PULSE1_SWEEP_REGISTER | # EPPP NSSS (enable, period, negate, shift) |
| $4002 | PULSE1_TIMER_LOW_REGISTER | # TTTT TTTT (timer low 8 bits) |
| $4003 | PULSE1_TIMER_HIGH_REGISTER | # LLLL LTTT (length index, timer high 3 bits) |
| $4004 | PULSE2_CONTROL_REGISTER | |
| $4005 | PULSE2_SWEEP_REGISTER | |
| $4006 | PULSE2_TIMER_LOW_REGISTER | |
| $4007 | PULSE2_TIMER_HIGH_REGISTER | |
| $4008 | TRIANGLE_LINEAR_REGISTER | # CRRR RRRR (control flag, linear reload) |
| $400A | TRIANGLE_TIMER_LOW_REGISTER | |
| $400B | TRIANGLE_TIMER_HIGH_REGISTER | |
| $400C | NOISE_CONTROL_REGISTER | # –LC VVVV (length halt, constant vol, volume) |
| $400E | NOISE_MODE_PERIOD_REGISTER | # M— PPPP (mode, period index) |
| $400F | NOISE_LENGTH_REGISTER | # LLLL L— (length index) |
Pulse
Triangle
Noise
DMC (Delta Modulation Channel)
-
https://www.nesdev.org/wiki/APU_DMC
-
DPCM(Delta Pulse Code Modulation)
- DMC 채널이 사용하는 오디오 인코딩 방식