1 2
5 6 7
15 16
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Interesting approach. I used to use paging initially since i was also manually adding rows to my control (listview vs. gridview). Once I went to virtual lists though, I could populate the entire movie's dataset in one shot very very quickly. Gotta tell you though, I never thought of actually using the System.Windows.Forms.Clipboard to copy/paste ... nice :P
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Now that ZSNES 1.50 has been released, do you think it's worth adding ZMV support? Also, should less prevalent formats be supported? (ie. VirtuaNES, Nestopia, FinalBurn ..etc). Other than just tightening the existing routines and adding the stuff Randil keeps reminding me I've forgotten (=P), any ideas what direction this application could take to make it more useful?
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Maximus wrote:
Now that ZSNES 1.50 has been released, do you think it's worth adding ZMV support?
I'd be interested to see if you can do it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Nach wrote:
Maximus wrote:
Now that ZSNES 1.50 has been released, do you think it's worth adding ZMV support?
I'd be interested to see if you can do it.
I love a challenge ;) I haven't taken a look at the code yet for zsnes, but it seems that the ZMV format is the most robust movie format yet. Assuming the new snes9x doesn't contain a whole slew of sexy features, more and more movies might start being done as ZMVs and if I can provide a more intuitive interface for chapter management, I think it'll make the editor more useful. I've got to play around with ZSNES more though as I can't seem to get recording to work without causing the application to crash :( EDIT: Turns out if you have a save dir defined but it doesn't exist, trying to record will cause an unhandled exception. PM'd Nach.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Maximus wrote:
I love a challenge ;) I haven't taken a look at the code yet for zsnes, but it seems that the ZMV format is the most robust movie format yet.
Thanks :) I spent a while working the format, and still have a bit of work to do on it.
Maximus wrote:
I've got to play around with ZSNES more though as I can't seem to get recording to work without causing the application to crash :(
Details?
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Maximus wrote:
EDIT: Turns out if you have a save dir defined but it doesn't exist, trying to record will cause an unhandled exception. PM'd Nach.
Thanks, knew I missed some error checking somewhere.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Nach, way to comment your code :) zmovie.c is easier to read than the DaVinci Code :)
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Maximus wrote:
Nach, way to comment your code :) zmovie.c is easier to read than the DaVinci Code :)
I thought I seriously under commented that >_> Much of it was a rush job. If you want to see commented code, look at src/jma/jma.cpp
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Very nice :) I'm sure I'll have a lot of questions once I get started (have promised to get mupen support up and running first) so brace yourself for a barrage of mostly stupid questions that I could probably answer myself through code analysis (but I'm lazy). Until then though, merry christmas :)
ventuz
He/Him
Player (123)
Joined: 10/4/2004
Posts: 940
I somehow made a GB game Im working on froze up on final boss guy. Then I backed up the movie labeling it "buggy movie" (that one containing from power-on to end of final boss).. then went back to certain area and *I think* fixed something that I *think* causing final boss freezing up the game. I didn't want to re-do final boss guy again, I tried do this. 1. Open "buggy movie" 2. Copy entire frames during final boss 3. Open fixed movie 4. Paste "selection?" It didn't do what I wanted. I tried another way... 1. Open "buggy" movie" 2. Select frames from begin to upto right before final boss fight (it's over 50000 frames if that helps you figure out what's wrong) 3. right click, choose "remove frames" It crash, I wanted to splice these 2 movie together to be completed movie.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
ventuz wrote:
It crash, I wanted to splice these 2 movie together to be completed movie.
There appears to be a serious bug in the editor when dealing with large numbers of buffered frames (or a large movie for that matter). If you do something as mundane as open a large movie and scroll to the bottom too quickly, it'll crash :P I'm currently rewriting all core functionality, since I didn't really plan this as well as I thought. I've currently removed my dependence on the System.Collections.ArrayList (shows how lazy I was at the beginning) and am replacing with a more strongly typed array (tested on erokky's FFIV run, I can copy the whole thing to memory instantly, and paste as many times as I like, and the refresh is instantaneous). SMV/VBM/FCM/FMV/GMV have all also been rewritten with a better planned base class and the copy-pasting algorithm has been completely overhauled. I'm hoping to have a release out before the new year (got some time off work and I'm sick right now, so what else am I gonna do :P). If you could however send me the "buggy movie" VBM, the VBM containing the updated information, as well as instructions on exactly what it is you need to do, I can use it as the test case for VisualBoyAdvance :) EDIT: Also, could you send me a screenshot of the crash?
Joined: 2/20/2006
Posts: 14
This is an excellent tool, I just wanted to say I would like to see support for ZSNES and Nestopia formats as they (imo) are the best emulators for their platforms.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Kal-El wrote:
This is an excellent tool, I just wanted to say I would like to see support for ZSNES and Nestopia formats as they (imo) are the best emulators for their platforms.
Thanks :) I'm still hoping to support all input-recording formats (eventually). I haven't had a chance to look too deeply into the ZMV format, but i'll likely start once I've got M64 up and running (initial support already implemented). There hasn't been a lot of demand for other formats (Nestopia, VirtuaNES, FinalBurnAlpha), but they'll make it in eventually (for consistency sake).
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Big news today. I pretty much rewrote a good chunk of the core logic to eliminate my reliance on .NET's ArrayLists. Sure dynamic arrays are convenient, but I was having some serious memory management issues. As a result, the application is now a lot more stable, and can perform frame manipulations a hell of a lot faster. I even managed to squeeze in a couple new features :) (as an added bonus, splicing and pasting won't crash anymore ... fingers crossed) The issues and workarounds that have been in place for the last couple versions are no more. You can now safely save/load buffered data, paste as many times as you like without having to re-copy/re-load a block and even edit individual player tracks of a movie (there are checkboxes next to each input field for that). Grab the new version at http://sourceforge.net/projects/tas-editor/ Merry Christmas and Happy New Year to all :)
v0-9

-  UI::Removed WorkingFrame (Frame number above edit button). This was a throwback to the days
       when the app still used paging.
-  UI::Selected block remains visible when the listview loses focus (when the editing 
       controls are clicked)
-  UI::Selection no longer clears following an update (so you can re-edit the same block without 
       re-selecting it)
-  UI::Added checkboxes next to controller edit field so individual controller tracks
       can be updated during a group edit (as opposed to everything for all tracks being replicated)      
-  UI::Replacing the System.Collections.ArrayList dependance has solved a bug that forced
       me to clear the copy buffer after each paste (if I didn't, the app would crash). This means
       that you can paste the same buffer block as many times as you'd like.
       This also addresses the memory deallocation issue that was occuring randomly when accessing
       data in the FrameData list (I may never know wtf was up with that)      
-  UI::Completely rewrote add / remove frame(s) routines
-  UI::Fixed a bug that caused the application to crash if a large block of frames was removed
       (basically, the virtual list was still trying to access elements that were out of range)
-  UI::Autofire update option enabled (Options -> Auto-Fire Updated). Checking this only updates
       alternating frames. (May prove useful to some).   
-  UI::Find Input enabled (This allows you to search for the first instance of an input pattern
       in the current movie. Searching begins from either the currently selected frame, or from zero.
       Note that this is beta, so search patterns must conform to the order input is displayed)           
- SMV::Completely rewrote format handler code
- FCM::Completely rewrote format handler code
- FMV::Completely rewrote format handler code
- GMV::Completely rewrote format handler code
- GMV::XYZ-Mode input on 6 button controllers now writes to file
- VBM::Completely rewrote format handler code
- M64::Completely rewrote format handler code (still only header though, no input)
- ETC::Completely rewrote splicing logic 
ventuz
He/Him
Player (123)
Joined: 10/4/2004
Posts: 940
Sweet. An update, unfortunately "remove frames" still crash for me. I'll PM you a GMV, a direction to reproduce crash, and an instruction on what I wanted to do to the GMV... It's a repeating action for 57 times. EDIT: Guys, there's issue with pasting frames, it does not paste "after", these method are temporary fix. To paste at last frame: ABCDEF 1. duplicate the last frame (copy and paste) - ABCDEFF 2. then paste ON last frame - ABCDEFF 3. remove the duplicated frame at the end - ABCDEF...F To paste in middle of frames: If your pasting target is "after 700", then just paste at 701
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
ah, ArguementOutOfRangeException, we meet again :P Ventuz found a bug, which I'll address shortly. I'm likely going to release a fix (0.9.1) in the coming days.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Nothing really to report yet, but I have fixed up the errors I said I would. I was going to release a fix, but adelikat gave me a really good idea for handling the splicer. Drag-and-drop functionality, and no more being limited to only two movies. It's not 100% done yet, but just figured I'd show everyone I'm still working on this ;)
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Maximus wrote:
I see the fields are edited below. Why won't make them editable right where they are?
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
moozooh wrote:
I see the fields are edited below. Why won't make them editable right where they are?
It's a ListView, not a GridView, so it's not directly editable (without subclassing the control). Since this is the first generation of the new feature, I just want to make sure it works ;) After that, I'll see if i can improve the interface.
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Maximus wrote:
Since this is the first generation of the new feature, I just want to make sure it works ;) After that, I'll see if i can improve the interface.
I look forward to that, since editing text/numeric values right where they are is arguably the most ergonomic solution for any interface. Also, I know that it would only be possible on the later stages of the program development, but it'd be neat to be able to freely and conveniently switch the data representation schemes, kinda like audio sequencers do (to be able to swith from the standard edit view to splice view to, say, this to something else without browsing the dropdown menu or interrupting the work at all).
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
FODA's idea just keeps coming back :P I like the idea, though (in my editor at least) it likely won't be appearing for a while. Zefiris' has input displayed horizontally (audio sequencer-esque). Since he's done a pretty good job of it, unless people really dislike the way i'm handling input (not input editing, i know that sucks right now) i'm not likely to change it (for the moment at least).
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
Ok. I managed to actually crank out the new splicer in about 3 hours, so I figured I'll release an update.
v0-9-1

