Jump to content

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


Recommended Posts

  • Replies 424
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

I cracked the PCNYabcd algorithm! It uses a variation of BACD algorithm with unrestricted seeds. PIDH is xor'd against PIDL, TID, and SID. This algorithm makes antishiny detection easier (PIDH is

edit

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 amazin

Posted Images

8 hours ago, theSLAYER said:

pretty glad that user asked for a second opinion, lucky him/her.

This be that whole research thing we kept saying they need to do. 

8 hours ago, theSLAYER said:

not possible.

Thanks for confirming this. I remember downloading some files from the forums somewhere that had some Pokemon in a "Probably fake" folder. Including a ton of 10th anniversary Pokemon and a shiny Rocks Metang. I don't remember the others were. 

InvaderTak seems really interested in getting these distro devices to distribute different Pokemon. Would it be possible to get one to distribute Pokemon to different regions? Like Japanese 10th anniv Pokemon. That would be pretty cool for personal use.

Edited by HaxAras
  • Like 1
Link to post
Share on other sites
1 hour ago, HaxAras said:

This be that whole research thing we kept saying they need to do. 

Thanks for confirming this. I remember downloading some files from the forums somewhere that had some Pokemon in a "Probably fake" folder. Including a ton of 10th anniversary Pokemon and a shiny Rocks Metang. I don't remember the others were. 

InvaderTak seems really interested in getting these distro devices to distribute different Pokemon. Would it be possible to get one to distribute Pokemon to different regions? Like Japanese 10th anniv Pokemon. That would be pretty cool for personal use.

I'm mainly interested just in case we can't get any more 10th Anniversary distro ROMs. And since it looks like all 10th Anniversary distro carts generate Pokemon the exact same way (regardless of the various OTs, IDs and hold items), we might not need other 10th Anniversary distro ROMs. Plus having an all-in-one 10th Anniversay distro ROM would be amazing.

  • Like 1
Link to post
Share on other sites
4 minutes ago, Invader TAK said:

I'm mainly interested just in case we can't get any more 10th Anniversary distro ROMs. And since it looks like all 10th Anniversary distro carts generate Pokemon the exact same way (regardless of the various OTs, IDs and hold items), we might not need other 10th Anniversary distro ROMs. Plus having an all-in-one 10th Anniversay distro ROM would be amazing.

This whole time I thought you wanted to change one of the distro devices to distribute other event Pokemon. Like Rocks Metang for example. Or did you want to do that as well?
I uh, have a hard time following peoples posts sometimes. Sometimes I just kinda read through everything in a hurry and re-read it a few times later.

I just like interesting and unique Pokemon. Or Pokemon with a story. What's more interesting than "I took a modified 10th anniversary distro cart and got some Japanese 10th anniv Pokemon."? Seriously. 

Spoiler

HzBfusw.png

The Scizor is from Colosseum. I'm gonna use a gold bottle cap on it and an ability capsule and it will be a slightly less terrible Scizor with a lot of ribbons and a story!

 

Link to post
Share on other sites
9 hours ago, pMD said:

By the way, it didn't take much long and scammers have already started to look for unsuspicious victims online.

  Reveal hidden contents

juwdCDm.png

 

The two roms were both released less than a week ago, so it's hard to have more than just a small amount of people aware at this point. Of course there will always be a few people taking advantage of those unaware, as with anything, and especially right now while they have a good chance of doing so. But that's why it is our job to try to make this info better known, and not just sit around and bitch about scammers(not saying that's what you're doing). Just making a point that when we see stuff like this, we need to say something.

Luckily, as you said, that particular person asked around a bit and then decided not to purchase the roms. And like everyone is saying, people should research before buying this kind of stuff, but right now any info about the public GBA roms is only in this thread, on Digiex, a couple obscure YouTube videos, and perhaps a few other places, and only for less than a week. With time, everything should end up alright for the most part. Besides, we're just assuming that offer to buy the roms were of these two, and that it was made with the knowledge they are in public access. It probably is the case, but we don't actually know that.

 

1 hour ago, HaxAras said:

InvaderTak seems really interested in getting these distro devices to distribute different Pokemon. Would it be possible to get one to distribute Pokemon to different regions? Like Japanese 10th anniv Pokemon. That would be pretty cool for personal use.

While making fake distro roms for fun and stuff seems harmless, the reason I'm against this is some may try to re-create roms seemingly identical to those that aren't public. If someone were to try to pass them off as real, or if a legit version would actually leak, in either case it may be hard or nearly impossibly to differentiate them. With the DS roms, the carts are a lot more common, so you could just get another cart dump. In the end I suppose this could all be solved if the rom's sources, for GBA or DS, are verified and are proven to come from the carts, though that can potentially be faked as well.

I've been talking with theSlayer about this though, and from what I understand making a rom hack of these is far from a simple task. We can also just make a tool that generates the pokemon the same way as the carts do, and not make an actual rom hack.

My proposal is if a tool to edit these distro roms comes to fruition, the fake roms need to have some kind of visible flag, such as custom text saying its a rom hack or something of that idea. That, and I do not think the rom editing tools should be public, ever. Regardless, that's just my opinion, but I propose and prefer the option of a custom tool with identical generation methods used in the distro carts.

  • Like 3
Link to post
Share on other sites
1 minute ago, HaxAras said:

This whole time I thought you wanted to change one of the distro devices to distribute other event Pokemon. Like Rocks Metang for example. Or did you want to do that as well?
I uh, have a hard time following peoples posts sometimes. Sometimes I just kinda read through everything in a hurry and re-read it a few times later.

I just like interesting and unique Pokemon. Or Pokemon with a story. What's more interesting than "I took a modified 10th anniversary distro cart and got some Japanese 10th anniv Pokemon."? Seriously. 

  Reveal hidden contents

HzBfusw.png

The Scizor is from Colosseum. I'm gonna use a gold bottle cap on it and an ability capsule and it will be a slightly less terrible Scizor with a lot of ribbons and a story!

 

ROCKS Metang would be cool (considering it ties into Gale of Darkness, easily my favorite of the console games), but if it isn't generated the exact same way as the 10th Anniversary Pokemon, then I wouldn't modify this ROM to distribute that. And that's provided we can modify the ROM.

1 minute ago, Deoxyz said:

I've been talking with theSlayer about this though, and from what I understand making a rom hack of these is far from a simple task. We can also just make a tool that generates the pokemon the same way as the carts do, and not make an actual rom hack.

My proposal is if a tool to edit these distro roms comes to fruition, the fake roms need to have some kind of visible flag, such as custom text saying its a rom hack or something of that idea. That, and I do not think the rom editing tools should be public, ever. Regardless, that's just my opinion, but I propose and prefer the option of a custom tool with identical generation methods used in the distro carts.

If that's the case, then I'd be fine with an unofficial tool. Just make versions for GBA, DS and GameCube/Wii as well.

  • Like 1
Link to post
Share on other sites
6 minutes ago, Deoxyz said:

but I propose and prefer the option of a custom tool with identical generation methods used in the distro carts.

See, I personally would love nothing more than something like that. A fan made tool to get new events, the same way as the originals. 

1 minute ago, Invader TAK said:

ROCKS Metang would be cool (considering it ties into Gale of Darkness, easily my favorite of the console games), but if it isn't generated the exact same way as the 10th Anniversary Pokemon, then I wouldn't modify this ROM to distribute that. And that's provided we can modify the ROM.

If that's the case, then I'd be fine with an unofficial tool. Just make versions for GBA, DS and GameCube/Wii as well.

Yeah, I don't know if somebody actually mentioned it or if I interpreted somebody as mentioning it and it's half a figment of my imagination. But at this point, I seriously hope there's a fan made tool that injects event Pokemon into your saves. And creates them exactly like the originals did. Hopefully with a region free switch so I can get cross region events. 

  • Like 2
Link to post
Share on other sites

I know I only repeat myself when I say this, but hacking a Distribution Multiboot ROM like this isn't as easy as anyone might guess.
It's something I personally would do only for fun and rather not to share it in public since as you already know... it would likely being abused and there would be people out there saying that it is the real thing. Which is not the case and never will be the case to make that clear... 

