1 2
9 10 11 12 13
P.JBoy
Any
Editor
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
You have to enable the Real Time Clock in Options -> Emulation
Editor, Player (95)
Joined: 5/27/2006
Posts: 240
is zigzagoon going to be collecting rare candies throughout the whole run? that would be pretty bad ass, but you said it was rare, so i don't know how likely that is.
P.JBoy
Any
Editor
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
It wouldn't have been beneficial to have multiple Zigzagoons?
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
It takes at least 4 seconds to take a Rare Candy off Zigzagoon and use it; 7 seconds if done in isolation. I only use Rare Candies to reach a level where an important new move is learned, or evolution occurs, prior to an important battle. In the back half of the run, Rare Candies will not be used. I manipulate a few Rare Candies, though. Although the probability of getting one is 1/100, I have Lua scripts and some flexibility on my side. A second Zigzagoon is not needed.
arflech
He/Him
Joined: 5/3/2008
Posts: 1120
Has anyone else ever wondered whether the Pokémon people were influenced by that classic Loreena McKennitt song "The Mummers' Dance": https://www.youtube.com/watch?v=qxTpvA-pUG0 specifically this lyric: "When the ash and oak, and the birch and yew, are dressed in ribbons fair." For one thing, the Professor of this Generation is Birch, the protagonist of the Generation I anime is Ash, the Professor in that generation is Oak, and the Generation V professor in the Japanese version is named for the Japanese yew...
i imgur com/QiCaaH8 png
Joined: 6/26/2011
Posts: 167
arflech wrote:
Has anyone else ever wondered whether the Pokémon people were influenced by that classic Loreena McKennitt song "The Mummers' Dance"
The Mummers' Dance was released in September 1997. This makes the Pokémon franchise (Feb '96) older than it, although technically Oak was the only tree-themed person named at this point. It would be a lot safer to assume both GameFreak and Loreena independently chose to reference trees than it would to think one of them was somehow calling out to the other. Also, what does this have to do with TAS?
First a movie gets submitted, and ends up accepted despite breaking rules other runs have been rejected for. And when I vote less than spectacularly on this movie, I become the victim of harassment and threats. Yay, favoritism.
arflech
He/Him
Joined: 5/3/2008
Posts: 1120
nothing really also I was going by the first appearances of the English names of the characters, which was in '98 (then again Bulbapedia tells me Oak could have been based on his Japanese name, Okido)
i imgur com/QiCaaH8 png
Joined: 1/25/2012
Posts: 10
just dropping by to further what FractalFusion said about the wild pokemon determination.
FractalFusion wrote:
I do not know if that is the root cause, but the developers seem to like fiddling with wild Pokemon generation that appears to be beyond just making one ability work. In Emerald, I discovered some time ago that it's even worse, and I'd rather not go into it now. I might eventually figure out the "how does it work" of it, but the "why" part of it I will never know. By the way, the new run will be on Pokemon Ruby. I know you might think it is slower, but the main reason is that we're using Taillow/Swellow for this one, like in cstrakm's run. I'll leave you to fill in the details. We hope to save another minute or so from the test run.
Over at smogon I (and a few other researchers) figured out the Pokemon selection, based on knowledge of the RNG of Gen 4. The tool we use is called RNG Reporter, and the lead programmer OmegaDonut has added in this selection method (dubbed Method H) http://www.smogon.com/forums/showpost.php?p=3655033&postcount=743 http://www.smogon.com/forums/showpost.php?p=3663648&postcount=747 Basically the game calculates if an encounter should occur, calculates the "Encounter Slot" (we have tables), then the Random Level via rand%(max-min)+min, then calculates what nature via %0x19. Then generates sets of PIDs until the nature of that pid matches the nature #. Then it generates IVs. (we don't know about PokeRus) There's something we've affectionately called the "vblank". It causes the different PID / IVs where a random number is "skipped". The game interrupts the PIDIV generation routine to do the ~60/s advancement. It results in "method 1 / 2 / 4" PIDIVs. We've gotten a really good handle on how the gen 3/4/5 games work
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
Thanks, Kaphotics. By the way, I'd like to point out that when making the Ruby TAS, I found that the Lv. 8 Taillow is considered by the game as one slot (the 85-89 slot in that area). If Pokemon Ruby uses random levels, then I didn't know about it. Also, I've never seen vblank activate in the middle of encounter generation in Ruby/Sapphire, but I have seen it occur in Emerald. The technical details are interesting.
Joined: 1/25/2012
Posts: 10
FractalFusion wrote:
Thanks, Kaphotics. By the way, I'd like to point out that when making the Ruby TAS, I found that the Lv. 8 Taillow is considered by the game as one slot (the 85-89 slot in that area). If Pokemon Ruby uses random levels, then I didn't know about it. Also, I've never seen vblank activate in the middle of encounter generation in Ruby/Sapphire, but I have seen it occur in Emerald. The technical details are interesting.
Oh, it doesn't use random levels, only for fishing (oops). The game does still uses a frame to calculate it however; on the Wiki page the ????xxxx between the slot and nature is actually the level calc. It's just a redundant calculation because (I think) the high and low values of wild encounter mons are the same (so it becomes rand%1 = 0) correcting myself: random level is [rand%(max-min +1 )]+min 85-89 corresponds to slot 7.
Slot      0     1     2     3     4     5     6     7     8     9  10  11
Rate    20%   20%   10%   10%   10%   10%    5%    5%    4%    4%  1%  1%
Value  0-19 20-39 40-49 50-59 60-69 70-79 80-84 85-89 90-93 94-97  98  99
Using the encounter table that was extracted from the ROM (this is constant between languages but different between color versions) we can see that that particular Taillow slot (7) occurs only at Route 116. Which is where you caught it :P The emulator speed running Sapphire (I've noticed) is fast enough so that almost everything follows "Method 1", where no vblanks interrupt the generation routine. Luckily, when you did it, the game found a suitable nature PID within ~24 PID iterations (fairly fast) so the chance of getting interrupted was essentially zero. Looking at RNG Reporter Method H-1 (your PID type), with your starting seed... we see... Pretty sweet. The game just so happened to give you what you wanted! It followed the selection routine perfectly. Since we normally use sweet scent instead of walking into patches, the wild encounter decision isn't considered in reporter's frame output. in addition to wild encounters, the <320 criterion for producing an encounter is only valid for certain areas. There's something called "density" which is usually 20 for most land routes. You can see the densities of each RSE location & encounter type here. It would be...
if (rand%0xB40) / 0xF          <    density
   encounter pokemon

alternatively written:

if rand%2880 < 16*D, encounter
For caves, the encounter rate is 2 times less. For water routes, the encounter rate is 5 times less :) --- The vblank interrupt is pretty annoying in FR/LG, where you see it usually interrupt like so: PID PID (interrupted) IV IV, following method 2. --- if you havent, be sure to check out the Researcher function in RNG Reporter. It allows you to output different operations on the RNG seed sequence to predict when certain events occur (say, pickup candies). eh, I guess this is directed towards anyone who isn't as skilled
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
Lately, I've been experimenting with a new kind of run. The goal is to beat the game while having two Pokemon only (starter, which has to be Mudkip, and Castform), with evolution not allowed, and some other restrictions that I am not set on yet. For testing purposes, my current test run only allows the use of level-up moves and HM moves (necessary only), and absolutely nothing else (no TMs, no held items, no items used in battle, no bike, etc.). It's difficult but I made it to the E4 with Mudkip at Lv42 and Castform at Lv31 or so. However, the E4 is extremely difficult and I have not yet completed it or have a full idea of what to do. Based on my research, I have collected the following information about RNG (most of this is obvious): - Whether an added effect of a damaging attack occurs (cause freeze, cause paralyze, cause confusion, etc.) is determined after the damage has been done and after any critical hit or super/not very effective messages. - Whether a Pokemon hits itself in confusion or not is determined right before the message "X is confused!". - The number of turns a Pokemon spends in confusion state is determined right before the message "X became confused!". - The number of turns a Pokemon spends in sleep state is determined right before the message "X fell asleep!" - Whether a Pokemon defrosts from freeze condition is determined right before the message "X is frozen solid!" or "X was defrosted!". - While accuracy for damaging moves (except OHKO moves) is determined before "X used Y!", accuracy for non-damaging moves and OHKO moves is determined after. - The amount of PP reduction Spite does is determined after "X used Spite!". - The number for Magnitude is determined after "X used Magnitude!" I also set up some "rules" that the AI tend to follow. Note that the AI is pretty much the hardest thing to understand and finding all its quirks is like trying to play Mastermind. - If the current NPC Pokemon has an attack that will always KO the current player if it hits, the attack will always be used on the next turn (except when said Pokemon is to be healed due to low health). - If the current NPC Pokemon has two or more damaging moves and decides to use a damaging move, the AI will select the most damaging move if it is always more damaging than any of the other moves. Only exception is if the immediate KO rule is in effect for two or more moves, in which case the situation is not clear-cut. - If any Pokemon in the NPC lineup satisfies all of the following: * is able to switch in, * has an attack that will always KO the current player if it hits and is super effective, and * resists the last attack used by the current player Pokemon, then the AI has a positive probability to switch to that Pokemon, provided that the immediate KO rule is not in effect. - If the current NPC Pokemon has a weather-changing move and the current weather is not a result of that move and is not "no weather", then the move will always be used, provided that the immediate KO rule is not in effect. Also, I found something weird. At one point, Mudkip and Castform both had 60 Speed. Glacia's Sealeo (the one with Surf, Body Slam, and Ice Ball) had 65 Speed. Yet Mudkip and Castform had first attack. I do not know why this is so. The numbers are given according to my script. For comparison, the other Sealeo had 67 Speed and had first attack.
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
FractalFusion wrote:
Lately, I've been experimenting with a new kind of run. The goal is to beat the game while having two Pokemon only (starter, which has to be Mudkip, and Castform), with evolution not allowed, and some other restrictions that I am not set on yet. For testing purposes, my current test run only allows the use of level-up moves and HM moves (necessary only), and absolutely nothing else (no TMs, no held items, no items used in battle, no bike, etc.). It's difficult but I made it to the E4 with Mudkip at Lv42 and Castform at Lv31 or so. However, the E4 is extremely difficult and I have not yet completed it or have a full idea of what to do.
Wow...that sounds really hard nearly immpossible. I wish you luck on the E4. :)
Also, I found something weird. At one point, Mudkip and Castform both had 60 Speed. Glacia's Sealeo (the one with Surf, Body Slam, and Ice Ball) had 65 Speed. Yet Mudkip and Castform had first attack. I do not know why this is so. The numbers are given according to my script. For comparison, the other Sealeo had 67 Speed and had first attack.
Is that particular pokemon glitched, or is it the stats that are glitched? Also, has anyone figured how pokerus is generated in this game? Maybe it would help this type of run?
Mastania
He/Him
Joined: 5/30/2009
Posts: 135
Location: Top of the pops
That would be the badge stat boost, which is 1.1x in gen III. In this case it would give them both 66 Speed, which fits the situation you describe perfectly.
Waddle Waggle Wattle
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
Kaphotics kindly sent me a link to a smogon.com post that details the pokerus function in Gen 3: http://www.smogon.com/forums/showpost.php?p=4376835&postcount=959 I managed to make a movie catching Pokerus in Pokemon Ruby: http://dehacked.2y.net/microstorage.php/info/1944550717/0907%20-%20pokerus.vbm Pokerus is determined at the end of battle, after the screen fades to black, but before the overworld appears. It appears to be determined regardless of how the battle ended (so run away or white out works). There is a frame with 4 RNG cycles; the 3rd value determines Pokerus. Let's say the RNG value is the whole 4-byte number xxxxyyyy (hex digits). Then if xxxx equals 0x4000, 0x8000, or 0xC000, then a random Pokemon in the party is infected with Pokerus. This is a 3/65536 chance. By the way, the disassembly in the smogon link above is for Emerald, with the Pokerus routine beginning at 0x806DCB4. The same Pokerus routine in Ruby/Sapphire begins at 0x8040048.
Joined: 8/7/2011
Posts: 166
Mastania wrote:
That would be the badge stat boost, which is 1.1x in gen III. In this case it would give them both 66 Speed, which fits the situation you describe perfectly.
Wait, that actually exists? Huh, I was under the impression it didn't actually do anything.
sack_bot
He/Him
Player (112)
Joined: 11/27/2011
Posts: 394
Location: Massachusetts
sorry for interrupting, but what happens when someone in a link battle uses a move that does not exist (invalid move #)? also, could you download to the game a hacked version of the berry patch to hack it?
Message me here for my discord. Current Project: Psycho Waluigi Project on wait list: None?
Joined: 4/27/2013
Posts: 29
Location: MI
Mmm this will be the 1st game I will TAS. Amazing how much info you uncovered, FF. Looks very complicated. o;
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
JTSM wrote:
Mmm this will be the 1st game I will TAS. Amazing how much info you uncovered, FF. Looks very complicated. o;
JTSM, what kind of goals are you planning to use for your TAS? The published run I think can be improved, but it's pretty hard to do. (The beginning part of the TAS almost entirely involves mathematical analysis and computer programming.)
Joined: 4/27/2013
Posts: 29
Location: MI
FractalFusion wrote:
JTSM, what kind of goals are you planning to use for your TAS? The published run I think can be improved, but it's pretty hard to do. (The beginning part of the TAS almost entirely involves mathematical analysis and computer programming.)
Well right now, I'm just playing it and getting a good feel for it. I have a sample test video which basically replicates your intro until 6003 frames. I'm just at the learning process. lol. When I'm done making a whole test play-through, I'm going to aim for the fastest time. It's going to take a while though. LOL. Everything that relates to RNG's, binary, and such is something I'm getting, but it's still intimidating. I have very little understanding of computer programming and mathematical analysis, but I'm not too worried about that ATM. I think the Published run could be improved, but I think it has more to do with lots of little optimizing and having most of the RNG codes be in your favor. I think you guys are on the right track with Swellow. Very OP guts pkmn. Here's the sample if you're interested, like I said, it's just 6003 frames. lol : http://www.youtube.com/watch?v=PlwMPMdyZzA
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
I think the important thing is to get used to TASing, and know the little tricks used throughout the run. Which emulator and version are you using? In VBA, you can easily set up autofire A/B/L which makes it a lot easier to scroll dialogs (but autofire shouldn't be used for some things like level-up messages and Yes/No options). Also, when TASing, I usually use one savestate for quick save/load, and other savestates for reference (switch to read-only mode to view movie from that point). The reference savestates also help if I make a mistake that occurs before the quicksave point.
JTSM wrote:
I think the Published run could be improved, but I think it has more to do with lots of little optimizing and having most of the RNG codes be in your favor.
I know it's a bit nice to wish upon favorable RNG values, but personally I'd try to improve it through better strategy first and foremost. Like, getting Pokerus (I know how to get it) and some other stuff.
Joined: 4/27/2013
Posts: 29
Location: MI
FractalFusion wrote:
I think the important thing is to get used to TASing, and know the little tricks used throughout the run. Which emulator and version are you using? In VBA, you can easily set up autofire A/B/L which makes it a lot easier to scroll dialogs (but autofire shouldn't be used for some things like level-up messages and Yes/No options). Also, when TASing, I usually use one savestate for quick save/load, and other savestates for reference (switch to read-only mode to view movie from that point). The reference savestates also help if I make a mistake that occurs before the quicksave point.
JTSM wrote:
I think the Published run could be improved, but I think it has more to do with lots of little optimizing and having most of the RNG codes be in your favor.
I know it's a bit nice to wish upon favorable RNG values, but personally I'd try to improve it through better strategy first and foremost. Like, getting Pokerus (I know how to get it) and some other stuff.
Yeah I noticed that in your run and I was like,"Wtf are you doing?" I researched a lot of techniques and rapid fire was one of them. But the emulator I used is VBA v22. It's the only emulator that I can sync your movie with mine (For the beginning of it anyways). My save state strat is just figuring out which sections needs to be saved between the consecutive save state number and see if the inputs I made makes sense and move on to the next set of inputs. Mind you that these inputs could just be a few frames, but still. Ohhhh so you found out about the Pokerus?? That's exciting. I wonder how you're going to implement that in your improved run.
Joined: 4/27/2013
Posts: 29
Location: MI
FF, how do you get pokerus?
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
I think I posted it some time ago, but I'll quote it here:
FractalFusion wrote:
Kaphotics kindly sent me a link to a smogon.com post that details the pokerus function in Gen 3: http://www.smogon.com/forums/showpost.php?p=4376835&postcount=959 I managed to make a movie catching Pokerus in Pokemon Ruby: http://dehacked.2y.net/microstorage.php/info/1944550717/0907%20-%20pokerus.vbm Pokerus is determined at the end of battle, after the screen fades to black, but before the overworld appears. It appears to be determined regardless of how the battle ended (so run away or white out works). There is a frame with 4 RNG cycles; the 3rd value determines Pokerus. Let's say the RNG value is the whole 4-byte number xxxxyyyy (hex digits). Then if xxxx equals 0x4000, 0x8000, or 0xC000, then a random Pokemon in the party is infected with Pokerus. This is a 3/65536 chance. By the way, the disassembly in the smogon link above is for Emerald, with the Pokerus routine beginning at 0x806DCB4. The same Pokerus routine in Ruby/Sapphire begins at 0x8040048.
The lua script I have posted around here should tell you what the RNG value is, but it isn't adapted to predict Pokerus. JTSM, did you attempt to make a TAS so far? I think you asked about the Makuhita line, but I'm not sold on it being faster than the Taillow line, especially since it would result in an extra Pokemon needing to be caught. Edit: Removed a sentence that may be confusing.
Joined: 4/27/2013
Posts: 29
Location: MI
Yeah I was really trying to figure out all my possibilities as far as using the right Pkmn. Makuhita is not really a great choice for several reasons (Multi-hit moves, low PP on most moves, needs to catch another poke) I was really just wanting that extra attack buff, but that's not really useful to compliment with Maku's movepool. I am attempting a speedrun Any% with Swellow atm. My plan is to catch a level 6 Taillow/Adamant/IV 31. in petalburg woods (Rare Candy) and paralys with shroomish.(Rare Candy) Use the 5 Rare Candies I picked up (3 for Mudkip's Water Gun and the rest will be for Taillow) from Youngster, Wally, Taillow, Shroomish, and 1st Grunt. I'm doing this because I want to accelerate Taillow's exp to 1HKO Magma Grunt 1 and 2 Poochyena's. I did damage calc's for both. Guts+Stab+Crit > Mudkip's tackle even at level 6. I will be slower, but w/e. I really want Pokerus, but like you said, it's REALLY rare and almost impractical. I just got my running shoes and I'll be doing a lot more now and later this weekend. I really picked up on a lot recently and it's getting really fun ^^
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
JTSM wrote:
I really want Pokerus, but like you said, it's REALLY rare and almost impractical.
Actually, what I meant is that I wouldn't bother updating the Lua script to predict it, since the prediction charts are generally used for stuff that is more probable. I definitely think that Pokerus should be used in the next TAS run. It's just a matter of setting up and running a search program to find the best fit. I'm thinking of your idea to catch Lv. 6 Taillow in Petalburg Woods. However, in that case there may not be enough Rare Candies. You don't get Rare Candies from Wally or when you catch Taillow, if I remember correctly.
1 2
9 10 11 12 13