View Page Source

Revision (current)
Last Updated by SkicoNow on 12/8/2022 10:43 PM
Back to Page

!!!Memory Addresses and Max Speeds
To find the address for the player's base, scroll down to __How to Find the Player Pointer__. Shoutouts to Really_Tall for helping me find these offsets.

||Address||Size||Description||
|base + 0x194|4 bytes, signed|X Speed; how fast your character is moving along the X Axis|
|base + 0x198|4 bytes, signed|Y Speed; how fast your character is moving along the Y Axis|
|base + 0x2F0|1 byte, unsigned|Health; the numerical value of the character's health bar in the lower-left corner of the bottom screen|
|base + 0x380|4 bytes, signed|X Position; where your character is located along the X Axis|
|base + 0x384|4 bytes, signed|Y Position; where your character is located along the Y Axis|
|base + 0x3C4|1 byte, unsigned|Character animation timer; what frame of the character's animation is currently playing|
|base + 0x410|4 bytes, signed|Screen X; where your character is located on the screen along the X Axis|
|base + 0x414|4 bytes, signed|Screen Y; where your character is located on the screen along the Y Axis|

!! How to Find the Player Pointer
As previously mentioned, these addresses change every time you go through a loading zone or swap partners because the address for the player base changes each time you do one of these actions. However, there is a simple technique you can do to find this address.
#Make sure your character is standing on a floor and that DeSmuME is paused.
#Hold B and advance four frames to make your character jump.
#In DeSmuME's RAM Search (Tools > RAM Search...), set the __Data Size__ to __4 bytes__ and set the __Data Type / Display__ to __Signed__. Then, click __Equal To__ in the Comparison Operator, click __Specific Value__ in the __Compare To / By__ section, type __-34816__ in the __Specific Value__ field, and click the __Search__ button. There should only be one address after performing the search.
#Subtract the Y speed address by 0x198 to get the base address. Now that you have the base address, you can add the offsets in the table of addresses to get the addresses you need.

!! Max Speeds

Here is a small chart of all the maximum speeds of general actions.

||Action||Max Speed||
|Walking|14,334|
|Homerballing|49,152|
|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.

!!! 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.

!! Hyperspeed Gliding

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.

! Quick Jump
If you are moving towards the edge of a floor and press B when you land on the very edge, then your character will jump a few frames sooner than usual.

! Damage Cancel
If you enter the landing animation on the same frame you take damage, then you won't take any damage. The only scenario I've done this in is by landing from a jump while getting hit by a logger's projectile, but I haven't tested if this works with other methods of taking damage.

!! Buddha Glitches

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 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.

!! Cutscene Skips

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!