Posts for mohoc


mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
I would love to see this at ESA. There had been no significant breakthrough in this game for years, plus this run would have very little overlapping with what will be shown in the scheduled Glitchless Any% race.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
This is indeed not Any% strictly speaking. I suppose that you were referring to the 2014 "game end glitch" movie by Masterjun, which manipulated the game state sequence in order to trigger the credits in under a minute. It is worth noting that while you reach the credits, you don't get to reach the "Game Complete" screen. Now this submission is about to obsolete Scepheo's run in 8:45.87. The same glitches were used in both runs (telejumping, Space Station 1 skip, an Intermission skip using the Violet cutscene skip), the main difference being the newly discovered Gravitron OOB in Masterjun's submission, which skips one of the main levels (The Laboratory in his run) and the Final level. Scepheos' run has had a legitimate place in the site and I believe that Masterjun's run has a legitimate place as well, since there are a lot of glitches - telejumping, the Violet cutscene skip, and now the Gravitron OOB - that you don't get to see either in the "game end glitch" run or the "20 trinkets, No Death Mode" run. A proper naming of this category could be discussed. It is worth mentioning that in order to perform the game end glitch, you have press the Escape key to go back to the main menu and then reload your save. And it has been the only useful speedrunning trick that required the use of the Escape key. So "No Escape key", "No Save & Quit" or "No Credits Warp" are a few possibilities off the top of my head. About the run itself, I have two remarks. First, as discussed in the VVVVVV speedrunning discord server, at the very beginning it could actually be faster to go to the Space Station 2 teleporter first instead of going to the Warp Zone teleporter first by a few frames. Second, and maybe more importantly, you can skip doing the Gravitron with a Save & Quit as soon as you enter the Gravitron room and then reload your save. So whether the Gravitron should be done or not is a legitimate concern. The main debating point would certainly be the entertainment value of doing the Gravitron in this run. As a side note, this current submission corresponds to what has been called "Any%" in the RTA community of the game. Since we require to speedrun on the latest version in most categories (v2.2, where the game end glitch is no more possible) and since all runs are single-segmented (forbidding save & quits), it made sense for us to call it Any% and do the Gravitron in the run. (Oh and if you are a former runner/viewer of the game, we have renamed several categories due to the discovery of the Gravitron OOB about a week ago. So what used to be called "Any%" for years is now "Credits Warp", which makes more sense tbh.)
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Hey, I know this game. Doing Gravitron in Any% was inconceivable just a week ago. Shoutouts to the VVVVVV speedrunning community for making the inconceivable happen. Yes vote.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Hey, E-Sh4rk and I submitted a new Any% TAS. We were unsure whether to include the Training levels or not, so we submitted both and will let the community decide which one to keep. - Any% in 5:35.14 - Any% With Training in 6:19.76
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Well, I found an 8.15s improvement today, exclusively from better menuing... (Only the first minute has been changed). Normally, when you complete a level on the Adventure path, Kururin goes to the next level slowly. However if you select "No" when asked for Training then the path from Training 1 to Grasslands 1 is already uncovered, thus no slow animation after completing Training 1-4. I completed Grasslands 1 first in order to skip the slow animation after Training 5 as well and thus maximize the time save from this trick. I believe there could be some discussion about this "improvement" though, as it makes the beginning of the run weird-looking. I personally liked it, but I know that E-Sh4rk was not in favor of it. Basically there are several possible interpretations: - you could consider that in "any% w/ training" you have to select "Yes" when asked for Training, which would discard this "improvement" (you are stuck at Training 1 at the beginning, so no way to skip any animation) - you could consider it legitimate and you find it entertaining - you could consider it legitimate but you think that it makes the run less entertaining Again this is just about menuing, no gameplay has been affected.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
I'm fine with both scenarios for Any%. Training levels with damage have been done, if people wanna keep it then sure. I have my own personal preference (no Training) and I'd give arguments if necessary, but my take is to let the community decide, not me.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Well, apart from the starting zone, damageless IGT and damageless real time are very similar, you can hit walls when in heart zones in both cases. So making the "100% damageless run" IGT would not add much, and would just systematically add a waiting time at the beginning of every level. I really see IGT as a nontrivial optimization problem that could deserve its own category and that should be separated from damageless. Casually most people would assume that the best IGT would be obtained with damageless since most RTA ILs were done damageless, but it is not always the case in TAS.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
- I am fine with 1. Any% and 2. 100%, though I would rather see 100% as "All levels damageless, all collectibles (including birds)" - I don't like IGT for 100%/damageless levels, this would just add a waiting time at the beginning of every level. - If there is any IGT category, what would make the most sense to me is "All levels, fastest IGT". But this would include lots of OOB & wall clipping, as they are faster in many levels in spite of the 3s penalties. Fastest IGT would be a weird category because it would mix some wall clipping levels and some damageless levels. But that could help to mitigate the potential monotonic feeling in both Any% and 100%. Besides the strategies would actually be slightly different in most levels, as you would try to minimize the number of hits in wall clipping levels and wait in the starting zone for the best angle in general. - I find your 3. pretty arbitrary. I would rather use SRAM for "All levels, fastest IGT", just my opinion though.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Well, ignore my previous message about Master Grade, I got it all wrong. My apologies. Master Grade only requires you to beat the Master times in the 30 "main" Adventure mode levels and the 50 "main" Challenge levels. -No need to complete the levels damageless, -No need to do training, -No need to unlock and complete Last Land and the eleventh row in Challenge.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
You don't need to do Training to unlock any level. So a "Damageless, All levels" run could either skip Training, or do them damageless, or do them with damage. (though if you take damage in them, it would be a bit weird because all the others levels would be done damageless). For "Master Grade" you need to complete Training, and I'm like 75% sure that you need to complete them damageless as well, though I'd have to check this again to be 100% sure.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
I have uploaded a first version of an Any% Normal TAS (do all thirty main levels, don't save birds). Time: 5:05.75 (18345 frames) counting the GB intro. Youtube video: https://www.youtube.com/watch?v=tdnZhIvwhi0 Input file: http://tasvideos.org/userfiles/info/52647444906124211 Reminder that the OOB viewer is available here: https://github.com/E-Sh4rk/KururinTAS There are two known potential time saves: - 11 frames in Ocean 2 (Matt's "cheat bot" is faster there) - 3 frames in Star Land 1 (Matt's "cheat bot" is faster there) Matt's levels have been proved difficult to replicate, so I decided to let this for later. There are two next projects: - continue E-Sh4rk's bot project and use it to find some new strategies - make a new TAS with the birds saved (= remake the 3rd level of each of the ten worlds), which will be more likely to be accepted since it triggers the credits. EDIT: I have also uploaded a version with the OOB viewer if you want to better understand what is happening: https://www.youtube.com/watch?v=HHgOrBXwDh8
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Hi Matt, nice to see you here! I am confident that E-Sh4rk is very motivated in conceiving an optimized bot. I think that he would benefit from your solver's code. It is not a problem if the code is messy, we are primarily looking for ideas and experimentation at the moment. For my part, I want to make a first completed draft of the TAS to see how down we already pushed the time. Only the levels where your bot is the fastest are missing. So may you upload a file with the inputs that were performed in your "cheat bot" partial run? (this one) (As a note, the missing levels are: Grasslands 3, Ocean 2, Jungle 3, Cake Land 2, Cloud Land 1 & 3, Star Land 1 & 3, Ice Land 1, 2 & 3.)
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Hey, I made a github repository for the current fastest completion TAS project: https://github.com/mohoc/KuruTAS You will find: - all the current records per level - my current progress on the project - the beginning of each stage if you want to try to beat my times (they start at selecting the level on the world map and end at Helirin control) - a folder "tricks" with the main wall clipping methods I have used I have done all the levels where Matt Shepcar's "cheat bot" is not the fastest strategy. My plan is to improve my current records until we hopefully get a response from Matt Shepcar. Btw I have found a new early clipping method that saves 10 frames (you can find it in the "tricks" folder, it was performed in Cake Land 3), so I'm gonna update every level that could benefit from it for now.
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
v1.4 (beta) looks neat and it is very useful to work with! I made good use of it today to complete more levels with wall clipping + OOB goal zones: - Cave 3: http://tasvideos.org/userfiles/info/52269565877650126 - Cloud Land 2: http://tasvideos.org/userfiles/info/52269660021613854 - a 0.2s improvement on Machine Land 1: http://tasvideos.org/userfiles/info/52269764288546723 - Ghost Castle 1: http://tasvideos.org/userfiles/info/52269947472336163 I have also been able to tie Matt Shepcar's time in Cave 1 (only the end is different because I was unable to exactly reproduce it, but the final time is the same): http://tasvideos.org/userfiles/info/52269414949784408 This is my current progress:
1 fastest strategy (matt="cheat bot" video | oob=reach an OOB goal zone)
2 done? ("x"=done | "(x)"=done but probably improvable | " "=not done)
3 comments
____________________________
______________|1_____|2__|3_
Grasslands 1  |matt  | x |
Grasslands 2  |oob   | x |
Grasslands 3  |matt  |   |
Ocean 1       |oob   | x |
Ocean 2       |matt  |   |
Ocean 3       |oob   | x |
Jungle 1      |oob   | x |
Jungle 2      |oob   |(x)|might do more intentional hits to push back to horizontal when reaching OOB goal zone
Jungle 3      |matt  |   |
Cake Land 1   |oob   |(x)|there may be a way to reach the upper-left goal zone?
Cake Land 2   |matt  |   |
Cake Land 3   |oob?  |   |TODO: way to clip in corners
Cave 1        |matt  | x |
Cave 2        |oob?  |   |TODO: way to clip in corners
Cave 3        |oob   | x |
Cloud Land 1  |matt  |   |
Cloud Land 2  |oob   | x |there might be a faster way to go OOB with two hearts?
Cloud Land 3  |matt  |   |
Star Land 1   |matt  |   |
Star Land 2   |oob   | x |
Star Land 3   |matt  |   |
Ice Land 1    |matt  |   |
Ice Land 2    |matt  |   |
Ice Land 3    |matt  |   |
Machine Land 1|oob   | x |
Machine Land 2|oob   | x |might be slightly improved with a better idea about when to take the final damage
Machine Land 3|oob   | x |there may be a way to reach upper-left goal zone? (3s away from start)
Ghost Castle 1|oob   |(x)|slow beginning (waited for a 180° to adjust position)
Ghost Castle 2|"matt"|(x)|TODO: faster way to reach the regular goal zone from outside
Ghost Castle 3|oob   |(x)|TODO: investigate better strategies
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
That sounds interesting, I know a couple levels where we could take advantage of diagonal clips. For my part, I am almost done figuring out what could be the fastest strategies in every level between the "cheat bot" video and reaching an OOB goal zone. This is my progress:
1 fastest strategy (matt="cheat bot" video | oob=reach an OOB goal zone)
2 done? ("x"=done | "(x)"=done but probably improvable | " "=not done)
3 comments
____________________________
______________|1_____|2__|3_
Grasslands 1  |matt  | x |
Grasslands 2  |oob   | x |
Grasslands 3  |matt  |   |
Ocean 1       |oob   | x |
Ocean 2       |matt  |   |
Ocean 3       |oob   | x |
Jungle 1      |oob   | x |
Jungle 2      |oob   |(x)|might do more intentional hits to push back to horizontal when reaching OOB goal zone
Jungle 3      |matt  |   |
Cake Land 1   |oob   |(x)|another goal zone just up-left to start but it seems unreachable for now, unless some wall clipping is done
Cake Land 2   |matt  |   |
Cake Land 3   |oob?  |   |TODO: way to clip in corners
Cave 1        |matt  |   |might be easy to replicate?
Cave 2        |oob?  |   |TODO: way to clip in corners
Cave 3        |oob?  |   |TODO: way to clip in corners
Cloud Land 1  |matt? |   |What is OOB at the left is invisible and weird
Cloud Land 2  |matt? |   |What is OOB at the left is invisible and weird
Cloud Land 3  |matt  |   |
Star Land 1   |matt  |   |
Star Land 2   |oob   | x |
Star Land 3   |matt  |   |
Ice Land 1    |matt  |   |
Ice Land 2    |matt  |   |
Ice Land 3    |matt  |   |
Machine Land 1|oob   |(x)|probably beatable, but difficult to optimize with all these invisible walls
Machine Land 2|oob   | x |might be slightly improved with a better idea about when to take the final damage
Machine Land 3|oob   |(x)|TODO: way to reach upper-left goal zone (only 3s away from start)
Ghost Castle 1|oob   |   |What is OOB at the left is invisible and weird
Ghost Castle 2|"matt"|(x)|TODO: faster way to reach the regular goal zone from outside
Ghost Castle 3|oob   |(x)|TODO: investigate better strategies
You can find all the levels I have done using OOB goal zones here: https://www.dropbox.com/s/ptzmw5f573btdvh/levels_done_with_oob_goal_zones.zip?dl=0 (There should be 11 levels: Grasslands 2, Ocean 1 & 3, Jungle 1 & 2, Cake Land 1, Star Land 2, Machine Land 1, 2 & 3, Ghost Castle 3) I also have done this: - Ghost Castle 1 early wall clip: http://tasvideos.org/userfiles/info/52237142160912306 - full Ghost Castle 2: http://tasvideos.org/userfiles/info/52237265785563966
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
And here is some trivia about the game mechanics:
Axes:
 ----> X
|
|
v
Y
******************************************
Notation:
-- X(pixel,subpixel) Y(pixel,subpixel)
-- "R2": R = direction in {U,L,D,R,UL,UR,DL,DR}
         2 = speed in {0,1,2} (=number of held buttons in {A,B})
******************************************
Movement:
-- R0: X+1,128 (2*R0 = R2)
-- R1: X+2, 64 (4*R1 = 3*R2, 2*R1 = R0+R2)
-- R2: X+3,  0

note: same for directions L,U,D
*
-- DR0: 2-cycle
        X+1, 15 Y+1, 15
        X+1, 16 Y+1, 16 (2*DR0 = DR2)
-- DR1: 4-cycle
        X+1,151 Y+1,151
        X+1,151 Y+1,151
        X+1,151 Y+1,151
        X+1,152 Y+1,152 (4*DR1 = 3*DR2)
/!\ X and Y could be desynced
-- DR2: X+2, 31 Y+2, 31

note: same for directions UR,DL,UL
*
-- DR0+UR0: X+2,31 (2*DR0-UR0 = DR2-UR2)
-- DR1+UR1: 2-cycle
            X+3,46
            X+3,47 (4*DR1-UR1 = 3*DR2-UR2)
-- DR2+UR2: X+4,62

note: same for combinations DL+UL,DR+DL,UR+UL
******************************************
Rotation:
-- 65536 possible values(=2**16bits=2byte)
-- starts at 0
-- normal behaviour: +182 every frame (=14*13)
-- offset by -16 every 360∞/360 frames (=6.00s)
   => offset by -2 every 45∞

-- rotating clockwise
   -- when pushed counterclockwise:
        speed: -933,-842,-751,-660,-569,-478,-387,
               -296,-205,-114, -23, +68,+159,+182
        => +91 every frame, except last (+23)
      => offset value: -40 frames, -117 (=-9*13)
      => after 14 hits without interruption:
       value back to the same modulus by 182 (offset: -569 frames)
   -- when pushed clockwise:
        speed: +933,+842,+751,+660,+569,+478,+387,
               +296,+205,+182
        => -91 every frame, except last (-23)
      => offset value: +19 frames, +25
-- rotating counterclockwise
     same behaviour

-- multiple hits with interruption:
     no stacking: speed value set to -/+933 at each new hit
-- sometimes, collision is messy and speed is set to +/-933 instead of -/+933
******************************************
Method to change X pixel with minor impact on X subpixel:
DL2+UL2 [-4, 62]
R1      [+2, 64]
R2      [+3,  0]
=> [+1,  2] using 4 frames

note: with reverse moves: [-1,  2] using 4 frames
note: there is a similar method for Y
******************************************
Methods to adjust X subpixel:
DL0+UL0 [-2,31]
R1      [+2,64]
=> [+0, 33] using 3 frames
*
DR1+UR1 [+3,46]
L2      [-3, 0]
=> [+0, 46] using 3 frames
*
DL2+UL2 [-4, 62]
2*R1    [+4,128]
=> [+0, 66] using 4 frames
*
DL2+UL2 [-4, 62]
DR1+UR1 [+3, 46]
R0      [+1,128]
=> [+0,112] using 5 frames

note: they can be reversed + similar methods for Y
******************************************
Starting info:

1 direction of the opening
2 starting clockwise?
3 starting positions in levels (=> all multiples of 8) 
              |1|2  |3
Grasslands 1  |R|Yes|X(136,0) Y(192,0)
Grasslands 2  |R|Yes|X( 80,0) Y(440,0)
Grasslands 3  |U|Yes|X(128,0) Y(552,0) 
Ocean 1       |U|Yes|X(128,0) Y(240,0)
Ocean 2       |L|Yes|X(224,0) Y(256,0) 
Ocean 3       |R|Yes|X(128,0) Y(256,0) 
Jungle 1      |D|Yes|X(144,0) Y(272,0) 
Jungle 2      |R|Yes|X( 80,0) Y(328,0) 
Jungle 3      |D|No |X( 80,0) Y(512,0) 
Cake Land 1   |R|Yes|X( 88,0) Y(128,0) 
Cake Land 2   |L|No |X(536,0) Y(320,0) 
Cake Land 3   |R|Yes|X(248,0) Y(160,0) 
Cave 1        |R|No |X(184,0) Y(312,0) 
Cave 2        |R|No |X(864,0) Y(800,0) 
Cave 3        |U|Yes|X(248,0) Y(384,0) 
Cloud Land 1  |R|No |X(128,0) Y(392,0) 
Cloud Land 2  |R|Yes|X(232,0) Y(232,0) 
Cloud Land 3  |D|Yes|X(472,0) Y(160,0) 
Star Land 1   |U|Yes|X(160,0) Y(488,0) 
Star Land 2   |R|Yes|X(200,0) Y(256,0) 
Star Land 3   |U|No |X(560,0) Y(616,0) 
Ice Land 1    |U|Yes|X(248,0) Y(552,0) 
Ice Land 2    |U|No |X(440,0) Y(560,0) 
Ice Land 3    |U|Yes|X(608,0) Y(432,0) 
Machine Land 1|R|No |X( 96,0) Y(400,0) 
Machine Land 2|R|Yes|X(112,0) Y(128,0) 
Machine Land 3|R|Yes|X(112,0) Y(208,0) 
Ghost Castle 1|U|Yes|X(136,0) Y(944,0) 
Ghost Castle 2|R|Yes|X(440,0) Y(648,0) 
Ghost Castle 3|U|No |X(336,0) Y(768,0) 

Some statistics:
Yes: 21|No: 9
R: 15|U: 10|D: 3|L: 2
R Yes: 11|U Yes: 7|D Yes: 2|L Yes: 1
R No: 4|U No: 3|D No: 1|L No: 1
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
So, I guess it is time to share some of my findings. I have replicated some little parts of Matt Shepcar's video: - full Grasslands 1: http://tasvideos.org/userfiles/info/52179138490002530 - first wall clip in Cake Land 2: http://tasvideos.org/userfiles/info/52177977673438241 - first wall clip in Ice Land 3: http://tasvideos.org/userfiles/info/52172978644903455 The goal was to get the inputs back and to get info with RAM Watch about what makes wall clipping possible. The Ice Land 3 wall clip is especially interesting because it has very simple inputs. And I got an idea from it about how it potentially works (well, at least for horizontal/vertical walls). It has to do with subpixels. For a vertical wall at the right (like in Ice Land 3), the idea is that you must be at very low X speed (like less than a quarter of a pixel, if not even less) but still gain a pixel from the subpixels at the exact frame you bump. What allows you to do that is to collide slightly earlier. When you collide, it impacts your rotation, but also your X speed and Y speed independently from the inputs (only the input at the frame of the collision matters). This lasts about a dozen frames and decreases with time. But because of this, you could still have non zero X speed while holding up for example. So this is how I suspect wall clipping to work: gain 1 pixel from the subpixel at the exact frame you bump thanks to the momentum from an earlier collision. The problem I faced to replicate it in other levels is that the starting zone is very different from the one in the other levels: you are further from the right wall. I tried to adapt it, and I suceeded! Here is an example: - Grasslands 3 early wall clip: http://tasvideos.org/userfiles/info/52177347080337677 If you look at this file and the one for Ice Land 3, you would see that they are very similar, except for a few inputs at the beginning after the loading. As I am closer to the right wall in Grasslands 3, I just wait and hope to sync with Ice Land 3 at some point. However it did not work directly because for some reason the X pixel alignment modulo 3 between the starting point and the right wall is off by 1 pixel in Ice Land 3 compared to the other levels. I say "modulo 3" because your up/down/right/left speed is 3 pixels/frame at full speed (and respectively 3/4 and 1/2 of it with the slower speeds). But with diagonal inputs I found a way to change the X pixel with minor impact on the X subpixel (it is +1 pixel and +2 subpixels). That's why there are these weird inputs at the beginning in the Grasslands 3 file compared to the iceland 3 one. It also works by a 180° rotation of the inputs, like here: - Grasslands 1 early wall clip: http://tasvideos.org/userfiles/info/52177554086850103 What makes these wall clipping methods interesting is that they could be used in many, many levels: you would go out-of-bounds with it and then reach an out-of-bounds goal zone (yes, there are out-of-bounds goal zones in this game). In some levels this could be even faster than what we see in Matt Shepcar's "cheat bot" video. I made an example where Matt is beaten by about 2s: - Grasslands 2 done with wall clip + OOB goal zone: http://tasvideos.org/userfiles/info/52177778535894963
mohoc
He/Him
Experienced Forum User, Published Author, Player (97)
Joined: 5/20/2018
Posts: 19
Location: France
Hey there. I am new here and I would appreciate if there would be anyone to help me investigate some OOB stuff in the GBA game Kuru Kuru Kururin. My main interest is to find an out-of-bounds goal zone that is close to the boundaries and could save time. OOBs are not new in this game but I have found an easy way for humans to go out-of-bounds and thus such a goal zone, if it existed, could be used in an actual speedrun ! I have already found a goal zone in Machine Land 3 but it takes 1m30s to reach it... If you are interested, the following video presents everything I have found so far by randomly messing around :) https://www.youtube.com/watch?v=NbN_AUI2Y6s Just that you know, I have no former experience in TASing. I was just messing around and found the goal in Machine Land 3 and the heart zone in Cave 2 by luck. Besides all the things to look for are probably invisible and off camera view.