Jump to content

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


Recommended Posts

 LOL, I just checked too. I didn't even knew that... interesting...
All I can say is that I have never seen one with female OT.
And one thing I noticed about Bulbapedia is that they often tend to write in their articles that both male and female is possible in case they didn't knew it better. The same is going on with a lot of Japanese Events. The Japanese article is even worse... There's a lot of work that needs to be done there.
Regarding ROCKS Metang's OTG I will ask around and see what others say. If possible I will try to gather some more files which would be the best I think...

Link to comment
Share on other sites

Perhaps not entirely related, but does anyone have a build of VBA-M with which link emulation actually works (both cable and Wireless), and GC<->GBA connectivity?

Newest Beta 3 might as well not exist, 2.0.0 Beta 2 from Sourceforge just starts lagging immensely as soon as any kind of link connection gets established, and VBA-M website is useless as it's pretty much abandoned.

Halp D:

Link to comment
Share on other sites

1 hour ago, Sabresite said:

Man, I need to stop using Bulbapedia for quick event lookup.  If ROCKS Metang OTG is always Male, that is another thing Bulbapedia probably has wrong.
Anyone want to go on there and update it?

 

Also the PCNY pokes I have do not have consistent trash bytes.  Some have no trash bytes, some do.  Not sure what to make of it.

This might sound dumb, but the first thing to do might be to see if any of the trash is actually thumb code.  If so, those are probably the first ones generated.  Could the ones with none have been traded to a gamecube game and back?

The trash bytes for the 10anniv pokes exist because GF does a copy of the pokemon's name from a global constant to a local buffer, then copies the local buffer to the .pkm "file" in memory.  The problem is, the first copy is just a strcpyFF(local_buf, global_const) which ends at the 0xFF terminator, so if the name in the variable was 'LUGIA'\xFF FF FF FF, they would only copy 'LUGIA'\0xFF, leaving the last 3 or however many bytes as whatever was on the stack before because they don't zero-out the full size of the local variable before the copy.  Then they would copy the name using strncpy(&pkm.name, local_buf, 10) without caring about the junk past the FF-terminated name. 

The thumb code on the stack that makes up the trash is because of a function that 's basically memcpyFF(dest, src) that copies until it hits an 0xFF that I think is copying waaay too far and is coincidentally not breaking anything so they either didn't notice or left it.

  • Like 1
Link to comment
Share on other sites

@Bond697 The way these Trash Bytes come together is so hilarious that I have to laugh about it everytime I think of it. 

Your idea that they could have been traded back and forth Col/XD makes a lot sense btw.
At least if these (hopefully rare) occurences @Sabresite is talking about are zero padded...
It's nothing too suspicious since it's possible to achieve it in a legit way.
Also I must say that I have only the stuff from @HaxAras ect.
Which included Absol, Zangoose, Seviper, Tropius, Machamp & Guardevoir.
And Gardevoir's name is too long so it doesn't have any trash.


Btw. is there a way to determine wether a PCNY is hacked or not without having them all?
PCNY is still new to me but I have a slight idea that it has to do with OT & ID.
Also interesting to see the Held Item stuff again. But hard to know how they get which item without knowing the generation method... -

Link to comment
Share on other sites

On 12/23/2016 at 5:10 PM, pMD said:

VBA/VBA-M do not support multiboot mode emulation. This should work:

1. Download the latest no$gba emulator. (nocashgba-w-v2.8d)

2. Download the bios file for gba and rename it to gba.rom

3. Place the gba.rom file where the no$gba.exe file is.

4. Open the no$gba file and then go to Options -> Emulator Setup. Now, set:

a) Reset/Startup Entrypoint -> GBA/NDS BIOS (Nintendo logo).

b) Number of Emulated Gameboys -> 2.

c) Link Gamepaks -> Gamepaks in all GBAs.

d) Link Cable Type -> Automatic.

6. After you are done with optimazing the settings, go to the no$gba screen and right click -> Link. This should open two gba screens.

7. At the top left, File -> Cartridge Menu (FileName).

8. Check the "Autostart Cartridge" option at the bottom left and choose the "1st machine" option right next to the "Autostart Cartridge" button.

9. Choose as "File name" the rom of the available Gen III games you want to send the pokemon to and click "Open".

