Commit graph

173 commits

Author SHA1 Message Date
JetSetIlly
418de49ba1 ARM timer ticks forward correctly
VCSReturnChannel so the television can inform the VCS about a change in
television spec. The VCS uses this information to forward clock
information to the cartridge.Step function

DPC and DPC+ music generators now use correct VCS clock value in all
instances
2020-12-30 20:45:07 +00:00
JetSetIlly
4a04f9e161 timer reset correctly on VCS reset
this affected regression tests when random state was switched on
    - although regression tests reset the preferences to a known state
    the timer was not affected when the VCS was reset, causing some
    tests to fail inexplicably
2020-11-22 13:19:08 +00:00
JetSetIlly
d110a08a64 logging of rewind boundary events
result of changing rewind maxentries value displayed correctly in win_control

timer randomised on startup (if preference selected)

changing symbols preference updates disasm window vertical alignment

file selector:
    - scrolls to top on directory change
    - centres on current ROM when first opened

help note for the -state flags (REGRESS ADD)

changed default window position for timer window
2020-11-19 08:21:28 +00:00
JetSetIlly
e61cdae584 moved rewind system to rewind package
rewind system not used when in playmode (for now)
2020-10-26 20:02:09 +00:00
JetSetIlly
cac80ab720 rewind system is reset when machine is reset 2020-10-23 20:08:43 +01:00
JetSetIlly
63da4073d9 remove Television interface / renamed Reference to Television
the interface was becoming too large and was a remnant of a very early
development phase. the gui interface type has replaced that concept.
2020-10-23 15:35:39 +01:00
JetSetIlly
339dcc5c7c delay events can only carry one uint8 value
this simplifies the rewind system

corrected plumbing process for player sprite
2020-10-23 15:12:18 +01:00
JetSetIlly
664ea09f5c halting a non-frame boundary will add add a partial snapshot
continuing from a partial snapshot will cull that snapshot

rewinding state and then continuing from that point will crop the
state history
2020-10-22 21:40:57 +01:00
JetSetIlly
3902b13a55 television state is now rewindable
updates attached pixelrenderers. added Refresh() function and added
'refreshing' flag to SetPixel()

cpu and tia memory references updated on rewind

fixed rewind.Append()
2020-10-22 10:55:41 +01:00
JetSetIlly
4253af599e moved televsion to hardware package 2020-10-21 11:14:20 +01:00
JetSetIlly
3c1fc53093 state of VCS CPU/TIA/RIOT/Memory can be saved and restored on demand
televsion state not stored and there is some state information in the
debugger that is not updated on state restore

sketched in gui state rewinder
2020-10-21 10:48:49 +01:00
JetSetIlly
56b4733ddf simplified hardware package (preparation for rewind feature) 2020-10-20 14:52:44 +01:00
JetSetIlly
75af8d738d randomisation in the hardware package through a local RNG
this will facilitate recording/playback/regression of non-default
machine states (sometime in the future)
2020-10-19 18:32:57 +01:00
JetSetIlly
05a2837853 disable random elements of the VCS for regression and playback recordings 2020-10-19 18:32:57 +01:00
JetSetIlly
83ee7e99ab cartridge ram/registers are randomised on reset
replaced Initialise() with Reset()
2020-10-19 14:30:43 +01:00
JetSetIlly
b787a45632 hardware package manages it's own preferences
memory randomised on startup (except cartridge memory) when randomstate
preference is true
2020-10-19 14:30:02 +01:00
JetSetIlly
1cdb19562e error values checked (golangci-lint -E errcheck)
error checked on Close() of writable file

fixed disassembly sanity check
2020-10-18 10:59:19 +01:00
JetSetIlly
9e159b97d8 added more linters to golangci-lint config
godot --fix has been run to make sure all comments end in a full-stop

specified nolint directive to apply to specific linter
2020-10-16 16:31:07 +01:00
JetSetIlly
b76abf69f6 sketched in savekey support
-savekey argument added to play and debug mode

savekey window available in debug menu
2020-09-13 22:31:20 +01:00
JetSetIlly
deac32ae50 reworked controllers package
multi-controllers is now split into three different types

auto type elegantly handles switching of the controllers

better/cleaner memory access for peripherals and event handling

updated console commands and controller debug window

