fix mmap is null error (do not emulate frame without rom present)
use device native samplerate for correct speed and eliminate resampler lag
use static 60fps since NTSC (60Hz) cpu freq is already statically declared in papu
embed example:
change default keybinds to the commonly used B=Z / A=X / START=ENTER / SELECT=SHIFT setup
make canvas pixel perfect (2x size)
add example functions for changing master volume and loading and saving nvram to window.localStorage
This earlier commit 161865d didn't really fix anything, it merely moved the wrong speed issue from devices with native samplerate of 48000 to ones which have native rate of 44100. It was never correct, as the output samplerate must match the one set in nes.opts.sampleRate because the frames are timed according to this samplerate.
Another way would be to define the AudioContext.sampleRate in the AudioContext() ctor but this would add an unnecessary resampling step. Better to use the device native samplerate and time it to that.
Also cleaned up some functions and variables which don't exist / aren't used. Overall this codebase is in dire need of refactoring and cleanup but on the other hand it works fine (after this PR) so I guess why fix when it ain't broken.
embed example:
This earlier commit 161865d didn't really fix anything, it merely moved the wrong speed issue from devices with native samplerate of 48000 to ones which have native rate of 44100. It was never correct, as the output samplerate must match the one set in
nes.opts.sampleRate
because the frames are timed according to this samplerate.Another way would be to define the AudioContext.sampleRate in the AudioContext() ctor but this would add an unnecessary resampling step. Better to use the device native samplerate and time it to that.
Also cleaned up some functions and variables which don't exist / aren't used. Overall this codebase is in dire need of refactoring and cleanup but on the other hand it works fine (after this PR) so I guess why fix when it ain't broken.