Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
This will document a lot of what I know about the game. 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 Position: Kinda irrelevant early on, but needs to be discussed. *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. *Origin is the up-left most section of the screen. Moving down and right increase position values, whereas up and left decreases them. *Interesting things happen to certain position addresses when performing certain glitches. *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. *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. Basic Movement stuff: *Horizontal movement is faster than vertical movement for whatever reason. Velocity values are in the thread. *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) *Long jumps save about 2 frames assuming you need to go the full distance. Short hops are slower than walking but have their uses. *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. **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. **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. **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. **It repeats back at the beginning after that. A bunch of velocity values are here: https://forum.speeddemosarchive.com/post/lego_bionicle_gba_230.html Momentum: *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. *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. *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. **Vid: https://www.youtube.com/watch?v=YVBiUr2o7bQ *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. **Example of curve jump: https://www.youtube.com/watch?v=7arSxsZiq5E *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. Boulder pushing: *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 *Y-Velocity of pushing/pulling from below or above is the same, and diagonals have about half the y-velocity. *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. Area Transitions action buffers: *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. *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. *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. Knockback manipulation: *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. *You won't take damage from the boulders in the first Onu-Koro section if you bonk into a wall instead of the boulder. Menuing: *Menuing is... weird *Read the forum post, I explain it in depth there: https://forum.speeddemosarchive.com/post/lego_bionicle_gba_219.html *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. Throw Swap Glitch: *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). *There are multiple ways to trigger the glitch: **One is to switch the item on the button after you start the throwing animation. **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. **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. **Uses include destroying the rock wall before you even get the actual ammo for it, and for one shotting the first boss. *Drawback to this glitch is that it requires you to either dedicate both item slots or switch items whenever you want to perform it. *Video: https://www.youtube.com/watch?v=mWFUr36vQD4 Boundary Jumping: *The character can jump onto the sides of walls and even the edge of the screen without falling into what may lie along it. *This is the main method of sequence breaking in this game. *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. **Ga-Koro Skip is an example of using short hops: https://www.youtube.com/watch?v=STrzw4NmgC0 **Ko-Koro skip is an example of using long jumps: https://www.youtube.com/watch?v=jOBjTwd4WeA *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. *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. *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. Launcher Mechanics: The launcher is very weird and very buggy, glitches will get their own subsections. *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. *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. *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. *Once the launcher has been fired, you enter state 2 and will remain in state 2 if it finds something to latch onto. *The launcher has 2 functions: Dragging objects towards you, and dragging you towards objects. Which one depends on the object in question. **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. *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. *If you start moving, the object's pull towards you will effective cause it to orbit around you. *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. *When you are being dragged towards an object, a byte is set that effectively removes deceleration until you enter state 3. *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. *Certain things you will pass over while launching, others you will bonk into. It's the same as jumping as far as I know. *The longer you are being dragged towards an object, the more the pull will have an effect on your velocity. Launcher Animations Glitch: *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. *The launcher animations glitch involves being stuck in the launcher aiming state, yet you are able to use different items. *Best way to trigger it is to press a while holding the launcher button to aim. *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) *The most useful application of this is quickly dying. This could be to refill health, or to respawn at the entrance screen. *There are other weird oddities, but none of them are particularly useful. *Very situational *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. Launcher interruption: *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. *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. *You will also trigger a glitch called momentum lock because you never enter state 3. Momentum Lock and Slides: *With launcher interrupts, your launcher state never becomes 3, so the byte determining if you decelerate is never set back to normal. *With this active, you never decelerate (note that neutral dpad input is not deceleration, your velocities manually get set to 0). *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. **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. *You will also slide really far without slowing down when doing things such as using the launcher and using various turaga items. **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. *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. *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. *To exit momentum lock, you need to enter state 3 again. The methods of entering state 3 all involve the launcher. **One way is hitting r while waiting for the projectile to return to you. **Another way is to enter a new launch. This will frequently end up with you hitting the wall. **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. *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. *Momentum Lock Walking video: https://www.youtube.com/watch?v=1K9EdjyiM8A *Video of a slide: https://www.youtube.com/watch?v=D2zECvlGH6I 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. Launch Select Fling/Large Object Drag: *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. *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. **If you let go of the launcher button before the projectile comes back to you, you will be placed on the ground. **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. ***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. *If the target you are attached to is a large object, you will start to drag it towards you while you are flying. **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. **If you have teleport coordinates set, you will do an object teleport if you collide with the object. **Video of Launch Select Fling: https://www.youtube.com/watch?v=jBsj__yKMkU **Video of Large Object Drag: https://www.youtube.com/watch?v=-EiT04t_K34 Object Teleportation: *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. *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) *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. *The position values changed depends on the object and in some cases, where you are running into it. **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. *With the Ga-Koro plants, you can get taken with them. Be careful though. *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. *Another use is to skip the ice pick in the room with the Ta-Koro Toa Stone by teleporting the boulders to the center. *Teleporting small objects is tricky because the teleport coordinates will be reset when the projectile attaches to the object. **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. Video of a teleport launch: https://www.youtube.com/watch?v=0vcNovlPz4E Respawn set glitch: *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. **In most places you must hit the launcher button this before you hit the water. **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. *This is pretty much outclassed by launcher interrupting for the most part. Video: https://www.youtube.com/watch?v=D8gHcP97gDw Ground Launch: *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. *You will then face a constant drag, but you won't accelerate unless your speed goes over the limit *You will accelerate in the direction of the projectile. *If your speed will put you inside of a wall, you will simply not move in that direction. *Your speed can build up to the point where you pass through the wall *Video of a usage of this: https://www.youtube.com/watch?v=n6o90xUuhEA Launch Storage: *I'm not all that sure on how this works. *When you get dragged towards an object, two values of note change until you stop using the launcher, where they remain the same. *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. *Two important addresses that change are the ones that trigger area transitions. *Sadly, this is not all that useful at the moment because later area transitions tend to be in bad spots. *Video: https://www.youtube.com/watch?v=TueuRASHKWQ Pause position storage: *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. *Not useful atm. Scorpion Quick Kill: *If you pop out of the ground correctly, you seem to perform a double hit on the scorpion, defeating it in one cycle. *I believe it is caused by hitting both it's left/right or top/bottom at once. *To perform it, you pop out of the ground while crossing between the two halves. *It is frame perfect, and sometimes it won't even work then. *Video: https://www.youtube.com/watch?v=DI_im9SWm3A Lavaboard: *For some reason does not use the same speed address as everything else. *Where you jump onto the lavaboard can have dramatic effects on where you land in the lava. *You can accelerate with it by throwing objects in the opposite direction. Lavaboard Launcher Glitch: *By using the launcher for long periods of time while on the lavaboard, you can pass through walls. *Interestingly, this uses the regular speed address. *Video: https://www.youtube.com/watch?v=4i-9y9ZHsUE Not particularly useful at this time due to how slow it is to set up. Staff skip: *If you bonk into something when you don't have the staff, the lights will turn on for whatever reason. Saves very little time. Sticky Drill/pick: *While holding the drill/pick button, you are either immobilized or slow down (if using the launcher). *If you don't want this when popping out of the ground, press any other button to pop out. Memory Allocation: *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. *This may be able to get manipulated, see the Launcher Projectile Detached Glitch: https://www.youtube.com/watch?v=eVreDJCIRCI *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. 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
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
OoT rando seed 6/13
2 hours ago | 202.05 KB
w
20 hours ago | 0.09 KB
[email protected]
- idiot sending fr...
21 hours ago | 1.35 KB
Untitled
1 day ago | 0.03 KB
Checking in availability
1 day ago | 0.66 KB
TRMP TOKEN
1 day ago | 1.56 KB
Untitled
1 day ago | 0.16 KB
my-push Script
1 day ago | 0.19 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!