Previous Thread
Next Thread
Print Thread
Page 2 of 10 1 2 3 4 9 10
Joined: Dec 2008
Posts: 35
C
Member
OP Offline
Member
C
Joined: Dec 2008
Posts: 35
gummybear, can you please post the contents of both your Nestopia.log and Nestopia.xml files?

1. Launch Nestopia
2. run the game and wait for the problem to happen some
3. close Nestopia
4. Go to the directory where you ran Nestopia.exe from
5. copy and paste the file contents to this thread.

I am still suspicious that this may have something to do with the PC's hardware timer. Nestopia consults the hardware timer to determine if it needs to skip frames (to catch up to the actual time it should be at) or wait (to slow down to the actual time it should be at) to keep the emulation running at the right speed.

Nestopia can use an HPET if available, but then falls back on a multimedia timer. Or, if you are running with VSYNC enabled and "synchornize to refresh rate" checked AND your monitor refresh rate matches the ROMs framerate, it will just rely on Direct3D's built-in VBlank waiting (which is implemented via a multimedia timer anyway) to throttle the emulation.


My PC
GA-X58A-UDR3
i7-920 @ 3.2GHz
8GB DDR3
ATI Radeon HD 4890
Win7 RTM x64
Joined: Apr 2010
Posts: 16
G
Member
Offline
Member
G
Joined: Apr 2010
Posts: 16
Okay, there you go:

Nestopia log file version 1.41
-----------------------------------

Language: loaded "english.nlg" version 1.41.0.01
Direct3D: initializing..
Direct3D: enumerating device - name: NVIDIA GeForce GTX 295, GUID: D7B71E3E-46A0-11CF-6355-45261FC2C535
Direct3D: dynamic textures: supported
Direct3D: texture bilinear filtering: supported
Direct3D: max texture dimensions: 8192x8192
Direct3D: scanline effect: supported
Direct3D: vsync on every second refresh: supported
Direct3D: vsync on every third refresh: supported
Direct3D: found 38 display modes
Direct3D: supported monitor frequencies: 50hz, 59hz, 60hz, 75hz
Direct3D: creating HAL device #0
Direct3D: entering 1920x1200x32 60hz window mode
DirectSound: initializing..
DirectSound: enumerating device - name: Primary Sound Driver, GUID: unspecified
DirectSound: enumerating device - name: Speakers (Creative SB X-Fi), GUID: 44B322E5-BB9A-4774-BAF9-0B27B0DE8EF9
DirectSound: creating device #1
DirectInput: initializing..
DirectInput: enumerating device - name: Saitek Cyborg Pad for PC/Xbox 360, GUID: 6F333D40-E29F-11DE-8006-444553540000
DirectInput: found 1 attached joystick(s)
Direct3D: enabling VSYNC
Timer: performance counter present (3525351 hz)
Kaillera: found "kailleraclient.dll" version 0.9
Launcher: database file "launcher.xml" not present
Fds: BIOS ROM ok
Database: 2894 items imported from internal DB
Configuration: warning, unused/invalid parameter: "x"
Configuration: warning, unused/invalid parameter: "y"
Emulator: loading "D:\Emulator Games\NEStopia\Games\Mega Man 2 (U).nes"
Ines: 256k PRG-ROM set
Ines: vertical mirroring set
Ines: NTSC set
Ines: mapper 1 set
Board: NES-SGROM
Board: 256k PRG-ROM
Board: 8k V-RAM
Board: MMC rev. B2
Direct3D: entering 1920x1200x32 60hz full-screen mode
Direct3D: entering 1920x1200x32 60hz window mode
Emulator: unloaded "D:\Emulator Games\NEStopia\Games\Mega Man 2 (U).nes"


And here are the settings:

