Commit graph

1240 commits

Author SHA1 Message Date
JetSetIlly
79fd660cd5 bumped version of statsview to v0.3.1 2020-11-23 10:12:06 +00:00
JetSetIlly
455f683db4 added fs pacakge
fs package is an abstraction layer for those function in the standard os
package that are used by gopher2600. for non-wasm builds the functions
are fowarded straight to the os pacakge.

for wasm builds, the calls are swallowed.
2020-11-23 09:51:43 +00:00
JetSetIlly
cd16b81b8a another attempt at a universal TV resizer
introduced the idea of safe-areas more forgiving than the Atari defined
safe-areas. may need tweaking
2020-11-22 22:59:43 +00:00
Stephen Illingworth
aaea6be2e1 update README.md
updated Makefile targets
2020-11-22 15:57:54 +00:00
JetSetIlly
6f0f5dd4ed "improved" look of CRT preferences window
rewind to last entry wasn't drawing previous screen correctly

line terminal option for debugger works again
2020-11-22 13:46:06 +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
968ae27079 setPendingPixels() correctly loops over renderers before pixels
limits number of times critical section is entered

frame limit set correctly on change of tv specifcation
2020-11-22 12:49:14 +00:00
JetSetIlly
ee8643ee08 small delay (10ms) in the playmode GUI (sdlimgui) loop
I'm sure I had this in already for the playmode loop but I must have
removed it for some reason. either way, it's a definite performance
improvement.
2020-11-22 12:49:07 +00:00
JetSetIlly
e693b29051 replaced all value receivers with reference receivers where appropriate
improves performance slightly
2020-11-22 12:26:54 +00:00
JetSetIlly
b6a890a9d1 renamed statsserver package to statsview
optional build with +statsview constraint
2020-11-22 12:04:28 +00:00
JetSetIlly
078d60377a optimised collisions tick
collision combinations now stored by bit pattern and not string. the
string is useful for the debugger but has performance implications on
the playmode. new method is probably marginally more efficient for the
debugger too.
2020-11-21 22:50:09 +00:00
JetSetIlly
3880066322 added stats server option to debug and play mode
package from https://github.com/go-echarts/statsview
2020-11-21 18:47:33 +00:00
Stephen Illingworth
8d85624023 Update README.md 2020-11-20 22:05:51 +00:00
JetSetIlly
ffe53b45e0 new screenshots 2020-11-20 21:03:11 +00:00
JetSetIlly
38f5a77df9 crt preferences window shows scaled image of CRT
added mask/scanlines scaling option

default noise level reduced

reduced noise level range in preferences window
2020-11-20 15:11:11 +00:00
JetSetIlly
2fd42f52fa television passed by reference in all instances
suports changes made in previous commit
2020-11-20 12:18:43 +00:00
JetSetIlly
8b5a5a5e41 replaced signal history array with a made slice of the same length
fixes executable bloat problem as described here:
    https://github.com/golang/go/issues/42729
2020-11-19 21:28:39 +00:00
JetSetIlly
93dde40be4 removed some dangling lint errors (godot)
removed lint dependencies from Makefile targets
    - unreasonable to expect other people to have it installed
2020-11-19 15:11:30 +00:00
JetSetIlly
8777aa996a optimise rewind
only restarts inputloop on rewind if necessary

added SetFeatureNoError() as a speed optimisation
    - for situations where we know for certain we don't need to
	wait for the error to be resolved

reduced gui loop speed

RESET command resets last result information
2020-11-19 13:49:13 +00:00
JetSetIlly
8212dc5ddb added compile flags to windows targets
same compile flags as for other build/release targets
2020-11-19 10:50:19 +00:00
JetSetIlly
4da2403732 Added rewind section to readme
added readme_spell target to Makefile
2020-11-19 08:21:29 +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
65c149c934 added crt preferences 2020-11-18 23:01:06 +00:00
JetSetIlly
de7cee9aa6 television.String() takes pointer to television instance
copying by value was noticeably slow in regress with TV state
2020-11-18 23:01:06 +00:00
JetSetIlly
a3bfd7eee2 debug screen window will not window tv image is click-dragged 2020-11-18 22:39:36 +00:00
JetSetIlly
9df7fe6c52 rewind controls work solidly again after inputloop changes 2020-11-18 22:39:36 +00:00
JetSetIlly
b712123653 clarified debugger input loop
removed some logical dead-ends

