this called in the same way as the corresponding functions in the
television and reflection packages
list of locals is updated when emulation is paused. this allows the list
of locals to be visible immediately on program start and when execution
is halted in the VCS part of the execution (as opposed to yielding in
the ARM part of the execution due to a breakpoint)
fixed race condition caused by local variable window
lexical scope is used to decide if the variable is present in the list.
while this might not be completely accurate in all instances it presents
a more natural view. in any case, the value of the variable won't be
wrong because it isn't locatable
corrected display of existing notifications. for example, emulation
notifications (pause, mute, etc.) would not display if cartridge
notification was visible
stipulated that the coprocessor takes extended register values in the
Register() and SetRegister() functions. extended register check in
coprocessor implementation (ie. ARM)
"ROM Setup" is too confusing a state to be useful. Initialisation, based
on the current emulation state, might be more helpful but it fails for
the same reason as "ROM Setup" (which was based on screen stability) in
that it doesn't really fit in with the current method of keeping
profiling statistics
renamed KernelVCS (from profiling package) to Focus. this better
describes what the intention of the type is
renamed Performance window to Profiling
renamed references to illegal accesses to faults. the new name is
simpler and more flexible
faults locking was already independent of source lock
single MemoryFault() function in coproc developer interface
simplified faults window
showing the tape window for fastload ROMs would cause the debugger to
crash. this was because the tape data was empty and the waveform plotter
expects some data
this solution removes the tape window entirely, and the menu entry, in
the cast of fastload supercharger ROMs
because of how we have implemented branches we need special
consideration for breakpoints afterwards. the branch instruction will
have altered the PC and adjusted it for the pipeline fill (cycle
accumulation for the pipeline fill is handle indpendently). because of
that we need to test for a breakpoint for the PC before the pipeline
fill
a cartridge with a coprocessor that had failed for some reason would
cause the thumbnailer goroutine to halt
in the case of the thumbnailer.Image type this would lock the UI
goroutine. and in the case of the thumbnail.Anim type it would lock the
goroutine that had been launched to produce the animation
added YieldHookResponse to better indicate the intention of the
CartYieldHook
this makes more sense and is easier to understand and think about. if
the index for the adddress is needed, then it can be attained simply by
subtracting the origin from the address