thumb program will abort if illegal memory access is detected
illegal accesses will always be logged even if the option is off
program will always abort on illegal PC fetch even if the option is off
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