Real Sports Tennis would cause a brief instability during the logo
bounce. the difference in VSYNC is one frame long and shouldn't
affect the stability
the MsPacman VSYNC event (when the bouncing fruit appears) revealed the
error in using the VSYNC history to make a decision
removed the "immediate desynchronise" option
disassemby when called from normal cartridge attachment is now done the
background in a separate goroutine. this allows execution to begin
immediately without having to wait for the disassembly to finish
disasm window in the gui will show a "disassembling..." message while
the background disassembly is working
fixed symbols test data
also removed 6507_functional_test build tag from the package. the
original idea was to exclude the package because it took relatively
longer than other tests but it is now considerably faster. the speed
comes from not recording the execution history, which is only needed if
the functional test fails for some reason. if the test does fail, then
the test is run again with history recording enabled
added ExpectApproximate() function to test package
the test harness can also create a pprof if required
when the tape was not playing the step() function returned a formatted
error saying the tape had stopped. the formatting process puts pressue
on the memory allocator and the frequency of the error (once per colour
clock) caused a noticeable drop in performance
the fix removes the error generation from the step() function completely
and also adds an early return if the tape is not playing
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
this prevents a visual resizing of the image at the moment when the
screen has synchronised. ie. the resizing happens and is disguised
by the synchronisation process
fixed spelling mistake in television preferences window
all SetPixel() function now set VBLANK pixels to 'VideoBlack' via a call
to GetColor(), rather than setting the RGBA values directly. except the
video digest, which remains a special case
this complete work from the previous commit 68263991f
setting the index field to NoSignal should be enough but some pixel
renderers may choose to still render the signal information
this completes the change started in 3284d9f7
- 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
simple was added so that regression database didn't need to change along
with the changes to the television (simple is an older television
implementation rather than anything really new). but now that the
regress package can redux playback files, there is now no need for the
'simple' version
the SetPixels() loop in both digest types were using signals that were
invalid for that frame. this can happen when the screen size changes or
during a change of VSYNC profile
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
removed audio overlay due to changes in TIA audio implementation. the
changes could be reflected accurately but the overlay is no longer as
useful as I originally thought
nvram data written to fa2_nvram directory in the resource path. not
emulating read/write time of flash memory
fixed GetRAM() information for CBS, DF and commavid
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
Log() function takes any type for the detail argument. More convenient
when logging errors or fmt.Stringer types. Logf() function is unaffected
by this change
permissions moved to base logger type. previously only available with
the central logger
messages from 3e+, wickstead design and supercharger
mnetwork would crash if only one segment was specified
the logic of SetBank() for 3e and 3e+ were swapped
this applies to the loading of ELF binaries that might have undefined
symbols. rather than reject the binary compltely, the emulator will
continue until the symbol is used during execution
this is to prevent possible issues with StrongARM functions being
triggered erroneously when the address is used in a non-executing
context by the ARM program. this doesn't seem likley but this is a
preemptive fix with no adverse consequences