TheMG2

BIONICLE Tales of the Tohunga info dump

Nov 21st, 2015
319
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. This will document a lot of what I know about the game.
  2.  
  3. I heavily recommend downloading the bizhawk movie file for the tas I made and watching it with input display, it will help demonstrate some things that are hard to see otherwise: http://tasvideos.org/3039M.html
  4.  
  5. Position:
  6. Kinda irrelevant early on, but needs to be discussed.
  7.  
  8. *Things do not seem to have master position addresses. Instead they have pieces that work together and the game updates pieces based on other pieces and based on varying circumstances. This is incredibly clear when doing object teleports and launch storage.
  9. *Origin is the up-left most section of the screen. Moving down and right increase position values, whereas up and left decreases them.
  10. *Interesting things happen to certain position addresses when performing certain glitches.
  11. *I've become increasingly convinced that the game has 0 concept of a z-axis whatsoever. Ko-Koro Skip (the oldest major skip in the game) has a newer explanation, and the elevator glitches are probably just because elevators are terrible.
  12. *Of note are these coordinates that seem to be your position as it relates to camera control. These also control screen transitions. If you see the camera jump to a different spot for some reason, it has to do with these addresses.
  13.  
  14. Basic Movement stuff:
  15.  
  16. *Horizontal movement is faster than vertical movement for whatever reason. Velocity values are in the thread.
  17. *Diagonal property and countdown: When moving diagonally, you cannot change direction to a cardinal direction. You must first let go of the diagonal direction. When you are not holding a diagonal direction on dpad but facing a diagonal direction, there is a diagonal countdown address that goes from 0 to 2 to 1 and repeats. To change direction you must then have the direction input during the frame where the diagonal countdown address goes from 2 to 1. (If you manually freeze the value in emulator, it's when it's 1)
  18. *Long jumps save about 2 frames assuming you need to go the full distance. Short hops are slower than walking but have their uses.
  19. *During diagonal long jumps, the diagonal countdown runs whenever you are not holding a diagonal direction on the dpad. If you land on the ground, and the diagonal countdown is on the wrong value when you try to long jump in a cardinal direction, you will short hop in the direction you were facing instead. How long you have to wait (if at all) depends on the diagonal countdown value, which will stay at 0 for longer if you hold down the diagonal direction for additional frames or press it and hold it for additional frames later on.
  20. **If you hold the diagonal direction for 0 additional frames after starting the long jump, it will be at 0 going to 2 when you land and you must wait 1 additional frame to change direction.
  21. **If you hold it for 1 additional frame, it will be at 1 going to 0 when you land and you must wait 2 additional frames to change direction.
  22. **If you hold it for 2 additional frames, it will be at 2 going to 1 when you land and you won't need to wait any additional frames to change direction.
  23. **It repeats back at the beginning after that.
  24.  
  25. A bunch of velocity values are here: https://forum.speeddemosarchive.com/post/lego_bionicle_gba_230.html
  26.  
  27. Momentum:
  28.  
  29. *There is a concept of momentum in this game that I believe is only intended to be seen with the grabbing nothing animation where you will slowly decelerate. This also happens if you change directions without stopping.
  30. *The strange diagonal property might be what they try to use to prevent you from exploiting this, but it's still possible to switch directions without hitting the diagonal. Most convenient way to do this real time is with a pause, though technically holding a works as well, but you're likely to slow down.
  31. *Rotation walking (you alternate between the two cardinal directions you want to move in to maintain speed in both) is faster than long jumping assuming you want to go diagonally, but is effectively TAS only.
  32. **Vid: https://www.youtube.com/watch?v=YVBiUr2o7bQ
  33. *Curve jumps are where you long jump while having some momentum in a different direction. This allows you to make jumps you couldn't otherwise, like skipping the first turtle section on the beach. In TAS it also saves time by basically eliminating time I would need to dedicate to moving in that direction.
  34. **Example of curve jump: https://www.youtube.com/watch?v=7arSxsZiq5E
  35. *If you go above a certain combined speed (not sure how this works) you will lose all control over your character for a brief moment until your speed decreases to below that mark. You can still use items.
  36.  
  37. Boulder pushing:
  38.  
  39. *If you push/pull from the left side of the boulder, the x-speed is 1. If you push/pull from the right side of the boulder or from any of the diagonals, it's a little over half of that. I have no idea why
  40. *Y-Velocity of pushing/pulling from below or above is the same, and diagonals have about half the y-velocity.
  41. *You can quickly switch from a horizontal/vertical pushing position to a diagonal one if you are pushing from the right spot, let go, change directions, and quickly press a again.
  42.  
  43. Area Transitions action buffers:
  44.  
  45. *If you perform an input on the very last frame where the game is reading inputs when you touch an area transition, the game will perform this on the first frame when you regain control.
  46. *If it is just a direction held on a dpad, it doesn't matter if you are holding it for frames before that. Otherwise, the action will not be executed. This means that first frame long jumps aren't that viable for RTA.
  47. *If you hold a direction entering an area transition, then switch directions and start holding b during the transition, you will perform a guaranteed curve jump.
  48.  
  49. Knockback manipulation:
  50.  
  51. *You can manipulate what direction you bounce back towards whenever you do that tumbling animation by holding a direction whenever it begins. Note that it doesn't work if this knockback was caused by launcher usage.
  52. *You won't take damage from the boulders in the first Onu-Koro section if you bonk into a wall instead of the boulder.
  53.  
  54. Menuing:
  55.  
  56. *Menuing is... weird
  57. *Read the forum post, I explain it in depth there: https://forum.speeddemosarchive.com/post/lego_bionicle_gba_219.html
  58. *One thing I missed that the current runner already knows, but is worth documenting nonetheless in case somebody else picks up this game: You can wrap around the menu horizontally. If you move the cursor to the left when on the left edge, it will appear on the right.
  59.  
  60. Throw Swap Glitch:
  61.  
  62. *With this glitch you throw an item at the ammo cost of a different throwable item. If the latter is a disc, the cost is nothing. You can throw items you have no ammo for with this glitch (for example explosive fruit before you get any ammo).
  63. *There are multiple ways to trigger the glitch:
  64. **One is to switch the item on the button after you start the throwing animation.
  65. **The second is to hit the button of the item you want to use on the one shoulder button, and then hit the button of the item you want to throw on the other before the thrown object sprite appears.
  66. **The last is to hit both buttons simultaneously however, the item you want to throw must be on l and the ammo you want to use must be on r if you do this. Surprisingly hard to do and not faster than the method above.
  67. **Uses include destroying the rock wall before you even get the actual ammo for it, and for one shotting the first boss.
  68. *Drawback to this glitch is that it requires you to either dedicate both item slots or switch items whenever you want to perform it.
  69. *Video: https://www.youtube.com/watch?v=mWFUr36vQD4
  70.  
  71. Boundary Jumping:
  72.  
  73. *The character can jump onto the sides of walls and even the edge of the screen without falling into what may lie along it.
  74. *This is the main method of sequence breaking in this game.
  75. *You can either short hop or long jump into a wall. Short hops are way less precise, and can be performed from a wider range of distances, but they must all be close enough. Long jumps can be done from a further distance, but you have like two units of variance to be able to do it from.
  76. **Ga-Koro Skip is an example of using short hops: https://www.youtube.com/watch?v=STrzw4NmgC0
  77. **Ko-Koro skip is an example of using long jumps: https://www.youtube.com/watch?v=jOBjTwd4WeA
  78. *Short hopping digaonally allow you to hop along the surface without fear of bonking. However keep in mind that you need to land along the edge of the boundary at the end of the hop otherwise you will fall. Angled surfaces may cause problems here.
  79. *If you are along the left edge or the top edge of the screen, two values that may to correspond to hitboxes wrap around to the max value. This causes you to be unable to be hurt while boundary hopping along the left and top edges of the screen because your hitbox is actually partially wrapped around to the other side of the level.
  80. *For whatever reason if you talk to a sign or NPC, you will bounce off of boundaries rather than jump beside them. I have no idea why.
  81.  
  82. Launcher Mechanics:
  83. The launcher is very weird and very buggy, glitches will get their own subsections.
  84.  
  85. *If you pull out the launcher while moving, you will slide a little bit, this isn't important in this section but is in others.
  86. *Directions on the d-pad will aim the targeting reticule, if you hold the button, you have longer to aim. When you are not using the launcher or have yet to release the button, the launcher is in state 0.
  87. *When you let go of the launcher button for the first time, that determines when it will be fired and you will be put in state 1.
  88. *Once the launcher has been fired, you enter state 2 and will remain in state 2 if it finds something to latch onto.
  89. *The launcher has 2 functions: Dragging objects towards you, and dragging you towards objects. Which one depends on the object in question.
  90. **I'm not sure how much of the dragging objects to you function is really intended, nothing in the game brings it up, and you're never required to use it.
  91. *If the former, when you press the button again to drag, you remain in state 2, until you let go of the object when you enter state 3. You remain in state 3 for a very short period. If the object dragged hits a wall or you, you remain in state 2 until it returns to you.
  92. *If you start moving, the object's pull towards you will effective cause it to orbit around you.
  93. *If you are being dragged towards the object, you remain in state 2, and will remain in it until you either let go or hit a wall, in both cases you enter state 3.
  94. *When you are being dragged towards an object, a byte is set that effectively removes deceleration until you enter state 3.
  95. *When being dragged towards an object, your velocity prior to being dragged will be taken into account. This can either cause you to start orbiting around the object or simply start approaching the object faster or what have you. The pull of the object works against the prior speed.
  96. *Certain things you will pass over while launching, others you will bonk into. It's the same as jumping as far as I know.
  97. *The longer you are being dragged towards an object, the more the pull will have an effect on your velocity.
  98.  
  99. Launcher Animations Glitch:
  100.  
  101. *While using the launcher, certain animations are canceled, most notably the collection of health upgrades and the death animation. The former can be done by simply sliding into the upgrade while aiming the launcher. The latter cannot if there are no enemies.
  102. *The launcher animations glitch involves being stuck in the launcher aiming state, yet you are able to use different items.
  103. *Best way to trigger it is to press a while holding the launcher button to aim.
  104. *Then press b and you do a weird launcher jump in the direction you are aiming. If you let go of the launcher button while doing the jump, you will remain in the state until you press and let go of the launcher button (or trigger another means of exiting the state)
  105. *The most useful application of this is quickly dying. This could be to refill health, or to respawn at the entrance screen.
  106. *There are other weird oddities, but none of them are particularly useful.
  107. *Very situational
  108.  
  109. *Not entirely the same glitch, but if you press a after you have fired the launcher, you are able to jump around and stuff while still having the launcher projectile attached. This could be used for getting in a better position before performing a launch.
  110.  
  111. Launcher interruption:
  112.  
  113. *If you pause the game while in the middle of a launch, it cancels the launch. Note that hitting select does not work, it must be start. However, hitting start and then going into inventory that way is fine.
  114. *You will be able to end up on top of pits, water, or objects you would normally be knocked backed by if you jumped on top of them. This can be used to cross gaps you could not otherwise.
  115. *You will also trigger a glitch called momentum lock because you never enter state 3.
  116.  
  117. Momentum Lock and Slides:
  118.  
  119. *With launcher interrupts, your launcher state never becomes 3, so the byte determining if you decelerate is never set back to normal.
  120. *With this active, you never decelerate (note that neutral dpad input is not deceleration, your velocities manually get set to 0).
  121. *If your speed while performing the launch is low, you will now be able to do momentum lock walking and jumping, allowing you to move at max walking speed in both the x and y directions.
  122. **Best way to take advantage of this rta is to hold a while moving in a cardinal direction, change directions you're holding while still holding a, then let go of a to move at max walking speed in both directions.
  123. *You will also slide really far without slowing down when doing things such as using the launcher and using various turaga items.
  124. **You will slide while popping out of the ground with the drill IF you do not use the drill button to pop up. See Sticky Drill.
  125. *If you are moving at a high enough speed when you pause, or if you manage to get a high enough speed some other way, you will enter a momentum lock slide.
  126. *In a momentum lock slide, your speed will be completely locked unless something else changes it (an enemy or an Onu-Koro mushroom, or using the launcher) or until you exit momentum lock.
  127. *To exit momentum lock, you need to enter state 3 again. The methods of entering state 3 all involve the launcher.
  128. **One way is hitting r while waiting for the projectile to return to you.
  129. **Another way is to enter a new launch. This will frequently end up with you hitting the wall.
  130. **The last main way is to quickly hit and let go of the launcher button to fire it, then start holding it before it fires, then let go after it has fired and when you want to stop. This is the same set of inputs as object teleporting if you know how to do that already.
  131. *Getting good slides can be very difficult, your position relative to the projectile, any speed going into the launch prior, and a whole bunch of other factors are really important.
  132.  
  133. *Momentum Lock Walking video: https://www.youtube.com/watch?v=1K9EdjyiM8A
  134. *Video of a slide: https://www.youtube.com/watch?v=D2zECvlGH6I
  135. This glitch is used throughout the tas, I'm not sure how well I managed it, but I think it made it rather entertaining to watch.
  136.  
  137. Launch Select Fling/Large Object Drag:
  138.  
  139. *By pressing select to go into inventory in the middle of a launch, and then exiting the inventory after having letting go of the launch button, you will continue to be in the launch without holding the button.
  140. *Pressing the button again in this state will send you into a launch fling where your speed is locked and you will fly through the air.
  141. **If you let go of the launcher button before the projectile comes back to you, you will be placed on the ground.
  142. **If you let go of it after it has come back to you, you will continue flying. You will need to press the launcher button again, or collide with something to stop.
  143. ***If you collide with a wall you will be unable to use the launcher again unless you leave the area or fall into a pit/water/lava.
  144. *If the target you are attached to is a large object, you will start to drag it towards you while you are flying.
  145. **If you do this on most large enemies, you will crash the game. Only the blue spiders that don't throw projectiles and the goats do not crash the game.
  146. **If you have teleport coordinates set, you will do an object teleport if you collide with the object.
  147.  
  148. **Video of Launch Select Fling: https://www.youtube.com/watch?v=jBsj__yKMkU
  149. **Video of Large Object Drag: https://www.youtube.com/watch?v=-EiT04t_K34
  150.  
  151. Object Teleportation:
  152.  
  153. *When you attach the launcher projectile to an object or enemy that can be dragged, two values corresponding to x/y coordinates get set to 0.
  154. *If the object is dragged into you, these values get set to the location of the object when it damaged you (note that this isn't necessarily what you expect, but it usually is)
  155. *If you then fire the launcher at an object or enemy that cannot be dragged, then quickly let go of the launcher button and start holding it again before it is fired (during launcher state 1), you are able to change certain position values of that object by running into it and letting go of the launcher button.
  156. *The position values changed depends on the object and in some cases, where you are running into it.
  157. **It is common for slow enemies to have a hitbox left behind if you run into their upper half for whatever reason, and no hitbox left behind if you walk into their lower half.
  158. *With the Ga-Koro plants, you can get taken with them. Be careful though.
  159. *This can be used to setup otherwise impossible launches. You need to run into their upper half for this, and then fire the launcher into where they were.
  160. *Another use is to skip the ice pick in the room with the Ta-Koro Toa Stone by teleporting the boulders to the center.
  161. *Teleporting small objects is tricky because the teleport coordinates will be reset when the projectile attaches to the object.
  162. **You need to let go of the button after it has fired but before it has attached. The frame window for this is very small. Thankfully this isn't useful at this point in time.
  163.  
  164. Video of a teleport launch: https://www.youtube.com/watch?v=0vcNovlPz4E
  165.  
  166. Respawn set glitch:
  167.  
  168. *By pressing the launcher button while over a pit/water/lava, your respawn position gets set to the point where you hit the launcher button.
  169. **In most places you must hit the launcher button this before you hit the water.
  170. **In places where you climb up out of water because you first are able to go to them before the launcher is obtained such as the island and the place where you rescue whenua, you are able to press the button after you hit the water.
  171. *This is pretty much outclassed by launcher interrupting for the most part.
  172.  
  173. Video: https://www.youtube.com/watch?v=D8gHcP97gDw
  174.  
  175. Ground Launch:
  176.  
  177. *By having a text box pop up while using the launcher, you will be placed on the ground, but will have the launch still active.
  178. *You will then face a constant drag, but you won't accelerate unless your speed goes over the limit
  179. *You will accelerate in the direction of the projectile.
  180. *If your speed will put you inside of a wall, you will simply not move in that direction.
  181. *Your speed can build up to the point where you pass through the wall
  182.  
  183. *Video of a usage of this: https://www.youtube.com/watch?v=n6o90xUuhEA
  184.  
  185. Launch Storage:
  186.  
  187. *I'm not all that sure on how this works.
  188. *When you get dragged towards an object, two values of note change until you stop using the launcher, where they remain the same.
  189. *If you cause yourself to bonk off an object immediately after starting the launch, certain position values will change to be that of the two addresses mentioned previously.
  190. *Two important addresses that change are the ones that trigger area transitions.
  191. *Sadly, this is not all that useful at the moment because later area transitions tend to be in bad spots.
  192.  
  193. *Video: https://www.youtube.com/watch?v=TueuRASHKWQ
  194.  
  195. Pause position storage:
  196.  
  197. *If you press start or select the frame before you begin transitioning to a new area, the coordinates in charge of the camera and triggering transitions will match that of the previous room.
  198. *Not useful atm.
  199.  
  200. Scorpion Quick Kill:
  201.  
  202. *If you pop out of the ground correctly, you seem to perform a double hit on the scorpion, defeating it in one cycle.
  203. *I believe it is caused by hitting both it's left/right or top/bottom at once.
  204. *To perform it, you pop out of the ground while crossing between the two halves.
  205. *It is frame perfect, and sometimes it won't even work then.
  206.  
  207. *Video: https://www.youtube.com/watch?v=DI_im9SWm3A
  208.  
  209. Lavaboard:
  210.  
  211. *For some reason does not use the same speed address as everything else.
  212. *Where you jump onto the lavaboard can have dramatic effects on where you land in the lava.
  213. *You can accelerate with it by throwing objects in the opposite direction.
  214.  
  215. Lavaboard Launcher Glitch:
  216.  
  217. *By using the launcher for long periods of time while on the lavaboard, you can pass through walls.
  218. *Interestingly, this uses the regular speed address.
  219. *Video: https://www.youtube.com/watch?v=4i-9y9ZHsUE
  220.  
  221. Not particularly useful at this time due to how slow it is to set up.
  222.  
  223. Staff skip:
  224.  
  225. *If you bonk into something when you don't have the staff, the lights will turn on for whatever reason. Saves very little time.
  226.  
  227. Sticky Drill/pick:
  228.  
  229. *While holding the drill/pick button, you are either immobilized or slow down (if using the launcher).
  230. *If you don't want this when popping out of the ground, press any other button to pop out.
  231.  
  232. Memory Allocation:
  233.  
  234. *Most of the things involving your character seem to be in static places in memory. Individual enemies and other things do NOT seem to always be in the same place. This is likely to be due to dynamic memory allocation.
  235. *This may be able to get manipulated, see the Launcher Projectile Detached Glitch: https://www.youtube.com/watch?v=eVreDJCIRCI
  236. *I am not currently knowledgeable to really find pointers and stuff at this time, so I cannot really determine position addresses for enemies and other objects at this time because they will differ.
  237.  
  238. 12/5/15 update: Added information on small object teleports, respawn point set glitch, sticky pick, launch select fling/large object drag, and ground launch
RAW Paste Data Copied