Skip to content
Rangi edited this page Aug 26, 2018 · 11 revisions

The simplest possible way to implement Running Shoes is to double the player's walking speed, just like the Bicycle, if you're holding the B button. Don't bother to disable running indoors like Gen 3, or have a permanent toggle like Gen 4.

This is easy to do, as discovered by Victoria Lacroix. Just edit engine/overworld/player_movement.asm:

 DoPlayerMovement::

 ...

 ; Downhill riding is slower when not moving down.
+	call .RunCheck
+	jr z, .fast
 	call .BikeCheck
 	jr nz, .walk

 ...

 .fast
 	ld a, STEP_BIKE
 	call .DoStep
 	scf
 	ret

 .walk
 	ld a, STEP_WALK
 	call .DoStep
 	scf
 	ret

 ...

 .BikeCheck:
 	ld a, [wPlayerState]
 	cp PLAYER_BIKE
 	ret z
 	cp PLAYER_SKATE
 	ret
+
+.RunCheck:
+	ld a, [wPlayerState]
+	cp PLAYER_NORMAL
+	ret nz
+	ldh a, [hJoypadDown]
+	and B_BUTTON
+	cp B_BUTTON
+	ret

That's it!

If you want Running Shoes to have a speed in-between walking and biking... that's more complicated. I'll update this tutorial if I ever figure out how to do that.

Clone this wiki locally