LEGO Bionicle (subtitled in some places as Tales of the Tohunga or later as Quest for the Toa) was a game taking place in the universe of the Bionicle, a brand of LEGO toys with an accompanying storyline. It was released during the brand's first year and takes place directly prior to the first story arch. You play as Takua, a Tohunga (later renamed to Matoran) villager, and you go around to the 6 areas of the island of Mata Nui and rescue the 6 Turaga (village elders) and reclaim the 6 Toa Stones. In this movie I only got 2 of each through the usage of a variety of glitches and exploits. The game has some interesting momentum mechanics, an item that allows you to drag objects to you or drag you towards objects, some bizarre handling of collision that allows you to hop along walls and even the edges of the screen, and a number of other glitches make this TAS very different looking from regular play.
Note that in this upload, rotation walking looks different then when I play it on Windows Media Player or in the emu. Probably has to do with framerate, I don't know how to fix.
- Emulator used: Bizhawk 1.11.3 (VBA-Next core)
- Aims for fastest time
- Takes damage to save time
- Heavy Glitch Abuse
This was a game I owned as a kid and it's not that good. It's fun, but it's poorly made. I didn't play it for years before finding out that somebody submitted a run of it to SDA. It was kind of sloppy, so it was rejected, but it is the reason I started looking into this game. When I got ahold of my copy again, I immediately found a glitch that led to a couple different sequence breaks. I didn't have capture equipment so I used emulator to record my findings. Vibex (RTA runner) made a new run after I found that glitch, which is a little over 16 minutes. I kept finding more and more glitches before I eventually started TASing the game. This is basically the second TAS I made of this game. The first one I did not submit because I was not satisfied that I had put sufficient time into it. Additionally, I found a couple new glitches before starting work on this TAS. As such, this TAS is 33 seconds faster than my previous TAS, and almost half the length of the out of date human record.
LEGO Bionicle is a top down action-adventure game. You can walk, jump, pick up things on the field, and use items that you are able to assign to shoulder buttons through an inventory menu. You explore, collect items, solve "puzzles", fight enemies, and talk to NPC's that honestly rarely say anything helpful.
Basic Movement Mechanics
Walking up/down moves the character 1.333333 units a frame in the y coordinate, walking left or right moves the character 2 units in the x coordinate, and walking diagonally moves the character 0.7559289 in y and 1.309307 in x.
There is a countdown going when you are facing a diagonal direction and are not holding a diagonal direction that goes from 0 to 2 to 1 then loops. This value can be viewed in memory. If you are holding the diagonal direction it stays at 0 and if you are not facing a diagonal direction it also stays at 0. If you are facing a diagonal direction and want to change directions to a cardinal direction, the input must be performed when the value switches from 2 to 1. You can switch to another diagonal direction at any time though.
Short hops are performed by pressing B while not holding any directions on the dpad. They are slower than walking and are avoided for most scenarios. Short hops do not lead you to bounce off of walls however, which is not true of any other form of movement that places you in the air. At the end of a short hop is a frame where your x and y velocities are set to 0.
Long jumps are performed by holding a direction on the dpad while the B button is pressed. You must be able to move in that direction however. If the diagonal countdown is on the wrong value when you try to perform a long jump in a cardinal direction, you will simply short hop in the direction you were facing instead. You move slightly faster than you would walking and last about 40 frames. The values are:
- Horizontal long jumps: 2.2 units in x
- Vertical: 1.46667 units in y
- Diagonal: 0.8315219 in y, 1.440238 in x
Like short hops there is a period of time where your speed is set to 0. Unlike shorthops, you will bounce off of walls or the boundaries of the screen if you long jump into them.
With both short hops and long jumps, your speed is fixed for the duration of the jump, so you cannot change directions mid jump.
I sometimes manipulate the diagonal counter during diagonal short hops and long jumps by holding a diagonal direction for a couple frames when it would have no impact on my position to make it so I can change directions as soon as possible after performing them.
If you perform a short hop or a long jump and land along a wall or the boundaries of the screen that is beside a pit or a pool of water or lava, rather than falling into the pit/pool, you will be treated as though you landed on the ground. Furthermore, diagonally short hopping allows you to move along the wall. This is called boundary hopping. This trick allows for the three biggest sequence breaks in the run.
Typically you bounce off of walls when you long jump into them, in order to perform a long jump and land along a wall, you need to be a good distance away.
Knockback from long jumping into walls can be manipulated by pressing a direction when you hit the wall, causing you to bounce in a different direction.
How speed in this game works is that for the most part the x and y velocities are separate. Things can change them, but if nothing is otherwise manipulating the value, they will slowly approach 0. Neutral input on the dpad or inputs on the dpad that are ignored due to the diagonal countdown sets both values to 0. Pressing a to grab something when there is nothing there or using certain items will allow for these values to drop slowly. If you change between cardinal directions, this causes the direction that you are holding to drop slightly. If you hold right for one frame and then down on the next, your x-speed on the first frame will be 2, and on the next frame it will be 1.8. The reason the diagonal countdown exists is to prevent you from taking advantage of this. For humans it is difficult to switch between two cardinal directions without either hitting the diagonal or having a frame of no input. For TAS, this is a simple matter. Two techniques result from this:
- Rotation walking: Repeatedly switching between two cardinal directions to walk in diagonal directions faster than even long jumping diagonally.
- Curve jumps: Long jumping while there is momentum in a previous direction allows for you to jump in a sort of curve shape and make jumps you could otherwise not make.
If your total speed is above a certain amount, you will lose control and not be able to walk or jump and be in a sort of slide until your speed drops back down to a certain amount. Neutral dpad input here will not set your speed to 0, but there are other ways of getting out of this faster.
Touching certain sets of coordinates will cause you to transition to different areas. Most of the time these are at the edge of the screen, but there are a couple elevators in the middle of the screen that take you to new areas. Additionally certain events can also warp you to other areas.
If you perform an input on the last frame before the transition, it will be performed on the first frame you switch to the new area (there are exceptions).
There are two types of transitions, a fade to black transition, and a pixelated transition. The pixelated transition takes longer, but I'm not sure how to manipulate them. I think they're based on RNG, but manipulating RNG isn't exactly a matter of changing a few inputs in this game. I'm not sure how to go about figuring out how the RNG worked. If there was anywhere you could improve on this TAS, this would likely be it, if you could figure it out.
You are able to assign items to the two shoulder buttons in the inventory screen. They are able to be used in most areas, however some areas deactivate items. Aside from the introductory beach area, any area where you cannot see the HUD you cannot use items.
There are basically 2 types of items I get in the run:
The first are flingable items. These include regular fruit, explosive fruit that act as a one hit ko, rocks, snowballs and discs. Most of these use ammo, except the discs which use energy which will be explained later. For the most part I use explosives.
There is a glitch where you can switch between throwable items so that you use the ammo of one item instead of another allowing you to even throw things you don't actually have ammo for. I call this the throw swap glitch. This requires you to either dedicate both your shoulder buttons to throwable objects, or to go into your inventory and swap the item that is on that button to the item you want to throw. Therefore this can cost time to use, so I do not use this very often and I have to keep track of my ammo.
The second are tools. These also use energy. Energy slowly regenerates in areas where the HUD is visible, but can also be regenerated by berries that are placed throughout levels. You cannot use most tools or discs unless you have energy. The individual tools have more specific uses and I will explain most of them as we come across them.
One tool however, is particularly important and is used prevalently enough to explain now: The Volo Lutu Launcher.
There are also health/energy upgrades that can be collected throughout the game that increase your total health/energy by 2 and fully restore both. I grab none of them because they are usually out of the way. They also cause you to go into this victory animation and causes a flash of light that can be canceled by sliding into it with the launcher, but as mentioned, you use the launcher in all areas.
Volo Lutu Launcher and Glitches
The Volo Lutu Launcher which I will be referring to henceforth as the launcher is an interesting item that you get relatively early in the game. It fires a projectile that sticks to various objects, walls and even enemies. It takes up energy when you fire it, but for whatever reason you can still use it even when you don't have energy. This is the least interesting thing about the launcher.
Hitting the launcher button again once the projectile has attached to something activates the sphere. It does one of two things depending on what it is attached to.
When attached to "Large" objects, stationary objects on the field like shrubs or small rocks, certain walls that the projectile will attach to (it won't attach to every wall), or even larger enemies will cause you to be pulled through the air towards them. The x and y velocities will increase or decrease depending on your position relative to the projectile. This is intended to be used to cross gaps you could not otherwise. Letting go of the launcher button makes you fall to the ground (or into a pit if you're over one).
If you hit any sprite or a wall while in the air, you will bounce off of it and lose health. This includes health and energy pickups. Energy pickups placed over pits or lakes for seemingly no reason serve as landmines that will make you fall down.
Your speed is not reset prior to using the launcher, so if you have any speed prior to using the launcher, when it is activated, the speed will be added onto your pre-existing speed. This could be used to accelerate towards an object faster or even enter a sort of orbit where you circle around it.
When attached to smaller objects or small enemies, the reverse will happen, and they will be pulled through the air towards you. This isn't explained in the game's text, nor is it ever required in a casual playthrough, so I'm not sure why they added this. If they collide with you, you will take damage and the effect is deactivated. Letting go of the button also deactivates it.
There are a number of glitches associated with the launcher.
- Pause Interrupt: If you pause while using the launcher, you will get placed on the ground and the sphere will deactivate. Note that you will be on ground after unpausing even if you were over a pit or a pool, allowing you to effectively stand in midair. This also prevents a certain value from getting set to 0, thus activating another glitch.
- Momentum lock: When using the launcher, a value gets set that basically turns off deacceleration. If you pause interrupt a launch, it never turns back to 0.
- Momentum lock walking/jumps: If you paused at a low speed you can perform this. You switch between two cardinal directions and move at max speed in both directions until you have neutral input. You can also use items without losing speed. You can even long jump while doing this allowing for walking speed in one direction and long jump speed in another.
- Momentum lock slides: If you are over the speed cap, you basically slide forever until you use the launcher again and exit momentum lock or use another method of decreasing your speed. Your speed will not be impacted by walls or anything. This allows you to move at high speeds for far greater distances than intended.
- Object/Enemy Teleport: When the launcher projectile attaches to a small object or enemy that is able to be dragged, a pair of addresses get set to 0. If it collides with you, these addresses get set to values corresponding to x and y coordinates. They are likely used to relocate where the object/enemy should be placed after the collision. These values will stay the same until the projectile attaches to another small object. If you then press the launcher button to fire a projectile at another object/enemy of any size, but then let go of the button and start pressing it again before it has fired, the launcher projectile will fly out as normal. Letting go of the r button will make the projectile disappear however. Running into the object/enemy (can be large or small) when you let go of the button will set some of their position coordinates to the values previously set. Which change depend on the object/enemy and where you run into them. I use this twice to set up an enemy in a completely different spot, and fire the launcher into where it used to be, sending the projectile to the new position, allowing me to get pulled towards a far away location. The third time I use this is at the end of the game to solve a puzzle without having a certain item.
- Launcher double activation: If you use the launcher while the launcher is active, the game gets confused. There are two methods of doing this. The first is to use the select button to open the inventory and let go of the launcher button, then close the inventory menu. This will allow you to use the launcher without holding the button down. Pressing the launcher button again will cause double activation. After I finished this TAS, I discovered that you can also perform double activation by having both shoulder buttons set to the launcher, and then press the second shoulder button when you want to activate it. I edited the end of the movie to implement this second method where it obviously saved time without too much alteration, but to implement it elsewhere would require changing much of the movie. This also has the drawback of dedicating both inventory slots and thus more swapping of inventory. This has two effects:
- Launcher Fling: Your speed will get locked at the speed of the frame you caused double activation. and you will fly through the air. This is similar to momentum lock slides but you will pass over certain objects and pits. The problem is that opening the inventory is slower than opening the start menu and you will collide with objects as you normally would. Therefore, slides are generally better for most purposes.
- Large Object/Enemy Dragging: if the sphere is attached to a large object that you normally couldn't drag then in addition to the fling, the object will be dragged towards you. If it collides with you, an object teleport will be performed. This is also true for two enemies that you otherwise couldn't drag, the blue spiders that melee you in Ga-Wahi (water area)/Po-Wahi (canyon area), and the goats in Le-Wahi (Tree area)/Ko-Wahi (ice)/Ta-Wahi (lava). However, most other enemies you can't drag crash the game upon double launcher activation. In Bizhawk, this crashes the entire program which is really annoying. In a different emulator (mGBA) I got an error message saying that the game tried to read a nonexistant address.
- Text box interupt: Rather than exiting you out of a pull like pause interrupts, if a text box appears during the launch, you get placed on the ground, but the projectile will still be active. Because you're on the ground, you won't bounce off of walls, and you can use this to build up enough speed to pass through walls. This is used only once.
Comments by area
Before this begins, I'd like to explain why I didn't bother even typing a name that wasn't the default. Basically, I close out of every text box before the name pops up anywhere so nobody could read it.
I hold right before actually transitioning to the beach to head right for one frame before the text box. Downside is that you get an extra lag frame so it kinda balances out. Holding right before the text box makes me slide to the right instead of staying still for a little while after exiting it. Once I am able to walk, I immediately start taking advantage of rotation walking and curve jumps. This will be a large amount of the movement up until I get the launcher. When I get to the turtles, the game intends for you to cross by throwing a turtle into the water. This is really slow, so I skip the first by curve jumping to the next shore, and I skip the second by just simply jumping to a closer shore.
When pushing boulders, generally you push faster from top/bottom then diagonally. Horizontally, pushing/pulling from the right side is actually the same x-speed as diagonals, if you are on the left however, you go slightly faster. However, in this case, switching from diagonal to straight down outweighs the walk around it.
Beach to cave
The pickups here give tutorial text if you touch them, so they're important to avoid. I also first take advantage of the input buffered by the area transition to curve jump as soon as possible.
I transition-buffered a long jump upwards so I would be moving slightly faster when I didn't have control after the text box.
Onu-Koro (earth village)
So there is actually a faster way to get through here, but in this TAS it seemed to result in the slower transition, so I went with this strategy instead.
Also I opted not to collect Vakama's Staff that lights up areas by simply having it in your inventory. It also could temporarily stun enemies in Onu-Wahi if you use it on your shoulder button, but it's kinda slow. If you wanted to make encodes of dark areas (there are only 2) with the lights on, you could simply increment address 2F55 (one byte) in IWRAM to 1 and you will place the staff in the inventory. You need to do this before a dark area begins to fade in on the screen. I give no guarantees that the whole TAS will sync if you do this, but it should work for the two areas.
Onu-Wahi First Section (Rescue Whenua) (dark section 1)
The first dark section, and the first section with enemies. I avoid fighting most enemies because I cannot long jump while flinging fruit, and they're easy to avoid here. The stalactites drop down when you get close enough, and I try to avoid getting hit by them too. I try to avoid damage when it doesn't save much or any time because only enemies drop health pickups and they can take a while to spawn and they take a while to hit the ground where they can be collected.
I jump into the walls in a few sections to avoid taking damage by the boulder traps that you would otherwise need to take the hit or wait for them to move out of the way. This also conveniently turns the lights on unless I open my inventory which I don't need to for this segment. As a result, the darkness doesn't last long in this segment. The next dark section I don't need to jump into any walls, so it is completely dark.
At one point I bounce off of a giant red mushroom thing, I manipulated how I was facing so it would push me in a beneficial direction at over 4 units of speed (double normal speed), causing me to temporarily lose control, but I maintained a bit of momentum when I regained control.
The last boulder I managed to walk around with specific movements. It's relatively precise, but since the knockback animation takes a while, it saves a bit of time.
In the end of the area, you are supposed to fight a boss and then solve a puzzle to rescue Whenua. I skipped fighting the boss however. To rescue Whenua, you need to place the two boulders on the switches. I came up with two plans on how to do this, and this plan was faster by my math.
Once I place the second boulder, I need to wait for a period of time for the cage to open. Where I am when it opens doesn't matter, so I get far away from the activated boss and the enemies it spawned, since they create a bit of lag. It's possible to one hit kill the boss with an explosive using the throw swap glitch, but this requires opening the inventory and thus would lose time. The boss would drop a health/energy upgrade however, so there could be an advantage to doing this in a later TAS depending on how you route health.
Once Whenua has exited the cage, a text box appears (which I immediately close) and I get warped back to the village.
Onu-Koro second visit
I exit out of another text box and grab my reward for the rescue: The launcher. I immediately equip it.
To go to the next village I need to get the Toa Stone so NPC's will let me through. To get NPC's out of the way of the section to the Toa Stone, I needed to rescue Whenua. There is no way around the NPC's from what I can tell, they're surrounded by invisible walls. Clipping isn't really a good option in this game, it rarely happens, and you're almost always stuck. Only way to get through would be items, but all villages are no item zones.
I head up to the area I need to head to get to the toa stone. You can jump on certain spots in that small circular... thing above where I got the launcher. Other spots cannot be stood on and will cause knockback.
Onu Wahi Second Section (second dark section)
This section is entirely in the dark (aside from a little bit where I jump into a wall right when I hit the next loading zone at the very end).
I used a certain strategy for the very first section in my first tas, and I spent a bit of time testing other strategies in this one, before eventually switching back to this one.
I use momentum lock quite extensively here. I even manipulate a mushroom bounce using the grab animation to get me sent down a hall, hitting right at a certain point to get sent down right.
One enemy is kind of slow and really in the way, so I take the time to defeat it.
I use the launcher on a yellow crab thing to setup object teleport coordinates for Ga-Wahi Second Section (water area).
You can't really move when on the elevator, but you can at certain points to trigger the next area slightly faster.
Onu Wahi Third Section
Strangely this area isn't dark.
In order to get to the toa stone I need to blow up a wall. The wall takes a little while to crumble, so I use the throw swap glitch to throw an explosive before I actually pick some up. While I'm waiting for the wall to crumble, I gather the 5 real explosives so I don't have to go into the menu every time I want to blow something up.
Grabbing the Toa Stone warps me back to the village.
Onu-Koro 3rd visit
I take two mushroom boosts here which save a little bit of time. Before I can leave the village, they want me to participate in a minigame which I immediately exit out of.
Onu-Wahi to Ga-Wahi (cave exit)
Nothing to really say here.
Ga-Wahi First Section
This is the first Launcher Fling I do, it takes me straight to the exit.
I lose out on three explosives by doing this, but the 5 was enough to last me to the next few.
Ga-Wahi Second Section
Once I get to the next island, I teleport the blue spider to the coordinates I setup previously. Those coordinates correspond to just a little above the exit, which is at the bottom. I then fire the launcher at where some of the spider's collision was remaining, sending the launcher sphere to the spider's location at the bottom. I then carefully aligned myself, and setup some momentum such that I would then accelerate towards the exit.
There are a few other viable strategies, but this seemed best from my testing.
The first instance of boundary hopping is Ga-Koro Skip, I completely skip rescuing the Turaga and getting the Toa Stone by jumping along the top of the screen. You actually land along a wall before transferring to the edge of the screen. If your position is off, instead of landing along the edge of the screen when transferring from the hard to see wall, you will land in the water instead.
Entrance to Po-Wahi (stone)
Not much to talk about here.
Po-Wahi Section 1
I do a long momentum lock slide at the beginning here. I collect the drill since it is required. It allows you to tunnel underneath certain small openings, trigger certain things that look kinda like anthills, and also allow you to defeat scorpions (and a giant scorpion boss) by popping up from underneath them.
The drill also has a weird quality where when the button is pressed, your speed gets set to 0, even if you're using a different item where you can't use the drill. This is used in a couple places.
At the end I setup teleport coordinates for Ko-Wahi. The bird gets in the way so I threw an explosive at it.
Explosives normally hurt you if you throw them from close range like that, however I got hit by something that deals less damage first so I didn't take any damage from the explosion.
Po-Koro Visit 1
You're supposed to head to the left first and rescue the turaga first before going down and getting the Toa Stone. The hammer in the left area will allow you to smash rocks. You could alternatively use large object dragging, but I thought it was slower at the time. I'm not so sure about it now with the alternative method.
Regardless, in this first visit I went left.
Po-Wahi Rescue turaga first section
I grabbed the hammer, and made my way towards the top of the section. I needed to keep a careful eye on my health, I wanted to end up with at least 6 health exiting Po-Koro (3 full circles, a smaller circle is 1 health).
I used my last explosive at the very end, but the next section has more.
Po-Wahi Rescue Turaga second section
I grab some explosives for later on and to defeat a projectile flinging spider that would have hurt me otherwise.
To open the way to the next area you need to burrow underneath the molehills.
Po-Wahi Rescue Turaga last section
To open the cage to the turaga, you have to burrow underneath all the molehills. However, those green enemies will pop up from the ground and will knock you all over if you aren't careful. I abused the speed affecting properties of the drill here.
You have to wait after triggering the last one so I avoided enemies.
Po-Koro Second Visit
I didn't take the health upgrade since the animation is long.
Po-Wahi toa stone section
The boss in the middle of the area has the toa stone. To get there, you're supposed to go all the way around. Instead I used a textbox interrupt by triggering the text for grabbing the disc. For whatever reason you can grab the disc by throwing stuff at it. I make sure to go through the wall where it is the thinnest.
The boss is a giant scorpion that takes two hits. You cannot pass underneath it unless it is distracted trying to break a large boulder. I perform a double hit which defeats it in one cycle. It seems to be both dependent on position and on time.
If I did not have at least 6 health here, I would have not been able to perform the strategies that I wanted to later on, but I was.
I again have to enter and exit a minigame.
A launcher fling worked rather well over the pit.
Not much to say.
I trigger the bird appearing by jumping to the right. You need to collide with the pilot with the launcher to knock him off. The bird takes you to another minigame that is skipped.
I can't make that first elevator, so I head right and wait for the second. I then use more boundary hopping to skip clearing Le-Koro.
Another minigame to exit out of.
I boundary hop so I wouldn't need to use the hammer on the rocks.
I setup an enemy teleport to get taken to the end. The snow owl's shadow (seriously) gets in the way a lot though, so I had to manipulate it's position.
I head straight for the entrance to Ta-Wahi
Ko-Koro skip involves a precise long jump to a wall.
I use explosives to manipulate the goats' behavior so they won't attack me.
Nothing to explain
I don't need the explosives. Any enemies from here on out either don't drop health or take too long.
I grab the lavaboard even though I could skip it because it's significantly faster.
I skip rescuing the Turaga with a curve jump around an NPC.
Ta-Wahi Lava Maze
This section is kinda large.
The lavaboard doesn't use the same speed addresses, I couldn't really find it. Jumping on/off the lavaboard while facing cardinal directions is pretty weird, I think it like autoseeks ground/lava. Throwing objects while on it propels you in the opposite direction.
Ta-Wahi Geyser Room.
I walk around the last toa stone to avoid text.
To get to the end of the game you need to place boulders on the three switches to create a crystal, have a smaller boulder placed in the geyser, which will land on the crystal and smash it.
For the first two boulders I used large object dragging.
For the last one I manipulated the small boulder such that it entered the geyser and collided with me at the same time setting up an object teleport. If the projectile collides with you after it enters the geyser, it will take the coordinates of the fountain, which are not good.
I then teleported the last boulder and pushed it to the switch before the rocketed boulder landed.
I activated the launcher at the last second to glitch out the cutscene.
Propeling yourself with fruit doesn't work here. Firing up right hits the ostrich thing as soon as possible allowing for you to trigger the loading zone sooner.
This is a timed sequence where you dodge randomly generated obstacles by moving left and right. I went for as many close encounters as I could.
There is a way to glitch this sequence by buffering a start input and selecting quit game. It would cause the obstacles to glitch out and my character too. I would be unable to move, but would be guaranteed to win, resulting in a shorter input file. However, it delays the end of the game by 20 frames, and honestly feels like a lazy way out of having entertaining during the autoscroller (video here: https://www.youtube.com/watch?v=jQSs6hA6fGg)
Ending scene will play itself without any inputs.
Thanks to vibex who was the reason I started work on this game and who found Ko-Koro skip.
I largely mentioned potential improvements above, but this game doesn't sync well with different inputs largely due to lag and RNG.
Potential Screenshots are frames 11660, 12161 and 22083
Samsara: Bionicle was my jam back in the day. And still probably today as well. Judging.
Samsara: Now this movie is my jam. While the start was slow entertainment-wise, the insanity really picks up with the acquisition of the launcher, turning the run into a delight to watch both from an entertainment standpoint and a technical standpoint. Accepting to Moons.