GJTASer2018
He/Him
Joined: 1/24/2018
Posts: 299
Location: Stafford, NY
DarkRiolu27 wrote:
This appears to mean that saving a lag frame will save one overall frame (assuming all other lag is the same), but saving a frame through better movement will either save 0 or 5 frames, depending on when the door is reached relative to the framerule.
So this would work like the flagpole frame rule in SMB - the framerule could potentially "eat" any small movement improvements and render them irrelevant?
c-square wrote:
Yes, standard runs are needed and very appreciated here too
Dylon Stejakoski wrote:
Me and the boys starting over our games of choice for the infinityieth time in a row because of just-found optimizations
^ Why I don't have any submissions despite being on the forums for years now...
Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
GJTASer2018 wrote:
DarkRiolu27 wrote:
This appears to mean that saving a lag frame will save one overall frame (assuming all other lag is the same), but saving a frame through better movement will either save 0 or 5 frames, depending on when the door is reached relative to the framerule.
So this would work like the flagpole frame rule in SMB - the framerule could potentially "eat" any small movement improvements and render them irrelevant?
Correct, although it can also be leveraged in many situations since subpixels are maintained through doors, so as I mentioned in a previous post if you have an extra frame or two you can use it to set your subpixels to favorable values or perform other actions at the cost of movement, without losing frames. In going back through the TAS I've mostly gotten door entries mid-framerule or right at the end, so I haven't lost much time to them. In the couple situations where I've reached the door right at the start of a framerule I've been able to save enough subpixels to press up a frame sooner and get a faster framerule.
Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Now that I know that this game has framerules I went back and checked if I could hit any earlier framerules and managed to save one at the Warp Star in the first room. https://tasvideos.org/UserFiles/Info/638540146507053121 Thanks to differences in lag, I was 7 frames ahead out of level 2, but lost the entire lead and more trying to sync it up in level 3. This is what I was comparing to: https://tasvideos.org/UserFiles/Info/638540146973591150 I doubt this will end up being relevant for the current TAS but I figured I would post it here in case someone revisits this game in the future.
Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
I only just realized that holding Left + Right for 2 frames when Kirby has 0 speed results in an overall increase in distance traveled for a given number of frames, since the increase in acceleration outweighs Kirby's slight backwards movement for those 2 frames. This can be useful during the start of most rooms, after taking damage, or when changing direction, like in the last room before Whispy in level 1. In a lot of rooms it doesn't help since it's not enough to save a framerule, but it can also change when the game lags, so it can potentially save a frame or two that way. I redid what I had so far with this knowledge, starting with the framerule I had saved in the first room. https://tasvideos.org/UserFiles/Info/638549003242406298 Hopefully I don't find anything else that causes me to redo the TAS from the start again.
Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Apparently changing the color palette when the game is booting up causes lag to occur in different places. This could potentially be leveraged to decrease lag overall, although it would be difficult to figure out which color palette is the best, since none seem inherently better than others, just different.
DrD2k9
He/Him
Editor, Judge, Expert player (2210)
Joined: 8/21/2016
Posts: 1085
Location: US
DarkRiolu27 wrote:
Apparently changing the color palette when the game is booting up causes lag to occur in different places. This could potentially be leveraged to decrease lag overall, although it would be difficult to figure out which color palette is the best, since none seem inherently better than others, just different.
How does that compare to running in standard Gameboy mode instead of Color Gameboy? Is there even less lag with the monochrome?
Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
DrD2k9 wrote:
How does that compare to running in standard Gameboy mode instead of Color Gameboy? Is there even less lag with the monochrome?
I don't know if running on a different system would be better, but there is a grayscale palette option which doesn't necessarily seem better than any of the others.
Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Now that I've finished working on the TAS, this will probably be my last info dump. Here's everything else I've found/noticed while TASing this game: Relevant techniques Optimized turn-backs Pressing the opposite direction when Kirby's X speed is at least 1 pixel per frame will cause his speed to drop to 0x72 (walking) or 0x77 (floating). If his speed is below 1 pixel per frame, pressing the opposite direction won't affect his speed at all. Allowing Kirby to slow down below that speed before turning around allows him to continue moving in the same direction much faster than turning around at full speed. As a sidenote, when floating, if Kirby's speed is 0xEA or higher (due to being at full speed before floating), pressing the same direction Kirby is moving will drop his speed by 0xEA, which can be helpful to slow down quickly. Phantom force when floating If Kirby is moving before starting to float, it will be nearly impossible to start moving in the opposite direction until after the float start-up animation is completely finished. If you try, Kirby will move slightly in the direction you're pressing but will be sucked back in the direction he was initially moving for the next 3 frames. He will still end up slightly more in the direction that was pressed, but he can only move a net total of 0x05 subpixels every 4 frames until the animation is complete. This can be helpful to move over to the next pixel, or to get off of a wall some, but it's more of something to avoid than a helpful technique. Fast accel I touched on this in a previous post, but to be more specific, if Kirby's speed is 0x59 or below (walking), or below 0x34 (floating), pressing Left + Right will be faster overall than only holding Left or Right (assuming Kirby travels far enough to get to full speed). Sometimes this can lag the game, however, so be careful when using it. Water hopping When falling into water, there will be ten frames where Kirby continues to fall and can't "swim." While holding A, he will be able to exit the water after either 2 or 3 frames, depending on his Y subpixel. If, on the frame before hitting the water, Kirby's Y pixel has an even value and his Y subpixel is between 0x00 and 0x81 (inclusive), he will be able to jump out of the water in 2 frames, which is the more desirable outcome. Kirby's Y subpixel ultimately becomes offset by 0x39 when jumping out of the water in this manner, so it's possible to get 3 favorable jumps in a row, albeit a bit tight. Friendly spikes Kirby will not take damage from spikes in most cases if his Y speed is close to zero. He can completely enter their hitbox without getting hurt as long as he moves slowly vertically. Just be gentle, and they won't hurt you. Vertical inhale The inhale hitbox extends slightly above and below Kirby. Inhaling an enemy when directly on top of or beneath it will cause the inhale to end instantly, allowing Kirby to eat enemies without slowing down for even a single frame. Speedy swallowing Pressing Down the frame before Kirby hits the ground will cause the Down input to register without slowing Kirby at all. This is usually used to prevent a star upon landing, but can also be utilized to swallow an object without losing any subpixels at all. Hard drop Hitting the ground with enough Y speed and not holding Down will make it so that if Kirby walks off a ledge without ever jumping, he will fall 3 pixels on the first frame he becomes airborne. This doesn't seem to ever be better than jumping off a ledge, however. It could be useful at the top of the Whispy fight, except that bouncing off of the ground prevents this from occurring. Boss quirks Camera shy Kaboola spawns when the camera reaches a certain point (When WRAM address 0x1053 reaches the value of 192). The sooner the camera reaches this point, the sooner Kaboola can be attacked. Double shot of Mint While more of a quirk of the Mint Leaf, this is only really relevant when fighting Kaboola. After grabbing the Mint Leaf, Kirby can only spawn 2 attacks at a time. Trying to shoot a third attack will lock Kirby out of attacking for the entire length of time it would take to actually spawn a projectile. If ever in a position where two shots are already spawned, it's better to stop holding the B button until Kirby can actually shoot another shot. Directional disparity When Kracko drops bombs from right to left, the first bomb is dropped 8 frames earlier compared to left-to-right, and the last bomb is dropped 8 frames later. Kracko starts on the side of the screen Kirby is on when doing the bomb attack. Left-to-right could be better for the final hit since the last bomb is dropped sooner, but it doesn't seem possible to set up a TASpit before the sixth bomb in that scenario. Dedede's delays Before starting to attack, King Dedede has three instances of randomly opening his mouth either once or twice (only one instance on Normal Mode, but it takes much longer). Opening his mouth twice takes longer, so it's fastest to manipulate RNG to get only three mouth-openings at the start. He also opens his mouth after every hammer attack, and all the same rules apply. Lag reduction Star sprite savings When an enemy is destroyed (not by inhaling) or a boss is damaged, an animation plays with multiple star sprites. There are 4 separate animations. The animation with 1 big star and 2 small stars is generally the least laggy since there are only 3 sprites total, although the animation lasts a while. The animation with 4 stars all moving vaguely the same direction and then quickly disappearing is typically the second best. The animation with 4 stars spiraling outwards is relatively bad, and the animation with 4 stars moving away from the center that plays twice is particularly awful. Manipulating RNG to try and generate the less laggy animations is a good way to reduce lag. Two wrongs don't make a sprite When a boss is defeated, the explosion causes a lot of lag. However, if there are already many sprites on-screen, some of the explosion may be unable to load. Lagging the game as much as possible just as the boss is destroyed will typically result in less lag overall. These sprites could be the star sprite animations from the penultimate hit on Kracko, or the explosion from the first defeated out of Lololo and Lalala. It's important to land the last 2 hits on these bosses close enough together that the animation from the fifth hit is still playing when the boss is defeated. This doesn't seem helpful for Whispy, since he has a cooldown between hits, or Kaboola, since the air puffs from the Mint Leaf don't have different animations to manipulate. Edge corruption Sometimes when the camera is moving, the row or column of pixels at the edge of the screen will become corrupted for a frame, and the game will always lag when this happens. I think this has something to do with the game loading in sprites as the screen gets close to them. Going faster or slower can often circumvent the corruption, but seemingly not in every scenario. This occurs many times in the current TAS; for instance, on frame 3,193 (top of the screen) and frame 19,766 (right side of the screen). Mysterious lag prevention This likely pertains to more than just the A button, but pressing or holding A can affect whether the game will lag, even if the A press does nothing (such as after the peak of a jump). Here's an example: https://tasvideos.org/UserFiles/Info/638635355686024584 Deleting the A input on frame 17,252 causes the game to lag and desync, even though the input appears meaningless. The amount of random inputs that can affect lag is the reason lag is so hard to optimize for in this game.
Post subject: Alternate drafts
Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
I uploaded a few prior drafts of the TAS that ended up getting ultimately obsoleted. Some of the rooms have different movement with equivalent, or even less, lag than the current finished product, but ended up having more lag in this specific iteration. I figured I'd share them in case anyone wants to improve the TAS in the future, since there might be movement in these WIPs that's less laggy in a new iteration of the TAS, but isn't showcased in the current one. https://tasvideos.org/UserFiles/Info/638635437775520335 https://tasvideos.org/UserFiles/Info/638635438282321565 https://tasvideos.org/UserFiles/Info/638635438830901424