Commit graph

37 commits

Author SHA1 Message Date
JetSetIlly 24f3f32342 simplified notifications package
notifications interface instance moved to environment from
cartridgeloader. the cartridgeloader package predates the environment
package and had started to be used inappropriately

simplified how notifications.Notify() is called. in particular the
supercharger fastload starter no longer bundles a function hook. nor is
the cartridge instance sent with the notification
2024-04-06 10:12:55 +01:00
JetSetIlly 3aa5885ebe removed curated pacakge. replaced with wrapped errors
curated package predated the standard errors package introduced in
go1.13

the standard package does a better job of what curated attempted to do

the change of package also gave me a opportunity to clean up the error
messages a little bit
2023-02-13 21:58:39 +00:00
JetSetIlly 688ca31ea8 resetting of VCS is no longer automatic on cartridge insert
the reset can be done automatically but as an optional operation. it has
been discovered that in some situations more preparation is required
before the cartridge is reset. particularly, ACE/ELF type cartridges
where the ARM may executed before the coprocessor disasm/developer
packages are initialised and attached
2022-10-08 18:42:23 +01:00
JetSetIlly 28ffedbf11 removed emulation package. moved types to debugger/govern package
the emulation package has been unecessary since the amalgamation of the
debugger and play modes. in order to allow switching between the two
modes it was necessary to remove the playmode package and to move all
playmode loops and other considerations into the debugger package. as a
result the abstraction offered by the emulation package is uncessary
2022-08-31 14:37:00 +01:00
JetSetIlly d548d0c852 -fpscap option in PERFOMANCE mode changed to -uncapped
-uncapped defaults to true, which is more useful for this mode than
running with the FPS cap enabled

renamed because the -fpscap option for PLAY and DEBUG mode is now very
different and it was confusing to have an option with the same name but
with different semantics
2022-08-25 21:41:17 +01:00
JetSetIlly 27ea04cf12 preferences are shared between emulation instances
this means that updating the preferences through the prefs window will
affect all emulation instances equally
2022-01-20 11:15:30 +00:00
JetSetIlly 1e8e9dd005 removed -display option from performance mode
added -fpscap to emulate() function (used by both playmode and the
debugger) making it a good alternative to the -display option

getting performance mode to work with an increasingly complex
gui-emulation communication just isn't worth it. it would make the code
too complex.

this paves the way for removing the Emulation interface and using a
straight-forward Emulation type, which will be current Debugger type
renamd. the Debugger type is currently handling the playmode, performing
well and allowing tighter integration of the debugger and playmode.
2021-11-19 21:43:22 +00:00
JetSetIlly 50434ae36b added Mode() to emulation interface 2021-11-14 09:16:56 +00:00
JetSetIlly 7af5af322c performance brake for hardware.Run() moved outside of Run() function
extensive commentary on how best to use hardware.Run()
2021-11-11 06:56:50 +00:00
JetSetIlly 92d96cc4e9 major refactor. amalgamated debugger/playmode emulations
switch between debugger and playmode with F6 or backtick key

pakage debugger remains for now but it will be renamed to emulator or
something like that. playmode package removed.

commandline options for both debugger and playmode are the same
currently, with some playmode features being lost (temporarily)
2021-11-04 09:38:35 +00:00
JetSetIlly ce8acf4375 updated stubEmulation in performance package
TV function had been added to the emulation interface but the
performance package hadn't been updated
2021-10-29 22:29:30 +01:00
JetSetIlly 180f2b5003 added rewind system to playmode
update userinput.EventKeyboard to support Repeat keypresses

in playmode rewind forward/backward occurs on shift-left or shit-right
cursor keys (with repeat)

removed the pause feature (sdlimgui) that caused two-frame kernels to
appear "complete" when paused.
    a) it wasn't consistent
    b) it can cause single-frame kernels to shimmer
    c) it doesn't really work with the rewind system
it'll be addressed in a future commit
2021-10-26 18:48:35 +01:00
JetSetIlly 31138f16f3 removed InstructionBoundary() interface and television.ReqState()
Instruction boundaries can be inferred by the debugging input loop,
which is the only place it is requred. reworked GetAdjustedCoords() in
the televsion package (now called AdjCoords()) to cope with this.

