Commit graph

64 commits

Author SHA1 Message Date
steve
16b15fad95 o added licence headers to all files 2020-01-05 18:58:43 +00:00
steve
e3ccbcbcd1 o commandline
- added support for placeholder labels
    - improved error messages
    - better help command

o debugger
    - command template is now labelled

o test
    - corrected "expect success" message
2020-01-05 18:58:43 +00:00
steve
85bf8d672f o disassembly
- debugger command can now specify which bank to display
2020-01-05 18:58:43 +00:00
steve
206cca0bef o setup
- added television entry type
2020-01-05 18:58:43 +00:00
steve
0630722590 o vcs
- correct propagation of error from polycounter
    - removed VCSError message
2020-01-05 18:58:42 +00:00
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
0f5a258482 o patch
- implemented patching

o setup
    - added patch entry type

o gopher2600
    - added patch flag to RUN mode
2020-01-05 18:58:42 +00:00
steve
d7cdfcfe61 o errors
- removed ErrorID, using the error message as the ID
    - works just as well and simplifies maintenance
    - the messages should be moved to the relevant packages OR to a
      locale package. not sure which yet.
2020-01-05 18:58:42 +00:00
steve
a3cbbcaf54 o riot
- moved timer to new sub-package
    - moved peripherals to new input sub-package
2020-01-05 18:58:42 +00:00
steve
973f7e0852 o cpu
- commentary and documentation
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
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
f7b716148d o polycounter
- 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
2020-01-05 18:58:41 +00:00
steve
9f50f3c77e o audio
- 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
2020-01-05 18:58:40 +00:00
steve
680be0722f o errors
- documented
    - clarified when and why panic() should be called
    - changed formatting verbs in error messages

o targets
    - removed panic()
2020-01-05 18:58:40 +00:00
steve
cbf81c6ce9 o sdlplay
- fps capping can now be turned on/off on command line for PLAY and
	PERFORMANCE modes
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
75ad27dba0 o cartridges
- 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
2020-01-05 18:58:39 +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
b0cb31bcd7 o database
- simplified internal structure
    - simplified Entry interface

o regression
    - tidied up error messages
2020-01-05 18:58:38 +00:00
steve
50e8ab205d o setup
- setup package now uses database package and matches entries to the
	specified cartridge and applies the changes listed
    - only panel entries supported so far
    - database file must be hand written
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
8452fd1962 o cartridge
- implemented tigervision
    * example Miner2049er
    - implemented m-network
    * He-Man and Bump'n'Jump
    * Burgertime makes use of cartridge RAM
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
9e32748b0a o gopher2600
- debugger can now be run in a cpu profiling loop
2020-01-05 18:58:37 +00:00
steve
c59a4a2dde o debugger
- RAM command now has CART option. displays any additional RAM the
	cartridge may have

o cartridge
    - implemented RAM() command. returns copy of RAM array
    - save/restore banks functions are now save/restore state and deal
	with cartridge RAM in addition to bank information

o debugger/memory
    - better error messages for peek and poke
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
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
2388506d13 o first attempt at new player sprite
- incomplete
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
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
e18f17ca37 o regression
- added progress meter for playback regression types

o errors
    - added FatalError type. intended to be used instead of panic()

o limiter
    - created limiter package
    - moved sdl fpsLimiter to new package
    - added HasWaited() function in additio to Wait() function
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
609ab331a2 o regression
- tidied up regression database operation
    - removed UPDATE option (for now). it's probably never needed but we
    can add it again if it's ever needed
2020-01-05 18:58:33 +00:00
steve
218c3d7823 o recorder
- digest tv support added to recorder/playback module
2020-01-05 18:58:33 +00:00
steve
599d9a5b0a o panel
- implemented recording and playback of panel events (from all
	sources)

o keyboard events
    - keyboard can now act as a controller (for player 0)
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
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
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
steve
50e452b4cf o debugger
- parse input routines improved
    - empty input will repeat the last step command (eg. STEP FRAME)
    - added CAPTURE command
    - user input is copied to a script file. suitable for future
	playback with the SCRIPT command
2020-01-05 18:58:32 +00:00
steve
8ddaec1233 o debugger
- scripts now pass through input loop, allowing commands that
    control the emulation (like RUN or STEP) to be effective
    - reworked ONSTEP and ONHALT commands
    - added STICK0 and STICK1 commands

o memory / pia
    - improved RAM debugging output
2020-01-05 18:58:32 +00:00
steve
6d597c5035 o errors
- renamed GopherError to FormattedError
    - reading files now handled by ioutil.ReadAll(), rather than
    os.Read()
2020-01-05 18:58:32 +00:00