Commit graph

138 commits

Author SHA1 Message Date
steve
f39d1d33e3 o debugger
- removed REFLECT ON/OFF system
    - the performance hit is not that great

o cpu
    - added backward branching test
    - added branching page fault test

o debugger_test
    - increased timeout for rcvOutput()
2020-01-05 18:58:42 +00:00
steve
1b045f7417 o debugger
- built testing harness. allows interactive debugger to be tested
	with "go test"
    - debugger can now be started with empty cartridge loader
    - gopher2600 still expects a named cartridge but the debugger package
	can function without one
2020-01-05 18:58:42 +00:00
steve
6c210ee6c1 o debugger
- reorganised packages within the debugger package
    - commentary and documentation

o terminal
    - renaming of console to terminal in all instances
2020-01-05 18:58:41 +00:00
steve
73dcd24070 o disassembly
- 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
2020-01-05 18:58:41 +00:00
steve
aba69ec69a o added overview documentation for every package
o recorder
    - fixed recorder after recent changes made to digest/video
    - fdf3f2765c59de4097a01b7fdf736ae38e4398b4
2020-01-05 18:58:41 +00:00
steve
5698309e68 o database
- improved error messaging
    - sketched in support for audio and 'video & audio' digests in
	digest regression
2020-01-05 18:58:41 +00:00
steve
da4ce0b9eb o digest
- renamed screendigest package to digest and SHA1 type to
	ScreenDigest
    - added AudioDigest type
    - added Digest interface
2020-01-05 18:58:41 +00:00
steve
3aa859a686 o replaced all instance of new(obj) with &new{} 2020-01-05 18:58:40 +00:00
steve
5ab3b1a169 o debugger
- reworked debugger's input loop
    - better comments explaining the process
2020-01-05 18:58:40 +00:00
steve
8ad481e132 o debugger / playmode
- 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
2020-01-05 18:58:39 +00:00
steve
28d7352b52 o cartridgeloader
- moved from memory package
2020-01-05 18:58:39 +00:00
steve
11d9676ba9 o screendigest
- moved digesttv to screendigest package

o television
    - removed imagetv and renderers package
2020-01-05 18:58:39 +00:00
steve
2ff4be2e8a o debugger
- encapsulated work that is required to (de)activate reflection
	monitor
2020-01-05 18:58:39 +00:00
steve
2aadee3158 o sdl
- 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
2020-01-05 18:58:39 +00:00
steve
59413405e9 o television
- 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
2020-01-05 18:58:39 +00:00
steve
604f2e49be o experimenting with hashtags
o removed some lint errors
2020-01-05 18:58:38 +00:00
steve
5f3c8b41b9 o debugger
- corrected error handling for GUIEvents
    - fixes erroneous crash caused by setting a duplicate mouse break
	when emulation is running
    - gui event handling now differentiates up and down mouse button
	events
2020-01-05 18:58:38 +00:00
steve
1814ed0544 o debugger
- renamed metavideo concept to reflection
    - moved metavideo/reflection to its own package
    - added ReflectionNotRunning error
    - error message shown if overlay is turned on without reflection
	processing running
    - improved DISPLAY command

o sdl
    - type assertion panics now caught in sdl.SetFeture() and returned
	as a PanicError
2020-01-05 18:58:38 +00:00
steve
8db28019c6 o instrumentation
- replaced machineinfo concept with instrumentation interface
    - for now instrumentation is the same as the Stringer interface
    - plans to add more advanced instrumentation with additional
	interface requirements. Stringer is a good first step

o debugger
    - removed verbose/terse modes

o regression
    - fixed how frame regression gets state information (otherwise
	broken by changes removal of machineinfo)
2020-01-05 18:58:38 +00:00
steve
a734782969 o cpu
- streamlined how CPU results are created and stored
    - speeds up execution a little

o debugger
    - implemented Disable() function for consoles
    - used to stop output when running initialisation script
2020-01-05 18:58:38 +00:00
steve
f2e7559052 o removed splace stick support 2020-01-05 18:58:38 +00:00
steve
a1bd179139 o cartridge
- Attaching of cartridges now uses CartridgeLoader type
    - CartridgeLoader type allows the caller to specify the cartridge
	path and the format of the cartridge, if fingerprinting needs to
	be overridden
    - An expected hash value for the loaded cartridge can also be
	supplied

