Commit Graph

2273 Commits

Author SHA1 Message Date
brandman211 c4029509fc -Made ImportMMV more functional.
-Seemingly programmed the header handling for ImportFMV correctly.

TODO:
-ImportFMV frame data handling.
2012-02-28 23:11:19 +00:00
brandman211 0b69b4c17c -Ported the documentation for .MMV to ImportMMV in the form of comments. I think this makes things a lot simpler, and adding these comments before coding might be a good approach for future importers. That way, I merely need to understand what needs to be done and fill in the blanks.
-Added RemoveNull to get rid of the null characters in the author and game names for .MMV.
-Formatted the MD5 for .MMV.

TODO:
-Write ImportFMV. I think I understand how these formats work well enough to try this now.
2012-02-28 10:59:16 +00:00
brandman211 97d92887b6 -Refactored some of the stuff that I wrote for ImportText.
-Realized that the the ImportMMV function probably still works, but that Grunt's Sonic run merely desyncs. If I move the second pause button one frame later, it will make it past the title screen.

TODO: Comment / clean / and understand ImportMMV before moving on to ImportFMV.
2012-02-27 18:52:08 +00:00
adelikat 6d9eb41105 Oops, didnt check this file in last time 2012-02-25 16:53:02 +00:00
adelikat ee9f493976 NES - start mapper 80 2012-02-25 03:39:31 +00:00
brandman211 f2a60888ce -Commented / refactored code.
-Fixed the Platform for PCE.
-Added emuOrigin and MovieOrigin to store the original emulation and movie versions in a comment.
2012-02-25 03:04:22 +00:00
zeromus f801d04a46 now remove traces of psx from the current project, so it doesnt confuse any users 2012-02-24 20:45:27 +00:00
zeromus 8b3246a510 continuing cleanup.. sorry, this is like a month's worth of work 2012-02-24 20:42:11 +00:00
zeromus 9de1e4093b forgot to add 2012-02-24 20:40:02 +00:00
zeromus fd6ac896fc general cleanup.. remove a bunch of warnings.. improve log console system a bit.. add new icons for log console window.. remove old demo psx interop system and add new, simpler one, which isnt really tested yet but is way less annoying. 2012-02-24 20:38:35 +00:00
brandman211 e40ca4c18d -ImportFile now has access to errorMsg, which will show a message box and not play the movie when assigned, and warningMsg, which will simply add a message to RenderPanel and move on as usual.
-Made it so that any of the exceptions thrown from the Import* functions get converted into a string and stored in errorMsg. Now I can investigate what's wrong with ImportFCM.
2012-02-24 07:48:06 +00:00
brandman211 5aaa5ccda1 -Set up the ImportFMV function to build my importer off of.
-Realized that there's already a function that decides which SMV function to import with (ImportSMV, duh), so now that's used for it. Outputs a movie with messed up headers except for the Re-record count, which works fine.
-Added format URLs for all of the movie formats except for SMV 1.52, which doesn't seem to have a documentation page yet.
2012-02-24 05:18:59 +00:00
brandman211 91ea63c09e -Made the errorMsg in ImportFile display.
--Moved the command message in ImportText to this.
-Converted ImportVBM to use a MnemonicsGenerator.
--This should work, but I can't test as I still don't know for sure as the import fails and displays "Not a valid VBM platform type."
--I iterated through the buttons using a list and left-shifting. I applied this method to ConvertMMV, which works.

