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

Save corruption-triggered Prevented Progress - Page 1

Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-14 06:49:09
Hi there,

It has been a VERY long time since I haven't been posting here. I am a member of the PRAMA Initiative staff (french pokemon glitch website) and some of us were registered here to discuss glitches back in, Idk, like 2008-2010 maybe ?

We have been inactive for a long time and we are now trying to get back alive  :P

Anyway, I am trying to perform the Prevented Progress Glitch in Yellow version and it works fine using Send pokemon to a new party glitch. Since in the wiki http://glitchcity.info/wiki/index.php/Oak%27s_Parcel_prevented_progress_glitch there is a full demonstration of this glitch using save corruption and I am currently experimenting save corruption in french games, I tried the documented method.

But it freezes at step 7. It appears to be impossible to deposit any pokemon in the PC without freezing it. Am I doing something wrong ? Note that save corruption might work differently on french versions, so if none of you ever had this problem and you believe it to be unrelated to a misusing of the glitch, it might just be impossible to do.

Thank you so much for your answer :)

Re: Save corruption-triggered Prevented Progress

Posted by: Torchickens
Date: 2015-04-16 11:18:00
Hi Krys3000, I got the message that you sent me. It appears that clearing your items pack back to 0 items can cause the freezes when you deposit a Pokémon. So a work-around to this is to deposit Pokémon straight away after capturing Magmar, and only then clear your items and receive Oak's Parcel.

I haven't encountered this freezing problem for 'every' Pokémon in the English version. I do not know why.

Indeed, the game seems to freeze when Professor Oak rates your Pokédex and you have 152, in the French version.

I have sent you an MP4 video via Twitter Direct Message which you are free to use and narrate if you want.

I am sorry for the late reply. I hope you don't mind.

En français; machine traduit si cela aide:

Salut Krys3000, je ai eu le message que vous me avez envoyé. Il semble que la enlever de vos articles peuvent causer les bloque lorsque vous déposez un Pokémon. Donc, un travail autour de ce Pokémon est de déposer immédiatement après la capture Magmar, et alors seulement effacer vos articles et de recevoir des Colis de Chen.

Je ne ai pas rencontré ce problème de congélation pour 'chaque Pokémon' dans la version anglaise. Je ne sais pas pourquoi.

Je vous ai envoyé une vidéo MP4 via Twitter message direct que vous êtes libre d'utiliser et de raconter si vous voulez.

Je suis désolé pour la réponse tardive. J'espère que ça ne te dérange pas.

En effet, le jeu semble se bloquer lorsque Oak évalue votre Pokédex de 152.

Re: Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-17 03:15:49
Hi Torchickens !

Thank you for your answer and your time. I have seen your video and it is pretty clear, so I will try in my game but I'm sure it'll work since it did for you !

Another part of the team is working of making 8F code execution on french versions but it doesn't appear to be so obvious because 8F doesn't have the expected effects. They are still trying to find a solution.
I am a complete newbie about Save Corruption that I discovered recently, and I don't know if there's a way to use it to do interesting things while still be able to play the game after (eg storing key items on PC, then clean the game of messy effects, withdraw them and continue playing).

Do you have any link about this glitch and what you can do with it ? I've seen it to be used on speedrunning the game on a couple of videos so apparently you can warp to different maps. Is that all ?

Thanks !

PS : Thank you also for the french translation but don't worry English is fine for me. (I know french are not known for their good mastering of english, but hey I'm half italian so it should do the job !)

Re: Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-17 05:45:15
So, it works fine as in your video but yes, when Oak rates my pokedex, it freezes. Might there be a way that the number of pokemon seen is above 1 but less than 152 ?

Re: Save corruption-triggered Prevented Progress

Posted by: Torchickens
Date: 2015-04-17 06:02:58
You're welcome!

Pigdevil2010's latest 8F party Pokémon set up (bootstrap code) for English Red/Blue is:


You must have exactly 5 Pokemon in a party, these are:
Pidgey with 233 HP
Parasect
Onix
Tentacool
Kangaskhan


