Posts for arkiandruski

1 2
12 13 14
28 29
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Okay, I know this was discussed before, but it's been a while since the movie came out and there has been time for the novelty to wear off (I think this is something that should very much be considered when choosing stars). I think [1812] Wii Mega Man 10 "Mega Man" by diggidoyo in 33:42.37 is one of the best movies I've seen come out of this site in a long time and believe it should be reviewed as a possible star candidate to replace another Megaman run if necessary. This has nothing to do with it being the only Wii run on the site. I would prefer the run it replace would be Megaman and Bass, but I am aware that Megaman 2 is probably the more likely candidate. As much as I love Megaman 2, I think this run is much better and much more entertaining. Part of the reason that the run is more entertaining and flows better than Megaman 2 is the L/R weapon switching which NES Megaman games don't have. This allows for certain strategies that are unfeasable in Megaman 2, such as Rush Coiling up to a Rush Jet and Switching weapons constantly to cause tons of mayhem as the player moves through the level. It beats Megaman and Bass in variety. This is the difference between having a large number of small glitches and TAS only tricks and having a few big game breaking glitches. When the game breaking glitches are there, that's all the player will use (there are quite a few other runs that have this problem). In Megaman and Bass, they use Ice and Lightning to zip. That feels like the entire run. Megaman 10 uses all the weapons about equally, which makes it feel likes he's making more use of what the game has to offer. There's also other things, like the luck manipulation, killing enemies that aren't in his way because he can, and the fact that he used up all of his weapon energy over the course of the final castle, and scrolls through the weapons just to make a point of that. Either way, this is a high level TAS that goes out of it's way to be entertaining and impressive. As for why I would cut Megaman and Bass over Megaman 2, they both use zip glitches for most of the run, but I think Megaman 2 has more charm and surprise in the way the glitches play out.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
RAM Corruption is the only glitch I can't stand at all. I have never found it interesting or entertaining. I'm pretty sure there are people that have tried on other games, though. Usually it involves setting up a situation that the game can't deal with and saving in that messed up state.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
I hope you like people being picky. If you don't, ignore this post. A few small nitpicks. You seem to have the basic gist of the community down pretty well, but some of the specifics are a bit off. The main goal of the site is to have entertaining runs. You kind of touch on that a bit, but I think it could be pushed a little more. Tool assisted runs are meant to entertain and surprise the viewer. It's the philosophy which causes the speed vs. entertainment debate that happens every once in a while. Also, see this category Alternate goals are usually chosen with this idea in mind. When an alternate goal is picked, it's usually because it would be slower, but the goal has entertainment value in itself. The 2 player run of Chip and Dale is faster and thus not a good example. A better one might be Nightmare on Elm Street, where the run is slower, but more players is more entertaining. A list of runs where using more players is actually slower, but the choice was made for entertainment purposes (There may be more). You used Gradius as an example of a no damage run. That's actually not a good example because the nature of the game actually forces you to take no damage (otherwise you die). You should look for a movie where taking damage saves time, but the author decided not to do it (those are becoming increasingly rare). For different characters, I would have used [976] NES Super Mario Bros. 2 "warps, princess only" by adelikat in 08:29.57 as an example. Princess Peach is not the fastest character, but she changes the gameplay significantly, which is why we made a separate category for her. Speaking of Street Fighter II, you say that those runs are as fast as possible. They're not, and intentionally so. A fastest possible would be too repetitive. One category I love (and it can replace one of your other categories) is glitch avoidance runs. If people decide a glitch makes a run too boring, repetitive, or breaks the game too much, runners make another movie that doesn't use that glitch. These often lead to much more interesting runs than fastest possible. Here's a list. (This really needs to be kept track of better) There are others where glitches were found, but the unglitched run is still available on the site. I didn't include those because they were cases where the original author was unaware of said glitches, but they also might count as demonstrations of the concept. The presentation is well put together and would probably turn many people on to the idea of tool assisted speedrunning. I thought the videos were well integrated and it covered many good points. It's kind of sad that the video of Rayas TASing seemed to stop halfway through, though.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
I've had problems when I tried to make movies of this game, too. Every once in a while, it seems you have to watch from the beginning (don't fast forward) and make a savestate while playing the movie to continue properly.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
My post in the previous topic still applies. As for the rest of the run, it starts off strong, but once you get to the meat of it, (the daily exercises) it falls flat. The last picture is enough for a small twitch on the right side of my mouth.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
While the melodies are much easier to hear this time around the run suffers from the same problem as the last one. You can still hear Home on the Range playing in the background. Unless you can play the piano in a way in a way that it meshes with the background music, it will always sound like a random cacophony rather than a set of interesting melodies. However, this also severely limits what you can do to make the process entertaining. For that reason, I am voting "no" because of bad game choice. This is not NES Test or Mario Paint, where the melody you make is your own and there's nothing interfering with that.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
I'd say that in this case expert is the best choice since it does add to entertainment, unlike some other games. Upthorn: my run is on expert.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Awesome! I'm planning on marathoning it once you're done. You might want to ask for a proofer. You mostly do a very good job, but there are times where word choice is off or you say things in ways that may be technically right, but feel awkward to native speakers.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Hey, it's been a while. How is this going?
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
The audio sync in the mp4 seems a bit off. You might want to add delay (maybe about half a second).
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
That was really cool to watch :3. I noticed some inconsistencies though - random -5 frame loss while entering the Chaotic Realm (I checked and the new run was 2 frames faster, it looked like my v2 was loaded earlier or something) and a random +10 -9 gain/loss during the last Castle Corridor to Floating Gardens travel (around the Axe Armor before Creaking Skull). It looked like the video froze?
Ah, looks like I misaligned my sync points and wasn't able to catch it in real time. I checked through, though, and while the numbers are going to be wrong in the short term, they cancel each other out in the long run. The discrepancy gets added to the previous room to cancel it out. I was trying to hit it so the sync point is the first black screen on room transitions.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Make the commentary annotations (they can be turned off).
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
http://www.viddler.com/explore/arkiandruski/videos/3/ I think this at least shows the importance and difficulty of planning in this run. Small changes may lead to large improvements. A loss now could equate to a gain later. When you open menus, when you collect souls, which enemies you kill all has to be planned, and it isn't very straightforward either.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
I'm working on a comparison video. Have it edited. All I have to do now is encode and upload. The run looks great. I kind of miss the Imp, but you have fewer menus and a tighter route. It looks like optimal movement has become much more complicated than it was previously (you notice things when you're going through a movie frame by frame.) After taking a closer look at the submission: Ah, so that's why the ducks were used and also why you were slower in a few rooms, probably. It makes sense now.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
So, I'm almost done with my first official full run video. It's a comparison of the first two runs of Sonic and Knuckles and Sonic 3 that were published to the site, taking into account that the timing in those runs uses game time rather than real time. I have a couple of questions? Should I post them in the topics when I'm done? Also, I'm starting the comparison of the second to the third and I found out that nitsuja's run reaches the first check point a little later in real time than Sprintgod's run. However, that's because he uses Tails to start moving in the level early, meaning he has a head start when the level happens. I could key the movie to when the level starts, but that wouldn't give a good side by side comparison. Should I ignore the cut scene skip and play them side by side (thus showing the frame loss), have the segments both start when the timer starts (thus showing the gain by the timing we're using, but losing the direct side to side comparison), or show the levels properly, but have the frame indicator take game time into account? There's advantages and disadvantages to each.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
I like that you played the game of Monopoly for real to explain what happened. Could you guys reorder your playlist so that episode 1 is first?
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
http://www.mediafire.com/?5cizveg2zb7fqmp I found a solution. Like I said before. It's not elegant, but we can spruce it up a bit and make it shine. I found out a few things while doing this. Functions can't return more than one variable. You can't change global variables within functions. The downside to this script is you have to keep track of which v value you're on. The upside is it's still much easier than trying to do the math yourself (especially with copy paste).
a = Open( "jackicgunstar.avi", "Jackic" ) b = Open("arkiandruskigunstar.avi", "arkiandruski") v = 0 old = a.Trim(0, 787) new = b.Trim(0, 985) final = Format (old, new, v) v1 = v + AddFrameDiff (old, new) old = a.Trim(788, 1685) new = b.Trim(986, 2036) final = final + Format (old, new, v1) v2 = v1 + AddFrameDiff (old, new) old = a.Trim(1686, 2129) new = b.Trim(2037, 2299) final = final + Format (old, new, v2) v3 = v2 + AddFrameDiff (old, new) old = a.Trim(2130, 3054) new = b.Trim(2300, 3354) final = final + Format (old, new, v3) v4 = v3 + AddFrameDiff (old, new) old = a.Trim(3055, 4349) new = b.Trim(3355, 4555) final = final + Format (old, new, v4) v5 = v4 + AddFrameDiff (old, new) old = a.Trim(4350, 7494) new = b.Trim(4556, 7536) final = final + Format (old, new, v5) v6 = v5 + AddFrameDiff (old, new) old = a.Trim(7495, 8590) new = b.Trim(7537, 8508) final = final + Format (old, new, v6) v7 = v6 + AddFrameDiff (old, new) old = a.Trim(8591, 9801) new = b.Trim(8509, 9719) final = final + Format (old, new, v7) return final function addBlankClip(clip a, clip b) { max = Max(a.FrameCount, b.FrameCount) result = (a.FrameCount != max) ? (a + BlankClip(a, length=max- a.FrameCount)).FreezeFrame(a.FrameCount, max - 1, a.FrameCount - 1) : a return result } function FormatTime(int ms) { s = ms / 1000 ms = ms % 1000 m = s / 60 s = s % 60 h = m / 60 m = m % 60 return String(m, "%02.0f") + ":" + String(s, "%02.0f") + "." + String(ms, "%03.0f") } function AddFrameDiff(clip a, clip b) { FrameDiff = (a.FrameCount - b.FrameCount) return FrameDiff } function Open(string FileName, string Title) { AVISource(FileName) AddBorders(2, 20, 2, 20) Subtitle(Title, align=2, text_color=$00FFFFFF) ScriptClip("""Subtitle("Frame: " + String(current_frame) + "\nTime: " + FormatTime(Round(Float(current_frame * 1000) * Float(FrameRateDenominator) / Float(FrameRateNumerator))), text_color=$00FFFFFF, lsp=1, size=10.0)""") ConvertToYV24(matrix="PC.601", chromaresample="point" ) ConvertToYV12(matrix="PC.601", chromaresample="lanczos4") } function Format (clip a, clip b, int FrameDiff) { left = AddBlankClip (a, b) right = AddBlankClip (b, a) AudioDub(StackHorizontal(left, right), MixAudio(left, right, 1.0, 0.0)) Subtitle("Frames gained: " + String(FrameDiff, "%05.0f"), align=2, size=15) }
Comments?
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
EDIT: Nevermind, figured it out. I have a video now. The problem is the FrameDiff variable isn't updating. This is because the entire video is dumped at once, which apparently doesn't give FrameDiff a chance. I'm going to mess around a bit with this code to see if I can't get it to work. It's not going to be pretty. Just telling you, but cleaning is for later. I'd rather have something sloppy that works.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
When I tried to open that code, I got a movie file that's zero frames long. The code looks like it never pulls up the clips or uses the blank clip function.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
I've made a large leap forward! I have video now! http://www.mediafire.com/?7l9q2gso1b84ogx It's still not right, though. There's no audio and it only plays the last section of everything I've written down. Here's the script I used to make this video.
function formatTime(int ms) { s = ms / 1000 ms = ms % 1000 m = s / 60 s = s % 60 h = m / 60 m = m % 60 return String(m,"%02.0f") + ":" + String(s,"%02.0f") + "." + String(ms,"%03.0f") } function addBlankClip(clip a, clip b) { max = Max(a.FrameCount, b.FrameCount) result = (a.FrameCount != max) ? (a + BlankClip(a, length=max- a.FrameCount)).FreezeFrame(a.FrameCount, max - 1, a.FrameCount - 1) : a return result } function showFrameDiff (clip a, clip b){ frameGain = (a.FrameCount - b.FrameCount) FrameDiff = (FrameDiff + frameGain) return FrameDiff } global FrameDiff = 0 a = AVISource("jackicgunstar.avi").AddBorders(2,20,2,20).Subtitle("Jackic", align=2, text_color=$00FFFFFF) b = AVISource("arkiandruskigunstar.avi").AddBorders(2,20,2,20).Subtitle("arkiandruski", align=2, text_color=$00FFFFFF) c = a.ScriptClip("""Subtitle("Frame: " + String(current_frame) + "\nTime: " + formatTime(Round(float(current_frame * 1000) * float(a.FrameRateDenominator) / float(a.FrameRateNumerator))), text_color=$00FFFFFF, lsp=1, size=10.0)""") d = b.ScriptClip("""Subtitle("Frame: " + String(current_frame) + "\nTime: " + formatTime(Round(float(current_frame * 1000) * float(b.FrameRateDenominator) / float(b.FrameRateNumerator))), text_color=$00FFFFFF, lsp=1, size=10.0)""") e = c.trim(0, 787) f = d.trim(0, 985) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) e = c.trim(788, 1685) f = d.trim(986, 2036) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) e = c.trim(1686, 2129) f = d.trim(2037, 2299) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) e = c.trim(2130, 3054) f = d.trim(2300, 3354) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) e = c.trim(3055, 4349) f = d.trim(3355, 4555) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) e = c.trim(4350, 7494) f = d.trim(4556, 7536) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) e = c.trim(7495, 8591) f = d.trim(7537, 8509) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) e = c.trim(8592, 9801) f = d.trim(8510, 9719) g = addBlankClip(e, f) h = addBlankClip(f, e) i = showFrameDiff (e, f) m = StackHorizontal(e, f) n = MixAudio(e, f, 1.0, 0.0) last = AudioDub(m, n) trim(0, 75009) Subtitle("Frames Gained:" + String(FrameDiff, "%05.0f"), align=2, size=15) ConvertToYV24(matrix="PC.601", chromaresample="point") ConvertToYV12(matrix="PC.601", chromaresample="lanczos4") return last
EDIT: I've figured out the audio issue. Now my video has sound! (but not the one I posted)
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Okay, so if I define a global variable outside a function and then change it within a function, the change will be permanent, right? That pastebin link has my new code. Everyone else was using the site, so I figured that was the goto place for these kind of things.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Can anyone tell me where my invalid argument is? I changed FrameDiff to a global variable and I still got that error message. The line being referred to is my subtitle line.
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Thanks. I added it to the page. Does anyone know of any more?
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
Thanks. The version change fixed the problem. I've made a few changes based off the errors that I'm getting, but now I'm getting a new error message that stumps me.(I'm trying to learn the logic of the program. It seems that variables don't persist outside of functions here. Am I correct?) "Avisynth open failure: "Script error:Invalid arguments to function "showFrameDiff" "(C:\Users\filepath.avs, line 61)" http://pastebin.com/fRSHJxqx If anyone can find a more elegant solution, please let me know. What I'm trying to do is write a function that keeps track of frames saved, so all the user of the script has to do is input frame numbers. I'm almost definitely not the best person to do this, but at least I'm willing to try, right?
Experienced Forum User, Published Author, Reviewer, Active player (278)
Joined: 12/14/2006
Posts: 717
AviSynth 2.58
1 2
12 13 14
28 29