<?xml version="1.0" encoding="UTF-8"?>
<configuration version="1.41">
<cheats>
<show-hex-code-view>no</show-hex-code-view>
<show-hex-main-view>no</show-hex-main-view>
</cheats>
<image-database>
<external>no</external>
<file />
<internal>yes</internal>
</image-database>
<input>
<allow-simultaneous-axes>no</allow-simultaneous-axes>
<auto-fire-speed>3</auto-fire-speed>
<joysticks>
<joystick>
<deadzone>50</deadzone>
<device>6F333D40-E29F-11DE-8006-444553540000</device>
<enabled>yes</enabled>
<scan>
<p0>yes</p0>
<p1>yes</p1>
<p2>yes</p2>
<p3>yes</p3>
<rx>yes</rx>
<ry>yes</ry>
<rz>yes</rz>
<x>yes</x>
<y>yes</y>
<z>yes</z>
<z0>no</z0>
<z1>no</z1>
</scan>
</joystick>
</joysticks>
<keys>
<crazyclimber>
<left-down>S</left-down>
<left-left>A</left-left>
<left-right>D</left-right>
<left-up>W</left-up>
<right-down>H</right-down>
<right-left>G</right-left>
<right-right>J</right-right>
<right-up>Z</right-up>
</crazyclimber>
<emulation>
<alt-speed>Tabulator</alt-speed>
<insert-coin-1>F2</insert-coin-1>
<insert-coin-2>F3</insert-coin-2>
<rewind>Rück</rewind>
</emulation>
<excitingboxing>
<body>Nach-unten</body>
<left-hook>K</left-hook>
<left-jab>,</left-jab>
<left-move>Nach-links</left-move>
<right-hook>L</right-hook>
<right-jab>.</right-jab>
<right-move>Nach-rechts</right-move>
<straight>Nach-oben</straight>
</excitingboxing>
<file>
<exit>Alt+X</exit>
<launcher>Alt+L</launcher>
<load-state>F7</load-state>
<open>Strg+O</open>
<quick-load-state-1>1</quick-load-state-1>
<quick-load-state-2>2</quick-load-state-2>
<quick-load-state-3>3</quick-load-state-3>
<quick-load-state-4>4</quick-load-state-4>
<quick-load-state-5>5</quick-load-state-5>
<quick-load-state-6>6</quick-load-state-6>
<quick-load-state-7>7</quick-load-state-7>
<quick-load-state-8>8</quick-load-state-8>
<quick-load-state-9>9</quick-load-state-9>
<quick-load-state-newest>0</quick-load-state-newest>
<quick-save-state-1>Umschalt+1</quick-save-state-1>
<quick-save-state-2>Umschalt+2</quick-save-state-2>
<quick-save-state-3>Umschalt+3</quick-save-state-3>
<quick-save-state-4>Umschalt+4</quick-save-state-4>
<quick-save-state-5>Umschalt+5</quick-save-state-5>
<quick-save-state-6>Umschalt+6</quick-save-state-6>
<quick-save-state-7>Umschalt+7</quick-save-state-7>
<quick-save-state-8>Umschalt+8</quick-save-state-8>
<quick-save-state-9>Umschalt+9</quick-save-state-9>
<quick-save-state-oldest>Umschalt+0</quick-save-state-oldest>
<save-screenshot>Alt+E</save-screenshot>
<save-state>F5</save-state>
</file>
<help>
<readme>F1</readme>
</help>
<horitrack>
<a>.</a>
<b>,</b>
<down>Nach-unten</down>
<left>Nach-links</left>
<orientation>D</orientation>
<right>Nach-rechts</right>
<select>Umschalt rechts</select>
<speed>S</speed>
<start>Eingabe</start>
<up>Nach-oben</up>
</horitrack>
<karaokestudio>
<a>H</a>
<b>J</b>
<mic>G</mic>
</karaokestudio>
<machine>
<change-disk-side>Umschalt+B</change-disk-side>
<hard-reset>Umschalt+T</hard-reset>
<no-sprite-limit-toggle>Umschalt+U</no-sprite-limit-toggle>
<pause>Umschalt+P</pause>
<power>Umschalt+D</power>
<soft-reset>Umschalt+R</soft-reset>
</machine>
<mahjong>
<a>Q</a>
<b>W</b>
<c>E</c>
<chi>B</chi>
<d>R</d>
<e>T</e>
<f>A</f>
<g>S</g>
<h>D</h>
<i>F</i>
<j>G</j>
<k>H</k>
<kan>C</kan>
<l>J</l>
<m>K</m>
<n>L</n>
<pon>V</pon>
<reach>N</reach>
<ron>M</ron>
<select>X</select>
<start>Y</start>
</mahjong>
<nsf>
<next-song>Umschalt+Nach-rechts</next-song>
<play-song>Umschalt+Nach-oben</play-song>
<previous-song>Umschalt+Nach-links</previous-song>
<stop-song>Umschalt+Nach-unten</stop-song>
</nsf>
<pachinko>
<a>.</a>
<b>,</b>
<down>Nach-unten</down>
<left>Nach-links</left>
<right>Nach-rechts</right>
<select>Umschalt rechts</select>
<start>Eingabe</start>
<up>Nach-oben</up>
</pachinko>
<pad-1>
<a>(joy 0) 1</a>
<auto-fire-a>(joy 0) 3</auto-fire-a>
<auto-fire-b>(joy 0) 2</auto-fire-b>
<b>(joy 0) 0</b>
<down>(joy 0) +p0y</down>
<left>(joy 0) -p0x</left>
<mic>0 (zehnertastatur)</mic>
<right>(joy 0) +p0x</right>
<select>(joy 0) 6</select>
<start>(joy 0) 7</start>
<up>(joy 0) -p0y</up>
</pad-1>
<pad-2>
<a>X</a>
<auto-fire-a>W</auto-fire-a>
<auto-fire-b>Q</auto-fire-b>
<b>Y</b>
<down>V</down>
<left>C</left>
<mic>M</mic>
<right>B</right>
<select>A</select>
<start>S</start>
<up>F</up>
</pad-2>
<pad-3>
<a>...</a>
<auto-fire-a>...</auto-fire-a>
<auto-fire-b>...</auto-fire-b>
<b>...</b>
<down>...</down>
<left>...</left>
<mic>...</mic>
<right>...</right>
<select>...</select>
<start>...</start>
<up>...</up>
</pad-3>
<pad-4>
<a>...</a>
<auto-fire-a>...</auto-fire-a>
<auto-fire-b>...</auto-fire-b>
<b>...</b>
<down>...</down>
<left>...</left>
<mic>...</mic>
<right>...</right>
<select>...</select>
<start>...</start>
<up>...</up>
</pad-4>
<partytap>
<unit-1>Q</unit-1>
<unit-2>W</unit-2>
<unit-3>E</unit-3>
<unit-4>R</unit-4>
<unit-5>T</unit-5>
<unit-6>Z</unit-6>
</partytap>
<pokkunmoguraa>
<row-1-button-1>T</row-1-button-1>
<row-1-button-2>Z</row-1-button-2>
<row-1-button-3>U</row-1-button-3>
<row-1-button-4>I</row-1-button-4>
<row-2-button-1>G</row-2-button-1>
<row-2-button-2>H</row-2-button-2>
<row-2-button-3>J</row-2-button-3>
<row-2-button-4>K</row-2-button-4>
<row-3-button-1>B</row-3-button-1>
<row-3-button-2>N</row-3-button-2>
<row-3-button-3>M</row-3-button-3>
<row-3-button-4>,</row-3-button-4>
</pokkunmoguraa>
<powerglove>
<move-in>A</move-in>
<move-out>Y</move-out>
<roll-left>X</roll-left>
<roll-right>C</roll-right>
<select>Umschalt rechts</select>
<start>Eingabe</start>
</powerglove>
<powerpad>
<side-a-1>Q</side-a-1>
<side-a-10>X</side-a-10>
<side-a-11>C</side-a-11>
<side-a-12>V</side-a-12>
<side-a-2>W</side-a-2>
<side-a-3>E</side-a-3>
<side-a-4>R</side-a-4>
<side-a-5>A</side-a-5>
<side-a-6>S</side-a-6>
<side-a-7>D</side-a-7>
<side-a-8>F</side-a-8>
<side-a-9>Y</side-a-9>
<side-b-10>M</side-b-10>
<side-b-11>N</side-b-11>
<side-b-2>U</side-b-2>
<side-b-3>Z</side-b-3>
<side-b-5>K</side-b-5>
<side-b-6>J</side-b-6>
<side-b-7>H</side-b-7>
<side-b-8>G</side-b-8>
</powerpad>
<view>
<fullscreen>Alt+Eingabe</fullscreen>
<screen-size-1x>Alt+1</screen-size-1x>
<screen-size-2x>Alt+2</screen-size-2x>
<screen-size-3x>Alt+3</screen-size-3x>
<screen-size-4x>Alt+4</screen-size-4x>
<screen-size-5x>Alt+5</screen-size-5x>
<screen-size-6x>Alt+6</screen-size-6x>
<screen-size-7x>Alt+7</screen-size-7x>
<screen-size-8x>Alt+8</screen-size-8x>
<screen-size-9x>Alt+9</screen-size-9x>
<screen-size-max>Alt+S</screen-size-max>
<toggle-fps>Strg+F</toggle-fps>
<toggle-menu>Esc</toggle-menu>
<toggle-status-bar>Strg+B</toggle-status-bar>
<toggle-window-on-top>Strg+T</toggle-window-on-top>
</view>
</keys>
</input>
<language>
<file>D:\Emulator Games\NEStopia\language\english.nlg</file>
</language>
<launcher>
<search>
<directories />
<files>
<any-extension>no</any-extension>
<archive>yes</archive>
<duplicates>no</duplicates>
<fds>yes</fds>
<nes>yes</nes>
<nsf>yes</nsf>
<patch>yes</patch>
<unf>yes</unf>
<xml>yes</xml>
</files>
</search>
<view>
<colors>
<background>0x00FFFFFF</background>
<foreground>0x00000000</foreground>
</colors>
<columns>
<column>file</column>
<column>system</column>
<column>mapper</column>
<column>prg</column>
<column>chr</column>
<column>wram</column>
<column>vram</column>
<column>battery</column>
<column>dump</column>
</columns>
<show>
<grid-lines>yes</grid-lines>
<image-database-adjusted>yes</image-database-adjusted>
<on-top>no</on-top>
</show>
</view>
</launcher>
<machine>
<adapter>auto</adapter>
<auto-select-controllers>yes</auto-select-controllers>
<dip-switches-on-load>yes</dip-switches-on-load>
<no-sprite-limit>yes</no-sprite-limit>
<port-1>pad1</port-1>
<port-2>pad2</port-2>
<port-3>unconnected</port-3>
<port-4>unconnected</port-4>
<port-5>unconnected</port-5>
<region>auto</region>
</machine>
<netplay>
<fullscreen>no</fullscreen>
</netplay>
<nsf>
<play-in-background>yes</play-in-background>
</nsf>
<paths>
<cheats>
<auto-load>no</auto-load>
<auto-save>no</auto-save>
<directory>D:\Emulator Games\NEStopia\cheats\</directory>
</cheats>
<fds>
<bios>D:\Emulator Games\NEStopia\disksys.rom</bios>
<led>screen</led>
<save-method>patch</save-method>
</fds>
<images>
<directory>D:\Emulator Games\NEStopia\Games\</directory>
<recent-directory>D:\Emulator Games\NEStopia\Games\</recent-directory>
<use-recent-directory>no</use-recent-directory>
</images>
<patches>
<auto-apply>no</auto-apply>
<bypass-validation>no</bypass-validation>
<directory>D:\Emulator Games\NEStopia\patches\</directory>
</patches>
<recent>
<directories>
<directory>D:\Emulator Games\NEStopia\Games\</directory>
<locked>no</locked>
</directories>
<files>
<file>D:\Emulator Games\NEStopia\Games\Mega Man 2 (U).nes</file>
<locked>no</locked>
</files>
</recent>
<samples>
<directory>D:\Emulator Games\NEStopia\samples\</directory>
</samples>
<saves>
<directory>D:\Emulator Games\NEStopia\save\</directory>
<force-read-only>no</force-read-only>
</saves>
<screenshots>
<directory>D:\Emulator Games\NEStopia\screenshots\</directory>
<format>png</format>
</screenshots>
<states>
<auto-export>yes</auto-export>
<auto-import>yes</auto-import>
<directory>D:\Emulator Games\NEStopia\states\</directory>
<use-compression>yes</use-compression>
</states>
<tapes>
<file />
<use-image-name>yes</use-image-name>
</tapes>
</paths>
<preferences>
<appearance>
<icon-style>nes</icon-style>
<menu-desktop>
<custom-color>0x00EFCA18</custom-color>
<use-custom-color>no</use-custom-color>
</menu-desktop>
<menu-fullscreen>
<custom-color>0x00EFCA18</custom-color>
<use-custom-color>no</use-custom-color>
</menu-fullscreen>
</appearance>
<application>
<allow-multiple-instances>no</allow-multiple-instances>
<autostart>yes</autostart>
<confirm-exit>no</confirm-exit>
<confirm-reset>no</confirm-reset>
<exit-power-off>no</exit-power-off>
<favored-system>nes-ntsc</favored-system>
<favored-system-always-ask>no</favored-system-always-ask>
<run-background>no</run-background>
<start-fullscreen>no</start-fullscreen>
<suppress-warnings>no</suppress-warnings>
</application>
<save>
<cheats>yes</cheats>
<launcher>yes</launcher>
<logfile>yes</logfile>
<netplay-list>yes</netplay-list>
<settings>yes</settings>
<window-launcher>yes</window-launcher>
<window-main>yes</window-main>
</save>
</preferences>
<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>
<volumes>
<apu>
<dpcm>85</dpcm>
<noise>85</noise>
<square-1>85</square-1>
<square-2>85</square-2>
<triangle>85</triangle>
</apu>
<external>
<fds>85</fds>
<mmc5>85</mmc5>
<n163>85</n163>
<s5b>85</s5b>
<vrc6>85</vrc6>
<vrc7>85</vrc7>
</external>
<master>35</master>
</volumes>
</sound>
<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>
<rewinder>
<enabled>no</enabled>
<sound>yes</sound>
<speed>60</speed>
<use-native-speed>yes</use-native-speed>
</rewinder>
<speed>
<alt-speed>120</alt-speed>
<alt-speed-sound>yes</alt-speed-sound>
<default-speed>60</default-speed>
<use-native-speed>yes</use-native-speed>
</speed>
</timing>
<video>
<auto-display-frequency>yes</auto-display-frequency>
<colors>
<brightness>100</brightness>
<contrast>100</contrast>
<hue>0</hue>
<saturation>100</saturation>
</colors>
<decoder>
<by>
<angle>15</angle>
<gain>1.015</gain>
</by>
<gy>
<angle>251</angle>
<gain>0.351</gain>
</gy>
<ry>
<angle>105</angle>
<gain>0.570</gain>
</ry>
<yellow-boost>no</yellow-boost>
</decoder>
<device>D7B71E3E-46A0-11CF-6355-45261FC2C535</device>
<filters>
<2xsai>
<bilinear>no</bilinear>
</2xsai>
<hqx>
<bilinear>no</bilinear>
<scale>auto</scale>
</hqx>
<ntsc>
<artifacts>100</artifacts>
<auto-tuning>yes</auto-tuning>
<bilinear>no</bilinear>
<colorbleed>100</colorbleed>
<field-merging>auto</field-merging>
<fringing>100</fringing>
<resolution>100</resolution>
<scanlines>0</scanlines>
<sharpness>100</sharpness>
<tv-aspect>yes</tv-aspect>
</ntsc>
<scalex>
<bilinear>no</bilinear>
<scale>auto</scale>
</scalex>
<standard>
<bilinear>no</bilinear>
<scanlines>0</scanlines>
</standard>
<type>2xsai</type>
</filters>
<fullscreen>
<bpp>32</bpp>
<height>1200</height>
<width>1920</width>
</fullscreen>
<memory-pool>video</memory-pool>
<palette>
<file />
<type>auto</type>
</palette>
<region>
<ntsc>
<bottom>231</bottom>
<left>0</left>
<right>255</right>
<top>8</top>
</ntsc>
<pal>
<bottom>239</bottom>
<left>0</left>
<right>255</right>
<top>1</top>
</pal>
</region>
<screen-curvature>10</screen-curvature>
<tv-aspect-ratio>no</tv-aspect-ratio>
</video>
<view>
<show>
<fps>no</fps>
<on-top>no</on-top>
<status-bar>yes</status-bar>
<window-menu>yes</window-menu>
</show>
<size>
<fullscreen>matched</fullscreen>
<window>4</window>
</size>
<window-position>
<bottom>1070</bottom>
<left>412</left>
<right>1448</right>
<top>71</top>
</window-position>
</view>
<window-size>
<x>0</x>
<y>0</y>
</window-size>
</configuration>

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.

