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

Gen I: How to break the money cap and other glitchy-richness - Page 1

Gen I: How to break the money cap and other glitchy-richness

Posted by: The G-Meister
Date: 2015-09-04 14:00:50
ATTENTION: This first post is under maintenance while I clear up and explain some of the discoveries made below. Sorry if bits of it don't make much sense right now :/

Here are multiple methods to get the player's money to 999,999 or over, using a few basic glitches.

[size=12pt]Method 1: Editing Money Bytes ($D347 - $D349 RB) via Item Underflow[/size]

You might not have known it, but that CANCEL button at the bottom of your item pack is the key to all the money you could ever need. By far the most efficient of the lot, this method gets the counter to FFxxxx, where the xxxx value is the money the player had to start with. In the method described, only byte $D347 is modified.

The player must have:

1. less than 10,000 Pokémon dollars
2. a stack of 255 items
3. any two separate disposable items
4. access to a PC (including the one in the player's bedroom)

Procedure 1 (if the item pack has been filled to the maximum at any point during the playthrough):

If the player has filled up their item pack such that they cannot hold any more items, a TM55 (CANCEL) needs to be tossed using this method. If you find multiple or even just one hex 00 item below the cancel button (displayed as a "j." in English RBY) you will need to refer to procedure 2 below.

0. If the player hasn't already, it might be a good idea to duplicate the stack of 255 items. Do this by depositing it in the PC, then depositing a cheap item (EG an Antidote), then withdrawing any item above the x255 stack. Then re-deposit the item, to have the antidote replaced by another x255 stack of the same item, which the player can withdraw. Alternatively, buy two separate disposable items. Put one above the x255 stack, and one underneath. Sell the one above back to the vendor, or toss it, then buy another item to return the pack back to normal.
1. Set up your item pack like so:

Disposable Item 1
Disposable Item 2
Item x255
CANCEL

2. Deposit the first two items in the PC, to have the Item x255 duplicated twice.
3. Toss 253 of the first item.
4. Swap items one and two twice. Dry item underflow is now activated.
5. Scroll down past "CANCEL" (as in, keep scrolling until "CANCEL" disappears off the top of the screen, will be roughly 19 flashes of the cursor from the top of the pack.)
6. Scroll back upwards, such that when the cursor lands back on "CANCEL" you don't press "up" again. If you do so, repeat step 5 up until this point.
7. Toss 1 of "CANCEL".
8. Withdraw both of your disposable items to return the pack back to normal. The one you withdraw first will get destroyed.

Procedure 2 (if the item pack has not been filled to the maximum at any point in the playthrough):

If an item slot has not been filled up yet in the current playthrough, it's default values are hex 00 ("j. x0"), and are replaced by hex 255 ("CANCEL x0", although the x0 is not displayed) once an item is removed from it. This makes it seem like you are not scrolling anywhere, when in fact you are scrolling past many "CANCEL"s, they just have the property whereby they "hide" all the items beneath them, including other "CANCEL"s.

Follow steps 0. to 4. from Procedure 1.
5. Scroll down past "CANCEL", until you see one or more "j. x0"
6. Find the last "j. x0" in your clump and toss 1. If your money is 000000, find the second to last "j. x0" in the clump and toss 1.
7. Withdraw both of your disposable items to return the pack back to normal. The one you withdraw first will get destroyed.


Result:

If buying an item, look at your money counter in the top right. If you have done everything correctly (or my explanation is up to scratch), you should see two identical glitch blobs as the first and second digits. These are both the games representation of a hex value of "F". You've effectively added 1650000 Pokémon dollars to your wallet. Have fun carrying that around.

Having used this method for item underflow many a time on console myself, I find it much easier to use and key items you might have accumulated during your playthrough for the initial steps (makes depositing/withdrawing faster and easier) and to have a stack of over 100 disposable items in my PC, which I use to withdraw and turn the pack back to normal. This means that I can do the whole process while stood in front of the PC, and do it multiple times without having to go out to the Mart and back.

An alternative method for this involves you swapping the item underneath CANCEL with something like a x255 stack of TM54, increasing the 3rd, 4th, 5th and 6th digits to glitch blobs too, although this is only a marginal increase from the method above, and was not worth a full explanation.

Method 2: Selling Nuggets

As much as they might taste "Yeeehaaa," they're worth more in the bank than they are in your stomach. Sorry Pete.
Cereal jokes aside, this method gets the counter to 999999

This was my first attempt. Using the dry item underflow, standing at the Easternmost point of Celadon City, on the North side of the path, it's possible to swap the remaining item(s) with a 0x stack of Nugget, found not too far down the list. Subsequently the player should fly back to a city of their choice, and sell them in batches of 99x for max efficiency, giving 450,000 Pokémon dollars per 99 (selling 100+ at a time simply results in them selling for 499,999 Pokémon dollars due to reasons outside of my knowledge). Seen as the player has 256 of them, they have more than enough to max out their money to the normal cap of 999,999 Pokémon dollars.

A few nuggets should remain, they can either be deposited in the PC for later use, tossed, or sold. Finally, the player should buy 3 items with their newly-found riches to return their pack back to normal.

[size=12pt]Arbitrary Code Execution[/size]

Working on a code for 8F and ws m. Bear with :P

[size=12pt]Sample Text[/size]

[size=12pt]End Note: Glitch symbols[/size]

Some of these methods break the cap of 999,999, and subsequently display glitched symbols instead of numbers. When viewing the player's profile, most of these glitched characters are blank, and will not give you much insight into what character it actually is. To get around this, go to a Pokémon mart and speak to the lady who sell the player stuff, the Safari Zone entrance and speak to the guy who lets the player in, the Pokémon center before rock tunnel and speak to the man who sells the player a Magikarp (if the Magikarp has not been bought yet) or any other place outside of the player's profile to get a proper reading. The Pokémon center Magikarp guy is probably the most useful to you, as this image as taken from this post tells you what the correct values are. Seen as each digit only goes up to 15, you should only need the first 5.

[img]http://i38.tinypic.com/2d8jgqg.png[/img]

Re: Gen I: Maxing out Pokédollars (money)

Posted by: Háčky
Date: 2015-09-04 20:54:02
The most valuable item in Yellow is not the Nugget, but rather ��[page down]� (hex $96), which sells for 469745 Pokédollars.

Re: Gen I: Maxing out Pokédollars (money)

Posted by: The G-Meister
Date: 2015-09-05 06:57:31
The most valuable item in Yellow is not the Nugget, but rather ��[page down]� (hex $96), which sells for 469745 Pokédollars.


Oh nice! Never thought of selling glitch items. However after a bit of testing, it seems that even if the player sells or tosses any of them (I was using a 0x stack) it converts into another item (on Yellow anyway, and I'd love to tell you what it is, but apart from telling you the array of glitchy symbols, I can't tell you anything. Man, I should really start using an emulator :/). The shop-keeper then says in response to selling it (something along the lines of) "I'm afraid I can't put a price on that," meaning it's classed as a special item.

So the player can sell one, then they have to go and retrieve another one… and unless they fumble around with converting the thing we're left with back into what it originally was, then the nugget method would be more practical, as the player only has to do one round of nugget-selling to get the max of 999,999. Furthermore, it doesn't matter what item you use for the underflow, as the 0x stack of nuggets is relative you your Y co-ordinate. What the player has to do to get the "��[page down]�" (hex $96) is do a whole lap of Celadon city and an extra 3 spaces to convert a Max Elixer into one.

And even after all of that, we're still only at 999,999 :/

[Edit]: After screwing around a bit more, and replacing the item under the "CANCEL" button with a x255 stack of TM54, I managed to get the last four digits to be FEFF, and discovered that although in the items menu the bytes are combined to give the TM54 and x255, they're handled individually when it comes to money, meaning the max possible total is… 1,666,665 in decimal? (1500000+150000+15000+1500+150+15)

Re: Gen I: Maxing out Pokédollars (money)

Posted by: FSX
Date: 2015-09-10 18:47:35
As far as I can tell, the game stores the amount of money the player has as a 6-digit, that is, 3 byte, binary coded decimal number. The way binary coded decimal addition works in RBY is that overflow is handled by capping, so if the result has to be a 6-digit number, which it does, it will never produce a result larger than 999,999.

So you're never going to get more than ¥999,999 by selling items in the store.

I think your estimation of the maximum amount of money is probably correct, though.

Re: Gen I: Maxing out Pokédollars (money)

Posted by: Krys3000
Date: 2015-09-11 03:58:57
I don't really know if that helps but using Glitch City RAM manipulation you can do interesting things with your money.

I recently used this to give me 6F6F6F Pokédollars (the game considers this to be 696969). We can't go more so it's not 'maxing out' but since it is easy to do and required quite nothing outside of Fly and Cut, it has a certain utility I think.

I intend to start a thread on glitch city RAM manipulation soon. Aside from generating Cooltrainers from a lot of RAM values (money, moves, items, etc.) it has other useful applications, like allowing some Pokémon to learn Solar Beam.

Re: Gen I: Maxing out Pokédollars (money)

Posted by: The G-Meister
Date: 2015-09-12 02:16:44
So you're never going to get more than ¥999,999 by selling items in the store.


That's what I'd seen from experiments. Thinking about it though, 999,999 Pokédollars is pretty close to 1,666,665, and is the closest we've gotten so far.

I recently used this to give me 6F6F6F Pokédollars (the game considers this to be 696969). We can't go more so it's not 'maxing out' but since it is easy to do and required quite nothing outside of Fly and Cut, it has a certain utility I think.


To be honest, any money manipulation is good. If it takes less work than getting a x255 stack of items to underflow some Nuggets, I think it's worth mentioning.

And if we're going with that, I think I'll change the title.

When you said "the game considers this to be 696969", is that what the display value came up as? Maybe something activated the cap? With the underflow I managed to get glitchy symbols in my money, which acted like their respective values, and still counted down with glitchy symbols when buying things.

I literally just had an amazing idea while writing this. It might be possible to get the first two digits set to 0 , then, using underflow, selecting the CANCEL button and tossing 1 item (seen as it acts like a TM55, not a cancel button). To the Gameboy!

[Edit]: It works! GG, G, GG. So I had 58 Pokédollars (been doing a lot of ditto-tricking and thus, blacking out a lot). EG, 000058. Did the dry underflow, and tossed 1 item from CANCEL… And it didn't work (theory is, the middle two bytes have to be filled before the front two register… Or I'm being inept, most likely that). I then replaced the item underneath with a 0x stack of Nuggets, tossed 1, and went to the Pokémart. Talked to the counter lady, and BAM! FF58FF, or 1500000+150000+5000+800+150+15, which equals 1,655,965 Pokédollars.