10. Repeat the same procedure but this time choose the "2nd machine" option, UNcheck the "Autostart Cartridge" option and choose the GBA distribution rom you want.

11. All you have to do now is follow the steps for the multiboot mode activation. Hold START + SELECT to do so.

BE CAREFUL: You have to manually change the controls for each one of the emulated GBAs. The START + SELECT step should be done on the slave GBA aka the gba that emulates the pokemon game rom where the event pokemon are going to be sent to.

Thanks @Deoxyz for releasing this! I feel sorry for the people who paid serious money for the genuine gba distribution cartridges.

Those instructions are wrong, in case anyone is still trying to make this work like I was (or if anyone finds this thread online while trying to make this work.)

- With NO$GBA 2.8d

- With gba bios named gba.rom in the same directory

- With your Gen. III save file in extension .sv2 (not .sav2) in the BATTERY folder, saved in the Pokémon Center with free space in your party

1. Start up the emulator, click Options --> Save options to create NO$GBA.ini

2. Close the emulator and open NO$GBA.ini in a text editor, change "SAV/SNA File Format == Compressed (good/lz)" to "SAV/SNA File Format == Raw" (Otherwise NO$GBA will compress your save for no reason at all and you won't be able to use it in VBA or restore to physical cartridge anymore.)

3. Start up the emulator again, go to Options --> Emulation setup

4. Set "Reset/Startup Entrypoint" to "GBA/NDS BIOS"

5. Click the "Controls" tab and define controls for both Player 1 and Player 2.

6. Exit the settings, right-click the emulator screen and select Link which will open a second screen.

7. Go to File --> Cartridge Menu (FileName), at the bottom, select 1st machine in the dropdown menu then select the distro rom. The distro rom will start on screen 1.

8. Go to File --> Cartridge Menu (FileName) again, this time select 2nd machine in the dropdown menu and select your Gen. III rom. It will start up on second screen.

9. Hold the keys you have bound in controls to Start + Select for Player 2 (hit File --> Reset Cartridge if you need to), and on Player 1 (distro rom) select one of the Pokémon you want to send.

10. It will send the Pokémon you chose over to your Gen. III game. Once it says you can turn off the power, go ahead and hit File --> Reset Cartridge and repeat the process to receive other Pokémon, or to get to the Pokémon Center in-game if your party gets full.

 

Do note however that NO$GBA 2.8d is shit and will crash on startup after you've done multiplayer stuff, and you'll have to delete NO$GBA.ini and redo the setup again if you need to use it again, but once you're done sending every 10ANNIV over you can just close it and move your save file back over to VBA so it doesn't matter much. The setup only takes a minute or two anyway so if you ever need it again it's not a huge deal.

Link to comment
Share on other sites

20 minutes ago, Ammako said:

Those instructions are wrong, in case anyone is still trying to make this work like I was (or if anyone finds this thread online while trying to make this work.)

- With NO$GBA 2.8d

- With gba bios named gba.rom in the same directory

- With your Gen. III save file in extension .sv2 (not .sav2) in the BATTERY folder, saved in the Pokémon Center with free space in your party

1. Start up the emulator, click Options --> Save options to create NO$GBA.ini

2. Close the emulator and open NO$GBA.ini in a text editor, change "SAV/SNA File Format == Compressed (good/lz)" to "SAV/SNA File Format == Raw" (Otherwise NO$GBA will compress your save for no reason at all and you won't be able to use it in VBA or restore to physical cartridge anymore.)

3. Start up the emulator again, go to Options --> Emulation setup

4. Set "Reset/Startup Entrypoint" to "GBA/NDS BIOS"

5. Click the "Controls" tab and define controls for both Player 1 and Player 2.

6. Exit the settings, right-click the emulator screen and select Link which will open a second screen.

7. Go to File --> Cartridge Menu (FileName), at the bottom, select 1st machine in the dropdown menu then select the distro rom. The distro rom will start on screen 1.

8. Go to File --> Cartridge Menu (FileName) again, this time select 2nd machine in the dropdown menu and select your Gen. III rom. It will start up on second screen.

9. Hold the keys you have bound in controls to Start + Select for Player 2 (hit File --> Reset Cartridge if you need to), and on Player 1 (distro rom) select one of the Pokémon you want to send.

10. It will send the Pokémon you chose over to your Gen. III game. Once it says you can turn off the power, go ahead and hit File --> Reset Cartridge and repeat the process to receive other Pokémon, or to get to the Pokémon Center in-game if your party gets full.

 

Do note however that NO$GBA 2.8d is shit and will crash on startup after you've done multiplayer stuff, and you'll have to delete NO$GBA.ini and redo the setup again if you need to use it again, but once you're done sending every 10ANNIV over you can just close it and move your save file back over to VBA so it doesn't matter much. The setup only takes a minute or two anyway so if you ever need it again it's not a huge deal.

actually the workaround I got for that,
Is to not save the option to load gba bios. (meaning it stays are Start Cartridge directly).

when doing the steps, you have to load gba bios,
but clicking "ok" in the control setups isn't the same as the save now and auto save settings options.

As long as load gba bios isn't permanently saved to settings,
I won't have to redo my setup. Backing up a copy of the .ini with all the controls setup is also a good measure,
in case you accidentally save to load gba bios  option to settings permanently.

  • Like 1
Link to comment
Share on other sites

13 hours ago, ajxpk said:

@Bond697 The way these Trash Bytes come together is so hilarious that I have to laugh about it everytime I think of it. 

Your idea that they could have been traded back and forth Col/XD makes a lot sense btw.
At least if these (hopefully rare) occurences @Sabresite is talking about are zero padded...
It's nothing too suspicious since it's possible to achieve it in a legit way.
Also I must say that I have only the stuff from @HaxAras ect.
Which included Absol, Zangoose, Seviper, Tropius, Machamp & Guardevoir.
And Gardevoir's name is too long so it doesn't have any trash.


Btw. is there a way to determine wether a PCNY is hacked or not without having them all?
PCNY is still new to me but I have a slight idea that it has to do with OT & ID.
Also interesting to see the Held Item stuff again. But hard to know how they get which item without knowing the generation method...

I'm still wondering if the UK 10ANNIV cart generates Pokemon in the EXACT same way as the other 10th Anniversary carts no matter what differences there are in OT, ID and hold item (or lack thereof). If it does, then all we'd need to do is modify it to distribute the US 10 ANIV events (and others like UK Aura Mew, but there's a chance that ROM will be released).

Edited by Invader TAK
Link to comment
Share on other sites

4 hours ago, Ammako said:

Those instructions are wrong, in case anyone is still trying to make this work like I was (or if anyone finds this thread online while trying to make this work.)

- With NO$GBA 2.8d

- With gba bios named gba.rom in the same directory

- With your Gen. III save file in extension .sv2 (not .sav2) in the BATTERY folder, saved in the Pokémon Center with free space in your party

1. Start up the emulator, click Options --> Save options to create NO$GBA.ini

2. Close the emulator and open NO$GBA.ini in a text editor, change "SAV/SNA File Format == Compressed (good/lz)" to "SAV/SNA File Format == Raw" (Otherwise NO$GBA will compress your save for no reason at all and you won't be able to use it in VBA or restore to physical cartridge anymore.)

3. Start up the emulator again, go to Options --> Emulation setup

4. Set "Reset/Startup Entrypoint" to "GBA/NDS BIOS"

5. Click the "Controls" tab and define controls for both Player 1 and Player 2.

6. Exit the settings, right-click the emulator screen and select Link which will open a second screen.

7. Go to File --> Cartridge Menu (FileName), at the bottom, select 1st machine in the dropdown menu then select the distro rom. The distro rom will start on screen 1.

8. Go to File --> Cartridge Menu (FileName) again, this time select 2nd machine in the dropdown menu and select your Gen. III rom. It will start up on second screen.

9. Hold the keys you have bound in controls to Start + Select for Player 2 (hit File --> Reset Cartridge if you need to), and on Player 1 (distro rom) select one of the Pokémon you want to send.

10. It will send the Pokémon you chose over to your Gen. III game. Once it says you can turn off the power, go ahead and hit File --> Reset Cartridge and repeat the process to receive other Pokémon, or to get to the Pokémon Center in-game if your party gets full.

 

Do note however that NO$GBA 2.8d is shit and will crash on startup after you've done multiplayer stuff, and you'll have to delete NO$GBA.ini and redo the setup again if you need to use it again, but once you're done sending every 10ANNIV over you can just close it and move your save file back over to VBA so it doesn't matter much. The setup only takes a minute or two anyway so if you ever need it again it's not a huge deal.

The steps I included in my post work for me and for the most people I tried them with.

You don't have to be inside a Pokemon Center in order to receive Pokemon from multiboot roms. I tried to transfer 10ANNIVs to the save file which was used to verify the legitimatecy of shiny WISHMKRs and it worked fine, even when the game character was outside of a Pokemon Center.

The additional step "Close the emulator and open NO$GBA.ini in a text editor, change "SAV/SNA File Format == Compressed (good/lz)" to 'SAV/SNA File Format == Raw'" is optional and I don't know if it is worth it. Sometimes, editing the no$gba.ini file won't let you use your no$gba save file in VBA or retail cartridges.

The .SAV2 save file extension works for me the same way that .SV2 extension does.

Link to comment
Share on other sites

3 minutes ago, pMD said:

The steps I included in my post work for me and for the most people I tried them with.

You don't have to be inside a Pokemon Center in order to receive Pokemon from multiboot roms. I tried to transfer 10ANNIVs to the save file which was used to verify the legitimatecy of shiny WISHMKRs and it worked fine, even when the game character was outside of a Pokemon Center.

The additional step "Close the emulator and open NO$GBA.ini in a text editor, change "SAV/SNA File Format == Compressed (good/lz)" to 'SAV/SNA File Format == Raw'" is optional and I don't know if it is worth it. Sometimes, editing the no$gba.ini file won't let you use your no$gba save file in VBA or retail cartridges.

The .SAV2 save file extension works for me the same way that .SV2 extension does.

.sav2 or .sv2 recognition may be affected by No$gba version.

The changing of to "Raw" is important, else the save can't be imported into PKHeX, flashcarts or other emulators.

If notepad doesn't modify it right, I'll say go with Notepad+

Always backup your .ini before modification, in case it decides not to boot etc.

Link to comment
Share on other sites

12 minutes ago, theSLAYER said:

The changing of to "Raw" is important, else the save can't be imported into PKHeX, flashcarts or other emulators.

If notepad doesn't modify it right, I'll say go with Notepad+

Maybe that's the reason. I've tried to modify the .ini file with Notepad++ without success.

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

Spoiler

juwdCDm.png

 

Link to comment
Share on other sites

Speaking with @Bond697, it looks like the PCNY trash bytes are also THUMB code.  This tell us that the pokemon were DEFINITELY generated by a GBA, most likely a multiboot rom.  Which makes sense since they probably choose PCNYa, b, c, d.  The thing we need to find out next is the ID incrementing, as we know the main rom does count/track how many pokemon are transmitted.

Link to comment
Share on other sites

8 minutes ago, pMD said:

Maybe that's the reason. I've tried to modify the .ini file with Notepad++ without success.

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

  Hide contents

juwdCDm.png

 

and as said previously, there'll always be scammers, and people should do their research.

Also, if you could find content like this, you could just join the thread and educate the users.

Also, I can't find that forum.

  • Like 3
Link to comment
Share on other sites

Just now, theSLAYER said:

Also, I can't find that forum.

It's from a private message on the AssemblerGames forum. The user who received the message asked for a second opinion on another forum and luckily he didn't proceed with the transaction.

Link to comment
Share on other sites

4 minutes ago, pMD said:

It's from a private message on the AssemblerGames forum. The user who received the message asked for a second opinion on another forum and luckily he didn't proceed with the transaction.

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

  • Like 2
Link to comment
Share on other sites

1 hour ago, Sabresite said:

Speaking with @Bond697, it looks like the PCNY trash bytes are also THUMB code.  This tell us that the pokemon were DEFINITELY generated by a GBA, most likely a multiboot rom.  Which makes sense since they probably choose PCNYa, b, c, d.  The thing we need to find out next is the ID incrementing, as we know the main rom does count/track how many pokemon are transmitted.

I'm not really sure if this helps at all but I learned not to assume bits of info are just worthless. Some of the PCNY Pokemon I found are PCNYc, but most are PCNYd if I remember correctly. So wouldn't that mean there were more distribution terminals? 

Link to comment
Share on other sites

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 comment
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 comment
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 comment
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 2
Link to comment
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 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...