Commit Graph

869 Commits

Author SHA1 Message Date
adelikat e89bb6c276 reorg TasStateManager file 2019-06-15 16:13:16 -05:00
adelikat eaef336492 rip out IStateManager.MountForWriteAccess() and simplify 2019-06-15 16:06:35 -05:00
adelikat c87c1d8328 simplify 2019-06-15 15:51:56 -05:00
adelikat d4432db7f9 simplify 2019-06-15 15:44:34 -05:00
adelikat 2a8b4504cd Simplify 2019-06-15 15:43:22 -05:00
adelikat 7f43fb09af delete an absurd check 2019-06-15 15:29:25 -05:00
adelikat d998a9587f remove a todo 2019-06-15 15:28:10 -05:00
adelikat 21c164abcf simplify Last implementation 2019-06-15 15:22:12 -05:00
adelikat 6004f30d3a rename IStateManager.ClearStateHistory -> Clear, LastStatedFrame -> Last 2019-06-15 15:19:18 -05:00
adelikat 0ab1b1887e IStateManager - remove IDisposable, this isn't a terrible idea, but let's put it back if/when we need it. Remove IDisposable from StateManagerState 2019-06-15 15:15:14 -05:00
adelikat b1296dd9bb rip out NDBDatabase 2019-06-15 15:13:08 -05:00
adelikat ed85ce806b more cleanup 2019-06-15 14:57:26 -05:00
adelikat 81ee00a1b6 cleanup 2019-06-15 14:56:03 -05:00
adelikat e0a51eaab1 Rename IStateManager.StateCount -> IStateManager.Count 2019-06-15 14:49:43 -05:00
adelikat cb4e71ebf7 rename a StateManager method, and delete some unused methods 2019-06-15 14:40:18 -05:00
adelikat 8f116a8428 Pass TasMovie into StateManagerDecay and have it get the last edited frame instead of from IStateManager 2019-06-15 14:35:31 -05:00
adelikat 3c27a332bb create IStateManager interface and use that instead of TasStateManager 2019-06-15 14:31:06 -05:00
adelikat 1bcf6394ed cleanup 2019-06-15 13:27:10 -05:00
adelikat 694ba93ec1 I think this is the correct wasLag logic 2019-06-15 13:10:31 -05:00
adelikat f431492944 better code for populating wasLag, I think 2019-06-15 12:53:17 -05:00
adelikat 3b9e54c250 refactor TasLagLog to allow for gaps in the history. Note that this is a breaking .tasproj format change currently 2019-06-15 12:11:52 -05:00
James Groom 067477ce18
Merge branch 'master' into clean_docs 2019-06-14 13:28:39 +00:00
feos 2423f44540 tastudio: drop laglog from branches since they don't have greenzone anymore 2019-06-13 19:39:52 +03:00
feos bc990061b7 tastudio: refactor out a variable
fix autorestore triggering while drawing on future frames
2019-06-12 22:34:16 +03:00
feos f5bcdc4aba fix #1513
OSD info on branch hover is mandatory, so I'm not removing it. drawing the branch OSD-framebuffer on the emulator screen is barely possible without butchering everything, so I'm not doing it. instead, keep both core and client framebuffers and use them where they make sense: osd FB shows up on hover, core FB goes to emulator screen on branch load.
2019-06-09 20:34:14 +03:00
YoshiRulz 2642ef4049
Remove empty docs 2019-06-06 16:41:10 +10:00
alyosha-tas 1c9182a290 Fix exception when statrting from saveram multple times 2019-04-21 09:06:16 -04:00
vadosnaprimer 7915ec8bc1 tsm decay: try to work around some more removal bugs 2019-04-18 19:11:45 +03:00
James Groom 779975f689
Use nameof 2019-03-28 14:17:14 +11:00
YoshiRulz 9d0ee22885
Use string interpolation 2019-03-20 15:01:12 +10:00
alyosha-tas 2bddf3663e TAStudio: Fix some bugs in new from menues 2019-01-19 13:30:42 -06:00
alyosha-tas 74d20ca45c SubNEShawk: Add VBL Count to BK2 movie header 2019-01-12 13:27:00 -06:00
feos 56e77f4907 tastudio: allow to actually unbind markers from input, and unbind by default 2019-01-05 21:48:40 +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 b316efb922 cute, I forgot to save the actual changes 2018-12-03 21:16:06 +03:00
feos 3a688d543b tastudio: fix rec mode dying when appending movie frames
close #1376
2018-12-03 21:10:14 +03:00
layland34 edab819d6b
fix typo 2018-11-25 14:54:55 +01:00
adelikat 288baf568d Revert "here's how I think input display should work. also fixes your bug. also breaks something that had this comment (maybe)"
This reverts commit d4a48a8ee1.
2018-11-18 10:43:11 -06:00
alyosha-tas 6dbbc9256a Movie Importer: Display Failure Message 2018-11-10 17:23:45 -06:00
Asnivor acebf2621c Manual reversion of PR #1277 2018-09-21 15:38:52 +01:00
Asnivor 2565f49c89
Merge branch 'AmstradCPC' into master 2018-09-19 14:56:41 +01:00
zeromus ba4b32f619 rename TempFileCleaner to TempFileManager; add global path config for temp files
I did this in a funny way (sets the environment for the process).
The idea is that any code which sloppily used Path.GetTempDirectory (etc.) would now have its pathing changed.
It is a little dangerous to allow this to be changed on the fly (I do allow it) since something may expect it to be stable, but I think it's OK.
So anyway. keep your eyes peeled for problems. It's possible I could do this differently and only affect a subset of safely managed things.