Now I'm a nerd, so I'd like to go 1 digit further… and by that I mean obtaining a x255 stack of TM55, and I'm not exactly sure how to do that. By swapping an item with one that is relative to your X-coordinate in the underflow, and walking left (when I'm using Masterballs) two steps makes the game think you've gone off the edge of the map, and instead you get Calcium, which is rather annoying :/

At the moment, using a x255 stack of TM54 and tossing one item from CANCEL we can get up to FFFEFF, which is very close, but I'd like it on the dot. We're nearly there :P

I'll do a cleanup of the first post, and get all the relevant information in there… after I've done some experimenting with how the game handles your glitchy money (like trying to buy something for 1000 Pokédollars when you only have 000FFF, so you technically have enough, although the game might look for a 001000).

Wait… can we afford a bike now?

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: Krys3000
Date: 2015-09-12 04:17:36
To be honest, any money manipulation is good. If it takes less work than getting a x255 stack of items to underflow some Nuggets, I think it's worth mentioning.

And if we're going with that, I think I'll change the title.

When you said "the game considers this to be 696969", is that what the display value came up as? Maybe something activated the cap? With the underflow I managed to get glitchy symbols in my money, which acted like their respective values, and still counted down with glitchy symbols when buying things.


It's way easier because you don't need any stack and you don't need to encounter MissingNo. But I won't say it's quick, because, of the many manipulations you could do using Glitch City RAM map, the better one for this application requires you to start with 343434 Pokédollars. Then, if you have seen this video, you know most of the glitch :
1- Trigger Walk through walls (safari zone + poisoned Pokémon)
2- Go here and walk 50 steps left, 116 steps up
[img]http://www.prama-initiative.com/RBJ/rammap.png[/img]
It brings you to the coordinates (6D,01)(38,00), matching with the money bytes.
3- Cut the three trees and you now have 6F6F6F pokédollars.

