phillip.grimsrud
fc0ec832ae
These changes are for TAStudio upgrades. If I've broken other stuff please yell at me.
...
1. Hooked up Fast Forward, Fast Forward to End
2. Made a placeholder for Turbo Fast Forward.
3. Fixed rewind to not stomp on the previous frame with new input.
4. Fixed rewind to stop at the beginning of the movie instead of freaking out.
5. TAStudio now shows data from the most recent frame.
6. CommitFrame is called even if not recording so played back frames also show up in TAStudio.
7. Play mode only stops at the end of the movie if you tell it to. Your emulator normally continues to play with no input after the end of the movie.
8. TAStudio is now updated after a rewind (even though the rewind doesn't play a new frame).
9. Split the tools update into before and after updates.
10. Going into read-only mode adjusts the movie mode.
11. Implemented New, Open, Save, and Save As for TAStudio.
12. Fixed an issue where frames past the end of the log would default to the input from the last frame of the log.
13. Fixed a problem where you couldn't rewind to frame 0.
14. Fixed a scrolling issue in the TAStudio list view.
15. Fixed an issue with the TAStudio virtual NES controller not matching up with the log.
16. Fixed an issue where the NES reset button would get held in when rewinding.
17. Added/Modified a couple of button graphics.
2012-05-28 00:44:27 +00:00
adelikat
75b5ec9223
redo revision 2168, this method also fixes the issue of loading a non-movie state while a movie is loaded, but also doesn't break the parsing of the savestate frame value in CheckTimeLines
2012-04-22 13:38:12 +00:00
adelikat
3bae8da0b6
Adjustment to height settings of osd messages, code clean up in movie.cs
2012-04-16 12:17:25 +00:00
zeromus
35fbe354c1
add threaded display manager to allow heavy OSD/compositing/filtering to happen on another thread. add a lua layer accessible via GDI+ which can be automatically composited and the simplest possible demo of it. add some filtering infrastructure and a hq2x filter set ported to c# but need to work on a minimal selector gui before its usable. separate OSD from RenderPanel so that gdi+ presentation mode now gets full OSD support. the OSD is now a little uglier because its drawn entirely differently and could use some finetuning
2012-04-16 08:18:41 +00:00
rolanmen1
fd6a1a88da
Emulator Won't Crash When User Loads A State That Is Not Embedded To A Movie
2012-04-05 01:42:24 +00:00
andres.delikat
50e357f345
Lua - start work to implement lua.get/setrerecordingcounting functions
2012-03-29 03:09:46 +00:00
adelikat
3bfe716952
Fix drag and drop importing so it doesn't crash during null emulator. Also fixed the movie sram clearing function to not crash on null emulator.
2012-03-03 18:11:07 +00:00
brandman211
79d12b9181
-Refactored NES and PCE button orders.
...
-Realized that FixMnemonic is useless as GetControllersAsMnemonic() + WriteMovie() = Fixed.
-Finished the NES / PCE importers, now without string builders (Thanks zeromus)!
-Converted ImportMMV to this same method.
TODO:
-Decide how's the best way to handle the mnemonic header and implement it. Apparently, anything other than a predefined header and a | is considered as a comment, so I might do something like:
comment Mnemonic format:
[0|UDLRsSBA]
2012-02-19 07:09:24 +00:00
brandman211
213b347779
-Fixed the infinite loop caused by Movie.FixMnemonic. That was dumb.
...
-Removed the FCEUX handling from SubtitleList.AddSubtitle; it didn't work at all, which is good because we no longer support FM2 natively anyway!
-Added MovieImport.AddSubtitle, which parses FM2 subtitles and forwards them to the .TAS movie object.
--For the color, I used 16777215 as it seems the subtitles use decimal instead of hexadecimal...why?
--Even though I used this color, which is definitely the equivalent of FFFFFF (white), the subtitles show up as black. I don't think this has anything to do with the importer, but it's worth looking into.
2012-02-15 19:31:11 +00:00
brandman211
145830d5a4
-Began working on the importer.
...
--Created ImportFile to decide what function to use for each filetype.
---It currently automatically writes to a .TAS file, but that option will eventually only be applied when specified in the GUI, hopefully completely external from this class.
--Made IsValidMovieExtension work.
--Created LoadText to do the majority of the work that both .FM2 and .MC2 need to be done.
--.MC2 seems to work perfectly, not that it was a hard conversion!
--.FM2 seems to convert most headers correct, except for subtitles, which replaces the beginning portions of each subtitle's text with 0 0 120 4294967295. Not sure what that's about, though this sure feels like deja vu...
--I still need to switch around the order of the buttons the frames are added, but I need to find out what way I can do this without reinventing the wheel.
-Added the FixMnemonic function to Movie.cs. It currently does nothing, but my goal is to have it correct the mnemonic for all frames in a movie file based on the position of the characters.
--As of right now, ImportFile uses this.
-MainForm.IsValidMovieExtension only checks whether or not its .TAS or not now.
TODO:
-Fix the FM2 subtitles.
-Shift around the FM2 buttons.
--After completed, test a .FM2 file that should sync and see if it works, with and without FixMnemonic being used.
-Make FixMnemonic actually do something.
-Refactor code? I originally thought it'd be best to treat Movie.LoadText just like any other importer, but I think at this point it might just be best to keep these things completely separate.
-Consider the possibility of working with the binary file importers.
--Yes adelikat, I am somewhat interested, especially considering how useful it would be to have a working .FCM importer so I can compare old runs when TASing. I already was hoping to learn about .VBM and .SMV for my ButtonCount.lua script. By the way, might this be bundled with bizhawk as it is with FCEUX 2.1.6? :)
2012-02-15 06:54:09 +00:00
andres.delikat
fbc365c4d2
Fix loading of post movie savestates (savestates made while in movie finished mode). Complete fix When in read-only. While in read+write it throws a loadstate error. This isn't ideal but at least prevents possible movie corruption.
2011-09-29 01:46:35 +00:00
andres.delikat
6bbab41b0c
PCE - Implement PCECD system id in core and in game info. Also set cancel property of LogWindow winform
2011-09-24 17:05:34 +00:00
andres.delikat
edb40f4087
Movies - fix bug where rerecord count value was getting added as a comment on load
2011-09-24 16:09:40 +00:00
andres.delikat
a827bb7838
Remove a debug oncreen message in movie savestates
2011-09-18 17:10:10 +00:00
andres.delikat
a30a5290ca
clear saveRam when loading a movie. Add movie name to saveram default path generation so that movies do not interfere with users saveram files
2011-09-17 14:23:23 +00:00
andres.delikat
5eba8bc7f3
Movies - fix problem with NES loadstate & timeline checks that caused the Frame value to not parse properly. Also add messages to the catch statement in the event of parse failure.
2011-09-10 02:08:16 +00:00
andres.delikat
45609f4e88
Movies - fixed major bug in rerecording logic. Loadstate was truncating movie input based on global.emulator.frame BEFORE loading that value! Thus loading a state (in record mode) from an event later than the current frame count was truncating the input, then loading the actual savestate. Movie loadstate now truncates based on the state's frame count
2011-09-07 01:18:58 +00:00
andres.delikat
a787fe3c60
Movies - Fix a major logic flaw in the CheckTimeLines() logic. Should compare from 0 - state frame count, not 0 - length of state input log
2011-09-07 00:40:42 +00:00
andres.delikat
984abbb869
Refix bind savestates to movies option
2011-09-05 00:50:50 +00:00
andres.delikat
bf76e1e7e0
Refix recording movies from "Now" so that the StartsFromSavestate flag gets properly stored into the movie file
2011-09-04 19:04:00 +00:00
andres.delikat
a84f881c5c
Movies - Remove UserMovie and change all references to it to Global.MovieSession.Movie, fix error in CheckTime Line logic, read-only savestates should now work
2011-09-03 18:07:30 +00:00
andres.delikat
276c759d88
Fixed Loadstate stream issues, rerecording is now possible again
2011-08-20 19:27:00 +00:00
kylethomson
2243c7dcad
Fixed Multitrack-load crash.
...
Also, read-only can't be toggled while no movie active.
Same for multitrack.
2011-08-17 02:06:50 +00:00
andres.delikat
64e38e83c8
Movie Loadstate - GUID checking in read-only mode + fix a crash bug
2011-07-31 17:35:02 +00:00
andres.delikat
3481943b74
Overhaul movie savestate logic - cleaned up a lot of code, implemented GUID, Future Event, and Timeline checks to read-only situations. Prevented loading of state if an error occurs. Still TODO - GUID checks in read+write mode
2011-07-31 16:41:27 +00:00
andres.delikat
ce3bb25409
Movie object cleanup, movie savestate handling cleanup, save GUID into movie savestates
2011-07-31 01:15:14 +00:00
andres.delikat
60a4ea4426
Refactor movie code - a Loaded property, removed a lot of code that was a work around for this needed feature, movie can not write to disk unless this property is true
2011-07-30 23:59:31 +00:00
andres.delikat
2e68314e01
Movies that start from savestate now supported. Record Movie dialog "Record from Now" option implemented. ResetFrameCounter() added to IEmulator and implemented in all existing cores
2011-07-30 20:49:36 +00:00
zeromus
5580295085
movie input refactoring
2011-07-24 23:14:16 +00:00
andres.delikat
72699b4ad7
another round of refactoring the Movie object
2011-07-17 17:52:39 +00:00
andres.delikat
e6b2c794d4
Refactor the movie object, replacing Getfunctions with public properties, renaming of some functions, removing a duplicate function, other misc things
2011-07-17 14:39:15 +00:00
zeromus
2c683dc90a
dont crash on exit while writing inputlog
2011-07-13 01:45:40 +00:00
andres.delikat
a228e05f38
Lots of little fixups to movie code, disable Disable Message config in Message Config as I won't be implmenting that before release
2011-07-13 01:29:13 +00:00
andres.delikat
29510ddd58
Fix saving of header data from record movie dialog, small fix for inputlog header data
2011-07-06 01:53:15 +00:00
andres.delikat
945577dadd
Movie code clean up - document PreLoadText(), put movie truncation in LoadLogFromSavestateText() since it was rudely removed from what is now CommitFrame()
2011-07-05 23:33:13 +00:00
andres.delikat
68d0ff94eb
Refactor movie writing code. MovieHeader, MovieLog, and SubtitleList all have their own write methods now instead of the Movie object doing all of the work. Conceptually these 3 objects should be autonomous and the Movie object is simply an object that manages a collection of these objects.
2011-07-05 23:16:54 +00:00
andres.delikat
b6bd94242f
Subtitle & Comment editors - clear out old comments & subs before saving the new list
2011-07-04 13:37:51 +00:00
andres.delikat
88f14d07d8
Fixes to comment loading/editing/saving
2011-07-04 13:31:34 +00:00
andres.delikat
a95ffcf2f9
Hooked up comment editor/viewer to play movie and context menu, various tweaks to movie code, more progress implemented comment loading/editing/saving
2011-07-04 02:50:38 +00:00
andres.delikat
384a4a61b6
Start movie comments editor
2011-07-04 01:57:18 +00:00
andres.delikat
f886b65015
Write subtitles to movie files
2011-07-04 00:49:37 +00:00
zeromus
0aa234282e
phase 1 of fixing up controller logic. tell me how terribly ive broken the movie code. might want to fix it before moving on to phase 2 or decide to revert.
2011-06-27 05:31:46 +00:00
andres.delikat
d3f4da39a3
Subtitle viewer implemented for play movie dialog, context menu for edit/viewing subtitles (depending on read only status). Still TODO: save changes when in edit mode
2011-06-26 21:11:12 +00:00
andres.delikat
3a15dd6bb9
Basic subtitle loading and rendering. Still lots of todos but basic functionality now exists
2011-06-26 16:39:48 +00:00
andres.delikat
61e82793e9
Start movie subtitle system
2011-06-26 14:36:41 +00:00
andres.delikat
f5014946db
status strip - pause icon implemented, movie icon put in but hidden and unimplmeented. Dump Error warning icon put in and disabled, needs to be implemented
2011-06-19 20:50:46 +00:00
andres.delikat
c6a5c7e9b6
change references of Global.Game.Name to Global.Game.FileSystemSafeName for situations that use it to build paths
2011-06-18 21:39:53 +00:00
andres.delikat
b95264e9bf
Make movie class handle automatically backing up a movie before the first time it alters it, add flag to MultiClient to toggle the movie backup feature
2011-06-18 19:16:05 +00:00
andres.delikat
67f726eae6
Movie backup function added to movie class, currently only hooked to a context menu item of main form
2011-06-18 18:27:51 +00:00
kylethomson
c228699255
Getting closer.
2011-06-17 02:43:22 +00:00
andres.delikat
9e7510894e
Don't reference usermovie in the movie class
2011-06-17 01:50:51 +00:00
kylethomson
e9942dc101
Multitrack overwrite works. Now to fix playback.
2011-06-16 03:56:40 +00:00
kylethomson
882562c452
Multitrack for PCE done, if my idea works. Now to hook up hotkeys.
2011-06-16 02:29:45 +00:00
kylethomson
a4fe9754c0
Look at where the error is - This is what I need to access.
2011-06-16 01:35:42 +00:00
andres.delikat
f36da18f97
Small fixups to movie & tastudio code
2011-06-12 18:31:42 +00:00
andres.delikat
59173e4e44
Some virtual pad progress, virtual pad dumps input into movie file when recording, currently doesn't feed it to the core though (lol). Virtualpad object set up for a nes controller
2011-06-12 14:42:50 +00:00
andres.delikat
a9c8756bd1
Some work on Movie object and convertSMV started
2011-06-08 00:25:16 +00:00
offspring131313
4ea39c8525
Added a CompareTo function for Movie objects, and created a basic insertion sort for the play movie dialog.
2011-05-24 01:19:42 +00:00
andres.delikat
4a28b282f8
Fix typo that caused loadstate hotkey mapping to display on load config menu item, fix so that movie log loading from savestate doesn't crash if text line is null
2011-05-23 02:15:16 +00:00
andres.delikat
1d0a504704
Remove an erroneous duplicate message in savestate(), remove a debug message in movie
2011-05-23 01:23:32 +00:00
zeromus
1700c22b17
dont crash when movies directory is missing
2011-05-22 17:41:22 +00:00
andres.delikat
f8c1791908
GetMnemonic now looks at the frame count and truncate the movie if it is less than the movie length. Resuming recording now works
2011-05-19 02:15:55 +00:00
andres.delikat
97ef68e64e
Record movie dialog now allows user to type in name of file to record, and will auto fill in directory path if user does not. Play movie now uses the PreLoad function so length calculation is significantly faster
2011-05-18 01:49:20 +00:00
brandman211
6e98bfc978
Created an efficient frame calculation.
2011-05-18 01:24:26 +00:00
andres.delikat
2b41592c9b
Load rerecord count when loading a movie
2011-05-18 00:08:51 +00:00
andres.delikat
5a082bad2f
Save input log into savestates. Also add more informative messages & frame counter for better debugging
2011-05-17 22:44:31 +00:00
andres.delikat
e5af4418da
Movies - CheckTimelines function, disabled until rerecording is smoothed out better
2011-05-17 01:10:04 +00:00
andres.delikat
85e52c3bcb
Some refactoring of savestate + movie code and laid out the logic for how these situations should be handled
2011-05-16 15:38:48 +00:00
andres.delikat
4a549631e5
Movie class - refactor time calculations. Make PCE_NTSC = PCE. Remove any 60.0 or 50.0 const ints in favor of the default case. Made a decision that time should be calculated based on the console framerate not the fps at which bizhawk will emulate. Thus SMS uses a ~60.1 fps
2011-05-16 13:56:22 +00:00
offspring131313
386b26ccbe
Reverted some changes I thought was improving the readability, but was really just breaking the correctly programmed stuff =D
2011-05-16 07:44:03 +00:00
beirich
003a71cb5a
PAL PCE has the same timings as NTSC
2011-05-16 04:07:05 +00:00
offspring131313
644106575e
Refactored Movie folder. Added some functions, merged some functions, and added some comments regarding some questions I have about a few of the functions.
2011-05-16 03:55:17 +00:00
andres.delikat
a91e7007a7
Play Movie - fixes so that .mc2 & .fm2 get the right system ID on load, and fix the rounding of the fractional part of the movie time
2011-05-15 23:25:25 +00:00
andres.delikat
229852d06c
Play movie dialog now shows completion time. It also reads the entire movie in order to determine this. I have stressed tested this yet, it is probably very slow.
2011-05-15 22:59:54 +00:00
andres.delikat
99babf743f
Movie class has a GetSeconds() function that returns the number of seconds based on frames / fps. It is loaded with lots of fps formulas for various consoles.
2011-05-14 12:46:41 +00:00
andres.delikat
3dbf342dbe
Set system ID in input log
2011-05-14 02:34:18 +00:00
andres.delikat
fe0363d80b
Movies - Add all current valid movie file extensions to drag & drop, Hook up movie finished mode to frame loop & frame counter display, clean up some logic regarding the toggling of InputLog and UserMovie
2011-05-13 17:03:05 +00:00
andres.delikat
06f771292f
Play Movie dialog - hook up details list
2011-05-13 00:17:59 +00:00
andres.delikat
890fa7fbe0
Display rerecord count on the frame counter message for now. I will eventually make it its own display option
2011-05-12 22:51:25 +00:00
andres.delikat
f64767d223
oops, didn't check this in
2011-05-12 21:00:52 +00:00
andres.delikat
ca457d4ce3
Implement Play Movie from beginning, add author & rerecord header params to file reading/writing code.
2011-05-12 21:00:04 +00:00
andres.delikat
1813829c5f
More movie code fixes
2011-05-12 17:29:34 +00:00
andres.delikat
ced976a65d
Misc cleanups on movie code
2011-05-12 16:56:30 +00:00
andres.delikat
477999f99d
Fixes to movie code
2011-05-12 01:33:51 +00:00
andres.delikat
7d135a5d62
Lot's of fix ups to the Play Movie dialog and the Movie class. Cleaned up behavior of main form to allow for a user movie and an input log when the user movie is not active. Currently selecting a movie for playback crashes though.
2011-05-11 01:47:28 +00:00
andres.delikat
c09260cc72
Various fixes to play movie dialog & movie class
2011-05-10 00:38:20 +00:00
andres.delikat
3ac209217c
Basic rerecording! Inputlog is now saved into savestates, and input log is replaced by savestates contents if in record mode. Still TODO: lots of logic about proper error/timeline checking & logic
2011-05-08 12:51:39 +00:00
andres.delikat
a91c8ecbd7
Movie class clean up, add movie version to header, save game name and emulator version to header, movie code will load any non-header or input log as a comment, GetFrame does bounds checks, cleaned up todos
2011-05-08 01:00:13 +00:00
beirich
33c300ff7b
good news: movies work! bad news: 1) movies don't work for TI83 yet 2) I broke some NES things, to be fixed in a later commit
2011-05-08 00:06:43 +00:00
beirich
138dfa38ae
Make moving saving not cripplingly slow
2011-03-17 05:30:38 +00:00
andres.delikat
9dc75a17e5
Fix SKROM char size, and checking in some movie playback stuff
2011-03-03 20:01:36 +00:00
andres.delikat
ced8256dc9
Slight playback fix (still broken)
2011-03-03 18:25:06 +00:00
andres.delikat
d7ba739b30
Some fix ups to input recording, and setting up the ability to test recording & playback
2011-02-28 01:26:38 +00:00
andres.delikat
423e9c8783
Add SetControllersAsMnemonic() to IEmulator and implement it in the SMS core. Very crude playback now works.
2011-02-27 22:33:25 +00:00
andres.delikat
1b428b49ae
some more typos
2011-02-26 22:19:46 +00:00
andres.delikat
04b6b2baa0
Fix typo!
2011-02-26 22:08:55 +00:00
andres.delikat
0ed57b443b
Add GetControllerAsMneumonic() to IEmulator that returns a formatted string of controller inputs. Implemented this function in SMS input.cs and hooked up Movie recording.
2011-02-26 21:36:46 +00:00
andres.delikat
c59b9ff6ce
More progress on the movie class, basic movie file writing. Survives round trip testing
2011-02-25 22:26:13 +00:00
andres.delikat
a5dc7e90b3
Checking in some movie class progress. Basic file saving done. Progress on file loading.
2011-02-25 19:49:29 +00:00
andres.delikat
cbdcea1341
Get started on a Movie class
2011-02-24 22:25:53 +00:00