Commit Graph

289 Commits

Author SHA1 Message Date
adelikat 240b89082b Tastudio - fix capturing during the movie playback frame loop, used some duct tape for now, need a better solution 2015-02-24 21:56:01 +00:00
adelikat 6a02656417 Tastudio - track lag log history (1 level deep) and color "invalidated greenzone" using this information (a lighter shade of normal greezone colors) 2015-02-24 21:23:16 +00:00
adelikat 817b9d83aa tabs to spaces, whitespace commits are the best 2015-02-24 20:15:43 +00:00
adelikat 634acd8fe1 TAStudio - Remove some code that captures lag and savestate info of the current frame when requesting input, because that's a bogus notion, such methods shoudln't have side effects. I was going to hack it for the scenarios where it needs to happen, but I couldn't find any downside to just deleting the code, if there's regressions traced back to this commit, let me know! 2015-02-24 03:06:15 +00:00
christoph.boehmwalder c3f51f8b39 Made saving a little more convenient by putting it in its own thread. Might be very buggy still.
Also temporarily disabled reading TAStudio settings in PlaybackBox because of a NullReferenceException
2015-01-03 02:29:55 +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 f5cc38c9cd AsInputPollable() 2014-12-05 00:59:00 +00:00
adelikat e2033c9d2e AsStatable() and also update statusbar saveslots on CloseRom() 2014-12-05 00:52:16 +00:00
adelikat a83d714c42 Break off IsLagFrame and LagCount from IEmulator and put into its own interface IInputPollable, and refactor cores as necessary. EmuHawk - account for the possibility that a core is not an IInputPollable, and do things like disable the lag counter menu item. Still some front end todos. Also still todo, move the InputCallbackSystem from CoreComm to IInputPollable 2014-11-30 20:29:30 +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 ea6966a911 Tastudio - fix loading of projects 2014-11-19 15:54:00 +00:00
adelikat 5349affbc4 Tastudio - support "out of order savestating" using saveslot states. Experiemental, could have bugs particularly off by one issues 2014-11-15 21:49:58 +00:00
adelikat 410078081c Tastudio - fix lag lag to reflect the next frame 2014-11-15 14:55:44 +00:00
adelikat 80dae0d026 Tastudio - refactor lag log to be a list of frame,bool combinations instead of just a list of bools, note: this changeset reverts the list back to an "off by 1" where it corresponds to the current frame not the next frame, that will be solved in a later commit 2014-11-15 14:31:18 +00:00
adelikat 891d3933bd Don't increment the Rerecord counter with loading a bk2 or tasproj movie, fixes the obvserved issue in issue 303. However, a bigger concern is why loading a movie and stopping it is causing the movie to be saved in the first place 2014-11-13 23:49:58 +00:00
adelikat 149a759a26 Tastudio - oops, fix major bug in r8145 2014-11-02 14:25:06 +00:00
adelikat 2f3f3d29fc Tastudio - invalidate lag log when editing frame 0 2014-11-02 13:52:45 +00:00
adelikat 7f18d9ebc0 Fix bugs in last commit 2014-11-02 01:10:19 +00:00
adelikat f7460d1821 Tastudio - make green/red drawing for lag correspond with FCEUX's taseditor. Rather than show what the lag counter is saying, show what the next frame will be. The logic here is that green means a frame in which an edit will have an effect on emulation and red means it will not. 2014-11-02 00:39:53 +00:00
adelikat 8197f96c98 TasMovie - make a TasLagLog class to simplify some code 2014-11-02 00:22:04 +00:00
adelikat 01909dfb98 Tastudio - When creating a savestate-anchored movie from an existing movie, copy the previous input into VerificationLog.txt 2014-11-01 14:01:21 +00:00
adelikat 900ce76a3b TasMovie - add a VerificationLog.txt file in the tasproj, doesn't use it yet but it does properly save and load it, will save if there is any log entries, will load it if the file exists in the tasproj 2014-11-01 13:37:18 +00:00
adelikat 6611ddd9ba Some fixups to TasMovie - mostly code cleanup but also some subtle bug fixes 2014-11-01 12:50:36 +00:00
adelikat 549b948ffd Tastudio - add a context menu "create new project from here", it will take the currently selected frame and create a savestate-anchored project on this frame (keeping any input after this frame), and load this new project. 2014-10-30 23:29:21 +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 c49e51d03f When converting a movie to a tasproj, properly capture whether it starts from savestate and make the appropriate marker 2014-10-25 15:47:15 +00:00
adelikat d0aee55059 Tastudio - a bit of simplifying some code 2014-10-20 19:04:59 +00:00
adelikat 3593588d5f InputRoll - ColunReorder event handler, Tastudio - subscribe to this event handler and flag changes to the movie (since this information is saved into the tasproj file) 2014-10-19 14:46:01 +00:00
adelikat ceb79a4c26 Tastudio - make a new project called default.tasproj rather than gamename, only use gamename when suggesting a movie in a Open/SaveFileDialog 2014-10-18 15:50:12 +00:00
adelikat e1b0544668 TasMovie - fix stop movie, if there were no changes to the movie file it was IGNORING the request to stop, that was bad and was the cause of various subtle oddities 2014-10-18 15:17:49 +00:00
adelikat 305dea53ab Tastudio - a dialog to change the default "greenzone" settings 2014-10-18 01:01:45 +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 fe9dade094 tasmovie - don't capture information on GetInputLogEntry(), that is code that should have been been whaked when refactoring Everything ot UseGetInputState() instead. Still todo: get rid of this method alltogether 2014-10-16 23:11:29 +00:00
adelikat e58e911d7e Tastudio - when emuhawk is playing back frames, we must be logging lag and savestates in tasmovie if we do not have the information! This fixes a number of "spooky" bugs I've been finding! 2014-10-16 23:05:59 +00:00
adelikat 5436a7d24e BinarySavestates - add a HasLump() method, and use it to check for clientsettings in tasproj since it may or may not have it 2014-10-15 15:55:41 +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 e6cec0f52f Tastudio - Saving and loading of column info to the .tasproj file, loading is still problematic because it is being whacked by code that rebuilds the columns later, need to unspeghettify some things 2014-10-14 18:09:30 +00:00
adelikat ce58f0e803 Tastudio/TasMovie - simplify some more code 2014-10-14 13:31:14 +00:00
adelikat a639cfd275 remove some code in tasmovie that isn't necessary now 2014-10-14 13:24:15 +00:00
goyuken 4ee816e8bc code to use 7zip (unmanaged) to write archives, not active for the moment, still stuff to do 2014-10-12 04:24:31 +00:00
adelikat 99e6b7ce27 Tastudio - for devleoper builds add a Greenzone Integrity Check menu item, runs through the movie and verifies the greenzone states are identical to the data gathered from emulating and replaying the movie and savestating 2014-10-05 14:11:30 +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 e00801d6f3 tasmovie - only save when stopping if there are changes 2014-09-27 23:56:23 +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 8b212da594 tastudio/lua - implement tastudio.getmarker(), tastudio.setmarker(), and tastudio.removemarker() 2014-09-21 15:17:29 +00:00
adelikat e6d6dc7e51 Tastudio - more go to frame stuff 2014-08-30 00:40:53 +00:00
adelikat c7949501b2 Tastudio - proof of concept for cachine the input state during a screen refresh. A huge speed up here, about 400-500%. Implementation is a bit sloppy but works 2014-08-29 02:58:52 +00:00
adelikat 86fc66820c Oops 2014-08-29 02:40:45 +00:00
adelikat c033b26ad0 TasMovie - don't create a Bk2MnemonicConstants object everytime a display value is requested, gives a modest speed up to tastudio performance 2014-08-29 01:59:08 +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 24bb942dd1 if TasMovie constructors (a hacky way for now) 2014-08-24 15:07:27 +00:00
kylelyk 4455d5deac Editing Markers now is managed by TasMovie as a change to the movie file. Fixed bugs to do with adding and deleting markers. 2014-08-24 14:41:56 +00:00
kylelyk b66db36046 Dialog Title now has a asterisk at the end if the movie has pending changes to be saved. Added UI functionality for Auto-pause At End of Movie; does work yet. 2014-08-23 18:02:02 +00:00
kylelyk 6fa3cf4d28 Inserting frames in TAStudio now inserts before FirstSelectedIndex like FCEUX and most other programs with insertion options. 2014-08-23 02:06:56 +00:00
kylelyk 25b512a9c7 Quick add to subversion. 2014-08-23 01:28:04 +00:00
kylelyk 92bdba7938 GreenzoneSettings.MaxStatesInCapacity is now updated at dialog load and is a integer instead of a decimal. 2014-08-22 17:04:31 +00:00
kylelyk 17489f6175 Added Name property to Bk2Movie, fixed off-by-one in greenzone truncation, TAStudio displays name of movie in dialog title. 2014-08-22 02:56:27 +00:00
kylelyk 9bcb5f835a Fixed unable to edit subtitles while TAStudio is open. 2014-08-22 00:31:41 +00:00
kylelyk 464cde5efa Fixed crash on copy rows in TAStudio. Replaced spaces with tabs in previous commits. 2014-08-21 22:53:03 +00:00
kylelyk 1b85a89b66 Markers on frames to be truncated are now deleted like in TAS Editor. 2014-08-21 21:24:25 +00:00
kylelyk 26c65d727d Fixed TAStudio crashing on truncating movie in greenzone. 2014-08-21 18:45:14 +00:00
goyuken 7ac1d58a51 fix zipstate internals that caused movies that started from savestate to explode 2014-07-25 16:51:27 +00:00
adelikat 36fe0473f5 TAStudio - keep markers sorted by frame 2014-07-23 01:52:12 +00:00
adelikat 2ebba5ab07 Tastudio - implement playback controls 2014-07-17 19:00:28 +00:00
adelikat 816fac55fa Tastudio - implement the Select Between Markers menu item 2014-07-17 18:38:30 +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 d8216ae0fc Tastudio - remove marker button 2014-07-16 02:17:19 +00:00
adelikat f286d07a9d TAStudio - background color logic 2014-07-16 00:10:37 +00:00
adelikat 8c064875c2 TAStudio - ability to add markers, very crude implementation for now 2014-07-15 23:43:17 +00:00
adelikat 0b35490b16 Profile Config - don't show custom profile in non-developer builds, put saving logic in the ok button click event instead of drop down change event. Remove a warning in TasMovie.cs 2014-07-15 00:05:18 +00:00
adelikat 02a5337cd6 Movies - rework some things so that MovieSession is in charge of sending a movie into finished mode, as opposed to GetInutState() having the side effect of MovieFInished 2014-07-13 22:36:37 +00:00
adelikat f79a674219 Remove GetInput() from IMovie 2014-07-13 22:17:31 +00:00
adelikat 57c86f7491 TAStudio - capture lag log during playback 2014-07-13 20:51:19 +00:00
adelikat eae94f9184 TAStudio - stuff 2014-07-13 15:26:50 +00:00
adelikat 43a687060c oops 2014-07-13 14:26:40 +00:00
adelikat 6b1bfc2d4a TAStudio - stuff 2014-07-13 14:13:20 +00:00
adelikat 3f461990c4 TAStudio - insert num frames implemented 2014-07-13 12:44:31 +00:00
adelikat 43415044e7 Tastudio - implement truncate movie 2014-07-12 01:23:38 +00:00
adelikat e49754b705 TAStudio - implement paste and paste insert 2014-07-11 23:54:18 +00:00
adelikat e8f821117b TAStudio - implement the Insert menu item 2014-07-11 21:05:16 +00:00
adelikat 40912a3c2b TAStuduio - implement Clear menu item and hotkey, properly invalidate greenzone on input painting and other already implemented editing events 2014-07-11 19:58:24 +00:00
adelikat 76fc763715 TAStudio - implement the Cut menu item 2014-07-11 19:11:30 +00:00
adelikat 2072eac45f Some Changes flag management in movie objects 2014-07-11 18:06:18 +00:00
adelikat f8ee569bbb TAStudio - float painting 2014-07-11 16:26:19 +00:00
adelikat 2e508c1468 TAStudio - greenzone settings dialog 2014-07-11 15:43:47 +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 f0425f3cc5 TAStudio - input painting for boolean input 2014-07-10 20:40:50 +00:00
adelikat 5681368e13 TAStudio - background coloring based on lag log and greenzone 2014-07-10 19:24:21 +00:00
adelikat 80d5e8a7be TAStudio - input display 2014-07-10 02:45:56 +00:00
adelikat 537d8c5cac TAStudio - misc stuff 2014-07-09 21:56:27 +00:00
adelikat 786b0238ba Move Markers from TAStudio to TasMovie, and implement saving and loading of markers 2014-07-09 16:35:39 +00:00
adelikat 863d6f09ee small tastudio progress 2014-07-08 13:33:01 +00:00
adelikat 84b8fa36f2 TAStudio - more stuff 2014-07-07 19:48:58 +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
adelikat c019ec3bf0 More reorg 2014-07-07 18:03:02 +00:00
adelikat 7173447e8a TasMovie - some reorg in preparation for actual progress 2014-07-07 18:00:25 +00:00
adelikat 46d6279f1b TAStudio - some progress on dynamically displaying columns, and some fixups in movie code in general 2014-07-06 22:13:12 +00:00
adelikat a5fadb8e0b Some useless cleanup 2014-07-03 18:17:09 +00:00
adelikat 5cda104ea5 Start ToBk2() conversion method for BkmMovie 2014-06-17 01:24:44 +00:00
adelikat d27df7816d Rip out a bunch of stuff from my previous attempt at a mnemonics overhaul and from TasMovie 2014-06-14 21:09:14 +00:00
adelikat 1fcc105293 more 2.0 work 2014-06-14 20:17:07 +00:00
adelikat c08e6bbf93 Some more bk2 and movies 2.0 stuff 2014-06-14 19:13:21 +00:00
adelikat 398577245e Progress on Bk2 implementation 2014-06-13 00:43:55 +00:00
adelikat b26b26efbe More movies 2.0 work 2014-06-12 20:42:46 +00:00
adelikat 3dce396261 More movie 2.0 stuff 2014-06-12 11:53:25 +00:00
adelikat 373231379c Movies 2.0 work - play movie dialog is now complete IMovie based and no specific implementation 2014-06-11 21:20:23 +00:00
adelikat 54c9c2c0a0 Some more Movies 2.0 work 2014-06-11 21:14:13 +00:00
adelikat 5d31fb2b3c Some more movie 2.0 progress 2014-06-11 02:33:57 +00:00
adelikat a682c667dd Nuke IMovieHeader, put necessary methods into IMovie instead, and some todos on trouble spots for movie 2.0 2014-06-11 01:41:41 +00:00
adelikat 47d5b1e2e2 Movie Savestate blob from IMovieHeader to IMovie, Movie and TasMovie just use the MovieHeader object as usual, but at least the calling code no longer expects that 2014-06-11 00:41:20 +00:00
adelikat 229a6f6ac9 Oops 2014-06-11 00:27:19 +00:00
adelikat e07c7a776f Some simplifying of IMovieHeader 2014-06-11 00:21:14 +00:00
adelikat 5177051d08 Movie files - some more reorg - renaming and putting into new folders 2014-06-08 22:24:38 +00:00