1 2
5 6 7
10 11
Editor, Skilled player (1938)
Joined: 6/15/2005
Posts: 3246
mkdasher, how is progress on Pokemon Diamond/Pearl?
Experienced player (647)
Joined: 5/16/2009
Posts: 235
FractalFusion wrote:
mkdasher, how is progress on Pokemon Diamond/Pearl?
I had to stop working on it since I didn't have too much time to do it. I plan to continue with it this summer. I had 1 badge and was going to do the first double battle against Team Galactic, but I noticed a few mistakes so I'll be redoing it from the beginning.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4014
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Experienced player (647)
Joined: 5/16/2009
Posts: 235
Can anybody confirm if that journal trick is just japanese only? I have tried it on the English version and I can't manipulate RNG with it. I'm basically stucked in Eterna Forest right now, because there is too many grass and no NPC, so it would be quite hard to get through that without encounters. Currently I'm picking up a Repel on Route 205, it might be the best option so far.
Experienced player (647)
Joined: 5/16/2009
Posts: 235
I finally figured out how wild encounters are determined. It is also the first time I try to read any game code: First of all, the game will check the number of steps you have taken on grass in that area (or steps in a cave). That number is reseted when you change to anotehr area, and when you have an encounter, but NOT when you battle a trainer. If the number of steps is less than 5 (on grass) or less than 7 (on a cave), then the RNG is called, if RNG value divided by 656 is higher or equal than 5, there will be no encounter, else RNG will be called again. If the number of steps is higher (than 5 on grass, or than 7 on a cave), the first RNG call is skipped. The number of steps is stored in 0x0228FCB8 On the second RNG call, if RNG divided by 656 is higher or equal than 40 (running or walking) or 70 (biking), then there will be no encounter. Else RNG is called another time, and if RNG divided by 656 is higher or equal than 30 (for grass) or than 10 (for cave), there will be no encounter. If it's lower, there will be an encounter. The value that is terrain dependant is stored in 0x02291834. If water, the value is stored in 0x02291900 Just in case the explanation above is hard to understand, I'll write how the formula would look in C code:
Language: c

int terrain_value = readbyte(0x02291834); //On normal grass, terrain_value = 30, on cave, terrain_value = 10. int counter = readbyte(0x0228FCB8); int max_counter = 8 - ((terrain_value * 256) / 10) / 256; //for grass, max_counter = 5, for cave, max_counter = 7 if (max_counter > counter){ counter++; if (rand() / 656 >= 5) return false; } if (rand() / 656 >= value) return false; // value = 40 when walking or running, value being 70 when biking. if (rand() / 656 >= terrain_value) return false; else return true;
This means that for each grass step, you have a 12% rate of finding encounters, and 0.6% in the first 5 steps, and on a cave, you have a 4% to find an encounter, and 0.2% on the first 7 steps. If you're biking, then rates are 21% (1.05% on first steps) for grass, and 7% (0.35%) for caves
Editor, Skilled player (1938)
Joined: 6/15/2005
Posts: 3246
mkdasher wrote:
Can anybody confirm if that journal trick is just japanese only? I have tried it on the English version and I can't manipulate RNG with it.
The journal trick definitely works in Diamond and Pearl English versions (I did it in my WIPs). I recall that you need to access a journal page that says that you caught a Pokemon.
Experienced player (647)
Joined: 5/16/2009
Posts: 235
FractalFusion wrote:
mkdasher wrote:
Can anybody confirm if that journal trick is just japanese only? I have tried it on the English version and I can't manipulate RNG with it.
The journal trick definitely works in Diamond and Pearl English versions (I did it in my WIPs). I recall that you need to access a journal page that says that you caught a Pokemon.
Oh I see. Then it's an useless trick for the TAS I'm doing since I don't catch any Pokemon.
Fortranm
He/Him
Editor, Experienced player (775)
Joined: 10/19/2013
Posts: 1114
mkdasher wrote:
Oh I see. Then it's an useless trick for the TAS I'm doing since I don't catch any Pokemon.
Does it mean you are gonna let Chimchar learn both Rock Smash and Cut?
Experienced player (647)
Joined: 5/16/2009
Posts: 235
Fortranm wrote:
mkdasher wrote:
Oh I see. Then it's an useless trick for the TAS I'm doing since I don't catch any Pokemon.
Does it mean you are gonna let Chimchar learn both Rock Smash and Cut?
Exactly
Editor
Joined: 8/6/2014
Posts: 37
mkdasher wrote:
I finally figured out how wild encounters are determined. It is also the first time I try to read any game code: First of all, the game will check the number of steps you have taken on grass in that area (or steps in a cave). That number is reseted when you change to anotehr area, and when you have an encounter, but NOT when you battle a trainer. If the number of steps is less than 5 (on grass) or less than 7 (on a cave), then the RNG is called, if RNG value divided by 656 is higher or equal than 5, there will be no encounter, else RNG will be called again. If the number of steps is higher (than 5 on grass, or than 7 on a cave), the first RNG call is skipped. The number of steps is stored in 0x0228FCB8 On the second RNG call, if RNG divided by 656 is higher or equal than 35, then there will be no encounter. Else RNG is called another time, and if RNG divided by 656 is higher or equal than 30 (for grass) or than 10 (for cave), there will be no encounter. If it's lower, there will be an encounter. The value that is terrain dependant is stored in 0x02291838. Just in case the explanation above is hard to understand, I'll write how the formula would look in C code:
Language: c

int terrain_value = readbyte(0x02291838); //On normal grass, terrain_value = 30, on cave, terrain_value = 10. int counter = readbyte(0x0228FCB8); int max_counter = 8 - ((terrain_value * 256) / 10) / 256; //for grass, max_counter = 5, for cave, max_counter = 7 if (max_counter > counter){ counter++; if (rand() / 656 >= 5) return false; } if (rand() / 656 >= 35) return false; if (rand() / 656 >= terrain_value) return false; else return true;
This means that for each grass step, you have a 10.5% rate of finding encounters, and 0.5% in the first 5 steps, and on a cave, you have a 3.5% to find an encounter, and 0.01% on the first 7 steps.
Why so complicated? ...well, it seems complicated with the long explanation, the actual formula makes some sense.
Experienced player (647)
Joined: 5/16/2009
Posts: 235
Noticed I made a mistake, the second RNG is not compared with 35, but with 40. I corrected that in my code and the encounter rates.
GamingAori
Other
Joined: 1/26/2014
Posts: 35
mkdasher do you make an any% glitched tas or?
I'm new and I'm german. My english isn't the best sry ^^
Active player (434)
Joined: 2/5/2012
Posts: 1687
Location: Brasil
get help from kaphotics,he said he would help when people stopped playing 4th and 5th gen
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Experienced player (647)
Joined: 5/16/2009
Posts: 235
grassini wrote:
get help from kaphotics,he said he would help when people stopped playing 4th and 5th gen
I think I now have anything I need to complete a run. I already had it, but it was how encounters were determined the only thing I couldn't find anywhere, so recently decided to search it for myself. Editing the formula since I just noticed biking on grass or caves gives you a higher encounter rate. Running /walking is the same still though. Now formula makes sense, one RNG checks for number of encounters, other checks if running or walking/running, and other checks terrain stuff.
Skilled player (1705)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
grassini wrote:
get help from kaphotics,he said he would help when people stopped playing 4th and 5th gen
Well, he still hasn't submitted his supposedly legit pokemon black TAS yet, so I doubt it.
Joined: 12/29/2007
Posts: 489
jlun2 wrote:
grassini wrote:
get help from kaphotics,he said he would help when people stopped playing 4th and 5th gen
Well, he still hasn't submitted his supposedly legit pokemon black TAS yet, so I doubt it.
^I believe he mentioned as a comment on that video that he wouldn't be submitting it since it was suboptimal.
Experienced player (647)
Joined: 5/16/2009
Posts: 235
I have a question / suggestion for the glitched TAS, and I need your opinions about it: The current route, as you guys probably know, consists on doing a tweaking glitch, and then biking in the void for about 5 minutes. This can look pretty boring, just going through a black screen for 5 minutes, and the only possibility to make it a bit entertaining is using the calculator, stepcounter, and some other useless Poketch apps. There is an extra Poketch app I could get, called Memo Pad. Basically it's an app that would let me draw on the Poketch, and therefore make the run more entertaining, since I could draw stuff on it while doing the void glitch. The extra app would take around 20 extra seconds. I wonder what you guys think about this.
Editor, Expert player (2001)
Joined: 8/25/2013
Posts: 1199
mkdasher wrote:
There is an extra Poketch app I could get, called Memo Pad. Basically it's an app that would let me draw on the Poketch, and therefore make the run more entertaining, since I could draw stuff on it while doing the void glitch. The extra app would take around 20 extra seconds. I wonder what you guys think about this.
Oh totally get that. It would be chalked down as a speed/entertainment tradeoff I believe.
effort on the first draft means less effort on any draft thereafter - some loser
Joined: 12/29/2007
Posts: 489
^Agreed. Any WIPs of the glitched TAS so far?
Player (20)
Joined: 8/6/2014
Posts: 5
Location: USA
I think the memo pad would be a good idea as 5 minutes of darkness is the worst thing that could happen in a TAS. The 20 seconds is worth it imo.
Experienced player (576)
Joined: 2/23/2008
Posts: 266
Location: CA, USA
Agreed, 20 seconds spent for 5 minutes of creativity (instead of nothing) is worth it.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4014
As long as the TAS will save so much time over any RTA that it won't be beaten due to wasting 20 seconds.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Player (142)
Joined: 7/16/2009
Posts: 686
Patashu wrote:
As long as the TAS will save so much time over any RTA that it won't be beaten due to wasting 20 seconds.
The Brain Age TAS can be beaten too. Getting the Memo Pad would allow for inhuman drawing (or in-run commentary, explaining things along the way ("For run comments; see run" is something that'd be neat in a submission text)), which would still allow the run to clearly distinguish itself from normal play.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4014
Scepheo wrote:
Patashu wrote:
As long as the TAS will save so much time over any RTA that it won't be beaten due to wasting 20 seconds.
The Brain Age TAS can be beaten too.
The Brain Age TAS doesn't aim for speed, but this one does.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Player (142)
Joined: 7/16/2009
Posts: 686
Patashu wrote:
The Brain Age TAS doesn't aim for speed, but this one does.
My point, which was further explained in the rest of my post, was that speed isn't the only objective. I'm fine with a possibly beatable movie, as long as it is still clearly a superplay.
1 2
5 6 7
10 11