Skip to main content
NESdev Wiki
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

APU Noise/Register table

Noise envelope settings ($400C, write)

7  bit  0
---- ----
..LC VVVV
  || ||||
  || ++++- When C is set: channel volume value
  ||       When C is clear: envelope divider reload value
  |+------ Constant volume flag (override envelope with V)
  +------- Length counter halt flag and envelope loop flag

Noise mode and period ($400E, write)

7  bit  0
---- ----
M... PPPP
|    ||||
|    ++++- Noise period
+--------- Periodic noise mode

The timer period is set to entry P of the following:

Period (P)NTSCPAL
$044
$188
$21614
$33230
$46460
$59688
$6128118
$7160148
$8202188
$9254236
$A380354
$B508472
$C762708
$D1016944
$E20341890
$F4068 (2046 in early RP2A03 revisions)3778

The period determines how many CPU cycles happen between shift register clocks. These periods are all even numbers because there are 2 CPU cycles in an APU cycle.

Length counter load value ($400F, write)

7  bit  0
---- ----
LLLL L...
|||| |
++++-+---- Length counter load value

Writing to this register also restarts envelope.

Edit this page on GitHub