Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.

Generation I Glitch Discussion

Ditto cant use Struggle glitch - Page 1

Ditto cant use Struggle glitch

Posted by: Patashu
Date: 2018-02-13 00:48:58
https://youtu.be/TeWxEbl2kWQ

This is a video where the uploader is documenting their attempts to beat gen 1 fighting only with a single Ditto. About half way through, their Ditto stops being able to use Struggle when they are out of Transform PP. No other Pokémon is unable to use Struggle, and transformed Ditto is also able to use struggle. The glitch wasn't fixed by depositing/withdrawing, putting Ditto in the daycare, saving/loading, or by beating the game. There is also a secondary glitch - if a 0 PP Ditto that cant struggle is hit with Disable, the game softlocks.

I tried to find documentation on this glitch and couldnt. Is it new or known?

Re: Ditto cant use Struggle glitch

Posted by: OwnageMuch
Date: 2018-02-13 03:24:36
I watched the video and also could find nothing about it online so I think it is a new discovery. Maybe struggle has a hidden pp value of 255 that isn't reset by healing or something? It also may depend on having no moves or have something to do with Transform?

Re: Ditto cant use Struggle glitch

Posted by: jackedup05
Date: 2018-02-13 19:17:59
Maybe this just doesn't apply to ditto but every pokemon.

Re: Ditto cant use Struggle glitch

Posted by: commy2
Date: 2018-02-18 04:07:30
Hello :~)

Full disclaimer: I have no idea either, but these are my observations.

A hidden PP stat for Struggle seems unlikely as the move is selected automatically if the PP for all four moves are zero. There is no additional PP check to anyone's knowledge and surely the Youtuber would've run into it long before unless the maximum of that hidden PP is somehow way larger than 63 or 255.

Maybe the PP of move 2 - 4 got increased by some PP underflow glitch? Then the game would detect some PP being left in those slots when opening the movelist menu, but the player would be unable to select those moves.
The PokéCenter may only reset the PP up to encountering the first - (unoccupied) move. Maybe other healing methods (Mom/Silph CO. Bed/Lavender White Magic) could solve this?

The Youtuber would probably have remembered if he used select to switch the move order while transformed (which can glitch out the moveset of the Ditto or Mew by permanently moving glitch moves to the first position).

It's strange that this happened twice in the same area, so maybe it has to do with some Trainer's Pokémon moveset?
Ditto could use Struggle at Lv 53, but no longer at Lv  54/55, so maybe it learns a glitch move?

Random thoughts: those Jugglers are the first time the player encounters trainers that switch out their Pokémon. There're also Mirror Move Spearow and Fearow in the wild where he grinded EXP.


Disable softlocking the game is also interesting, but that might happen regardless if the PP for all moves are zero.

Re: Ditto cant use Struggle glitch

Posted by: ISSOtm
Date: 2018-02-19 05:36:04
Crystal_ found the reason. Here's a quick summary :


All of these make sense – it's how the game works. But here's the catch : the "PP increment" function doesn't check for the Transformed status !

Here's how to trigger the glitch :
- Have any Pokémon with Transform (typically Ditto, but also Mew, or a Pokémon with Metronome)
- Face against a Pokémon knowing Mirror Move or Metronome


Thus, the game increments a move's PP in the Pokémon's data. If the move is present, then it will just have incremented it, no biggie.

If it's not, this creates a slot that is empty, but with non-zero PP ! Thus, the game fails to use Struggle.




Disable
Disable first checks if there is a slot with non-zero PP, and if this fails, misses. With a Struggle-less Pokémon, this will always succeed, because of the glitched slot.
Then, Disable will attempt to pick a slot which must have a move AND non-zero PP. Assuming Transform has 0 PP, the game will never find such a slot (since the only slot with non-zero PP has no move).
Bam, infinite loop, and softlock.

Re: Ditto cant use Struggle glitch

Posted by: Krys3000
Date: 2018-02-19 07:24:52
That's very interesting! Thanks Crystal_ for the work, and ISSOtm for the report.

It's cool to see that we can still learn about yet another quirk that only gets discovered 20 years after the game gets released  :P

Re: Ditto cant use Struggle glitch

Posted by: Patashu
Date: 2018-02-19 16:18:56
Excellent detective work!

Re: Ditto cant use Struggle glitch

Posted by: ISSOtm
Date: 2018-02-19 16:40:42
It's not mine, it's Crystal_'s, but thanks !