Commit Graph

349 Commits

Author SHA1 Message Date
brandman211 a346389c2f -Controller type for GBA.
-Cleanup (adelikat inspired me to always use braces).
2012-12-06 05:19:08 +00:00
zeromus 562eeb18bd give movies the ability to write to any stream; decouple saving of movie from the import process, and make the bulk movie importer use new movie ability to write directly to output instead of copying (sometimes on top of itself in case source .fm2 was already in movie directory); make drag&dropped movies import to oldmovie.fm2.bkm.autoimported.bkm to prevent it from clobbering a legit movie you may have had there already 2012-12-02 20:35:51 +00:00
goyuken 20e7710a5c lua: connect movie_setrerecordcounting()
gba gpu view: display 4bpp tiles in mode 2
2012-11-30 16:43:46 +00:00
adelikat 9ddd3d56a8 C64 - implement Restore key on client side, fixes to the Keyboard virtualpad 2012-11-25 21:49:07 +00:00
goyuken fec546f77a gba: fix cartmem problem i caused that was exposed by recording movies.
inputadapters: finish GBA mnemonic stuff, including power button.  |P|UDLRsSBALR|
mainform: show informative warning when starting recording a GBA movie
2012-11-24 22:14:05 +00:00
adelikat 2254bc7008 Movies - Fix loading of sync depending GB menu items. Sync dependent movie header items now force the emulator settings when the movie is loaded (currently that is 3 gb items, and the coleco skip bios option) 2012-11-22 03:47:18 +00:00
adelikat 7b146707d1 fix movie recording for nes and some other cores 2012-11-22 03:27:34 +00:00
adelikat f26c72df86 Colecohawk - option to skip bios, setting is also saved into movies 2012-11-22 02:01:15 +00:00
goyuken b515b62b3e gba: spend approximately 200 seconds on mnemonic stuff before getting bored 2012-11-20 01:35:28 +00:00
goyuken 93ad387db8 stuff, don't use 2012-11-19 22:43:34 +00:00
adelikat b9c77106f7 C64 - implement rerecording and input display 2012-11-18 22:16:48 +00:00
adelikat 5df1cd532e C64 - implement rerecording/input display for the 2 controllers (no keyboard yet) 2012-11-18 17:43:02 +00:00
adelikat 8e43109a01 ColecoHawk - fix rerecording, fix virtualpads, C64 - start keyboard virtualpad 2012-11-18 15:03:23 +00:00
adelikat da804a4272 ColecoHawk - only 1 L and 1 R button 2012-11-18 02:36:30 +00:00
adelikat 823e84592a Coleco - hook up controller 2 2012-11-17 22:38:32 +00:00
adelikat bb0f409550 NESHawk - support movie recording for disk eject, insert coin 1, 2, FDS disk eject, and FDS Inserting of disks 1-4 2012-11-09 02:41:37 +00:00
adelikat 68cba7d792 Genesis - implement Reset button on client side (not yet hooked up in core) 2012-11-08 04:33:18 +00:00
adelikat 53520540ea NES - Implement ability to record hard resets 2012-11-06 02:32:33 +00:00
phillip.grimsrud 499f049e42 Take out a nonsense if statement that was breaking rewind in Tastudio in some circumstances. 2012-11-03 00:53:46 +00:00
phillip.grimsrud 4727ee72f0 Change the movie RewindToFrame to load the proper state even if the current frame is before the one in the argument. This will now send you to any frame on or before the end of the savestate log. Also change Tastudio to take advantage of this. 2012-11-03 00:20:40 +00:00
zeromus 9062c96ac3 minor tweaks to make tasstudio not run out of memory so extremely. maybe not at all? 2012-11-02 04:56:34 +00:00
adelikat cc4c0ed693 Fix C64 rom loading 2012-11-01 17:06:14 +00:00
adelikat c35310faf8 Movies - when switching from record to play, write movie to disk 2012-10-29 00:40:26 +00:00
adelikat 14d5844af8 Save movie menu item 2012-10-28 22:50:19 +00:00
adelikat 77794dae50 Misc fixes 2012-10-28 01:28:48 +00:00
adelikat 39a54959d0 Atari 7800 - some multiclient todos 2012-10-23 19:13:57 +00:00
brandman211 3b80905514 Added MovieOrigin to .ZMV...I knew I had to have forgotten something unimportant. 2012-10-07 04:58:12 +00:00
goyuken 896e61b908 what 2012-10-06 23:27:40 +00:00
brandman211 d54b6d2f36 -Resets are imported. I don't think they count as frames.
--I think SNESHawk has a problem with processing resets!
-The author is imported. ImportZMV is probably, in effect, complete!
2012-10-06 22:36:50 +00:00
brandman211 9199012b5f Finally figured out ZMV input...wasn't fun at all. Still need to figure out commands (Reset) and author data, but I removed the INTERIM flag check because this is functional enough to be included in the next release. 2012-10-06 20:28:32 +00:00
adelikat 0ca3fc3167 Movies - add PAL flag to movie (if recording in pal mode!) 2012-10-06 17:22:32 +00:00
goyuken 2229b0ab93 add "FirmwareSHA1" to movie header for SGB and PCECD 2012-10-05 21:04:46 +00:00
zeromus a00081386d fix some things related to sgb movies 2012-10-05 18:20:27 +00:00
zeromus 96089026cd remove "SGB" systemid because its gonna cause a lot of trouble if we dont hook it up in a lot of places.. why can't we set it up as just a regular snes core? and run the sgb rom through the snes firmwares directory. 2012-10-05 04:47:45 +00:00
brandman211 515fd82b32 Fixed the savestate size calculation. 2012-10-05 01:10:58 +00:00
brandman211 35bd1539f8 -Added entries for all of the .sha256 records to the header.
-Added support for the following .lsmv records: projectid, port1, port2, starttime.second, starttime.subsecond
2012-10-04 06:50:47 +00:00
brandman211 ae1f987061 -Removed the magic strings from MovieImport.
-Fixed some headers for ImportVBM.
-Treated .VBM SGB movies as GB movies with an extra comment.
-Confirmed that real SGB movies from LSNES import properly.
-Noticed glitchy graphics during SGB movie playback...will investigate.
2012-10-04 06:14:21 +00:00
goyuken b5b164caf3 as far as i know, SGB movie recording is fully functional now. the mnemonic is the same as SNES, the system id is "SGB" 2012-09-30 00:27:00 +00:00
brandman211 14126723c0 -Detecting subframes and delayed resets in ImportLSMV now results in a warning instead of an error.
-ImportLSMV can now import GB(C) movies created with LSNES's gambatte core.
--It doesn't sync perfectly because of the subframes, but it does for a while, so the conversion is sane.
--GB(C) .LSMV files currently always have SRAM files packaged with it, which is a bug with LSNES.
---Ilari told me that a fix for now would be to ignore 0 byte SRAM files, so that's what I did.
---There are some cases in which the spurious SRAM files aren't 0 bytes, but that's on Ilari to fix, so I'll let this case fail. Yay, I contributed to LSNES!
2012-09-27 06:23:05 +00:00
brandman211 eb9f37d6bd -Fixed up warningMsg code for various importers.
-Made what seems to be progress with ImportZMV...still not functioning though.
2012-09-21 09:11:30 +00:00
brandman211 2d0d57f81d -Discovered that the infinite loop in ImportZMV is the result of RLE reading in a huge and impossible frame number.
-Made ImportZMV only work on interim versions. I don't think I will be able to get it done in time for 1.1.0.
2012-09-21 07:33:34 +00:00
adelikat 00b88131be Oops, fix snes movie recording I broke when hooking up hard reset recording! 2012-09-21 00:11:37 +00:00
brandman211 755794baa8 Attempted to handle events, which clearly failed as the program freezes for some reason. The logic seems solid, though...I'll come back to it. 2012-09-19 06:40:16 +00:00
brandman211 4ebca847d0 ImportZMV
-Fixed the controllers used code. The docs had the reserved byte and the controller flags backwards.
-Properly advanced past the savestate bytes. I was reading the wrong size.
2012-09-19 01:52:54 +00:00
brandman211 3d9d8607c3 Handled commands for ImportVMV, making resets translate properly. 2012-09-17 07:22:35 +00:00
brandman211 bdd74e356c -ImportSMV
--Fixed "controller in use" handling.
---Applied the same logic to ImportVBM, refactored ImportVMV to match.
--Prevented more than 2 controllers from crashing the controller types check for 1.51 and up.
-ImportZMV
--Showed warning messages for both mouses if enabled.
--Marked the controllers used just like I mentioned previously, though it seems to show that no controllers are plugged in...
--Went past the savestate data.
2012-09-17 04:16:27 +00:00
adelikat b5b372749d SNES - fix get/set mnemonics from my previous commit on this file 2012-09-17 01:26:05 +00:00
adelikat 32ca8fba61 SNES - hook up power cycle to mnemonics for recording & input display, TAStudio - hook up the power button on virtual pad 2012-09-16 17:39:57 +00:00
goyuken 727e441bb4 change gameboy control "Reset" virtual button to "Power" virtual button
some consoles have both "Reset" and "Power" notions, so this is to be more consistent
i'm not sure that i got all references...
2012-09-16 16:25:54 +00:00
adelikat 5888536ac3 TAStudio - fix an exception caused by an out of bounds check 2012-09-16 16:22:34 +00:00
adelikat 640af8021d Gameboy - capture the Force DMG mode and GBA in CGB flags into movie files, still TODO: set these flags when loading a movie 2012-09-16 15:38:33 +00:00
adelikat 12ea262de9 Movies - if in read+write mode and loading a post-movie savestate, the movie will now correctly go into movie finished mode, rather than stay in recording mode and cause desyncs 2012-09-16 14:57:57 +00:00
adelikat ac6cf7a18d Movies - fix a logical flaw in a case in movie finished mode. While in movie finished mode, a timeline check should still be done (if in read-only mode) before loading a state from a different timeline (even if that savestate is a post-movie savestate). This matches behavior in FCEUX 2.1.6 (all versions of FCEUX and BizHawk until now have this bug) 2012-09-16 14:12:42 +00:00
brandman211 5682f8dbe2 -Added CRC header items for formats that don't store any other reference to the ROM file.
--Added Checksum / GameCode for ImportVBM because those seem more relevant.
-ImportVMV has problems with resets. Not a high priority, but still something worth looking into.
-Parsed the header for ImportZMV. The remainder looks pretty ugly...
2012-09-15 18:46:41 +00:00
goyuken a8fb28f652 finish wiring up reset control for gameboy. i recorded and played back a movie containing a "soft reset", and it worked correctly. 2012-09-15 16:59:21 +00:00
adelikat b4a43c0d44 Hook up autohold-autofire fire pattern to the autofire config 2012-09-15 13:33:04 +00:00
adelikat a075f21af6 Implemented autohold for autofire keys 2012-09-15 13:11:29 +00:00
brandman211 e7b5f57a01 Fixed .SMV >= 1.51 extra ROM info by appropriately shrinking the size of the metadata. 2012-09-15 09:48:13 +00:00
brandman211 dbe985d3b9 -TODOs:
--It doesn't seem like I have to worry about PCECD anymore.
--I also don't think I can validate the CRC32 for .SMV because I don't have the original ROM bytes. This was probably used to compare a ROM loaded by Snes9x with the movie. I added it to the movie header in case a core could utilize it.
--I don't think the "start data" of a .VBM is important. After looking at the docs again, it's clear that it's just another term for either the movie's savestate or SRAM, and that the related note about controller data is just an approximation.
-Added Platforms for Import functions that were missing them.
-Merged the ImportSMV functions all into one; most of the stuff is the same.
-Implemented .SMV 1.51 handling. My Arcade's Revenge run synced and beat the first level!
--This also seems to work for 1.52; 3295S finished Act 2.
--1.53 seems identical as well...3587S syncs all the way through.
-Next comes ImportZMV.
2012-09-15 09:38:20 +00:00
brandman211 feb503c502 -ImportSMV143
--Added platform name.
--Handled input.
---The input seems reasonable, but the frame counts were originally off by 2. Because the docs say "The controller data contains <number_of_frames + 1> frames," I connected the two and discarded the first frame read. I also noticed that Snes9x first accepts input at frame 0 whereas BizHawk does at frame 1, so that makes up for the other frame. I think this is correct.
--Apparently, Snes9x adds garbage bytes to the metadata when you play a movie. The stuff we want, however, is before a NULL character. As such, I refurbished RemoveNull into NullTerminated, which takes a string and returns everything before the first NULL character. Now the author will be displayed properly no matter what.
-Removed an unncessary dependence to Global.Emulator.SystemId in Get/SetControllersAsMnemonic which made it so that importing a movie without loading a game resulted in blank frames.
-ImportVBM now actually appends the frames it parses. Looks pretty good.
--Note that BizHawk cannot currently do anything with the platform (GB, GBC, GBA, SGB), nor are any of the "other" buttons handleable.
2012-09-14 22:15:42 +00:00
andres.delikat faed5ba5f7 1) Autohold and Autohold Clear hotkeys, same functionality as in FCEUX and other emulators (hold the autohold hotkey then press the controller buttons you want held)
2) Ram Poke - fix poking of signed/hex values, set the signed value to the value of the address on load, other misc fixes regarding signed
3) Hex Editor - add Poke to menu/context menu and Ctrl+P hotkey
2012-09-14 21:31:00 +00:00
brandman211 17567b4952 Fixed the author / game name handling. Now all that should be left is the actual input for SMV143. 2012-09-14 17:36:49 +00:00
brandman211 c949276815 -Parsed the gameName from the extra ROM info.
--I think the proper way to obtain this is through the metadata, which I still don't know how to handle.
-Fixed the savestate offset.
-Parsed out the CRC32 of the ROM, though I haven't done anything to validate this, which is probably a good idea.
2012-09-14 01:53:04 +00:00
brandman211 1c4b218289 Progress with ImportSMV143. 2012-09-13 19:33:55 +00:00
brandman211 9da5393ce3 -.LSMV: \r is considered off. Empty lines should be ignored. 2012-09-13 10:26:44 +00:00
brandman211 7f2a18b3af -.LSMV importer.
--Handled authors, gametype, systemid, coreversion, rom.sha256, moviesram.*, savestate, and subtitles.
--Skipped port1, port2, controlsversion, projectid, saveframe, lagcounter, pollcounters, hostmemory, screenshot, sram.*, rrdata, starttime.*, savetime.*, and prefix.
---I don't think any of these are useful for us, at least not at this stage.
---The other *.sha256 files will be useful if / when BS-X, Sufami turbo, and SGB are implemented.
--Handled flags.
---Handled resets.
---Disallowed subframes and delayed resets.
-.LSMV is good enough for now. .SMV and .ZMV coming next.
2012-09-13 10:21:25 +00:00
brandman211 c3fcbc5987 .LSMV importer now handles gamename and rerecords. 2012-09-13 02:45:08 +00:00
adelikat f9bc7fd15e Movies/Paths - add a backup movie path to Paths config and have Movie backups use that path 2012-09-13 00:44:17 +00:00
adelikat 68d79dd991 TAStudio - fix exception when loading states in record mode. Caused by a out of bounds exception on the StateRecords array. This is just a band-aid, tastudio should not be asking for out of bounds information, that needs to be fixed. 2012-09-13 00:17:39 +00:00
adelikat 01dec3762c SNES - fix movie recording! 2012-09-12 23:40:35 +00:00
brandman211 ae4dfbc00e -Imported .LSMV buttons.
--Haven't done anything with the flags because I don't know what they are supposed to do yet.
--Speedy Gonzales v2 doesn't sync after being converted, but I don't think that's my fault.
-Flags and other data will be parsed soon.
2012-09-12 05:59:09 +00:00
brandman211 8a24de458f -Added the SNES formats to the Import dialog.
-Figured out how to get files from the .LSMV archive. Will write the input parser shortly.
2012-09-12 04:11:35 +00:00
brandman211 f11a790e34 -Added ImportLSMV, ImportZMV. Neither do anything substantial yet.
-Added .int to the Rom Files list.
2012-09-10 21:35:56 +00:00
beirich e8de0327d2 Remove the 2 dead gameboy cores 2012-09-09 01:31:30 +00:00
adelikat ead2d186cf SNES - hook up movie playback, probably, needs a frame counter to use it 2012-09-05 02:24:03 +00:00
adelikat f1de424aa3 Fix input display that I broke yesterday. Hook up SNES input display and movie recording (but not playback) 2012-09-05 02:07:30 +00:00
adelikat 632127fe0a NES - don't record lag frame status into movies, it is not necessary for TAStudio anymore 2012-09-03 21:38:11 +00:00
adelikat 80012d29c6 TAStudio - store whether or not a frame was a lag frame along with the state for green zoning, show lag frames in red based on this flag rather than something recorded into the movie file, also fixed a bug I introduced in the last commit 2012-09-03 21:28:10 +00:00
adelikat ac91ed67a6 Movies - refactor & cleanup the MovieLog class 2012-09-03 20:55:05 +00:00
adelikat 6142e2a8f1 Movies - a bit more cleanup 2012-09-03 20:26:51 +00:00
adelikat 1b20175a81 Movies - final round of refactoring, also removed all code relating to the StopOnFrame variable. The fast foraward button on TAStudio now loses some functionality, but the code that did it needed an overhaul 2012-09-03 20:17:57 +00:00
adelikat 8f408737da Movie refactoring - round 2 2012-09-03 19:42:53 +00:00
adelikat 27f4663125 Movies - round 1 of code cleanup (no functional changes) 2012-09-03 15:05:09 +00:00
adelikat 7bc1e88d1d TAStudio - Rewind button - fix logic when movie is finished or inactive 2012-08-28 03:18:53 +00:00
adelikat 7ad3ea9ef5 Movie - clean up some code that has gotten crusty in the frame loop and refactored it, fixed logical errors at the end of a movie regarding playback, rewind, and loadstate. Movies now go correctly into finished or play mode under various circumstances. Removed the stop on frame code because it was breaking things, this will be a regression in functionality in tastudio until it is rethought. 2012-08-25 23:31:54 +00:00
adelikat 5486acbbbc Movies - fix a regression that happened at some point where the movie is not truncated on a loadstate that triggers record mode (instead it would keep the entire movie in the savestate and record over each frame, this would leave garbage data that could lead to potential desyncs) 2012-08-25 22:18:54 +00:00
adelikat 514c3200d7 remove more tastudio instances in movie class, TAStudio - re-hook up double click event 2012-08-18 00:04:12 +00:00
adelikat c9ddbd6d89 TAStudio - implement Cut function, fixes to insert, and delete, minor cleanup of movie object 2012-08-17 23:56:37 +00:00
adelikat 952892b5df TAStudio - implement Truncate Movie 2012-08-17 03:24:33 +00:00
adelikat d7e05ceb32 TAStudio - implement clear frame, pause emulator on TAStudio load 2012-08-17 02:26:47 +00:00
adelikat 9baf1b8f28 TAStudio - implement clone frame feature, and some UI and Movie object cleanup 2012-08-17 02:18:25 +00:00
brandman211 1bedd81666 That optimization for movie length calculation in the PlayMovie dialog now accounts for files with new line characters of all sizes. 2012-07-25 08:01:02 +00:00
brandman211 5ce6050cb4 -As frames and subtitles actually occur more than once, I put them on the top of the big if / else if block for ImportText so that it doesn't have to do unnecessary ToLower() and StartsWith("name") calls.
-Put frames and subtitles into functions because vec\ gives good advice.
2012-07-04 07:34:52 +00:00
brandman211 c06a44c495 ImportText now only allows version 3 for .FM2 files. 2012-07-04 06:41:57 +00:00
brandman211 62e9143fdd -Made the boolean parsing more consistent.
-Subtitle parsing now allows excessive whitespace.
2012-07-03 22:24:24 +00:00
brandman211 1aa8030cf4 ImportText now works case-insensitively and trims whitespace. 2012-07-03 16:47:08 +00:00
brandman211 24a27d543a Fixed the case (should have detected "guid", not "GUID") for parsing the guid, preventing an extra space from showing up in converted FM2 files. 2012-07-03 16:04:17 +00:00
phillip.grimsrud f7fa9f7751 1. Fixed an Atari 2600 mnemonic bug for issue 77. Note that TAStudio is still broken for Atari 2600. 2012-06-30 00:42:42 +00:00
adelikat 4d91471bab Record movie dialog - use filesystem safe name of game when choosing a default name. Fix regression that made default filename not populate in the savefile dialog. 2012-06-25 00:06:07 +00:00
phillip.grimsrud a6ced95e07 1. Fixed tastudio memory leak. This was accomplished by dropping the oldest saved stats after hitting a size limit (1 GB).
2. Changed StopOnEnd to StopOnFrame. This expands the functionality so that you can tell the emulator to run and then stop at a predetermined point.
3. Expanded the functionality of RewindToFrame to handle more cases. Now you can go back or even forward to a frame and it handles the execution and greenzone appropriately.
4. Due to the change in structure some code was changed to check the index of the first and last saved states in the greenzone rather than relying on the size of the saved state list.
5. Changed the list of saved states in the movie log from a list of byte[] to a list of structures (the structure has an int for the index and byte[] for the state).
6. Saved an init state in the movie log. This is used to go back to the beginning if the beginning of the movie is no longer in the list of saved states.
7. Expanded the AddState and SetFrameAt logic in the movie log to account for the fact that the size of the saved state list is now capped.
8. Fixed a bug in the log interpretation for SMS.
9. Fixed a bug in the sms virtual controller, buttons 1 and 2 were hooked to the wrong objects.
10. Fixed the tastudio listview to show lag as pink.
2012-06-18 01:36:38 +00:00