Commit graph

1291 commits

Author SHA1 Message Date
JetSetIlly 483957986c ROM Select window correctly scrolls to previously selected file 2024-05-17 20:35:36 +01:00
JetSetIlly 51fdd7b822 magnify tooltip/window now uses the current tv colours
texture in magnify tooltip no longer has any transparancy. the tooltip
window has a slight transparancy that the texture inherits
2024-05-16 22:24:08 +01:00
JetSetIlly abce9f0e13 mouse wheel in playmode ignored if mouse if over open imgui window
previously, the open window was ignore. this is most likely to have been
an annoyance when scrolling the listview in the ROM Select window
2024-05-15 21:07:01 +01:00
JetSetIlly fb7c2577de motion screenshot changed to flicker 2024-05-15 11:49:52 +01:00
JetSetIlly 5d8d65d0f1 simplified framebuffer pipeline
clarified how and when the vertex shader should flip the texture

occassional graphical artefacts no longer appear. the artefacts appeared
(or were more noticeable) when the TV image was scaled to certain sizes.
they were caused by incorrect use of the framebuffer. using the same
texture as the source and destination of the shading process does not
work as expected
2024-05-15 11:16:55 +01:00
JetSetIlly 16761aebe7 reverted 9cd2552 and added comment instead 2024-05-11 14:46:39 +01:00
JetSetIlly 9cd255202f change of CRT framebuffer caused visual artefacts
the solution in this commit doesn't seem ideal but it works well enough
2024-05-10 19:37:15 +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 ed67f97c5c corrected fa2866c 2024-05-05 17:31:47 +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 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 d7b8f19c21 added memory usage to FPS overlay 2024-05-03 18:38:20 +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 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 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 2c3d12b907 ROM select shows dash in property window if information is not available 2024-04-17 16:37:57 +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 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 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 f491504d86 Added preference setting for misaligned memory access
Disabled by default. When enabled misaligned read and writes will be
reported as memory faults
2024-04-08 22:29:18 +01:00
JetSetIlly 110d476389 ARM differenties between architectures for memory alignment
ARM7TDMI (which is an ARMv4 implementation) does not allow misaligned
addressing at all. ARMv7 meanwhile does allow it

ARM emulation no longer logs misaligned addresses. but it does forward
the information to the developer interface

Faults window now has a Clear button and fixed table header
2024-04-08 22:16:12 +01:00
JetSetIlly 24f3f32342 simplified notifications package
notifications interface instance moved to environment from
cartridgeloader. the cartridgeloader package predates the environment
package and had started to be used inappropriately

simplified how notifications.Notify() is called. in particular the
supercharger fastload starter no longer bundles a function hook. nor is
the cartridge instance sent with the notification
2024-04-06 10:12:55 +01:00
JetSetIlly 08f105af6b added ExpectImplements() function to test package 2024-03-30 07:09:25 +00:00
JetSetIlly 1a26231b5e added load/percentile values for cycles/call profiling 2024-03-28 07:20:23 +00:00
JetSetIlly f098a31f1c clarified calculation for profiling.Cycles type
simplified accumulation of profiling data and clarified commentary
2024-03-27 18:35:23 +00:00
JetSetIlly b068a509fa added cycles/call profiling statistics
tidied up cycles and calls statistics
2024-03-27 16:44:38 +00:00
JetSetIlly ff05d92ca4 simplified process for sorting DWARF types
previous version was too overloaded with functions, likely as an attempt
to simplify, but it was only confusing when trying to add more entities
to the list of sorting methods
2024-03-27 16:43:25 +00:00
JetSetIlly 049e4ce39d added call count to coprocessor profiling
NewFrame() functions for profiling statistics takes a rewinding flag.
the flag prevents some statistics from being updated if the flag is true
2024-03-24 15:50:26 +00:00
JetSetIlly 597a8e466d improved toggle button widget
horizontal/vertical orientation
2024-03-24 07:47:53 +00:00
JetSetIlly 016906b077 enabled coproc disasm does not rerun the last 2 frames
it causes problems when the ARM program has yielded on a breakpoint
2024-03-23 09:30:53 +00:00
JetSetIlly f95e65e7b0 added NumCallsInFrame statistics to coprocessor profiling
improved callstack management
2024-03-19 19:24:47 +00:00
JetSetIlly 06b09eb163 coproc disasm window scrolls with item added to end of list 2024-03-13 21:16:52 +00:00
JetSetIlly 5b4d509748 CDF streams window casts font size preference value to int 2024-03-13 20:31:17 +00:00
JetSetIlly 5bc7cb809b nilness check for BorrowSource() was done too early
completes changes done in ee1656fc8
2024-03-05 15:57:51 +00:00
JetSetIlly 954c1485a1 added COPROC MEM DUMP command
context menu in static memory window
2024-03-04 07:40:55 +00:00
JetSetIlly 93cd3fb24f implemented strobed local variables 2024-03-04 07:40:39 +00:00
JetSetIlly ee1656fc86 performance improvement for static memory window
BorrowSource() was called for every cell drawn. now only called once per frame
for the window
2024-03-03 21:51:47 +00:00
JetSetIlly 30a245d472 improved coproc yield information in terminal prompt 2024-03-01 20:24:23 +00:00