Grapeshot wrote:
-Driar (homebrew game) doesn't work probably due to lack of support for undocumented CPU opcodes
I implemented some of them, but not all.
Grapeshot wrote:
-Slalom has lines that are displaced suggesting that you're using a PPU design that draws a whole line at a time. Sadly there's no way to deal with all the raster effects that the NES can do using a line at a time renderer.
I'm actually using per-pixel rendering. I suspect there's a bug in my PPU scrolling implementation.
Grapeshot wrote:
Turning off the triangle wave should leave it outputting its current value instead of resetting it to zero (this is the cause of a lot of popping sounds)
You're right, that reduced the popping. However, I can still hear it. There must be something else I'm missing.
Grapeshot wrote:
Similarly, changing the fine period or duty cycle on the square waves should not reset them. Changing the coarse period should reset the counters though.
I'm only reseting the duty cycle and envelope during write to $4003/$4007.
Grapeshot wrote:
Higher pitches are increasingly flat. Is there an off by one error on the counters for the square waves?
I checked it and it seems to me it's right:
Code:
if --timerCycle <= 0
# Duty period is 2 * 8 * (timerPeriod + 1) APU cycles
timerCycle = (timerPeriod + 1) << 1
dutyPosition = (dutyPosition + 1) & 0x7
Grapeshot wrote:
Resizing the window causes the audio pitch to change too. I know you're probably trying to compensate for framerate drops but it sounds terrible and takes a while to recover. You should run the APU for more cycles to fill the buffer instead.
You're right. I'm adjusting sampling rate to prevent audio buffer underflow/overflow and it's causing these transitions when framerate changes.