View Page Source

Revision (current)
Last Updated by Dacicus on 10/31/2020 8:15 PM
Back to Page

!!Horizontal Movement

The X sub-pixel position {{02D4}} does not reset to zero or any other value.  It changes only via changes in the X sub-speed value.

! Walking

Kuros is walking when status address {{03D8}} has value {{0x01}}.  When accelerating on level ground, the X sub-speed address {{0370}} increases by {{0x10}} each frame.  The X speed address {{038A}} increases by 1 after {{0370}} reaches its maximum.  This continues up to maximum values based on the costume worn, as per the following table:

||Costume||Max Speed||Max Sub-speed||
|Any Knight|2|{{0x00}}|
|Thief 1|2|{{0x40}}|
|Thief 2|2|{{0x80}}|
|Thief 3|3|{{0x00}}|
|Any Wizard|1|{{0x80}}|

Jumping does not interfere with the pattern of the increasing values, but the actual speed while jumping is slower; see below.

If you press and hold the direction button opposite to the direction Kuros is facing, sub-speed decreases by {{0x3C}} each frame until speed and sub-speed reach 0.  Then Kuros turns around and begins to accelerate in the forward direction as explained above.

If speed or sub-speed are non-zero and neither left nor right is pressed, sub-speed decreases by {{0x1E}} each frame until the speed and sub-speed reach 0.

When entering a new area or when pressing B while moving, the speed and sub-speed are set to 0.

! Crouching

Kuros is crouching when status address {{03D8}} has value {{0x08}}.  When moving horizontally while crouching, speed has a constant value of 1 and sub-speed a constant value of 0.  No deceleration occurs when changing direction while crouch-moving; Kuros turns to face the opposite direction immediately and maintains speed 1 and sub-speed 0.

When you start to crouch by pressing down, the speed and sub-speed values are set depending on which other directional buttons are pressed:

||Other Buttons||Speed||Sub-speed||
|None|0|0|
|Forward|1|0|
|Backward|1|0|

Any acceleration or deceleration related to those buttons continues until the new values are set.

When you leave the crouching state, speed and sub-speed are set to 0, with the following exceptions:
* If you do a crouch attack by pressing down and B while moving, speed and sub-speed are maintained at the walking values, except for one frame of sub-speed deceleration by {{0x1E}}.  __This can be used to resume walking without losing much speed__.  Release down and B and press forward on the same frame to continue walking after attacking.  This does not work for the thief 3 and wizard 2 costumes.
* If you jump by pressing A and forward/backward while holding down, speed and sub-speed are set to the crouch-movement values of 1 and 0, respectively, before the jump starts.  The speed and sub-speed values then increase from this point as per the walking acceleration process.  Though jumping is slower than walking, __this allows you to get to maximum horizontal speed more quickly when turning around than the standard walking acceleration process__.

! Jumping and Falling

Kuros is jumping when status address {{03D8}} has value {{0x02}}.  He is falling when status address {{03D8}} has value {{0x06}}.  The speed and sub-speed values change as per the walking process, but the horizontal position actually changes by only 75% of those values each frame while jumping or falling.  Thus, jumping and falling are slower than walking.  After landing, the horizontal position changes by the full speed and sub-speed values.

Because crouch-jumping sets the speed to 1 right away and continues to increase it from there to the maximum, it is faster than walking up until the frame at which walking would reach 75% of the maximum speed.

After prolonged falling, status address {{03D8}} changes to value {{0x07}}.  Specifically, this occurs when the counter at address {{008E}} reaches a value of {{0x46}}.  Continuing to fall for too long past this point causes damage upon landing.  While in status {{0x07}}, the sub-speed value changes each frame by amounts that depend on which directional buttons are pressed:

||Button Pressed||Change in Sub-speed||
|None|Decrease by {{0x0A}}|
|Forward|Increase by {{0x06}}|
|Backward|Decrease by {{0x46}}|

This is still a falling state, so horizontal position only changes by 75% of the speed and sub-speed values.

If neither left nor right is being pressed when landing, the speed and sub-speed are set to 0.

! Damage

When taking damage from an enemy, the speed is set to {{0xFD}}, the sub-speed to 0, and the status address {{03D8}} to {{0x02}}.  Changes then proceed according to the jumping and falling process.

! Slopes

Kuros is sliding down a slope when status address {{03D8}} has value {{0x0C}}.  The speed is set to a constant value of 1 or 2, depending on the type of slope.  The sub-speed is set to 0.  This applies to all costumes, so the wizards can move faster than maximum speed on certain slopes.  After reaching the end of the slope, speed and sub-speed change according to the walking process.  Horizontal position changes by the full speed and sub-speed values.

!! Vertical Movement

When not standing on solid ground, Kuros's vertical position changes by the Y speed ({{03BE}}) and Y sub-speed ({{03A4}}) values each frame.  Unlike the X sub-pixel position, the Y sub-pixel position {{0322}} resets to zero frequently, such as when landing on solid ground.

! Jumping

When Kuros begins to jump, the Y speed address {{03BE}} and Y sub-speed address {{03A4}} are set to values that depend on the costume worn:

||Costume||Speed||Sub-speed||
|Starting Knight|3|{{0x80}}|
|Any Guild Knight|3|{{0xA0}}|
|Any Thief|3|{{0x60}}|
|Wizard 1|3|{{0xC0}}|
|Wizard 2|3|{{0xE0}}|
|Wizard 3|4|{{0x00}}|

While in the jumping state ({{03D8 = 0x02}}), the sub-speed decreases depending on whether or not the jump button A is pressed.  If A is not pressed, the sub-speed decreases by {{0x3F}} per frame.  If A is pressed, the sub-speed decreases by {{0x15}} for seven frames and by {{0x2A}} every eighth frame.  Specifically, the decrease is {{0x2A}} when the three lowest bits of address {{0091}} are clear and {{0x15}} when any of them is set.  When speed and sub-speed both reach zero, Kuros enters the falling state.

! Falling

While in the falling state ({{03D8 = 0x06}} or {{0x07}}), the sub-speed {{03A4}} increases by {{0x1A}} every frame until reaching a maximum speed and sub-speed of 4 and 0, respectively.

! Damage

When taking damage from an enemy, the speed is set to 2, the sub-speed to 0, and the status address {{03D8}} to {{0x02}}.  Changes then proceed according to the jumping and falling process.