What I meant by "the game considers this to be 696969" is that indeed, I had 6[glitch]6[glitch]6[glitch] pokédollars, but then when I bought something costing 1200 pokédollars, I only had 695789 pokédollars left, just as if I had 696969.
If this is really something unique to Glitch City RAM manipulation, it would be interesting to know why.

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: Stackout
Date: 2015-09-14 05:25:41

What I meant by "the game considers this to be 696969" is that indeed, I had 6[glitch]6[glitch]6[glitch] pokédollars, but then when I bought something costing 1200 pokédollars, I only had 695789 pokédollars left, just as if I had 696969.
If this is really something unique to Glitch City RAM manipulation, it would be interesting to know why.


Amount of money is stored in binary-coded decimal, if I remember correctly. That's why.

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: Krys3000
Date: 2015-09-14 05:47:15
Yeah, that was my guess. But then, if I understood well, The G-Meister says he can get ACTUAL A, B, C, D, E or F amount of money using other techniques. Meaning that, if he has F00, spending 200 will give him D00 and not 700, as it happens using GC-RAM Manipulation.

That's what I don't get why  :???:

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: ISSOtm
Date: 2015-09-14 11:23:26


What I meant by "the game considers this to be 696969" is that indeed, I had 6[glitch]6[glitch]6[glitch] pokédollars, but then when I bought something costing 1200 pokédollars, I only had 695789 pokédollars left, just as if I had 696969.
If this is really something unique to Glitch City RAM manipulation, it would be interesting to know why.


