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
Instruction boundaries can be inferred by the debugging input loop,
which is the only place it is requred. reworked GetAdjustedCoords() in
the televsion package (now called AdjCoords()) to cope with this.
ReqState() is totally replaced by GetCoords()
caused by changes introduced in dda5ed5d5c
taking the clock/scanline values from LazyTV was a good idea but the
time it takes for the lazy system to update is just long enough for the
old value to be visible.
an additional argument to PixelRender.SetPixels() is required but it
can't be helped.
all signals are now sent with SetPixels(). this simplifies PixelRenderer
implementations. removed the current flag, that information can be
obtained with television.GetState()
AbsoluteMaxScanlines increased to 313. this is to accomodate ROMS that
use the absolute limit of the PAL specification and turn off VSYNC such
that it tips over into the extra line.
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
this simplifies the sdlimgui/screen type in addition to the NewFrame()
and Resize() functions in the PixelRenderer interface
will allow better overview and summarising of television performance
playscreen F7 window shows "total scanlines" rather than "visible
scanlines"
it's less clumsy when used as a label and it's accurate with regards to
how the VCS is documented. not sure why I thought HorizPos was a better
label. maybe it helped my thinking in the earlier phases of development.
- this caused issues during rewinding
simplified signal history in television storage
simplified pixelrenderer.NewFrame()
simplified pixel management for GUI screen implementation
frame limiter turned off for rewind events
television signal history array is static
PixelRenderer.SetPixel() now expects an augment SignalAttributes
instance. Color is indexed by the PixelRenderer implementation. SDLImgui
implementation now stores copy of specification for speed.
PixelRefresher folded into PixelRenderer. SetPixel() should be called
between two calls UpdatingPixles(true) and UpdatingPixels(false) for all
PixelRenderer implementations - whether it does anything or not.
updates attached pixelrenderers. added Refresh() function and added
'refreshing' flag to SetPixel()
cpu and tia memory references updated on rewind
fixed rewind.Append()
removed all messages from errors package. the strings are now hard coded
in place. the original reason for extracting the error strings like that
was (a) for redundancy and (b) for localisation possibilities. However,
in reality there is not much redundancy and since the project started
the scope of localisation is much larger (particularly due to the
addition of a GUI)
this is the first step. the next step is to remove the errors package
altogether. recent additions to Go mean that the functionality of the
errors package is no longer required. moreover, the original idea for
the errors package functions turns out not to have been as useful as
first appeared (the Error() functionality which makes sure no repeating
sub-strings occur is probably better achieved with static tooling).
one idea that comes from this which is quite interesting is the idea of
a curated error. that is, any error that has been "wrapped" as some
'generic' type. the IsAny() function in the errors package effectively
serves this purpose. we use that in one place in the input loop of the
debugger. not strictly necessary but nice to have so it would ideal
if we could remove the errors package but keep that idea.
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.
unified/normalised static area structure and presentation
better tab bars for static area window
corrected cropped cursor drawing for pixel position on the VBLANK
boundary
TV specification changeable at command line and via GUI's debug screen
window
abstracted resizing mechanism opening the possiblity
for more sophisticated analysis
digest/video handles TV specification changes
bumped imgui-go version to 2.4.1
reworked how palettes and individual colors are stored
reworked reflection package. dropped the TIA register reflection for
now. will add back again at a later date.
dropped the altPixel phraseology. now just referred to as debug colors
(like Stella and how earlier versions did). rename gui requests
accordingly.
improved mouse-hover window in debugger
removed fixes previously added to account for Pitfall silences. caused
problems with other ROMs, particularly chiphead demo
added option to PLAY mode that presets window to use overscan area.
prevents excessive window resizing when overscan use is detected.
commentary fixes
- improved documentation
- some tidying up
o regression
- improved documentation
o digest
- Digest interface now requires Hash() rather than String()
- warning: use of String() may now break things