Multi-hit Pay Day earnings glitch

From Glitch City Wiki
Jump to navigation Jump to search
♀ . (0xC1)'s activation of the glitch

The multi-hit Pay Day earnings glitch is a glitch in Pokémon Red, Blue, and Yellow, and is a glitch technique of the participants glitch.

This glitch makes the game think that a Pokémon beyond slot 6 took part in battle and gained experience, and then later the player picks up a large amount money from Pay Day based on the address D06A (multi-hit moves left counter) even if Pay Day wasn't used.

You can get 10000-40000 Pokédollars through one method and up to 800000 with another method, with thanks to Crystal_ for the latter method, though the latter method requires at least 153 party Pokémon for the max yield. The other method is easily repeatable as well.

Summary

With an expanded party, the address D06A or D069 in Yellow (the amount of multi-hit moves left) may be interpreted as part of the flag array at D058 that stores which Pokémon participated in battle so that they gain experience. The flag array is bit based, so Pokémon 1 will gain experience if D058 is 2^0 (01h), Pokémon 8 will gain experience if D058 is 2^7 (80h), etc., but the game may write to addresses beyond D058 if you send out a Pokémon beyond slot 8. Here, D06A corresponds the storage byte for Pokémon 145-158.

Only Pokémon that leveled up in a battle may evolve after the battle. Which Pokémon may evolve is recorded by another flag array at CCD3. With an expanded party, that flag array will overflow too, and the storage byte for Pokémon 145-158 will be CCE5. Therefore, when calculating experience, the value of D06A is "copied" to CCE5. (Provided that those Pokémon actually level up, which they probably will: Since their data are from unrelated memory regions, their current levels likely don't agree with their current experience, so they will level up with any gain of experience.)

The intended meaning for CCE5 is the most significant byte of the Pay Day pick up money. The Pay Day pick up money is stored in 'binary encoded decimal', so 1234 Pokédollars would literally be stored as 001234.

By manipulating D06A and using it as experience flags, the most significant byte of the Pay Day pick up money is changed. For example, if D06A is 01 you can pick up 10,000 (010000) Pokédollars, if it is 04 you can pick up 40,000 (040000) Pokédollars.

D06A (multi-hit attacks left value; determines Pay Day earnings byte 1) can be manipulated in two ways:

1) By using a multi-strike move and internally having some hits left after the enemy faints and it stops (e.g. you had 5 hits but only had to do 3, that would leave D06A as 02).

2) Through actually sending out party Pokémon 145-152 into battle. (Historically the first method was discovered first, before Crystal_ made the connection between D06A and the D058 flag array.)

Non 6+ party steps (cannot get more than 40000 Pokédollars)

1) Prepare a glitch Pokémon with a multi-hit move: Doubleslap, Spike Cannon, Fury Attack, Fury Swipes, Barrage, Comet Punch, Bonemerang, Pin Missile, Twineedle or Double Kick.

The glitch Pokémon also needs to learn the hex:00 ("CoolTrainer") move by level up and has to be close enough to the next level to level up after battle. Here is a list of Pokémon that learn it through level up - (Generation I move) (generated data, may have errors).

Yellow's ♀ . (hex:C1) is perfect for this glitch because it can know Spike Cannon naturally, is available via the Ditto trick with a Special of 193 ('extended Mew glitch'); not just Rival name CoolTrainer, etc. and learns CoolTrainer at level 16. ♀ . may freeze the game on the opponent's side sometimes, unfortunately but not always.

2) Enter a battle. If using Pokémon Red and Blue, do this in Diglett's Cave or the game will freeze after battle, if using Pokémon Yellow you can do the glitch anywhere.

3) If using Red/Blue, open the party menu within battle and close it before attacking. If using Yellow, you don't have to open the party menu because the screen copy is updated already.

Have the glitch Pokémon beat the enemy with the multi-hit move with some hits unused. You won't be able to see this without memory viewer, so cross your fingers. Then cross your fingers again and hope that the CoolTrainer move causes corruption. If it does, the game might say a different Pokémon (which was Pokémon 144, hex:92 one time, I don't know if it varies) learned the move instead of the glitch Pokémon you used. The game is managing a different Pokémon. You can replace its moves if you want, but after continuing you may pick up Pay Day money based on the number of multiple hits left value.

Notes

This glitch works along with the multi-hit moves being used even though you don't have over 145 Pokémon because the CoolTrainer move corrupts the CF92 address to 7F for this screen data (battle). This address manages which Pokémon the game is dealing with (e.g. 00=party Pokémon 1, 01=party Pokémon 2). The high value forces the game to manage Pokémon beyond slot 6, and for some reason the game is in a position to use values beyond D058 for experience earned.