o regression / playback
    - regression database and playback scripts now include entries
	specifying the cartridge format
2020-01-05 18:58:38 +00:00
steve
acc10f8d97 o errors
- renamed FormattedError to AtariError
    - renamed NewFormattedError to New
    - implemented Is() and IsAny() for more convenient testing
    + changed all error testing to use Is() and IsAny()
    - renamed FatalError to PanicError to better indicate the intent
2020-01-05 18:58:38 +00:00
steve
fb037ddb70 o setup
- added setup package
    - rerouted all vcs.AttachCartridge() calls through new package

o regression/database
    - split database package from regression package
2020-01-05 18:58:37 +00:00
steve
ca33e408f1 o CPU
- reworked index bug handling in CPU
    - fixed slo opcode defintion (wrong addressing mode specified)

o debugger
    - added BUG option to CPU command
    - debugger now optionally prints CPU BUG messages on the step it
	occurs
2020-01-05 18:58:37 +00:00
steve
75068b7522 o debugger
- corrected addresses for RESM1 and NUSIZ0 in metavideo monitor
    - update metavideo labels
    - metavideo processing can now be turned on/off
2020-01-05 18:58:37 +00:00
steve
9feebb9fc3 o joysticks
- deprecated splace controller as it no longer works reliably
    - we know have keyboard controller for now

o peripherals
    - tidied up peripherals package
2020-01-05 18:58:36 +00:00
steve
e6d6d3f0f9 o tia/player
- reworking of timings
    - improved MachineInfo() text
    - work on NUSIZ * more to be done

o stella tv
    - error if no flyback signal has been sent

o metavideo
    - improved metavideo
    - now visualises delayed effects
2020-01-05 18:58:36 +00:00
steve
9654d0111b o regression
- added state option to frame regression
    - records CPU-step granularity recording of the TV state
    - intended to test for integrity of TV state recording
    - feedback from regression entries now crop filenames to just the
	last part of the path
    - moved database code into its own package
    - correctly filters PlaybackHashErrors - results in "failure" rather
    than "error"

o gopher2600 / regression
    - added VERBOSE argument to REGRESS RUN mode - prints error messages
    - added FAIL argument to REGRESS RUN mode - regression test that end
    in an error normally cause the sesssion to end. this option forces
    it to continue

o RIOT
    - removed randomised start value for INTIM
    - makes regression tests more reliable

o television
    - renamed BasicTelevision to StellaTelevision
    - the source file had been renamed already
2020-01-05 18:58:36 +00:00
steve
c424a4a24b o sdl
- added faded metavideo layer for incomplete frames
2020-01-05 18:58:36 +00:00
steve
b9a3d0b456 o debugger
- debugger now handles CTRL-Z signals for terminal that have been
	put into raw mode; like the colorterm package
    - CTRL-C now asks for confirmation
    - added EXIT command as an alternative to QUIT

o colorterm
    - CTRL-C clears input line if anything has been typed
    - input buffer checked for length before writing
2020-01-05 18:58:35 +00:00
steve
2a683ebc5a o debugger
- renamed STEPMODE to GRANULARITY
    - video granularity prompt no longer printed in bold type. easier to distinguish
    between that a cpu granularity prompt
2020-01-05 18:58:35 +00:00
steve
9ddf980348 o SDL / GUI
- keyboard events now include modifier keys

o debugger / playmode
    - only react to keyboard presses with the correct modifier
    - fixes problems when workspace switching with ALT-1 etc.

o hardware / vcs
    - renamed MC attribute to CPU

o television / basic
    - better emulation of Stella's method of counting pixels
    - improves A/B testing
    - implemented an out-of-spec HsyncSimple signal to help with this

o tia
    - now sens HsyncSimple signal in addition to Hsync signal
2020-01-05 18:58:35 +00:00
steve
73e08a943e o project
- "TODO" comments notation changed to "!!TODO" to help with vim-todo
    - TODO file changed to FUTURE to better indicate its purpose and not
    to confuse with the autogenerated todo.txt
2020-01-05 18:58:35 +00:00
steve
c89b893226 o debugger
- prompt now indicates that the CPU is not ready (WSYNC) when in
	video step mode
2020-01-05 18:58:35 +00:00
steve
690c0c158a o disassembly
- corrected linear disassembly to work with non-atari bank switching
	cartridges

