Posts for Blazephlozard


1 2 3 4 5 6 7
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Yeah, changing the author to "KiwiCracker & Blazephlozard" works for that. And for the movie file being updated, a Judge will do that when they take it on.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
The most interesting optimization I did was here: "5-2: 5 frame delay added on 5-1's exit. 1 frame delay to avoid a Pin. 5-3: 3 frame delay added on 5-2's exit." Originally this was a 4 frame delay, then a 9 frame delay, because the Pin was in the 5th column for 5-3. Changing to a 5 frame delay kept the pin rightmost column for 5-2, but changed the later pins to not kill the eater (requiring 1 frame of dodge), ending up changing 5-3's starting column to be further left and only need a 3 frame delay. So it went from 13 total delay to 9. Yay...
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
3-1, 3-2, 3-4: No delays. Had delays before, but needed no delays now with the new pin positions, no manip needed. 3-3: Kept its 2 frame delay for Eater position manipulation (doubtful that could be reduced to 1 frame with the pin). 3-5: 2 frame delay added on 3-4's exit added due to poor pin positions. Multiple Level 4 stages got re-arranged to work but should come out to the same result. And of course 5-1, 5-2, and 5-3 had massive improvements at the start. Well, actually, I believe you already had the Pin killing him in 5-1. (He's too fast in stage 4 and 5 to save time with the pin) 5-2: 5 frame delay added on 5-1's exit. 1 frame delay to avoid a Pin. 5-3: 3 frame delay added on 5-2's exit. 5-4: 1 frame delay added on 5-3's exit. 5-5: A couple 1 frame delays for surviving the eater, less than what was there before. 6-1: 1 frame delay at end of 5-5 so the Eater DOESN'T die in 6-1. 6-4: 3 frame delay at end of 6-3 for pins, but that's nothing compared to the delays that got removed around it. Great natural luck in 6-2 removed a 10ish frame wait by having the eater die. A couple delays in 6-3 were removed as well. And 6-5 still went cleanly! 17274 input end, 291 frames saved http://tasvideos.org/userfiles/info/64124218616919857 All the delays are quite small now, I'm very happy with how much better the RNG was, even without specifically manipulating it!
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Sorry for the long writeup but there's a reason I'm trying to write my thought process / order of operations ;) I considered the possibility of reducing vertical jumps, to save that 1 frame they incur. I think that's only really possible on Level 1 and 4, where you have freedom to do any path you choose. Level 1 and 4 contain zero wait frames, and never retread on a square twice, so they are done in the minimum number of moves already. Since your spawn square has to be bounced back to, I'm not sure there's a way to step on every square only once using less than 10 up/down movements, which is what this run does. So that seems great. I made a Lua script that marks the 12/13 frames after an input as lag. This helped immensely in finding the spots where there was an input delay for manipulation/survival. https://pastebin.com/ipUXAYzr I found 23 such spots, a lot of which being waiting for the eater's first move in the 10 stages of Level 2 and 5. From the looks of it, the eater does not actually have any luck involved? It seems to me more like he chases you in a logical way that will always be consistent if your position and his are the same. Also, his time to start moving seems fixed, so the starts in Levels 2 and 5 probably don't have anywhere to improve. Any delays to manipulate his movement after he wakes up could possibly be shorter, if done earlier in the level. But I was more interested in any delays that were due to the Pin, because THAT is definitely RNG. Once a level starts, I'm guessing the sequence of the columns it spawns in is fixed, unless the Pin is interrupted (like by hitting the eater). But, you can delay exiting a previous level to change what columns the Pin is in the next level. Probably a simple frame-timer RNG, not affected by the player's input, if I had to guess. Going with what wasn't going to desync anything first, I noticed a Pin delay in the final level, 6-5, and removed it, then delayed the last jump of 6-4 by one frame. This did successfully make the Pin miss me, and luckily the Eater cooperated. I saved 5 frames! Not being too afraid of the idea of resyncing, I restarted from the first pin delay in 2-2, delaying my 2-1 exit just 1 frame to eliminate the 2-2 delay. That ran into a bit of trouble in 2-3, but in the process of trying to fix it, accidentally discovered a far far faster idea: Manipulating the Pin to be in the rightmost column in Levels 2 and 5, to kill the Eater before he wakes up! When waiting at the end of a level, every 2 frames you wait moves the Pin's starting column leftward once, which is nice since it means a maximum of only 12 or so frames to wait. This can potentially be reduced if you can manage to spawn the Pin an extra time during the level (by manipulating the Eater to die). I did this in 2-4, in order to resync 2-5 faster than I could have by waiting. I have to go to bed right now but I'm currently 148 frames ahead starting Level 3. Frame 5769 is where I stopped. Will work on the rest tomorrow and I encourage you to check it out as well! Pin manipulation to kill the Eater has potential to reduce other Eater waits too I'd bet! http://tasvideos.org/userfiles/info/64114279732085918
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Right now my main thought is maybe jumping temporarily into row 5 during the long waits at the start in levels 2 and 5. But I dont know how manipulatable the eater's initial delay will be.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Watch out, you'll get yourself typecast as the "bouncy ball games" guy. You can begin on Level 3 by holding the Select button before starting, but I would guess that is considered a level select password of sorts. I'll look into trying to save any frames, but at a cursory glance, it looks very optimized.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Is there a reason to specifically use the central hole? Aside from wanting the topmost hole close enough to reach at high speed, it's probably best to go for the holes with the most potential piece orders. Of course, we don't know which that is. But it seems like holes that allow I's to do triple-tetrises might be better than only J's and L's.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Ok, wow, very impressive, and makes a lot of sense... So, you did verify all these are actually possible at Level 18 speed to build? (Some only with Pausing probably.) And a R+0 has to go with L+1, and vice versa. I see... Evidently it's extremely convenient for the +1 to be on the final I piece in this hole setup. I'll try and get something going some time soon, my life is very odd at the moment... For now this is a Lua script that can cheat a piece sequence by pressing Space (hold it down, then frame advance, for the input to be read). the sequence has to be manually edited in the .lua https://pastebin.com/serTG9NV By the way, I'm not really down with the "obsolete the playaround" part, it's a bit odd to combine the two goals for one, and also playaround TASes in general don't feel like something that should be obsoleted. They are, often literally, art.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Ah, that's interesting, that because of the shift in the fourth row's gap, an I block is now a valid choice for doing a triple-tetris. Does the top block actually end up left over? Normally any blocks off the top cease to exist once the piece is placed, but I could see this triple-tetris being a special case. Sounds like you have a good handle of the data we need. I'm definitely happy to double-check that data (try to come up with missing ones) and run the brute force part. Actually putting the blocks in will be annoying, maybe I'll try to Lua something up for that as well, since it sounds like Ac automated his block placing.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
I've got a basic RNG and piece-picking simulator coded. (Basically just the code from that website) Was debating on what format I want the piece sequences table to be in. Although it will make more more total patterns, a "left side / right side in order" approach seems the easiest to actually write down, as opposed to a parent-child system. I do want a 'minimum frames' value for each piece too, which complicates it a bit. I think I'll keep those in a separate table to aid in actually writing the tables. The final piece requires both left and right side to be done, so right now I'm thinking something like:
seq[6][1] = { {I, O, O, I, I}, {L, Z, Z, T}, {J} }
frm[6][1] = { {x, x, x, x, x}, {x, x, x, x}, {x} }
Unless there's a better idea. (I, O, Z, T, etc. will be constants for either a piece ID number or just the string equivalent) Frame lengths will be easier to get if I make a Lua that can forcibly give you a certain piece (using keyboard keys for which piece you want) rather than manipulating RNG for the needed pieces. I want those timings to be as accurate as possible to prevent false positives. The best way actually would be, to allow this program to watch the spawn count var, and actually give you a specific sequence of pieces. That'll make it very easy to test specific sequences. Oh, I should also mention, please keep in mind that the faster soft drop strats will reduce the points gained from soft drops, since you have to hold Down to get those. But it looks like the current TAS gets 12k points extra so that should be fine. This will be getting the same total number of Tetrises, right?
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Zinfidel wrote:
YouTube: https://youtu.be/UzizERBQezQ Other Encodes: https://mega.nz/folder/SdxRHJBK#xX85j0bJQ4mOvU61QVzzLA
I would probably let the credits linger for a bit (possibly for a whole music loop, if it's a short song) if I was encoding it :)
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Who is this "Mario" in the notes? Do you mean Boy?
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
It would be nice to get access to those lists of "left side" and "right side" valid piece orders as a base. I wonder how many more could be found. I was thinking of a more complex parent-child system that could account for all the possible variations in piece order through code rather than listing each one. Like, in this, the O goes on top of I, then O and T go on top of that O. poss[1] = { { I, null }, {O, {1}}, {O, {2}}, {T, {2}}, {J, null}, {T, null}, etc
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
I'd want to make a Lua script that can tell you the earliest possible frame for the "next" piece you get to be each of the possibilities. The easiest way I can think of making that is to just test pausing/unpausing x number of frames and seeing what the next piece is by hand. But to do it only 1 piece at time probably isn't good enough for a work of this scale. When it comes to building these triple-tetris setups as fast as possible, it would be better to make a full on simulation of the RNG, and... have a list of all usable piece sequences? And it can spit out which should take the least RNG manipulation frames? Though it'd have to account for the minimum time it takes to place a piece. I don't think I'd want to manually try to RNG manip for usable sequences, but if a script like this could happen, it could greatly ease the process. This page should help immensely with getting an RNG simulation going: https://meatfighter.com/nintendotetrisai/#Picking_Tetriminos I'm not sure just how long a list of valid piece orders would be though (especially since, with your chessboard build, if i'm understanding it right, each of the 10 different spots we could place our hole on the fourth row would be a totally different set of usable piece orders).
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
I was indeed able to save 1 frame on Level 1, while also losing 1800 points. In order to gain those points back, I consulted... the manual! In the half-pipes, you can do a Flip by moving to the edge of the halfpipe while holding B. It's worth 200 points and affects your speed the same as a jump! And the 300 point jump can be done while going down stairs, so I included a few of those during the Park stage where possible. And maxed out the city/beach with a couple more jumps as well. With all that, I managed to preserve that 1 frame save with only 15 points to spare. Wow. http://tasvideos.org/userfiles/info/63914441365673626
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
feos wrote:
Blazephlozard wrote:
If the credits play regardless of place, 1st place could be considered a full completion
Based on what criterion?
Hmm, looking at the full completion section in the rules, none. So I take it back. A trophy pixel art instead of a medal necklace pixel art is not really anything. So it's fortunate that getting 1st place shortens the text anyway, since it's a nice goal. I just tested editing the score (the individual digits are at 04D4). Having less than 5000 points (the qualifying total) significantly increases the text after a level. For the ending, 3rd place is also slower than 1st place, just like 2nd. Also looking at this explains why a slightly lower score still got 1st place; there's an unshown 250 point bonus added after the time bonus. Edit: Thinking about it more, the longer sub-5000 text is probably why my Level 1 low jump run didnt save any frames. I'm going to try reducing the jumps in Level 1 while staying over 5000 points, and if that saves a frame or two, see if I can make up the points lost.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Right now I'm testing just trying an odds and evens approach: 13579B, 2468AC. This will fill the queue as quickly as possible, and guarantee a bomb will get crumbled within 12 attempts if there is one on screen, and keep my sanity by not fiddling around with random garbage. The game's crashing very frequently, possibly always, if I input end with the queue at 240+ full. So there may be a decent upper limit here. Still playing around with it. There is one issue though, Pad 11 and 12's inputs get used at that very moment to the LIFO if there isn't currently a bomb being crumbled, so the queue ends up with none of them in that case. Right now, I patched that by just starting a new bomb crumble before I start my spam, as well as having a bomb ready to crumble on B/C during the spam, so I'd have some Bs and Cs deeper in the queue still. Less, but enough to survive. I did get good Sign Guy luck and a successful input end 89 frames faster (9709). Queue started at 235, ended at 33 left. Will keep playing around for the next few hours. edit: 9678, 244 start, 57 end 9636, 238, 46 9567, 239, 24 9538, 240, 5 9532, 245, 7 9525, 244, 9 9522, 249, 9 9513, 240, 30 (wow, lucky) 9512, 242, 14 9509, 245, 22 9501, 245, 7 (this one took a while) 9500, 243, 0 (I wanted a round number) 9499, 242, 3 (but then I remembered the movie length is actually one frame after input end so I forced one more out) There could be a bit more frames squeezed out still probably, but the RNG is getting very tight, plus this RNG has an egg spawn after the last bomb, so, entertainment B) http://tasvideos.org/userfiles/info/63849490957770407
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Hmm, nice find. Quite wasteful for them to be putting 0-15 into a byte, I was expecting that to be more compressed! With this array going up to 0x413, and obviously them never expecting to have this much of a queue, those crashes I've experienced must be related to this. Well, with this knowledge it definitely feels more possible to carefully plan out the ending and having much more of the 255 queued inputs actually be used to pop a bomb. Although, with RNG changing so easily from the slightest adjustment of input, it might be difficult to plan so far ahead. It's an interesting challenge.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Ah, yes, 0043 is looking very useful. Though I have NO clue how the game knows WHAT is queued (I was looking in RAM for some huge area growing in size and didn't see anything). But yeah, this can overflow back to 0 like I suspected. What I have now gets it to 239, and ends at 7 left. My spam input right now is actually overflowing it multiple times; perhaps I should go back to your original input, get as many bombs on screen as possible, and get 0043 neatly to 255, and it could result in a faster input end through trial and error for the spam. So I'll try a bit here tonight to improve it more. Thank you for that knowledge.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Well, I may as well continue looking at every short NES TAS that shows up... It definitely feels like there's potential to save here, since timelossless RNG manipulation using controller inputs has SO many options. The limiting factor in levels 2 through 5 is mostly the time it takes the last fox to go off screen. But the timings of the foxes can be modified by which is planting a bomb, as well as by stepping on bombs while another is being placed (which freezes a bomb-placing fox in place until the crumble is over). With 210 bombs though, I don't want to look into trying to improve a level's end, just to have the rest desync. The input end for level 6 is another beast, however. There's something odd going on with this game and having a tendency to execute inputs WAAAAY after you've done them. (Which actually greatly annoyed me trying to possibly save time in earlier levels with different RNG manip.) It seems to me that, during the animation of either a fox placing a bomb or a bomb being crumbled, inputs are very slow to update, and your bomb crumble attempts get queued in some way, which can be abused by TAS having 12 appendages. I kept pushing the input end back further and further, adding more and more random garbage inputs with the hopes of my meaningful bomb-crushing input getting delayed, and it just kept working. The foxes are coming so fast in Level 6 that it can be like there's never a break from the animations, so the queue stays full. In the end, I decided to basically generate "white noise" inputs using Lua, and just see if they'd succeed. Sometimes they'd hit an egg, or a bomb would blow up, or the Sign Holder would come in and make me run out of inputs too soon, or the foxes would just plant bombs too slowly. I got a few crashes too... When I had a seemingly very effective white noise input, I shaved a few more frames off it by testing deleting random frames of it, most failing but some still succeeding. Here's an 813 frame faster input end: User movie #63826368958758434 Also the very barebones white noise lua (but hey, it works): https://pastebin.com/f79LyNvZ I have no doubt more frames could be squeezed out of it, but perhaps not many; if I add more inputs to this, it seems like the queue might overflow or something and empty out. So it'd probably have to be faster bomb placing RNG. I couldn't find anything in RAM that looked related to this 'queue', knowing more about it could help a lot if you wanted to try to save more. edit: spikestuff encoded it Link to video
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Hmm, I'll still include Baxter. I did recreate his work after all. The exact pieces used aren't really as relevant as the shape they end up creating. But it did take a lot of planning to theorize the different ways to remake that shape and see which the RNG would allow, so I suppose main author is ok... Sorry for taking control of your movie here, but you seem fine with it, but sorry anyway :P
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
Sorry for the long delay, my mind got melted from my attempts a week ago and I blew it off til today. I really do not like this kind of Tetris RNG manipulating, it feels so gross to have to wait frames to get an exact piece, like there's gotta be a better way... Newer games would have a random bag, and I like Tengen's fixed piece order too, makes it more of a puzzle to fit what you're given. Luckily today I was able to find a way to split off from the old run's build after the fourth triple, and resync to the exact same board state at 6 lines left. I had a great sequence where I didn't need to RNG manip at all for 4 pieces, and then just a 6 frame delay to get an I-piece. Really quite good, probably less manip than the original build took, while saving soft drop frames of course. I was 43 frames ahead there. Unfortunately the ending suffered with, I feel, too much RNG manip required for the final few pieces. I've looked quite thoroughly over the last few hours and can't find anything better. You should try to find something! In the end, I got a 2216 frame end, 67 frames ahead of the proof of concept from before: http://tasvideos.org/userfiles/info/63706490165615964 I can't promise I'd want to commit to any huge Nintendo Tetris project, since even this short category doesn't feel too fun...
Not really familiar with Tetris but is clearing all blocks necessary or is that for entertainment? If it is for entertainment, how much faster would it be to just complete it?
It's possibly faster to complete 25 lines by keeping all the garbage and doing it at the top of the screen (to hugely reduce vertical travel and line clear animations, at the cost of more pieces dropped), but the All Clear gives it a very unique and challenging goal compared to "fastest 999999" or Tengen's "30 lines".
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
I like the idea of reaching the 1st place point goal while sacrificing as few frames as possible, it adds an extra avenue of optimization beyond just reaching top speed and keeping it. If the credits play regardless of place, 1st place could be considered a full completion, so I think it's a vaultable secondary goal. Funnily enough, 1st place has a much shorter final text than 2nd place, saving a few frames on the last input, more frames than getting those points cost, so it's actually faster to get 20k points. But if a low score run was faster, I don't think it would necessarily obsolete this one. It's fortunate that jumping lowers your speed by so little that it doesn't always lose time. However, doing too many jumps in one level can! I was able to save a few frames by reducing jumps. I made up the points with a lot of extra barrel jumps that didn't cost any frames. I also improved the acceleration to max in a couple stages. Level 1 I couldn't save a frame in, even doing a test run trying to reduce the number of jumps as much as possible. Which is good, since its points are quite valuable. So I didn't touch it. Level 2 I went full Donkey Kong on without losing a frame. (And if I remove all jumps after reaching max speed, it still doesn't save a frame) Level 3 I was able to save 2 frames on by removing quite a few jumps. I kept in as many as I could. Level 4 gets no save from removing jumps. Level 5 I was able to reach top speed and reduce low-speed travel by jumping one less time near the start and going between the sand and grass (frame 7670). I saved 21 frames (23 frames ahead). Level 6 hold up yes. Level 7's quest for keeping max speed is pretty complex with a lot of required dodges. I was able to get to max speed sooner with less jumping / direction changing, and preserved speed as much as possible. I saved 41 frames (64 frames ahead). Level 8 barely manages 1st place thanks to more barrels. I also saved 1 frame, probably on lowering total number of jumps. Oddly, you need a little less than 20,000 points to get 1st place (19840 worked), but I added 3 extra jumps without loss, to reach 20,065 and make the goal more clear. 65 frame faster movie: http://tasvideos.org/userfiles/info/63851104284844683 Requesting movie file update and co-authorship I would guess this will end up in Vault. The game has a similar feel to Paperboy, except missing the part of Paperboy's gameplay that actually makes it interesting. It also suffers from repetition, despite being short; I believe the long stages repeat their structure/hazards two or three times before ending, with the grand finale level being 3 previous levels, repeated 3 times. Reaching/keeping top speed is not trivial at all, but not very impressive either. I vote Meh.
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
I've come to some bad RNG that makes it pretty costly to try to replicate the old run. I've tried a couple new builds but can't get an ending that works. I'll probably just sacrifice most of my saved frames to stick with the old build... If anyone wants to see what they can do, this is what I have so far. It diverges from the old run's build around frame 1380 http://tasvideos.org/userfiles/info/63533485338544710
Blazephlozard
He/Him
Banned User
Joined: 2/27/2013
Posts: 175
Location: Ohio
It's just a one brick difference, and I still plan to make the same shapes (figuring out an entirely new setup is out of the scope of what I want to do here), so I'm not really sure about resubmission. I'd keep your name if that's what it ends up being! EDIT: Also, due to a 4-frame rule on line clear animations, this new layout didn't actually save any time at all! But I'm currently 28 frames ahead after the fourth triple. Is there any chance we can do collaborating on a Discord server, rather than by email? It worked very well for the Dream Team Contest.
1 2 3 4 5 6 7