View Page Source

Back to Page
Revision 27 (current)
Edited by scrimpeh on 9/16/2024 5:44 PM
!!! Castlevania III Stair Dismounting Guide

%%TOC%%

The purpose of this guide is to illustrate all known ways in which you can disalign yourself from a staircase in Castlevania III.
By disaligning yourself from a staircase, you can walk beyond the intended end point of a staircase and into the room above or below.
This can either be used for shortcuts to later areas of the level, or to enter invalid rooms, where you can trigger memory corruption, which can in turn cause other effects such as warp glitches.

Many methods require a specific character to work.
Some methods can easily be done in real-time, while others require TAS precision.
Unless otherwise noted, all methods work exactly the same on both the J and U versions of the game.

!! Preliminaries

Below, there is some basic information about how stairs work in general.
To see the tricks in action, scroll down further.

! Stair Format

The game has no notion of stair tiles per se.
The stairs that you see on the screen are just for show.
Instead, each room in the game has a list of stair entrances going up or down.
If you are standing on the ground and push Up or Down on the D-Pad, the game will iterate through each stair entrance for the current room and check if it is range of your character.
The current stair data is located by a pointer stored at {{$69}} on U, and {{$66}} on J.
Normally, this pointer points to a swappable bank in PRG ROM, but if you are entering glitched rooms, the pointer can point anywhere, resulting in the game attempting to read stair data from RAM.
This in turn causes glitched, and often rapidly changing stair entrances.

See [https://github.com/scrimpeh/cv3tools/blob/master/cv3_scripts/corruption-tools/modules/map-viewer/stairs.lua#L5-L22|here] for a description of the binary stair data format.

! Entering Stairs

To find out if the player is in range of a staircase, the game adds the player's on-screen position to the camera position and checks it against the coordinates of the stair entrance.
If you are standing on the ground and are in range of a staircase, pushing Up or Down will move you onto that staircase.
You can be up to 13 pixels left or 12 pixels right of the staircase.
You can also be up to 6 pixels above or 5 pixels below the intended staircase entrance, which allows you to walk on the staircase higher or lower than intended.
This is the basis for some of the tricks outlined below.
You don't need to be standing on solid ground tiles to enter a staircase.
Instead, the game also considers you as standing on the ground when you are on a moving platform, such as a swinging pendulum or a frozen enemy.

When you are on a staircase, pushing up or down will make the character walk for 8 pixels in that direction.
When reaching the next step, the game will check if you are standing near a floor and drop you from the staircase if this is the case.
The methods shown below will put you either __above__, __below__, __left__, or __right__ of the intended axis of the staircase.
When you are displaced sideways, you can clear the end of a staircase if there is no floor blocking you at the exit.
For example, if you are shifted left from a staircase going down right, you can clear the end at the bottom if there are no tiles on the left side of the lower stair exit.
When you are displaced vertically, you can also defeat the floor detection by switching between Trevor and Grant at the right time, since they have different heights where floor detection kicks in.
This is explained in further detail below.
Finally, if you corrupt the tile geometry, you can also clear the intended end of a staircase.

!! Methods

The methods below are listed roughly in order of difficulty.

! Camera Scroll

''Sideways displacement, any character''

If the room is large enough to scroll, a staircase that is near the screen edge can be used for disaligning yourself horizontally.
By repeatedly walking down the stairs and back up, you will cause the camera to scroll and hit the screen edge.
Each time the camera starts scrolling from the screen edge, your character gets shifted to the side by one pixel.
If you repeat this multiple times, you can clear the end of a staircase.

[module:Youtube|v=QxH5lB0pMTA|w=320|h=240]
[UserFiles/Info/638621047066861753|BK2 Download]

! Vertical Screen Transition

''Sideways displacement, Grant only''

Walk down a staircase with Trevor and walk down into the screen below. After the final step, switch to Grant immediately before the screen transition happens. You will be displaced sideways from the staircase in the descending direction.

[module:Youtube|v=6LGgfsXtAlA|w=320|h=240]
[UserFiles/Info/638621049569880225|BK2 Download]

! Sypha's Freeze Spell

''Vertical and sideways displacement, Sypha only''

Sypha's freeze spell can be used to disalign yourself from the stairs vertically and horizontally.
By freezing an enemy at the right height, you can stand on them and enter a staircase in mid-air.
This is usually very finnicky, as most mid-air enemies behave very erratically, and frozen enemy hitboxes are very wonky.
On the ground, a frozen enemy can block Sypha from walking toward the start point of the staircase, which causes horizontal displacement.

[module:Youtube|v=4IcHvKJfrSI|w=320|h=240]
[UserFiles/Info/638621049277802051|BK2 Download]

! Vertical Floor Disalign with Character Switching

By switching between characters under the right circumstances, you may end up partially embedded in the ground or hovering in the air by a few pixels. Entering a staircase will start you displaced vertically. The most common methods are listed below:

__Grant Mid-Air__

''Upwards displacement, Grant''

By switching characters in mid-air on the right frame, Grant can stand up to four pixels above the ground without falling.
It is easiest to do this by jumping a certain height with Grant, switching to Trevor and then switching back on the first possible frame.
This allows him to enter the staircase with some vertical displacement.

[module:Youtube|v=hD_QMcJqWiE|w=320|h=240]
[UserFiles/Info/638621048527789528|BK2 Download]

__Inside Floor__

''Downwards displacement, Grant''

This is similar to the method above.
When jumping from a high ledge, there is a one-frame window where your character clips into the ground before the game puts you back on the ground.
By switching characters on that frame, it is possible to get yourself embedded into the floor, and start climbing staircases vertically displaced.
This is once again easiest by using Grant's variable jump height.

[module:Youtube|v=BUEv9PANysI|w=320|h=240]
[UserFiles/Info/638621048222665459|BK2 Download]

__Alucard Bat Form__

''Downwards displacement, Alucard''

Use Alucard's Bat Form and switch back to Trevor while you are partially intersecting with the ground. This will start you a few pixels into the ground.

[module:Youtube|v=Co_pAgARQjs|w=320|h=240]
[UserFiles/Info/638621046540990831|BK2 Download]

! Horizontal Screen Edge

''Sideways displacement, Grant only''

By pulling yourself up and down corners with Grant, it is possible to move towards the edge of the screen without moving the camera.
While at the edge of the screen, attempting to enter a staircase will push you away from the screen edge, displacing you sideways.
Ceilings are generally more effective for this than floors.
Using the same method, you can also wrap around the screen edge, which allows you to quickly get to the right edge of the screen when you were at the left edge and vice-versa.
This is generally slower, though.

[module:Youtube|v=imwlVxKtMtM|w=320|h=240]
[UserFiles/Info/638621047452619313|BK2 Download]

! Scroll Glitching

''Any character''

You can despawn the tile geometry around the stair entrances by using scroll glitching. This method is entirely TAS-only.

[module:Youtube|v=n_YBRLpk9M8|w=320|h=240]
[UserFiles/Info/638621048934878403|BK2 Download]

!! Overcoming Obstacles

When you are already disaligned from a staircase, other floors in your way can present an obstacle, since they will block you and prevent you from climbing out-of-bounds.
As mentioned, you can use Grant to overcome this by switching characters at the right times, since the game checks for floor collisions with him at different heights.
You must already be displaced vertically from the staircase.
Up to two character switches can be required to clear a set of floor tiles.

[module:Youtube|v=LwtV_akDNRI|w=320|h=240]
[UserFiles/Info/638621047816098943|BK2 Download]