Post subject: Exposing All Attempts Help
Joined: 1/14/2016
Posts: 2
I'm new to things this advanced so if things aren't making sense that's why. I have some questions about scripts, emulators and other stuff to create these unique Tool-assisted videos I've wanted for a long time now. So first allow me to show you a video and if you're still interested maybe you can help answer some questions I have. Here's a video of a tough Super Mario World hack with all attempts shown in real time. What's all this about? This is about a modified snes9x 1.43 emulator that saves a numbered .smv file (.smv.1 etc.) each time a state is loaded. It was initially conceived by RunHello after reading a YouTube comment that complained about actual play-throughs being long and TASes neglecting to show how devilish these "rom hacks" truely are. So, you've got the best of both worlds. A TAS that shows how devilish these "rom hacks" truly are. So how does this work? Taken from RunHello's comment on her blog post.
When exporting a smv file to a movie it runs each smv, and as it does so it: - Renders the video to its own standalone video track, with all background layers removed and replaced with the “transparent” alpha color - Renders the sound to a pile of buffers, which are later mixed down into a single audio track - Monitors the X and Y scroll coordinates for the foreground layer; for the first track it saves to a buffer that stores these coordinates at each moment, on every track after that it uses these coordinates to offset the video in such a way as to to keep all the tracks aligned.
Why don't you just use the emulator that made that video? Because that emulator only runs on Power PC Macs. Well, the emulator that actually exports the smv files to video. There's a Windows version but it only creates the special smv files. This looks dumb and impractical. It probably is to most people but many comments on these videos want to know how to make these kind of videos. How polished the actual run is doesn't matter, as long as you can see all of your failures. Not sure what other uses this form of TAS has, possibly all RNG patterns in a run? It's just enjoyable to watch if you're familiar with hard "rom hacks." So now, if I wanted to make an emulator replicate these videos, can it be done? Can code be written to turn off background layers? Is there an emulator that exports .smv type files to video? If there's anything else I should know before starting this project, feel free. If you're just going to call me dumb or tell me to use a Virtual Machine please save your breath. Know that the original video for this modded emulator back in 2008 is why I started rom hacking to begin with. I tried using a Virtual Machine and ended up wiping my External Hard Drive, I'm at my wits end and I just want some simple answers. Sorry. Original Blog Post
Post subject: Re: Exposing All Attempts Help
Masterjun
He/Him
Site Developer, Expert player (2047)
Joined: 10/12/2010
Posts: 1185
Location: Germany
chanx wrote:
So, you've got the best of both worlds. A TAS that shows how devilish these "rom hacks" truly are.
So first of all: That's not a TAS. It's not even a speedrun at all. It's simply a run that used savestates, but if you want to call it a TAS, it's not what a TAS is supposed to present. But, it's no doubt a cool video (and something I wanted to do a long time ago, too), and in fact, we have something similar that shows the improvement over different TASes. It's not exactly the same as the video you posted, as it just records the audio of a single run, and it doesn't record all the different positions of different sprites (which could be added to the script in theory), but it's good enough for the purpose of showing improvements. Ok, with that out of the way, I'll answer your questions.
chanx wrote:
So now, if I wanted to make an emulator replicate these videos, can it be done?
Yes, it's easy enough to track specific scroll values of backgrounds and use that to create these kinds of movies.
chanx wrote:
Can code be written to turn off background layers?
Yes, since you have access to the core of the emulator, that's easy, too.
chanx wrote:
Is there an emulator that exports .smv type files to video?
.smv files are movie files made by Snes9x, so you can "start an AVI recording" and then play back the movie file.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Joined: 1/14/2016
Posts: 2
Thanks for replying as optimistically as you did, really made my day. I didn't really know what else to call it since all i know about TASes is that they show a run complete run. (Ill assume the level/game must be completed in the fastest time possible?) I posted on the snes9x forums, super mario world central, and I've talked to a couple of bizhawk devs and had no success, so thanks for tolerating this post. I understand there are .bk2 files that essentially do the same thing as .smv files. As I'm not familiar with writing code is this something that could be written in lua or would i have to use the source emulator? What emulator would be the best for this? The extent of what needs to be done is kind of where I'll have to find a work around because exporting to quick time feature for the snes9x Mac OS is primarily the issue behind this emulator being inaccessible. I believe most of the code was actually in the movie export feature for that emulator because she said "the background will turn back on when your video is finished" meaning I couldn't record the playback to avi with everything off and then turn it back on as it would look exactly that way when playing back the .avi I'd probably first have to add in an actual "export smv to avi" and then code what would happen when exporting to avi. Each smv would have its own movie and sound track in the avi file, while playing through all of them it it would compress the sound and turn the background back before spitting out the avi. The only reason this doesnt seem daunting to me is because I should just be able to tell the emulator to do all this avi stuff when clicking "movie playback" right? There's the Mac source code for this smv to video file, as well as saving a smv when loading a state. Could that just be translated to windows and used for what I said above? Thanks again.