; Initial hl = D163
$D163 <- 05 || dec b
$D164 <- 24 || inc h    ; h = D2
$D165 <- 2e ||
$D166 <- 22 || ld l, 22 ; l = 22
$D167 <- 18 ||
$D168 <- 02 || jr 2    ; pc = D16B
$D16B <- 24 || inc h    ; h = D3
$D16C <- 00 || nop
$D16D <- e9 || jp hl    ; pc = D322



In order to 'port' this code for the French, German, Spanish and Italian versions to use with the equivalent items "7EME STAGE" (FR, IT), "P7" (ES), "S7" (DE) (all hex: 5D) we only have to change the 22 in ld l,22 into 27 (Graveler instead of Onix), because of the item 3 address being D327 instead of D322 in language versions which aren't English or Japanese.

Sample code from item 3:

Limonade x21
CT34 x 94
CT08 x 201

(3E 15 EA 5E D0 C9)

ASM:
ld a,15h
ld (D05E),a
ret


This gives you Mew. Or if you want a catch 'em all code based on the quantity of item 1, you can have these items at item 3:

CT50  x36
CT11  x4
CT34  x94
CT08  x201

FA 24 D3 04 EA 5E D0 C9


ld a,(D324)
inc b
ld (D05E),a
ret


Yes, we have a thread about the 'save abuse' glitch. You can find various tricks in that thread. You may also be interested in the "documenting item underflow slots" thread.

The item past D346 (item 21) simply represents the next two addresses (the identifier is D347 as money byte 1, and the quantity is D348 as money byte 2), and this pattern continues.

To find which variable(s) in the items pack you want to change, you can refer to this RAM map; but add 5 to them if you need to get the correct addresses for the French, Spanish, Italian and German versions.

After this, making the following steps should tell you which item or quantity it is.

1) Memory address = [First item position address -1] + [Cursor positon] + ([Cursor position -1])

2) e.g. for English Yellow: D364 (exit mat destination) = D31C + x + x-1

3) D364-D31C=48h

4) 48h/2 = 24h

5) Checking if 24h is correct: D365 = D31C+ 24h + 23h = D363.

6) We didn't get the correct answer, but this means that if item 24h is D363, item 24h's quantity is D364.

Convert that into decimal, and we get item 36 quantity; the correct item quantity for the exit warp location.

In order to check the position of an item you are selecting with memory viewer, you can view the address CC35 and press select on the item.

Note that items 129-256 correspond to items 1-128 again, so the above method to find what item/quantity represents an address doesn't apply for items 129-256.


So, it works fine as in your video but yes, when Oak rates my pokedex, it freezes. Might there be a way that the number of pokemon seen is above 1 but less than 152 ?


If at the beginning after getting the 255 items and 152 Pokémon, we swap certain Pokémon around more, then I imagine that may be possible.


PS : Thank you also for the french translation but don't worry English is fine for me. (I know french are not known for their good mastering of english, but hey I'm half italian so it should do the job !)


OK, that's cool! I think you are great at English.  :)

Re: Save corruption-triggered Prevented Progress

Posted by: Torchickens
Date: 2015-04-17 06:45:51

So, it works fine as in your video but yes, when Oak rates my pokedex, it freezes. Might there be a way that the number of pokemon seen is above 1 but less than 152 ?


Try doing this as soon as you get the 255 Pokémon:
Swap Pokémon 9>11, Pokémon 11>10.
>>It gave me 64 Pokémon in the dex but I still had 0 items.

Swap Pokémon 10>13.
>>It gave me 8 Pokémon in the dex and 255 items.

The actual flags were 48 seen and 8 own.

You may get different results. Hopefully that doesn't matter much. If you do, then without further analysis of what data represents the Pokémon you a different Trainer ID or name may be responsible.

Re: Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-17 08:55:02
Thank you so much !

The fix for the prevented progress works fine. With this method, I cannot store my last glitchy pokemon (which I could before) once I got Pikachu. But it's not that important since the purpose of this glitch is to prevent me to continue the game anyway  ;D

I gave all your informations about 8F Code Execution to the team members dealing with it. As for me, I will read all this about the save corruption and work on it !