TODO:
-Comment MovieImport.cs.
-Fix the exception that is thrown for Gameboy games.
-Get ImportVBM to actually work, scanning through the input to see if it seems sane.
-Figure out why pressing Pause on GameGear results in a "P" instead of a "p", and whether or not this is a factor in runs syncing.
2012-02-24 04:44:40 +00:00
andres.delikat 56febbf142 TI83 Keypad - implement the 0 button, somehow it was missed 2012-02-21 03:45:25 +00:00
brandman211 a92865a13d -Removed the redundancy from TI-83 as well. The whole revamping is a net loss of 292 lines of code.
--Note that I don't think that the calculator pad simulator is registering when I click 0, and that this doesn't seem to be related to any changes I made.
2012-02-21 00:40:44 +00:00
brandman211 fcd8822a6b -Finished my simplification of InputAdapters for everything but TI-83 (I don't remember how to test it). Saved 183 lines from the last revision, and this number is probably going to grow tremendously after TI-83 is handled.
-Inadvertently fixed the seemingly broken Genesis 3-Button Controller mnemonics...the controllers weren't responding at all before. I guess refactoring and working with simplified code IS worth it. <_<
--That said, this is still really broken:
---Mnemonics don't show up while recording.
---Input goes past the frame length, and it's never labeled finished.
---Doesn't seem to sync at all.
---This exception:
---------------------------
Oh, no, a terrible thing happened!

System.Exception: unhandled opcode at pc=013648
   at BizHawk.Emulation.CPUs.M68000.MC68000.ExecuteCycles(Int32 cycles) in C:\Users\Administrator\Repo\bizhawk\BizHawk.Emulation\CPUs\68000\MC68000.cs:line 147
   at BizHawk.Emulation.Consoles.Sega.Genesis.FrameAdvance(Boolean render) in C:\Users\Administrator\Repo\bizhawk\BizHawk.Emulation\Consoles\Sega\Genesis\Genesis.cs:line 106
   at BizHawk.MultiClient.MainForm.StepRunLoop_Core() in C:\Users\Administrator\Repo\bizhawk\BizHawk.MultiClient\MainForm.cs:line 1676
   at BizHawk.MultiClient.MainForm.ProgramRunLoop() in C:\Users\Administrator\Repo\bizhawk\BizHawk.MultiClient\MainForm.cs:line 346
   at BizHawk.MultiClient.Program.Main(String[] args) in C:\Users\Administrator\Repo\bizhawk\BizHawk.MultiClient\Program.cs:line 47
---------------------------
System.Exception: unhandled opcode at pc=013648

   at BizHawk.Emulation.CPUs.M68000.MC68000.ExecuteCycles(Int32 cycles) in C:\Users\Administrator\Repo\bizhawk\BizHawk.Emulation\CPUs\68000\MC68000.cs:line 147

   at BizHawk.Emulation.Consoles.Sega.Genesis.FrameAdvance(Boolean render) in C:\Users\Administrator\Repo\bizhawk\BizHawk.Emulation\Consoles\Sega\Genesis\Genesis.cs:line 106

   at BizHawk.MultiClient.MainForm.StepRunLoop_Core() in C:\Users\Administrator\Repo\bizhawk\BizHawk.MultiClient\MainForm.cs:line 1676

   at BizHawk.MultiClient.MainForm.ProgramRunLoop() in C:\Users\Administrator\Repo\bizhawk\BizHawk.MultiClient\MainForm.cs:line 346

   at BizHawk.MultiClient.Program.Main(String[] args) in C:\Users\Administrator\Repo\bizhawk\BizHawk.MultiClient\Program.cs:line 47
---------------------------
OK   
---------------------------
--I don't think I broke anything...if anything, I fixed it slightly so that input is at least recognized in some way.
--Question: Is Genesis going to be properly supported by release time? If so, I might hold off a Genesis TAS until this is done. I hate Gens.
-Moved BUTTONS, COMMANDS, and new variable PLAYERS, which indicates how many players are for a given system, to Global.cs.
--If there's a better place for this, please let me know.
--That said, if there are places in the code that refer to the mnemonics of button names of a given system, we should definitely apply these variables for easier modification. Please let me know where these places might be.
-Fixed ImportText(). It now only reads as many controllers as the given system supports.

TODO:
-Merge the TI-83 stuff.
-Mnemonic header.
-Comment!
-Fix the TI-83 mnemonics with the IRCs blessings.
-Port the new mnemonics to the wiki.
-Fix the importers.
--I don't think ImportMMV handles the Pause and Reset commands (Or buttons, I don't even know) covert.
2012-02-20 23:25:26 +00:00
brandman211 1c1b61507d -Genesis, Gameboy mnemonics switched around.
-Made other commands lowercase.
-Added more mnemonics to the table.
-Added a command table. The writing of headers, as currently inconsistent, will probably be done manually, but it will still reference the table for easy modification.

