Commit Graph

458 Commits

Author SHA1 Message Date
adelikat e0a51eaab1 Rename IStateManager.StateCount -> IStateManager.Count 2019-06-15 14:49:43 -05:00
alyosha-tas 655729f29c TAStudio: orderly shutdown if starting TAStudio returned nullEmulator. 2019-04-21 08:46:50 -04:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
feos 766de68e18 tastudio: don't tell about clipboard if it's empty 2019-01-23 17:24:42 +03:00
feos cd2d63b04a tastudio:
- don't use branch laglog after loading it. it's useless because we invalidate if needed anyway
- PauseOnFrame being null started to crash seeking, fixed
- make use of movie alias in branchbox
- capture tsm state after loading the branch

todo: if we load a branch in the middle of invalid greenzone, advancing won't draw new greenzone even tho states are being created. laglog doesn't seem to allow gaps either. unsure how to resolve
2019-01-05 21:30:06 +03:00
feos c85bb39d98 tastudio: branch loading now can behave as it does for regular rerecording!
Old control scheme for Branches ON:
- Loading in read+write (recording) mode restores the branch input and truncates it after the branch frame
- Loading in read-only (playback) mode only makes emulation jump to the frame of the branch, disregarding its savestate and timeline

Old control scheme for Branches OFF:
- Loading a branch ALWAYS restores its entire input

