mirror of https://github.com/bsnes-emu/bsnes.git
Fill out the FAQ.
This commit is contained in:
parent
c52b05a0de
commit
4c4a1dcb67
79
docs/faq.md
79
docs/faq.md
|
@ -80,13 +80,78 @@ while higan waits for a video frame to be shown,
|
||||||
and video is likely to stutter
|
and video is likely to stutter
|
||||||
while higan waits for an audio buffer to complete.
|
while higan waits for an audio buffer to complete.
|
||||||
|
|
||||||
This game is running too fast!
|
Games run too fast
|
||||||
------------------------------
|
------------------
|
||||||
|
|
||||||
TODO
|
higan runs as fast as it can,
|
||||||
|
but it will pause and wait
|
||||||
|
for the audio and video drivers to catch up
|
||||||
|
if [Synchronize Audio](interface/higan.md#the-settings-menu)
|
||||||
|
and [video synchronization][vsync]
|
||||||
|
are enabled, respectively.
|
||||||
|
If games are running way too fast, here's some things to check:
|
||||||
|
|
||||||
games run in fast-forward if there's no audio device
|
- Make sure "Synchronize Audio" is ticked in
|
||||||
https://board.byuu.org/viewtopic.php?p=44138#p44138
|
[the Settings menu](interface/higan.md#the-settings-menu)
|
||||||
|
- Make sure the Audio driver is not set to "None"
|
||||||
|
in [the Advanced settings](interface/higan-config.md#advanced)
|
||||||
|
(remember to restart higan if you change driver settings)
|
||||||
|
- Make sure your computer has speakers or headphones connected
|
||||||
|
(some computers disable all audio if no ouputs are available)
|
||||||
|
- If you want the game to be silent,
|
||||||
|
tick "Mute Audio" in
|
||||||
|
[the Settings menu](interface/higan.md#the-settings-menu)
|
||||||
|
|
||||||
Can I run higan on a phone or tablet?
|
[vsync]: #i-see-tearing-when-a-game-scrolls-how-can-i-enable-vsync
|
||||||
-------------------------------------
|
|
||||||
|
Why is higan so much slower than other emulators?
|
||||||
|
-------------------------------------------------
|
||||||
|
|
||||||
|
The consoles higan emulates
|
||||||
|
generally contain different devices
|
||||||
|
(say, a CPU, an audio chip and a video chip)
|
||||||
|
that do their own thing,
|
||||||
|
but can interrupt each other at any time.
|
||||||
|
Games can and do depend on timing details like
|
||||||
|
"when the audio chip is done playing this sound,
|
||||||
|
it will interrupt the CPU at exactly the right time
|
||||||
|
for the CPU to fiddle with the video chip".
|
||||||
|
higan is therefore very cautious about timing:
|
||||||
|
it always checks all possible devices
|
||||||
|
to see if anyone wants to interrupt anyone else
|
||||||
|
before proceeding to the next emulated step.
|
||||||
|
Although repeated checking is slow,
|
||||||
|
higan checks anyway
|
||||||
|
to ensure the emulated console
|
||||||
|
always matches the behaviour
|
||||||
|
of the original.
|
||||||
|
|
||||||
|
Other emulators,
|
||||||
|
especially ones that are popular on phones and tablets,
|
||||||
|
typically work differently.
|
||||||
|
Although emulated devices *can* interrupt each other at any time,
|
||||||
|
usually they don't,
|
||||||
|
and often the only exceptions are a handful of unpopular games.
|
||||||
|
So it's pretty safe
|
||||||
|
(and much, much more efficient)
|
||||||
|
to let certain devices run "ahead" of the others.
|
||||||
|
For example,
|
||||||
|
letting the video chip render an entire scanline at a time
|
||||||
|
instead of working pixel-by-pixel.
|
||||||
|
The downside is that some games don't work properly
|
||||||
|
in these emulators,
|
||||||
|
with game-breaking bugs,
|
||||||
|
minor visual glitches,
|
||||||
|
or anything in between.
|
||||||
|
|
||||||
|
Some emulators try to recognise
|
||||||
|
when the user loads a specific problematic game,
|
||||||
|
and will adjust the shortcuts the emulator takes
|
||||||
|
so that the game runs correctly.
|
||||||
|
This is a good way to increase game compatibility
|
||||||
|
without losing efficiency,
|
||||||
|
but it means the emulator does not accurately reflect
|
||||||
|
how the original console worked,
|
||||||
|
and it requires the emulator authors to diagnose and work around
|
||||||
|
each individual supported game,
|
||||||
|
instead of having one emulator that works for everything.
|
||||||
|
|
Loading…
Reference in New Issue