Amount of money is stored in binary-coded decimal, if I remember correctly. That's why.

Yep, it is.
But the display doesn't read it as BCD.

Also, each number seems to be capped in the code, but I can't remember where I saw this in the code…

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: The G-Meister
Date: 2015-09-14 11:40:02

Yeah, that was my guess. But then, if I understood well, The G-Meister says he can get ACTUAL A, B, C, D, E or F amount of money using other techniques. Meaning that, if he has F00, spending 200 will give him D00 and not 700, as it happens using GC-RAM Manipulation.

That's what I don't get why  :???:


I most surely can. Two things though: 1. I'm playing on Yellow, and 2. I was buying things in the Celadon department store. Either of those might have something to do with it. If you gimme a mo, I'll get a couple pictures on my camera

[Edit]: If the pictures below are a little hard to understand, I'm about to buy x10 TM32, equivalent of 10,000 Pokédollars, which will decrease the 2nd digit by 1. The second one shows the result: a symbol change. If you look at the MONEY box in the top right of the screen, you'll see that the second character changes from 1 glitchy symbol to another (if you really want the specifics, for the first floor of the Celadon Department store, in the first shot it's a blue line, a black line, another blue line, another black line, 3 more blue lines, and a black line to finish off. The second time, after I've bought the TMs, it's a white line, a blue line, a green line, and the rest are blue lines.)

[Edit 2]: Is this what's supposed to happen?

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: Krys3000
Date: 2015-09-17 04:05:49
Hello,

I can see that, but I just tried to artifically give myself the same amount of money you have in picture 1 (meaning I changed the values to FF31FF in Memory Viewer). When I buy it, money drops to 0.

If I use some other values with letters inside, it's always considered as numbers (F = 9, E = 8, etc.) when I buy something, and I never had a tile change like you had.

Maybe that's something related to the underflow only… I have no idea. I'll check.

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: The G-Meister
Date: 2015-09-17 10:34:46
Well it's either the underflow has supernatural capabilities, or something's different between versions (assuming you were trying on the French, or Red/Blue… or both)

[Edit]: Seen as x255 stack like to duplicate themselves when something above them is tossed, if we can get the CANCEL to become x255, then simply remove the item above it… We would get the TM55 x255 as the CANCEL, and another TM55 x255 underneath…? So it might be as simple as doing the underflow, and tossing your first item? There's gotta be a catch, it can't be that simple :/

[Edit 2]: Dang, don't think it is. I'll mess around some more tomorrow

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: The G-Meister
Date: 2015-10-13 15:47:16
Aha! New discovery: tried the GC RAM manipulation method you showed and it seems that the issue your having must be an emulator bug, something that's different between the English and European versions, or a discrepancy between Red/Blue and Yellow. Both of the methods let me freely use the glitched characters as I showed in the pictures. If I can get my Pokémon Red save completed, I'll go test on there too. It might be one of the few bugs that exist on Yellow, but not on Red/Blue. I guess we just have to test out each of them now.

I do recall when mucking about with an emulator the other day that a similar thing happened: I set my money to FFFFFF, and somewhere along the way it changed to 999999 for my hall of fame entry. I was using BGB.

Sidenote: new avatar anyone? And 11,000th post! Damn this board is popular!

Re: Gen I: How to get a decent amount of Pokédollars (money)

Posted by: Krys3000
Date: 2015-10-13 16:35:20
Oh! I think I was testing that on a English Red at the time, because it was on the save file I used for the GC RAM thread. I'll check again but if so, then it might be related to the fact that I was indeed playing on emulator, but that seems strange, uh? How can it be related? We would need some expert here, I know little about cartridge/emulation differences.

Unfortunately, my Game Boy Advance recently died. Could you test the behaviour of Casino chips? I mean, if xF coins are actual xF coins and not x9? It might be important regarding GC RAM Manipulation. Thanks, and great work!