- implemented audio
- using Ron Fries' method as the basis
- removed sample playback - performance of Fries' method is good
enough that we'll never need it again
- sdl audio routines using QueueAudio() - maybe better if we use
callbacks?
- sketched wavwriter AudioMixer - not usable yet
- 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
- saving scripts (playback and state scripts) are now prepended with
info about what type of script it is. in practice it has proved
useful to know this from a glance, rather than opening up the file.
o gopher2600
- playing back recordings is now more intuitive
- removed option to specify the filename that a new recording will
save to but I think that's acceptable.
- replaced machineinfo concept with instrumentation interface
- for now instrumentation is the same as the Stringer interface
- plans to add more advanced instrumentation with additional
interface requirements. Stringer is a good first step
o debugger
- removed verbose/terse modes
o regression
- fixed how frame regression gets state information (otherwise
broken by changes removal of machineinfo)
- 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
- setup package now uses database package and matches entries to the
specified cartridge and applies the changes listed
- only panel entries supported so far
- database file must be hand written
- renamed FormattedError to AtariError
- renamed NewFormattedError to New
- implemented Is() and IsAny() for more convenient testing
+ changed all error testing to use Is() and IsAny()
- renamed FatalError to PanicError to better indicate the intent
- added setup package
- rerouted all vcs.AttachCartridge() calls through new package
o regression/database
- split database package from regression package
- added state option to frame regression
- records CPU-step granularity recording of the TV state
- intended to test for integrity of TV state recording
- feedback from regression entries now crop filenames to just the
last part of the path
- moved database code into its own package
- correctly filters PlaybackHashErrors - results in "failure" rather
than "error"
o gopher2600 / regression
- added VERBOSE argument to REGRESS RUN mode - prints error messages
- added FAIL argument to REGRESS RUN mode - regression test that end
in an error normally cause the sesssion to end. this option forces
it to continue
o RIOT
- removed randomised start value for INTIM
- makes regression tests more reliable
o television
- renamed BasicTelevision to StellaTelevision
- the source file had been renamed already
- added progress meter for playback regression types
o errors
- added FatalError type. intended to be used instead of panic()
o limiter
- created limiter package
- moved sdl fpsLimiter to new package
- added HasWaited() function in additio to Wait() function
- added performance package
- moved fps() function from gopher.go to new package
- added percentage of full-speed indicator to fps
o gopher2600
- changed FPS mode to PERFORMANCE
o polycounter
- squeezed a little more time out of polycounter by changing the
receivers of some frequently called functions to pointer receivers.
o television / colors
- changed how colors are transalted from signals
- the color specifications are pre-processed in an init() function
- renamed Recorder to Scribe
- any references to script "recording" has been altered
o errors
- some effort expended tidying up error messages display and
construction
- commandline package now uses errors package
o removed panics that would be better served with errors
o removed extraneous calls to fmt.Println and fmt.Printf
- added regression entry listing operation
- added playback regression type
- playback regression makes a local copy of playback script. delete
operation deletes it
- better database key handling
- running of regression tests can now be limited to a list of
specific keys