Unfortunately, I know nothing of the high-resolution multimedia timer functions of Direct3D. The most I've needed until now was Windows' timer queue API (haven't dealt with the waitable timer nor QPC yet), which is surely awful for multimedia smile
Maybe I should just go bug ASUS to activate HPET in their BIOSes... It IS about time it's implemented everywhere.

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).

What hardware timer does Nestopia call? The performance counter via QPC, right (judging by the log)? I'd really like to help, but as you can see, my knowledge is limited smile
I understand that newer CPUs' speedstepping messes up the counters (laptops like to do this), but I've got Windows' power profile set to "high performance" and NVIDIA's graphics card equivalent to the same, so speedstepping shouldn't come into this, CPU or GPU. I'll try disabling it in the BIOS anyway. Anything else you might like me try? I'm open for suggestions smile

It's just funny that FCEUX (and Nintendulator), for instance, works flawlessly. It too uses a high-precision timing thread in order to be TAS-safe. Plus: Nestopia works fine on XP. Though I've yet to try buzbard's suggestion of using the XP virtual mode, Win7's compatibility option does nothing. I'm puzzled.

Last edited by gummybear; 04/11/10 12:15 AM.
Joined: Apr 2010
Posts: 16
G
Member
Offline
Member
G
Joined: Apr 2010
Posts: 16
Okay, it was a long shot, but yeah, disabling speedstepping and C1E in the BIOS didn't work.

