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
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
preference window indicates current playmode mute state in both the
playmode tab and VCS tab (audio section). added debugger mute state to
the VCS tab also
more care taken over clearing SDL audio queue when muting
CTRL+m will toggle mute for the current playmode
set defaults for revisions, rewind and ARM tabs of the prefs window (in
addition to the CRT tab). set defaults button labelled appropriately
fixes some race conditions caused by pre/post hooks on prefs values -
prefs values are generally goroutine safe, except when pre/post hook is
defined
because of how we mute (sdl.PauseAudioDevice()) there was a small bug
in the following scenario:
playmode (with rom producing audio) -> debugger (muted audio) -> change rom -> playmode
the final packet of audio data from the first ROM could be heard when
switching back to playmode
increased audio mix volume slightly
debugger audio is muted by default
sdlaudio added to the television as a realtime audio mixer. television
implementation altered to handle realtime audio.
audio is better than what it was but still room for improvement I think.
TIA now puts both audio channels in the SignalAttributes separately
it is up to television.AudioMixer implementions to mix the two
channels as required
This allows a single call to SetAudio() and for the loop to happen
inside that function - as opposed to looping over the slice and calling
SetAudio() multiple times
screen will buffer a small number of frames it can use to smooth out
variations in the speed at which frames come from the emulation
results in better synchronisation for flicker kernels
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.
triple buffering of screen pixels to help VSYNC
simpler SDL audio. same effect (filling in for buffer underrins) but
more consistent and more simply implemented.
tweaked vignette CRT effect