this fixes a problem where some ROMs when given the command line
directive to use the PAL spec is contradicted by the preview emulation.
this seems to be a particular problem with PAL ROMs that never set a
valid VSYNC signal. Nightstalker is a good example of such a ROM
the logger.Permission interface indicates whether the environment making
the logging request is allowed to create new log entries. the
environment.Environment type satisifies the Permission interface
logger.Allow is provided as a convienient way of indicating the the log
entry should always be created
the information used to create the loader is storied in
the playback type rather than a created loader itself
this is more flexible and gives us better control of when
the loader is disposed of
checking of cartridge hash must now be performed explicitely
when the cartridge loader is created from the playback information
removed all references to hotloading. will reimplement in the future
made sure then cartridgeloader.Loader instances are closed when no
longer needed. added commentary where required to explain
information pane in the ROM selector window is not disabled when
animation emulation is not running. the load button is still visible
based on the animation emulation
debugger no longer sends play, pause notifications to the gui. the gui
polls for that information as required
govern package now has SubState type to complement the State type.
StateIntegrity() function enforces combinations of State and SubState,
called from debugger.setState() function
playmode notifications reworked and contained in a single playmode_overlay.go
file. this includes the FPS and screen detail
preference value sdlimgui.playmode.fpsOverlay replaced with
sdlimgui.playmode.fpsDetail. still toggled with F7 key
coproc icon moved to top-left corner of playmode overlay and only
visible when FPS detail is showing
when FPS detail is showing multiple (small) icons care shown. when it is
not showing, a single (large) icon is shown according to the priority of
the icon. eg. pause indicator has higher priority than the mute
indicator
ARM7TDMI (which is an ARMv4 implementation) does not allow misaligned
addressing at all. ARMv7 meanwhile does allow it
ARM emulation no longer logs misaligned addresses. but it does forward
the information to the developer interface
Faults window now has a Clear button and fixed table header
notifications interface instance moved to environment from
cartridgeloader. the cartridgeloader package predates the environment
package and had started to be used inappropriately
simplified how notifications.Notify() is called. in particular the
supercharger fastload starter no longer bundles a function hook. nor is
the cartridge instance sent with the notification
preview can be used to run a ROM for a short period in order to gather
information about the ROM that can only be found through execution. this
is useful for example, for setting the TV dimensions
apart from better organisation, these changes fix a bug in CDF that
could cause a crash caused by the ARM program accessing a memory address
that is not represented in the emulation
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