Now that I've been thinking, outside of obvious benefits from 8F code execution, we also wanted to perform the trick as we wanted to know if it can be a safe way to perform the International Dokokashira Door Glitch in yellow (and to continue the game once warpped).
Since the ZZAZZ Glitch causes save corruption when we try to save (and the known fixes to this don't appear to work in french versions) and the Super Glitch is too messy because of TMTRAINER effect, we wanted to "execute" the gameshark code allowing to have 7 pokémons using 8F. If it is possible to "suppress" the code afterwards, then we would have performed this glitch properly !

Re: Save corruption-triggered Prevented Progress

Posted by: Torchickens
Date: 2015-04-17 10:50:20
Happy to have helped!

Ah, OK. Best of luck to you and your team! :)

I am not sure what you mean by "suppress"ing the code but I guess you mean to get 6 Pokémon again.

This code should give you 7 Pokémon.

Get 7 Pokémon:
Lemonade x7
CT34 x104
CT09 x201

3E 07 EA 68 D1 C9

ld a,07
ld D168,a
ret


If you change the Lemonade to x6, the code should give you 6 Pokémon again.

Unfortunately after I got 6 Pokémon and used the code to get 7, it didn't work as expected. My number of Pokémon originally being 6 instead of 5 was responsible. I don't know why that is the case because Pigdevil2010's code jumps over Pokémon 5 (D16D). However, there is a simple work-around to that; use the code two times in a row. The first time it gave me 7B (dec:123) Pokémon; the second time it gave me 7 Pokémon.

But assuming this counts as an "international dokokashira door" effect I encountered another problem, taking four steps caused the game to freeze after a Pokémon fainted and I couldn't spot any cool effects. Maybe that's another French version thing. :(

I will try it on Yellow after I set up arbitrary code execution on French Yellow.

Here is a save file for French Red with arbitrary code execution set up, by the way.
https://mega.co.nz/#!UoECGTgC!XP1yNsyZYwc5bYalbWWNWU8uxONwLfbULKQPDtUYp_o

Re: Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-17 11:33:00
Thanks again,

We have tried this. Indeed it seems to crash after 4 steps. Using the gameshark code directly, it crashes too. So the International DKD seems to fail in french RB, but to be honest we didn't even tried since we are more interessed in Yellow DKD, because it allows us to warp.

French Yellow IDKD using the gameshark code or ZZAZZ or Super Glitch works fine, does not crash, and allows to warp. Of course, triggering it without a code execution makes it unstable (we can't save, we can't fight, etc.), so I guess the challenge now is to get this code execution to work on french yellow  :P !

Once again thank you for your support. We now manage to do the code execution at least in R/B, and to understand how it works  :D

Edit : Warp of course is an unappropriate word to describe the way IDKD works. I guess you understood what I meant :)

Re: Save corruption-triggered Prevented Progress

Posted by: Torchickens
Date: 2015-04-17 11:38:49
Awesome :D.

Well I just finished setting everything up. The effects didn't seem that interesting and I don't know many, but one of the effects was box Pokémon 9's species identifier (first byte) reducing every four steps. So if you changed to another box with a Gyarados (16h) as Pokémon 9, you could probably turn it into Mew (15h), but it would be a hybrid between Mew and Gyarados.

Unfortunately this effect breaks the ws l' m (hex:63) item because it is supposed to run code initially from DA84 (number of Pokémon in box 1 and it is going to access Pokémon 9); however, you can deposit the seventh Pokémon to get six.

For some reason, I didn't experience any warping. :/

Set up for the ws l' m glitch item in French Yellow:

Tangela with 233 HP
Nidoking
Metapod
Haunter
Flareon
Parasect
Kadabra
Tentacool
Grimer
Any Pokemon

Items:
Limonade x7
CT34 x102
CT09 x201

3E 07 EA 67 D1 C9


ld a,07
ld (D167),a
ret


Save file, as before. https://mega.co.nz/#!spVlmTLY!P4YFZLdPjutoKTuHl_2rcNyTvCXAkomK8ftPLlIppLc

Edit: Yes, it's possible to change Gyarados into Mew.

[img]http://i3.minus.com/ibgm0B6wtcaKht.png[/img]

Re: Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-17 11:50:16
Because of dinner issues, I will not be able to test before, like, 30-40 minutes.

But to answer your question, "warping" doesn't work everywhere. By experience, it works north of vermillion by going south after 1024 steps (at least). Maybe that was the problem you had. We'll test it after :)

Re: Save corruption-triggered Prevented Progress