My idea was actually to hack the ROM to see what happens with the Trash Bytes in case if we simulate the Mystry Mew generation process.
I admit that it was a bit naive to believe that this would work but I never had the chance to research a distribution ROM.
The only thing I was aware of that it is data that is computed and stored during the generation process...
BUT I couldn't imagine how complex it really is... Thanks to the great help of @Sabresite & @Bond697 I do understand it now. 


What we are actually trying right now is a collaboration work.
We research, discovering secrets, document important information...
For now we are just trying to gather as much information together as we can.  
We will document everything and over the time will brainstorming and review the possibilities we have with it.

I personally would like to have better legality check functions. Which I think would be a nice thing to have.
With these information we can create better 3rd Gen legality checking functions than ever before.
I am working together with some collectors and already wiped out some hacks that were traded as being legal for years.
Without them this work wouldn't be possible so I would like to give something back in the first place.
I hope everyone here can understand this.

Edited by ajxpk
  • Like 5
Link to post
Share on other sites

It was kinda hard to do without knowing exactly how the Distribution ROM does the seeding, but I managed to download some 10ANNIV Pokemon based on the Seeds I wanted. I noticed that the OTG is not determined using the same method as Wishmkr Jirachi's Berries.
 

Seed   10ANNIV OTG    Wishmkr Berry    rand() / 3 AND 1
0x0000 Female         Ganlon Berry     1
0x0001 Male           Ganlon Berry     1
0x0002 Male           Salac Berry      0
0x0003 Female         Salac Berry      0
0x0004 Male           Salac Berry      0
0x0005 Female         Salac Berry      0
0x0006 Female         Salac Berry      0
0x0007 Male           Ganlon Berry     1


I checked other frames as well. But none of them matched the male/female pattern.
Which brings me to the conclusion that (rand() / 3) & 1 isn't being used for the OTG.

Edited by ajxpk
Link to post
Share on other sites

I think you got confused.  10anniv otg is:

(rand() >> 7) & 1

if 0, ot gender is 1, if 1, ot gender is 0

 

so take the highest bit of the lower byte of rand().  if it's 0, ot gender is 1, if 1, then otg is 0.

 

0x31 is the ot gender field in the pkm

RAM:02013A66 FC F7 D9 FE                 BL      rand
RAM:02013A6A C0 11                       ASRS    R0, R0, #7      ; rand >> 7 & 1
RAM:02013A6C 38 40                       ANDS    R0, R7          ; gender decision
RAM:02013A6E 00 28                       CMP     R0, #0
RAM:02013A70 0C D0                       BEQ     loc_2013A8C
RAM:02013A72 00 20                       MOVS    R0, #0
RAM:02013A74 41 46                       MOV     R1, R8          ; r8 is sp+0x15
RAM:02013A76 08 70                       STRB    R0, [R1]        ; set sp+0x15 to 0
RAM:02013A78 0A E0                       B       loc_2013A90
RAM:02013A78             ; ---------------------------------------------------------------------------
RAM:02013A7A 00 00                       ALIGN 4
RAM:02013A7C A0 B7 01 02 off_2013A7C     DCD pp_name             ; DATA XREF: createPkm+Er
RAM:02013A7C                                                     ; createPkm+58r
RAM:02013A80 14 60 00 03 dword_2013A80   DCD 0x3006014           ; DATA XREF: createPkm+14r
RAM:02013A84 00 00 FF FF dword_2013A84   DCD 0xFFFF0000          ; DATA XREF: createPkm+2Cr
RAM:02013A88 FF FF 00 00 dword_2013A88   DCD 0xFFFF              ; DATA XREF: createPkm+30r
RAM:02013A8C             ; ---------------------------------------------------------------------------
RAM:02013A8C
RAM:02013A8C             loc_2013A8C                             ; CODE XREF: createPkm+C0j
RAM:02013A8C 40 46                       MOV     R0, R8          ; r8 is sp+0x15
RAM:02013A8E 07 70                       STRB    R7, [R0]        ; set sp+0x15 to 1
RAM:02013A90
RAM:02013A90             loc_2013A90                             ; CODE XREF: createPkm+C8j
RAM:02013A90 30 1C                       MOVS    R0, R6          ; pkm
RAM:02013A92 31 21                       MOVS    R1, #0x31       ; ot gender
RAM:02013A94 42 46                       MOV     R2, R8          ; this is the data ptr with the ot gender decision
RAM:02013A96 FE F7 83 FA                 BL      setPkmPartyData
RAM:02013A9A 07 B0                       ADD     SP, SP, #0x1C
RAM:02013A9C 38 BC                       POP     {R3-R5}
RAM:02013A9E 98 46                       MOV     R8, R3
RAM:02013AA0 A1 46                       MOV     R9, R4
RAM:02013AA2 AA 46                       MOV     R10, R5
RAM:02013AA4 F0 BC                       POP     {R4-R7}
RAM:02013AA6 01 BC                       POP     {R0}
RAM:02013AA8 00 47                       BX      R0

 

  • Like 1