controller debug window has to use a slightly different lazyvalue
implementation. this is because atomics cannot store a different type to
the one that was originally stored; this is a problem when storing
interfaces (eg. ports.Peripheral)
2020-09-02 20:49:03 +01:00
JetSetIlly
a4ed7f0fcd reworked RIOT/Input system. moved to Ports package
Controller package added. currently only contains the multi
handcontroller implementation from the old Input package.
2020-08-31 13:42:34 +01:00
JetSetIlly
298a5d343f updated copyright notice in all files
the note about historical versions also being covered wasn't strictly
needed and was ugly. the LICENCE being in the root file from the very
first commit is sufficient.
2020-07-26 20:18:56 +01:00
JetSetIlly
55d8edb9cb LAST command shows BYTECODE correctly
VCS reset calls cartridge initialise
2020-07-02 11:01:04 +01:00
JetSetIlly
415a84f874 preferences window for sdlimgui
renamed randomStart to randomState
2020-05-15 21:55:41 +01:00
JetSetIlly
2b420d7424 added prefs package
amended debugger and existing preference values to use prefs package

amended sdlimgui to store window size/position using the prefs package

amended hiscore mechanism to use prefs package to store server & authentication
2020-05-15 21:55:40 +01:00
JetSetIlly
ad0e29ec9a implemented random CPU state on reset 2020-05-14 16:06:04 +01:00
JetSetIlly
26c5341cde implemented "random unused pins" option
added PREF command to debugger
2020-05-13 20:00:19 +01:00
JetSetIlly
fe8a3210ac tv and controllers are now reset correctly
corrected reset code path
2020-04-22 06:31:52 +01:00
JetSetIlly
5eb5e2c2ed added CONTROLLER command
added controller window to sdlimgui debugger

improved smart-switching of controller types
2020-04-13 22:13:58 +01:00
JetSetIlly
646b555403 Reset of VCS also resets attached TV 2020-04-01 20:20:47 +01:00
JetSetIlly
3410f6565b tidy of riot/input package
renamed EventValue to EventData

renamed playback.go file to playback_recording.go - for clarity
2020-03-31 13:07:48 +01:00
Robin Eklind
24cb28843f gopher2600: use fully qualified import path as module path
Fixes #4.
2020-03-21 23:39:56 +01:00
JetSetIlly
0807c6f24f added ByteCount field to execution.Result
validity tests now check for the correct number of bytes read during
decode

BytesCount value increased with Read8BitPC() and Read16BitPC(),
exceptional handling for BRK command

cpu test added for BRK command. other existing tests passed new
BytesCount constraint without change.
2020-02-17 19:24:44 +00:00
steve
6673dc4c33 renamed ControlBits to VBlankBits 2020-01-30 17:25:58 +00:00
steve
7dfbf2f4ce link VBLANK bits 7 and 6 to riot.input package
riot.input instantiates ControlBits which is then passed
by reference to the TIA
2020-01-24 17:16:30 +00:00
steve
706e7afa0e refactored (rewrite) of riot.input package
improved type names to better reflect the Stella Programmer's
Guide

for instance Player type has been renamed to HandController. this
also removes conflict (in the developer's mind, rather than the
language) with the playerSprite type.
2020-01-23 23:56:47 +00:00
steve
d0b023bea2 documentation updates 2020-01-06 10:11:21 +00:00
steve
16b15fad95 o added licence headers to all files 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
074d07015d o riot
- commentary and documentation
    - including input and timer packages
2020-01-05 18:58:42 +00:00
steve
3e015957c2 o vcs
- simplified vcs.Reset()
    - maybe add a hard reset option in the future
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
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
aa447e5af6 o vcs
- reworked commentary surrounding cycle callbacks

o tia
    - servicing of memory writes to TIA memory is now more
	discriminatory
2020-01-05 18:58:40 +00:00
steve
28d7352b52 o cartridgeloader
- moved from memory package
2020-01-05 18:58:39 +00:00
steve
604a2c5543 o web2600
- sketched in web interface

o cartridge
    - cartridge will now load from http:// target as well as local file
	system

o Makefile
    - added web and webserve targets
2020-01-05 18:58:39 +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
e815b892ad o vcs
- corrected what happens to the cartridge on a call to Reset()
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
a48f3056a5 o regression
- frame regression type shows meter for long running tests
2020-01-05 18:58:38 +00:00