ROM Hack Pokemon Transfer Utilities

Supercool330

Well-Known Member
OP
Member
Joined
Sep 28, 2008
Messages
752
Trophies
1
XP
1,129
Country
United States
With the release of Pokemon HOME, I've been thinking about how to make the best experience for transferring Pokemon form all of the games with a single device using as close to official means as possible. The 3DS is capable of playing every Gen 1-7 Pokemon game (with the use of GBARunner2 for Gen 3).

The transfers that are straight forward:
  • Gen 1 (VC) -> Bank: Poke Transporter
  • Gen 2 (VC) -> Bank: Poke Transporter
  • Gen 6 -> Bank: Poke Transporter
  • Gen 7 -> Bank: Native
  • Bank -> HOME: Native
The transfers that are straight forward using retail cartridges:
  • Gen 5 -> Bank: Poke Transporter
This leaves the following transfers that can't be done now:
  • Gen 3 -> Gen 4: Pal Park (3DS doesn't have a slot 2)
  • Gen 4 -> Gen 5: Transfer Lab (Requires 2 devices and doesn't support ROMs)
  • Gen 5 (ROM) -> Bank: Poke Transporter (doesn't support ROMs)
For Gen 3 -> Gen 4, the best possibility is Slot2 support in nds-bootstrap / TwilightMenu. It looks like this is actually a planned feature (see https://github.com/ahezard/nds-bootstrap/issues/19 and https://github.com/DS-Homebrew/TWiLightMenu/issues/794), at which point this transfer should be easy.

For Gen 5 (Rom) -> Bank, it feels like the best option would be some sort of slot-1 redirect while using Poke Transporter. This could probably be done as a Luma3DS firmware module, or NTR CFW Plugin, but I'm not totally sure (and nothing like this exists AFAIK).

Gen 4 -> Gen 5 would be more complicated. Interestingly, all the code for this transfer is located in the Gen 5 games which use a DS Download play app to extract the data from the Gen 4 save. A (heavy) ROM hack could possibly run the download play code in-process and redirect the slot-1 access, but this would require a ton of reverse engineering. Even with 2 devices, using Transfer Lab would be tricky, as you would need some sort of slot-1 redirect for the Download Play app.

Has anything like this ever been attempted, or is there anything obvious I'm overlooking?




Edit: It looks like Slot2 support in nds-bootstrap may not be that far off. There were actually a couple commits that started adding this functionality (https://github.com/ahezard/nds-bootstrap/commit/dfeff685cc8391e52d1840d8d7d6fc629b9ae08a and https://github.com/ahezard/nds-bootstrap/commit/e77b6e4f962493daa49778d41f91389e02851d69).

I've also been thinking more about the other transfers. For Gen 5 (Rom) -> Bank, an NTR CFW Plugin or patch to the binary probably isn't the best approach. It seems like a patch to the FS sysmodule that redirects that card commands would be best, but this would be complicated. Patching the existing FS module would be tricky, but neither Luma or Atmosphere has an open-source FS module. Creating a new FS module from scratch would have other potential benefits though (e.g. exfat support).

For the Gen 4 -> Gen 5, I've sort of given up on doing that with only one device. It would be doable, but prohibitively complicated, and require massive changes to the ROMs. A better more general approach may be to add slot-1 redirect to nds-bootstrap, then load download play with slot-1 redirected to the ROM.




Edit 2: Turns out binary patch to the Poke Transporter ROM was the simplest way to do Gen 5 -> Bank. A patch was created based on zaksabeast's Dream Radar redirect patch, and then implemented as a PKSM script that dynamically generates a patch now available in the latest PKSM release.

Now we just need Slot2 support in nds-bootstrap, and some sort of solution for Gen 4 -> Gen 5
 
Last edited by Supercool330,

Supercool330

Well-Known Member
OP
Member
Joined
Sep 28, 2008
Messages
752
Trophies
1
XP
1,129
Country
United States
hi! love this post very useful. So any progress on gen 3 to 4? and gen 4 to 5? not using pkhex obviously.
Best bet for both gen 3 to 4 and 4 to 5 is nds-bootstrap. Gen 3 to 4 support is actually pretty close; Platinum slot-2 emulation is already checked-in (link), and will likely be available in release 100 (whenever that happens). Gen 4 to 5 is definitely further out and will require 2 DS (or 3DS) consoles (though likely only one will need to be running nds-bootstrap). There is an issue requesting this feature (link) and I discussed it a bit with RocketRobz on discord, but so far there are no concrete plans.
 
Last edited by Supercool330,
  • Like
Reactions: nicotina117

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • RedColoredStars @ RedColoredStars:
    There is zero instacart delivery to here. No door dash. No Uber. Notta. Its a small farming community
    +1
  • Sicklyboy @ Sicklyboy:
    eagerly awaiting 4x 8TB HDDs to get delivered today
  • RedColoredStars @ RedColoredStars:
    So I drive the 30 miles there, spend $100-$150 on groceries, and drive back home. Still saved $$$ after gas over shopping locally.
    +1
  • K3Nv2 @ K3Nv2:
    You'd think you could make deals with local farmers
  • AncientBoi @ AncientBoi:
    :unsure::unsure::unsure: I could make a killing there doing instcart there :D @RedColoredStars
  • RedColoredStars @ RedColoredStars:
    It makes the trip even more worth it if I'm out of my medication and need to stop by the medical dispensary. I try to line the two up to avoid extra trips.
    +1
  • RedColoredStars @ RedColoredStars:
    @AncientBoi, Except the town is pretty MAGA infested. People still flying TRUMP 2016 flags all over. They didnt get the memo the year changed since then. lol.
    +1
  • RedColoredStars @ RedColoredStars:
    They passed a city ordinance last month. No smoking cannabis in public. Not even eating gummies. $300 fine and misdemeanor charge if caught. People can walk down the street smoking cigs and tossing the butts all over, but God forbit someone take a couple puffs of their medication.
    +1
  • RedColoredStars @ RedColoredStars:
    First off, it's recreationally legal here. Secondly, I have a prescription from my doctor and approved by the state. But still a fucking criminal.
    +1
  • RedColoredStars @ RedColoredStars:
    Like at bars. Cant sit outside even in the smoking section and take a few puffs. Yet I have to breath the cig smoke from 20 people chain smoking all night in every direction around me.
  • K3Nv2 @ K3Nv2:
    Honestly I feel like Trump is going to crush Biden just because of the trial
  • RedColoredStars @ RedColoredStars:
    They cite
    public health and safety concerns" LMAO!!! Yet they do nothing about the poison drinking water quality.
  • K3Nv2 @ K3Nv2:
    The look at how they treated me card is powerful within dumb voters
  • RedColoredStars @ RedColoredStars:
    A Trump win is certainly a possibility. If he's reelected, 4 more years then no one has to worry about him being president ever again. I survived last time, I'll survive it if there's a next time. Don't know how anyone could vote for the guy, but I'm also not anyone else but me.
    +1
  • K3Nv2 @ K3Nv2:
    Honestly things were cheaper with Trump but that's tounge and cheek could be exactly the same outcome if he won reelection
  • RedColoredStars @ RedColoredStars:
    All of the fake "Christians" vote for him even though he's broken like 8 of the 10 commandments... that we know of. Maybe all 10. LOL
    +1
  • K3Nv2 @ K3Nv2:
    A president is just a public figure within America
  • K3Nv2 @ K3Nv2:
    South park put it will there's always a bite between a turd sandwhich or a giant douce
    +1
  • RedColoredStars @ RedColoredStars:
    I like when he says stuff like "They are preventing me from talking!!!" Wait. What? You mean the person that is literally talking right now.. is being prevented from talking? LOL! Gag order also does not apply to taking the stand. He's free to say whatever he'd like. lolol
    +1
  • NinStar @ NinStar:
    holy fuck this discsussion sucks, where are my sisters
  • K3Nv2 @ K3Nv2:
    Well if it sucks stop blowing turd sandwhich
    +1
  • Xdqwerty @ Xdqwerty:
    @NinStar, convince your parents to make a sister for you
  • NinStar @ NinStar:
    parents? what parents?
  • K3Nv2 @ K3Nv2:
    People who screwed each other to make you
    +1
    K3Nv2 @ K3Nv2: People who screwed each other to make you +1