Editor, Experienced player (882)
Joined: 7/20/2011
Posts: 345
This game seemed pretty cool for a game boy game, although a bit slow paced but very simple to work on and somewhat edit friendly. WIP of the first stage: Link to video Some things to note about the game that I've found so far: - Xspeed: 0014 - Xsub: 0013 - Xpos: 0011 - Yspeed: 001C - Ysub: 001B - Ypos: 0019 - Taking damage gives you a nice boost of about 3 xspeed for 5 frames. Managing these will be one of the key elements to this TAS. I tried pretty hard to find some way to preserve this speed after the damage ends, but to no avail. - Acceleration on the ground is instantly at 1 xspeed, whereas in the air it has to build up to get to 1. Therefore damage boosts along the ground are faster than damage boosts in the air (from enemies). - walljumps are necessary but should probably be minimized considering how long they stop your movement speed on the wall. In general whenever you can grapple to the ceiling it's your best bet for scaling vertical sections since you can pull yourself up rather fast - Every time you land on the ground your momentum is halted for 1 frame. Have not found a way to bypass this, so minimizing your number of jumps is also something to consider. - Somehow by doing a max jump and just barely landing on a ledge I was able to go behind the background at a certain point in the level. I'm not sure what causes this really but I think it looks cool. - There's a relatively quick batarang pickup near the middle of this first level. Every one you collect gives you 5 projectile attacks that replace your fist when toggled on. This could possibly save time on the first hit on the first boss, since you're so far away from him. I haven't tested it, but it would have to save more time than picking up a batarang powerup. It seems you do not keep your projectile count to the next level though. Edit 7/20/2021: So I just noticed you do not want to ever just walk off a ledge as that briefly sets your speed back where you have to accelerate again to reach the 1 px/f speed. Instead the better option is to jump over the ledge, thus keeping your 1px/f the entire length. That's about it so far, nothing really major discovered yet. The game is coded pretty well so I'm not sure there will be anything major, at this point it all comes down to just optimizing the above findings. I might continue on with this if people find it interesting, but it is a bit of a slow paced game.
Current thoughts: Hachiemon (J) for GBA.
Skilled player (1650)
Joined: 7/1/2013
Posts: 433
Exonym wrote:
very simple to work on and somewhat edit friendly.
This seems like an opportunity for a highly-optimized TAS. Please continue!
Editor, Experienced player (882)
Joined: 7/20/2011
Posts: 345
Well I said it was somewhat edit friendly, but after improving the first stage by 9 frames up to the boss I learned that since we have a value of speed between 0 and 1 while accelerating there are some subpixel shenanigans going on that makes certain jumps desync. I'm not really good at pinpointing subpixels on the xposition via RAM, so I just had to manually edit the stage at these points. Also the boss fight desyncs and based on his first attack, it seems random when he will appear after the first hit. My 9 frames saved in stage 1 may be all negated if I can't figure out a way to manipulate this fight to a better pattern. Here's the 9 frame improvement file anyway, I killed/hit some extra enemies for entertainment: http://tasvideos.org/userfiles/info/72954535641103783 I'm not really good with figuring out RNG via RAM watch tbh, so I'm not sure about it other than trial and error. Edit: Well I inserted a frame in order to sync the movement back up and somehow it resynced the boss fight, at the cost of 1 frame. I also killed another enemy in the level just because I could, and didnt result in any desyncs. Here's the new movie of 8f improvement to stage 1: Link to video Edit 2: So the subpixel position of X and Y were right next to the values of the x and y position, how about that. Xsubpos: 0010 Ysubpos: 0018 Subpixel count increments by 32 every time you accelerate or decelerate, to a max of 256. If it reaches 256 you gain a pixel, if it reaches lower than 0 you lose a pixel. Subpixel incremental values: 1.0 -> 1.125 -> 1.250 -> 1.375 -> 1.50 -> 1.625 -> 1.750 -> 1.875 -> 2.0
Current thoughts: Hachiemon (J) for GBA.
Skilled player (1650)
Joined: 7/1/2013
Posts: 433
Exonym wrote:
subpixel shenanigans
Things just got tricky!
Editor, Experienced player (882)
Joined: 7/20/2011
Posts: 345
WIP of stage 3 Link to video I've learned several things while working on this stage. First of all, any projectile that hits you in this stage will freeze you into place and you have to keep pressing punch or jump to break out. It takes quite a while so we want to always avoid this. The projectiles that spawn from turrets when the music changes can be avoided by timing your grappling hook to pull you up on the same frame it would collide with you. The projectile disappears and you dont get frozen or take damage. This is better than the alternative of waiting for the projectile to move out of the way or ducking underneath them. The enemy projectiles do not work in this same way unfortunately, so they must be ducked under, unless there's some other way of dealing with them. No batarangs to be picked up in any quick locations until near the end of the stage unfortunately. The batarang can be used to skip a damage boost I previously had on the rocks before the boss room. This alone was not worth the detour to pick up the batarang but since we start so far from the boss, we can get a few early hits on. However, the batarang seems to deal less damage than just a normal punch so I'm still unclear on whether or not the pickup was totally justified. I'll probably do some more testing later on to determine if it is. The laser projectiles on the boss can be avoided by grappling in the same way as the orbs from earlier in the level, so there's probably something I can do further regarding that and may cut out he batarang entirely, but we'll see. Subpixel positioning when pulling yourself up through a grappling ledge matters, having a lower subpixel position means you land back to the ground a frame earlier and can start moving faster. Pressing the opposite direction on the same frame as jumping will turn the sprite around during the jump but not lose any speed so long as you do not press another direction. This makes for some cooler looking jump sections even though it does absolutely nothing. Also there's some weird glitch in the second level (which I didn't post here) where if you punch while in the air just before hitting a ceiling it will glitch out and softlock the game. It's super easy to do and in fact happened to me several times while just playing the game. Not sure how this got past testing but so it goes.. That's it for now, I might not post another update until submission but I just wanted to document some of the tricks found so far. edit: So it turns out I was right, using no batarangs is faster even though it takes much longer to get to the boss initially, simply because the regular fist does 2x the damage of the projectile attacks. Using some tricks to keep the boss in a loop ends the fight around 70 frames faster than using batarangs. It's kind of a shame since I wanted to find a way to make them useful, but I think the updated version will not collect the batarang powerup. It only saves like 15 frames on the rock section, and takes much longer than that to grab the powerup.
Current thoughts: Hachiemon (J) for GBA.