Commit graph

21 commits

Author SHA1 Message Date
steve
9f50f3c77e o audio
- 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
2020-01-05 18:58:40 +00:00
steve
8ad481e132 o debugger / playmode
- 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
2020-01-05 18:58:39 +00:00
steve
cc8c14f0ae o regression
- 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.
2020-01-05 18:58:39 +00:00
steve
28d7352b52 o cartridgeloader
- moved from memory package
2020-01-05 18:58:39 +00:00
steve
11d9676ba9 o screendigest
- moved digesttv to screendigest package

o television
    - removed imagetv and renderers package
2020-01-05 18:58:39 +00:00
steve
8db28019c6 o instrumentation
- 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)
2020-01-05 18:58:38 +00:00
steve
dcc75c89c5 o regression
- verbose now prints failure messages
    - fixed frame regression with state
	- broken in b98da52cf1e28a6486607e36ebc0609af6db2f65
2020-01-05 18:58:38 +00:00
steve
05e9d2b2b5 o gopher2600
- moved argument parsing into new magicflags package
2020-01-05 18:58:38 +00:00
steve
56fa421b6c o regression
- fixed deletion of script files

o database
    - CleanUp() now expects an error to be returned
2020-01-05 18:58:38 +00:00
steve
a1bd179139 o cartridge
- 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
2020-01-05 18:58:38 +00:00
steve
a48f3056a5 o regression
- frame regression type shows meter for long running tests
2020-01-05 18:58:38 +00:00
steve
b0cb31bcd7 o database
- simplified internal structure
    - simplified Entry interface

o regression
    - tidied up error messages
2020-01-05 18:58:38 +00:00
steve
50e8ab205d o setup
- 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
2020-01-05 18:58:38 +00:00
steve
acc10f8d97 o errors
- 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
2020-01-05 18:58:38 +00:00
steve
fb037ddb70 o setup
- added setup package
    - rerouted all vcs.AttachCartridge() calls through new package

o regression/database
    - split database package from regression package
2020-01-05 18:58:37 +00:00
steve
9654d0111b o regression
- 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
2020-01-05 18:58:36 +00:00
steve
e18f17ca37 o regression
- 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
2020-01-05 18:58:33 +00:00
steve
1073c53724 o performance
- 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
2020-01-05 18:58:33 +00:00
steve
6272b90892 o debugger/script
- 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
2020-01-05 18:58:33 +00:00
steve
61c39d5a93 o regression
- 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
2020-01-05 18:58:33 +00:00
steve
609ab331a2 o regression
- tidied up regression database operation
    - removed UPDATE option (for now). it's probably never needed but we
    can add it again if it's ever needed
2020-01-05 18:58:33 +00:00