Posts for Brandon


1 2
19 20 21
34 35
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I think I figured out the best method: a hybrid of both recording real time presses, and parsing the FM2 when necessary. I have coded this, and it seems to work nicely. I have created a page regarding this kind of TASing, and the page includes a link to the script. Could anyone report back letting me know how it works for them? Perhaps this will spawn some WIPs? :) Edit: I've made this a little more efficient...now, instead of reparsing on every state load, it parses the file once in its entirety, caches the data, and references the frame you are loading to. You can find the updated script where the old one was. The problem is, it seems that without writing to the save states, this will seemingly not work with rerecording. adelikat recommends I try to patch FCEUX. I'm not sure why I'd do that if there's any possibility of just including it in the main code (It does sound like a useful feature), but nonetheless, here'd be the game plan if I was able to do this:
  1. When playing in real-time, count normally.
  2. Upon saving, log the data to the save state. Load this data upon loading.
  3. If a save state is loaded without this data, and it is part of a movie, parse the FM2 for the data and log it. If it is not part of a movie, reset everything.
Until I'm given more information on this, I can't really continue on with this...which means I have time to do other things! Woo! <_< Edit 2: It seems like I'm really thinking about this too hard. After all, considering we already have a tool that calculates button presses, we really just need one that tracks them in real time and that allows rerecording. So, here's the new plan:
  1. When the script is run, if a movie is loaded in read only mode, calculate the initial data. If not, begin everything at 0.
  2. When you save a savestate to a slot, record the data at that point.
  3. When you load a state saved while running, load back the data.
This should be enough to conveniently make a minimal input TAS. There's no reason to over think this. Edit 3: Done. It even works on Snes9x, though it only loads initial data if a fm2 file is loaded. I'm sure there's a way to support other emulators, but I'll leave that up to the people who care enough to modify the code for that feature. :) Edit 4: Expanded the page and proposed a scoring system. I will construct a very sloppy MPTAS of SMB as a proof of concept, and afterwards, I might try to obsolete myself. It'd be really cool if someone continued mugg's work on the MHTAS end.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Nach wrote:
Brandon wrote:
...Again, people are ignoring something very important: SGB is faster than GB. Either VBA improperly emulates SGB to the point that it shouldn't be called SGB, or times recorded on the Game Boy mode are automatically larger than SGB ones, making the records incompatible, which from my understanding is a problem (See Shadow of the Ninja; running the game in the wrong mode made it go faster). Therefore, we need to decide if SGB should still be supported before we decide to change anything about encoding its runs.
If you want to get into timing, each flavor of SGB has different timing, which one would you go with?
Each flavor? I'm not sure what you mean by this.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I'll encode this.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
...Again, people are ignoring something very important: SGB is faster than GB. Either VBA improperly emulates SGB to the point that it shouldn't be called SGB, or times recorded on the Game Boy mode are automatically larger than SGB ones, making the records incompatible, which from my understanding is a problem (See Shadow of the Ninja; running the game in the wrong mode made it go faster). Therefore, we need to decide if SGB should still be supported before we decide to change anything about encoding its runs.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
p4wn3r wrote:
To avoid going through the entire movie file every time you want to check presses, you could try to have a presses counter and increment it as the frames are advanced. The only drawback of this method is that whenever a rerecord happens, your values will no longer be correct. To circumvent this, you could store this information when a savestate is saved and retrieve it when one is loaded Since I don't know a way to put data inside a savestate, a good option would be to create an external file that links the savestate to the amount of presses that occured up to it. Use functions savestate.registersave() and savestate.registerload(). Whenever, a savestate is saved, hash it somehow (frame number, buttons pressed, checksum of a memory range) and store it in this file with the amount of presses. When a savestate is loaded, do the same hash function, look for it in the external file and replace your current data with it, if it's not found, make it go through the movie file again to find it and store it in the external file.
I'd really rather not create external files for this...the more compressed and simplified this is, the better.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Nach wrote:
Brandon wrote:
From my limited understanding, SGB mode isn't emulating like it would on a real SGB, Nach.
SGB mode in VBA isn't 100% accurate to how a real SGB would run.
Brandon wrote:
Did you address this issue about a real SGB being faster than a normal Game Boy game?
Nach wrote:
The game itself is almost the same.
I can't imagine it even comes close to accuracy if it doesn't address this speed issue. From what I've heard, all the mode does is extract the borders and change the colors.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I'm not sure what game I'd actually try with this. My primary concern is attempting to make the tools to make the tracking easy. I tried one where I parsed the FM2 file, but it is SUPER laggy, and will not work while recording. Any ideas?
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
From my limited understanding, SGB mode isn't emulating like it would on a real SGB, Nach. Did you address this issue about a real SGB being faster than a normal Game Boy game?
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I want to try this idea. I think button input and button presses are two different goals, and I think they should be treated as such. People who want to do minimal input TASes can do as such, and people who want to do minimum presses can do that as well, but let's not try to combine the two. I personally want to try minimum input as I think it would provide the most interesting strategies. Before we do this, however, I think we need a solid Lua script that can display the amount of input up to a particular part of a movie. Although I doubt it helps, here's a simple script that merely counts all the input up to a particular point:
Language: lua

