Skip to content

Change Player Movement Speed

João Santos edited this page Nov 6, 2024 · 1 revision

TL;DR

Change a hex line from 02 10 A0 E3 to 03 10 A0 E3 to increase the player's movement speed.

Putting 01 as the first byte will slow down the player, and putting values higher than 03 will achieve a bigger speedup. We found that increasing the base speed by 1.5x was a good balance between trimming the time spent walking and maintaining the game's base feel.

ROM Addresses

Address for Digimon World Dawn: 00066A54

Address for Digimon World Dusk: 00066AC4

Explanation

When a movement key is pressed in the overworld, the game adds (or subtracts, depending on the direction of the movement) a fixed value to the player's X/Y coordinates per frame.

The line above (02 10 A0 E3) corresponds to the asm operation MOV R1, #0x02, which stores the value 0x02 in the registry R1. That value is then written in the runtime memory of the game, and accessed by the function that adds/subtracts the player's coordinates (this actually applies to not only the player, but all objects in a given scene such as the digimon following the player).

By increasing that value, the value added/subtracted to the coordinates per frame is also increased, which in turn "speeds up" the player's movement.

There are other ways of achieving this, such as directly altering the function that adds/subtracts the coordinates (located in the address 00066950 for Dawn and 000669C0 for Dusk).

For the purpose of a quick QoL patch, we found that changing the above line was the simplest/cleanest way of achieving the goal of speeding up the player's movement, but we acknowledge that it may not be the most precise method either.

Clone this wiki locally