-
Notifications
You must be signed in to change notification settings - Fork 1
Change Player Movement Speed
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.
Address for Digimon World Dawn: 00066A54
Address for Digimon World Dusk: 00066AC4
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.