Since there was no such guide yet, I decided to make one. This covers all of the ROMs out until now What you need: - The distro ROM (illegal to ask, Google is your friend) - The pcd file(s) of the WonderCard(s) you want to inject - An Hex Editor (I use UltraEdit on Windows) - dslazy General steps: 1) Open the ROM with dslazy and unpack it. 2) In the dslazy folder you will now have a NDS_UNPACK folder 3) Do the necessary modifications with the Hex Editor to arm9.bin and the files in /data (find the specific ROM instructions below) - The "GGID" is a 4 bytes value that determines the region of the carts that can communicate with the distro ROM. - The date limit (based on your DS's internal date) determines when the distribution is available - The WonderCard contains a "mystery gift" for the receiving cartridge. You can edit it with Pokemon Mystery Gift Editor or Pokesav. 4) Repack the ROM and enjoy! Deoxys/Dragonite American distro ROMs: These are the easiest to "hack". - WonderCard file: data\data.bin. - The GGID is in data\ggid.dat. - The date limit is in data\limit.bin. The first 4 bytes represent the starting date (YY00MMDD) in hex format (you can just replace them with 00000000), the remaining 4 are the ending date (replace them with FFFFFFFF). - Unused files: data\decchi.bin, data\debug.lz Shaymin European distro ROM: This one actually contains 5 WonderCards and 5 GGIDs, one for each language. A different GGID and WonderCard will be used depending on your DS's language. - WonderCard files: data\en.bin, it.bin, fr.bin, sp.bin, ge.bin - arm9.bin contains both the date limit (in hex format) and the 5 GGIDs, here are the offsets: Code: 0xCAC - Year (2009) 0xCB4 - Starting month (March) 0xCC0 - Starting day (24) 0xCCC - Ending month (June) 0xCD8 - Ending day (25) 0xD94 - English GGID 0xD70 - French GGID 0xD7C - German GGID 0xD84 - Italian GGID 0xD8C - Spanish GGID So, it's impossible to achieve an "unlimited" distribution, you can make it last a year maximum. - Unused files: data\decchi.bin, data\debug.lz, data\data.bin, data\limit.bin, data\ggid.dat Pichu+Jirachi American dual distro ROM: The ROM contains two different WonderCards (it chooses between them depending on the DS date), and obviously only handles one GGID. - WonderCard files: data\p1.bin, p2.bin - arm9.bin contains both the date limit (in hex format) and the GGID, here are the offsets: Code: 0xC18 - (English) GGID 1st WonderCard (p1.bin): 0x14E4 - Year (2010) 0x14EC - Starting month (January) 0x14F4 - Starting day (23) 0x1500 - Ending month (February) 0x1508 - Ending day (15) 2nd WonderCard (p2.bin): 0x152C - Year (2010) 0x1534 - Starting month (February) 0x150C - Starting day (20) 0x1548 - Ending month (March) 0x1550 - Ending day (14) It's impossible to achieve an "unlimited" distribution for this one too, you can make it last two years (one for each WonderCard) maximum. - Unused files: data\decchi.bin, data\debug.lz, data\data.bin, data\limit.bin Arceus European distro ROM: 5 WonderCards and 5 GGIDs in this ROM too, one for each language. A different GGID and WonderCard will be used depending on your DS's language. - WonderCard files: data\en.bin, it.bin, fr.bin, sp.bin, ge.bin - arm9.bin contains just the 5 GGIDs, here are the offsets: Code: 0xD1C - French GGID 0xD28 - German GGID 0xD30 - Italian GGID 0xD38 - Spanish GGID 0xD40 - English GGID - The date limit is in data\limit.bin (again? ). The first 4 bytes represent the starting date (YY00MMDD) in hex format (you can just replace them with 00000000), the remaining 4 are the ending date (replace them with FFFFFFFF). - Unused files: data\decchi.bin, data\debug.lz, data\growtbl.narc, data\personal.narc, data\waza_tbl.narc, data\wotbl.narc, data\ggid.dat Editing the WonderCard files: - Open both the WonderCard ROM file that needs to be edited and the .pcd file. - Copy the 80 bytes 0x104 - 0x153 in the .pcd to 0x0 - 0x4F in the ROM file: Warning: Spoilers inside! to - Copy the WHOLE .pcd to the remaining part of the ROM file (from 0x50 onwards): Warning: Spoilers inside! - Finally, fill the last 8 bytes of the ROM file with zeros: Warning: Spoilers inside! GGID list: Here are the GGIDs for all the client cartridges. Code: English: 18 03 40 00 French: CD 00 80 00 German: CE 00 80 00 Italian: CF 00 80 00 Spanish: D0 00 80 00 Japanese: 45 03 00 00 Korean: 18 00 C0 00 Note: how to convert from decimal to hex (for dates). If you didn't know, you can do this easily with the Windows/OSX calculator. Just set the "scientific" (programmer in OSX) view, write something in decimal and click on "Hex", and it will output the date in hex Huge thanks to: - Chamillionaire for finding half of the GGIDs and for writing the original guide for the first distro ROM; - Kyohack for his independent research on the Arceus ROM, and for his automatic distro ROM editor.