Posts for DarkRiolu27

Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
HappyLee wrote:
If the number of submissions is too much to handle, the reasonable thing to do is to set the bar for submissions and publications higher instead of lower. We don't necessarily need low quality submissions, or TASes from unofficial games that very few people cares.
Assuming I get the gist of the conversation, I don't think you understand what the problem is. "Raising the bar" for submissions isn't possible - you can't magically reject a submission for being low-quality before it's even submitted. The staff does reject plenty of submissions, but it takes time to do so, and that's part of the problem. Feel free to correct me if I'm wrong here.
Post subject: Alternate drafts
Experienced Forum User, Published Author, 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
Experienced Forum User, Published Author, 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.
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Alyosha wrote: Awesome work, now that is a proper Dedede fight. I console verified this run
That's great! And so quickly too.
I removed myself as co-author as anything I did previously is superseded by the new run.
I don't mind sharing authorship since the previous TAS was a helpful template when making this one, but I also understand if this is too different from the previous TAS for that to make sense.
Experienced Forum User, Published Author, 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.
Experienced Forum User, Published Author, 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.
Experienced Forum User, Published Author, 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.
Experienced Forum User, Published Author, 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.
Experienced Forum User, Published Author, 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.
Post subject: Framerule Address
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
I think I found the WRAM address responsible for framerules. Address 0x1032 cycles from 0 to 4 and increments every non-lag frame. If the address has a value of 3 when 'up' is pressed to enter a door, Kirby will enter it immediately; otherwise, he will enter it whenever the address next hits 3. 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. Bosses seem to operate on framerules as well, but I'm not sure when the framerule is determined. This address is also helpful for identifying lag frames manually even when Kirby isn't moving, which is nice since Bizhawk doesn't seem to display lag frames correctly for this game.
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
I got to the end a few days ago so now I'm going through the entire thing one more time to see where more time can be saved. I'm planning on being done after this second pass through the game.
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Here's my progress so far: https://tasvideos.org/UserFiles/Info/638523123082641784 As already mentioned, I saved a few frames in the first couple rooms of Bubbly Clouds due to less lag; also, any amounts of frames saved are approximations. I saved 5 or 6 frames in the Kracko Jr. fight by hitting terminal velocity before inhaling the last bomb, as well as inhaling it lower on the screen. I still have no idea what the conditions are for getting close to the bomb without being hit by Kracko Jr. first, but I was able to make it work once. 74 frames were saved in the Mint Leaf room by skipping the Mint Leaf. I used MUGG's example as a base and improved the ending by exhaling once when floating, cutting down on the amount of time spent floating. 90 frames were saved in the Superspicy Curry room by skipping the Superspicy Curry. As mentioned above, Kirby seems to move at a faster average speed despite slowing down while inhaling blocks, since he doesn't have to wait for curry shots at any point. Even if the average speed isn't actually higher, I'm pretty confident that there's less lag overall. Additionally, I jumped over the gaps instead of floating over them, which was tricky but doable, as mentioned in the previous post. I also spent a few weeks testing out different combinations of RNG values and movement to see which gave the least amount of lag due to the stars that spawn constantly - having fewer stars on screen and having them on screen for the least amount of time possible should be ideal. Theoretically, the fastest method to get through this room should be exhaling every block, as swallowing a block requires that Kirby slow down a bit in order to not hit the next block before he can inhale again. However, the fastest strat I could find ended up swallowing 2 blocks in order to get better RNG and therefore less lag overall. It is possible to jump over a gap and inhale a star block that is in the way on the other side of the gap at the same time, although this didn't end up occurring in the final route. 26 frames were saved on Kracko by getting perfect RNG. The current TAS gets a slow second bomb attack, although it's hard to notice due to Kracko's delay when taking damage during the start of the attack. The current TAS also gets a slow second lightning attack on Kracko 2. Due to the differences in the Mint Leaf and star rooms, I will be unable to resync RNG and will have to re-manipulate all of Mt. Dedede, as I did for Kracko. I was already considering looking into this; it shouldn't be too much of a problem. Kirby had 2 HP at the end of the stage, so it might be possible to incorporate another damage boost somewhere to save time.
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Some more things worth documenting: Performing an inhale cancel (B then Up) doesn't cancel Kirby's TASpit/instant action state. It also seems to rarely increase lag, meaning inhale cancelling can be used to cycle RNG rapidly without penalty in most cases. In fact, in some cases it reduces lag, which can be useful while falling or waiting for something, like a boss' attack. Taking damage doesn't reset Kirby's vertical momentum, only pauses it. If possible, it's better to reach terminal velocity before taking damage in a situation such as the last hit on Kracko Jr. when Kirby needs to continue falling to reach the Warp Star. Kirby will also continue to do a full jump even if damage is taken on the way up, as long as the A button continues to be held. If Kirby needs to float horizontally for a while but not gain height, it's faster to exhale and then restart floating so that more time is spent at walking speed instead of floating speed. I doubt this will be helpful for any other room, but it saved time in the Mint Leaf room in Bubbly Clouds. As I'm sure is already known, it's optimal to let go of right or left when starting to float, as Kirby's speed will take longer to decelerate to floating speed (in other words, his speed stays higher for longer). Also when floating, Kirby can enter the hitbox of spikes without taking damage if his vertical speed is near zero when he comes into contact with them. This allowed Kirby to dip low enough in the Mint Leaf room to gain upward momentum and be able to exhale once without hitting the spikes before he could start floating again. Having a Mint Leaf or Superspicy Curry active when going through a door takes significantly longer than going through the door as normal Kirby (about 20-30 frames longer). With Superspicy Curry, when floating, pressing B will cause Kirby to shoot 2 projectiles at once. Both of these projectiles will hit the same target and the second one will be wasted; however, pressing B for only one frame will cause only one projectile to spawn, and then waiting at least one frame will cause the second attack to occur instantly when the B button is pressed again. This is not currently useful since curry is not optimal at any point in the run. It's possible to jump over one-tile gaps even when the ceiling is directly above Kirby's head if Kirby jumps with full speed, a high X subpixel, and a low Y subpixel. This allows regular Kirby to clear out the star blocks in the star room of Bubbly Clouds faster than using curry since he doesn't have to slow down to wait between shots, and there seems to be less lag overall. I'm making some assumptions about Kracko based on how he works in Normal Mode, but in my testing Extra Mode works the same, just with different attacks. Kracko has 3 attacks: Lightning, charging, and dropping bombs. Each attack has a fast version and a slow version. For the fast version of the attack, Kracko waits about 11 frames before attacking; for the slow version, he waits about 36 frames. Kracko can never drop bombs on the first attack or give the same type of attack twice in a row, so the fastest pattern is: Fast lightning, fast bombs, fast lightning, fast bombs. Like Whispy, hitting Kracko with a projectile causes him to pause, delaying the current or next attack. When dropping bombs, Kracko will move either left to right or right to left, seemingly dependent on Kirby's position. It appears that moving left to right causes Kracko to drop the third bomb slightly earlier than when moving right to left, although I'm not totally confident about this.
Post subject: Kracko Jr. Fight
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Does anyone know how to get close to Kracko Jr. for the last hit without taking damage like in the current TAS? I was able to replicate it once here: https://tasvideos.org/UserFiles/Edit/638503806352574536 I can save one lag frame earlier on in the fight while advancing RNG to the value I need but I can't get as efficient of an ending, even with the same or extremely similar subpixels. This would make the "framerule" also move one frame, so Kirby would actually make it to the next room one frame earlier - although that frame could be lost to lag. On the other hand, it could potentially save more frames if there's less lag. If anyone knows how to, or is able to save time during the fight or room after (or elsewhere) and still enter the star room at the same RNG value (0x98B1) or very close to it, let me know and I'll include it (the sooner the better). Here's an example of the faster Kracko Jr. fight that I wasn't able to finish: https://tasvideos.org/UserFiles/Edit/638503793882348543
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
I'm currently working on optimizing the lag in the star room in Bubbly Clouds. I'm planning to post the movie file once I finish beating Kracko.
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Hi MUGG, I ended up deciding to remake the whole TAS starting with your level 1 improvement, and trying to save frames where I could. It seems that the game lags at different times even with the same inputs and RNG values, so I wasn't able to simply resync any changes with the existing TAS. I am using Memory Watch to monitor position, speed, and RNG. So far I've finished the first 3 levels and have saved about 60 frames by the third room of level 4, and will try to incorporate your movement for the mint leaf room after Kracko Jr. https://tasvideos.org/UserFiles/Info/638476362094803044 After the 10 frames saved from the new level 1 room 3, I saved another 22 in the Whispy fight (the number of frames saved at any point is only an approximation since every change can potentially increase or decrease lag later on). I kept the first half of the fight the same but held on to the fourth apple for reasons explained below. I saved about 11 frames in the first 2 rooms of level 2 but lost nearly all of it to increased lag in the rest of the level. I ended up with 1 extra health but couldn't find any way to use it to save time. 18 more frames were cut out in level 3, mostly due to a faster strat at the end of room 2. I'm 65 frames ahead of the current TAS after the first 2 rooms of level 4 due to less lag, although this was a bit more intentional than other stages as I destroyed more/different enemies. Using JP v1.0 could maybe be faster, but I'd be worried about multiple simultaneous stars causing lag. I'll stick with v1.1 since that's what I've been using, but I'll consider v1.0 if I can't get perfect RNG at some point. Some things I've noticed but haven't seen documented or can offer clarification for: You can perform an inhale cancel by pressing up after B. If the inhale is cancelled immediately, it seems to always advance RNG 3 values, and takes about 16 frames to do. This can be helpful for quickly advancing RNG to a desired value. Damaging Whispy Woods at any time will cause the next object to take significantly longer to spawn - it doesn't matter if the hit is during Whispy's attack or between attacks. Because of this, I didn't hit Whispy with the fourth apple until the sixth one had already spawned. This is still somewhat slow since Whispy seemingly can't be hurt quickly twice in a row (if two apples hit Whispy within a short time-frame, the damage will still occur, but it will be delayed), but it's faster than using the fourth apple early. Apparently movement speed is maintained through certain loading zones. Touching the star to end a level with horizontal speed will cause Kirby to start with that speed on the first frame of the next level, meaning he can accelerate instantly in that case. Touching the level 1 star with some speed while floating allowed me to get into the door at the start of level 2 about 5 frames faster, and I was able to touch the level 2 and 3 stars with some speed as well, saving more frames. Speed is also maintained during the load after beating Lololo (the miniboss, not the boss - although speed is maintained during the load after the boss as well), but when I tried to maintain full speed in that case the next room lagged much more and gave me a slower load at the end of the room, so I scrapped that idea. Subpixels are maintained through doors, so in some cases it can be beneficial to slow down in order to enter a door with a higher X subpixel, either because you have an extra pixel to spare or because the door loads faster and makes up for the later entry. This can certainly be exploited any time Kirby enters a door from the right, since you can slow down to get a higher X subpixel without losing a pixel. You can also jump before/into a door if a different Y subpixel would be more beneficial for the next room. When approaching a wall, Kirby will seemingly be placed against it and his speed set to zero as soon as he comes within one pixel of the wall, even if he should be many subpixels away. This means that to go through a wall of star blocks like Kirby does twice in the second room of level 3, he must go from being at least one X pixel away from the wall to being past the wall while at the correct Y pixel the entire time. This is easy if Kirby's Y pixel is correct for multiple frames, like at the peak of a jump, but must occur during a single frame if Kirby is falling at terminal velocity, like at the end of the room (credit to Marche9th for figuring out how this works). I've noticed that there seems to be something akin to a framerule when entering doors, although it doesn't seem consistent - sometimes I will enter the door 1 or 2 frames earlier but it will just take longer to load and won't be any faster, then if I save even more frames it loads instantly, suddenly saving 3 or 4 frames all at once. Is there anything known about that, or about why the game lags at different points even with the same inputs and enemies on-screen? Sorry for the long post.
Experienced Forum User, Published Author, Player (58)
Joined: 3/21/2024
Posts: 17
Location: USA
Hi there, I'm a speedrunner of this game and I'd like to help improve the TAS. The problem is that I have no experience TASing, but I'm good at finding new strats and manipulating RNG. I've been struggling with saving every frame possible and haven't been able to sync up my improvements with the current TAS, so I was wondering if anyone would be willing to help with the optimization or teach me how to make the game not desync after changing one thing. As an example of what I'm good/bad at, I changed the ending of the TAS, starting right after Kaboola 2 is defeated, and got it to be sub-9 minutes: https://tasvideos.org/UserFiles/Info/638466906468908702 There can definitely be more frames saved in what I have there.