local count = 0 while true do local player = 1 while player < 3 do for index, value in pairs(joypad.getdown(player)) do count = count + 1 end player = player + 1 end gui.text(0, 0, count) emu.frameadvance() end
This will not reset when rerecording, which is a problem from my perspective. Ilari suggested parsing the movie file, but that sounds very inefficient in real time. Also, it would be difficult to adapt to all consoles. Does anyone know any alternatives? If you'd like to also make the script count button presses, by all means, that'd be helpful too, but can we agree that a press is counted on button down? It sounds silly to hold down start for the entire game just so it isn't considered a press, especially considering that you'd eventually have to lift your finger in real life.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Lex wrote:
Brandon wrote:
Considering all of these things, I think we should either ban the use of SGB runs altogether, or wait until Snes9x can support the actual Super Game Boy cartridge and create runs on that.
I propose a third option: don't publish runs as "SGB runs", but make nice-looking encodes using VBA's SGB palette extraction (and borders for games where it looks nice). Encodes don't have to be accurate to be nice-looking.
That's certainly an option. I'm not a fan, but it's better than calling these runs SGB when they clearly aren't.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I am an advocate for the banning of SGB runs, on the grounds that in their current state, they emulate a console that does not exist. When I first heard of SGB, I thought "Oh, these folks decided to run their GB game on Snes9x. Weird, but I can see the appeal." I soon learned that this was built into VBA. There are some inherent problems with this:
  • You cannot reproduce anything like what is shown on a Game Boy.
  • It's not really emulating SGB; it's just extracting a border and changing the games colors (Thanks Lex).
  • Calling this SGB implies that this runs like a Super Game Boy. It doesn't:
    • Super Game Boy is an emulator, in the sense that it tries to run a cartridge as if it was another system. Sure, it uses much of the same hardware, but to assume that there aren't any inaccuracies is very hasty.
    • Super Game Boy runs faster than a Game Boy (Thanks itsblah).
Considering all of these things, I think we should either ban the use of SGB runs altogether, or wait until Snes9x can support the actual Super Game Boy cartridge and create runs on that. I'd still think that latter would be a bad idea, as times could be manipulated by abusing emulator glitches, regardless of whether the emulator is official or not. At this phase in the game, disregarding what we do in the future, I think all SGB runs should be converted to GB runs.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I'm planning on doing a run of the Secret Levels. I finished the first level, though I'm betting it's not optimal. You can find it on my TAS repository on Google Code, which you can find on my homepage. Edit: My first run of this came out to be 3:19:37. I bet I can improve it if I put more thought into it, but a lot of other things came about at the same time, so this is far from a priority. See the latest version in my repo. Edit 2: [1845] NES The Bugs Bunny Crazy Castle "Special Levels" by Brandon in 04:15.38. If anyone's wondering what's up with the change of time, I must have miscalculated it earlier. This is actually an improvement of about 15 seconds from my first draft.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Here's mine: http://www.youtube.com/watch?v=X7iZ7ymXFIM I doubt it's going to process better than Dada's at this rate, but still, I'm going to at least wait until the processing bar goes away. In the meantime, does the community prefer the processed run of Dada's, or the stretched one? My video's AR is like the stretched one from what I can tell.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Wak017 wrote:
Great, thanks. I see there are standards that I'm not personally following, but as long as it's not official, yes I still can encode random stuff myself.
Yes, that would be helpful for new submissions. That said, you could / should also learn how to make official encodes in case you want to help out with accepted runs. We can help with that as well.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Archive Torrent HD re-encoding, ETA 14 and a half hours. Will upload immediately after. NitroGenesis, the time is approaching. Will you get it to resolve in HD before me?
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Downloadable encode / 512kb done. HD failed. Will restart when I get home Wednesday. I will upload what I finished at the same time.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Lex wrote:
I don't know what the big deal about that screenshot is. All the Pokémon games have allowed you to fish while surfing.
With rods?
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I think I'll go with the Super Rod screenshot, then. Here it is as an optimized PNG: The earliest I'll be able to put this together is Wednesday. My encodes are running with an ETA of ~30 hours, but I won't be able to upload them until much after.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
Here are some screenshots that stick out to me: Please vote on which one you like the most, or pick a different one. I will optimize the most popular choice and use for publication. Edit: Fixed screenshots. Still not optimized.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
flezki wrote:
NitroGenesis wrote:
No, I'm reuploading it now :p
is the new version online, because last night i watched your old movie up until misty, but now i wanna see the rest of it.
This is the full version. NitroGenesis deleted his YouTube encode of it because he wants to reupload it because doing so might increase the video quality. Lex has provided a downloadable encode you might enjoy, although it does not follow all the guidelines put forth by this site.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I hope this run is improved on. adelikat and I both have this game, and we both have a NESBot, yet the old run desyncs as of right now. That's just sad. :(
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
NitroGenesis wrote:
No, I'm reuploading it now :p
Then my promise stands; get it up in HD by next week, or I will try (And probably fail as well with my luck). Edit: Publication underway. Doing the SD / HD if nitrogenesis doesn't beat me to the punch. Screenshot suggestions welcome in the meantime.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
NitroGenesis wrote:
I uploaded the HD but it failed to process: http://www.youtube.com/watch?v=TCvhf1V__-M
Alright, I'll attempt to encode and get mine to process fully, then. <_<
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
System Error wrote:
Brandon wrote:
I will have fast internet again next Wednesday. If this isn't uploaded by then, I'm encoding this in HD. That's not a threat, NitroGenesis; it's a promise.
Damn it Nitro, do you really want the face of this sure-to-be legendary TAS for the ages to be a horrifying zombie-like screaming guy, and insane man going ballistic? Get your encode going, man!
You jelly.
All the best, Brandon Evans
Brandon
He/Him
Editor, Experienced Forum User, Published Author, Player (190)
Joined: 11/21/2010
Posts: 913
Location: Tennessee
I will have fast internet again next Wednesday. If this isn't uploaded by then, I'm encoding this in HD. That's not a threat, NitroGenesis; it's a promise.
All the best, Brandon Evans
1 2
19 20 21
34 35