Commit graph

310 commits

Author SHA1 Message Date
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
7e850e4a12 o debugger
- added PANEL command
2020-01-05 18:58:37 +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
d483d08ca4 o television
- 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
2020-01-05 18:58:37 +00:00
steve
2aa59a5a87 o missile
- correct missile to player for the wider player sprites
2020-01-05 18:58:37 +00:00
steve
1ffd75edc7 o player/ball
- added hmove information to MachineInfo() output
    - missile sprite had this added earlier
2020-01-05 18:58:37 +00:00
steve
b545f17384 o riot timer
- added information to MachineInfo

o sprites
    - 1 cycle delay added to HMCLR
    - fixes Midnight Magic and Fatal Run
2020-01-05 18:58:37 +00:00
steve
777deb7204 o sprites
- better interaction between future package and sprites

o future
    - implemented Push() function
2020-01-05 18:58:37 +00:00
steve
d78fd568b1 o tia
- tidied up HMOVE scheduling, for clarity
2020-01-05 18:58:37 +00:00
steve
95a97285ba o playfield
- playfield was errantly reporting that playfield pixel was on in
	the HBLANK area in certain circumstances.
    - this was causing phantom collisions in certain situations
2020-01-05 18:58:37 +00:00
steve
8b59d0c021 o television
- separated alt/debug color palette from PAL/NTSC
    - this means that the same alt/debug colors are used regardless of
	television specification in use
2020-01-05 18:58:37 +00:00
steve
3ac91fef2f o metavideo
- fixed how instant and delayed events are displayed

o tia/sprites
    - added HMOVE values (as binary) to machine info string
2020-01-05 18:58:37 +00:00
steve
9ab6456ff3 o missile
- reworked start drawing condition to account for restarted start
	signals

o player
    - debugging string now shows which copy of the sprite is being drawn
2020-01-05 18:58:37 +00:00
steve
5a22b1f9b6 o cpu
- 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
2020-01-05 18:58:37 +00:00
steve
76d4cfaebf o video
- fixed how the enabled delay bit is updated in the ball sprite
2020-01-05 18:58:37 +00:00
steve
11e14e19ff o cpu
- corrected addressing mode for lax instruction (0xb7)
    - improved testing
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
f735c06fc3 o cpu
- improved indirect bug handling
    - updated tests
2020-01-05 18:58:37 +00:00
steve
c14a4dab97 o cpu
- implemented slo opcode
    - zero page and indexed zero page x addressing modes

o tia
    - pot ports (INPT0 to INPT3) initialised to 0x00 rather than 0x80
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
9e32748b0a o gopher2600
- debugger can now be run in a cpu profiling loop
2020-01-05 18:58:37 +00:00
steve
f334e6e94d o memory
- corrected address mask for address 0x0e and 0xef
    - correct masking of 16 bit address
2020-01-05 18:58:37 +00:00
steve
42780a151a o memory
- CPU Read now returns correct bits according to CPU read masks
2020-01-05 18:58:37 +00:00
steve
4cc21443a5 o memory
- tidied up interfaces and embedded structs
2020-01-05 18:58:37 +00:00
steve
b613d77204 o vcs
- switch to cartridge bank 0 on startup
2020-01-05 18:58:37 +00:00
steve
7d4c398c0e o television
- implemented PAL colors
2020-01-05 18:58:37 +00:00
steve
0563d237f4 o sprites
- corrected presentation of hmove value to match Stella
2020-01-05 18:58:37 +00:00
steve
0c508c377f o video/sprites
- reset/hmove pixel adjusted in the event of an RSYNC event
2020-01-05 18:58:37 +00:00
steve
2f5b8eaf72 o commands
- added BANK argument to CARTRIDGE command
    - allows switching of bank currently mapped into cartridge space
2020-01-05 18:58:37 +00:00
steve
5e55bdef6a o video
- added 1 clock delay to HMCLR
    - fixes Fatal Run
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
fea2357fdf o sprites
- Cosmic Ark starfield now works
    - improved reporting of sprite positioning (for ball only, not done for
	missile or player yet)
2020-01-05 18:58:36 +00:00
steve
af5d3eb7e7 o TIA
- changed how changes to memory are treated
    - different registers are serviced at different times
2020-01-05 18:58:36 +00:00
steve
62ba53254b o sprites
- 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
2020-01-05 18:58:36 +00:00
steve
b864ffcb8c o player
- tweaked NUSIZ delay rules
2020-01-05 18:58:36 +00:00
steve
7388b637d8 o player
- 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
2020-01-05 18:58:36 +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
6a988f209f o TIA
- 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
2020-01-05 18:58:36 +00:00
steve
d58b541807 o tia/player
- active reset position event prevents sprite drawing to start
2020-01-05 18:58:36 +00:00
steve
4bf5569d92 o reworked and removed some panic() calls 2020-01-05 18:58:36 +00:00
steve
d54d1822ec o TIA
- RSYNC fixed

o TIA / Playfield
    - added 1 cycle delay to writing playfield data
    * fixes Donkey Kong homebrew
2020-01-05 18:58:36 +00:00
steve
68881a7f4a o tia
- 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
2020-01-05 18:58:36 +00:00
steve
ce441f0ff8 o player
- NUSIZ timings correct according to
    * testSize2Copies_A.bin
    * player_switching.bin
    * NUSIZTest.bin

o video
    - removed/commented old ball and missile code
2020-01-05 18:58:36 +00:00
steve
83530e0f7b o memory
- 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
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
fa2b41c163 o cpu
- added opcode 0x82
    - alternative form of DOP (NOP with immediate addressing)
2020-01-05 18:58:36 +00:00
steve
c405dab57c o tia
- no longer keeping track of cpuCycles - calculated only when
    required for debugging output

o vcs
    - tidied up how and when CPU writes are serviced
2020-01-05 18:58:36 +00:00
steve
d9b74bbc04 o tia
- 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
2020-01-05 18:58:36 +00:00
steve
21428a0e5f o sdl
- fixed keyboard modifier detection
2020-01-05 18:58:36 +00:00