I've now timed the PAL APU's DMC and noise rates, and the frame sequencer step timing. Here are some updated tests for the frame sequencer:
pal_apu_tests.zip
Note: the IRQ flag is actually effectively set three clocks in a row, starting one clock earlier than shown.
I find it odd that the delay reductions between some steps differed between NTSC and PAL. I double-checked those to be sure it wasn't an error on my part.
pal_apu_tests.zip
Code:
Noise
Rate 0 1 2 3 4 5 6 7 8 9 A B C D E F
----------------------------------------------------------
NTSC 4 8 16 32 64 96 128 160 202 254 380 508 762 1016 2034 4068
PAL 4 7 14 30 60 88 118 148 188 236 354 472 708 944 1890 3778
DMC
Rate 0 1 2 3 4 5 6 7 8 9 A B C D E F
------------------------------------------------------------
NTSC 428 380 340 320 286 254 226 214 190 160 142 128 106 84 72 54
PAL 398 354 316 298 276 236 210 198 176 148 132 118 98 78 66 50
Mode 0: 4-step sequence
Action Envelopes & Length Counter& Interrupt Delay to next
Linear Counter Sweep Units Flag NTSC PAL
---------------------------------------------------------------------
$4017=$00 - - - 7459 8315
Step 1 Clock - - 7456 8314
Step 2 Clock Clock - 7458 8312
Step 3 Clock - - 7458 8314
Step 4 Clock Clock Set if enabled 7458 8314
Mode 1: 5-step sequence
Action Envelopes & Length Counter& Interrupt Delay to next
Linear Counter Sweep Units Flag NTSC PAL
---------------------------------------------------------------------
$4017=$80 - - - 1 1
Step 1 Clock Clock - 7458 8314
Step 2 Clock - - 7456 8314
Step 3 Clock Clock - 7458 8312
Step 4 Clock - - 7458 8314
Step 5 - - - 7452 8312
Rate 0 1 2 3 4 5 6 7 8 9 A B C D E F
----------------------------------------------------------
NTSC 4 8 16 32 64 96 128 160 202 254 380 508 762 1016 2034 4068
PAL 4 7 14 30 60 88 118 148 188 236 354 472 708 944 1890 3778
DMC
Rate 0 1 2 3 4 5 6 7 8 9 A B C D E F
------------------------------------------------------------
NTSC 428 380 340 320 286 254 226 214 190 160 142 128 106 84 72 54
PAL 398 354 316 298 276 236 210 198 176 148 132 118 98 78 66 50
Mode 0: 4-step sequence
Action Envelopes & Length Counter& Interrupt Delay to next
Linear Counter Sweep Units Flag NTSC PAL
---------------------------------------------------------------------
$4017=$00 - - - 7459 8315
Step 1 Clock - - 7456 8314
Step 2 Clock Clock - 7458 8312
Step 3 Clock - - 7458 8314
Step 4 Clock Clock Set if enabled 7458 8314
Mode 1: 5-step sequence
Action Envelopes & Length Counter& Interrupt Delay to next
Linear Counter Sweep Units Flag NTSC PAL
---------------------------------------------------------------------
$4017=$80 - - - 1 1
Step 1 Clock Clock - 7458 8314
Step 2 Clock - - 7456 8314
Step 3 Clock Clock - 7458 8312
Step 4 Clock - - 7458 8314
Step 5 - - - 7452 8312
Note: the IRQ flag is actually effectively set three clocks in a row, starting one clock earlier than shown.
I find it odd that the delay reductions between some steps differed between NTSC and PAL. I double-checked those to be sure it wasn't an error on my part.