gfd
He/Him
Joined: 3/21/2013
Posts: 9
Location: Canada
Now here's a TAS that nobody's ever asked for. Ice Age is a 2002 animated film, but it's also a Game Boy Advance movie tie‐in game developed by Artificial Mind and Movement (now known as Behaviour Interactive) published by Ubi Soft Entertainment Software (now known as Ubisoft). Its launch in North America was 3 whole days after the movie's debut. Unbelievably, this is the only video game based on the highly‐successful film Ice Age. This game is not that great; it currently boasts a score of 47 on metacritic. The graphics and gameplay are poor, and the programming I would describe as "functional". The music is pretty good, at least. The game is really short, with only 10 levels plus 1 secret level. I haven't found any soundtrack downloads, manual scans, TASes, or speedruns for this game anywhere on the internet. Seems like nobody has ever given a single shit about this game. (By the way, if anyone has the manual for this game sitting around, I would really appreciate some scans/pictures of it! I recycled mine two years ago, which has now become my most weirdly‐specific regret ever.) I randomly remembered this game from my childhood a couple days ago, and decided to make it my first TAS. (Well, not counting this.) It's certainly a good choice for a first TAS, in my opinion. Features: • No RNG (yay!) • No lag (yay!) • Fixed jump height (boo!) • A few exploitable bugs It didn't seem that solidly programmed when I first started cracking into it, but unfortunately I haven't found anything really game‐breaking. I still think its entertainment value is high enough, though; gameplay is relatively fast, and there are a few TAS‐only tricks to showcase. There's also good nostalgia value here; I'm sure viewers will remember some of the catchy tunes. In case I don't get around to finishing this, here's a Google Drive folder with some of my resources, most notably my technical handbook of random notes (in much the same style as my other one). I also learned a little bit of Lua and wrote a script for drawing some player data and hitboxes that you'll find in there. Unfortunately, the area of memory that has all the hitboxes doesn't seem to indicate if they're actually in use, and they're not always cleared when they're dereferenced, so the script often draws some garbage boxes on the screen. I figured the time invested to time saved ratio for doing further research on this wasn't worthwhile, though. So far, I've done the first level: Link to video This might not be fully optimized, but I'm not too concerned about having to go back later and squeeze out some more frames, since changing input for any level/screen doesn't affect any others. Some commentary: [quote=]1‒1: • Jumping is usually faster than walking (airspeed 2.6875 vs. walk speed 2), so most optimization is about staying airborne for as long as possible. However, jump height is fixed, and jumping and bouncing on enemies also have some frames at startup (4 and 10 respectively) where horizontal movement is impossible, so there's not that much flexibility. • Those little blue blips are the tutorial stones. Thankfully they only waste 3 frames. • This jump across these 5 spikes is I think frame‐perfect. I jump as late as possible and shift Manny's position to the right by extending his hitbox with his attack, which barely makes the last spike damage boost him to the right instead of the left. • Horizontally, damage boosting is as fast as walking (2), but sometimes it's faster to just hit an obstacle than to avoid it. • Also, notice how Manny loses 1 Acorn for every spike he hits on the same frame (and screams that many times louder). This behaviour was probably intentionally abused by the level designers here to force kids to learn the bellyflop move, but it's not that hard to boost through the spikes anyway. • The breakable tile bashing is something that I didn't work on optimizing too much, but it won't be hard to edit in any optimizations later if I find any. Jumping up to these tiles would be slower, 'cuz it'd take longer to fall back down to reach the bottom tile. • I again extend Manny's hitbox with his attack in order to hit the end‐of‐screen object earlier. You'll see this a lot. 1‒2: • Slopes are actually the fastest method of movement, but I don't land Manny on this one because it'd be slower overall due to bad positioning. 1‒5: • Manny can't do an attack too early into a jump, so I abuse the fact that pressing B and A on the same frame makes Manny do his grounded attack while still jumping up into the air. He gains horizontal control once the attack ends. It is possible to do the moving version of the grounded attack and jump at the same time as well, but the animation for it loops while airborne for some reason, so while Manny would land on the ledge sooner, he wouldn't be able to jump until much later. 1‒6: • Skunks aren't actually harmful, but they do force you into this really slow floating animation when you stand next to them, which is even worse. You're intended to use it to float over these long spike objects, but there's 1 frame where Manny can jump in a Skunk's hitbox before the float animation actually kicks in. • For some reason, these spikes don't hurt Manny while he's busy attacking. Once he lands, the spike boosts him right, which is good, 'cuz otherwise he wouldn't have been far enough to the right for it to boost him in that direction. • Getting hit gives Manny 60 frames of invincibility, but there's no visual indicator for this. 1‒7: • The lower route is 7 whole frames faster. 1‒8: • Unfortunately, I can't find a way around the Rhino, or an easier route to the Chestnut, so I have to press left for a while. • Bellyflopping through the ground to take the lower route after getting the Chestnut is significantly slower. 1‒9: • The attacks while jumping under the Dodos are actually necessary to manipulate Manny's hitbox dimensions so he doesn't get hit by them. 1‒10: • The bosses in this game are really easy. • Manny can jump on the same frame his win animation starts.[/quote] The B2K for this is in the Google Drive folder I linked earlier, but it doesn't seem to sync when played back on its own, because BizHawk's "Skip BIOS" setting seems to only apply sometimes? I'm assuming that this is BizHawk's fault and not mine, since it seems to have a slew of other problems as well (mostly very frequent crashes). Side‐note: no idea which of the GBA cores—VBA-Next or mGBA—is considered more accurate. I assumed mGBA was better because it was the only one that would even boot my copy of Super Mario Advance 4 (E) (in VBA-Next it just says the save data is corrupted and does nothing). mGBA also seems more stable/cooperative in general. These inputs seem to sync on both cores, though.
Editor, Player (123)
Joined: 8/3/2014
Posts: 204
Location: USA
Good luck, gfd. Oh and you mentioned this being a "TAS that nobody's ever asked for". If you're interested in games of that sort, you're not the only one. Most of the games I've TASed are ones that no one has even considered glitchhunting for.
Experienced player (675)
Joined: 2/5/2012
Posts: 1783
Location: Brasil
as long as you TAS it yourself,it's always a great run lol
TAS i'm interested: Megaman series, specially the RPGs! Where is the mmbn1 all chips TAS we deserve? Where is the Command Mission TAS? i'm slowly moving away from TASing fighting games for speed, maybe it's time to start finding some entertainment value in TASing.
gfd
He/Him
Joined: 3/21/2013
Posts: 9
Location: Canada
Taking a look at some recent GBA publishings, apparently we don't actually skip the GBA BIOS anymore. So then, why was that the default setting in BizHawk...?? This emulator is kind of really frustrating. Here's Level 2: Link to video This is starting to look a bit more interesting; couple of cool skips in here. Learning more and more optimization tricks as I go through this test run. The boss is dull, but I did my best to entertain by showing off some bugs and quirks. Unfortunately, the next level is one of Sid's autoscrollers, but that will still be interesting in its own way, I think... Compensating for BIOS added 4.5s, by the way. Commentary:
2‒1: • Both attacks before hitting those logs are necessary in order to actually land on them. This trick gets used a lot. 2‒3: • Hitting the bees lands Manny on that ledge sooner, as it reduces his vertical velocity. Again, this trick is used quite a few times. 2‒4: • This section is supposed to be an "autoscroller" by activating a really slow (0.5 pixels per frame!) moving platform and following it across the screen, but this first jump is just doable, so I can skip it. Manny has to hit this spike so he can walk through it and make the jump onto the next ledge. He also has to kill the Dodo first; otherwise, the hitstun from the spike would force him to bounce off the Dodo, wasting valuable invincibility frames. He can't kill the Dodo with an attack instead of a bounce because it's too low. 2‒6: • Wheee! It is 9 frames faster to use the slope here, by delaying the jump so Manny lands on the slope, rather than just jump past it. • I use the standing version of the attack animation while jumping when hitting these first bees; this animation has a significant vertical hitbox retraction for the first few frames, which lets Manny hit the bees with enough height that they'll boost him high enough to land on the ledge. 2‒7: • It is a bit faster to wait and bounce off the second Dodo onto the next ledge than to ignore it. • It's faster to break and jump off of the top block of this barricade than to bash through and use the ledge. 2‒8: • I can skip having to jump onto this first ledge by resetting Manny's vertical velocity twice—once by just moving under the ceiling, and again by using a large vertical hitbox extension present on the first frame of his falling attack animation. (Pressing against a ceiling with a positive vertical velocity will reset it; might be a result of how the check for landing is performed?) • I use a vertical hitbox extension into the ceiling to push Manny downwards and land on the second ledge sooner. • The long tunnel section is also supposed to be an autoscroller. I didn't know if this skip would even be possible at first. Manny does have to wait on the platform for a little bit to get just enough horizontal distance to clear this big gap. While waiting, the camera is manipulated so the Dodos are in optimal positions in their hitbox animations for Manny to get maximum distance off of them. Once again, vertical velocity is reset by using the falling attack's hitbox extension, in order to maximize airtime. 2‒10: • The fastest way to hit this boss is to have the Chestnut flying over so it extends upwards into it, rather than wait for it to extend upwards and then hit it. • No, it's not possible to hit the boss and also land on the platform it raises in the same cycle. There's a big object above where the platforms raise to, and coming in contact with it makes the boss invincible for the rest of that cycle. • This boss has the only OOB clip I've found—when it lowers the platform, it can clip Manny below the instant‐death water, where he falls and collides with random garbage. The game otherwise doesn't care that Manny's below the actual level boundaries, so you can no longer complete the level. • No, there is no way for this boss to actually hurt Manny. All it does is raise and lower those platforms, hoping that this will somehow cause Manny to fall in the water. • I consider quitting from the menu during the win animation, but decide against it.
I like this frame in particular: