Jump to content

Gen 3 Event Generation Algorithm Research (10ANNIV, etc)


Recommended Posts

It's coincidence. 80 isn't really a high number considering there are 25 Natures, the chance to get 1 of them is 1:25... 
So with 80 different examples it's not too surprising that 1 or 2 Natures are missing, you can do your math.

We really need to know what kind of data it takes from the RAM and what it does with it. Then we can force these Seeds + we need it to generate legal seeds. Who knows what kind of surprises we might find... Like impossible Seeds. It really depends on what the algorithm is.
I even managed to force Seeds about a year ago, but it was a pain without knowing the complete algo and I don't recommend to try it at this point...
It can be achieved by manipulating the save file with an hex editor, but It's not like Wishmaker Jirachi and more complicated.

 

Edit: 
I would like to share some examples...
I thought I had it and managed to get the Seeds 0x0000-0x0007. Then I wasn't able to get 0x0008 and stopped looking further.
Would be more efficient to have a look at the asm and see what actually happens.

<dead files>

Link to comment
Share on other sites

2 hours ago, ajxpk said:

It's coincidence. 80 isn't really a high number considering there are 25 Natures, the chance to get 1 of them is 1:25... 
So with 80 different examples it's not too surprising that 1 or 2 Natures are missing, you can do your math.

We really need to know what kind of data it takes from the RAM and what it does with it. Then we can force these Seeds + we need it to generate legal seeds. Who knows what kind of surprises we might find... Like impossible Seeds. It really depends on what the algorithm is.
I even managed to force Seeds about a year ago, but it was a pain without knowing the complete algo and I don't recommend to try it at this point...
It can be achieved by manipulating the save file with an hex editor, but It's not like Wishmaker Jirachi and more complicated.

 

Edit: 
I would like to share some examples...
I thought I had it and managed to get the Seeds 0x0000-0x0007. Then I wasn't able to get 0x0008 and stopped looking further.
Would be more efficient to have a look at the asm and see what actually happens.
 

 

 

0x0000.pk3

0x0001.pk3

0x0002.pk3

0x0003.pk3

0x0004.pk3

0x0005.pk3

0x0006.pk3

0x0007.pk3

This is for 10 ANNIV? I wonder how it reseeds then.  Because that changes how antishiny works, as a save file's content doesn't change during generation. @Bond697, any insight into this since you have dived into it?  Also if you still have the IDB, please send it to me and I'll look into it too.

Link to comment
Share on other sites

Yep. 10ANNIV. All downloaded from the English European Distribution Rom. 
I messed with the save files data, mainly TID and SID to get the result I wanted and it worked.
It definitely uses data from the save files but in a different way than Wishmaker... about how... I really don't know...
I made some notes but it turned out being wrong when I failed to hit the Seed 0x0008 and others too...
Anti-Shiny would be important to know as well.

Link to comment
Share on other sites

On 11/1/2017 at 10:19 AM, ajxpk said:

Yep. 10ANNIV. All downloaded from the English European Distribution Rom. 
I messed with the save files data, mainly TID and SID to get the result I wanted and it worked.
It definitely uses data from the save files but in a different way than Wishmaker... about how... I really don't know...
I made some notes but it turned out being wrong when I failed to hit the Seed 0x0008 and others too...
Anti-Shiny would be important to know as well.

We know when a shiny PID comes up, it reseeds the RNG.

EDIT: We found out that it rerolls if it is shiny.

Link to comment
Share on other sites

  • 1 month later...

I would like to announce that there's a little christmas gift from @Deoxyz to be found on the Internet and also want to take this opportunity to thank him once again, what he is doing for us is amazing and can't be thanked well enough.

Merry Christmas!

Edit: Also thanks to everyone else involved. Together we have really come far this year when it comes to Gen 3 Events.

Link to comment
Share on other sites

  • 3 weeks later...

Did some tests and research with the English Berry Glitch Fix Zigzagoon MB.
Trash Bytes of the western Berry Glitch Fix Zigzagoon are identical to the Japanese Berry Glitch Fix Zigzagoon.
(We could never see it because of the length of its name.)

Link to comment
Share on other sites

I think we will need to re-analyze Negaiboshi and it's derivatives. This is due to the fact that the distro roms use R/S's RTC, and do not rely on a master RTC. This involves rewriting legality checking code, and rechecking pokemon files.

Edited by St. GIGA
Link to comment
Share on other sites

25 minutes ago, St. GIGA said:

