Commit graph

1149 commits

Author SHA1 Message Date
JetSetIlly
3d610ccdcc tape window no longer shown for "fastload" supercharger ROMs
showing the tape window for fastload ROMs would cause the debugger to
crash. this was because the tape data was empty and the waveform plotter
expects some data

this solution removes the tape window entirely, and the menu entry, in
the cast of fastload supercharger ROMs
2023-07-21 09:38:29 +01:00
JetSetIlly
1c607044e6 fixed crash in timeline window when scrubbing past end of rewind history 2023-07-10 15:33:42 +01:00
JetSetIlly
b9bc32246d better control of timeline thumbnail generation
previously, throttling of thumbnail generation was controlled by the
clock. for fast running emulation this wasn't a problem but for slower
emulation (eg. ACE) this was ineffective and caused multiple thumbnail
request to queue up

this revealed a general inefficiency, even if it wasn't noticeable in
"normal" circumstances

the new throttling method prevents more a thumbnail request to be
generated if one is in process
2023-06-22 18:39:35 +01:00
JetSetIlly
ea1bf8e94c small reorganisation of performance window
the reset statistics button moved to sit alongside kernel focus option

checkboxes moved to their own line. all controls are now visible even
when the window is resized to its smallest
2023-06-22 18:39:24 +01:00
JetSetIlly
462c72cf1a timeline thumbnail disabled by default 2023-06-18 21:36:34 +01:00
JetSetIlly
2a75658f61 timeline thumbnail shown in a fixed location on either the left or the right 2023-06-18 21:25:07 +01:00
JetSetIlly
0a71653f33 removed tooltip for timeline window replaced with more infomative
toolbar
2023-06-18 21:25:07 +01:00
JetSetIlly
7f4126d226 added COMPARISON command
timeline window uses new command to make changes

comparison point can be locked
2023-06-18 21:25:07 +01:00
JetSetIlly
bde74a49b2 more timeline improvements/fixes
orange TV icon used to show current rewind position

fixed frame guide labelling

comparison point can be set from the popup menu
2023-06-18 21:25:07 +01:00
JetSetIlly
b2e29bed21 improved timeline window
resizable; guidelines; hover cursor

thumbnail removed from tooltip and now appears as faded image alongside
hover cursor

timeline thumbnail option moved to the debugger tab of the preferences
window

fixed bug in how scanline trace was plotted
2023-06-16 22:30:50 +01:00
JetSetIlly
887741253b font awesome loaded at correct size 2023-06-16 21:11:53 +01:00
JetSetIlly
b663037530 correct polling period for when ROM select window is open
thumbnail animation in ROM selector would not update satisfactorily if
the polling time was limited. for example, in the debugger when the main
emulation was not running. polling decision now takes into account
whether ROM selector is open
2023-06-16 18:55:49 +01:00
JetSetIlly
693757ffc1 toggle for timeline thumbanil, independent to tooltip setting
saves automatically on exit

added disasm window "show colour" setting to list of settings saved on exit
2023-06-15 19:06:11 +01:00
JetSetIlly
5546a24b93 global setting for debugger tooltips
tooltip indicator in menu bar. clicking will toggle. same preference can
be toggled in the debugger tab of the preferences window

global setting can be overridden by holding down the shift key

setting will be automatically saved on exit

tooltip settings for individual windows removed (disasm, performance,
source windows)

added slight transparency to tooltip background
2023-06-14 21:33:38 +01:00
JetSetIlly
03996dcfeb tidy of sdlimgui packge (particularly window manager code) 2023-06-14 21:33:38 +01:00
JetSetIlly
d1c4b5f8d0 corrected hotkey behaviour if window is not available (not drawn)
for example: a hotkey is assigned to a coprocessor window and a ROM
is open that does not have a coprocessor. in that scenario, the manager
would struggle to focus on the correct window causing a flickering of
the selected window
2023-06-11 18:27:30 +01:00
JetSetIlly
356440607d last window focused is refocused when "capture running" is exited
"captured running" is a new name to describe when the debugger is
running the emulation and the input is captured. it can be
entered/exited with the ESC key (and other ways, but principally the ESC
key)