Posted by: Torchickens
Date: 2015-04-17 12:01:05

Because of dinner issues, I will not be able to test before, like, 30-40 minutes.

But to answer your question, "warping" doesn't work everywhere. By experience, it works north of vermillion by going south after 1024 steps (at least). Maybe that was the problem you had. We'll test it after :)


Indeed, I turned Route 6 (north of Vermilion City)'s south connection into Lavender Town. Thank you for that tip.

(and a while ago I read on the article that TheZZAZZGlitch wrote about south connection manipulation too)

Re: Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-17 13:58:51
So I tried using your save file. Indeed warping works fine while you do it in a place where it works.

But, once the first and seventh pokemon are swapped, when I try to swap back 1->7 in order to deposit the seventh and "restore" the normal 6-pokemon team, the game crashes.

I also have a crash when I toss a limonade and use WS. Do you know a way to prevent this ? The idea is still to "purify" the game after a successful IDKD  :)

Re: Save corruption-triggered Prevented Progress

Posted by: Torchickens
Date: 2015-04-17 14:57:50
If you use ws 'l m at a PC, put the FF at top as normal, but then change boxes immediately without walking, your important stored Pokémon required for arbitrary code execution won't be corrupted. But there is another problem that you have to deal with.

Item 4's quantity may be reduced every four steps, and this is part of the code for obtaining 7 or 6 Pokémon. To work around that, you can:

1) Put an unimportant item in the place of item 4 (such as item 1)
2) Go one step in front of the PC when you are finished with the international dokokashira door glitch corruptions you want to do.
3) Change to the original box
4) Put item 4 back in place
5) Change Limonade's quantity to 6.
6) Put your 'Cancel button' back where it belongs (slot 7)
7) Change back to the box with your stored Pokémon arbitrary code execution set up and don't take any more steps.
8) Then I think that using ws 'l m will give you six Pokémon again. If it doesn't, save and reset. I had a problem like this before with running the unused gift Pokémon function in Yellow. I'm not sure why.

Unfortunately as you've most likely noticed, one of your Pokémon will become corrupted - the one that you put in slot 7. So it is good to use one that isn't valuable.

[img]http://i2.minus.com/igLQmXdPq9m6c.png[/img]

You can try depositing Pokémon other than the Q/Retour or the corrupted Pokémon; but when I try to deposit Q or the corrupted Pokémon the game freezes, sadly.

I found out that if you use memory viewer to give that Pokémon a 50h in its name, then you can deposit it without a freeze. This would be more trouble as if it wasn't enough, but you could use ws 'l m later with different items to put 50h in those Pokémon's names.

Re: Save corruption-triggered Prevented Progress

Posted by: Krys3000
Date: 2015-04-17 16:02:25
Thank you. I will try your way. But meanwhile, we have found a way to complete it. It might be a modified version of your fix, and it is a very prototype method so since we are starting to understand how 8F Code Execution works, we might still be doing unnecessary things. Here are the steps as communicated by our team member who succeded this way :

Before activating WS
- As "Any Pokemon" in the PC, deposit Tentacool (this is to facilitate the trick and allow the reusing of WS afterwards)
- Have Grimer on your team

IDKD
- Normally activate the WS item while having 7 Limonade.
- Buy a 6th item (eg a Pokeball) and place it at position 5 (alternatively you can swap item 1 and 4 apparently)
- Swap pokemon 1 and 7.
- Warp to any place

On stabilizing IDKD
- Release Tentacool (the above one) then Grimer
- Deposit Grimer then another pokemon (preferably a Tentacool, in order to quickly be able to perform the trick again)
- Deposit the seventh pokemon in another box (it will not freeze, then)
- Your original first pokemon will be back at place 1 and not be corrupted.
- Reset your original 5th item at this position.

Everything will be normal then. This might not work to warp in more than 23 localisations beneath the original one. But since it did not broke the code execution, one should be able to do it again if needed.

If you just wanna warp, then you don't care about the WS anymore, just deposit grimer (for example) then the seventh. Clear the box and the items, you just have to store permanently WS in the PC since you can't toss it.

Also note than even with your technique you can uncorrupt pokemon 1. After you have reswapped 1 and 7, do it again twice. The pokemon 1 will be normal again.

Voila !