Commit Graph

245 Commits

Author SHA1 Message Date
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
brandman211 646a6c1c58 -Fixed my GetMnemonic crash fix. It's "Null Controller", not "NULL Controller".
-Made it so that each new search zeroes out the change count.
--This prevents all non-zero items from starting out with 1 change.
--A similar fix needs to be applied to Ram Watch (Filing issue...).
-Allowed changing data size, endian, and unaligned address setting in the middle of the search and maintaining valid values, fixing Issue 72 (The last open Ram Search issue until my "Difference" idea is hopefully accepted).
--Unlike my previous model, this does not align unaligned addresses; all it does is change the size / endian and PeekAddress.
--It does remove unaligned addresses, however, if you have it set to.
--This version converts System Bus instantly whereas the previous version stopped responding.
2012-06-10 04:32:25 +00:00
brandman211 f716caeae5 Temporary fix for the ROM loading crash issue. Will report if it crashes again. 2012-06-09 02:24:19 +00:00
phillip.grimsrud cb4c45eb70 1. Upgraded insert and delete functions in tastudio to support multiple selection.
2. Fixed issues with the light blue current frame pointer in tastudio
3. Removed a totally useless index that was being kept seperately in the movie log.
4. Moved the tastudio update after the check to see if the rest of the saved state list is valid.
5. Changed some function/variable names related to the movie log for clarity.
2012-06-07 04:47:54 +00:00
phillip.grimsrud c7db5fd543 1. Fixed an issue that prevented going into the movie finished state properly.
2. Relegated a memory leak to tastudio.
2012-06-03 04:04:13 +00:00