- 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
- added setup package
- rerouted all vcs.AttachCartridge() calls through new package
o regression/database
- split database package from regression package
- the three clocks/scanline attributes are the same whatever TV
specification is used
- these three values are now constants in the package rather than
attributes of the Specification type
- playfield was errantly reporting that playfield pixel was on in
the HBLANK area in certain circumstances.
- this was causing phantom collisions in certain situations
- reworked start drawing condition to account for restarted start
signals
o player
- debugging string now shows which copy of the sprite is being drawn
- added permanent accumulator instances, rather than calling
NewAnonRegister every time I need one
o missile
- improved accuracy of reset-to-player
o ball/missile
- implemented pixel condition necessary for Cosmic Ark starfield
o tia
- moved future package into tia package (from delay package)
- removed delay package
o video
- fixed priority/scoremode color selection
- 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
- 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
- implemented ball sprite
- implemented missile sprite
- altered compareHMOVE
o debugger
- TIA DELAY and TIA DELAYS now differ in a meaningul way
- DELAYS shows all queued delays; DELAY just the most recent
- extended metavideo to include ball and missile sprites
o playfield / VBLANK
- write delay increased to two
- VBLANK given a delay of
- both fix homebrew donkey kong
- improved how hmoved pixels are reported
- refined how reset and start signals interact
- "games that do bad things to hmove" test ROM now works perfectly
- refined when and under what circumastances HBLANK is turned off
- this accomodates the instances when HMOVE is strobed very late in
the HBLANK period
- notably seen in the "games that do bad things to HMOVE" test ROM
- reworked RSYNC
- Extra Terristrials now works
o vcs
- video cycle now gives control back to CPU as soon as RdyFlg is true
o player
- setGfxData is now delayed with the TIA future.Scheduler rather
than the player scheduler
- NUSIZ timings correct according to
* testSize2Copies_A.bin
* player_switching.bin
* NUSIZTest.bin
o video
- removed/commented old ball and missile code
- tidied up memory sub-system
- Memmap is now a flat array instead of a map
* small (<10%) performance increase
o debugger
- tidied up debugger.memory sub-system
- 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
- better HMOVE clock stuffing
- correctly ticking every four clocks
- there is still an issue when hsync counter is at 14 (phase 0)
o vcs
- added commentary to explain how CPU and TIA interact in the
emulation
o player sprite
- delay of one cycle on VDEL
o regression
- fixed adding of playback scripts