Talk:APU Sweep

From NESdev Wiki
Revision as of 03:49, 18 May 2011 by Quietust (talk | contribs)
Jump to navigationJump to search

Interesting fact: the 2 square channels are almost perfect mirror images of each other on the silicon, with one single difference: where one part of the 2nd channel's sweep unit takes as an input the (inverted) state of the Negate flag, the equivalent input in the 1st channel's sweep unit is hardwired to +5V. Said input is almost definitely the Carry Input flag, and it explains the difference in behavior. --Quietust 00:45, 10 May 2011 (UTC)

The RP2A03 may have originally been planned to permit periods as low as 4 - the current "silence on period < 8" behavior is accomplished by feeding bits 3-10 into a large NOR gate (if they're all 0, the channel is silenced), but there's another unconnected input for bit 2. It might be enlightening to test earlier versions of the chip. --Quietust 17:16, 14 May 2011 (UTC)

Does the sweep unit disable the channel when the target period is greater than 3FF or greater than 7FF? --Drag 04:00, 17 May 2011 (UTC)

When the target is greater than $7FF. If a sweep unit's value is $00, and the sweep value is in $400-$7FF, then as I understand it, the target period is in $400 + ($400 >> 0) through $7FF + ($7FF >> 0), which equals $800-$FFE, and the channel is silenced.
So the next target period is generated right after the channel's period gets updated? --Drag 02:00, 18 May 2011 (UTC)
There's something you should understand about silicon. As soon as a value is clocked into a hardware latch, all the combinational logic feeding off that latch begins to update immediately. So yes, the next target period starts to be generated right after the previous one gets written back, and this new target period is available by the next CPU cycle. --Tepples 02:13, 18 May 2011 (UTC)
In this case, though, almost everything in the APU (including Sprite DMA) is synchronized to a pair of clock signals which seem to be half the CPU clock (I haven't traced out the entire circuit - if you want to try, take a look at this), which actually explains a few other observations. --Quietust 03:49, 18 May 2011 (UTC)