"fuzzy window matching" renamed to "window searching"
2023-06-10 19:52:56 +01:00
JetSetIlly
6114113da1 capturing the mouse in the debugger will bring the TV screen to the front
TV Screen will open if it is currently closed
2023-06-10 16:26:43 +01:00
JetSetIlly
19889ea640 window searching matches typed entry to substring anywhere in window title
initial key of match now becomes a single-key hotkey for the chosen
window. preferences saved between sessions
2023-06-10 15:10:06 +01:00
JetSetIlly
8b18be888e window searching by title
pressing CTRL+SHIFT allows the user to bring a window to the front by
typing in the window title. as soon as the entered string is unique the
window is selected

a search preview is shown in the menu bar while the CTRL+SHIFT
combination is held down
2023-06-10 12:51:42 +01:00
JetSetIlly
097066c4cf less flicker in debugger TV when rewinding at frame-resize boundary 2023-06-05 19:59:34 +01:00
JetSetIlly
537aa451d4 television pixel renderers expected to resize as a result of NewFrame()
Resize() removed from PixelRenderer interface

pixels are no longer cleared during resize (sdlimgui screen
implementation) when in playmode
2023-06-05 17:58:35 +01:00
JetSetIlly
e822feed71 fixed issue with "TV screen" window rewinding
bug introduced in commit a8009b513f

fixed by not updating "frame queue" when emulation is in rewinding state
2023-06-04 19:30:36 +01:00
JetSetIlly
74c608415f new/refined screenshot modes
screenshot modes are now divided into single, motion and composite

'single' works well with regular displays (ie. Pitfall etc.)

'motion' works well with some flicker kernels (eg. zookeeper and similar)

'composite' meanwhile is very good at creating images with most flicker
effects eliminated (eg. Wenhop) and capturing motion (eg. Wabbit)
2023-05-29 20:36:08 +01:00
JetSetIlly
2148135060 new screenshotting method
pixel information is accumulated before passing through CRT shaders.
this results in better colour blocking from flicker kernels

not perfect but an improvement in many respects

the separation effect between pixels seen in flicker displays (zookeeper
brick effect being the best example) is currently lost

brightness of captured image is an issue
2023-05-27 20:16:54 +01:00
JetSetIlly
6a7dc499c4 fixed display of TV signal in debugger TV Screen window
the UNSYNCED label would overwrite HSYNC, CBURST, etc.
2023-05-25 15:38:07 +01:00
JetSetIlly
a8009b513f simplified the setting of FPS cap from the command line
command line now only accepts true/false as options. previously, the
options were aimed at allowing different syncing methods with the
monitor but that's not needed now
2023-05-23 20:26:50 +01:00
JetSetIlly
7915bdd44c refresh rate can change at any time which can affect frame queue handling
this is a quick fix. a more thorough examination of when and how the
pixelrenderer.Resize() is called would be good. current fix has been
applied in the screen implementation of pixelrenderer.NewFrame()
function, which may be the best place
2023-05-22 14:40:09 +01:00
JetSetIlly
ac5e3ba6b9 split Thumbnail type into image and anim
anim better handles animated thumbnails (eg. ROM select window)
2023-05-21 18:42:00 +01:00
JetSetIlly
db78d40a51 no mouse capture if mouse is over an emulation window
RMB is used to capture mouse for paddle input. but the RMB is sometimes
used in conjunction with emulation windows