ReqState() is totally replaced by GetCoords()
2021-10-23 10:50:19 +01:00
JetSetIlly c816cf5d5a renamed emulation.Halt to emulation.Ending to avoid concept conflict
Halt is a synonym for Pause and a note has been made next to the
variable declaration
2021-09-24 07:26:52 +01:00
JetSetIlly 6ac1a8858d removed gui.ReqState. replaced entirely with emulation.State()
I had started to do this work but hadn't finished it.

added gui.ReqEnd so that gui can exit gracefully (save window
preferences etc.) this was previously handled by ReqState
2021-09-22 15:36:10 +01:00
JetSetIlly c2616c2573 added emulation package / gui.EmulationState (re)moved 2021-07-25 18:44:12 +01:00
JetSetIlly 89b7596837 implemented pausing in playmode
this has revealed the way forward for an effective convergence of
playmode and debugging mode. for this commit a Playmode interface has
been added but this will abstracted into an Emulation interface in the
future
2021-07-24 08:07:23 +01:00
JetSetIlly f875c79289 rearranaged performance.Check() function parameters
added includeDetail argument. this adds the Go version string and time
parameted to the filname of any profile file (specified by the profile
parameter)

simplified GUI creation process in main goroutine sync

corrected Makefile spellings
2021-06-13 16:38:50 +01:00
JetSetIlly b52e5e1599 controller change notification in playmode 2021-03-15 11:29:49 +00:00
JetSetIlly 616dc894cf TIA revisions window accessible in playmode
window positions in playmode are not saved. saved window positions from
debug mode does not affect playmode

updated play and performance mode instantiation so that TIA revisions
window in playmode works correctly
2021-02-16 15:49:48 +00:00
JetSetIlly 46dd44c218 vcs.Run() continue check not only returns error and not (bool, error)
this is marginally quicker but I feel it's neater. to solve the problem
of distunguishing between returns values (true, nil) and (false, nil)
the latter can implemented with a sentinal error.
2021-01-20 23:51:08 +00:00
JetSetIlly 17eb04b931 added trace profile type to performance package
expanded --profile option for DEBUG and PERFORMANCE so that different
profile options can be selected/combined

added --profile option to PLAY mode.

many lint errors removed (re-added "make lint" to git pre-commit hook)
2020-12-30 20:45:07 +00:00
JetSetIlly 0fb6b780cc abstracted VCS facing parts of the television implementation into the signal package
NTSC and PAL information, including colours, moved into specification package
2020-10-31 22:01:12 +00:00
JetSetIlly efab64d898 simplified GetState() signature 2020-10-25 18:36:05 +00: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 4253af599e moved televsion to hardware package 2020-10-21 11:14:20 +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 7fc48dcd65 renamed errors package to 'curated'
to differentiate with the now existing errors package in the standard
library.
2020-09-28 22:16:59 +01:00
JetSetIlly 2d5cae17f5 reworking of errors package
removed all messages from errors package. the strings are now hard coded
in place. the original reason for extracting the error strings like that
was (a) for redundancy and (b) for localisation possibilities. However,
in reality there is not much redundancy and since the project started
the scope of localisation is much larger (particularly due to the
addition of a GUI)

this is the first step. the next step is to remove the errors package
altogether. recent additions to Go mean that the functionality of the
errors package is no longer required. moreover, the original idea for
the errors package functions turns out not to have been as useful as
first appeared (the Error() functionality which makes sure no repeating
sub-strings occur is probably better achieved with static tooling).

one idea that comes from this which is quite interesting is the idea of
a curated error. that is, any error that has been "wrapped" as some
'generic' type. the IsAny() function in the errors package effectively
serves this purpose. we use that in one place in the input loop of the
debugger. not strictly necessary but nice to have so it would ideal
if we could remove the errors package but keep that idea.
2020-09-28 22:16:59 +01:00
JetSetIlly 1f52469784 performance improvement in TIA emulation
removed future package in favour of new delay package

TIA/video/sprites altered to use delay package
2020-07-28 19:46:59 +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
Robin Eklind 24cb28843f gopher2600: use fully qualified import path as module path
Fixes #4.
2020-03-21 23:39:56 +01:00
JetSetIlly 4347798ab4 removed race condition from performance submode 2020-03-15 08:44:19 +00:00
JetSetIlly 3c3b78ccd3 implemented lazyread/write system
removes race errors between gui and emulation threads

audio window now presents audio waveform more accurately
2020-03-10 22:41:56 +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 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
Renamed from performance/check.go (Browse further)