the note about historical versions also being covered wasn't strictly
needed and was ugly. the LICENCE being in the root file from the very
first commit is sufficient.
- added support for placeholder labels
- improved error messages
- better help command
o debugger
- command template is now labelled
o test
- corrected "expect success" message
- added Writer type. used for comparing buffered output with
example strings
- used by modalflag and symbols test package, although it may be
used by other packages in the future
- added ExpectedSuccess() and ExpectedFailure() functions
- removed references to SdlPlay and SdlDebug
- constructors for debugger and playmode now expect instances of GUI
and Television, rather than creating them
- this should help future porting efforts
o peripherals
- renamed Events to Actions
- to avoid confusion with Events in the GUI package
o television
- renamed StellaTelevision to television; a better name because
it serves as a reference implementation and is the only television
implementation currently needed.
- originally, PixelRenderers were implemented as Television that
embedded StellaTelevision; it made sense to use a more unique name
- note that we're still keeping and using the Television interface
- reworked specifications file
- implemented SdlPlay
- simplified and more efficient SDL interface
- renamed PixelTV to SdlDebug
- SdlDebug implies debugging is allowed so removed AllowDebugging
request from gui interface
- removed stability code from SdlDebug
o television
- added stability detection to base television implementation
- added top/bottom scanline figures to specification types. more
intuitive to work with in some contexts
- reworking of comments and naming for clarity
o gui
- reworking of comments and naming for clarity
- moved overlay code to gui
- removed overlay package and renamed concept back to metapixels
- streamlined how CPU results are created and stored
- speeds up execution a little
o debugger
- implemented Disable() function for consoles
- used to stop output when running initialisation script
- Attaching of cartridges now uses CartridgeLoader type
- CartridgeLoader type allows the caller to specify the cartridge
path and the format of the cartridge, if fingerprinting needs to
be overridden
- An expected hash value for the loaded cartridge can also be
supplied
o regression / playback
- regression database and playback scripts now include entries
specifying the cartridge format
- keyboard events now include modifier keys
o debugger / playmode
- only react to keyboard presses with the correct modifier
- fixes problems when workspace switching with ALT-1 etc.
o hardware / vcs
- renamed MC attribute to CPU
o television / basic
- better emulation of Stella's method of counting pixels
- improves A/B testing
- implemented an out-of-spec HsyncSimple signal to help with this
o tia
- now sens HsyncSimple signal in addition to Hsync signal
- renamed HeadlessTV to BasicTelevision
- imagetv and digesttv moved to a single package (called renderers)
- for example, an SDL GUI and a digestTV instance can now use the
same BasicTelevision instance
- hooks now implemented as a Renderer interface
- simplified GetState() interface
o debugger
- debugger now initialises an instance of digestTV, using the same
underlying BasicTelevision as the SDL GUI
- added DIGEST command
- simplified run and stepping frontend to vcs hardware
- improved fps mode
o television
- removed extraneous members in headless class
- corrected setting of visible screen size
- color terminal input loop now responds to gui events correctly
- fixed debugger/memory layer
- debugger/memory layer also now searches cartridge specific symbols
o television
- altered semantics of status requests (for clarity)
- added Reset() to television interface
- HeadlessTV implements Reset()
o regression testing
- now shows complete paths to cartridge file
- fixes confusion in regression output when cartridges with the same
name appear in different folders
o video/future
- rerolled future group Tick() function
- reverted motion clock timings from 480ff22670eb8898b0d15d5f884257232db584bf
- this visually breaks Keystone Kapers ROM again but this was
definitely not the right solution because the fix broke both Yar's
Revenge and the stress-test-cards.
* I really now need to implement automatic regression tests
o debugger
- implemented grepping of disassembly
- window is now resized according how and when VBLANK is
switched on and off
- implemented stability check to limit when window resizing occurs
- Dragster now works correctly
o television
- improved how out-of-spec television signals are handled
- added new request type SETVISIBILITYWHENSTABLE
- SETVISIBILITY request type now accepts optional second argument
for whether the screen should be updated when visiblity is true
(some code paths will deadlock otherwise)
- updated Signal() interface - now propagates errors correctly
o gopher2600
- run mode now uses SETVISIBILITYWHENSTABLE
- 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