Commit graph

46 commits

Author SHA1 Message Date
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
steve
5a223794d4 o gui
- separated gui specific elements from television package
    - sdl implementation moved to gui package
2020-01-05 18:58:32 +00:00
steve
eace335cce o sprite
- fixed bug that caused sprite position to be misrecorded
    - caused by reckoning the effects of HMOVE from the reset position
    rather than the current (possibly already adjusted) position

o debugger / colorterm
    - implemented HOME/END keys for input loop

o monitor / sdltv staterecorder
    - generalised colour assignment
    - not perfect but more flexible

o debugger / breakpoints
    - parsing of negative numbers now allowed
2020-01-05 18:58:32 +00:00
steve
736cd5bb0b o tia
- debug colours (just the players for now)
    - hmove type now uses a latch to keep track of when hmove event is
	over, rather than the rather clumsy and prone to error method we
	had previously. this goes someway to fixing a bug in the
	emulation caused by late HMOVEs
    o polycounter
	- modified MachineInfo() output
	- updated test routines to reflect changes to MachineInfo output

o debugger
    - added DEBUGCOLORS toggle to DISPLAY command
    - PLAYER command in verbose mode now prints player 0 and player 1
	side by side for easier comparison
    - similarly for MISSILE command
    - verbose PLAYER output now includes commentary of the sprite size
	setting
    - similarly for MISSILE command
    - corrected initialisation script error output
    - removed tab completion time limit - can now cycle through options
	until another key is pressed

o television
    - improved screen size detection and stability routines
    - this currently breaks the fix we had in place for Plaque Attack
	but I think we can probably fix that some other way
2020-01-05 18:58:31 +00:00
steve
f53592df13 o disassembly
- reworked disassembly routines so that it works better with
	multi-bank cartridges.
    - unfinished

o cpu
    - reworked cpu testing routines
    - NoSideEffects has been changed to NoFlowControl
    * this means that memory is now written
    * it is intended that NoFlowControl CPU instances be supplied with a
    memory shim that can filter out write addresses as appropriate
    * this was done so that we can see switching of cartridge banks
2020-01-05 18:58:31 +00:00
steve
297391c488 o disassembly
- added support for multibank cartridges

o breakpoints/traps
    - bank changes are now a valid target
2020-01-05 18:58:31 +00:00
steve
23bd591752 o gopher2600
- tidy up of command line parsing

o regression testing
    - added regression package
    - implemented simple database to facilitate regression tests
    - uses DigestTV
2020-01-05 18:58:30 +00:00
steve
348ea29939 o ImageTV
- implemented a headless television that can save the last image to a file

o DigestTV
    - implemented a headless television that updates a screen digest
    every frame

o gopher2600
    - added "regress" mode. uses digesttv and will be used as the basis
    of a complete regression testing mode
2020-01-05 18:58:30 +00:00
steve
9644eb59f0 o memory
- (re)implemented POKE command
    - reworked PEEK a little bit
2020-01-05 18:58:30 +00:00
steve
49d429b6bf o cpu
- implemented BRK and RTI instructions - not fully tested
    - tidied up when NoSideEffect is checked

o debugger
    - fixed breakAndTrapCallback
    - fixed instruction result validity check crash caused when
	instruction step resulted a runtime error

o cartridge
    - added support for half-size cartridges
    - tidied up error handling

o various commentary cleanups/clarifications

o move test files to test/ directory
2020-01-05 18:58:29 +00:00
steve
786fb5b254 o 6502 instructions
- added 0x80 - immediate 3-byte nop

o vcs
	- reset operation now resets TIA and RIOT in addition to CPU

o cpu
	- reset attempt mid-instruction now returns suitable error
	instead of panicking

o debugger
	- fixed breakpoint/trap check when it occurs mid-instruction
	- broken in 6045b9a9b65d623800b8e386e06fe0fdfb71998f
	- fixed PEEK command
	- fixed SYMBOL command
	- SYMBOL command now takes optional ALL argument - prints every
	mirror address of the resolved symbol
2020-01-05 18:58:28 +00:00
steve
74d8f6e297 o debugger
- implemented DROP command
2020-01-05 18:58:28 +00:00
steve
0a8267d7d6 o television
- tidy up how state requests are made
	- added info requests
	- implemented MOUSE info request

o debugger
	- implemented 'LAST DEFN'. prints the definition of the last
	instruction executed
	- STEP now takes optional CPU or VIDEO keywords
	- removed critical sections and replaced with channel
	communication
2020-01-05 18:58:28 +00:00
steve
d744e6229a o debugger
- better lexing/parsing of command input
	- break/trap on instruction effect (read, write, etc.)
	(we had to implement a more flexible way of satisfying the
	target interface for this. it works but it's a bit ugly)
2020-01-05 18:58:28 +00:00
steve
35e31cccb7 o errors
- refined error package
2020-01-05 18:58:28 +00:00