I should also mention that though Nestopia appeared to work fine on XP, I also used a different PC altogether then.

Still puzzled, though smile

Joined: Dec 2008
Posts: 35
C
Member
OP Offline
Member
C
Joined: Dec 2008
Posts: 35
Thank you for the detailed info, gummybear. I will continue to look into this as I have time to. My first priority is to see if I can reproduce this on my end, and that means I need to see what all might be different between your setup and mine. This is where the Nestopia.xml and Nestopia.log files will be very helpful.


My PC
GA-X58A-UDR3
i7-920 @ 3.2GHz
8GB DDR3
ATI Radeon HD 4890
Win7 RTM x64
Joined: Dec 2008
Posts: 35
C
Member
OP Offline
Member
C
Joined: Dec 2008
Posts: 35
Originally Posted By gummybear
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:

Quote:
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.

Originally Posted By gummybear
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.

Originally Posted By gummybear
<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.

Originally Posted By gummybear
<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.

Originally Posted By gummybear
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.

Originally Posted By gummybear
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.

Originally Posted By gummybear
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.

Originally Posted By gummybear
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.

Originally Posted By gummybear
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.


My PC
GA-X58A-UDR3
i7-920 @ 3.2GHz
8GB DDR3
ATI Radeon HD 4890
Win7 RTM x64
Joined: Apr 2010
Posts: 16
G
Member
Offline
Member
G
Joined: Apr 2010
Posts: 16
First of all, thank you again for taking the time!