-  UI::Fixed a bug where autoFire updates wouldn't set alternating frames properly (oops)
-  UI::Fixed a bug where removing frames would throw an ArguementOutOfRangeException
-  UI::Added elipses to the Open/SaveAs menu options to denote that they make a dialog call
-  UI::Sorted formats alphabetically in Open/SaveAs filter dropdown
-  UI::Added message if input pattern not found
-  UI::Double-buffered listviews (probably should have done that from the start :P)
       - scrolling through the input list doesn't "flash" anymore
-  UI::Edit text fields weren't clearing after a file was closed (oops)
- ETC::Re-wrote splicing logic and interface
- M64::Fixed movie start flag read (was interpreting wrong byte pair)
Mostly bugfixes, but I think the new splicer is pretty sexy :) Just drag and drop files from explorer to the list, edit the ranges for each movie, and hit splice.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Maximus wrote:
-  UI::Double-buffered listviews
Good. :)
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
creaothceann wrote:
Maximus wrote:
-  UI::Double-buffered listviews
Good. :)
About f***ing time eh? :P I finally broke down and started writing a manual for this. Next version should come bundled with a brand spanking new chm file to describe how to ues this bad boy :)
ventuz
He/Him
Player (123)
Joined: 10/4/2004
Posts: 940
Good update, but I still see 2 or 3 more bugs still in there. You haven't read my PM?
1 2
5 6 7
15 16