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)
added mam preferences to prefs window. reorganised prefs window.
removed hardware prefs from PREFS command and lazy system. the lazy
system doesn't seem to be required and it makes more sense for the PREFS
command to deal solely with debugging topics.
preferences window visible in playmode on (F8). FPS indicator now on F7
F12 without modifiers will create a single screenshot file
Shift+F12 will save a sequence of five files suitable for double-frame
kernels
Ctrl+F12 will save a sequence of five files suitable for triple-frame
kernels
SearchRegisterWrite() now correctly leaves the found state in a usable
state at a CPU instruction boundary
DeepPoke runs from found ultimate found state to the "current" state
updated README
the amount of travel in the analogue stick is just too small for it to
be useful for paddle control IMO.
triggers still control paddle but no longer self-centre. the center
position is different for different games. also, it makes some games too
easy.