Thought so about the FPS counter. Thanks for confirming that.

Good to know the log indicates I do have an HPET. I know Windows Vista was the first Windows consumer OS to support it, so its presence in the system devices was no surprise. "No drivers are installed for this device" therefore does not mean its absence, does it? Various forums suggested otherwise, so please excuse my misconception. Since you're a Windows developer, I clearly trust your knowledge more smile
What's sad is that even relying on HPET and not D3D's multimedia timer does not fix this. Please realize that I've, by now, tried every type of configuration I could think of. I'm not stuck in the above.

I know about the resolution and I know about the limitations of the human ear. Pay no mind to either values, as they do not appear to matter in the slightest concerning this problem (well, here they don't). Please think back to my previous posts: I've already tried numerous resolutions (16 and 32 bit) and numerous sampling rates; every option present. I stated twice that I aligned them with my playback device's set sampling rate, so Windows would not have to do software resampling (which I, too, know about wink ). I was merely trying different things out. I'm sorry for the confusion.

As for the refresh rate, please look here: http://support.microsoft.com/kb/2006076/
Then here: http://www.sevenforums.com/tutorials/33641-screen-refresh-rate-custom-nvidia-brand.html
As I stated before, this has been by design since Vista and is a known "problem". It is more accurate than what XP was doing (rounding up), but it causes issues with VSync in quite a number of even recent games (Modern Warfare, for one), because they're apparently badly coded: Their VSync expectation of 60 Hz seems to be hardcoded into them, so supplying any other frequency results in stuttering. Setting it to 60.001 Hz in the NV control applet fixes that. My monitor is an HP LP2475w. I've got its 2.0.0.0 drivers installed via Windows Update.
Yet again, as I mentioned before, supplying other frequencies to Nestopia for VSyncing does nothing to fix its audio stuttering. I apologize if I seem patronizing. As a Windows dev, you might know all this already.

Edit: One more thing: Forcing the maximum pre-rendered frames option up or down in the NV driver applet does nothing to fix this as well and neither does forcing Nestopia to use only a single GPU.

I qualified my XP statement (I used another computer altogether), so I believe I reigned in my initial generalization. Please take it as just another observation. That was an old machine: Athlon 64 3500+, MSI K8N Neo4 Platinum, Geforce 7800 GT, 1GB DDR2 RAM. I used XP SP3. My Nestopia configuration was the same, though with a lower sampling rate (44100 Hz) and my old monitor's native resolution (1280×1024). I've tried those in Win7 on this new machine and they don't fix it.
Please bear with me, I'm just supplying you with information here smile

I'll e-mail you an MP3 right away.

Edit: And I did, but for any other people having this issue and wanting to confirm that it's indeed theirs as well, here's a download link: http://www.sendspace.com/file/wlqyqp
It was done with "synchronize to refresh rate" set, VSync and triple buffering on, sound latency set to "1" and in window mode. Fullscreen is the same. My monitor refresh rate was forced to 60.001 Hz. Changing that back to default or other values near or precisely 60 Hz has no effect here. "Use high precision timer" is set as well, but disabling it had no effect, too. My recording software is Audacity.
If anyone else wants to chime in, please feel welcome. Maybe you can provide c0d3h4x0r with some more info he might need smile

Last edited by gummybear; 04/12/10 01:53 PM.
Joined: Sep 2008
Posts: 11
B
Member
Offline
Member
B
Joined: Sep 2008
Posts: 11
Originally Posted By c0d3h4x0r
Originally Posted By gummybear
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.


Just curious, how do lower the resolution of Nestopia? My system resolution is 1680x1050x32 60hz and in Nestopia in the video options I have 1024x768x16, but when I run Nestopia and then check the Nestopia.log file I see this:

Direct3D: entering 1680x1050x32 60hz window mode


Also, I was wondering if anyone had tried the XP mode for Win7 that I suggested above, I don't have Win7 so was just curious to see if it actually works.

Joined: Mar 2001
Posts: 16,813
Likes: 34
R
Very Senior Member
Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,813
Likes: 34
XP mode in Win 7 is Virtual PC and has all the limitations for games/emulators that implies - no D3D acceleration, etc, etc.

(VMWare 7.1 beta has fantastic D3D9 and OGL 2.1 acceleration in the guest though so I'd be surprised if MS didn't try to catch up).

Joined: Dec 2008
Posts: 35
C
Member
OP Offline
Member
C
Joined: Dec 2008
Posts: 35
Originally Posted By buzbard
Direct3D: entering 1680x1050x32 60hz window mode

That line indicates that you are not running Nestopia in full-screen mode. The resolution you pick in the video settings dialog only applies to fullscreen mode. You have to switch Nestopia to fullscreen mode by using View->Fullscreen from Nestopia's menu or by pressing ALT+ENTER.


My PC
GA-X58A-UDR3
i7-920 @ 3.2GHz
8GB DDR3
ATI Radeon HD 4890
Win7 RTM x64
Joined: Dec 2008
Posts: 35
C
Member
OP Offline
Member
C
Joined: Dec 2008
Posts: 35
Originally Posted By R. Belmont
XP mode in Win 7 is Virtual PC and has all the limitations for games/emulators that implies - no D3D acceleration, etc, etc.


Correct.

Originally Posted By R. Belmont
(VMWare 7.1 beta has fantastic D3D9 and OGL 2.1 acceleration in the guest though so I'd be surprised if MS didn't try to catch up).


When it comes to virtualization, the money is overwhelmingly in the server scenarios, where D3D and OGL support are irrelevant. But hey, you never know.


My PC
GA-X58A-UDR3
i7-920 @ 3.2GHz
8GB DDR3
ATI Radeon HD 4890
Win7 RTM x64
Page 2 of 10 1 2 3 4 9 10

Moderated by  Marty, R. Belmont 

Link Copied to Clipboard
Who's Online Now
4 members (gspat, Vas Crabb, Olivier Galibert, Dam0), 37 guests, and 3 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,978
Posts117,930
Members5,003
Most Online890
Jan 17th, 2020
Forum Host
These forums are hosted by www.retrogamesformac.com
Forum hosted by www.retrogamesformac.com