Post subject: Savestate index
Player (71)
Joined: 8/24/2004
Posts: 2562
Location: Sweden
This should go into every emulator topic really. We have been talking back and forth many times about fast forward functions and stuff like that right? How about this: A function that makes savestates with desired ammount of key frames. For example. A person making a TAS could hit a button or something called "Index". Then the emu would play the desired movie. The index function should play the movie from scratch and output a savestate every n frames of desire. I could for instance choose every 60th frame or something to be outputted. Preferrably this should be saved into a single file with indexes and then compressed with 7zip or anything else that is providing enough compression to not have a super-huge file in the end. This allows for much faster fast forwarding. And for ambitious programmers one could perhaps add thumbnail screenshots of those certein frames and add chapters perhaps? I don't think the file sizes should be that big. If one use 7zip with the best compression possible (I don't actually know if this is the best compression program out there, feel free to suggest anything that is better). This feature could be especially good for longer runs, such as Final Fantasy games, Secret of mana, Chrono Trigger, Donkey Kong Country, Super Metroid, Phantasy star, etc. What do you guys think about that? Remember that this is just a thought I have. I'm not really demanding it, but it sure would be a GREAT feature as you can dive right into a movie without having to watch it all from scratch or certein save states etc. It would also be good if you forget to create a savestate and you can just have this batch do it for you. Thanks for taking time to read this! :)
Post subject: Re: Savestate index
Joined: 12/17/2004
Posts: 99
Location: Karlsruhe, Germany
Highness wrote:
What do you guys think about that? Remember that this is just a thought I have. I'm not really demanding it, but it sure would be a GREAT feature as you can dive right into a movie without having to watch it all from scratch or certein save states etc. It would also be good if you forget to create a savestate and you can just have this batch do it for you. [...] Thanks for taking time to read this! :)
Thats a quite nice idea. Page up and Page down could be used for that one ... It could create the index on the fly or pre-calculate it and it could even update the index automatically while tassing ... (and there we are again with JXQs problem, which applies also to here) Most difficult thing is the compression though ... Screenshots is easy, as you can just put the image at the end of the zip file. As GIF and JPEG have headers at the end and zip files have them at the beginning (or vice versa) - I don't remember, but hybrids were possible ... But there is one problem ... I don't have windows so I could only create that functionality for linux (and snes9x as thats what I'm using, but the file could be pretty generic ) ... Are any tas'sers using snes9x / linux? cu Fabian
Player (71)
Joined: 8/24/2004
Posts: 2562
Location: Sweden
I use snes9x under linux. :)
Post subject: Re: Savestate index
Tub
Joined: 6/25/2005
Posts: 1377
I had this idea a while ago as well, it slumbers in my brain along with a lot of other emulation-related ideas I'd really like to implement someday, although it's likely that I never will.. :/ Writing code for the creation of a savestate-index is pretty straightforward, using them intelligently may be more difficult. Fast-Forwarding isn't the main benefit of a keyframe-index - seeking is. To do that right, you'd need a media-player-like scrollbar, maybe even play/pause-buttons, or a gui for the chapter index. I shied away from implementing it because I wouldn't want to implement it 5 times on 5 different emulators (FCEU, snex9x, Gens, VBA, mupen). oh, I use Windows-snes9x under linux with wine. Don't hurt me please, I like GUIs. ;) greetings, Tub
m00
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
I have made 1+(1*2)+0.5 TASes under Linux.. That's 1 SNES, 1 double-SNES, 1 FCEU. For the record, snes9x save-states are already gzip'd, so their size is already a measure of their approximate compressability. 7zip is good, but it has its work cut out for it.