Sadly there is no known way to get too much money with this method, only up to 40000 (4 multi-hit moves left) and once the Pokémon levels up it may not learn - later.

145+ party Pokémon steps (152 for max Pay Day earnings; 800,000)

Have at least 145 (91h Pokémon), enter a battle, then write to D06A by sending out your last Pokémon/Pokémon of choice (using a Full Heal or Max Revive on it first may help) and win the battle to get Pay Day money. If you try 152 Pokémon, sending out the 152nd Pokémon will write 80h to D06A, giving you 800,000 Pokédollars!

D06A values acquired for sending out Pokémon (and theoretical Pay Day yields, some not tested):

152nd Pokémon gives 800,000

151st Pokémon gives 400,000

150th Pokémon gives 200,000

149th Pokémon gives 100,000

148th Pokémon gives 80,000

147th Pokémon gives 40,000

146th Pokémon gives 20,000

145th Pokémon gives 10,000

220+ Pokémon (or so) is not recommended in Red/Blue because the game may write CFC4 as an odd value, causing a freeze when the battle ends unless you are in a place like Diglett's Cave. Corrupting the enemy Pokémon's HP (253+ Pokémon? Haven't verified) is not recommended either as it may take a long time to defeat the enemy Pokémon.

Getting 152 party Pokémon or number of your choice via Super Glitch

This includes optional steps below the main steps if you plan on saving, changing the party counter to 0 after):

BEWARE: Saving after doing the Pay Day earnings glitch through this method will destroy the save because your name is over 10 letters long (no 50 terminator on the 11th character or earlier) unless you follow the optional steps carefully.

Steps

1) Prepare an LM4. (Ditto trick Special stat 198) with Super Glitch as the first move.

2) Also prepare a Pokémon whose index number corresponds to how many Pokémon you want (e.g. Starmie, 153) and any other Pokémon (this Pokémon will disappear).

3) Go to a Pokémon Center PC. Select deposit, and deposit the Pokémon that will determine how many Pokémon you get (e.g. Starmie; 153).

4) Select LM4 to bring up the deposit/summary box, but keep viewing LM4's summary until hopefully your party counter becomes corrupted to 0.

5) With the box still open, deposit it to underflow the party counter to 255.

6) Withdraw the 'count of your choice' Pokémon (e.g. Starmie) to get e.g. 153 Pokémon.

7) Open the party menu and swap the first Pokémon with the second to avoid the 'international dokokashira door glitch' because that can trap you.

8) Get an encounter and switch to the 145th-152nd Pokémon using a Full Heal/Revive on it before if necessary.

9) Finish the battle to get e.g. Pokémon 152 gain experience, then the Pay Day money.

Note: You don't need to do it in Diglett's Cave to avoid a freeze after battle and the possible need to open the Pokémon menu or items menu to escape the cave with no freeze unless you have too many Pokémon because CFC4 only becomes corrupted with 220+ Pokémon.

Optional steps to make the party normal and save after

First you may want to get rid of your 152 Pokémon, etc. You may be able to deposit them all individually but that would take a while.

If you deposit another Pokémon with Super Glitch as the first move before getting 152 Pokémon it won't get corrupted as it's in the box, and you can use that to get 0 Pokémon again by going to withdraw it but viewing its summary until corruption occurs.

However, using Super Glitch to get any number of Pokémon (because the player name addresses are before the party addresses, i.e. you have to corrupt D158-D162 to get as far as D163), as we do earlier for the 0->255>153 thing and preferably to get 0 again would corrupt your name to have no 50h terminator in the first 11 characters and destroy the save file if you try to save.

But to fix your name and enable saving without destroying the save, you can withdraw a third Super Glitch Pokémon with 3 moves 27 letters in total and Super Glitch as move 4 (e.g. Body Slam, Mega Kick, Water Gun, Super Glitch; LM4 learns all of these moves, with all except Mega Kick by level up) then go to this position http://i.minus.com/iLUYbTqCI7QX3.png and view its summary. After the corruption, your 'yes/no' type box will be corrupted and can prevent saving. But to fix it you can talk to the Day Care man to bring up Yes/No and cancel out, or go to a Pokémon Center, talk to the nurse, bring up Heal/Cancel and cancel out before saving.

YouTube video

YouTube video by ChickasaurusGL


Credits

  • ChickasaurusGL: Documentation, YouTube, article description, research
  • Crystal_: Research