this fix is very important because without it, the frame queue is set to
zero. this means that the display is likely to be very choppy creating
a bad impression of the emulator for first time users
Windows volume names confused the Set() function
archivefs.Async no longer exits async goroutine on errors from Path
functions. exiting meant that the channels were no longer being
serviced, causing GUI deadlocks
statsviz support is presented in the form of a patch file. this is so
that the requirements of the patch don't become part of the project
unecessarily
the statsviz package is only needed for emulator development and including
the additional packages in the BOM creates a false impression of the
requirements (IMO)
patch can be applied with:
git apply --verbose 0001-statsviz.patch
Makefile has a "patch_file_integrity" target to test that patch files
can still be applied cleanly. ideal for calling from git pre-commit hook
patch was created with:
git diff > 0001-statsviz.patch
environment used to test the extent of the ARM.Plumb() function. this
function is called often from the caching package. some of the work done
by the Plumb() function is not needed for caching purposes and cases a
lot of memory churn
the logger.Permission interface indicates whether the environment making
the logging request is allowed to create new log entries. the
environment.Environment type satisifies the Permission interface
logger.Allow is provided as a convienient way of indicating the the log
entry should always be created
this fixes abberant resizing when using the emulation rewind with
moviecarts - the moviecart rewind system is unaffected by this
moviecart resets the frame state on Plumb()
looking beyond this limit is unlikely to reveal any data of value and it
can only cause excess slowdown for very large files, which are unlikely
to be cartridge files in any case
some boxart images once rendered seemed to prevent future renders taking place
unclear what the cause is but marking the texture for creation solves the problem
the information used to create the loader is storied in
the playback type rather than a created loader itself
this is more flexible and gives us better control of when
the loader is disposed of
checking of cartridge hash must now be performed explicitely
when the cartridge loader is created from the playback information
removed all references to hotloading. will reimplement in the future
made sure then cartridgeloader.Loader instances are closed when no
longer needed. added commentary where required to explain
information pane in the ROM selector window is not disabled when
animation emulation is not running. the load button is still visible
based on the animation emulation
broken in 7e1f1f when the playmode overlay was changed to a full size
window
fix required improvement to the detection of whether the mouse was
hovering over a window (eg. prefs window, etc.)
debugger no longer sends play, pause notifications to the gui. the gui
polls for that information as required
govern package now has SubState type to complement the State type.
StateIntegrity() function enforces combinations of State and SubState,
called from debugger.setState() function
playmode notifications reworked and contained in a single playmode_overlay.go
file. this includes the FPS and screen detail
preference value sdlimgui.playmode.fpsOverlay replaced with
sdlimgui.playmode.fpsDetail. still toggled with F7 key
coproc icon moved to top-left corner of playmode overlay and only
visible when FPS detail is showing
when FPS detail is showing multiple (small) icons care shown. when it is
not showing, a single (large) icon is shown according to the priority of
the icon. eg. pause indicator has higher priority than the mute
indicator