Adding Running Shoes (aka Speeding up walking) in Pokémon Red (pokered)
One item I feel that is missing from the Pokémon Generation 1 games are the Running Shoes. When ‘on’ they increase the speed at which you move around the game. You are able to achieve this with the Bicycle, but this is only present later in the game. In this post I will document how I simply added this running ability globally whilst the ‘B button’ is pressed.
Looking through the pokered source, I identified the logic surrounding moving the player around the game within home/overworld.asm
.
.moveAhead2
ld hl, wFlags_0xcd60
res 2, [hl]
+ ld a, [hJoyHeld]
+ and B_BUTTON
+ jr nz, .speedUp
ld a, [wWalkBikeSurfState]
dec a ; riding a bike?
jr nz, .normalPlayerSpriteAdvancement
ld a, [wd736]
bit 6, a ; jumping a ledge?
jr nz, .normalPlayerSpriteAdvancement
+ .speedUp
call DoBikeSpeedup
.normalPlayerSpriteAdvancement
call AdvancePlayerSprite
With this small modification, if the ‘B button’ is pressed we jump directly to the new speedUp
label which instructs the engine to perform the bike speedup.
This in-turn provides us with the ability to ‘run’ throughout the game, at the same speed as if you were on a bike.