o cartridge
    - corrected bank initialisation
2020-01-05 18:58:35 +00:00
steve
730707735e o cartridge
- more general and more flexible handling different cartridge
mapping schemes
    - implemented parker bros cartridges

o disassembler/debugger
    - changes to bank detection to support changes to cartridge module
2020-01-05 18:58:35 +00:00
steve
d42ec8e911 o television
- reworked basic television
    - added AUTO tv type to the command line - switches tv specification
	to PAL automatically when visible screen exceeds NTSC limits
    - updated all renderer implementation (sdl, digesttv, imagetv) to
	handle specification switches
2020-01-05 18:58:34 +00:00
steve
5393cc5325 o symbols
- reworked symbols package
2020-01-05 18:58:34 +00:00
steve
b51cfbb057 o debugger
- a recent refactor caused the vcs to initialise with the basic
    television rather than the sdl gui/tv
    - this meant that the sdl implementation of MetaSignal was not being
    called

o basic television
    - scanline extension corrected

o errors
    - messages corrected
2020-01-05 18:58:33 +00:00
steve
6272b90892 o debugger/script
- renamed Recorder to Scribe
    - any references to script "recording" has been altered

o errors
    - some effort expended tidying up error messages display and
    construction
    - commandline package now uses errors package

o removed panics that would be better served with errors

o removed extraneous calls to fmt.Println and fmt.Printf
2020-01-05 18:58:33 +00:00
steve
61c39d5a93 o regression
- added regression entry listing operation
    - added playback regression type
    - playback regression makes a local copy of playback script. delete
    operation deletes it
    - better database key handling
    - running of regression tests can now be limited to a list of
    specific keys
2020-01-05 18:58:33 +00:00
steve
99d04c747b o debugger
- commands can now be deemed unsafe
    - script recording can handle embedded scripts
    - script playback/recording moved to their own package
    - videocycle prompt changed

o gopher2600
    - improved default command line parsing

o general tidying up

o sdl/imagetv
    - wrong error reporting
2020-01-05 18:58:33 +00:00
steve
468d34fdc5 o television
- renamed HeadlessTV to BasicTelevision
    - imagetv and digesttv moved to a single package (called renderers)
    - for example, an SDL GUI and a digestTV instance can now use the
	same BasicTelevision instance
    - hooks now implemented as a Renderer interface
    - simplified GetState() interface

o debugger
    - debugger now initialises an instance of digestTV, using the same
	underlying BasicTelevision as the SDL GUI
    - added DIGEST command
2020-01-05 18:58:33 +00:00
steve
47b59fedad o renamed scribe package to recorder
- fits in better with what it's being asked to do
2020-01-05 18:58:33 +00:00
steve
d18caa86da o Ports/Controllers
- updating SWCHA does not now clobber the entire register, only the
        nibble for the controller being strobed

o playmode
    - default recording name now includes seconds
    - recording doesn't start until cartridge has been inserted (so if
	the cartridge fails to load there is no useless recording file left
	over)

o memory / periphbus
    - PeriphWrite simply writes straight to memory, rather than through
	a channel
    - work on how controllers are implemented means this is no longer
	necessary.
2020-01-05 18:58:33 +00:00
steve
d04462a0fc o scribe
- added recording and playback of controller input

o cpu
    - cpu now correctly propagates errors from video cycle callback
2020-01-05 18:58:32 +00:00
steve
953b709fd9 o controllers
- alternative imlpementation of yesterdays changes
    - this is cleaner and makes more sense
    - removed race error in splace controller
2020-01-05 18:58:32 +00:00
steve
c5edff64e7 o contollers
- generalised controller support
    - opened the way for different stick implementations, including
    scripted playback
2020-01-05 18:58:32 +00:00
steve
b03b64e527 o metavideo
- reimplemented system monitor as metavideo
    - system monitor was trying to be too general to the point where it
    was confusing
    - refactored sdl implementation accordingly

o debugging / script
    - "script capture" reclassified/renamed as "script recording"
    - i want to use capture to refer to the capturing of control input
    (joystick, etc.)

o assert
    - moved assert package to be a sub-package of hardware/cpu/register
    - not required anywhere other than the test packages for cpu and
    register
2020-01-05 18:58:32 +00:00