Timer: performance counter present (3525351 hz)
This line from your log indicates that you DO have an HPET enabled and accessible to Windows and Nestopia. For comparison, here's the output from my Nestopia.log:
Timer: performance counter present (3125029 hz)
As you can see, your HPET actually runs at a slightly faster frequency than even mine does, so that clearly isn't the problem.
Direct3D: entering 1920x1200x32 60hz full-screen mode
Any particular reason you are running Nestopia in such an incredibly high resolution mode and color depth? It's completely unnecessary and just makes your PC work harder. The original NEs color palette and resolution can easily fit within 16-bit color and 1024x768 resolution. I typically just run mine at 1024x768x16 -- that's plenty enough resolution to display the old NES graphics and even still take advantage of nice filters such as Hqx. You might see if dropping to a lower resolution mode fixes your issue.
<sound>
<adjust-pitch>no</adjust-pitch>
<buffers>1</buffers>
<device>44B322E5-BB9A-4774-BAF9-0B27B0DE8EF9</device>
<memory-pool>hardware</memory-pool>
<sample-bits>16</sample-bits>
<sample-rate>96000</sample-rate>
<speakers>stereo</speakers>
</sound>
Why in the world do you have your audio "sample-rate" set to 96000Hz? That's awfully high, and again completely unnecessary. The human ear can't even distinguish frequencies over 48000Hz anyway. If you right-click the speaker icon in Windows 7 and choose "Playback devices", then right-click on the same playback device you've chosen in Nestopia and choose "Properties", and then go to the "Advanced" tab, what bit-depth and sample rate is it configured for? In general, it's a bad idea to configure a program to use a different sample rate for output than the sample rate of your output device as configured in Windows. If the sample rates do not match, then the Windows audio stack has to do on-the-fly sample-rate conversion, which can result in all sorts of audio artifacting. Try setting both Nestopia and your audio device to 44100Hz and see if that fixes your issue.
<timing>
<auto-frame-skipping>
<enabled>no</enabled>
<max-frames>8</max-frames>
</auto-frame-skipping>
<performance>
<high-precision-timer>yes</high-precision-timer>
<triple-buffering>yes</triple-buffering>
<vsync>yes</vsync>
</performance>
</timing>
When you have both "synchronize to refresh rate" and "vsync" enabled, and you are running in a full-screen mode that matches the ROM's frame rate, Nestopia doesn't even need to use a hardware timer explicitly; it just relies on the fact that Direct3D's "vsync" implementation uses a multimedia timer under the hood to implement vertical scan synchronization. So the hardware timer can be ruled out here as the cause of the problem.
I just noticed that Nestopia's FPS counter most of the time shows me 60.5 FPS and very shortly from time to time jumps to exactly 60.0 and then back again.
Yep, mine does that too. The FPS calculation and display code is actually pretty badly-written and inaccurate. I'm actually working on improving it for my next unofficial release. Regardless, it has no relevance to the sound glitching problem.
Maybe I should just go bug ASUS to activate HPET in their BIOSes... It IS about time it's implemented everywhere.
As your Nestopia.log file shows, you have one, and it is enabled. So you're good there.
If it's any help: NVIDIA's control applet registers the GTX 295's pixel clock at 154.1306 MHz when I force the driver to use 60.001 Hz. It's 154.1280 MHz when set exactly to 60.000 Hz. Like I said, changing around the refresh rate does nothing (not even when set to exactly 59.94 Hz, which is NTSC officially).
Why are you forcing your NVIDIA driver to use 60.001Hz? It's possible this could be the cause of your glitching, but I would have to add more analysis and logging output and give you a private build to run to get a better idea of what is going on in your case surrounding the refresh rates.
What hardware timer does Nestopia call? The performance counter via QPC, right (judging by the log)?
That would be correct only if you were NOT using "synchronize to refresh rate" AND "vsync" AND running in a full-screen 60Hz mode. Some multi-core CPUs are buggy in that different cores can report different counter values, so MSDN recommends always forcing the thread onto CPU 0 before calling QPF/QPC, which I noticed Nestopia doesn't bother to do. But again, your configuration isn't even causing Nestopia to use the timer, so that shouldn't be the issue here.
Nestopia works fine on XP.
It works fine on Windows 7 too, just not for you. By saying "Nestopia works fine on XP" you are implying that the OS is the cause of the problem, but it clearly isn't since it works fine for me. There's something deeper going on here that we just haven't pinned down yet, but in the meantime it doesn't help to make generalized sweeping statements like this one. All it does is suggest things that aren't true.
I know you've done a lot to try to help me diagnose this already, but I'm wondering if you could do one more thing for me -- can you e-mail me (or post a download link to) an MP3 recording of the sound glitching? Since I'm unable to repro it on any of my machines, I don't even know what it sounds like or the severity of what we're dealing with here.