go-wav, statsview and memviz all indirectly used gopkg.in/yaml.v3 which
I do not want to depend upon
WAV functionality is no longer available for wav writing or reading
(supercharger tapes). will try to reintroduce functionality in the
future
Makefile updated to build with freetype by default.
building without the imguifreetype build tag will cause the application
to use the default proggyclean font
embeds JetBrainMono-Regular.ttf under the OFL-1.1 License
INPTx data mask was wrong. bit 6 is now "driven"
ZeroPageIndexedX and ZeroPageIndexedY did not cause a phatom read as
they should. cycles were accumulated correctly but no phantom read - I
missed this when adding the phantom reads to the CPU
this means that playmode now uses the lazy system. it's only loading
what it needs so as not to use too much memory. the good news is that it
doesn't seem to take any significant CPU time
tracker reset on debugger/emulation reset
piano keys window is now part of the tracker window
updated README indicating new hotkey
introduced PlumbFromDifferentEmulation interface. the ARM emulation
doesn't like being moved between emulation instances so the ARM is
recreated when plumbing a state that originated in a different
emulation. not all mappers need to implement this interface.
I'd already implemented Chris's volume mixing routines from the "Sounding
Off in the Digital Domain". This commit replaces Ron Frie's original
audio implementation with a new and more accuration technique.
altered table showing keypad mappings; reverted back to referring to the keypad peripheral (rather than the keyboard peripheral); updated debugging console HELP output
TIA now puts both audio channels in the SignalAttributes separately
it is up to television.AudioMixer implementions to mix the two
channels as required
window not opened until window preferences loaded. fullscreen state
saved on exit.
changed hotkeys. toggle mouse capture with scroll-lock and quit with
escape key
small performance improvement when in immediate mode. modified last
execution window to say if execution was in immediate mode or not (to
explain the absence of cycle count)
removed stale ARM preferences
updated screenshots and README
added logging for MAM control
corrected/clarified how ARM is stepped when program is runing/not running
last execution window now displays unstretched cycle information
cycle changes:
- conditional branch takes one S cycle if condition is not met
- I cycles due to shifting instructions can be "merged"
- the multiple load/store instructions correct
- the last S cycle can be merged
- Load register (section 7.8 of tech ref man) instruction merge an S cycle
(merged cycles do not count towards the total execution time)