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
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
removed all messages from errors package. the strings are now hard coded
in place. the original reason for extracting the error strings like that
was (a) for redundancy and (b) for localisation possibilities. However,
in reality there is not much redundancy and since the project started
the scope of localisation is much larger (particularly due to the
addition of a GUI)
this is the first step. the next step is to remove the errors package
altogether. recent additions to Go mean that the functionality of the
errors package is no longer required. moreover, the original idea for
the errors package functions turns out not to have been as useful as
first appeared (the Error() functionality which makes sure no repeating
sub-strings occur is probably better achieved with static tooling).
one idea that comes from this which is quite interesting is the idea of
a curated error. that is, any error that has been "wrapped" as some
'generic' type. the IsAny() function in the errors package effectively
serves this purpose. we use that in one place in the input loop of the
debugger. not strictly necessary but nice to have so it would ideal
if we could remove the errors package but keep that idea.
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
very rough currently. race conditions in network access, requires
restructuring.
no logging from network access. again, requires some engineering in the
log package to avoid race errors
multi-controllers is now split into three different types
auto type elegantly handles switching of the controllers
better/cleaner memory access for peripherals and event handling
updated console commands and controller debug window
controller debug window has to use a slightly different lazyvalue
implementation. this is because atomics cannot store a different type to
the one that was originally stored; this is a problem when storing
interfaces (eg. ports.Peripheral)
hook function will be called when $fa1a is read to tidy up emulation
before continuing with the newly loaded ROM (eg. TV reset, dissassembly
of loaded data)
previously the gui could block because of a full channel queue under
rare circumstances. those circumstances could be forced by, for example
loading a wav file with the race detector.
also seen when running the debugger with a plain terminal and the
with the display open
all channel pushes are now selected with the default case logging the
error
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.
interrupted CPU instructions due to supercharger fastload are marked as
Final even in the interrupted state. this is primarily so that the
disassembly window in the sdlimgui GUI centres on the correct entry
after interruption.
allow supercharger to load binary sizes larger than 8448 bytes.
Specifically, allow sizes 25344 and 33792
unified/normalised static area structure and presentation
better tab bars for static area window
corrected cropped cursor drawing for pixel position on the VBLANK
boundary
TV specification changeable at command line and via GUI's debug screen
window
abstracted resizing mechanism opening the possiblity
for more sophisticated analysis
digest/video handles TV specification changes
bumped imgui-go version to 2.4.1
all fingerprint code is in the one place (fingerprint.go)
reworked tape loading in preparation for real tape based loading.
introduced tape interface and renamed existing tape structure as
FastLoad. renamed TapeLoaded error to FastLoaded. silenced fastload
debugging messages for now (will re-add when I've implemented the
logging package)
clarified how TapeLoaded error affects CPU state - added CPU interrupted
flag. fixed CPU mid-instruction sanity checks in the process
better/clearer terminal prompts
break on non-cartridge PC will no longer auto-add BANK condition