Hacking Oddities with Pokémon Wi-Fi and Gateway


Flash Cart Aficionado
Mar 26, 2008
United States
So I'm not really sure what is to blame here, let me explain my process.

After hearing about Gateway 3.0, I went ahead and enabled Internet on my fairly new 2DS (came with 7.2U and I intentionally kept it on that with wireless off). Since you can't downgrade a 2DS (nor do I really want to run that risk), I did the most basic things - booted into Gateway mode, which allowed me to boot up my ROM of Pokémon X and redeem some Mystery Gift codes.

I've had a stash of Gengar codes ever since October but due to unforseen events, I haven't had a USA-region 3DS since that time, so I couldn't redeem them in my Gateway version's save - only on my fully updated 3DS. I keep a folder of event saves, since I don't trust Datel with Wonder Cards, and we still can't properly inject them to saves yet.

To make the process easier, I have a Mystery Gift-ready .3dz file premade which contains my cartridge's header along with the save file I created (essentially just to the first Pokémon center so you can talk to the lady to get your gift)
This has worked for everything else so far, even in other regions. I used the European 3DS I bought from Devin to redeem some Europe-only codes and it worked fine, as I would expect since the game itself *is* region free.

So I redeemed a Diancie, that worked fine. Backed up my save.

Restored the original .3dz file. Redeemed a Gengar. That worked fine. Backed up the save and overwrote the .3dz again.

Went to use a second code, only to get "You have already received this gift." I double-checked, and it's indeed my ORIGINAL save file with no Wonder Cards at all.

So I thought maybe because Gateway was running under 7.x instead of using the MSET exploit, that might be the cause. I was able to get a bunch of Vivillons before using the same method (though those were free over Wi-Fi, not one-time-use codes)

So last night I bought a 3DS XL from someone on Craigslist. It still had 6.2 on it. After making a NAND backup, I used the downgrade process to go to 4.2U. I then updated it using my Sky3DS and Animal Crossing to 4.5U. (No real reason why, just thought it might clean up some of the odd stuff Gateway does during the downgrade by replacing system files with a fresh copy)

I then went back to Gateway 2.7, since I know for a fact that version is capable of doing what I want it to do... created an emuNAND and updated that to 9.4. Loaded up X and downloaded the title update. This is a completely different 3DS. Still got the message "You have already received this gift."

OK, so I thought maybe Nintendo's servers were getting "smart" and blocked my game's header after I used the first code. So I decrypted the ROM and created a .cia version using the tools from a while back. Installed the .cia along with SaveDataFiler.

Now, just to be safe, the first thing I did was:
Take the 3DZ format with my header, export the save using SaveDataFiler. I then deleted the file from my MicroSD and put on an untouched Scene .3ds and used SaveDataFiler to restore the save. The result is the same save, but with no cartridge header associated.

To be safe, I deleted the exported save in SaveDataFiler and repeated the process. Except this time going from the .3ds to the SD card version among importing.

I booted up the SD version, indeed it had my save file... and I got "You have already received this gift." again. What gives? I know that eShop versions use the 3DS' identifier for online stuff instead of a cartridge header, so it SHOULD have shown up as a different game to the server. Especially since I went from one with NO header.

The only possible thing I can think of is that since downgrading isn't perfect, there's still some messed up aspect of the system that's causing this to not work. Anybody have any ideas?

*** some additional stuff

The reason I want more than one code is that the Gengar can be either male or female, it's chosen at random... but once you've received it from the server, it's locked. The first one I got was male, meaning it will always be male using that save. I want to get a female as well, hence why I held onto several other codes.

You might wonder how I was able to use Gateway 2.7 after upgrading my hardware to work with 3.0.1. I actually have two Gateway cards (going to give one to a friend soon...), and I simply didn't update the other one.

The only things *I* am able to think of are:
  • Nintendo somehow became smart and ties Mystery Gift redemption to your actual save data (trainer ID/secret ID combo? I dunno what else it would look at.)
  • I recall when you first connect in X/Y, it says "online data was created successfully!" Even though the save will break when used without a header (and if you force it to work by going through SaveDataFiler as I did, you'll get the message about being unable to connect...), it could possibly be looking at that data as well.
Either way, this would mean something has changed on THEIR end and that I just got unlucky with the timing of Gateway 3.0 and downgrading. I know for a fact that I was able to use that same .3dz to get multiple copies of past events just fine, so I can't imagine that it's related to their servers, but every scenario I can think of would indicate something has changed on their end. Unless, of course, it's just Gateway breaking things.
General chit-chat
Help Users
  • No one is chatting at the moment.
    AKNES tempBOT: AKNES has joined the room.