window now includes revision information if the build is not a "release"
build
added version.Version() function to help with deciding if build is a
"release". supercedes the global Version and Revision variables in the
version package
error is logged but does not cause the cartridge load to fail
patch file given on the command line is not assumed to be in the
.gopher2600/patches directory
fixed help text for -patch
patch file parsing now tolerates leading space in patch file. this means
the neo style of patch file is now correctly detected if the comment
character is not the first character
while the version number appears in the window title it was not visible
in the log. moreover, the SDL version number appears early in the log
and may have led people to believe it was the version number of the
emulator
- preparation for adding 7800 emulation
cpu (6507) package uncoupled from upstream dependencies
- cpu no longer logs execution of KIL instruction
- randomisation of registers on startup can be handled by the called of
the cpu's Reset() function
- address errors are filtered by an optional IsAddressError() function
in the Memory interface implementation
- Error field removed from execution.Result type
all references to interface{} replaced with any
added Replace() to database package
simplified Regressor interface
playback regressor can now be reduxed
regression Redux() now uses database.Replace() instead of separate
Delete() and Add(). this makes sure that the redux entry gets the same
database key once the redux has completed
removed -dryrun option from REGRESS REDUX
removed regression fails log. it wasn't well developed and not a
particularly useful idea
fixed television.SetSimple(). the signal function was not set correctly
the way the regress() function behaves with regard to the flag package
is more like the launch() function
flag package boilerplate is removed and the sub-mode information is
displayed only when -help is requested
failed parsing at the top-level regress() function causes the args to be
passed to the default sub-mode (the RUN sub-mode) and parsed there.
there is no error message displayed by the regress() function
checks that linters exist before proceeding. project URL for each linter
in the Makefile comments
only go-errorlint and unconvert used at the moment
fixed all lint errors for the added linters
calls to Logf() which do no formatting replaced with Log()
calls to Log() with Sprintf() replaced with Logf()
error types sent without use of Error(), taken advantage of new logger
package features
correct construction of wrapped errors in eeprom package
this is useful for recreating playback files for the regression
database. playback entries not currently supported for REDUX mode
added -playbackIgnoreDigest and -recordingFilename options for RUN mode
specifying FAILS as a key will add the previously failed regressions to
the list
REGRESS LIST accepts list of keys to list. this can include FAILS to
list the previous FAILS from REGRESS RUN
as before, specifying no keys at all defaults to selecting all keys in
the database
tracker package uses television spec ID correctly
movie cart tested for PAL60. it should be PAL-M
rewind search functions uses the TV spec of the main emulation
command line "performance" and "regress add" -spec option renamed to -tv
template for TV terminal command uses specification.ReqSpecList
the logger.Permission interface indicates whether the environment making
the logging request is allowed to create new log entries. the
environment.Environment type satisifies the Permission interface
logger.Allow is provided as a convienient way of indicating the the log
entry should always be created
this replaces the PAL60 specification. PAL60 can still be specified on
the command line (and embedded in ROM filenames) but it is now treated
exactly the same as PAL
removed modalflags package. modalflags was added very early in the
project. it's neater and simpler to implement command-line modes with
the standard flag package directly
improved log message for unsupported terminal type
remove rand.Seed(time) on startup. rand.Seed() is a deprecated function
Makefile now sets the version string for the project. the version
package tries to set a meaningful version string if the project is not
built with the Makefile
added VERSION command
command line now only accepts true/false as options. previously, the
options were aimed at allowing different syncing methods with the
monitor but that's not needed now
curated package predated the standard errors package introduced in
go1.13
the standard package does a better job of what curated attempted to do
the change of package also gave me a opportunity to clean up the error
messages a little bit
the emulation package has been unecessary since the amalgamation of the
debugger and play modes. in order to allow switching between the two
modes it was necessary to remove the playmode package and to move all
playmode loops and other considerations into the debugger package. as a
result the abstraction offered by the emulation package is uncessary
-uncapped defaults to true, which is more useful for this mode than
running with the FPS cap enabled
renamed because the -fpscap option for PLAY and DEBUG mode is now very
different and it was confusing to have an option with the same name but
with different semantics
this facilitates A/B testing of two binaries. normally you would want to
prevent a playback with a ROM binary different to one used in the
original recording, but in some instances it is useful
go-wav, statsview and memviz all indirectly used gopkg.in/yaml.v3 which
I do not want to depend upon
WAV functionality is no longer available for wav writing or reading
(supercharger tapes). will try to reintroduce functionality in the
future
PERIPHERAL command now accepts AUTO parameter. this will (re)fingerprint
the cartridge and insert the "detected" peripheral
implementation temporary in lieu of an improved setup package