introduced the concept of restarting the input loop. this is important
when resetting the emulation for example. if the machine is reset during
a video cycle then the emulation will resume inside the video inputloop.
however the reset machine expects to be inside a cpu inputloop, causing
havoc. also used to ensure the rewind system works correctly.

restarting the input loop is tricky. it requires a RawEventReturn channel
that works like the RawEvent channel but returns control to the input
loop on completion.

added GetFeature() to gui interface to better support the rewind
subsystem. renamed ReqFeature() to SetFeature(). Added FeatureReqData
type for clarity.
2020-11-17 23:01:23 +00:00
JetSetIlly
d942edd465 better noise default 2020-11-16 09:47:37 +00:00
JetSetIlly
ca46d35f7d fixed shader generation 2020-11-15 08:13:14 +00:00
JetSetIlly
9fb828f3d7 improved CRT fragment shader
- color separation improved
- scanlines scale correctly
- gamma correction
- noisy output
2020-11-15 07:58:41 +00:00
JetSetIlly
8b162bb5ce rewind documentation 2020-11-14 14:12:47 +00:00
JetSetIlly
ec67b78b5d rewind preferences
command line and GUI interfaces
2020-11-14 09:05:30 +00:00
JetSetIlly
f04ba86ca5 callback not called if prefs value has not changed
no deadlock on callback from preference set()
    - callback could deadlock if value being set() was accessed in
    registered function
2020-11-13 23:01:35 +00:00
JetSetIlly
fa0c44290b added adhoc state to rewind system
speeds up GotoCoords() when snapshot frequency is greater than 1
2020-11-13 23:01:35 +00:00
JetSetIlly
63ef1f0a26 rewind slider shows accurate information in all reasonable situations
there are some latent visual artefacts that can occur because of the
nature of the lazy evaluation system but it's insignificant. in general,
the slider feels solid.
2020-11-13 23:01:35 +00:00
JetSetIlly
f6d230e3e6 added SUMMARY option to REWIND command 2020-11-13 12:20:32 +00:00
JetSetIlly
a1959fd4fc rewrite of rewind system 2020-11-13 12:20:32 +00:00
JetSetIlly
10c16323af better interplay of GUI states and shader draw modes
better rendering during rewind.GotoCoords()
2020-11-11 22:36:55 +00:00
JetSetIlly
8f5f129f1f better feedback on rewind slider 2020-11-11 21:56:30 +00:00
JetSetIlly
d438244fbe PixelRenderer reset when TV is reset
rewind frequency limit improved
2020-11-11 07:00:15 +00:00
JetSetIlly
2ec630e30a added RewindBoundary interface
cartridge mappers can prevent rewinding past certain points. used by the
plusROM container type to prevent the replay of network events.

fixed rewinding to frame one after reset
2020-11-10 22:24:40 +00:00
JetSetIlly
9f6ffdf5d0 television saved state did not include all resizing information
- this caused issues during rewinding

simplified signal history in television storage

simplified pixelrenderer.NewFrame()

simplified pixel management for GUI screen implementation

frame limiter turned off for rewind events
2020-11-10 22:04:03 +00:00
JetSetIlly
4d7dc48cc2 rewind slider shows start/end limits of rewind information 2020-11-10 16:25:59 +00:00
JetSetIlly
c5ab1449d6 errors returned/logged from rewind package 2020-11-09 14:24:51 +00:00
JetSetIlly
5696dcb55d operand string uses symbols, when appropriate, in all instances 2020-11-09 06:01:19 +00:00
JetSetIlly
cf7fb2f42d catchup loop updates lastResult 2020-11-09 06:00:56 +00:00
JetSetIlly
7e4539ba90 first attempt at rewinding to screen coords using mouse on debug screen 2020-11-08 20:44:00 +00:00
JetSetIlly
a412275d41 improved rewind performance and accuracy
binary searching of rewind entries
2020-11-08 19:48:44 +00:00
JetSetIlly
99443d16ce removed lint, vet and test dependencies from build target (makefile) 2020-11-07 21:08:09 +00:00
JetSetIlly
4152275ad4 refinement of double click to capture mouse
now only applies if mouse is over the debug screen
2020-11-07 10:59:55 +00:00