Register - Login
Views: 85735457
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
09-25-17 08:21:43 AM

Jul - Game Research/Hacking/Modding - Migrating Pokémon from Generation 2 to 3 New poll - New thread - New reply
Pages: 1 2 3 4 5Next newer thread | Next older thread
GuyPerfect
Catgirl
Level: 64


Posts: 1045/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 12-08-14 07:31:06 PM Link | Quote
Oh snap. It occurs to me that a person can view a Pokémon in the transfer stage without opting to migrate it. If this is the case, then on subsequent views, the Nature can change depending on the values of the stat experience if Nature is determined based on stat values.

I'll have to think on this one. I'm leaning towards Nature being something that is guaranteed to remain constant on a Pokémon regardless of its stat Exp.
Delpolo
The local lurker.
Level: 54


Posts: 640/730
EXP: 1194137
For next: 39733

Since: 09-12-07


Since last post: 42 days
Last activity: 5 hours

Posted on 01-21-15 01:09:19 AM Link | Quote
Originally posted by GuyPerfect
Hey, good news! Mew and Celebi can be migrated in such a way that they'll be accepted by Poké Transporter [...]

I stumbled upon this video, which allows you to 'hatch' any Pokemon, including Mew, Celebi, Deoxys, and so on. According to your research, Transporter would reject all Mew and all Celebi, because Mew wouldn't have the Fateful Encounter flag, and Celebi would hatch at level 5 even with the Pomeg Glitch.