TODO:
-Create a mnemonic header using the tables (Format now seemingly agreed upon is "Mnemonic |UDLRsSBA|").
-Generate button handling using the table, sandwiching this simplified code with the command handlers.
-Fix the TI-83 mnemonics (It has at least two redundancies: 1 and 2).
-Port mnemonics table to wiki page.
-Convert the remainder of the importers, working or not, from the string building method to the mnemonic generating one.
-Start working on more importers!
2012-02-20 05:54:31 +00:00
brandman211 cc4b2c324c -Fixed reset stuff.
--Zanac syncs.
--Applied error messages for invalid flags.
2012-02-19 20:09:42 +00:00
brandman211 791f9624f5 -Changed L to l for lag in NES mnemonics.
-Fixed PCE movie syncage.
-Preparing to revamp InputAdapters.cs with constant mnemonics.
2012-02-19 18:42:06 +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 5534bbd8b5 -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:08:55 +00:00
zeromus 7ea52dfc8d fix bug in mnemonics generator that made it not as versatile as it was meant to be 2012-02-18 20:44:54 +00:00
brandman211 9fb0393b7f -Changed the PCE mnemonics. 2012-02-18 15:49:44 +00:00
brandman211 a6a81bb76a -Subtitles seem to work perfectly now.
-Included System.Globalization in a using statement to be more consistent with the rest of the uses of System.
-Removed trailing whitespace while I was at it. I'm OCD and it deeply bothers me, so I'll remove it on all the files that I commit in the future. Can't imagine anyone would object.
2012-02-16 00:55:07 +00:00
zeromus 80d8b617a5 a little bit of subtitle stuff cleanup, hopefully i didnt break anything 2012-02-15 19:50:25 +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 a45a98f773 MovieImport - implement IsValidMovieExtension() 2012-02-15 01:18:15 +00:00
andres.delikat ff5c9a2799 refactor movie convert into movie import. Currently this breaks movie conversion, as the main convert function now needs implementation 2012-02-15 00:43:21 +00:00
brandman211 a38afd4fb2 -Fixed NES movie mnemonics.
--.FM2 is no longer a valid movie extension, so it is no longer counted as such in IsValidMovieExtension.
-Reused the code from PCE controller setting for NES.
-Seem to support 4 controllers for the NES now.
-General code cleanups.

TODO:
-Input from the 3rd and 4th controllers doesn't seem to be polled properly. Figure out what's wrong here.
-The copypasta from PCE to NES could probably be made into one function. The same could be said about many other portions of this code...DRY.
-Now that the mnemonics are fixed, I will have to write a proper converter for FM2.
--Once this is done, I will try the same for PCE, even if it can currently run natively.
---Once this is done, IsValidMovieExtension might as well be removed in favor of only accepting .TAS files and converting everything else.
2012-02-14 04:28:47 +00:00
andres.delikat 8e241067e6 Lua - hook up savestate library and implement saveslot() and loadslot() methods 2012-02-03 12:18:27 +00:00
kylethomson 363b913e52 2012-01-29 03:32:18 +00:00
kylethomson ca1114311c Kill the lua thread as part of closing. 2012-01-29 03:22:05 +00:00
andres.delikat 5492a9fd19 Lua - gui.text() finished 2012-01-28 23:26:10 +00:00
andres.delikat 064bdbb9a7 Lua - start gui.text() but currently outputs to console window instead of on screen 2012-01-28 22:44:48 +00:00
andres.delikat c7cc0ee203 lua - implement memory.getcurrentmemorydomain(), memory.getmemorydomainlist(), memory.usememorydomain() 2012-01-28 22:30:04 +00:00
andres.delikat 2a86660466 Lua - MainMemory functions 2012-01-28 22:11:39 +00:00
andres.delikat 2e0ac111ab Proper checking if lua is running when doing thread waiting/set 2012-01-28 22:00:51 +00:00
andres.delikat 0082876510 LuaConsole - protect WriteToOutputWindow() and ClearOutputWindow() in case lua console is closed when called. Close the lua object on LuaConsole close (fixes some crashes). 2012-01-28 21:51:01 +00:00
andres.delikat 41708a8579 Lua - move threading code into the frame loops, now emu.frameadvance works per frame not per emulator loop 2012-01-28 21:43:55 +00:00
kylethomson 33ca14a344 Getting closer. Now catches a .NET exception in user code. 2012-01-23 01:10:56 +00:00
andres.delikat 5c2587ecfb Make last commit compile 2012-01-23 00:38:28 +00:00
kylethomson 588eed4474 Try again. 2012-01-23 00:20:23 +00:00
kylethomson a36005e8fc Fixed typo. 2012-01-23 00:18:23 +00:00
andres.delikat 7ac7f335f9 send FromCuePath a default CueBinPref object to make it compile. Todo: feed it a correct value?? 2012-01-22 23:56:49 +00:00
kylethomson 16ec704e41 Added Frameadvance with threading. Can't test, because CueFromPath is broken. 2012-01-22 23:44:53 +00:00
andres.delikat abf0698e43 oops 2012-01-22 23:07:50 +00:00
andres.delikat d4260e22b1 Lua Console - hook up recent lua menu items, and start lua session file loading 2012-01-22 23:03:43 +00:00
andres.delikat defbe971c4 Lua - open/close rom, open tool dialogs, fix memory_readbyte to read from a selected memory domain instead of hardcoded main memory (with main memory as the default), small fix ups to lua console 2012-01-22 22:42:40 +00:00
andres.delikat 78cc4d5cae Lua - started a client library for functions that control the multiclient. Added client.openramwatch() as a proof of concept. 2012-01-22 22:20:09 +00:00