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:
I like this frame in particular:
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.
Eh, if I wanted to submit a TAS for this, I'd probably end up redoing the whole thing to see if I can squeeze out more frames by using y-subpixel optimization. It'd be difficult for me to justify submitting a movie that might have known optimizations when it's so short.
I discovered that might be relevant for optimization when it was the only thing keeping the TAS from syncing after I added the first corner boost. It was added after I'd finished the rest of the TAS, and doing it gave me a different y-subpixel, so I had to add another specific jump afterwards to get it to the same value as before. (This added corner boost doesn't even save time — I just added it so nobody would think I missed the opportunity).
I think he might be updating the ROM a bit since it seems to be incompatible with certain flashcarts, but this doesn't sound like a change that would actually cause any gameplay differences. The relevant Twitter conversation is here.
Since he's already seen this TAS, though, it might be possible that he wants to fix being able to shoot the third guy in the second room while they're crouched. That's basically the only bug/exploit in this TAS besides the mundane corner boostings. If he does do that, it'd require a significant reroute.
...Yes, really! The guy who made Gunman Clive, Bertil Hörberg, also made a fully-functional Gameboy version of the first level a few days ago. This TAS I made of it today is my first TAS ever.
Link to video
There's some commentary in the YouTube video as subtitles.
Some useful and not-so-useful RAM values:
0424 X velocity
0425 Y velocity
0420 X subpixel position
041F Y coordinate
0422 Y subpixel position
0423 Y superpixel position
0449 Jump assist timer
00B6 X coordinate (camera)
00B9 X superpixel (camera)
0444 Camera x offset
0438 Sprite change timer
0428 Invincibility timer
This TAS was fun to make, but I suspect it's a bit suboptimal. There might be strategies I didn't think of, since I'm relatively inexperienced. I also didn't do any y-subpixel optimization, because subpixels are evil. I doubt there are any glitches to be exploited in this, as the programming seems quite solid.
Edit: Bertil Hörberg has seen this TAS, as he retweeted it a little while ago. Woo!
Yeah, I fully agree with that. (Soldexus / Game Maker does actually use MIDI, but since it sounds fine during playback, that's not what the issue is here.) Regardless, I still wouldn't start working on runs of this unless the input issue was fixed.
Nah, both these games lack audio capture, but are still audible during normal playback. FractalFusion clarifies what was meant by the rejection message for that run here.
Here's a pretty good game that you haven't heard of. You should give it a shot. (Convert the .exe with this tool to make it run on Windows Vista or later.) Here's an introduction blurb I wrote:
Soldexus is an action adventure game created almost entirely by Patrick Ching II (aka Pneophen). It follows the example set by other adventure games (like the Castlevania series) for its layout and structure, while taking inspiration from 2D fighting games for other elements and mechanics, making for a unique mixture of exploration and technical combat.
Our unlikely hero, Ian, embarks on a quest at Death's behest, to navigate through the Temple of Despair and retrieve the Soul Gem from Phobos. Things get more complicated when rivalling ninjas with guns and an attorney with magical powers get involved.
Soldexus was programmed in Game Maker 6, and released during April of 2006. At the time of its release, it received notable praise for its graphics, with players citing its charming style, good usage of parallax scrolling, and especially its sprites with varying levels of transparency; the lattermost was not often seen in Game Maker games at the time. It was also known for its high difficulty, which drew ire from some players and praise from others. As of this writing, its original entry on yoyogames.com has a rating of 4.0 from 950 members, and has been played over 45 000 times.
I have a fondness for this game since playing it to full completion in my early teens. Since then, I've become very interested in (and entertained by) TASes, and want to make one of my own. I thought this game could be a good place to start — it's not terribly complex, but it has plenty of enemies (bar early Great Hall, I guess), a lot of potential for movement optimization, and some entertaining bosses. Hopefully a TAS would be entertaining enough to warrant a publication, despite the game's lack of notability.
I've created a fair amount of resources about the game (don't click that if you don't want spoilers, obviously), including a full map, documentation of how every enemy is affected by every attack, and details on many techniques and behaviours in my technical handbook. Some of my more notable discoveries: I discovered the Rise bug which breaks huge parts of the game, I found a password to unlock everything from the title screen, I figured out how RNG can be manipulated, I found a copy of 1.01 and figured out how its Float bug works, and I broke the game's completion system by discovering that an Attack Upgrade instance was placed in a non-persistent room. (For gruefood, I also made a Trivia section in my handbook.)
Unfortunately, it looks like an efficient TAS of this game still can't be made yet. For one, Hourglass (r81) doesn't capture audio from Game Maker games in encodes, which is basis for submission rejection. The other no-go is that it doesn't seem to be possible to press and release a key during the same frame using Hourglass, which some techniques rely on. Setting the frame rate to 60 doesn't work, because that results in a weird 2-3-1 cycle of frames per step, rather than making every step 2 frames. Hourglass' interface is also just quite inadequate for what I'd like — for example, it doesn't facilitate modifying input on previous frames, which would be very important for RNG manipulation.
But I figured I'd post about this game anyway, 'cuz why not. Hopefully anyone discovering the game from this post enjoys playing it, or at least finds my research interesting. And when Hourglass does get resurrected with new builds, someone should let me know.
Oh man, I had forgotten about this game for years. I still have the original box for this game in storage. Judging by this TAS and what I remember, I only got maybe a third of the way through this game at most. I really did not like this game, so it's somewhat satisfying to watch it get wrecked in this TAS. Also good to know that I wasn't missing out on anything more exciting than what I had already played. Though the game's pretty slow, I really appreciated the commentary throughout this run.
In short, thanks for making this TAS!