I think we will need to re-analyze Negaiboshi and it's derivatives. This is due to the fact that the distro roms use R/S's RTC, and do not rely on a master RTC. This involves rewriting legality checking code, and rechecking pokemon files.

Already has been done. Seeds start at 5A0 (Day 1, Hour 1, Minute 1) and increment from there by 1 every minute.

Link to comment
Share on other sites

I confirmed how BGF seeds based on information I have from @Sabresite.
It's ss + mm + hh and for this the RTC of the RS cartridge is used. As a result the possible Seeds are between 0x00 and 0x8D.
Everything above is illegal

Link to comment
Share on other sites

Yeah, no flawless Berry Glitch Fix Zigzagoon.
It's ss + mm + hh after all. So the lowest is 0 and the highest is 59 seconds + 59 min  + 23 hours = 141.


Here is a "timed" (can we even call it RNG? lol) Japanese Zigzagoon. Generated on the initial seed 0x00.

<dead file>

Link to comment
Share on other sites

2 hours ago, ajxpk said:

Yeah, no flawless Berry Glitch Fix Zigzagoon.
It's ss + mm + dd after all. So the lowest is 0 and the highest is 59 seconds + 59 min  + 23 hours = 141.


Here is a "timed" (can we even call it RNG? lol) Japanese Zigzagoon. Generated on the initial seed 0x00.

 

263 ★ - ジグザグマ - 495100005281.pk3

I remember having a total of 145 from HaxAras though. I'll have to double check.

  • Ditto 1
Link to comment
Share on other sites

@ajxpk

Just wondering, if we took a multiboot from 10ANNIV or Aura Mew and replaced that Pokemon with another Pokemon that was generated the same way (for example, replacing Aura Mew with 10 ANIV Celebi or SPACE C Deoxys), would it be generated the same way as it would be on the original multiboot? I'm only asking since it could be a last resort if we can't get any more of the actual multiboots.

Edited by Invader TAK
  • Like 1
Link to comment
Share on other sites

Yeah, that's true. But it's not an easy task to do as you might think. There are checksum protections ect. 
As soon as you mess with something in 10ANNIV/Aura Error Code 5 pops up.

Link to comment
Share on other sites

@Invader TAK

vmNnoHF.png

I wouldn't expect modification to be plausible any time soon, if ever. Even swapping a MB from 10ANNIV into Aura will cause the error due to these checksums.

As said before, only BGFZ is easily modified, but since nothing generates with the same algorithm(besides JP version), it's pointless for practical purposes. And now we even have the legitimate JP BGFZ multiboot.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Deoxyz said:

@Invader TAK

vmNnoHF.png

I wouldn't expect modification to be plausible any time soon, if ever. Even swapping a MB from 10ANNIV into Aura will cause the error due to these checksums.

As said before, only BGFZ is easily modified, but since nothing generates with the same algorithm(besides JP version), it's pointless for practical purposes. And now we even have the legitimate JP BGFZ multiboot.

If you flip one line of code in BFG, it will generate normal BACD events like wshmkr, but with antishiny. ;)

It looks like the generation function remained virtually the same between NegaiBoshi & Pre-Standard (GCEA) minus the copy/paste fuck up with Wshmkr.  The standard generation is pretty similar too actually.  They just refined it for later distribution types and made it more robust so it didn't require stuff to be done before calling it. The way they used the generation function (doing weird seeding, lookup table then calling generation function, etc) was different.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Going back to one of the original debates in this thread, I went over the ROCKS Metang that is publicly available and it looks like a 10 aniv Articuno that was modified. The species name ends with "O\FF\FF" and the OTN ends with "V". Also the base friendship is wrong. The chances of this being a mess up by GF when they made the distribution rom is remote. Mainly because of how the species name is copied and the base friendship, both of which are dynamically looked up by the species index.

  • Like 3
Link to comment
Share on other sites

@Sabresite The save here:

Has an evolved Rocks Metang, maybe that could help determine?

"rocks metank(metagross evolved):_got from a class mate who actually went to the event pokemon rocks america back in 2005 in chicago.the event had demo of pokemon xd gale of darkness.the players who completed thye demo has recieved some kind of card for exchange of metang in counte.the metang lvl is lvl 30 whwn it was received and has a special move refresh.my friend actually recieved it in his fire red catridge(which he no longer wanted).thank god he didnt trade it to further generation.i traded it to this save file .it evoled to metagross and now lvl 84."

I've asked arjunnnn if he still has a save with the Rocks Metang before it was evolved.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...