- fixed bug that caused sprite position to be misrecorded
- caused by reckoning the effects of HMOVE from the reset position
rather than the current (possibly already adjusted) position
o debugger / colorterm
- implemented HOME/END keys for input loop
o monitor / sdltv staterecorder
- generalised colour assignment
- not perfect but more flexible
o debugger / breakpoints
- parsing of negative numbers now allowed
- debug colours (just the players for now)
- hmove type now uses a latch to keep track of when hmove event is
over, rather than the rather clumsy and prone to error method we
had previously. this goes someway to fixing a bug in the
emulation caused by late HMOVEs
o polycounter
- modified MachineInfo() output
- updated test routines to reflect changes to MachineInfo output
o debugger
- added DEBUGCOLORS toggle to DISPLAY command
- PLAYER command in verbose mode now prints player 0 and player 1
side by side for easier comparison
- similarly for MISSILE command
- verbose PLAYER output now includes commentary of the sprite size
setting
- similarly for MISSILE command
- corrected initialisation script error output
- removed tab completion time limit - can now cycle through options
until another key is pressed
o television
- improved screen size detection and stability routines
- this currently breaks the fix we had in place for Plaque Attack
but I think we can probably fix that some other way
- reworked disassembly routines so that it works better with
multi-bank cartridges.
- unfinished
o cpu
- reworked cpu testing routines
- NoSideEffects has been changed to NoFlowControl
* this means that memory is now written
* it is intended that NoFlowControl CPU instances be supplied with a
memory shim that can filter out write addresses as appropriate
* this was done so that we can see switching of cartridge banks
- tidy up of command line parsing
o regression testing
- added regression package
- implemented simple database to facilitate regression tests
- uses DigestTV
- implemented a headless television that can save the last image to a file
o DigestTV
- implemented a headless television that updates a screen digest
every frame
o gopher2600
- added "regress" mode. uses digesttv and will be used as the basis
of a complete regression testing mode
- implemented BRK and RTI instructions - not fully tested
- tidied up when NoSideEffect is checked
o debugger
- fixed breakAndTrapCallback
- fixed instruction result validity check crash caused when
instruction step resulted a runtime error
o cartridge
- added support for half-size cartridges
- tidied up error handling
o various commentary cleanups/clarifications
o move test files to test/ directory
- added 0x80 - immediate 3-byte nop
o vcs
- reset operation now resets TIA and RIOT in addition to CPU
o cpu
- reset attempt mid-instruction now returns suitable error
instead of panicking
o debugger
- fixed breakpoint/trap check when it occurs mid-instruction
- broken in 6045b9a9b65d623800b8e386e06fe0fdfb71998f
- fixed PEEK command
- fixed SYMBOL command
- SYMBOL command now takes optional ALL argument - prints every
mirror address of the resolved symbol
- tidy up how state requests are made
- added info requests
- implemented MOUSE info request
o debugger
- implemented 'LAST DEFN'. prints the definition of the last
instruction executed
- STEP now takes optional CPU or VIDEO keywords
- removed critical sections and replaced with channel
communication
- better lexing/parsing of command input
- break/trap on instruction effect (read, write, etc.)
(we had to implement a more flexible way of satisfying the
target interface for this. it works but it's a bit ugly)