-
Posts
477 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Pokédex
Portal
Technical Documentation
Pages
Tutorials
Forums
Events
Downloads
Gallery
Blogs
Posts posted by KazoWAR
-
-
If he just needs to generate a shiny PID with no regard for whether it's valid or not, then the chained shiny algorithm is fast and works for his purposes.
Kazo, what does the code look like now?
Random random = new Random(); UInt32 RandomPID = 0, RandomPIDHigh = 0, RandomPIDLow = 0; bool NatureBool = true, AbilityBool = true, GenderBool = true, ShinyBool = true, UnownBool = true; while (NatureBool || AbilityBool || GenderBool || ShinyBool || UnownBool) { RandomPIDLow = Convert.ToUInt32(random.Next(0xFFFF)); if (checkBox_Shiny.Checked) { RandomPIDHigh = Convert.ToUInt32(RandomPIDLow ^ Convert.ToInt32(textBox_TrainerID.Text) ^ Convert.ToInt32(textBox_SecretID.Text)); } else { RandomPIDHigh = Convert.ToUInt32(random.Next(0xFFFF)); } RandomPID = (RandomPIDHigh * 0x10000) + RandomPIDLow; //Nature if ((RandomPID % 25 == NatureNumber)) { NatureBool = false; } else { NatureBool = true; } //AbilityCheck if (1 < comboBox_Ability.Items.Count) { //Ability if (RandomPID % 2 == comboBox_Ability.SelectedIndex) { AbilityBool = false; } else { AbilityBool = true; } } else { AbilityBool = false; } //GenderCheck if ((GenderRatio != "Male0_Female1") && (GenderRatio != "Male1_Female0") && (GenderRatio != "Genderless")) { //GenderCheck2 if (radioButton_GenderMale.Checked) { //Gender (Male) if (RandomPID % 256 >= GenderNumber) { GenderBool = false; } else { GenderBool = true; } } else { //Gender (Female) if (RandomPID % 256 <= GenderNumber) { GenderBool = false; } else { GenderBool = true; } } } else { GenderBool = false; } //ShinyCheck if (checkBox_Shiny.Checked) { //Shiny if ((RandomPIDHigh ^ RandomPIDLow ^ Convert.ToInt32(textBox_TrainerID.Text) ^ Convert.ToInt32(textBox_SecretID.Text)) < 8) { ShinyBool = false; } else { ShinyBool = true; } } else { //Shiny if ((RandomPIDHigh ^ RandomPIDLow ^ Convert.ToInt32(textBox_TrainerID.Text) ^ Convert.ToInt32(textBox_SecretID.Text)) < 8) { ShinyBool = true; } else { ShinyBool = false; } } //UnownCheck if (comboBox_Pokemon.Text == "UNOWN") { //UnownShape if (true) { UnownBool = false; } else { UnownBool = true; } } else { UnownBool = false; } } textBox_PID.Text = RandomPID.ToString(); }
This is the what is currently used in my program, I still need to add an Unown shapes check, but from what I read it seems kinda complicated.
-
After testing it seems it uses the lower part of the PID, so the mirage island number for that feebas is C7BA.
In Ruby/Sapphire it is the lower part of the 32bit value at 02026ABC.
In Emerald, it moves its place every time there is a screen change, such as entering and existing a building but, it is always at 02026E24 at the continue screen, so to use it with emerald, enable the code at the continue screen, then disable it and it will keep the same value as it is shifted around in ram.
GBA AR codes are encrypted, and when you decrpt it to RAW it looks like this, 02226DE4 0000C7BA it writes C7BA, the lower part of the Feebas's PID to 02226DE4. 02226DE4 is one of the locations that the Mirage island code can be located while it is shifting around in ram. It looks like a poorly tested code because most of the time it will not work until the Mirage island code passes through it.
Mirage island code (RAW), replace XXXX with the lower part of a Parties Pokemon's PID.
Ruby/Sapphire
02226ABC 0000XXXX
Emerald*
02226E24 0000XXXX
*Enable and then disable at the Continue screen.
You can use AR Crypt to convert different code types to others. http://doc.kodewerx.org/tools.html#arcrypt
-
for GBA, you can use both No$GBA and VBALink to emulate a link cable between them, but for DS, there is no current way to have them connect to each other. As for emulator <-> retail cart, i think there some way to do it with some device or something, but I am not to sure, if its true then it most likely really technically, but the best way is to rip a sav and use it on the emulator and then replace it back on to the cart, this is for GBA btw.
-
Thanks, SCV helped me out over IRC, that pretty much how we got it to work.
-
I voted for Suicune.
-
Pokémon Maker Colosseum v1.2 by KazoWAR
v1.2 Update: Fixed a typo in the nature list, Adament to Adamant. This was causing Pokemon to not become the Adamant nature.
v1.1 Update: Fixed an issue that was causing some Pokémon with 2 abilities to receive the opposite ability in game.
This Programs allows users to create Action Replay codes to use with Pokémon Colosseum (U) that allows the user to fully create any pokemon from scratch.
The Pokemon is placed in BOX 3 Slot 30.
Please report any bugs to KazoWAR@yahoo.com
Edit OTinfo.txt to add in a desired OT information to use with the buttons Input Own ID and Input Own OT.
Special Thanks:
Ralf http://board.gscentral.org/showthread.php?11623-Pokemon-Colosseum-%28GCN-AR-NTSC%29
kpdavatar http://www.princeton.edu/~jdonald/pokemon/kpdavatar/PokemonMakerHelp.txt
SCV http://projectpokemon.org/
albino_vulpix http://faqs.ign.com/articles/680/680986p1.html
Bulbapedia http://bulbapedia.bulbagarden.net/wiki/Main_Page
Serebii.net http://www.serebii.net/index2.shtml
This application was made with Microsoft Visual Studio 2010 Beta 2, you may need Microsoft .NET Framework 4 Beta 2 to run this application.
Download link: http://go.microsoft.com/fwlink/?LinkID=165587
Screen Shot
-
nope, just palparked info
-
There is no IV checking at all. All it checks for are if the random pid generated in each loop matches for the selected nature, ability number if more than 1 ability, gender if it has 2 genders, if it is shiny if the shiny box is checked, and eventually if i can figure it out, if it has the desired Unown shape if its an Unown.
-
With the help of SCV I was able to start calculating a PID in my program. It works fine, but when I try to make it shiny, it takes a very long time to calculate it, compared to how in Pokesav it is instant.
Video to show how slow it is.
[video=youtube;Ry6HR_6u9bk]
Here is my code.
Random random = new Random(); UInt32 RandomPID = 0, RandomPIDHigh = 0, RandomPIDLow = 0; UInt32 PIDcount = 0; bool NatureBool = true, AbilityBool = true, GenderBool = true, ShinyBool = true, UnownBool = true; while (NatureBool || AbilityBool || GenderBool || ShinyBool || UnownBool) { RandomPIDHigh = Convert.ToUInt32(random.Next(0xFFFF)); RandomPIDLow = Convert.ToUInt32(random.Next(0xFFFF)); RandomPID = (RandomPIDHigh * 0x10000) + RandomPIDLow; //Nature if ((RandomPID % 25 == NatureNumber)) { NatureBool = false; } else { NatureBool = true; } //AbilityCheck if (1 < comboBox_Ability.Items.Count) { //Ability if (RandomPID % 2 == comboBox_Ability.SelectedIndex) { AbilityBool = false; } else { AbilityBool = true; } } else { AbilityBool = false; } //GenderCheck if (GenderRatio != "Male0_Female1" || GenderRatio != "Male1_Female0" || GenderRatio != "Genderless") { //GenderCheck2 if (radioButton_GenderMale.Checked) { //Gender (Male) if (RandomPID % 256 >= GenderNumber) { GenderBool = false; } else { GenderBool = true; } } else { //Gender (Female) if (RandomPID % 256 <= GenderNumber) { GenderBool = false; } else { GenderBool = true; } } } else { GenderBool = false; } //ShinyCheck if (checkBox_Shiny.Checked) { //Shiny if ((RandomPIDHigh ^ RandomPIDLow ^ Convert.ToInt32(textBox_TrainerID.Text) ^ Convert.ToInt32(textBox_SecretID.Text)) < 8) { ShinyBool = false; } else { ShinyBool = true; } } else { ShinyBool = false; } //UnownCheck if (comboBox_Pokemon.Text == "UNOWN") { //UnownShape if (true) { UnownBool = false; } else { UnownBool = true; } } else { UnownBool = false; } PIDcount += 1; textBox1.Text = PIDcount.ToString(); this.Update(); } textBox_PID.Text = RandomPID.ToString();
-
try extrcting the rar file
-
yea, that is when i plan to do, random number form 0 to 4294967295, then do checks on it to see if it would give it the nature the user selected, the ability number, gender etc. if any fails then start over.
-
it was somthing i was trying to add to it, but i am not sure how.
-
I got the source to this about a week ago, I translated and tweaked the sav and pkm editor. There might be some bugs, but for the most part it can open my emerald save, and I can make Pokemon from scratch, I don't really have any plans to translate the dex part of the program, unless I have some extra time or somthing.
This is the current release I have.
-
It doesn't have to be a legal PID for now, this is for Pokemon Colosseum, so I don't really care how accurate the PID is to how the games create them. I am making a little program that allows the user to make Pokemon then export a code that creates the Pokemon in BOX 3 Slot 30.
-
How should I go about calculating a PID based on a selected Nature, Gender, Ability, Shiny, and Unown Shape.
-
does anyone know what was added with those 2 versions?
-
it is a typo in pokesav, Egg hatced at is really egg obtained, and met is where the egg hatches at. set egg hatched at in poke sav to daycare couple, then leave placel met and date blank.
-
A flash cart like an ezflash 3in1 would be handy for that.
The reason I ask about the screenshots is that yesterday I backed up my Pokemon disc and it didn't seem to be running in Dolphin. It wasn't too high-priority or I'd have searched around more, but seeing those nice shots just got me wondering...
does that work? I just assumed it wouldn't because the way it doesn't work with pal park unless you patch the nds rom.
I guess you have that possibility, but if you can, would you mind backing up your gba save file (the one that contains Ageto Celebi) and put it up here, so we could get Ageto Celebi ourself?I'd really like to get an Ageto Celebi on my GBA games, so if you put up a save file, I'll use it in NO$GBA along with my Ruby save file, then I'd restore my save file to my retail GBA cart.
If you don't mind it, could you please try and get a Modest one?
Since you don't have a Japanese GBA game, if you can't get one, any one will do.
That would be very helpful, since at the moment I got WISHMKR Jirachi and 10 ANIV Celebi. All I need is an Ageto Celebi, lol.
Sure, but I dont plan on doing it anytime soon.
Have you tried this? I wasn't sure since I couldn't confirm it because I don't have the little transfer dongle thing. But if it does work that's just awesome.Well, not personally, but this guy that has a video of him getting the ageto celebi said that you need the japanese version of Colosseum with a completed game and that the first celebi is put on the Colosseum game its self, then it can trade up to 49 others to a GBA games, one each. it seems logical if you restore the sav to be used on the (U) game, then it will be able to trade the celebi to the (U) gba games.
-
In the example all the RNG calls are listed in the list of rng calls based on the seed. but when I did it, the last call for the IVs where not listed, maybe i typed the wrong data for the IV. I will check again.
-
Yea, I used the memcard tool with dolphin to fix the checksums. Also, don't need a Japanese GBA game because the first celebi is added to the Colosseum game. Just transfer it back to the (U) version and then trade from there, but yea, I plan on getting one to mass trade celebi's to it in hopes for good nature and IVs
@Poryhack, yea screenshots from dolphin.
-
You need to enter your secret ID.
-
Not sure if this new or not, but I was able to load a Japanese Pokemon Colosseum save file on the U version of the game. This is important imo because now I can play the game with the U version to complete it, then swap it out to the Japanese version and use it to get Celebi with the Japanese Pokemon Colosseum bonus disk. After hex editing the save file, you need to do a checksum fix.
Hex edit of the (U) sav file to the (J) one.
Befor:
After:
Results:
(J) to (U)
(U) to (J)
-
I haven't tested 4th gen, but with 3rd gen it seems really buggy. the met location is always "obtained in a trade" the pokemon is always in a masterball, and the IVs are completeing wrong. I entered something like 20,24,19,13,12,9 but i got 20,0,25,0,0,0.
-
I am trying to figure out how the game generates the PID and IVs. I can map out 3 calls the the RNG, bit the 4th one confuses me.
Here is an example.
PID:FB91A0E9
IVs:14AB64CE
Seed the game started with is 54C01FE.
Here is a list of the RNG advancements.
Now, it looks like on frame 15 it begins the calls to make the PID and IVs.
Frame: 15 Seed: A0E92184
Frame: 16 Seed: FB91DDA7
Frame: 17 Seed: 64CEA28E
the PID is made with Frames 15 and 16 by using the first 4 digits of thos seeds, but the IVs use the first 4 digits of frame 17, but the other set of digits, 14AB, I can't seem to find anywhere in the list. Where are these number coming from.
Pokémon Maker Colosseum *Updated v1.2*
in ROM - NDS Research and Development
Posted
Neither.
"This Programs allows users to create Action Replay codes to use with Pokémon Colosseum (U) that allows the user to fully create any pokemon from scratch."