Commit Graph

128 Commits

Author SHA1 Message Date
feos 1175a86123 tastudio: use DivergentPoint() as a backup in case branches lose their states. 2015-09-23 19:43:21 +03:00
feos b5582722c8 tastudio: fix yet another branch crash. 2015-09-16 23:19:03 +03:00
feos 6e16f0c5dc tastudio: thanks for letting a ulong overflow backwards. 2015-09-16 21:44:42 +03:00
feos 4f07c908a0 tastudio: more branch work.
- change skipRemoval default to true, set to false only on state capturing
- put guid hashes to BranchStates
- setup a couple of functions using guid
2015-09-16 19:40:50 +03:00
adelikat a8409a9c86 TasStateManager - some cleanup 2015-09-15 20:03:50 -04:00
feos ce3c9364df tastudio: ban state removal per branch load.
todo: figure out way to skip removal internally in StateToRemove().
2015-09-15 21:47:59 +03:00
feos b31c43321b tastudio: branches.
- update inputroll after branch operations
- properly remove BranchStates units
- don't load current branch
2015-09-14 20:45:27 +03:00
feos 62e25eadb0 tastudio: attempts to fix branch states.
relying on dynamic serial number was plain wrong, but TotalSeconds might be obsoleted by new branch field that doesn't change and is unique for each branch, like a counter of created branches.
todo: load branch states from tasproj, or at least not drop the states above divergent point when loading.
2015-09-13 23:36:47 +03:00
adelikat b692acf2f9 TastStateManager - more exception prevention 2015-09-06 14:18:31 -04:00
adelikat 0a4ad42eaa TasStateManager - more work arounds to deal with the scenario of removing branches, I doubt this is the correct approach, but I don't know what else to do, someone should revisit this 2015-09-06 13:39:14 -04:00
adelikat f06e2d86da TasStateManager - fix crashes when deleting and updating branches, these are all probably hacks that need to be revisisted 2015-09-06 13:23:40 -04:00
feos 3fccda33fd tastudio: hail copypaste-driven development! 2015-09-06 18:02:50 +03:00
adelikat 0da8f3cac4 TasStateManager - don't modify while iterating 2015-09-06 10:56:31 -04:00
zeromus a7bf968554 fix TasStateManager clearing bug 2015-08-17 16:29:45 -05:00
Suuper 1f4b0d5d77 -More work on TasStateManager
-Fix: SaveStateSettingsForm was setting the disk capacity to 1 mb on load if it had been set to 0.
2015-08-17 11:32:46 -05:00
Suuper f76c49ce1b -Fix: Loading a TasProj caued it to be saved immediately after. (Some old TasProj files are now broken.)
(Saving process for movies still needs some cleaning.)
-Fixed setting input log by reference when loading a branch
-Fix: TasStateManager wouldn't decrease Used when deleting a RAM state from a branch.
-Removed a useless call to Movie.Save()
-Fixed a bug with creating a savestate anchored tasproj.
2015-08-17 09:14:08 -05:00
Suuper b054032694 TasStateManager: Improve performance of StateToRemove
A lot of work on tracking states, still lots to do.
2015-08-16 11:28:03 -05:00
Suuper d6e3553449 TAStudio: Fixed displayed maximum state capacity.
Clear states to stay within the new limit when settings are changed.
2015-08-15 10:07:56 -05:00
zeromus 432adc7874 ..huh. fix building, and also change an int to a long where it was conceivably inadequate 2015-08-13 21:54:38 -05:00
zeromus 5bf21e391c TasStateManager uses a new data structure to write all states to one auto-deleting file per TasStateManager instance. TasStateManager is now IDisposable; this needs to be followed rigorously (I didn't do that). 2015-08-13 21:51:51 -05:00
Suuper 078bd102e8 TasStateManager should work with branch states on disk now.
Also now tracks the RAM/disk space used by branch states.
Added bookmarks to branches.
2015-08-13 13:03:22 -05:00
Suuper 4ce346661b Branch states on RAM should work. (Disk states will break things.) 2015-08-13 09:42:04 -05:00
zeromus 4eb89c823d fix slow big O in TasStateManager, causing performance catastrophe when state scavenging begins. But I'm not 100% sure I did it right. 2015-08-05 19:42:01 -05:00
zeromus b981e00889 fully support read-only movie opening. I hope this fixes #453 2015-08-05 17:00:39 -05:00
zeromus 3ec314d20b TasStateManager: don't touch disk unless opened for 'write access' 2015-08-05 16:36:44 -05:00
adelikat 07fddd31d7 Tastudio - tweak rerecord counting to what was probably intended, only increment rerecord count on Invalidate() if Invalidate() actually invalidated any states 2015-08-04 20:24:49 -04:00
Suuper 0d87c8330c TAStudio: -Put lag log and change log back into branches.
-Bugfix: clearing states in a savestate-anchored movie threw an exception
-Clear disk states when clearing states
2015-07-30 15:14:34 -05:00
Suuper 3c3cdc4590 Fixed a display bug cauased by player highlighting
(also renamed a variable and changed comment lines)
2015-07-23 13:30:25 -05:00
adelikat 4188f2105e Tastudio - branches - ability to load a branch, currently the frame buffer does not have OSD info 2015-07-19 10:37:53 -04:00
adelikat 19423092cd Tastudio/lua - implement tastudio.ongreenzoneinvalidated 2015-07-02 14:51:42 -04:00
SuuperW 9328dd2f3a -TAStudio automatically set Read-Only
-TAStudio no longer refreshes every frame if playback cursor isn't visible; slight performance boost
-Editing while in playback won't mess up the LagLog (states still do)
-Fixes to rotated display and HBar scrolling
2015-03-19 19:55:38 +00:00
SuuperW 91dc780103 Fixes/changed to state history saving.
State History Integrity Check now stops at the last state.
2015-03-17 01:02:38 +00:00
SuuperW a3eadc8e5f Various bug fixes, most to TasStateManager. 2015-03-16 16:36:00 +00:00
SuuperW 37590e7ea4 TasStateManager can now save states to disk. 2015-03-15 06:26:57 +00:00
SuuperW c661591c5c Smarter state management.
Don't focus on TasView if TAStudio doesn't have focus.
Bugfix: Scrolling with wheel didn't update pointed cell
Setting: Scroll to top/bottom/center
Follow cursor hotkey
2015-03-14 16:38:07 +00:00
SuuperW 1a0476892f Bugfix: TasProjects without states loaded without a power on state.
Bugfix: There were several ways to edit movie in TAStudio without rewinding to edited frame.
Smarter state management.
2015-03-12 18:31:28 +00:00
SuuperW 25e54f4390 -More StateHistory names
-Smarter state history management
TAStudio: A few bugfixes and performance boosts
2015-03-03 06:56:45 +00:00
SuuperW 2c876858f2 -Bugfix: TAStudio couldn't re-save a project.
-Bugfix: tasproj files without StateHistory couldn't load.
-Gave a bunch of StateHistory stuff proper names.
2015-03-02 23:43:52 +00:00
adelikat 6d0a764a72 Tastudio - quick fix for crashing on startup, a better solution is needed eventually but this will work fine, it just isn't conceptually how we want to do things anymore 2014-12-21 23:53:40 +00:00
adelikat eed16fafc8 TasStateManager - don't check for null emulator nor IStatable, fail catastrophically if a core is not IStatable, they shouldn't have gotten this far if it wasn't 2014-11-30 17:54:21 +00:00
adelikat 76148ae111 Break off savestate functionality from IEmulator into IStatable and refactor things accordingly. Still todo (a big todo): EmuHawk should gracefully handle a core that is not an IStatable by disabling functionality dependent upon it (Savestates, Rewind, Tastudio, etc) 2014-11-30 16:42:58 +00:00
adelikat 2041b15260 Tasproj loading - don't attempt to read from empty files if they exist but are empty 2014-11-20 00:14:33 +00:00
adelikat b4f7e13d1b Tastudio - in non-developer builds, set the minimum savestate frequency from 2 to 1 2014-11-19 16:22:03 +00:00
adelikat e3b6d29956 Refactor last commit and some other code so that reset happens in a singular place when loading a state from the state manager 2014-10-26 23:37:42 +00:00
adelikat 59494767f5 Tastudio - refactor TasStateManager GetStateClosestToFrame() to return a KeyValuePair (frame number and savestate data) so the calling code has a clue which savestate was returned, reset counters if a savestate-anchored movie's "anchor" was loaded 2014-10-26 23:26:43 +00:00
adelikat fa9971022b TasStateManager - GetStateClosestToFrame() - state savestate anchored movies into account 2014-10-26 23:17:20 +00:00
adelikat 170bc4aab0 TasStateManager - Invalidate() - take savestate anchored movies into account 2014-10-25 19:33:28 +00:00
adelikat b301546237 TasStateManager - take starts from savestate into account in the HasState() method 2014-10-25 16:11:40 +00:00
adelikat 429b298dc1 TastStateManager - take starts from savestate into account when deciding if there are any states 2014-10-25 16:05:11 +00:00
adelikat 48eb40449c Make TasStateManagerSettings use default values from the config, next step: a ui to change the config values 2014-10-17 22:47:30 +00:00
adelikat f930622b5e Move TasStateManagerSettings to its own file 2014-10-17 22:39:40 +00:00
adelikat 3be3264d60 TasStateManager - make frequency based on savestate size, formula should be tinkered with to get best results on all platforms, also dont' ever capture frame 0 on savestate-anchored movies since the anchor will be returned when 0 is requested 2014-10-15 15:47:04 +00:00
adelikat fc311c12e9 Tastudio - never remove the frame 0 savestate in non-savestate-anchored movies 2014-10-15 15:23:48 +00:00
adelikat ce58f0e803 Tastudio/TasMovie - simplify some more code 2014-10-14 13:31:14 +00:00
adelikat cfff19b808 TasStateManager - add an InitialState property, not used yet and has limited value, but might help with clarity 2014-10-05 12:59:12 +00:00
adelikat fda36d349d a fix to the fix of last commit 2014-10-02 23:50:50 +00:00
adelikat d0970c5ba4 fix last commit 2014-10-02 23:19:37 +00:00
adelikat 535ba7dc4a TasStateManager - don't delete frame 0 greenzone, todo: refactor to store this (for non-savestate anchored movies) separately 2014-10-02 23:10:36 +00:00
adelikat 4addd7fcbc Tastudio - implement a Clear Greenzone menu item 2014-10-02 22:58:36 +00:00
adelikat 624ad32d4e Tastudio - fix some go to frame logic, but probably broke stuff too 2014-09-22 23:24:34 +00:00
adelikat ea3f86c11e Tastudio - Fix some erroneous StateManager logic 2014-09-22 22:52:34 +00:00
adelikat 0ef72d3ab2 Tastudio - fix a bug in tastatemanager 2014-09-22 14:44:32 +00:00
adelikat e6d6dc7e51 Tastudio - more go to frame stuff 2014-08-30 00:40:53 +00:00
adelikat bbc84471d8 TasStateManager - capture every other frame for now 2014-08-27 20:43:45 +00:00
adelikat ed6aeeba45 TasStateManager - yes we want to clear 2014-08-25 22:04:05 +00:00
adelikat 3aec45448c TasMovie - TasStateManager - pre-allocate the SortedDictionary size based on state size and memory usage capacity. Fixes the problem of performance grinding to a halt as the movie frame count increases 2014-08-24 22:50:21 +00:00
goyuken 63b533f15c tasstatemanager: fix out of memory on save 2014-08-24 21:53:48 +00:00
goyuken aab2a17947 tasstatemanagerstuff 2014-08-24 21:29:51 +00:00
adelikat 1d5cd2eb6d oops, nevermind 2014-08-24 20:30:56 +00:00
adelikat 2a98534fe4 TasMovie - optimize greenzone adding, no longer gets slower and slower as frame count increases 2014-08-24 20:28:46 +00:00
adelikat 103de3d34f TAStudio - when creating a power-on movie make a savestate on frame 0, if starting from savestate, use the savestate from the movie as frame 0 in the greenzone 2014-07-17 18:21:12 +00:00
adelikat b63a34249f TAStudio - add the notion of the "pending" frame, the frame about to be emulated, for which you can click to add input that will be captured into the movie the next frame. Logic is still wonky when switching from play to record at the end of a movie, and frame 0 is still messed up but that's a different problem 2014-07-16 23:04:56 +00:00
adelikat eae94f9184 TAStudio - stuff 2014-07-13 15:26:50 +00:00
adelikat 9f94ee1e33 TAStudio - add capacity and SaveGreenzone settings to the greenzone and make greenzone respect the capacity. When adding a new state that exceeds capacity, the first one added will be removed (more intelligent logic will be done later). Respect the SaveGreenzone flag when saving and loading. Save and load greenzone settings to tasproj file, still todo: UI to let user manage greenzone settings 2014-07-10 22:44:44 +00:00
adelikat 4c9c8e3cb1 TAStudio - saving/loading of greenzone 2014-07-10 22:07:50 +00:00
adelikat f3af2821bb TAStudio - populate greenzone during playback 2014-07-10 20:48:43 +00:00
adelikat 96b36cc230 TasMovie - save and load lag log to file 2014-07-07 19:32:37 +00:00
adelikat 6d61db045f TasMovie - more reorg and restore state and lag capturing 2014-07-07 18:40:42 +00:00