Link to post
Share on other sites

I was just remembering this after we talked about フェスタ メタング...
Sorry for the bad quality. It's from an old video. 




フェスタ メタング 1.png

ポケモンをうけとっています。
でんげんを切らないでください。

フェスタ メタング 2.png

ポケモンがやってきました!
たいせつにしてね。
でんげんを切って、 ケーブルをぬいて
ください。


Source of the video: http://www.filb.de/events/pokemonfesta2005



Looks a bit familiar, right?

10ANNIV LUGIA 1.png

10ANNIV LUGIA 2.png
 

Edited by ajxpk
  • Like 3
Link to post
Share on other sites
43 minutes ago, Ammako said:

What does this show us, other than they used similar graphics for the receiving end? :P Just with white background instead of black.

He might be showing that the 10ANNIV generation method (or at least the multiboot ROM interface) is older than we think.

Edited by Invader TAK
  • Like 2
Link to post
Share on other sites
3 hours ago, ajxpk said:

ポケモンをうけとっています。
でんけんを切らないでください。

-----

ポケモンがやってきました!
たいせつにしてね。
でんけんを切って、 ケーブルなぬいて
ください。

Google translate cracks me up sometimes.

I have received Pokemon.
Please do not break the snack.

-----

Pokemon has arrived!
Make it important.
Cut the staple and hold the cable
Please give me.

  • Like 2
Link to post
Share on other sites

@zeropain

I just tried VBALink 1.8, and almost every case when trying to link with the 10ANNIV, the first window just starts lagging so badly that it's unusable.

However I do sometimes eventually get it to work without the lag and start multiboot mode, and right when it says it's transferring, it freezes the second window completely. I eventually got it to work once, but not again.

H9h6bLf.png

So in theory it should always work perfectly fine if it doesn't lag or freeze. It never lagged when I was trying to figure it out on 1.7, but there it just straight out doesn't emulate a multiboot link.

The Aurora Ticket works with 1.8 just as it did with 1.7, Mystery Gifts work fine. Your guide has all the steps right, it just seems that there is always a problem with the multiboot emulation. That's me though, you said it worked for you so idk.

Link to post
Share on other sites
6 minutes ago, Invader TAK said:

With all the BS you guys have had getting this thing to work with emulators, I'll stick to actual hardware.

Luckily I can and prefer to use actual hardware as well :D

It would just be nice if we knew a method where the 10ANNIV worked with an emulator just as well as everything else.

Edited by Deoxyz
  • Like 2
Link to post
Share on other sites
Just now, Deoxyz said:

Luckily I can use actual hardware as well :D

It would just be nice if we knew a method where the 10ANNIV worked with an emulator just as well as everything else.

I can see the uses. Look at the people who managed to get emulators working with Colosseum's e-Reader functionality.

Link to post
Share on other sites
2 minutes ago, Invader TAK said:

I can see the uses. Look at the people who managed to get emulators working with Colosseum's e-Reader functionality.

That, and for those who actually play on emulators and/or don't have a GBA flashcart

Edited by Deoxyz
  • Like 1
Link to post
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...