Commit graph

72 commits

Author SHA1 Message Date
JetSetIlly
2efeea8025 small refactor of register package
changes originally part of curtainled refactor of the data type that was
intended to introduce origin tracking
2025-02-01 07:56:41 +00:00
JetSetIlly
597a8e466d improved toggle button widget
horizontal/vertical orientation
2024-03-24 07:47:53 +00:00
JetSetIlly
5ba8c2a7a7 CPU window scales better with font size
status register and last cycle information labelled with a collapsing
header
2024-01-13 17:59:51 +00:00
JetSetIlly
604a0a522b windows scale better with font size
CPU, control and TIA windows changed

loosened window constraints to accomodate larger font sizes

size of streams in CDF window scale nicely with the selected font size
2024-01-13 17:59:38 +00:00
JetSetIlly
5213c4e7d2 cycle quantum steps forward correctly after a backward step
paws icons shown in window for all selected quantums because we may be
at a intermediary color clock regardless of selected quantum. for color
clock "3" however the paws are only shown for quantum Clock
2023-11-27 07:47:30 +00:00
JetSetIlly
9f6cbdad58 added CYCLE quantum
updated QUANTUM and STEP commands to accoodate new quantum

control window changed to support the three quantum options

improved/corrected the conditions under which the ONSTEP command is run

disassembly.ExecutedEntry() updates existing entry
2023-11-27 07:47:30 +00:00
JetSetIlly
4007e6fc37 simplification of how gui interacts with debugger
removed unused caching fields. renamed function and interface names
related to breakpoints sharing

debugger quantum value is atomic for safe reading outside emulation
goroutine. moved quantum definitions to govern package

simplification of how debugger interfaces with coprocessor debugger/developer
2023-08-26 09:14:54 +01:00
JetSetIlly
12b9f19d1f removed lazy update components. made savekey rewind safe 2023-08-26 09:14:40 +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
a440255be4 corrected CPU SET command that is issued by the CPU window 2023-02-01 10:17:38 +00:00
JetSetIlly
4448c7cae6 arrange windows by size, smallest at the front
debugger menu entry and CTRL+A hotkey
2022-05-01 12:16:08 +01:00
JetSetIlly
f247722f86 window position now aware of emulation mode
the same window can have a different position depending on
emulation mode
2022-04-29 13:50:33 +01:00
JetSetIlly
46b16ea4b4 CPU window indicates KIL state
reworked how colour buttons are displayed
2022-03-30 09:49:13 +01:00
JetSetIlly
a515b91a2b font size selectable. code and gui font are distint
line spacing option for code window

adjust TIA and CPU windows to account for changeable font sizes. TIA
window could do with more work still
2022-02-06 10:54:11 +00:00
JetSetIlly
7e7eaf4262 cosmetic changes to disasm window
"Follow CPU" will focus when option is set. disasm will not focus on PC
address on pause if "Follow CPU" is not set.

additional notification in disasm window to indicate when coprocessor is
active
2022-01-17 22:07:27 +00:00
JetSetIlly
b35dedff51 updated default window position/sizes so they appear nicely on a fresh install 2021-11-20 15:21:24 +00:00
JetSetIlly
3f5923c358 implemented STEP OVER command
stepping by video does not now check for halting conditions. in some
cases halting on a target is confusing. for example break PC will break
too early if checked every video cycle. we could perhaps reintroduce it
but only when targets are aware of the current state of the machine
(ie. mid-CPU instruction or not)

similarly, halt on video-step will no longer decode the next instruction
at the current PC. the current PC will be in a misleading state between
CPU instruction boundaries

STEP OVER button. not finished yet just a placeholder really
2021-10-06 08:20:24 +01:00
JetSetIlly
9c0e6ee970 tweaked window sizing/positioning 2021-06-16 20:06:19 +01:00
JetSetIlly
c7654c9a90 changed default window size/positions for debugger 2021-05-18 19:11:47 +01:00
JetSetIlly
84ab48118b updated Control deugging window to support STEP BACK command 2021-03-05 23:08:31 +00:00
JetSetIlly
08d6d17c15 reworked CPU window 2021-03-01 20:17:19 +00:00
JetSetIlly
07ecc51506 tweaked CPU window
status register bits more clear
2021-02-28 10:53:50 +00:00
JetSetIlly
b6374dc00b bumped imgui-go to v4.0.0 2021-02-21 21:20:51 +00:00
JetSetIlly
83bf90c826 disasm window uses table API
improved/simplified text disasm output

entry is always correctly updated on execution
2021-02-19 19:24:49 +00:00
JetSetIlly
d6abbd8067 added Coprocesser last execution window
added support for coprocessor menu

reworked window manager/menu system to be more flexible

windows that are cartridge specific now use mapper ID in title. this
means that we can store different window size/position for the cartridge
RAM window, for example, that are approprite for the mapper in question.
2021-01-17 13:38:07 +00:00
JetSetIlly
3ea4d74ba5 arm7tdmi disassembly
references to Mnemonic renamed to Operator for 6507
2021-01-17 08:46:16 +00:00
JetSetIlly
49a8de6c31 removed lint errors
menu entries for windows can have diferent labels to the window title.
(this was already a feature but it is now more clear/onvenient. change
prompted by lint error).
2021-01-11 17:40:52 +00:00
JetSetIlly
3ba342586d tidied up dear imgui widget creation
moved some common constructs to imgui_helpers
2021-01-05 14:47:02 +00:00
JetSetIlly
aab9db672e textinputs edit correctly when machine is running 2020-12-31 21:02:34 +00:00
JetSetIlly
cdd01db301 bumped imgui-go version to v3.0.0
fixed lint errors
2020-12-30 20:45:07 +00:00
JetSetIlly
0e4737b326 rework of sdlimgui package
removed options related to setting scale of debug/play window
    - can be done more effectively window controls