...But are there any restrictions on Deoxys? Or is it pointless to try and do this glitch to transfer a Deoxys all the way up to OR/AS (if it'd even pass through to generations 4 and 5)?
Darkdata
Ruins!? ♥
Level: 98


Posts: 2864/2889
EXP: 9490839
For next: 163514

Since: 07-04-07


Since last post: 43 days
Last activity: 3 days

Posted on 02-23-15 06:25:44 PM Link | Quote
Linkara did a video on this topic, might as well bump to share.

http://atopthefourthwall.com/how-to-trade-gen-12-pokemon-into-gen-3-and-up/
stag019

Red Koopa
Level: 24


Posts: 119/129
EXP: 68810
For next: 9315

Since: 09-11-11


Since last post: 361 days
Last activity: 18 days

Posted on 02-24-15 03:01:29 PM Link | Quote
He mentions using a Mega Memory Card to get your save files off the cartridges. He also mentions it's price (~$30 on eBay). I got a Monster Brain (also sometimes branded as Brain Boy), which can also copy save files, for ~$10-$15 on eBay. Just in case anyone decides to try this.

I remember when Twitch Plays Pokemon (the first) just ended, I used this method to get the TPP save file onto a legitimate Pokemon Red cartridge.
GuyPerfect
Catgirl
Level: 64


Posts: 1057/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-08-15 11:57:27 PM (last edited by GuyPerfect at 03-08-15 11:59:53 PM) Link | Quote
I've gone through and run a bunch of Pokémon against the Poké Transporter validator to determine the minimum allowable levels at the time of this post:
                 Bank   Gen 2   Gen 3

Min Min Min

Ditto 1 10 25
Articuno 50 50 50
Zapdos 50 50 50
Moltres 50 50 50
Mewtwo 70 70 70
Unown 1 5 25
Raikou 30 40 50
Entei 30 40 50
Suicune 30 40 50
Lugia 5 40 50
Ho-Oh 5 40 70
Although hatching Pokémon from eggs in generations 2 and 3 will always yield a level 5 Pokémon, the validator accepts level 1 Ditto and Unown, and presumably any hatchable Pokémon as well. It's likely they just used level 1 as the default value when initializing the database, then went back and filled in values for legendaries. Although Ditto and Unown cannot be bred, they were probably overlooked because they're not legendaries.

Articuno, Zapdos, Moltres and Mewtwo are the most reasonable of the bunch, since their minimum level of 50 (70 for Mewtwo) happens to match the level at which they are encountered in both generations.

Raikou, Entei and Suicune can pass through at level 30 for whatever reason, even though the minimum level they can appear as with regards to the Poké Transporter is 40 (HeartGold and SoulSilver).

Lugia and Ho-Oh can honest-to-goodness slide through at level 5, and I have no idea why. This satisfies the level range for generation 2, though, which presents the two at level 40. Still, the practical minimum level for both is 45 from HeartGold and SoulSilver.
__________

Now I need to put together a list of moves per Pokémon that are valid in Gen 2 that aren't valid in Gen 5. For example, there's a TM for Zap Cannon in Gen 2, which you can teach to let's say Espeon, but the Pokémon can never learn that move in later generations, meaning Poké Transporter will reject it.

This is the kind of thought experiment I like, though.
stag019

Red Koopa
Level: 24


Posts: 120/129
EXP: 68810
For next: 9315

Since: 09-11-11


Since last post: 361 days
Last activity: 18 days

Posted on 03-09-15 11:38:16 AM Link | Quote
Originally posted by GuyPerfect
Now I need to put together a list of moves per Pokémon that are valid in Gen 2 that aren't valid in Gen 5. For example, there's a TM for Zap Cannon in Gen 2, which you can teach to let's say Espeon, but the Pokémon can never learn that move in later generations, meaning Poké Transporter will reject it.

This is the kind of thought experiment I like, though.
Very yes. I've always wanted to see someone create this list as well. Good luck to you on that (if I don't end up helping you by using the Pokemon Crystal disassembly). Are there any moves that can be learned (e.g. via TM) in Generation I that can be transferred to Generation II (where these moves can't be learned) which also is not learnable in future generations? If so, I'd have to use the Generation I disassembly as well.

Zap Cannon/Espeon is one of the move/Pokemon combos I frequently used when I told people I wanted to see this list. The other move/Pokemon combo was Dragon Breath (TM24)/Charizard.
GuyPerfect
Catgirl
Level: 64


Posts: 1058/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-09-15 05:41:29 PM Link | Quote
Originally posted by stag019
[...] if I don't end up helping you by using the Pokemon Crystal disassembly [...]

If you're comfortable looking through the code, there is something you could help with. I've got a Crystal save file over here and when I try to calculate stats based on stat exp. for certain things, I wind up being off by one, and I can't figure out why.

For example, here's a level 44 Ariados's stat data figures:
         Base   IV    Exp.


HP 70 15 7511
Attack 90 13 9118
Defense 70 11 8276
Sp. Atk 60 (15) (7984)
Sp. Def 60 (15) (7984)
Speed 40 15 9396
The in-game stats are as follows:

138 max HP

However, putting those numbers through the usual formula results in numbers like these instead:
           A     B     C


HP 137 138 138
Attack 105 106 106
Defense 85 86 86
Sp. Atk 80 81 80
Sp. Def 80 81 80
Speed 63 64 64
A, B and C here are slightly different algorithms that try different combinations of rounding and truncation. For some reason, a few stats keep being off by one. I think it's probably a rounding issue due to how the game calculates the square root, but I haven't looked into it yet. If you think you could nail down the precise algorithm to get the same numbers as the game, I'll make sure it's worth your while.

Originally posted by stag019
Are there any moves that can be learned (e.g. via TM) in Generation I that can be transferred to Generation II (where these moves can't be learned) which also is not learnable in future generations? If so, I'd have to use the Generation I disassembly as well.

I'm putting together a program to find out. It's gonna take me a bit, though, 'cause I have to get all the data formatted in some useful way, then implement an algorithm to properly account for chain breeding. When it's all said and done, I should be able to identify unreachable egg moves, moves that became inaccessible since generation 3, and combinations of egg moves that can't be owned by the same offspring.

Come back on Wednesday. I should have something to show by then.
Xenesis
Actually a Doctor
Level: 90


Posts: 2238/2396
EXP: 7145724
For next: 42885

Since: 07-28-07
From: The Land of Kangaroos and Drop Bears

Since last post: 7 days
Last activity: 2 days

Posted on 03-10-15 08:41:36 AM Link | Quote
Originally posted by GuyPerfect
Raikou, Entei and Suicune can pass through at level 30 for whatever reason, even though the minimum level they can appear as with regards to the Poké Transporter is 40 (HeartGold and SoulSilver).


Level 30 is because of Pokémon Colosseum, which is the level they can be obtained in that.
GuyPerfect
Catgirl
Level: 64


Posts: 1059/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-11-15 08:28:35 PM Link | Quote
I'm still getting the data controller implemented, but it won't be much longer. Once I finish parsing my data files, I'll be able to run an algorithm on the moves for each generation independently to get us the info we've been so curious about.
stag019

Red Koopa
Level: 24


Posts: 121/129
EXP: 68810
For next: 9315

Since: 09-11-11


Since last post: 361 days
Last activity: 18 days

Posted on 03-11-15 08:42:25 PM Link | Quote
Sweet. I'm not very good at knowing what a piece of GBZ80 assembly is doing, but I found the relevant code in Generation I here. I'm assuming it would be the same in Generation II (have you ever traded a Pokemon between I and II and noticed any off by one errors?). The main thing to notice is that the comments say the square root is ceiling'd. Hope that helps you in figuring out the correct formula.
GuyPerfect
Catgirl
Level: 64


Posts: 1060/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-12-15 04:53:44 PM (last edited by GuyPerfect at 03-12-15 04:59:40 PM) Link | Quote
Originally posted by stag019
The main thing to notice is that the comments say the square root is ceiling'd.

That's part of it, for sure. Good find.

According to lines 3792 and 3793, the exact as-implemented formulas are as follows:


non-HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + 5
HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level + 10

There are two key attributes to these formulas that produce values that deviate from the ones I linked on Bulbapedia. The first is, as you pointed out, the square root rounds up. The other one relates to precision loss because integer division effectively always rounds towards zero due to truncation of the fractional portion of the quotient. Since the formuals divide first by 4 then by 100, rather than first by 8 then by 50 as shown on Bulbapedia, the effects of truncation rounding are different in subtle ways.

Running my Ariados through these versions produces the following values:
HP        138

Attack 106
Defense 85
Sp. Atk 80
Sp. Def 80
Speed 63
Look familiar? You bet they do: those are the same ones from my screenshot. You got me the answer to something that was bugging me for quite a while now. Many thanks.

Do you have any of the 3DS games? I've been collecting blue-pentagon shinies (including legendaries) and blue-pentagon hidden abilities for my secondary bank account, and I'd be more than happy to part with something as a show of gratitude. I can also breed you a perfect-6 IV of any nature/ability (in most cases) (blue-pentagon, of course) with an item of your choice, such as an Ability Capsule, Lucky Egg or an event berry. Heck, I'll even train it for you.
GuyPerfect
Catgirl
Level: 64


Posts: 1061/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-12-15 09:47:59 PM (last edited by GuyPerfect at 03-12-15 09:59:02 PM) Link | Quote
The results are in:


This is an aggregate algorithm that merged the gen 1 + 2 movesets and cross-checked them against the merged gen 3 + 4 + 5 moveset for the same Pokémon. If my data source is accurate, this list should be comprehensive for what moves were valid in generation 2, but not in generation 5.

Any TM that is in gen 2 that isn't in later generations obviously is going to drop availability for any Pokémon that doesn't learn those moves on their own. Other than that, there's just a handful of egg moves, and most of the invalid moves come from event distributions.
__________

EDIT:

I ran one more report that excludes both TMs and event moves. What's left is small enough to post:

#001 - Bulbasaur

Razor Wind
#002 - Ivysaur
Razor Wind
#003 - Venusaur
Razor Wind
#004 - Charmander
Leer
#005 - Charmeleon
Leer
#006 - Charizard
Leer
#007 - Squirtle
Confusion
#008 - Wartortle
Confusion
#009 - Blastoise
Confusion
#023 - Ekans
Crunch
#029 - Nidoran♀
Tackle
#030 - Nidorina
Tackle
#031 - Nidoqueen
Tackle
#032 - Nidoran♂
Tackle
#033 - Nidorino
Tackle
#034 - Nidoking
Tackle
#060 - Poliwag
Amnesia
#061 - Poliwhirl
Amnesia
#062 - Poliwrath
Amnesia
#072 - Tentacool
Water Gun
#073 - Tentacruel
Water Gun
#074 - Geodude
Harden
#075 - Graveler
Harden
#076 - Golem
Harden
#086 - Seel
Peck
#087 - Dewgong
Peck
#102 - Exeggcute
Mega Drain
#111 - Rhyhorn
Leer
Pursuit
Thrash
#112 - Rhydon
Leer
Pursuit
Thrash
#124 - Jynx
Thrash
#127 - Pinsir
Slash
#128 - Tauros
Leer
Stomp
#131 - Lapras
Aurora Beam
#133 - Eevee
Focus Energy
#134 - Vaporeon
Focus Energy
Mist
#135 - Jolteon
Focus Energy
#136 - Flareon
Focus Energy
Rage
#138 - Omanyte
Horn Attack
Spike Cannon
#139 - Omastar
Horn Attack
#140 - Kabuto
Hydro Pump
Slash
#141 - Kabutops
Hydro Pump
#143 - Snorlax
Harden
#144 - Articuno
Peck
#146 - Moltres
Leer
Peck
#155 - Cyndaquil
Submission
#156 - Quilava
Submission
#157 - Typhlosion
Submission
#158 - Totodile
Razor Wind
#159 - Croconaw
Razor Wind
#160 - Feraligatr
Razor Wind
#161 - Sentret
Tackle
#162 - Furret
Tackle
#167 - Spinarak
Screech
#168 - Ariados
Screech
#183 - Marill
Foresight
#184 - Azumarill
Foresight
#187 - Hoppip
Growl
Pay Day
#188 - Skiploom
Growl
Pay Day
#189 - Jumpluff
Growl
Pay Day
#196 - Espeon
Focus Energy
#197 - Umbreon
Focus Energy
#198 - Murkrow
Quick Attack
#199 - Slowking
Quick Attack
#209 - Snubbull
Leer
#210 - Granbull
Leer
#216 - Teddiursa
Focus Energy
#217 - Ursaring
Focus Energy
#231 - Phanpy
Water Gun
#232 - Donphan
Water Gun
#245 - Suicune
Water Gun
stag019

Red Koopa
Level: 24


Posts: 122/129
EXP: 68810
For next: 9315

Since: 09-11-11


Since last post: 361 days
Last activity: 18 days

Posted on 03-12-15 10:11:24 PM (last edited by stag019 at 03-12-15 10:58:02 PM) Link | Quote
Originally posted by GuyPerfect
You got me the answer to something that was bugging me for quite a while now. Many thanks. (-:
No problem, man. ;) I actually once had a script that would take any Generation I save file, and, using PHP GD, make an exact copy of the two stats screens for your Pokemon (in the party or in a box). This always had off-by-one errors as well, but I never cared enough to look up why that was. If I still cared about that script, I'd update it.

It also could look through the ROM (not Yellow) at any trainer's party/level information, and show you what it's stats would be too (I could see that being useful to speed running, but I didn't realize that at the time). Also, you would see what moves it would know at that level. The only thing I hadn't implemented was special trainer moves.

But I digress...
Originally posted by GuyPerfect
Do you have any of the 3DS games?
I have X. I even got my starter Pokemon. I haven't played it much past there though, so your offer doesn't really mean much to me...

Ninja:
You should alter the full list to specify which moves are event moves, and which generation the TM moves are TMs in.

Real edit: Also, your list contains Nidoran%E2%99%80 and Nidoran%E2%99%82...

Double edit: Really? The answer was right here! the whole time!
GuyPerfect
Catgirl
Level: 64


Posts: 1062/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-13-15 06:10:05 AM (last edited by GuyPerfect at 03-13-15 06:11:57 AM) Link | Quote
Originally posted by stag019
You should alter the full list to specify which moves are event moves, and which generation the TM moves are TMs in.

I'll do you one better than that. Here's a tab-delimited list of all the moves, listing their types, TM numbers, levels learned and generations. You can paste it into a spreadsheet program and sort it any way you please:


Originally posted by stag019
Also, your list contains Nidoran%E2%99%80 and Nidoran%E2%99%82...

The text files do, yeah. I like to keep data in ASCII, and URL formatting made it easy to automate the downloading of moveset data. I've already made the switch in this most recent text file, though.

Originally posted by stag019
Really? The answer was right here! the whole time!

Somewhat. They're talking about rounding up, but that's only part of the story, and only applies to the square root. The game's idea of square root is something like this (in concept; this isn't an implementation of the game's code):


for (y = 0; y < 256; y++)
if (y * y >= x) return y;

As such, the square root will always round up, but, unless I'm mistaken, the division will always round down.
2Tie

Rumours of my death have been greatly exaggerated.
Level: 57


Posts: 647/906
EXP: 1435644
For next: 50284

Since: 02-22-10
From: The Codrex, Karda Nui

Since last post: 10 days
Last activity: 7 hours

Posted on 03-13-15 11:11:05 AM (last edited by 2Tie at 03-13-15 03:16:35 PM) Link | Quote
sample sheet is borked i think

EDIT: it works
stag019

Red Koopa
Level: 24


Posts: 123/129
EXP: 68810
For next: 9315

Since: 09-11-11


Since last post: 361 days
Last activity: 18 days

Posted on 03-13-15 02:50:31 PM Link | Quote
Originally posted by GuyPerfect
Somewhat. They're talking about rounding up, but that's only part of the story, and only applies to the square root. The game's idea of square root is something like this (in concept; this isn't an implementation of the game's code)...
Well I had already assumed all division would be floor()d. But if you scroll up, look for Ztobor's comment on 03:39, 26 May 2010 (UTC). He mentions 4 and 100 instead of 8 and 50.
stag019

Red Koopa
Level: 24


Posts: 124/129
EXP: 68810
For next: 9315

Since: 09-11-11


Since last post: 361 days
Last activity: 18 days

Posted on 03-13-15 08:37:21 PM Link | Quote
Oh and another thing, I think cross-generational evolutions movesets aren't shown properly.

Example: Slowpoke can learn Pay Day via TM in Generation I, can be traded to Generation II, and then evolved into Slowking. Slowking doesn't have Pay Day on your list, but I'm pretty sure it couldn't learn it in any future generation.

I also have no idea how this would affect egg moves for any Pokemon that is related to a Pokemon from Generations I or II (I was never much of a breeder).
GuyPerfect
Catgirl
Level: 64


Posts: 1064/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-17-15 06:35:56 PM Link | Quote
Sorry it took a while to get back to this. I've modified my algorithm to merge the gen 1 movesets into the gen 2 movesets prior to checking for availability of moves by prior evolution. When that still didn't work, I double-checked my data and found out I'd entered a few numbers incorrectly regarding which prior evolutions belong to each Pokémon, and corrected them all accordingly. The resulting list is 67 lines larger, and Slowking knowing Pay Day is one of them:

GuyPerfect
Catgirl
Level: 64


Posts: 1067/1093
EXP: 2202926
For next: 11171

Since: 07-23-07


Since last post: 72 days
Last activity: 30 days

Posted on 03-29-15 08:50:49 AM Link | Quote
Let's pretend for a moment that we can manufacture devices to interface with the Game Boy Advance. Here's what I envision:

There would be this device, which inserts into the Game Boy Advance and curls around with another cartridge slot on the other end. It would look very similar to the Game Boy iteration of the Game Shark, but of course not so tall that you would be able to insert it into an 8-bit Game Boy:



This would allow the gizmo to be used in any GBA or DS unit with a GBA cartridge slot.

On the device board would be a rewritable flash chip for storing PRG-ROM and a USB interface for communicating between the device and a computer. Hardware features include the following:
  • Allow GBA in 32-bit mode to access 8-bit cartridge memory
  • (USB) Write new firmware to the flash chip
  • (USB) Backup and restore game saves for 8-bit cartridges
  • (USB) Dump ROM images for 8-bit cartridges? Could use some feedback on this one.
Specialized firmware would be present for the device, in a sense being a GBA ROM but specifically programmed to handle the device's hardware features. I have in mind two software applications that would come pre-installed:
  • The Pokémon migration utility that this thread is all about
  • A Game Boy emulator using the 8-bit cartridge, along with a cheat engine
The Game Boy emulator would simply be what the GBA should have been all along: software processing of 8-bit games. It wouldn't really add much functionality to original GBA or SP systems, though it would have the cheat engine and proper support for Super Game Boy features (like how Pauline actually has a PCM clip of her yelling "Help!" that no emulator has ever emulated). Aside from that, Micro and DS units removed the 8-bit hardware, so at least you could use those systems for legacy games. As a bonus, communications would work with 32-bit mode GBA, meaning if anyone can dig up some of those wireless adapters you'd be able to trade Pokémon that way... or some other link game of your choice.

As for the Pokémigrator, the main program would be on the device itself, running on the system that has the 8-bit cartridge plugged into it. Via GBA multiboot, it would send a program to a second GBA unit with a 32-bit cartridge in it, holding down Start and Select at power-on to force the system into multiboot mode. The multiboot program is just a server of sorts, sitting there idly reading data from the 32-bit Pokémon game and writing transferred Pokémon to it when the user decides to save. It would also offset some of the processing overhead by calculating personality values for the Gen 2 Pokémon to save time when the user actually decides to migrate them.

Until such a time that we have 8-bit access hardware handy for testing, I'll be able to put together the rest of the migration app by simply writing a Gen 2 save file to the same flash cartridge that I upload the software to (and I do have a few of those handy). Everything can be tested this way, but the agonizing part of it is that it can't be used to actually transfer Pokémon from a physical Gen 2 game.
CruisnEma
Member
Level: 19


Posts: 29/79
EXP: 31889
For next: 3888

Since: 02-01-12


Since last post: 37 days
Last activity: 1 day

Posted on 03-30-15 05:59:22 PM Link | Quote
There is a way to create a GBA rom for this tool that (if into a GBA flash card) can be linked with both GEN II and GEN III games? A GBA rom that can stores up to 100 Pokémon and that can trade with GEN III games but can transfer pokémon form GEN II games, is possible?
Pages: 1 2 3 4 5Next newer thread | Next older thread
Jul - Game Research/Hacking/Modding - Migrating Pokémon from Generation 2 to 3 New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

29 database queries, 13 query cache hits.
Query execution time: 0.131853 seconds
Script execution time: 0.021338 seconds
Total render time: 0.153191 seconds