if the mouse is over the TV screen then the mouse is captured as normal,
even if a window is open
2023-05-20 07:00:54 +01:00
JetSetIlly
b4b6d9c9c1 new default CRT options
1) shadow mask disabled
2) rounded corners enabled
3) shine enabled
2023-05-19 22:00:04 +01:00
JetSetIlly
aaa049567c improved screen frame queue. low queue lengths still need work 2023-05-19 21:39:40 +01:00
JetSetIlly
a1e5a27684 added WINDOW_FOREIGN flag to SDL window 2023-05-18 19:16:33 +01:00
JetSetIlly
96fd0bbfc0 added new "ticker" vsync option. reverted "immediate updates" to intended function 2023-05-18 19:16:33 +01:00
JetSetIlly
21ab18a51c corrected sharpen shader for playmode removing ugly artefacts
artefacts were particularly prominent with flicker kernels
2023-05-17 18:33:52 +01:00
JetSetIlly
8fd2a7659d improved screen handling of frame queue
screen can nudge the emulation limiter in the event of frame queue
collision

nudge icon in playscreen information (FPS) window
2023-05-17 17:24:44 +01:00
JetSetIlly
c1df3782f5 no VSYNC option uses a manual ticker to limit screen updates 2023-05-17 17:21:51 +01:00
JetSetIlly
fa4b5a7cf0 small delay when tracker replay concludes before muting audio
muting immediately would mean the last frame or so of the replayed
emulation would be muted
2023-05-08 19:20:28 +01:00
JetSetIlly
dc02b91692 audio for tracker replay will be heard despite mute setting
having to unmute the audio just to hear tracker replay is an
inconvenience and contrary to what the user would expect
2023-05-07 12:35:27 +01:00
JetSetIlly
63a977d203 SP register was not loaded by the lazyvalues system correctly
it was casting to the incorrect type but without any check on whether
the test suceeded

also, changes to the stackpointer in 057dddb02 meant that the RAM window
tooltip with regards to SP information was broken
2023-05-07 11:02:17 +01:00
JetSetIlly
0f3921a5f9 clarified disasm/instruction concepts in developer package
developer package doesn't no longer deals with "disassembly" except to
provide a reference to the disassembly interface provided by the
cartridge. the more accurate description of "instruction" is now
preferred

32bit instructions are distinguished by the Size() function of the
cartridges disassembly interface. this is more flexible and makes the
interface to the coprocessor implementation (ie. ARM) less clumsy

clarified hi/lo words of 32bit Thumb2 instructions
2023-05-06 09:44:29 +01:00
JetSetIlly
9cb6cce02e added macro package and command line option
screenshot request to GUI system can specify a filename
2023-04-20 23:01:31 +01:00
JetSetIlly
81ff8bbe97 tracker fields correctly protected by critical section
removed tracker from the lazyvalues package. access to tracker
information is now done through a "borrow" function

moved volume change logic from win_tracker to main tracker package
2023-04-18 18:04:18 +01:00
JetSetIlly
1ad07dc020 environment correctly propogated after Plumb() event
AudioTick() function in tracker interface accepts TrackerEnvironment
instance. tracker implementation differentiates emulation instances and
records AudioTick() information accordingly
2023-04-17 17:07:03 +01:00
JetSetIlly
6c3035e143 renamed hardware/instance package to environment 2023-04-16 21:24:09 +01:00
JetSetIlly
90c3f3f46b updated coproc source window to use the imguiSelection type
imguiSelection type introduced in the previous commit to help with the
tracker. the previous multiline selction method used for the source
window was therefore made obsolete
2023-04-16 11:22:40 +01:00
JetSetIlly
aa4da3d979 improved tracker behaviour when rewinding
better visuals for tracker window

sketched in idea for a tracker "replay" feature that will allow a
selection of audio output to be replayed. it works in principal but is
not currently used
2023-04-16 10:46:57 +01:00
JetSetIlly
871d04f26d fixed playmode rewinding (broken in 739056702) 2023-04-13 23:01:45 +01:00
JetSetIlly
739056702d reduced CPU usage when emulation is paused in playmode 2023-04-08 21:24:47 +01:00
JetSetIlly
596f40e82d errors from gui Destroy() are logged rather than printed to stderr 2023-04-07 22:33:51 +01:00