should fix #1252
2018-09-11 21:32:50 -04:00
zeromus d4a48a8ee1 here's how I think input display should work. also fixes your bug. also breaks something that had this comment (maybe)
// adelikat: TODO: this is likely the source of frame 0 TAStudio bugs, I think the intent is to check if the movie is 0 length?
2018-09-10 16:57:10 -04:00
feos fbdea8282d add missing zxs mnemonics
tastudio: properly handle Show X menu items
2018-09-10 20:22:41 +03:00
Asnivor f436e25426 Fix movie header SystemID (#1277)
From ticket #1246

Small change to MovieConversionExtensions.PopulateWithDefaultHeaderValues()

Just changes SystemID to "GG" or "SG" if Global.Emulator .IsGameGear or IsSG1000 is true.

Without this, the play movie dialog shows 'Platform' as SMS for game gear and SG1000 movies (and highlights this in RED as it is incorrect).
2018-08-22 20:51:20 +03:00
feos a365284383 tastudio states decay: fix logic for last edited frame 2018-08-22 20:05:33 +03:00
Asnivor a471206d6a ZXHawk: Added bk2 mnemonic constants 2018-08-13 09:12:38 +01:00
Asnivor 531833c7b0 CPCHawk: Initial project outline (may or may not come to something eventually) 2018-07-03 14:53:09 +01:00
feos a0e5e0e593 tastudio: actually don't drop state above last edited frame 2018-05-10 20:32:44 +03:00
feos 056c24e4cf tastudio: attempt to fix greenzone decay failing to drop states 2018-05-09 17:18:21 +03:00
Asnivor a679a8a7f2 ZXHawk: platformrates - more accuratey 2018-05-08 22:01:10 +01:00
Asnivor f79e2853c0 ZXHawk: Added to PlatformFrameRates.cs 2018-05-08 21:57:19 +01:00
adelikat ca0ae3d971 Make the bk2 SetControllersAsMnemonic implementation less bad. Fixes #1181 2018-04-28 09:48:24 -05:00
feos ae6ce00d7c I've heard bad things about ElementAt() 2018-03-27 19:01:17 +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 3932e5a025 tsm decay: fix failing to delete frames if marker is there
markers can be *not* mod _step
2018-03-11 13:49:40 +03:00
feos 244530ffe3 tastudio: thanks for this 4 years old off-by-one
these kinds of errors are haunting me lately!

actually useful info about what it fixes: greenzone not being created after you insert right on current frame
2018-03-10 18:01:08 +03:00
feos 9c0328859d tastudio: fix disgusting copy-paste error causing exceptions out of nowhere 2018-03-10 18:01:08 +03:00
feos 9d95a520f9 tastudio: fix analog values getting stuck in input port for new frames
interestingly, MovieControllerAdapter.LatchSticky() is only used by tastudio, so this shouldn't cause problems
2018-03-08 21:15:18 +03:00
feos d89677c729 tastudio: fix #913 2018-03-08 14:59:05 +03:00
feos f81f41f6f7 tastudio: fix #916 2018-03-08 14:44:09 +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
feos 0fe703c9b7 tsm: redo the algo from scratch, probably not last time 2018-02-27 01:28:24 +03:00
feos 13a49b00d0 tsm: improving the algo 2018-02-26 01:45:44 +03:00
feos 7ae374df01 tastudio: fuck this 2018-02-21 02:06:25 +03:00
alyosha-tas 96fb867f9f PSX movie import: Fix copy-paste error
Partial Fix, buttons still don't line up but getting closer.
2018-02-11 10:03:57 -05:00
TASeditor 36900b15d4 tastudio lua: setinput functions, onbranch callbacks (#1098) 2018-02-10 14:58:46 +03:00
zeromus b3b41fb75f fix movie backup saving path (was affected by PWD) 2018-01-21 14:17:14 -06:00
vadosnaprimer 1809d19ecb smart state gap for greenzone. fix #915
disable disk capacity setting
2017-11-05 22:34:58 +03:00
vadosnaprimer e99ea11cf7 tastudio: why don't we update input every new frame we capture
everybody loves tiny off by one errors that completely break everything
2017-11-05 16:23:26 +03:00
feos 94170687a4 tastudio: always assign branch's laglog when it's loaded
fixes failure to color greenzone if a branch without input diff was loaded (and some other weird conditions were met)
2017-10-07 23:07:15 +03:00
alyosha-tas 1e30ae0242 Update moives to remove EMU7800 2017-08-25 09:43:56 -04:00
alyosha-tas ebc7958a68 Update Movies to remove EMU7800 2017-08-25 09:42:39 -04:00
alyosha-tas 3889955eab Update Bk2MnemonicConstants.cs
Add BW (black/white <-> color switch) to mnemonics
2017-07-29 19:20:32 -04:00
adelikat a105f29d04 PC-FX - mnemonics 2017-07-13 16:31:55 -05:00
adelikat 9cb44cad03 Fix some filenames from previous renames, and more attribute renames 2017-07-12 14:48:27 -05:00
adelikat c6e0e9fa57 Rename CoreAttributes to CoreAttribute as to not be a bad person 2017-07-12 14:10:55 -05:00
adelikat 2396ebeb82 use GLobal.Game to determine 32x flag 2017-07-09 12:27:13 -05:00
adelikat 4b2dfa97f8 asdf 2017-07-09 12:08:10 -05:00
nattthebear dd7389f848 PicoDrive: Add core query whether 32X hardware is currently active. Remove code that assumed that the emulator would always activate 32X hardware when _32xPreinit was true, or that it would never activate 32X hardware when _32xPreinit was false. Both assumptions are false. 2017-07-09 12:14:27 -04:00
adelikat a7766fc4ee capture game gear flag in movies 2017-07-09 11:11:33 -05:00
adelikat bbe9db2c62 Capture 32x flag in movies 2017-07-09 10:56:18 -05:00
adelikat 9a5ae16c7d remove the 32bit gpgx, and refactor things to only use the 64 bit version. keep 64bit stuff in a gpgx64 folder to avoid git auto-rename detection shenanigans 2017-07-09 09:21:03 -05:00
adelikat f5cb35a862 Atari 2600 - vritual pad and mnemonics for paddles 2017-06-28 14:27:15 -05:00
adelikat 4ce583b141 Movie import - import smv's with snes9x sync settings but lsmv as bsnes, dont' set profile of bsnes. Set the core toggle based on which movie being imported (this could be annoying but so can a movie load exception) 2017-06-12 20:56:32 -05:00
adelikat 20ccb66318 Mnemonics - Hack to support 10+ controllers 2017-06-11 12:04:02 -05:00
adelikat b39c2dccf0 NGP - mnemonic for Option button, Virtualpad support 2017-06-06 11:07:16 -05:00
adelikat 4ae0b2cd22 Merge branch 'master' into waterbox2
Conflicts:
	BizHawk.Client.EmuHawk/MainForm.Events.cs
	BizHawk.Client.EmuHawk/MainForm.cs
2017-06-04 18:18:11 -05:00
adelikat 617bc16079 C64 - FIx mnemonics for previous and next disk buttons 2017-06-04 11:27:36 -05:00
adelikat 9e1b00fd58 VBoii - display text, and platform frame rate 2017-05-30 17:42:23 -05:00
adelikat 1a54ff1818 Merge branch 'master' into waterbox2 2017-05-30 17:31:30 -05:00
adelikat c0542c1301 VB - mnemonics 2017-05-29 16:39:04 -05:00
feos 2e519eda05 tastudio: fix marker copies being recorded to history when branch backup is created 2017-05-29 21:20:46 +03:00
feos c1ee1d9505 tastudio: fix stupid bug in SetBoolStates() 2017-05-29 20:20:46 +03:00
adelikat 8de4e7bff9 add ui to switch to Atari7800Hawk, still not useable by humans, needs gamedb stuff 2017-05-27 08:56:25 -05:00
adelikat 43cb50d5c3 Misc cleanups in Client.Common 2017-05-19 13:17:07 -05:00
adelikat e0e5eaea44 Movie Session - fix logic with remembering mGBA vs VBA, also some other misc cleanups and add some documentation 2017-05-19 08:36:52 -05:00
adelikat 70baf9d306 Client.Common cleanups 2017-05-18 11:36:38 -05:00
adelikat 85f78b358d IMovie - remove the unused GetInputLog() property and also from implementing classes. I guess savestate code that was using it got refactored at some point making it unused. 2017-05-17 13:26:14 -05:00
adelikat cf15eb8950 TasStateManager - deciding upon a "fix" to the probable bug. This is technically different behavior than before but the intended behavior? This might break stuff 2017-05-17 13:20:57 -05:00
adelikat 2a54517b52 more misc Client.Common cleanups 2017-05-17 13:18:26 -05:00
adelikat e930dd3326 some bk2 code cleanup 2017-05-17 11:53:42 -05:00
adelikat dfea029fe4 Misc cleanups in Client.Common, documentation fixes 2017-05-17 11:16:55 -05:00
adelikat 22e2df3868 Point out a probable bug 2017-05-10 14:26:21 -05:00
adelikat 29d470a933 Cleanup tasproj related code. This includes C#6ism (feos has 2015 now). Added some todos for some sketch code 2017-05-10 14:19:46 -05:00
adelikat adc60dc6fb more LINQ pet peeves 2017-05-10 13:43:41 -05:00
adelikat 3860cf89c3 LINQ-fu 2017-05-10 13:40:18 -05:00
adelikat 429b066955 Client.Common - remove various redundant codez 2017-05-10 13:37:04 -05:00
adelikat f942a409d7 Client.Common - remove a bunch of unused usings 2017-05-10 13:27:10 -05:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
adelikat e0985465b6 misc Client.Common code cleanups 2017-05-09 13:19:55 -05:00
adelikat eafa39456f Genesis - there's a couple more buttons on the menacer 2017-05-07 18:05:09 -05:00
adelikat cb24ed1d22 some mnemonics for colecovision peripheral buttons 2017-05-06 19:08:57 -05:00
adelikat ded1c2d7b7 Break off BoardName from IEmulator into a separate IBoardInfo service 2017-04-30 21:01:54 -05:00
adelikat 26d8166c0e mnemonic for SNES multitap toggle button 2017-04-30 12:30:43 -05:00
adelikat 5a408f9321 Remove the obsolete BinaryStateLoader.HasLump() 2017-04-24 13:18:45 -05:00
adelikat 1184e8ed05 lua - implement tastudio.getselection(), tastudio.insertframes(), tastudio.deleteframes() 2017-04-22 20:50:03 -05:00
adelikat 3889703bf9 snes - mnemonics for payload controller, meh 2017-04-22 12:41:35 -05:00
adelikat 99d70a1c7f SNES - super scope support 2017-04-20 19:50:58 -05:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
adelikat b6f335e4c8 misc code cleanups in BizHawk.Client.Common 2017-04-14 14:59:01 -05:00
adelikat 37c989c661 more misc code cleanups, with some C#6isms 2017-04-10 11:24:53 -05:00
adelikat fc59710dab some code cleanup, mostly introducing C#6isms, also add a customized resharper+stylecop settings file in case anyone is using resharper 2017-04-10 10:30:05 -05:00
feos a9cda4a21f tastudio: dynamically resize usertext column 2017-03-15 21:46:46 +03:00
feos 6e99227c72 tastudio: Clone() for branches. fixes UserText cancellation
also cancel backup and osd message if text edit was canceled
2017-03-15 19:17:47 +03:00
feos d254ad01d8 tastudio: add branch undo feature
the fact that it's separated from changelog is because there's no way to extend the latter, but *also* it's intended, as we want branches to be independent from changelog manipulations

todo: figure out branch text edits
2017-03-14 22:49:55 +03:00
feos 114274ac4d tastudio: latch autohold state for every manual movie length extension
finally fixes #534
2017-03-12 19:43:23 +03:00
feos 64665f0e82 tastudio: use LatchSticky() when adding new frames
fixes autohold behavior, making it operate like it did before banning user input latch in replay mode
now in replay mode all input is ignored except for autohold, which is set via tastudio gui
2017-03-12 17:28:54 +03:00
feos a30b89039f more topmost modal dialogs 2017-03-12 14:50:24 +03:00
zeromus 5488eadb89 work on #816 2017-03-08 15:57:00 -06:00
adelikat 61e8b51802 Intellivision - mark the core as released, add alyosha as an author, and add the framerate entry to PlatformFrameRates 2017-02-18 15:01:09 -06:00
feos ac2a69e7dd gpgx: switch to real interlaced mode when needed (still 60fps)
window resizes by itself if no maintain aspect ratio is forced

todo: states have broken graphics in that mode, but that's likely the original core thing
2017-02-18 23:34:44 +03:00
feos f1a617b047 tastudio: stop latching input in playback mode if new frames are generated
addresses #801
2017-02-18 20:54:59 +03:00
zeromus 539cdc29f3 add SetPlayback to tastudio lua library. Can't be 100% sure it works, but it seems to be working OK. it may hang everything up if you seek through a really long redzone..... 2017-02-04 21:40:29 -06:00
feos 36f53116b1 tastudio: quit pretending -1 is a legit branchHash
seems to fix #785
2017-01-29 10:24:11 +03:00
feos b7ed072c4c tastudio: only load branch markers if they are bound to input 2017-01-19 20:49:18 +03:00
feos 06b14d654b tastudio: move greenzone writing/loading to the very end
hopefully if it crashes during greenzone saving, other components won't die
2017-01-19 14:52:31 +03:00
adelikat 2d9213c379 IController - Remove the indexer property and refactor code accordingly, also simplify and cleanup many of the IController implementations 2016-12-14 14:12:16 -06:00
adelikat 72a59087b5 Use the IController indexing property less in preparation for removing it from the interface. Replaced with its more explicity counter-part .IsPressed() 2016-12-14 12:42:15 -06:00
adelikat 5ff33e7569 Rename IController.Type to IController.Definition to more clearly describe the property 2016-12-12 12:30:32 -06:00
adelikat b7e616482d Intellivision - movie mnemonics and virtual pads 2016-12-06 20:16:22 -06:00
feos d3b6364db0 bk2 log generator:
- pick actually neutral analog values for empty entry
- properly hide all neutral values from input display
2016-11-26 17:41:00 +03:00
feos 3b2781c571 movie: add Disc Select, Open and Close to the dictionaries 2016-11-26 16:39:21 +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 a413f524c9 remember that not every platform has analog controls 2016-11-19 21:21:07 +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 edf21b8bfe fix tastudio crashes when:
- setting 0 space for disk states
- righclicking on selection if a bunch of selected frames contains the last frame
- cutting the last frame
2016-11-17 20:05:41 +03:00
adelikat 0959d5f0df When importing SNES .lsmv movies, add an extra input frame, fixes #721 2016-11-12 11:01:26 -06:00
adelikat 82c1c11879 Atari 7800 - add the word Toggle to the difficulty swithc buttons to make them more clear in functionality 2016-11-11 15:03:34 -06:00