Commit graph

22 commits

Author SHA1 Message Date
JetSetIlly
ecb8f15455 simplified prefs.Disk.Load() function
removed the saveOnFirstUse argument. this means the EnableSaving()
function added in the previous commit can be removed

the reason for adding the EnableSaving() was so that we could intialise
the ColourGen type without writing to a preferences file. this was a
problem for testing because it meant that the global ColourGen
initialisation created a preference file for each test, which is
definitely something we don't want

there is still the global DisableSaving flag that would ideally be
removed in the future. it's currently only needed by the
debugger_test.go test which initialises a Debugger instance and
indirectly causes the preferences file to be saved on exit
2024-12-20 14:05:32 +00:00
JetSetIlly
54d9cf6b26 improved 6507 disassembly speed
disassemby when called from normal cartridge attachment is now done the
background in a separate goroutine. this allows execution to begin
immediately without having to wait for the disassembly to finish

disasm window in the gui will show a "disassembling..." message while
the background disassembly is working

fixed symbols test data
2024-11-23 14:56:37 +00:00
JetSetIlly
8bb94f9654 nil protection on disassembly definition 2024-01-16 10:54:54 +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
e3e55cfeba result nil check in disassembly.setCartMirror()
most cartridge formats will always have non-nil results but formats
like ACE or ELF that feed the 6507 program on demand will result in the
disassembly to have gaps - and that's why we need the nil check
2022-10-18 07:04:13 +01:00
JetSetIlly
d55a14fded simplified disassembly iteration
implemented "borrow" mechanism instead of iteration mechanism which was
clumsy and confusing.

simplitied how breakpoints are queried by the lazy system, for the
benefit of the disassembly window

tweaked how emulation state is tracked by the disassembly window

removed linter package. unused and underdeveloped. will reimplement in
the future.
2022-01-10 09:50:48 +00:00
JetSetIlly
89191d9a5a clarified some preferences concepts
set defaults for revisions, rewind and ARM tabs of the prefs window (in
addition to the CRT tab). set defaults button labelled appropriately

fixes some race conditions caused by pre/post hooks on prefs values -
prefs values are generally goroutine safe, except when pre/post hook is
defined
2021-12-05 20:17:43 +00:00
JetSetIlly
af940e9ecd better interaction of window geometry preference saving with fullscreen setting
*.windowSize and *.windowPos preference values replaced with single *.windowGeometry value

prefs package type now have a pre-hook (called before new value is set).
existing hook/callback clarified to be a post-hook (called after new
value is set).

prefs generic type now handles prefs.GenericGetValueUndefined to
indicate that the value cannot be ascertained at this time (the prefs
package should use the most recent previous value instead)
2021-11-05 17:58:35 +00:00
JetSetIlly
e5bd938b41 renamed paths package to resources package
ResourcePath() is now called JoinPath()

UniqueFilename() moved to a new package named unique and renamed to
Filename()
2021-10-03 13:32:08 +01:00
JetSetIlly
0025d2ee3a refined how ResourcePath in paths package works
now works more like the standard filepath.Join() function
2021-10-03 13:32:08 +01:00
JetSetIlly
450f6ae303 default preferences values for disassembly and debugger
supercharger tries to load BIOS before anything else meaning a quicker
failure if one is necessary

failed cartridge attachment will result in log entry rather than a
terminal error

loading cartridge without a coprocessor (ARM) when the Last Execution
window was open would cause a crash

added video link in readme
2021-01-19 21:09:30 +00:00
JetSetIlly
d110a08a64 logging of rewind boundary events
result of changing rewind maxentries value displayed correctly in win_control

timer randomised on startup (if preference selected)

changing symbols preference updates disasm window vertical alignment

file selector:
    - scrolls to top on directory change
    - centres on current ROM when first opened

help note for the -state flags (REGRESS ADD)

changed default window position for timer window
2020-11-19 08:21:28 +00:00
JetSetIlly
1cdb19562e error values checked (golangci-lint -E errcheck)
error checked on Close() of writable file

fixed disassembly sanity check
2020-10-18 10:59:19 +01: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
7b624b5506 removed some staticcheck errors (golangci-lint -E staticcheck)
supercharger tap window will now set tape counter (revealed by
staticcheck)
2020-10-16 14:50:23 +01:00
JetSetIlly
9f74bffba0 fixed mutex error in pref package String() functions
imports sorted with goimport (after a global search and replace sometime
in the past)

various commentary improvements
2020-10-15 16:38:41 +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
6d556cd3c8 clarified some concepts in disassembly package
experimented with making the disassembly a service driven goroutine but
this proved too slow to iterate over
2020-10-02 10:47:49 +01:00
JetSetIlly
19f22648e0 PlusROM nick and id now fixed per installation
both values saved to disk and editable editable via terminal interface

nick editable in PlusROM preferences window

String type in prefs package can not be set to a maximum length
2020-09-19 00:00:31 +01:00
JetSetIlly
1f8f6f7544 replaced many instances of interface{} with specific types
even though the underlying type is still interface{} this is useful
because it does increase clarity
2020-09-16 10:59:36 +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
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