TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.21k stars 385 forks source link

NesHawk on Windows 8 runs too slow #2891

Closed andrzejlisek closed 3 years ago

andrzejlisek commented 3 years ago

Summary

Nes emulation using NesHawk core is too slow and not playable. The sound is distorted and the speed is about 45fps instead of 60fps. The CPU usage is 20-30% (two-core processor).

Repro

  1. Open BizHawk
  2. Select the BizHawk as NES core
  3. Enable FPS display
  4. Run any NES application
  5. Check the CPU usage in task manager

Output

There is not a error, the game runs correctly, but is too slow, while CPU core is not fully used.

Host env.

BizHawk any from 2.4; Win8 Pro 64-bit, .NET 4.6.2; Intel/AMD

Increasing frameskip, turning off auto-minimize skipping, and setting speed to 400% does neither solve the problem nor increase the game speed, while the CPU usage is not full (about 20%, up to 30%). In the same environment, other NES emulators (Nestopia, VirtuaNES and FCEUX) runs correctly at the correct speed (60FPS).

Games playable using QuickNes core are, played without any problems at full speed.

Emulating Nintendo SNES, Nintendo GameBoy, Sega GameGear, Sega Master System, Sega Genesis, Sega 32X on the same machine in the same environment works correctly, without any problems, and speed increasing is possible.

Spikestuff commented 3 years ago

The CPU usage is 20-30% (two-core processor)

It's your system being out of date, not the emulator. Upgrade your system and get a modern CPU with more than a dual-core.

YoshiRulz commented 3 years ago

More cores isn't really going to help. 2 should be enough, as long as you don't have other programs running. In any case, there's nothing actionable here, we already provide a performance-focused alternative in QuickNes.

andrzejlisek commented 3 years ago

I again checked, which processor I have on the laptop and I have 4 logical processors on 2 physical cores. If I switch do display logical core graph, none of core is fully used.

The graph is captured after 15-20 seconds of playing in fast forward mode (pressing the Tab button). On the status bar, you can see, which NES core is used.

NES1 NES2

Is this computer is enough to play NesHawk? What is the reason of problem? Too slow CPU?

alyosha-tas commented 3 years ago

This issue has been brought up several times in the forums as well. As best I can tell it only effects certain computers but for unknown reasons (it's always worked fine for me, even on older hardware.) Nothing I can do about it as I don't have an effected system in front of me to check what's slowing it down.

zeromus commented 3 years ago
  1. try changing config > display > display method (this is exactly what these options exist for)
  2. try changing config > speed/skip > throttle methods
andrzejlisek commented 3 years ago
1. try changing config > display > display method (this is exactly what these options exist for)

2. try changing config > speed/skip > throttle methods

I tried both options before and does not help. The frame skipping seems be not working when using NesHawk, but it works in QuickNes. If I uncheck the "Auto minimize skipping" and select "Skip 1..9" > "9", the picture is also smooth as without frame skipping.

zeromus commented 3 years ago

my ryzen 5950x has a single thread benchmark of 3498. neshawk runs at 265fps for me.

your core i3-350m single thread benchmark is 879. Therefore I expect neshawk to run at 66fps for you.

I also note your CPU is not running at 2.27ghz in either case. You may only be getting 92% of performance so that puts you barely at 60.

If your system is vsyncing (config > speed/skip > vsync enabled) or forcibly vsyncing (due to GPU options) that would make it erratically fail to hit 60 and then drop way down while your CPU idles.

I still diagnose this as crappy CPU and misconfigured system. Try running PSX core which should be approximately as brutal on the CPU as neshawk.

TiKevin83 commented 3 years ago

11 year old system, seeing it underclocking itself, yeah ostensibly it should be able to run 60-80fps but 45 isn't too far off expectations. Try blowing out the heatsink+fans, may need to repaste the heatsink too if it's still throttling.