Commit Graph

31 Commits

Author SHA1 Message Date
thrust26 cf926fdf07 UI partially working now (TODO: timebar) 2017-12-30 21:19:55 +01:00
Stephen Anthony 3d879d0080 Updated copyright date to 2018. A few days early, but nobody will mind ... 2017-12-29 17:10:37 -03:30
thrust26 e37b5305cf code cleanup 2017-12-21 11:34:08 +01:00
thrust26 7d40d5b1f8 "Time Machine" name change 2017-12-15 18:10:40 +01:00
Stephen Anthony fd5c026034 Relaxed constexpr usage in RewindManager, so code compiles in Linux and OSX.
- the code was using C++17 features, and we only support C++14 for now
2017-12-14 19:46:37 -03:30
thrust26 418b0f07ae frame timed interval checks aligned to actual scanlines/frame
code cleanup
2017-12-14 21:18:31 +01:00
thrust26 ba9d809109 state compression improved
RewindManager class refactored for multiple rewinds/unwinds
additional keys for faster rewinding added
docs updated
2017-12-14 14:25:02 +01:00
thrust26 e2301dfd5e fine tuning on interval factor and state compression
rewind now displayed immediately (instead of "Paused")
two initial rewinds in continuous rewind mode fixed
Horizon widget disabled when Uncompressed size == Buffer size
fixed minimum Interval
2017-12-13 19:15:09 +01:00
thrust26 20eb97ce14 savestate position in list display in message added
compressStates loop fixed and slightly optimized
fixed minimal size value in Settings
2017-12-13 12:31:18 +01:00
thrust26 5439d185a7 rewind buffer resize added 2017-12-12 21:43:57 +01:00
Stephen Anthony 8034bae9de Added destructive resize to LinkedObjectPool/RewindManager.
Fixed minor warnings in DebuggerDialog.
2017-12-12 16:44:30 -03:30
thrust26 6632b97307 double rewind in debugger fixed
rewind messages improved
2017-12-12 18:47:21 +01:00
thrust26 e465112c02 rewind/unwind basically working
changed values, UI and settings for rewind interval and horizon
2017-12-12 17:07:05 +01:00
Stephen Anthony 517cc82baa More work to RewindManager; all the 'ugly' code has been removed.
Thomas, it should be fine for you to proceed now.
2017-12-11 17:29:27 -03:30
Christian Speckner c6f13ed743 Trade potentially illegal use of size_t against container::size_type. 2017-12-09 20:44:27 +01:00
Stephen Anthony cc64ce59a1 Some more work on RewindManager:
- iterator now starts and last node and moves towards first (removes one 'ugly' bit of code)
 - temporarily decreased size of buffer to 10 states, to make testing easier
 - added debug output, so we can clearly see that the iterator is correctly walking the buffer
2017-12-08 14:46:06 -03:30
Stephen Anthony e9a5198863 Reverted part of previous commit; rewind states now use 64-bit where appropriate.
Fixed some more minor errors found by clang.
2017-12-08 07:53:09 -03:30
Stephen Anthony 76b3ff02b3 Fixed various warnings in code.
- removed unused variables
- in RewindManager, convert cycles to Int32 rather than Int64; although
they are defined as 64-bit from the TIA, we only care about differences
here, and the difference will never be larger than a 32-bit can hold.
2017-12-07 21:27:31 -03:30
Stephen Anthony a79ccf400f Minor updates to rewind:
- comments are now more in line with what actually happens when adding a state
- changed Serializer::reset() to Serializer::rewind(), to more accurately indicate what it does
2017-12-06 11:44:40 -03:30
thrust26 838b277c0a myNTSC removed, defined by number of scanlines now 2017-11-15 11:03:39 +01:00
thrust26 0dddb93fb6 rewind/unwind command output improved 2017-11-13 16:02:15 +01:00
thrust26 3f77b95b3b preliminary state compress code added (disabled) 2017-11-12 10:14:42 +01:00
Stephen Anthony bfc7574cd7 First pass at implementing state save/replay using an iterator-based approach.
Saving a state and later rewinding it now works, but still TODO is unwinding
(ie, replay in the future vs. in the past).

For now, debugging info remains, and some methods are commented out.  This
code is mostly for Thomas to inspect and make sure we're on the right track.
2017-11-11 22:15:28 -03:30
thrust26 cdb2e18324 save state handling for entering and leaving the debugger modified. 2017-10-13 15:29:20 +02:00
thrust26 3045a0ddf7 unwind logic started, TODO: adapt RewindManager 2017-10-12 17:43:41 +02:00
Stephen Anthony 63ad275b9d Ported RewindManager to use LinkedObjectPool class. 2017-10-09 18:11:15 -02:30
Stephen Anthony e695c3b3a5 Converted RewindManager to a (currently unbounded) linked list.
This is in preparation for further work by Thomas J.
2017-09-22 17:37:24 -02:30
sa666666 be64a6387d Fix memory leak in RewindManager (at least until it's rewritten). 2017-09-21 10:14:04 -02:30
Stephen Anthony aed2945a56 First pass at continuous state saving in emulation mode, accessible by the debugger:
- Toggle this with Alt-r.  When enabled, state is saved each frame to memory (up to 100 slots)
- Upon entering the debugger, rewind is immediately available, allowing to rewind (for example) back past a breakpoint
- Testing is definitely required.
2017-09-18 20:29:52 -02:30
Stephen Anthony 86f65e8e87 Show message indicating what is being done when rewinding state (ie, '1 step', '10 frames', etc). 2017-09-11 15:58:41 -02:30
Stephen Anthony eafe102daa Refactor StateManager and RewindManager for eventual use outside debugger. 2017-09-03 23:02:15 -02:30