Main Menu
Main Page
Forums
Recent changes
Random page
Help

Databases
GlitchDex
AttackDex
ItemDex

Major Glitches
Trainer escape glitch
Old man trick
Celebi trick
Select glitches (Japan)
SRAM glitch
CoolTrainer♀ corruption
LOL glitch
Rival LOL glitch
Super Glitch
ZZAZZ glitch
Pomeg corruption glitch (Glitzer Popping)
Tweaking
Elite Four door glitch (Japan)
Pokémon merge glitch
Pokémon cloning
Time Capsule exploit
Arbitrary code execution
Coin Case glitch
More

Other Glitch Categories
Glitches by generation
Glitches between two generations
Japan-only/language specific glitches
Music glitches
Natural glitches
Non-core series glitches
Non-Pokémon glitches
Officially acknowledged glitches
Recurring glitches
Dead glitches

References
Pokémon GameShark codes
The Big HEX List
GB programming
Curiosities
Debugging features
Easter eggs
Error traps
Glitch areas
Glitch myths
Non-glitch exploits
Placeholder texts
Pokémon glitch terminology
Unused content and prerelease information

Useful Tools
8F Helper
GBz80 to Items
Old man trick name generator
PATH (Prama's Advanced Tweaking Heaven)
Save file editors
Special stat/Pokémon converter
Trainer escape Trainer Pokémon finder

Affiliates
Legendary Star Blob 2 (Hakuda)
Pokémon Speedruns wiki
PRAMA Initiative
Become an affiliate!

Search Wiki

 

Search Forums

 

Author Topic: Pikawalk Glitch Information?  (Read 204 times)

0 Members and 1 Guest are viewing this topic.

baconpants

  • shorts enthusiast
  • GCLF Member
  • Offline Offline
  • Gender: Male
  • giratina stole my ramen
    • View Profile
    • my tumblr
Pikawalk Glitch Information?
« on: April 11, 2017, 01:48:48 pm »
I am extremely curious about the glitch where Pikachu walks offscreen and the game becomes extremely confused. Is there any reason as to why a crash from this glitch may brick your save file? I would really like to know as my save file was corrupted while entering Glitch City and I lost my Pokemon to it. (That I was dearly attached to, but I'm attached to every one of them!)

Is the game just so confused by Pikachu it messes itself up, or does keeping track of Pikachu need a lot of work?

ISSOtm

  • The French Lord of Laziness (and a huge The Legend Of Zelda fan)
  • Wiki Contributor
  • *
  • Offline Offline
  • Gender: Male
  • Pewter City (B)rocks !
    • View Profile
    • My Little Website
Re: Pikawalk Glitch Information?
« Reply #1 on: April 12, 2017, 01:25:17 am »
I don't exactly know why, but what happens is the game keeps track of your movement to move Pikachu. To do so, your movement is copied into a buffer, but when Pikachu is offscreen, the game writes past the buffer's bounds and ends up corrupting memory following the buffer. Now, as to why that bricked your save file, there may be a thousand different reasons. Mostly if you saved after attempting the glitch.
"THOU SHALL NOT PASS !!"  RIVAL's effect, Gandalf.

Proudly glitching Pokémon Red and Yellow on a Black & White GB, Pocket GB, GB Color, GBA SP and new 3DS.

My Twitter (beware, I'm French)
My YouTube (same warning)

Here is an online tool to build 8F setups : GBz80 to Items !

They see me layzin', they ha-tin'...
Heavy contributor of the global augmentation of entropy (my room's is too damn high !)

Torchickens

  • Administrator
  • *****
  • Offline Offline
  • Gender: Female
    • View Profile
Re: Pikawalk Glitch Information?
« Reply #2 on: April 12, 2017, 01:52:57 am »
That's right, the corruption affects addresses D438 onwards for the first step while Pikachu is off-screen with the following values:

South=01
North=02
West=03
East=04

So if you place Pikachu off-screen then move south, then west and east in that order, the data looks like 01 03 04.

It is possible to corrupt over 250 bytes using this glitch, I unfortunately can't remember the specifics but it might not be 255 bytes.

This is a list of addresses you may be able to corrupt using the glitch, from the Pokémon Yellow disassembly.

Code: [Select]
wExpressionNumber:: ; d447
ds 1
wPikaPicAnimNumber:: ; d448
ds 1

wPikachuMovementScriptBank:: ds 1  ; d449
wPikachuMovementScriptAddress:: dw ; d44a
wPikachuMovementFlags:: ; d44c
; bit 6 - spawn shadow
; bit 7 - signal end of command
ds 1

wCurPikaMovementData:: ; d44d
wCurPikaMovementParam1:: ds 1 ; d44d
wCurPikaMovementFunc1:: ds 1 ; d44e
wCurPikaMovementParam2:: ds 1 ; d44f
wCurPikaMovementFunc2:: ds 1 ; d450
wd451:: ds 1 ; d451
wCurPikaMovementSpriteImageIdx:: ds 1 ; d452
wPikaSpriteX:: ds 1 ; d453
wPikaSpriteY:: ds 1 ; d454
wPikachuMovementXOffset:: ds 1 ; d455
wPikachuMovementYOffset:: ds 1 ; d456
wPikachuStepTimer:: ds 1 ; d457
wPikachuStepSubtimer:: ds 1 ; d458
ds 5
wCurPikaMovementDataEnd:: ; d45e
ds wCurPikaMovementData - @


wPikaPicAnimPointer:: dw ; d44d
wPikaPicAnimPointerSetupFinished:: ds 1 ; d44f
wPikaPicAnimCurGraphicID:: ds 1 ; d450
wPikaPicAnimTimer:: ds 2 ; d451
wPikaPicAnimDelay:: ds 1 ; d453
wPikaPicPikaDrawStartX:: ds 1 ; d454
wPikaPicPikaDrawStartY:: ds 1 ; d455

wCurPikaPicAnimObject:: ; d456
wCurPikaPicAnimObjectVTileOffset:: db ; d456
wCurPikaPicAnimObjectXOffset:: db ; d457
wCurPikaPicAnimObjectYOffset:: db ; d458
wCurPikaPicAnimObjectScriptIdx:: db ; d459
wCurPikaPicAnimObjectFrameIdx:: db ; d45a
wCurPikaPicAnimObjectFrameTimer:: db ; d45b
ds 1
wCurPikaPicAnimObjectEnd:: ; d45d

ds 18

wPikachuHappiness:: ds 1 ; d46f
wPikachuMood:: ds 1 ; d470
wd472:: ds 1 ; d471
wd473:: ds 1 ; d472

ds 1

wd475:: ds 1 ; d474

ds 4

wd47a:: ds 1 ; d479

ds 24

wd492:: ds 1 ; d492

ds 1

wSurfingMinigameHiScore:: ds 2 ; 4-digit BCD little-endian
ds 1

wPrinterSettings:: ds 1
wUnknownSerialFlag_d499:: ds 1 ; d498
wPrinterConnectionOpen:: ds 1 ; d499
wPrinterOpcode:: ds 1 ; d49a
wd49c:: ds 1 ; d49b

ds 19

wNumSigns:: ; d4af
; number of signs in the current map (up to 16)
ds 1

wSignCoords:: ; d4b0
; 2 bytes each
; Y, X
ds 32

wSignTextIDs:: ; d4d0
ds 16

wNumSprites:: ; d4e0
; number of sprites on the current map
ds 1

; these two variables track the X and Y offset in blocks from the last special warp used
; they don't seem to be used for anything
wYOffsetSinceLastSpecialWarp:: ; d4e1
ds 1
wXOffsetSinceLastSpecialWarp:: ; d4e2
ds 1

wMapSpriteData:: ; d4e3
; two bytes per sprite (movement byte 2, text ID)
ds 32

wMapSpriteExtraData:: ; d503
; two bytes per sprite (trainer class/item ID, trainer set ID)
ds 32

wCurrentMapHeight2:: ; d523
; map height in 2x2 meta-tiles
ds 1

wCurrentMapWidth2:: ; d524
; map width in 2x2 meta-tiles
ds 1

wMapViewVRAMPointer:: ; d525
; the address of the upper left corner of the visible portion of the BG tile map in VRAM
ds 2

; In the comments for the player direction variables below, "moving" refers to
; both walking and changing facing direction without taking a step.

wPlayerMovingDirection:: ; d527
; if the player is moving, the current direction
; if the player is not moving, zero
; map scripts write to this in order to change the player's facing direction
ds 1

wPlayerLastStopDirection:: ; d528
; the direction in which the player was moving before the player last stopped
ds 1

wPlayerDirection:: ; d529
; if the player is moving, the current direction
; if the player is not moving, the last the direction in which the player moved
ds 1

wTilesetBank:: ; d52a
ds 1

wTilesetBlocksPtr:: ; d52b
; maps blocks (4x4 tiles) to tiles
ds 2

wTilesetGfxPtr:: ; d52d
ds 2

wTilesetCollisionPtr:: ; d52f
; list of all walkable tiles
ds 2

wTilesetTalkingOverTiles:: ; d531
ds 3

wGrassTile:: ; d534
ds 1

ds 4

I unfortunately don't know why the freezes from Pikawalk occur, but the reason why it can wipe the save may be related to the game filling the memory with 00 39 and affecting the SRAM.

As is documented, you can also use the Pikawalk for:

*Arbitrary code execution using glitch signs.
*To corrupt Pikachu's happiness/emotions.
*To enable 255 hours play-time.
*To create a 'Super Glitch City' (a Glitch City with an invalid tileset).
*To get the S.S. Ticket while Bill is still a Pokémon.
*To corrupt Trainer data.
« Last Edit: April 12, 2017, 02:47:15 am by Torchickens »
Hello. I actually identify as gender questioning, but nowadays feel more firmly that I identify as female. My sex is male but I like to express myself as female.  She/her pronouns, please.


Thank you Myri for my avatar! Thank you Aeriixion for the cute sprite above! :) Roelof also made different variations of the sprite (which I animated).

Contact:

Email Youtube Twitter
Skype: Torchickens
Bulbapedia Starfy Wiki

Beyond all philosophies are the things that go best for you; what makes you feel content. It's important to always follow your heart, so unless you feel perfectly happy about it don't just follow something because it is popular, fits a style or is conventional. Sometimes you may reach a point you're not sure who you are, but as things settle I'm convinced things do work out in time.

baconpants

  • shorts enthusiast
  • GCLF Member
  • Offline Offline
  • Gender: Male
  • giratina stole my ramen
    • View Profile
    • my tumblr
Re: Pikawalk Glitch Information?
« Reply #3 on: April 12, 2017, 03:58:30 pm »
Oh man, that's pretty neat!

I don't remember doing anything insane with my Pikachu, I was just typically walking along the exit of the Safari Zone, heading into Glitch City and of course, Pikachu starts going in different directions and not following me. As soon as it stepped out of the map, the game crashed with a screen similar to this:



Similar to the one that appears when you encounter Yellow Missingno.