Edd Mann Developer

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.

  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
  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.