this replaces the PAL60 specification. PAL60 can still be specified on
the command line (and embedded in ROM filenames) but it is now treated
exactly the same as PAL
a great way of seeing this bug was with Berzerk Voice Enhanced edition.
the voice after leaving a level caused the rewind.Record() function to
be skipped. this meant that there was a gap in the rewind record
bug introduced in v0.26.0
the cause were the changes in the STEP terminal command but because the
GUI uses the terminal to send many commands, it affected the GUI also
the TV is reset in the same manner as supercharger on receipt of the
notifcation. This allows the TV to auto-detect the specification from
the movie content and not the attract screen
the disadvantage of this is that the NTSC attract screen will show for a
PAL movie but this is a small complaint. the way around this would be
for the first dozen frames of the movie to be run unseen before the
attract screen starts and for the TV to detect the specification from
that
paws icons shown in window for all selected quantums because we may be
at a intermediary color clock regardless of selected quantum. for color
clock "3" however the paws are only shown for quantum Clock
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
removed modalflags package. modalflags was added very early in the
project. it's neater and simpler to implement command-line modes with
the standard flag package directly
improved log message for unsupported terminal type
remove rand.Seed(time) on startup. rand.Seed() is a deprecated function
Makefile now sets the version string for the project. the version
package tries to set a meaningful version string if the project is not
built with the Makefile
added VERSION command
updating live information is expensive and we only do it after every
instruction normally. however, for the LAST command we need that
information to be current
removed unused caching fields. renamed function and interface names
related to breakpoints sharing
debugger quantum value is atomic for safe reading outside emulation
goroutine. moved quantum definitions to govern package
simplification of how debugger interfaces with coprocessor debugger/developer
ammended COPROC REGS function to use new spec system. FPU registers
display formatted values
removed RegisterStatus() function for now. the ARM status register is
more complex in reality than how I've modelled it (CSPR vs ASPR and and
an ESPR in some models). the information is there but not in a coherent
way. probably requires adding a status register group
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
corrected display of existing notifications. for example, emulation
notifications (pause, mute, etc.) would not display if cartridge
notification was visible
"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
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
the debugger.UserQuit error needs to be filtered before it can printed
to the terminal. the test was there but the logic was inverted causing
all errors except debugger.UserQuit to be filtered
command line now only accepts true/false as options. previously, the
options were aimed at allowing different syncing methods with the
monitor but that's not needed now
better visuals for tracker window
sketched in idea for a tracker "replay" feature that will allow a
selection of audio output to be replayed. it works in principal but is
not currently used