1 2
12 13
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Reviving this to detail my research with JP Ruby glitches. I wanted to understand how the mail glitch worked, so I disassembled the ROM and have been looking at the functions involved. JP R/S lacks a check used in the localizations for Thief and Trick, that is supposed to check if a pokemon has mail and if so cause the Thief or Trick to fail. It's literally probably 10 assembly instructions missing that makes this possible. However I haven't see any other differences in how mail works meaning that if only that check were missing from the other R/S/E versions, this would be possible in all of them. Basically, the game has space for 16 mail slots. The first 6 are meant to be stored on party pokemon, the last 10 are for mail in the PC. Each mail slot contains some easy chat words, the player name, trainer TID&SID, a 2 byte species value for the pokemon holding the mail, and a 2 byte item ID for the actual mail item. When you give a pokemon mail, one of these slots is filled, and the pokemon's mail field is set to the index of that slot. This is normally fine, because you can't go above 6 within the party because you wouldn't be able to give any more mail. Using Trick or Thief bypasses this. It changes the item the pokemon is holding but does not clear the mail slot. This makes the game think that slot is still full, semi-permanently. So what happens if you fill up all 6 slots but can still give mail to a pokemon holding an item? Normally when giving mail, the game calls a function that counts up to 6, looking for an open slot. It can only count up to 6, so if all 6 slots are filled, it returns early, which means that the mail is not given. But, the game still thinks an item swap occurred, so it gives you back whatever the pokemon is holding, duplicating the item. On to tile corruption. Each party pokemon has a mail field which I mentioned earlier. In normal play, this can only be the values 0-5 inclusive, corresponding to the 6 mail slots, or 0xff, for pokemon that have had mail taken away/have never held mail. There is no function in the game that can assign any other value to this field. If all 6 mail slots are full, and you give mail to a pokemon without an item whose mail field is 0-5, it will bring up the easy chat words that were last written to that slot. If, however, you do this to a pokemon whose mail field is 0xff, the area of memory that's accessed in memory is way out of bounds of the mail slots. Specifically, it's a fixed location that lies right in the middle of map metatiles. Changing the easy chat words changes whatever metatiles (if any) are at that memory location. And this can be repeated many times because the mail is never actually given. The reason the tiles changed on each map differ is because they're stored with some padding that depends on the width of the map. There is no known way to change the metatiles that are accessed. If you could somehow get a pokemon whose mail field was any other value, different tiles could be accessed, but I'm pretty sure that isn't possible. That being said there are a few maps where the tiles you can change are walkable (Slateport City, Mossdeep, Route 110, Route 118 to name a few), but in my testing, none of them allow for sequence breaks. The tiles on Route 118 fall exactly one tile short of being able to cross the water and access Route 119 early, without Surf. It's kind of depressing. Now that I understand this better, I think I'm going to work on a JP Ruby TAS that does item duplication after Slateport. I'm not sure how much faster cloning rare candies would be though. I also investigated the cause of https://www.glitchcity.info/wiki/Excessive_doll_arrangement_glitch and can post that if people are interested :D
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm certainly interested in the doll glitch. I wonder would it help making a video about this to spread awareness, like how Wind Waker, Super Mario 64, and Paper Mario posted videos about "almost skips" that got people to try different things out (although it didn't help for SM64 even with the 1k bounty so there's that).
Joined: 7/10/2022
Posts: 1
Possible time save on the current TAS. After pressing Select while in the box the game will pick the first menu option automatically. That saves 11 frames on the menu to deposit everything right before the Elite 4. I'm not sure if that would help line up for any better attacks in the following battles.
Post subject: the goddess herself has done it
Active player (434)
Joined: 2/5/2012
Posts: 1687
Location: Brasil
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Active player (434)
Joined: 2/5/2012
Posts: 1687
Location: Brasil
Link to video mail trick is now done in ruby and sapphire english versions, tentacruel level 100 glitched runs are now available for ruby sapphire
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
KusogeMan wrote:
Link to video mail trick is now done in ruby and sapphire english versions, tentacruel level 100 glitched runs are now available for ruby sapphire
Nice! What was the breakthrough that made it possible compared the previously where only Japanese was possible?
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
Anybody working on the mail glitch run already? If not gonna start
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
TiKevin83
He/Him
Ambassador, Moderator, Site Developer, Player (119)
Joined: 3/17/2018
Posts: 348
Location: Holland, MI
I was aware to look at it but from all I can tell there's a good chance it's not any faster than the current any% run, the TAS is already one hit KOing most if not all mons in the run after the point where you'd be doing the dupe glitch because guts + quick claw is too powerful, so the only time save you get back is skipping seeing the level up and stat shows if you go all the way up to 100. It could be interesting though for building a theoryTAS of the human route (making decisions and using only the tricks as a human would in a run but with best possible luck in response). It could be applicable to any% though if you could - maybe skip ever getting quick claw? but it might still be faster to get just for the few fights until you get to using the glitch - skip using pickup for free rare candies which also takes RNG delays - in turn maybe fewer catches if you can teach all the needed HMs without zig and/or taillow? But you probably still need a fly friend? - save time by needing less rng manipulation in fights for para + quick claw activation
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
Started the route, didn't bother setting up RNG manip yet as I'm just doing the routing at the moment. Unless there's some magical reason not to I'll go back and manip the ID, Mudkip, and battles later https://tasvideos.org/UserFiles/Info/638287778300831197 Link to video
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
TiKevin83 wrote:
I was aware to look at it but from all I can tell there's a good chance it's not any faster than the current any% run, the TAS is already one hit KOing most if not all mons in the run after the point where you'd be doing the dupe glitch because guts + quick claw is too powerful, so the only time save you get back is skipping seeing the level up and stat shows if you go all the way up to 100. It could be interesting though for building a theoryTAS of the human route (making decisions and using only the tricks as a human would in a run but with best possible luck in response). It could be applicable to any% though if you could - maybe skip ever getting quick claw? but it might still be faster to get just for the few fights until you get to using the glitch - skip using pickup for free rare candies which also takes RNG delays - in turn maybe fewer catches if you can teach all the needed HMs without zig and/or taillow? But you probably still need a fly friend? - save time by needing less rng manipulation in fights for para + quick claw activation
There are extra catches needed for this run, so you may be right. They haven't really toyed with the glitch too much so I'm more interested in the tile glitches. There's gotta be some ways you can use that to speed stuff up. Might even be a worthy entry into ACE setup but who knows. Enter areas early at least. Unfortunately you still need the badges... or do you? Could you glitch past the blockade in each part? Hell, even if you can't like walk past the blockades getting to the Elite Four, walking on water has to do something huge You still need dive currently though
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
Even though dive is still required at this point can I skip the waterfall and thus the waterfall HM and walk into the Elite 4? And if there's something in there stopping you as a sanity check, glitch past that?
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
From discord, by Merrp: https://discord.com/channels/280806848909541376/280808167993245707/690373520773087232
also i did end up looking into mail glitch and the doll decoration glitch unfortunately they probably won't lead to a sequence break anytime soon on jp r/s, mail glitch can only corrupt/modify the 255th mail slot, which overlaps with metatiles on some maps. so you can't modify other metatiles of the maps it is usable on, you can't do any sequence breaking - it can't touch the wailmer in lilycove - it falls one tile short of corrupting the beach on route 118 - you can't corrupt ever grande and bypass the waterfall what it can do - you can surf on land by doing it on route 110 - you can step onto water on route 103, but you won't be able to step off the other side - you can walk on water in mossdeep - you can enter a secret base as early as slateport if there was a way to modify just one more tile on route 118, you could do this: https://cdn.discordapp.com/attachments/280808167993245707/690374674894553108/so-close.mp4 and cross route 118 early additionally, if mail glitch worked on us emerald (i believe it's actually possible to set it up...but only in a secret base or link battle) you could corrupt box 2, slot 27 of the PC. and win that way
So if you, or anyone else is curious about progress so far.
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
Interesting, thanks
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
OtakuTAS wrote:
Even though dive is still required at this point can I skip the waterfall and thus the waterfall HM and walk into the Elite 4? And if there's something in there stopping you as a sanity check, glitch past that?
If I remember correctly, the guards in Ever Grande only check that you have the optional/out of order gym badges (Brawly and Winona), not any of the others. However you can't use mail tile corruption to glitch past the waterfall. Also as an aside, I looked more into the JP RS doll glitch, but i don't think it can be used as an ace vector. Basically, filling up your house and base with dolls and going to the toss screen lets you toss glitch decorations out of bounds, which basically means you can zero arbitrary bytes...but only up to 256 bytes away from the place where your base's decorations are stored in the saveblock, because the counter is a u8. The only interesting things of note nearby are TV shows, where I crafted a theoretical ACE payload that works by zeroing a nickname's string terminator and clobbering the stack when you watch the TV show. Unfortunately, you can't toss glitch decorations whose glitch name is long enough to overflow the string var it's expanded into. The game enters an irreparable state where all of RAM gets trashed. To zero out a string terminator you'd have to be able to toss decoration 0xFF. I tested all revisions of JP ruby and it isn't possible on any of them. Will test sapphire too at some point but I'm not hopeful. Anyway I would be surprised if mail glitch allows for a faster any% TAS, unless the time to setup is less than what you save from critical hits or it enables some additional sequence break or glitch.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Posting it here so it doesn't get lost in discord, but what happens if you did the mail glitch twice in a fight? So in (J)'s case, you have say, pokemon A and B. A has mail, and B has theif. The fight you have A on the left, B on the right. A's mail is stolen. Then you switch Pokemon A with a different Pokemon C that has theif/knock off. They steal/knock off Pokemon B's mail. Would that lead to both slot 0 and 1's mail to be permanently gone? So you can get an extra slot to go past the last tile needed for surf?
Emulator Coder, Judge, Experienced player (595)
Joined: 2/26/2020
Posts: 697
Location: California
When you corrupt tiles with the mail glitch, you are writing easy chat words with mail slot 255, 255 being the "no mail slot available" value used by the game. There isn't any way to get a different invalid mail slot. If you do Thief shenanigans multiple times over, all you end up doing is reducing the amount of Pokemon in your party which need mail before the game runs out of mail slots and will let you edit mail slot 255. Also, if you somehow did edit a theoretical mail slot 256, it would just edit the middle of the water and it wouldn't let you cross still, the player name, trainer ID, species ID and item ID are part of the mail struct too :)
1 2
12 13