TASEditor adds to this that you only start recording after you load a branch in rec mode, but I don't think this is important here.
2018-12-04 00:16:14 +03:00
feos 731584344d tastudio: BranchesRestoreEntireMovie and LoadBranchOnDoubleclick 2018-12-03 22:33:42 +03:00
feos 0433b10d31
Revert "This fixes a bug in TAStudio where you cannot use '<'to get to frame 0" (#1382)
I'm committing the proper fix after this
2018-11-28 22:03:16 +03:00
adelikat b73e9d2f7a
Merge pull request #1371 from TASVideos/rewind_frame0
This fixes a bug in TAStudio where you cannot use '<'to get to frame 0
2018-11-18 11:07:11 -06:00
adelikat 06bb89791f Add a nag when attempting to record a quicknes movie (but allow the user to continue), fixes #1353 2018-11-18 10:05:12 -06:00
adelikat c8265f6c10 allow snes9x movies to be recorded (still nag, but allow the user to continue) 2018-11-18 09:52:35 -06:00
alyosha-tas 4794c1bd46
Add files via upload 2018-11-18 09:04:56 -06:00
Isotarge e808618981 TAStudio: Squish some more exceptions
- Opening a TASProj or closing BizHawk with the Virtual Pad open
- Opening TAStudio with small window size saved in settings
2018-10-19 12:35:14 +10:30
feos 1455e4cad7 tastudio: hide a few computer columns by default 2018-09-09 15:38:45 +03:00
feos c2e2e9a1f7 tastudio: fix #1310
we don't need statecount info to be THAT up-to-date
2018-09-07 23:33:07 +03:00
feos 661a15dc2c tsm decay: remove states within internal state gap
states settings: clamp things harder
2018-03-11 17:57:30 +03:00
feos 7162de1d3c tastudio: let's just report state count
will help to sort out possible decay bugs
2018-03-11 14:59:58 +03:00
TASeditor 6580c2abef Tastudio: drawing stuff, selection, patterns, add column lua function (#1125)
* alt+columnclick draws pattern
* selection: taseditor logic
* shift/ctrl keys restructure to taseditor
shift + up/down: move frame courser up/down by one
shift + pageup/pagedown: move frame courser to next/prev marker
ctrl + left/right: add/remove selection at last selected row
ctrl + shift + left/right: add/remove selection at first selected row
* Alt+drawing pattern
still not working with drawing upwards
* pattern drawing
upwards drawing working except it doesn't update last row.
TODO: Disallow Alt click to focus on menu.
* pattern: last input ignoring fixed
* Lua columnms
TODO: Don't save them into tasproj
* no need to update float edit stuff or cell changes when its not needed
* Shift+clicking draws input from first selected row to clicked cell
* fixed pattern drawing on empty cells
2018-03-08 22:15:47 +03:00
feos bf8c21663d
State manager decay (#1128)
* Finally use exponential decay algorithm for greenzone
  * Works in both directions (unlike fceux taseditor)
* Stop using last accesses states for anything
* When dropping states per project save, account for state gap better
* Use _states.Keys[i] instead of _states.ElementAt{i).Key in speedy parts, because it's apparently tons faster
* Use StateIsMarker() where it's supposed to be used
* Markers are still left untouched
* Branch states are still dead (probably forever)
2018-03-08 12:24:35 +03:00
TASeditor 36900b15d4 tastudio lua: setinput functions, onbranch callbacks (#1098) 2018-02-10 14:58:46 +03:00
feos 84412eafd9 tastudio: do normal seeking while recording too. needs testing
if you go to a frame while recording and unpaused, it will seek to that frame (not touching input since rec mode is suspended), and after it reaches it, it will unpause and restore rec mode
2017-10-07 15:20:30 +03:00
adelikat f424a22033 Tastudio - fix recent menu - fixes #920 2017-07-17 11:20:59 -05:00
adelikat ac6b18c137 tastudio - change performance profile nag to a snes9x nag 2017-06-12 20:56:32 -05:00
adelikat b03e224c5e TAStudio cleanup 2017-05-24 10:49:35 -05:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
adelikat 1184e8ed05 lua - implement tastudio.getselection(), tastudio.insertframes(), tastudio.deleteframes() 2017-04-22 20:50:03 -05:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
feos 54320865c0 tastudio: don't update branches if no movie was loaded 2017-03-18 18:15:21 +03:00
feos e99b52342c tastudio: bind autosave and screenshot popup timers to controls
also annihilate _saveBackgroundWorker
2017-03-17 21:55:43 +03:00
feos a9cda4a21f tastudio: dynamically resize usertext column 2017-03-15 21:46:46 +03:00
feos 03ea4f9126 tastudio: fix #806 part 2 2017-02-19 11:43:35 +03:00
feos d19fcb62ab tastudio: fix the first half of #806 2017-02-19 10:31:30 +03:00
feos 60d69db588 tastudio: stop crashing upon movie platform mismatch
make the error window topmost
2017-02-19 00:26:42 +03:00
zeromus f458648fad improve rewind in tastudio by leaving editmode intact but taking care not to clobber frames. take special pains to ensure that (reverse) frame progress vs smooth rewind semantics stay as expected. 2017-02-16 00:29:28 -06:00
feos 821baeb649 tastudio: captured state 0 was useless if movie conversion happened at frame>0
capture it after core reboot
2017-02-09 22:51:52 +03:00
zeromus ea2188dc46 make tastudio.setplayback correctly restore the recording flag after it finishes seeking from the greenzone to the target frame 2017-02-07 00:01:14 -06:00
feos c739755e9b tastudio: hide whatever starts with "Key " by default
ideally, there should be separate Keys menu items in SetUpToolStripColumns() as well, moving them to a separate dropdown and hiding/showing all at once
2017-02-05 15:20:05 +03:00
zeromus d87a2b27a2 make lua's new tastudio.setplayback re-enable the record flag if it was set (the existing logic leaves it disabled I think as security against the GUI use case where users might stomp their video seeking while playing in record mode). future work: add lua control for the record mode flag 2017-02-05 04:20:07 -06:00
feos ae15073180 tastudio: fix regular movie opening from tastudio 2017-02-04 22:33:52 +03:00
feos 51f21691fd tastudio: fix #788 2017-02-04 16:09:13 +03:00
feos f860c5d8b1 tastudio: try to fix opening a bk2 directly 2017-02-01 20:41:15 +03:00
feos 7d469c08a8 tastudio: show bsnes performance mode warning
addresses #788
2017-01-31 00:00:09 +03:00
feos 37a44c2b17 tastudio: fix and tweak clipboard and selection display 2017-01-26 20:21:48 +03:00
feos d8d0c62adf tastodio: completely redo branch screenshot popup just to avoid cropping
moved it to ToolTip, which feels like the proper way to do it
2017-01-22 17:46:54 +03:00
feos 74adace569 tastudio: file opener improvements
- fix opening and conversion of a regular movie
- fancy ofn filter, suggesting all available files first
2017-01-20 02:00:27 +03:00
feos 3548ec00dc tastudio: use Emulator the same way branch control uses it
this fixes a bug that generated a whole stack of temp fixes over temp fixes, as well as the crash those were trying to prevent
2017-01-13 18:26:52 +03:00
feos 8f8cf53052 tastudio columns: restore call missing since commit 3ea3012aa7
seems to only be needed for importing bk2s, other scenarios setup columns on their own, differently
2017-01-07 19:48:04 +03:00
feos 480bc5540f tastudio: reload the tasmovie if it was loaded outside tastudio and then tastudio was opened
also go to current emulator frame in that case

todo: one isn't expected to change anything in the tasmovie while in regular mode, otherwise something might break. fceux opens taseditor if a read+write state is about to load in such conditions
2017-01-02 13:59:00 +03:00
adelikat 5ff33e7569 Rename IController.Type to IController.Definition to more clearly describe the property 2016-12-12 12:30:32 -06:00
adelikat 5258f9385c Tastudio - use the Emulator property not Global.Emulator, fix another CoreExension method 2016-12-04 12:30:51 -06:00
adelikat 2f375388b5 Tastudio - refactor screenshot code to use a required dependency on VideoProvider instead of using Global.Emulator, also put it on the load event instead of the constructor 2016-12-04 09:20:22 -06:00
alyosha-tas 3be6c8917c TAStudio fix default window size
Prevents marker and branch bozes from having zero size.
2016-12-03 09:36:35 -05:00
feos f59ebfe126 tastudio: refactor restore logic again, fixes some more bugs
(_autoRestoreFrame completely replaced by LastPositionFrame)
2016-11-21 23:59:12 +03:00
feos ef8068daa4 Revert "tastudio: move LastPositionFrame to TasMovie, prepare for another revision"
This reverts commit eea49f1895.
2016-11-21 20:03:56 +03:00
feos eea49f1895 tastudio: move LastPositionFrame to TasMovie, prepare for another revision 2016-11-21 19:29:11 +03:00
feos a8dde12c1f tastudio:
- set Float type to analog control columns
- set their size taking into account their MaxDigits
- stop displaying neutral analog values

input OSD:
- obtain real neutral analog value the given core uses and hide it, instead of hiding hardcoded zero
2016-11-19 19:31:04 +03:00
feos 3ea3012aa7 tastudio:
- properly setup autoloaded and normally loaded project columns
- actually call the callback that updates scrollbars and other stuff
2016-11-19 00:50:40 +03:00
feos 2a9bd175d8 tastudio: kill zombie denoteStatesWithBGColor and co. in InputRoll, having them in Settings is enough 2016-11-17 20:25:06 +03:00
adelikat 30f573729c Use Count not Count() 2016-11-14 15:21:26 -06:00
feos 0b1245d769 tastudio: when loading another project, update column menus
todo: fix autoload
2016-11-14 22:39:58 +03:00
feos 52506433a2 tastudio: don't try to apply ClientSettings (columns) before SyncSettings (amount of players) 2016-11-14 20:13:08 +03:00
feos 175862a5f3 tastudio analog editing:
- mouse dragging during float edit mode updates the displayed value and fires restore on mouse up
- Enter key exits float edit mode after applying the dragged value, while Escape exits it after ignoring the dragged value (should Escape cancel all changes?)
- currently disabled switch to enter float edit mode by single click
2016-11-12 17:53:15 +03:00
feos 00d07b8602 tastudio: attempt to fix crash caused by seek progressbar 2016-10-29 16:58:09 +03:00
Kyle Howell 3d88f77ec6 Fixed TAStudio crash when deselecting "Show Player X". The horizontal scrollbar was not updated which caused an exception when scrolling to the right. 2016-09-25 16:55:34 -06:00
feos 05feca4e4e tastudio: GlobalWin.MainForm alias
almost 100 cases of usage is worth it

make "recent rom not found" window topmost
2016-08-29 19:38:36 +03:00
feos 0246c952eb tastudio: complete overhaul of seek logic, replicating taseditor
todo: fix lastpositionframe dying if editing the same row twice with no autorestore, probably improve cursor color and rename old seek related vars
2016-08-28 01:08:43 +03:00
feos a2b55291b3 tastudio:
- movie end doesn't switch to record mode anymore. fix #586
- recording mode checkbox
- fix rec mode dying during fast rewind
todo:
- readonly hotkey doesn't work until we click the checkbox
- movie status icon doesn't show up if tastudio is autoloaded
2016-08-06 22:28:25 +03:00
feos b0893bdee8 tastudio: stop seeking when movie stops 2016-08-04 18:53:01 +03:00
feos 170681c3ad tastudio: Recording mode
a bit inconsistent with how it switches to record right now
2016-08-03 22:29:27 +03:00
feos 79badbbe63 tastudio: smarter column width 2016-07-27 21:06:13 +03:00
feos 9353b5afb1 tastudio:
- more columns hidden by default (psx)
- optimize width for those whose names are longer than 1 char
2016-07-26 20:46:15 +03:00
feos 7748c2f3a8 tastudio:
- show "fake analog" buttons too (fixes #672)
- stop pausing when loading branches
mainform: moved some tools around in menu
2016-07-26 20:01:46 +03:00
feos b4a9123515 tastudio: fix editing while unpaused + left button held scenario.
now it replicates taseditor:
- editing input while unpaused, if autorestore is off, resumes emulation and ignores seek frame. if you keep holding the LMB, and follow cursor is on, it will keep scrolling, drawing and emulating
- editing input while unpaused, if autoresotre is on, fires autorestore and then just pauses on the seek frame

what's different from taseditor:
- with autorestore and follow cursor on, if you hold the button, and seek frame is below the view, it will keep scrolling down, drawing new input and emulating. taseditor does *not* follow cursor while seeking.

this all doesn't necessarily make sense, but we need people to figure out what is best for work.
2016-07-11 21:39:32 +03:00
feos f23767ae6a tastudio: properly set input while unpaused
replicates taseditor behavior: if autorestore is off, emulation resumes running, otherwise it pauses on it.
todo: fix this during left button held
2016-07-10 22:25:02 +03:00
feos 2d2efba150 tastudio: option to do autorestore not only on mouseup.
doesn't affect rerecord counter
2016-06-13 18:29:29 +03:00
feos af4b3ec752 tastudio: bind autorestore, turboseek and followcursor. 2016-06-13 15:43:28 +03:00
feos 346c4e56b3 tastudio autosave:
- switch to appropriate method for backups
- option to save backup per file save
- menu command to save backup
2016-06-12 16:41:27 +03:00
feos 294654943b tastudio: ignore seek frame if unpaused via hotkey or playback pause button
this replicates taseditor behavior
2016-06-11 17:38:53 +03:00
feos 559eacf95a InputpPompt: allow multiline info
bk2 export for tastudio: stop endlessly appending extensions
tasstudio autosave:
- fix interval init on load
- 0 interval disables autosave
- canceling SaveAs doesn't kill the timer
- ability to append "backup" to filename allows saving to a separate file
-- don't let tasproject switch to the backup file (bit hacky)
2016-06-10 16:05:12 +03:00
feos bc30e87921 tastudio: autosave feature.
supposedly safe saving indication (hourglass cursor and status bar report).
2016-04-24 13:48:49 +03:00
feos 28fe9bb888 tastudio: hide some more columns by default. 2016-04-23 21:42:02 +03:00
feos 7fa99c7d13 tastudio: project savegap (finally!)
ScrollSpeed defaults to taseditor's
2016-04-17 23:29:25 +03:00
feos dc18535b88 tastudio: use VisibleRows instead of SeekingCutoffInterval.
allow SelectedIndexChanged again, just not use it in tasview. can we comment out in designers like that?
2016-04-17 21:02:21 +03:00
feos c9b3dc184a tastudio: fix #515 again. 2016-04-17 12:17:18 +03:00
adelikat d0d5df44c9 Tastudio - create settings sooner, hopefully fixes null reference errors with the splitter controls 2016-02-05 21:57:40 -05:00
feos ec3c862f4a tastudio: account for loading files with "All Files" filter.
todo: input import.
2016-02-05 23:35:57 +03:00
feos 40b8a82034 tastudio:
- don't clear selection on Cut
- don't mindlessly unpause the emulator if autorestore is off and we're editing input via menu
2016-02-05 23:35:56 +03:00
adelikat 0013646db5 Rip out obsolete notion of a WatchList domain, change ram watch menu item to Default Domain, who's functionality is simply to decide the default domain used when adding a new watch, also add some Visual Studio designer shenanigans for a previous commit I made that broke it 2016-01-30 22:17:31 -05:00
adelikat 894a9c2318 Rework ToolHelpers from a static object to ToolFormBase that inherits form and have a lot of tools inherit it, in hopes of moving a lot of copy pasta into a base class, move a few functions that show up a lot there 2016-01-30 20:24:53 -05:00
feos d39aa6433e tastudio: implement SeekingCutoffInterval 2016-01-27 16:18:20 +03:00
feos 1c6a40dec9 tastudio: seek progress bar:
- stop dividing by zero!
- ignore if seeking closer than 2 frames ahead (todo: make cutoff configurable)
2016-01-27 15:44:42 +03:00
feos dc3a133d0b tastudio: fix upward drawing. 2015-12-26 13:17:22 +03:00
feos 2535207a40 tastudio: actually implement seeking progressbar. 2015-12-13 00:00:23 +03:00
feos 2a6a2a7a8a tastudio: properly report saving progress.
also attempt to report seeking progress.
report occurs, but progressbar doesn't show up...
2015-12-10 01:38:06 +03:00
feos ea1368c819 tastudio: display changes in a loaded file too. 2015-12-09 19:58:09 +03:00
feos 8a6ddfbf3f tastudio: actually use initial state from anchored movies.
don't seek to whatever frame such a movie was created from.
2015-12-08 23:38:00 +03:00
feos 72b650d606 tastudio: properly save/load column settings.
wrap MainForm savestate functions that tastudio can now control into IControlMainform.
2015-12-07 20:05:04 +03:00
zeromus 35066b69ef tastudio - fix behaviour of menu by special hacks involving ALT key 2015-12-05 11:32:56 -06:00
feos d8ec9e6878 tastudio: editable HoverInterval for BranchView (stored to TAStudioSettings).
when comparing, we want them to show up instantly.
2015-11-30 23:45:06 +03:00
feos 796a62f883 tastudio: moved branch and marker popups to their controls.
marker add called from MarkerControl doesn't check TasView selection anymore: current frame has higher priority, and if we don't want a marker on it, we use TasView's doubleclic or menu to mark selection.
sight MarkerControl cleanup.
2015-11-25 23:28:46 +03:00