Memory Addresses and Max Speeds
Disclaimer: The following addresses change every time you enter a new area, die, or use certain abilities. As such, there are no definitive addresses for most of these values. However, all of these particular addresses that I put in the chart are found in the very first area of the game (Land of Chocolate) when you start a New File.
|0x02302290||4 bytes, signed||X Speed; how fast your character is moving horizontally|
|0x02302294||4 bytes, signed||Y Speed; how fast your character is moving vertically|
|0x023003B8||4 bytes, signed||X Position; where your character is located along the X Axis|
|0x023003BC||4 bytes, signed||Y Position; where your character is located along the Y Axis|
(These addresses may be incorrect. I'll change them eventually)
Here is a small chart of all the maximum speeds of general actions.
|Flying as Bartman (w/ input)||10,240|
|Flying as Bartman (no input)||14,334|
Every characters' terminal velocity is -49,152.
Technically, there is no limit to how fast you can walk, because your speed increases when you walk down a slope. This is the only factor that changes your max walking speed.
How to Easily Find Addresses after Dying, Using Certain Abilities, or Entering New Areas
As previously mentioned, these addresses change every time you enter a new area, die, or use certain abilities. However, there is one simple technique you can do to find these addresses if you do enter a new area, die, or use certain abilities. In DeSmuME, go to Tools > RAM Search... and set the data size accordingly to how big your address is. Pause the emulator, hold the B Button and advance the game four frames, and then go back into RAM Search. Using the comparison operator, find a value that is equal to -30720. -30720 is the first shown value for Y Speed, so finding a value that is equal to -30720 will find the address for Y Speed, and then, you can find X Speed by subtracting 0x04 from the address you just found for Y Speed.
Glitches and Tricks
Jumping and Pulling Switches
In almost every level of the game, Bart and/or Lisa need to pull switches to advance to the next part of an area. When you press X to pull a switch, Bart/Lisa will stop in place to pull it, which wastes some time. But if you press B and then X immediately afterwards, you can jump and pull the switch at the same time. This means you can move forward a little bit to pull the switch instead of stopping in place.
Bartman Speed Conservation
As Bart, if you double jump and hold B, Bart will turn into Bartman and he will be able to glide with his cape. However, holding forwards while gliding will slow Bart's speed down to 10,240. But if you hold forwards and release the forwards input right when the glide starts (i.e. right when Bart holds out his cape behind him and the whooshing sound from the cape plays), Bart's speed will be conserved and he will glide much faster.
Slingshot Speed Conservation
As Bart, you can shoot enemies and targets by holding A and aiming with the D-pad. When Bart lands from a jump, his speed is slowed down to around 3097, but if you press A to fire the slingshot before landing, Bart will conserve his walking speed and he will not be slowed down.
Wall Clipping and Climbing
Homer has a special ability that allows him to turn into a ball after eating food, but this can be used to clip into walls and ride up them. This only seems to work with walls that are on the left side of the screen. First, make sure you have eaten some food so you can turn into a ball. Then, run into a wall and press A to turn into a ball right before running into it completely. If done correctly, Homer will be slightly clipped inside the wall. From here, you can repeatedly press B to rapidly jump up the wall. This glitch is used to skip certain sections of levels.
Bart has an ability that allows him to use grapple hooks by pressing X. This is used to reach high places and other areas. But if you press X and then jump as soon as Bart is about to move forward, the grapple ability will be cancelled and he will jump extremely far and fast. Combining this with his gliding ability allows him to glide at insane speeds. This only works with grapple hooks that launch Bart horizontally.
Infinite Jumping via Grapple Hooks
If you use a grappling hook by pressing X, press B to cancel the grapple, press X to use it again, and press B to jump again, you can jump infinitely as long you are close to the grapple hook. Here's a step-by-step process on how to do it:
Step 1: Stand close enough to a grappling hook so that you can use it
Step 2: Jump
Step 3: Press X to use the grappling hook
Step 4: Jump again
Step 5: Press X to use the grappling hook again
Step 6: Jump again
These can be repeated for as long as you want as long as you are close to the grapple hook.
Lisa's special ability is being able to move objects, enemies, and even herself if she is in front of a Buddha Hand and you press X. You can move objects by dragging them on the touch screen.
Dragging Objects Out of Bounds
If you pick up an object by dragging it with the stylus and then you pause the game while holding it, something interesting will happen. When you unpause, the game thinks you are still holding the object and it will quickly drag it to the bottom-right part of the screen by itself for some unknown reason. If you tap the screen at this point, the object will be dropped and will no longer be moved. This is very useful if you perform this glitch while dragging Lisa with the stylus, because it quickly moves Lisa forward and saves time in some areas.
Free Control / Free Buddha
This glitch is extremely weird but useful. If you perform the previous glitch while holding Lisa and then press X in front of the Buddha Hand Port before she launches off the screen, she will stop moving because you cancelled the Buddha ability. However, the game thinks you are still using the Buddha ability. From here, you can move Lisa wherever you want by moving the D-pad. For example, pressing Up will cause Lisa to fly upwards, pressing Left will cause Lisa to fly left, etc. Lisa's speed will be locked at this point, so she will continue moving forward even if you are not holding any buttons. This is extremely useful in some stages and skips the majority of some sections. This glitch can be cancelled by touching the screen and pressing X.
HUGE SHOUTOUTS to Randomno2 for telling me about this glitch.
When you beat certain levels, the screen will fade to black, play an ending cutscene, and then unlock the next level. These cutscenes cannot be skipped unless you have already beaten the level. However, if you reset the game at any point during one of these cutscenes, the game will reset and take you back to the file select screen, but the next level will be unlocked, meaning you've skipped the cutscene at the end of the previous level. This is very useful because some of these cutscenes take a long time to finish playing.
This glitch saves time in the following levels:
|Level||Time saved (frames, seconds)||Accumulative Frames Saved|
|Bartman Begins||1608 frames, ~27 secs.||1608 frames|
|Logging Factory||1447 frames, ~24 secs.||3055 frames|
|Mob Rules||7405 frames, ~2 mins.||10,460 frames|
|Enter the Cheatrix||667 frames, ~11 secs.||11,127 frames|
|Springfield Mall||1556 frames, ~26 secs.||12,683 frames|
|Bargain Bin||4714 frames, ~1 min.||17,397 frames|
|Mythos of Marge||107 frames, ~2 secs.||17,504 frames|
|Big Super Happy Fun Fun Game||2358 frames, ~39 secs.||19,862 frames|
|Five Characters in Search of an Author||1794 frames, ~30 secs.||21,656 frames, ~6 mins.|
Using the following formula, I am able to calculate the number of seconds saved:
frames saved / frame rate = time saved (seconds)
Since the game runs at 60 frames per second, I just divide the number of saved frames by 60 every time to get the amount of seconds saved.
More to come in the future!