- FromMemory() now creates disassembly instance rather than being a
function attached to the type
- comments and documentation
o debugger
- fixed usage of disassembly.FromMemory()
- the reason we went with the old method for FromMemory() was to aid
in how symbol tables were created and pointed to from debug-memory.
however it was dumb and confusing. problem is now solved correctly
- 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
- reworked polycounter to make it easier to generate polycounters of
different bit lengths
o tia/audio
- commented code
o wavwriter
- now saves correctly with correct samplerate
- 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
- added Writer type. used for comparing buffered output with
example strings
- used by modalflag and symbols test package, although it may be
used by other packages in the future
- added ExpectedSuccess() and ExpectedFailure() functions
- reworked addresses package so that canonical names map is visible
externally
- added commentary to explain that the map is not to be used in the
emulation (we prefer the sparse array)
- this fixes the problem in the symbols package when adding the
canonical symbols the ROM's symbols information
- I've not checked but I suspect these changes also fixes a problem
in disassembly output that I've noticed out of the corner of my
eye
- this should have been caught in testing so we've added a test to
the symbols package
- simplified register implementations
- program counter now a separate type
- register package renamed to registers
- moved status register to registers package
- reworked tests
- 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
- 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.
- implemented SdlPlay
- simplified and more efficient SDL interface
- renamed PixelTV to SdlDebug
- SdlDebug implies debugging is allowed so removed AllowDebugging
request from gui interface
- removed stability code from SdlDebug
o television
- added stability detection to base television implementation
- added top/bottom scanline figures to specification types. more
intuitive to work with in some contexts
- sketched in web interface
o cartridge
- cartridge will now load from http:// target as well as local file
system
o Makefile
- added web and webserve targets
- reworking of comments and naming for clarity
o gui
- reworking of comments and naming for clarity
- moved overlay code to gui
- removed overlay package and renamed concept back to metapixels
- calls to future.Schedule all now use references to static
functions and not functions created on demand
- massive speed up
o future
- added ScheduleWithArg() function to better handle the above
changes without closures
- cartrdiges no longer return CartridgeListen error if nothing is
done in listen() function
- generating a new error is expensive to do every video cycle and
serves no purpose in this instance
o error
- remove CartridgeListen error
- timestamping of memory access can now be turned off
- call to time.Now() is expensive
o debugger / reflection
- REFLECT command now turns on/off timestamping in vcs memory