gia
Player (109)
Joined: 5/3/2006
Posts: 223
huh wouldn't that be good instead of "arbitrary", the version difference opening more and different glitches instead of just using faster text
Editor, Expert player (2315)
Joined: 5/15/2007
Posts: 3856
Location: Germany
Well, I don't like to have runs categorized by the glitches they use. A glitched japanese run would be arbitrary for me, if it didn't use the doko kashira glitch, so I'd be glad if a glitched run were made on the US version instead.
Joined: 5/9/2007
Posts: 93
Location: The Netherlands
gia wrote:
I did not understand what step fails given your post though. Kadabra is supposed to be required to get a Ditto, is that the step that fails or have you got it already? Hopefully that isn't wrong. You can skip kadabra by meeting any wild ditto that uses transform on your 254 special pkmn. Gameshark one if you must (turn it off before doing the glitch just in case though).
This is what I do in steps: 1) I get Kadabra with the right Special to appear; 2) After the battle (I ran), I Teleport back to Vermillion City; 3) I walk all the way to the right for the first Start screen to appear; 4) I Teleport back to Vermillion City and Ditto appears; 5) I use Lick with Haunter because it's in the first slot; 6) Ditto Transforms and I run from battle; 7) I walk up for the second Start screen to appear; 8) I Teleport again, back to Vermillion City; 9) Trainer Battle; I throw 1 Poké Ball and run from battle; 10) I enter the Pokémon Center and before I even reach the computer, the game freezes on me. Now, this is what happens if I have deposited all but one 1 Poké Ball before even entering the grass outside of Lavender Town. If I deposit everything after seeing the Kadabra and having Teleported back, instead of the Start screen, I get a trainer speech, but Ditto still appears. This means I cannot Teleport back. I don't remember what happens then though. There are some things I haven't tested yet, like: 1) Switch in Haunter on Ditto, instead of it being in the first slot; 2) Deposit items after the first Start screen; this would mean I only have to walk back from the second Start screen up north. The Fainting Pokémon message I get could be because the Pokémon I use for Cut and Growling (Dugtrio) is at low health to begin with, because of the Ekans battle; 3) Not deposit items, but change the amount I have, either by tossing some Poké Balls or tossing an item altogether. 4) Not getting Dugtrio at all. Who knows, maybe he's cause of the freeze? I might test it on the emulator with Charmander for the Growler instead (very hard battle versus Ekans, but definately doable on emulator and doable on the gameboy with insane luck). For now, my run is saved near the patch of grass outside of Lavender Town with Haunter leading, Abra, Gengar and Dugtrio and all the items still in my bag. I also have a French Pokémon Yellow saved on the exact same spot, but with only one Poké Ball in the inventory. I'm trying the latter first, but I didn't find the right Kadabra just yet. >_<
gia
Player (109)
Joined: 5/3/2006
Posts: 223
it's not about changing the pokemon but checking the data, and if you were to do it alone then you'd be forced to just try all the possibilites, like you are doing, but you have to get a ditto first, haha. That's where the save manager would have let you finish ages ago :P how long has it been, a year? it won't be over 30$. if you continue not wanting to buy one then test with different setups, you can't fight a wild ditto because it's at cinnabar right? if you got a gameshark hack the wild kadabra to have the required ivs, remember not to fight anyone or get any item you won't be getting in your actual run because they modify your variables... Have to tried healing before reaching the pc? if you are crashing due to poison that could help (or the game will crash as soon as you start healing, or teleport to a "glitch city" :P). Yellow has a one byte offset and p4wn3r was using red so try modifying the amount of pokemon you have in your party, in fact by doing this you don't have to heal, if it doesn't crash it doesn't crash, assured. I recall having to deposit Pikachu, did you deposit it? In the worst worst case you need FF as part of your pokemon data to prevent the crash. I didn't use dugtrio, I used the charmander, and maybe I got lucky and the FF was his (in that time I didn't know about this FF). BUT before you redo, it's easier to check your data with a save manager and find out for sure if you are stuck or not.
Joined: 12/29/2007
Posts: 489
Are there any disappearing objects in either Cerulean City or Route 24? There was a list of disappearing objects in various locations, but many had question marks next to them. I'm playing Pokemon Red and abusing the Ditto glitch, but I don't want any valuable stuff like items and Snorlax to disappear. Since the disappearing object in Saffron City (a guard) is harmless, I'm thinking that I'll do the Ditto glitch by flying away from the Youngster in the grass on Route 24. If I fly to Saffron, then fly to Cerulean and go to Route 24 to trigger the battle, then the only disappearing objects will either be the guard in Saffron or anything in Cerulean/Route 24.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
in cerulean city there is a tree south and also the rocket that gives you dig and the police officer that moves, gary and stuff, not sure which count or not but im almost sure cerulean does have one of those because I dont recall snorlax working when I used cerulean's pokecenter vermillion was safe though
Joined: 12/29/2007
Posts: 489
So if I do this: - Trainer-Fly from the Youngster on Route 24 - Do the Ditto glitch or w/e - Fly back to Cerulean - Go north to Route 24 to initiate the battle then nothing valuable should disappear, right? If something does disappear, what is it?
gia
Player (109)
Joined: 5/3/2006
Posts: 223
route 24 has that pokeball that can disappear, and you go one step into route 24, so ill guess that pokeball is the one that disappears I repeat, for saffron use vermillion, there are trainers you can fly away from on the routes next to it. if you want nothing valuable to disappear yes cerulean should do since you probably made it disappear already while playing
Joined: 12/29/2007
Posts: 489
I'm talking about using the glitch several times in Red version. For that, it's much easier to use the trainer on Route 24 since he is easy to avoid, as opposed to the ones on Route 11 east of Vermillion.
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
Finding a wild Eevee using the Missingno. glitch can only be done using the Japanese version of the game. You can abuse the Mew glitch to catch them all. All the starters can be encountered using the Missingno. glitch, it's determined by the name of the player.
Joined: 7/27/2007
Posts: 38
Sorry if I'm going a little off topic here (not a lot of activity anyway). I wanted to find out some more about MissingNO, mostly why it's so glitched up when you see it (why it gets drawn the way it does). With a little experimentation, I found the address of the temporary place where your name is kept: 0000D158-0000D15E Don't know if this is useful or not. Gets changed during the OLD MAN glitch sometime when he picks an item and changed back sometime when he is throwing the pokeball. I didn't see this mentioned earlier either, the pokemon you randomly encounter is stored at D889-D88D. D887 stores the 'chance of encounter', but it's 0 at the time of the glitch... Also, I don't particularly like how the RAM search and watcher values are stored backwards. 8E 8B 83 7F 8C 80 8D is this way in the hex editor, but 8D 80 8C 7F 83 8B 8E in the search/watcher. EDIT: Is it possible someone could write me up a memory map? Things like the affected addresses of ZZAZZ are common knowledge, but they're not listed on the Pokemon Tricks page.
TAS: to beat a game faster than Sonic can blink.
Joined: 7/27/2007
Posts: 38
One more thing I wanted to add: According to this thread, all the pokemon pictures are compressed. I tried looking for pokemon locations/names when they need to be loaded (pokedex, wild pokemon), and I can't find them. BULBASAUR, (as a name) which would be 81 94 8B 81 80 92 80 94 91 in hex, doesn't appear anywhere. Does this mean all the pokemon data is compressed before use? Is it because the data is in Japanese and that's why it doesn't appear in English somewhere?
TAS: to beat a game faster than Sonic can blink.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
It obviously does because the area of memory belongs to something else and the game just reads it as an image. I recall a program that could extract the images from gsc it showed the decompression algorithm, could be out there if you search. The names are most likely stored as they are used, i doubt they are compressed, I am not sure though, If you can't find bulbasaur try finding its base stats. I got an incomplete memory map, which is different than a ROM map. To find images and stuff you'd want to check the ROM instead of the RAM. The ROM is bigger than the GB RAM, so the game isn't completely loaded into RAM, instead pages of it are flipped (I dont recall the size of each page) into memory when they are needed, so you'd need to use a debugger and breakpoint emulator to catch it just as it loads the page with the pokemon names and image data. Or like I said just use an hex viewer on the ROM file. Glitchcity has a ROM map iirc also datacrystal and possibly rom hack sites and/or their authors.
Player (36)
Joined: 9/11/2004
Posts: 2623
wazkatango wrote:
One more thing I wanted to add: According to this thread, all the pokemon pictures are compressed. I tried looking for pokemon locations/names when they need to be loaded (pokedex, wild pokemon), and I can't find them. BULBASAUR, (as a name) which would be 81 94 8B 81 80 92 80 94 91 in hex, doesn't appear anywhere. Does this mean all the pokemon data is compressed before use? Is it because the data is in Japanese and that's why it doesn't appear in English somewhere?
Generally text is stored not as text, but as offsets to image tiles that make up the names.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Joined: 7/27/2007
Posts: 38
gia wrote:
It obviously does because the area of memory belongs to something else and the game just reads it as an image.
All of the pokemon graphics data is stored in chunks, I just mean that you have Bulbasaur in D189-DA55 (or whatever) and Ivysaur in DA55-FFFE. Soooo....that would mean that MissingNO's graphics should just be pulling data from the pokemon picture area that normal pokemon would be using. I don't think it's from memory that's being used, reinforced by the fact that there are more than one MissingNO at different addresses that are exactly the same. So I guess MissingNO is a placeholder then, right?
something else and the game just reads it as an image.
So what is that "something else"? If I end up finding the address where MissingNO's picture is, there's a possibility that the data actually is used, just not in the picture addresses. Maybe it's deleted tiles/sprites/random junk? It had to have served some purpose at a point.
OmnipotentEntity wrote:
Generally text is stored not as text, but as offsets to image tiles that make up the names.
Does that mean I could find pokemon by searching for [offset for B tile] [offset for U] [offset for L] etc? Link , how can you have garbage data exactly? Is the value is too high for the decompressor, so it tries to write stuff until it runs out of room or something like that?
TAS: to beat a game faster than Sonic can blink.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Er, are we casually chatting or are you really not understanding and asking something? You talked about memory map, that's memory. You want to find the "image" in the ROM, not memory (not entirely true, but to get started yes, find them in the ROM first). Since all the images wouldn't be loaded to memory just the ones on the required chunk and only during the "load image function" then the chunk would be unloaded and a better chunk (like battle gui code) would remain in memory most of the time. So just load the ROM on an hex editor and treat it like the memory viewer, you can even load changes on the emulator and see what they do :P Yes, Missingno is a placeholder, but not in a separate routine that does "if pokemon not found then go to this specific placeholder", no, the routines just take an index (species number) and search in the data as if it was an array (start + offset*index), and there happens to be values there and they get loaded, the programmers did write MissingNo. in many of them (in some didn't it seems, ending in glitch names), but they didn't give it much thought as a pokemon it seems because all they created for it is the name, there's no sprite, no moveset that makes sense at least, anything that I know. On later gens they created an sprite at least :P No idea about what the "something else" is, it's possible it's nothing. They could have had all the pokemon data area cover the 256 possible pokemon and just left the data "empty" on the unused spots, and by empty I mean they didn't touch it anymore after development finished so missingno moveset could be leftovers from development. OE 81 is not ascii for B, it is B in pokemon terms already, I believe the ROM should have the string. Yup it does, all the pokemon names are stored on an array, so I assume the base stats have their own array and all the stuff separately instead of an array of "struct PokemonSpecie". It starts somewhere at 1BFFC and I could find BULBASAUR and later two MISSINGNO. right next to each other followed by GROWLITHE, it seems they have 50 to signify end of string but if the string is too long they just cut at "max length" of 10 and omit the 50. That comment by HyperHacker is interesting, but I dont know how the decompressor works to help you with that. If you can't find anything even among rom hackers maybe just maybe loadingNOW. is still active, I think I last saw his nick here http://www.filb.de , IIRC he used to obtain the images from pokemon games, but not sure if he tackled RBY.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
The "values" of characters are listed in this chart: http://tasvideos.org/PokemonTricks/Values.html
Joined: 7/27/2007
Posts: 38
gia wrote:
Er, are we casually chatting or are you really not understanding and asking something?
Both, if it seems like I'm asking/discussing obvious stuff, it's because I really don't know.
OE 81 is not ascii for B, it is B in pokemon terms already, I believe the ROM should have the string. Yup it does, all the pokemon names are stored on an array, so I assume the base stats have their own array and all the stuff separately instead of an array of "struct PokemonSpecie". It starts somewhere at 1BFFC and I could find BULBASAUR and later two MISSINGNO. right next to each other followed by GROWLITHE, it seems they have 50 to signify end of string but if the string is too long they just cut at "max length" of 10 and omit the 50.
Thanks, I checked around there, and it just looks like I entered the wrong string earlier.
That comment by HyperHacker is interesting, but I dont know how the decompressor works to help you with that. If you can't find anything even among rom hackers maybe just maybe loadingNOW. is still active, I think I last saw his nick here http://www.filb.de , IIRC he used to obtain the images from pokemon games, but not sure if he tackled RBY.
I just want to know why the decompressor spazzes out when it gets to MissingNO/ZZAZZ type pokemon. Is it because it reads something like:"[next address] is FF, that means I need to read 255 bytes before stopping"?
TAS: to beat a game faster than Sonic can blink.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Yes sort of, I don't know the common algorithms for video/image compression besides the simple differential compression or whatever its name is. But if you read HyperHacker's comment he makes it very obvious a very likely reason, but you will have to find the "image" and also know how to decompress it. Let's assume he is correct and let's make an assumption on how the decoder could work. The image lets say starts with 20 followed straight by the decoder "instructions", no body length for some reason, after all of these are read theres a 50 to signify EOF or end of image. ZZAZZ works with the last "pokemon" indexes, like pokemon 251, which means there's no valid pokemon after it. So its very likely there is no EOF around there. Now lets assume the decoder works like this, read first byte of first instruction, this is the instruction, then process the instruction. When done read next instruction and so on. Lets say the first byte is 55, then 55 is the instruction and to the decoder it means read the next two bytes and jump that number of bytes in memory, so it does, and somehow it matches the area of the overwriting ZZAZZ effect. Then the next instruction starts with 56 which means read the next three bytes, the first will be the number to write lets say 99, the next two the number of times to do this. Then it goes and writes 99,99,skip one, that number of times. And you end with the ZZAZZ effect. Then at some point it reaches an EOF before crashing the game. Of course this is incorrect and you won't be able to know for sure until you figure out how the decoder works and where is the image. If it wasn't the image it could be the pokemon's name, remember ZZAZZ isn't missingno., it is a glitch pokemon at index 251 or more. When reading text there are 256 possible values yet not that many letters, some values are control codes for something else, like when sounds are played or the volume modified, or whatever, so the ZZAZZ effect could be triggered by "printing" these invalid names. Perhaps you can test this easily, copy the name data for pokemon 250, 251, 252 etc until you find the next "50" (and if it is close then just keep copying until you think its enough) and put all that over Magikarp's name or whatever then find one in the wild.
Joined: 12/29/2007
Posts: 489
If I do this: - Trainer-Fly from the Youngster on Route 24 (to the left of Nugget Bridge) - Do the Ditto glitch - Fly to Saffron - Fly back to Cerulean - Go north to Route 24 to initiate the battle then do any objects disappear? If so, what?
gia
Player (109)
Joined: 5/3/2006
Posts: 223
last place you visit with an object that disappears, before you initiate battle, will have that object disappear, apply to question: route 24 or cerulean's, you can always try and figure out for real
Joined: 7/27/2007
Posts: 38
OK, so I messed around with some ROM hacking in the Pokemon picture address area. It seems like Missingno's picture only appears once, although I don't know where. Modifying the beginning of the first Pokemon ('M) would cause it to mess up, right? Actually, the first pokemon in the list is Rhydon, not 'M. Everywhere I've checked, it seems like Missingno's sprite is skipped, and only normal pokemon are stored in those areas. Glitch pokemon also don't appear (it seems) in the pokemon pictures. Modifying any addresses after Victreebell, for example, doesn't affect "A". So where are the pics then? Are they glitch trainers (which have a separate address, I haven't played with those yet)? It would really, really, help if I could find out what the next address that the picture decoder goes to is. The decompression routine is at 251A, although I don't know where to look after I break there.
TAS: to beat a game faster than Sonic can blink.
gia
Player (109)
Joined: 5/3/2006
Posts: 223
Get z80080.pdf: Zilog Z80 Family CPU User Manual User Manual 308 pages It has a reference of all the Z80 instructions, using the debugger it tells you the instructions that are being executed, so then you can figure out what is being done. What emulator/debugger are you using? I used bgb I think. Is Rhydon species 00? I thought it was 01, 00 is the first index on a list. In any case maybe you are right and it is a trainer picture.
Joined: 7/27/2007
Posts: 38
gia wrote:
Get z80080.pdf: Zilog Z80 Family CPU User Manual User Manual 308 pages
I'll check that out.
What emulator/debugger are you using? I used bgb I think.
I'm using no$gb, since it was suggested. I'm just really confused with it, I'm sure it'll tell me what I want to know, but I don't know where to look.
Is Rhydon species 00? I thought it was 01, 00 is the first index on a list.
You're right, it is. It's the first picture in the list though; the data before it is just zeros.
TAS: to beat a game faster than Sonic can blink.
Post subject: Specific question about Pokemon RBY
Joined: 12/29/2007
Posts: 489
Under what exact conditions does the 1/256 miss glitch occur? More specifically, for which of these move categories does the glitch occur? - Physical moves like Strength - Special moves like Ice Beam - Swift - Bide - Transform - Struggle - Non-attacking moves like Spore - Non-targeting moves like Amnesia, Reflect, and Haze I'm asking because I have seen numerous different answers on other websites, and I'd like to get a very clear answer. On a related note, why, when using a move like Growl in the first rival battle, does it display "But it failed!" much more often than the documented 1/256 miss rate?