preference initialisation for debug and play modes is more clear
    - removed errant playmode setting (terminalOnError - not applicable)

simplified window management

nicer feedback on rewind slider
2020-11-27 18:31:23 +00:00
JetSetIlly
10c16323af better interplay of GUI states and shader draw modes
better rendering during rewind.GotoCoords()
2020-11-11 22:36:55 +00:00
JetSetIlly
9e159b97d8 added more linters to golangci-lint config
godot --fix has been run to make sure all comments end in a full-stop

specified nolint directive to apply to specific linter
2020-10-16 16:31:07 +01:00
JetSetIlly
3482b98fbf removed unused struct fields (golangci-lint -E structcheck) 2020-10-15 20:56:48 +01:00
JetSetIlly
81b5a84a0b simplifed code (golangci-lint -E gosimple) 2020-10-15 20:56:48 +01:00
JetSetIlly
a6d5cc013e added CPU STATUS command
CPU window uses this in preference to toggling flag directly
2020-10-14 15:49:37 +01:00
JetSetIlly
9b5ba10ade reworking of lazyvalues package
clarified some concepts. removed superfluous code/comments
2020-10-13 14:25:37 +01:00
JetSetIlly
cd77a3be19 reworked disassembly process. better bless detection particularly for JMP/JSR
moved cartridge debugging buses to mapper package

removed banks package and moved/renamed those types to mapper package

renamed IterateBanks() to CopyBanks(). function now returns all banks as
an array.

removed global Passive setting from cartridge. disassembly now only
accesses cartridge memory through a copy of the bank data (CopyBanks())
so it is not needed
2020-10-08 09:29:58 +01:00
JetSetIlly
8b705dcff3 reworked how disassembly entries handle symbols
added CartHotspots debugging bus. used by symbols package to get
cartridge symbols information. should be useful for disassembly too

renamed hotspot() functions (in cartridge mapper implementations) to
bankswitch() for clarity

sdlimgui disassembly window shows address labels. disassembly iteration
updated to better support that.

SYMBOL command prints all mirrors for cartridge addresses
2020-10-07 06:58:40 +01:00
JetSetIlly
b216f5dd50 memory grid widgets better preparation and drawing
widget dimensions
2020-09-19 00:00:31 +01:00
JetSetIlly
298a5d343f updated copyright notice in all files
the note about historical versions also being covered wasn't strictly
needed and was ugly. the LICENCE being in the root file from the very
first commit is sufficient.
2020-07-26 20:18:56 +01:00
JetSetIlly
a9b6235983 more information in the cart RAM window
tab headers no longer scroll

indicator for whether the RAM bank is mapped or not

updated bus.CartRAM struct with mapped information
2020-07-10 23:53:19 +01:00
JetSetIlly
aae1aba5d2 banks now represented by BankDetails type
disassembly window shows "executing from cartridge RAM" message

better disassembly decoding loop. clarified and corrected commentary in
disassembly package. identified some more critical sections in
disassembly package

this results in a better mnetwork disassembly

origin and memtop for disassembled entries are now definable. added
disassembly.FxxxMirror to preferences. PREF command can now set
FxxxMirror option. Added checkbox to win_prefs

renamed Iterate to IterateBank and added IterateCart

UpdateEntry() ignores any result not in the cartridge ROM space

tidied-up/unified preference files in debugger/disassembly/hiscore
packages
2020-06-29 19:26:10 +01:00
JetSetIlly
baa5ed7ae0 performance mode will no longer affect playmode preferences 2020-05-24 21:37:55 +01:00
JetSetIlly
0b3f7541b8 cleanup and restructure of gui package
moved sdldebug and sdlplay to deprecated package. partly for neatness
but partly with the intention of removing in a future version

refactor and re-comment of sdlimgui package

sdlimgui tv screen window now properly resizeable
2020-05-18 19:47:53 +01:00
JetSetIlly
520c4f3013 added StaticArea interface to cartridges
static data window in debugger

reworked menu system to allow cartridge specific window menus

cleaned up how cartridge RAM information is specified and retrieved

renamed cartridge.Format() to ID() and reference to "cartridge format"
to "cartridge mapping". format is an overloaded word already and it was
confusing.
2020-05-09 09:27:56 +01:00
JetSetIlly
9a7cc2e899 some tidyup for v1.11
terminal now longer opens by default

moved RDY flag in CPU window
2020-04-22 08:29:58 +01:00
JetSetIlly
5eb5e2c2ed added CONTROLLER command
added controller window to sdlimgui debugger

improved smart-switching of controller types
2020-04-13 22:13:58 +01:00
JetSetIlly
1b98651fe2 removed FormatResult from debugger inputLoop
it was far too slow to call every video cycle. the convenience and
clarity does is not enough to discount the performance disadvantage. by
formatting the result in win_cpu we restrict the call to only when we
need it, once every 60 frames
2020-03-28 18:17:37 +00:00
JetSetIlly
cff3cad5b7 disassembly reworking
removed analysis code. too many code paths rendered the method
unworkable. for example, eg. JMP (indirect) where indirect address is in
ram.

Clarified how the Bank field in the disassembly.Entry should be used.

win_disasm makes sure that the current PC entry has been blessed. making
sure it will be seen in the disassembly window (also a note in debugger
inputloop about the fact that blessing should really take place there,
except for race condition issues. TODO note added)

added status line and options to win_disasm. status line shows when
execution from VCS RAM is taking place. options for highlighting addresses
common between all banks and non-decoded addresses
2020-03-27 21:06:57 +00:00