1 2
10 11 12 13
Joined: 1/6/2012
Posts: 51
Location: France
- Is double corruption necessary? Would it be possible just by corrupting PID instead of both PID and TID? (Bad eggs can still use moves, and move #1 is not affected by the changed PID.)
It is indeed possible to withdraw an Egg/Bad Egg with a party that has no Pokémon alive, so this is an option. However, the corruption that would afflict Move 2 could give another Glitch Move with an excessively long name, so some Speed EVs / Qualot Berries could be necessary. (Move 4 would be 0x4000 which is fine on Jpn Emerald) For the 12.560 Exp, that could be reached with a wild Pokémon and 1 battle/trainer battle. (and corruption type 3,6,9) The ACE Glitch Move would be obtained as Move 3. Since Move 0x4000 prevents you from choosing further moves, you would need to give it an item in order to avoid having 0x4000 as Move 2. (Move 1 would be the Pokémon's ID and Move 4 would be 0x4000) It could also be possible to obtain 0x3110 from IVs (with Corruption Types 2,5,8) That would be : 16 HP, 8 Atk, 12 Def, (even number) Speed. But the rest of the Miscellanous data (origin, ability, the rest of the IVs) could produce Glitch Moves with overly long name, so there may not be any good frame/wild Pokémon that could work with this.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
> It could also be possible to obtain 0x3110 from IVs (with Corruption Types 2,5,8) I'd rather not obtain the move with IVs, as that means either having a subpar Mudkip, or hoping and praying that there is an accessible RNG cycle that produces the state for a wild pokemon to have these properties. > Since Move 0x4000 prevents you from choosing further moves, you would need to give it an item in order to avoid having 0x4000 as Move 2 This sounds doable--Marshtomp is already holding the Quick Claw, although I'd have to check whether it produces a safe glitch move 2. From my understanding, I could get 12560 EXP from a level 25 pokemon in the Fast group with 1 battle, a level 18 pokemon in the Erratic group with a few battles, a level 23 pokemon in the Medium Fast group, a level 25 pokemon in the Medium Slow group, a level 21 pokemon in the Slow group, etc. Some of these seem easier than others, I will have to check if there is a pokemon species with a good group that is catchable in the run, and how many battles I need to get the correct experience. If the time spent battling is shorter than the detour to Dewford, it's more viable than using Marshtomp. > It is indeed possible to withdraw an Egg/Bad Egg with a party that has no Pokémon alive, so this is an option. This is great to know! I think, all things considered, taking out 1 corruption, the extra battle, 1 Poochyena being caught as I said earlier, and possibly shortening the detour, might produce a sub 1 hour run, which would be crazy.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
merrp wrote:
Is there an optimal route drawn out somewhere?
For the two I mentioned, the way to go through optimally (which was not in your video) would be: ~18:04: ~33:23: Also another two: ~12:53 ~17:58 There are also similar paths that can be shortened at around 4:38, 8:09, 8:15, 18:09, 18:17, 18:54 and 33:25. Other things: - IIRC, at 6:35, it is faster to talk to Norman on his right (player facing left). It's in the published TAS. - Once you get the bike, it is possible to take advantage of sound fadeouts to reduce the length of some screen transitions. Also in the published TAS. Edit: Another thought. Is it possible to set up ACE by writing instruction code in held mail instead of in the nicknames of a lot of Poochyena?
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Thank you for the route advice! I have a lot to improve in my TAS it seems. >Another thought. Is it possible to set up ACE by writing instruction code in held mail instead of in the nicknames of a lot of Poochyena? Maybe? But probably not. Each piece of mail has nine spaces, iirc each space is two bytes, so unless there are 65536 easy chat choices (I think the actual number is much less, I have time to work on the TAS tonight so I will check in pokeemerald), you almost certainly could not write useful ARM or THUMB opcodes using mail. If there is a glitch move that can target mail, though, it *might* be useful as a bootstrap code, particularly on US Emerald, because that is the hardest portion of ACE to do there quickly. If there is a possible setup found for quick ACE on US Emerald that doesn't involve EV training, etc, US has several differences: - US names are longer, so you can fit two ARM opcodes on a pokemon - Fewer ARM opcodes are available using US nicknames, so writing a useful payload is harder, the ones I've made are usually twice as long as on JP. - Because Pokemon names are longer, there are fewer worrisome trash bytes on nicknames (in JP, you have to open and close the menu before you catch each Poochyena; this happens to set a section of the stack to a value, and that part of the stack is copied as the Pokemons's nickname and needs to be a harmless opcode)
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
How about writing instruction code in the box names (the boxes where you store Pokemon), like in the Pokemon Crystal and Pokemon Silver TASes? I checked, and you can use the same characters as when naming Pokemon, and you get 8 characters per box name even on JP version. Though I'm not sure where it would be located in memory.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
That...should actually work! Since the code on Abea determines the address the game jumps to, you can easily redirect it it to box names. The strategy would be to store one instruction per box, followed by a jump instruction to the next. So more typing, but no Poochyena to catch, aside from what's needed for Pomeg glitch. I just have to check some logistical things, like where the box names are located in memory, how far apart they are (if they're contiguous, you don't even need to jump between them!), And what comes after them, because what's after them will be corrupted by the code written using the 7 instruction payload. I'll upload a proof of concept of this tonight, if it is possible.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Just doing some quick research on using box names: - Box names are contiguous in memory. The starting address is dynamic, but will always be the same when using Abra's nickname as a bootstrap. - It seems workable, the difficulty is that the box names are 9 characters with the terminator, so they are not word-aligned and the 9th character (if using 8 characters) is always 0xFF. - The GBA can only execute code at halfword-aligned addresses in THUMB mode, and it cannot execute code at non-halfword-aligned (i.e, odd) addresses at all. So a working payload, if it exists, will look very different. Update: An input payload (reads input from joypad, writes it into memory, loops unless L&R pressed) is possible with THUMB opcodes, naming boxes 1-5. This is very exciting! I can't wait to incorporate it into the TAS--having to catch only 2 Poochyena will put this below an hour just on its own!
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
I ran into a minor snag using only one corruption on Marshtomp: One single corruption lets me acquire the glitch move required, and the other glitch moves don't crash the game when selecting it, which is great. I can withdraw the Egg and use the move. However, because the corruption reads Attacks on EVs & Condition, the PP for each move (except the last one, move 0x4000, with 64 pp, but it is unselectable) is zero, since Marshtomp did not have any points in the contest/condition stats. This means that I'm unable to actually use the glitch move since it doesn't have any PP. What I've tried so far: - Using an Elixir. This is what I originally did for the double corruption method, but you can't use an Elixir on an Egg. - Healing at a Pokemon Center. This doesn't work since it heals the other pokemon in the party too, and I can no longer send out the Egg. - Giving Marshtomp a Leppa Berry before corruption. This doesn't work since the berry just doesn't activate, unless a move runs out of PP *while* it's attached. I also cannot use the berry on the Egg/Marshtomp. Not yet tried, probably a bad idea: - Performing a second corruption to corrupt the first move's PP to a nonzero value. This will turn the Egg into a Bad Egg, but it doesn't matter. This is just as hard as performing the double corruption on Marshtomp in the first place. Am open to any suggestions/theories of how I can get the PP to use the glitch move. Otherwise, I'm just going to use the double corruption method and an Elixir like in my WIP video.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
merrp wrote:
- Using an Elixir. This is what I originally did for the double corruption method, but you can't use an Elixir on an Egg.
Oh, too bad. Well, it was worth a try anyway. What does the Elixir even do when you use it on a move whose max PP is 0? Give you 1 out of 0 PP?
merrp wrote:
Not yet tried, probably a bad idea: - Performing a second corruption to corrupt the first move's PP to a nonzero value.
I don't think that is even possible. If I understand it correctly, corruption only affects the last (most significant) byte of each block of four bytes, and Move 1's PP is the first byte of a block of four. Edit: Is it not possible to use a Leppa Berry or Ether instead of Elixir?
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Luckily, the glitch move for ACE has 4 max PP, so restoring it gives it 4. It's possible to use another PP-restoring item only on the double-corrupted Marshtomp--all of them can't be used on the single-corrupted Egg, including holding a Leppa Berry. The reason I use an Elixir is because I pass one on Route 110 so it's on the way. I was thinking that maybe the corruption that sets the bad egg & egg bits (sets a byte to 5, iirc) could have been used for PP, however, the alignment might not correct as you said. I'm close to publishing a new, semi-final WIP. I was almost done, but realized I needed more HP IVs on Abra and had to redo everything post-Abra (getting 23 HP IVs on Abra removes the need to battle a Marill for HP EVs, and lets an HP Up + Pomeg Berry reduce its HP to zero properly). Right now, I'm just trudging through the RNG in the Norman fight, which is by far the hardest fight in the game imo, especially doing it in 7 turns.
Joined: 1/6/2012
Posts: 51
Location: France
merrp wrote:
I ran into a minor snag using only one corruption on Marshtomp: Am open to any suggestions/theories of how I can get the PP to use the glitch move. Otherwise, I'm just going to use the double corruption method and an Elixir like in my WIP video.
If you grab and deposit a Pokémon/Egg in the PC, its PPs will be refreshed. This is something that needs to be controlled when performing double corruption on console as refreshing the PPs (Move 4 PPs to be accurate) can mess up the second corruption and turn the Egg into a Bad Egg.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
I tried/tested that; picking up the egg and putting it back down did not refresh its PP, and once I've taken it out and it's in the party, I can no longer deposit it because I have no conscious pokemon. I'll test it again today, maybe I just did something wrong.
Joined: 1/6/2012
Posts: 51
Location: France
merrp wrote:
I tried/tested that; picking up the egg and putting it back down did not refresh its PP, and once I've taken it out and it's in the party, I can no longer deposit it because I have no conscious pokemon. I'll test it again today, maybe I just did something wrong.
If this doesn't work when trying again, make a save and I will look to see what's different.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
My bad, I did some testing today; picking up the Egg and placing it back down does refresh its PP.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
New WIP: https://youtu.be/fHH3Vstld0k 211301 frames, 58:57.60: Link to video Really proud of this, think it only needs a bit of cleaning before I actually submit it. Notes: - I didn't need to nickname Abra, and going back and naming it something shorter could save a bit of time. It turns out that I'm not able to deposit it after I get the Egg ( I had planned to deposit it instead of Wingull), since my party is all fainted at that point. I can't deposit it before either, since I need it for Pomeg glitch. This is why I catch and nickname the Wingull. - I timed the final input at the final byte of code entered, but there is technically one more A press, on the Hall of Fame screen itself. I'm not sure when timing is supposed to stop, but regardless, I can avoid that last A press if I just rewrite the game's code to act as if A is being pressed every frame, without actually needing to press it. - I got very bad luck on the corruption battle, and had to run around in the grass a lot to get the right offset to corrupt Marshtomp's PID. For delays this long (>~267 frames), it might be beneficial to catch an Oddish (Route 110) instead of a Zigzagoon, and use Sweet Scent, to see if there is an earlier frame that gets the correct offset. Anyway, am pretty excited about this. Sub-59 is crazy. I might edit this and replace the video with a higher-quality encode once it finishes, my Internet is really bad atm.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I have some comments about your WIP (such as a couple more shorter paths and about battle strategies) but I have no time to talk about them right now. Maybe in a couple days.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
I'd appreciate any comments when you can give them! I won't be able to put any work into the TAS for a few days because of a class project. For battle strategies, is one of them using Tackle instead of Mud Shot against Brendan 3? It's two max damage critical Tackles, and I got bad luck in this run and couldn't find any max damage critical frames for more than 400 frames, in either battle parity. So it was faster to go with Mud Shot. Am definitely interested in shorter routes though, as well as advice on manipulating bike movement, which is probably the sloppiest part of the run. There are a few locations where I delay loading a map by 1 or 2 frames to force spinners to turn a certain way, but other than timing the start of bike movement in this way, I don't really know how to avoid encounters other than bonking or slowing down..
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Bumping this because I'd like to hear more comments before I go back and optimize nicknaming Abra. Because if I go back and optimize that, I'll just have to do it again if there are any more improvements suggested here.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Hello merrp, Sorry, I'm so busy these days that I can barely find time to do anything regarding Pokemon Emerald. Regarding paths: IIRC, it's a little faster to get closer to Brendan here. You can talk to Mom from the left, which adds a "turn frame" but you take two less steps. I think talking to Norman like this is faster. You can avoid a turn frame in Granite Cave if you enter the first ladder as shown above. Talking to the Pomeg Berry man from below saves a step. I also noticed a few places where you make a turn and then press A on the very next frame (like turning to talk to someone). IIRC it saves a frame to approach the trigger (for pressing A) head on instead of turning into it, whenever possible. It's very small though. Avoiding encounters on the bike: Taking a couple extra bike steps (by going back and forth) is better than slowing down/bonking, IIRC. That's what I did in my Pokemon Ruby TAS. Regarding strategies: - I hope you don't mind me discussing strategies. - I am aware of the two crit max Tackles on Grovyle since you did it in an earlier WIP. If it really is 1/256 chance for both, that's brutal :( If you can get at least the first crit Tackle, you can use Mud Shot for the second. How much does crit Mud Shot do? - I noticed you got Strength, but don't use it a whole lot, so I wonder if it's necessary to even take that route. I'm trying to figure out what it's for. It saves SE messages against Numel, but other than that, I'm not sure. Is it possible to replace the Strength on Slaking with a non-crit Water Gun? - Would it be faster to not do the double battle (last battle before ACE) and just fight them individually? There are a lot of things going against double battles vs two single battles; that came up in the Pokemon Gen 4 TASes and a lot of it applies to Pokemon Gen 3 as well. - Could you remind me why you need two extra Pokemon (other than Marshtomp and Abra)? If you did double corruption, would you be able to get away with one extra Pokemon instead of two? By the way, is it all right if you post the bk2 of your WIP, and the Lua script you used? I'm interested in knowing how it works.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Regarding paths and triggers, I'll probably go back and redo those, although as you said turning and pressing A only saves a frame. The pathing info is helpful though, thanks! For biking, yeah, that's true, I could just zigzag to avoid bonking, but that doesn't really work in encounter metatiles (like caves or large grass patches), since the timing for encounter frames is the same regardless of what direction you go in (a metatile takes 4 frames to traverse at max speed). Grovyle is one of the hardest KOs in the run, probably even worse than Slaking (although the fights are very different because the challenge with Slaking is long-term setup). It has 52 health, and a Max crit tackle (1/256) does 26 damage. Water Gun does much less because it's NVE, and Mud Shot does more because of STAB but adds seconds of text and animation time. I'm pretty sure any two critical Mud Shots KO though. I don't think crit Mud Shot + non max crit Tackle does. Although, the second Mud Shot is free since the speed lowering doesn't happen when it KOs When I went into the Grovyle battle in the current encode, I couldn't find any frames for max crit Tackles in more than 600 frames (I have a little GUI program in python I use for this, for simulating the RNG in battles, for encounters, etc). This happened even when using the first Mud Shot and looking for a Max crit Tackle on turn 2, or the reverse. I just got absolutely awful RNG in that fight. It's possible that when I go back and redo, I'll get better RNG and this won't be the case. The reason I use Strength is because I was paranoid about having enough Water Gun PP for Slaking. I might have enough left to not teach Strength at all, but it might lengthen the Magma Admin fight (Strength can just breeze through it and save PP). IIRC, in GoddessMaria's TAS she found it was faster to do one double battle than two single battles, and having Abra in the double battle has the advantage of giving it enough levels to gain an HP with an HP Up. I'm pretty sure it's faster, but I can test it and find out. Battle intro's and outtro's take time, and it would take 6 turns instead of 3. The reason I need 4 Pokemon with single corruptuon is a bit complicated: - the pomeg glitch used doesn't work if you have only two Pokemon. It relies on having at least one fainted pokemon, and having the Pokemon last used in battle replaced by an empty slot (this is done by depositing Marshtomp, emptying slot 3). This means I need a fainted Pokemon (zigzagoon), Abra (for Pomeg glitch), and Marshtomp (corruption target, deposited when formerly in slot 3) at minimum. - I also need to later deposit a Pokemon in box 12 whose nickname is bootstrap code, to redirect the glitch move animation to execute box names. Originally, this is supposed to be Abra, but: - with single corruption, since all my Pokemon are fainted, I'm not able to deposit abra in Box 12 once I get the egg. Even if I could deposit it before I pick up the egg, I wouldn't be able to use the egg in battle since it would then take up slot 2, not slot 3. The game, seeing I have no healthy Pokemon, would send out an empty slot from slot 3, the last one used. And I can't do it after I get the egg, the game just says it's "my last Pokemon". That's why I catch the Wingull. If I heal my party, I still can't send out the egg as the game will then send out the first healthy non-egg Pokemon. With double corruption, this is avoided since Marshtomp will be healthy when withdrawn. But double corruption takes an additional battle and 1/32 RNG for alignment. I have a branch in TASStudio set up for it but haven't TASed it to the end yet. It's likely slower simply bc of an additional battle and alignment RNG. In the original WIP I did double corruption. I've never used userfiles before (this is my first TAS), but I can upload the WIP movie file tomorrow morning. I can also post the Lua script. The PyQt program I use as RNG help is at: https://github.com/arantonitis/Gen3Tools It's minimally documented and not totally finished but it works for encounters, damage/critical hits, quick claw, accuracy right now. Thanks for getting back! Lately I've been working on a crazy idea I had: TASing all of FireRed inside emerald by constantly inputting map and script data using an improved version of the input code here. I've gotten a basic example working loading a custom tileset, map, and script but still need to do more research before I can actually begin TASing it. I think it could end up being a really interesting playaround. Edit: Lua script file is here: https://github.com/arantonitis/gen3tools/blob/master/emerald-jp.lua 211301 is just for timing purposes to show when input has completed.
Fortranm
He/Him
Editor, Experienced player (781)
Joined: 10/19/2013
Posts: 1116
Have you considered using TM43 Secret Power instead? It's less out of the way and deals a similar amount of damage compared to Strength.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Secret Power has a lot of dialogue, and I already have to go through Rusturf Tunnel from one end to get the HP Up in the small little area outside it, so Strength is basically on the way.
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Is there a way to reroute it so you don't have to go through Strength and the Hiker there? You can get HP Up (if you need it) by biking from Mauville City there and back, and from Meteor Falls you can bike back the way you came to get to Mt. Chimney. Something else to improve: When you get the bike, there is a way to manipulate the music to reduce fadeout delays when switching to a new area, such as this part in the published TAS.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
I need to go to Verdanturf regardless to get a Fluffy Tail, and I do need the Route 116 HP Up. Changing the route to go back through Route 113 and entering Verdanturf from the Mauville side could work. It might not be faster, and if the terrain at Mt. Chimney doesn't count as plain terrain (I'm not actually sure) then I won't be able to use it as effectively during the Magma Admin battle. In short, I'm unsure over whether it saves time. When I go back and incorporate the current known improvements, I'll make a branch for Secret Power and see.
merrp
She/Her
Player (19)
Joined: 7/31/2019
Posts: 56
Also, what exactly is going on in that part of the video? Is it faster to enter a map on fadeout?
1 2
10 11 12 13