Commit graph

117 commits

Author SHA1 Message Date
JetSetIlly
bce3ccf488 reflection system synchronised with the rewind system
(this version is exceedingly memory heavy. including tv signal and
reflection history in the rewind system is a mistake. work will now
concentrate on the rewind system storing VCS state only and recreating
the tv/reflection signal when a state is restored.)
2020-10-31 22:01:12 +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
7d54336d7f rewind system works with video stepping
added MEMUSAGE command
2020-10-29 09:13:05 +00:00
JetSetIlly
b1203a94ef reworked frame limiter system
removed debugger specific system; added features to "main" television
limiter system.
2020-10-27 22:30:50 +00:00
JetSetIlly
bf4c132f37 sdldebug removed
line terminal debugging still works but without a GUI (for now). will
replace with an ASCII GUI and display in the future.

add gui.Stub to ease transition.
2020-10-27 17:53:45 +00:00
JetSetIlly
d5cecf2bde pixel render performance improvements
television signal history array is static

PixelRenderer.SetPixel() now expects an augment SignalAttributes
instance. Color is indexed by the PixelRenderer implementation. SDLImgui
implementation now stores copy of specification for speed.

PixelRefresher folded into PixelRenderer. SetPixel() should be called
between two calls UpdatingPixles(true) and UpdatingPixels(false) for all
PixelRenderer implementations - whether it does anything or not.
2020-10-27 15:48:21 +00:00
JetSetIlly
f4e9abfe14 performance improvements
saving of signal history more efficient
2020-10-26 18:41:39 +00:00
JetSetIlly
efab64d898 simplified GetState() signature 2020-10-25 18:36:05 +00:00
JetSetIlly
789512af4f Better handling of rewind slider when emulation is running
emulation is halted (temporarily) when slider is moved and will resume
again when slider is released, from the new rewind position.

stored state information is copied and assigned to the emulation, rather
than just pointing the emulation to the stored copies. the old way
worked but running the machine could then clobber what was stored in the
rewind structures.
2020-10-24 20:42:42 +01:00
JetSetIlly
85b7b015cc snapshot cartridge state for rewind system
implemented for:
    - atari
2020-10-23 21:32:07 +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
771d73c09d added FrameTrigger interface as a lightwight alternative to PixelRenderer 2020-10-22 16:17:35 +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
e3eb439cf8 tidy up of television package 2020-10-21 16:19:57 +01:00
JetSetIlly
4253af599e moved televsion to hardware package 2020-10-21 11:14:20 +01:00