Commit graph

3058 commits

Author SHA1 Message Date
JetSetIlly ede7847b76 module replacement for inkyblackness/imgui-go
now using jetsetilly/imgui.go so that patches can be applied

updated statsviz.patch
2024-05-08 21:29:11 +01:00
JetSetIlly c9ee3fc20f added MEMUSAGE PROFILE command
mem profile saved on ctrl+alt+m

memory profiles can be used with "go tool pprof"
2024-05-06 09:59:23 +01:00
JetSetIlly 47c7c95fd7 bumped version to 'v0.32.0 pre-release' in Makefile 2024-05-05 20:19:52 +01:00
JetSetIlly ed67f97c5c corrected fa2866c 2024-05-05 17:31:47 +01:00
JetSetIlly 8313ea19b6 bumped version to v0.31.0 in Makefile 2024-05-05 17:01:53 +01:00
JetSetIlly fa2866c45d sdlimgui preferences correctly initialised on first use
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
2024-05-05 17:00:38 +01:00
JetSetIlly 7be60c0c2a corrected archivefs Set() function so that it works in Windows
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
2024-05-05 17:00:38 +01:00
JetSetIlly 6c96b2f065 comment changes/clarifications 2024-05-05 17:00:38 +01:00
JetSetIlly 788530cd3e shaders package moved to display package 2024-05-05 11:35:51 +01:00
JetSetIlly c827d70c5b gui/crt package is now gui/display
colour preferences are now independent of CRT preferences
2024-05-05 11:35:51 +01:00
JetSetIlly 4cc32c4294 added statsviz patch
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
2024-05-04 13:08:10 +01:00
JetSetIlly d7b8f19c21 added memory usage to FPS overlay 2024-05-03 18:38:20 +01:00
JetSetIlly 578e2a846a ARM package now receives environment instance
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
2024-05-03 18:04:04 +01:00
JetSetIlly 8e4838d582 removed prefs update ticker from ARM
it's not necessary for performance and worse, it causes memory churn due
to how the gui caching package works
2024-05-03 12:35:05 +01:00
JetSetIlly 545caefbfa corrected 1d40869
thumbMode test must happen before expectedPC test. the other way around and some strongarm
functions do not work as expected
2024-04-30 18:35:26 +01:00
JetSetIlly ed8f7d6318 fixed loading of ELF and ACE wrapped ELF files 2024-04-30 18:35:26 +01:00
JetSetIlly 96ad0797b4 NewVCS() expects environment.Label on instantiation
this helps force the environment.Label to be set to something meaningful
2024-04-30 18:34:35 +01:00
JetSetIlly a196b21a93 logging functions called with real env instances from the hardware package
logger package will no longer create new log entires for environments
other than the main emulation (or the logging.Always shim)
2024-04-30 17:48:46 +01:00
JetSetIlly cd2a00d4ba logger.Log() and logger.Logf() now require a logger.Permission instance
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
2024-04-30 11:23:40 +01:00
JetSetIlly 505661e3cf simplified/corrected string output for player, missile, ball sprites 2024-04-30 09:06:21 +01:00
JetSetIlly 2d974cc9c1 AsyncPath improvments
fixed occasional data race in Close() function. added Destroy()
interface to window manager
2024-04-29 17:37:52 +01:00
JetSetIlly 3a5f7c79da added AsyncPath to archivefs. allows asynchronous use of archivefs
ROM select could noticeable stall the GUI if there were many files in a
directory
2024-04-28 21:26:29 +01:00
JetSetIlly 344b92e8f3 increase TV frame resize threshold from 2 to 3 frames
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()
2024-04-27 19:06:31 +01:00
JetSetIlly 38690397c2 added TV saturation control 2024-04-27 06:50:31 +01:00
JetSetIlly 841547cfc0 TV colour controls 2024-04-26 21:23:15 +01:00
JetSetIlly c7e4423e9a bumped version to 'v0.31.0 pre-release' in Makefile 2024-04-18 19:21:18 +01:00
JetSetIlly b557e570a5 bumped version to v0.30.0 in Makefile 2024-04-17 16:41:11 +01:00
JetSetIlly 2c3d12b907 ROM select shows dash in property window if information is not available 2024-04-17 16:37:57 +01:00
JetSetIlly d227fc804a corrected 37ce7bc 2024-04-17 16:29:09 +01:00
JetSetIlly b011090937 corrected archivefs docs 2024-04-17 15:59:17 +01:00
JetSetIlly 16adef8e7b fingerprinting limited to first cartridgeloader.FingerprintLimit bytes
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
2024-04-17 15:52:11 +01:00
JetSetIlly 1850b03ff5 ROM select show options (all/hidden) available in popup menu
playmode mouse capture inhibited if any popup window is open
2024-04-17 13:29:07 +01:00
JetSetIlly 467d7e88b8 select ROM boxart texture created on new render
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
2024-04-17 13:29:07 +01:00
JetSetIlly 37ce7bc244 cartridge names have file extensions clipped only if the extension is in
the list of known/supported file extensions
2024-04-17 13:28:36 +01:00
JetSetIlly e47c37bd98 size check for CDF data 2024-04-17 10:30:57 +01:00
JetSetIlly d431974c76 playback files no longer created cartridge loader directly
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
2024-04-17 09:54:09 +01:00
JetSetIlly 7ed001c4c1 changed when cartridgeloader is created for log/video regression
creating the cartridgeloader later in the regression process gives a
clearer indication of when and if the cartridgeloader is closed properly
2024-04-16 22:42:28 +01:00
JetSetIlly 28ae543e36 cartridgeloader commentary and documenation
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
2024-04-16 22:15:39 +01:00
JetSetIlly e3f4a743b6 added archivefs package and support in cartridgeloader and ROM select window
archivefs allows opening of files inside a zip archive. support for
other archive file type will be added in the future when possible
2024-04-16 19:22:38 +01:00
JetSetIlly 8edee622cc peripheral fingerprinting only considers the first 64k of cartridge data 2024-04-16 19:08:35 +01:00
JetSetIlly 8308e4037c io.EOF error checked in moviecart nextField() function 2024-04-16 17:37:37 +01:00
JetSetIlly da83fc311b removed complexity from cartridge fingerprinting process
all cartridge data is read through cartridgeloader io.Reader interface
2024-04-16 10:18:13 +01:00
JetSetIlly 1f23e7217f simplified cartridge loader package
loader is opened at creation time which allows us to remove the
needlessly complicated pointer-to-pointer mechanism
2024-04-16 10:18:13 +01:00
JetSetIlly 18aa6db347 reworked cartridge loader package 2024-04-16 10:18:13 +01:00
JetSetIlly bf34bab783 window manager concepts 2024-04-16 10:18:13 +01:00
JetSetIlly a621b4fd04 fixed mouse capture on right-mouse click in playmode
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.)
2024-04-15 18:56:32 +01:00
JetSetIlly 8f2eb8753f rewinding by mouse wheel works in debugger
rewinds/FF by 10 frames or by a single frame if shift key is held
2024-04-12 21:01:59 +01:00
JetSetIlly 7e1f1f17b6 improved prioritisation of state icon in playmode overlay 2024-04-12 19:55:41 +01:00
JetSetIlly d32262adff simplified how gui implements and handles notifications
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
2024-04-12 18:20:29 +01:00
JetSetIlly 877f282b8b corrected supercharger multiloading for fastload 2024-04-10 20:50:13 +01:00