Jump to content

Leaderboard

  1. evandixon

    evandixon

    Administrator


    • Points

      3

    • Posts

      5910


  2. Kaphotics

    Kaphotics

    Helpful Member


    • Points

      3

    • Posts

      6842


  3. BlackShark

    BlackShark

    Contributor


    • Points

      2

    • Posts

      1569


  4. theSLAYER

    theSLAYER

    Administrator


    • Points

      1

    • Posts

      22363


Popular Content

Showing content with the highest reputation on 01/16/19 in all areas

  1. done: Update blank sav3 behavior: https://github.com/kwsch/PKHeX/commit/53b2ca93b8fb4685d51c0392a0ce70a7bf8c0516 Merge game selection alert & prompt to 1 popup https://github.com/kwsch/PKHeX/commit/9fd6d86b1dfbbcaa9c7cbe2c1ff623457c079eb4
    2 points
  2. First of all many thanks for all the new features and fixes that were added over the past months! So, I tried the recently added blank save selection. So far it works good, but selecting any gen 3 save file will bring up the FRLG version selection window. When you select either FR or LG PKHeX starts throwing multiple exception. Starting with the following And while I'm already talking about it, just a minor suggestion: Currently there are 2 windows popping up when opening FRLG saves. First an alert telling you that such a save was detected and next the actual selection window. I'm ok with how it currently is, but can't they be merged into a single window by putting the text from the alert window above the dropdown of the selection window? Thanks for reading
    2 points
  3. Yes. Use checkpoint (guide) or JKSM (guide) to dump your save on your 3DS. Keep a safe backup of the unmodified save somewhere on your computer. Then open a PKHeX window, open the save from your SD card, then drag the pk7 file from your desktop/relevant folder into the Boxes of the save. Export the save from PKHeX, with the name main. Replace the one in your SD card folder, then import back using the same app you used to dump it.
    1 point
  4. 6th and 7th Generation Wonder Card Map Mystery Gift Data WCxFULL Offset WCx Offset Gen 6 Gen 7 0x00-0x03 - Bit 0 - Y Bit 1 - X Bit 2 - AS Bit 3 - OR Bit 0 - S Bit 1 - M Bit 2 - US Bit 3 - UM 0x04-0x01FD - Redemption Text 0x01FE - 0x01 - Green Background 0x01 - Halo Animation 0x01FF - Allowed Languages 0x00 - Any Language Otherwise Language ID 0x200 - Once Per Week Bit 0 - Multiple WCs 0x201 - Unused? SubID 0x0202-0x0203 - Checksum Checksum is a CCITT-16. (CRC16-CCITT) It is computed using all the 0x310 bytes. The checksum location have to be filled with zeroes. (dates are included in calculation) 0x0204 - Unused? Set Count 0x205 - Always 0x46 Rarity Weight 0x206-0x207 - Always 0x4646 0x208-0x209 0x00-0x01 Card ID 0x20A-0x253 0x02-0x4B Card Title 0x254-0x257 0x4C-0x4F Card Reception Date YYYYMMDD Card Redemption Date YYMMDD 0x258 0x50 Card Location 0x259 0x51 Card Type 0x0 - Pokemon 0x1 - Item Card Type 0x0 - Pokemon 0x1 - Item 0x3 - BP 0x25A 0x52 Statuses Bit 0 - Only Once Bit 1 - Used Statuses Bit 0 - Only Once Bit 1 - Used Bit 2 - Once per Day 0x25B 0x53 Animation Background Color 0x0 - Blue 0x1 - Green (0x53 offset only) Card Background Color 0x0 - Blue 0x1- Purple 0x2 - Gold 0x25C-0x26F 0x54-0x67 Unknown/Unused 0x26E - Always 0xFF Pokémon Cards WCxFULL Offset WCx Offset Gen 6 Gen 7 0x270-0x271 0x68-0x69 Trainer ID 0x272-0x273 0x6A-0x6B Secret ID 0x274 0x6C Game of Origin 0x0 - Receiver's Game 0x274-0x277 0x6D-0x70 Unused 0x278-0x27B 0x71-0x73 Encryption Constant 0x0 - Randomly Generated 0x27C-0x27D 0x74-0x75 Ribbons See Ribbon Data Below 0x27E-0x27F 0x76-0x77 PokéBall Caught In 0x280-0x281 0x78-0x79 Held Item 0x282-0x283 0x7A-0x7B Move #1 0x284-0x285 0x7C-0x7D Move #2 0x286-0x287 0x7E-0x7F Move #3 0x288-0x289 0x80-0x81 Move #4 0x28A-0x28B 0x82-0x83 PokéDex Number 0x28C 0x84 Form Index 0x28D 0x85 Language 0x0 - Receiver's Language Otherwise Language ID 0x28E-0x2A7 0x86-0x9F Pokémon Nickname No terminator if no nickname 0x2A8 0xA0 Nature 0xFF - Random 0x2A9 0xA1 Pokémon Gender 0x0 - Male 0x1 - Female 0x2 - Genderless 0x3 - Random 0x2AA 0xA2 Pokémon Ability 0x0 - Ability 1 0x1 - Ability 2 0x2 - Hidden Ability 0x3 - Ability Random (No HA) 0x4 - Ability Random (All) 0x2AB 0xA3 Personality ID Generation Method 0x0 - Use specified PID 0x1 - Random can be shiny PID 0x2 - Random always shiny PID 0x3 - Random never shiny PID 0x2AC-0x2AD 0xA4-0xA5 Egg Met Location 0x2AE-0x2AF 0xA6-0xA7 Met Location 0x2B0 0xA8 Met Level 0x2B1-0x2B6 0xA9-0xAE Contest Stats Last byte is Sheen 0x2B7-0x2BC 0xAF-0xB4 IVs 0xFFFFFFFF - Random 0xFFFFFFFE - 3 31s 0xFFFFFFFD - 2 31s 0x2BD 0xB5 Trainer Gender 0x0 - Male 0x1 - Female 0x3 - Recipient's Gender 0x2BE-0x2D7 0xB6-0xCF Trainer Name All 00's - Recipient's Name 0x2D8 0xD0 Current Level 0x2D9 0xD1 Egg Flag 0x1 - Is Egg 0x2DA-0x2DB 0xD2-0xD3 Unused Bundled Item ID 0x2DC-0x2DF 0xD4-0xD7 Personality ID Almost Always 0xEE6B2802 Sometimes 0x00000000 0x2E0-0x2E1 0xD8-0xD9 Relearn Move 1 0x2E2-0x2E3 0xDA-0xDB Relearn Move 2 0x2E4-0x2E5 0xDC-0xDD Relearn Move 3 0x2E6-0x2E7 0xDE-0xDF Relearn Move 4 0x2E8-0x2E9 0xE0-0xE1 Trainer Memory Intensity Unused 0x2EA-0x2EB 0xE2-0xE3 Trainer Memory Line Unused 0x2EC-0x2ED 0xE4-0xE5 Trainer Memory TextVar 0xE5-0xEA: EVs 0x2EF-0x2F0 0xE6-0xE7 Trainer Memory Feeling 0x2F1-0x2F3 0xE8-0xEA Unused 0x2F4-0x30F 0xEB-0x107 Unused Unused Item Cards WCxFULL Offset WCx Offset Gen 6 Gen 7 0x270-0x271 0x68-0x69 Item ID Item 1 ID 0x272-0x273 0x6A-0x6B Unused Item 1 Quantity 0x274-0x275 0x6C-0x6D Unused Item 2 ID 0x276-0x277 0x6E-0x6F Unused Item 2 Quantity 0x278-0x279 0x70-0x71 Item Quantity Item 3 ID 0x27A-0x27B 0x72-0x73 Unused Item 3 Quantity 0x27C-0x27D 0x74-0x75 Unused Item 4 ID 0x27E-0x27F 0x76-0x77 Unused Item 4 Quantity 0x280-0x281 0x78-0x79 Unused Item 5 ID 0x282-0x283 0x7A-0x7B Unused Item 5 Quantity 0x284-0x285 0x7C-0x7D Unused Item 6 ID 0x286-0x287 0x7E-0x7F Unused Item 6 Quantity Ribbon Set Flag Value 0x74 0x75 0x01 Battle Champ Ribbon World Champ Ribbon 0x02 Regional Champ Ribbon Birthday Ribbon 0x04 National Champ Ribbon Special Ribbon 0x08 Country Ribbon Souvenir Ribbon 0x10 National Ribbon Wishing Ribbon 0x20 Earth Ribbon Classic Ribbon 0x40 World Ribbon Premier Ribbon 0x80 Event Ribbon Empty
    1 point
  5. Communication with the GTS is done over regular HTTP with http://gamestats2.gs.nintendowifi.net/. The same protocol is used for all five Gen IV games. HTTP headers The games don't seem to care about these at all. The GTS sends back a bunch of boilerplate response headers, but the game happily accepts a response with only a Content-Length. Protocol All requests to the server are GET requests of the form page.asp?pid=pid followed by page.asp?pid=pid&hash=hash&data=data. The hash variable in the latter, is a hash of the string returned by the former, as described bellow. pid The pid is an unsigned 32-bit integer that appears to uniquely identify a game cartridge. Although this has not been confirmed entirely: Your PID is generated when you get your friendcode for the first time and is set to: friendcode & 0x7fffffff When you change the device and are forced to change your friendcode with it, your PID doesn't change but you get a new friendcode. Your new Friend Code appears to be set by appending a random byte (likely sent from Nintendo's servers) to the end of your PID. For example, nicholas's Soul Silver PID is 258303618 (0x8266650f)and his Friend Code is 4297 5503 3218 (0xf8266650f64) taking endianness into account. Challenge/response Before each "real" request, the game sends a request of the form page.asp?pid=pid and the server responds with a 32-byte challenge token. The game computes sha1("sAdeqWo3voLeC5r16DYv" + token) and uses that as the hash value which it sends to the server. The data parameter is encrypted, as explained further down. For 5th gen GTS, the hash is instead, generated by sha1("HZEdGCzcGGLvguqUEKQN" + token) That is, each request looks like the following: Game requests GET /pokemondpds/page.asp?pid=pid Server responds with token Game requests GET /pokemondpds/page.asp?pid=pid&hash=sha1(...)&data=data Server responds with payload Data The data sent to the server consists of a checksum, your pid, and a payload. The 5th gen GTS also adds the length of the payload, after the pid. In generation 5, the server must append to all its responses a footer generated by sha1("HZEdGCzcGGLvguqUEKQN"+urlsafe_base64(response)+"HZEdGCzcGGLvguqUEKQN"). Checksum The checksum is a 32-bit integer, computed by simply taking the sum of every byte of the pid and payload. It is the first four bytes of the data, xor-ed with 0x4a3b2c1d (0x2db842b2 for 5th gen) and packed in network byte order (big-endian). Payload The pid and payload are encrypted with a stream cipher in for the 4th gen protocol. This encryption algorithm, like others used in the game, uses a Linear Congruential Generator (not a very strong choice). The multiplicative constant is 0x45, and the additive constant is 0x1111. It appears that the game uses a signed dword to store the seed, which doesn't really matter; it shouldn't affect anything. (It means that the modulus is effectively 0x80000000.) GRNG[n+1] = (GRNG[n] * 0x45 + 0x1111) & 0x7fffffff The GRNG is seeded with the checksum, like so: GRNG[0] = checksum | (checksum << 16) The keystream is composed of the lower byte of the high word of successive GRNG values. keystream[n] = (GRNG[n] >> 16) & 0xff Xor the keystream with the plaintext to get the ciphertext. Xor the keystream with the ciphertext to get the plaintext. The entire data string is then encoded with urlsafe-base64. Conversation The first request the game makes is to /pokemondpds/worldexchange/info.asp. The server responds with 0x0001. Platinum, Heart Gold, and Soul Silver will then make a request to /pokemondpds/common/setProfile.asp. The server responds with eight NULs (0x00000000 0x00000000). After the above step(s) or performing any of the tasks below other than searching, the game makes a request to /pokemondpds/worldexchange/result.asp. If the game has had a Pokémon sent to it via a trade, the server responds with the entire encrypted Pokémon save struct. Otherwise, if there is a Pokémon deposited in the GTS, it responds with 0x0004; if not, it responds with 0x0005. Receiving a traded Pokémon If the game receives a Pokémon from a successful trade as a response from result.asp, it next requests /pokemondpds/worldexchange/delete.asp. The server responds with 0x0001. A note on sendpkm.py After doing the above, some Platinum, Heart Gold, and Soul Silver games will report a communication error and dump the player back to the title screen. The Pokémon is still successfully received. At least one person with HG/SS has received a Pokémon from a fake server without getting the error, and Diamond/Pearl have never been reported to have the problem. Depositing a Pokémon Pokémon are offered on the GTS by requesting /pokemondpds/worldexchange/post.asp. If the Pokémon is rejected by the server, the response is 0x000c; otherwise, if the deposit is successful, 0x0001. Note that in generation 5, some tests are performed on a pokémon before it is deposited. If the pokémon is rejected at this stage (a problem was detected or one of the OT name or nickname is inappropriate) it is NOT sent to the GTS and error 13267 is displayed. The game then saves. After the save is complete, it issues a request to /pokemondpds/worldexchange/post_finish.asp. In generation 5, the sent data is 444 bytes long as follows: Offset Contents 0x00-0x03 Checksum (sum of all bytes xor 0x2db842b2) 0x04-0x07 pid 0x08-0x09 Data length (minus the 12 bytes of header) 0x0A-0x0B Unknown / Zero 0x0C-0xE7 Encrypted party pokemon data structure 0xE8-0xF7 Unknown / Zero 0xF8-0xF9 Nat. Dex ID 0xFA Gender 0xFB Level 0xFC-0xFD Requested Nat. Dex ID 0xFE Requested Gender 0xFF Requested Min Level 0x100 Requested Max Level 0x101 Unknown / Always 0 0x102 Trainer gender 0x103 Trainer nature 0x104-0x107 Always 0? 0x108-0x117 Timestamp placeholder, always 0 (set by server) 0x118-0x119 Trainer ID 0x11A-0x11B Secret ID 0x11C-0x12B OT Name (Unicode, must end with 0xFFFF) 0x12C Country 0x12D City 0x12E Trainer class/sprite 0x12F Is Exchanged Flag (Always 0) 0x130 Game version 0x131 Region/language 0x132 Unknown (0 to 8) 0x133 Unlocked floors in Unity Tower 0x134-0x137 Unused 0x138-0x1B7 Signature of pokémon struct 0x1B8-0x1BB Terminator (0x80000000) In generation 4, the sent data is 296 bytes long and as follows: Offset Contents 0x00-0x04 PID 0x04-0xEF Encrypted party pokemon data structure 0xF0-0xF1 Nat. Dex ID 0xF2 Gender 0xF3 Level 0xF4-Fx05 Requested Nat. Dex ID 0xF6 Requested Gender 0xF7 Requested Min Level 0xF8 Requested Max Level 0x09 Always 0 0x0A Trainer's Gender 0xF9-0x109 Zero / Timestamps and PID placeholders 0x110-0x11F Trainer's Name 0x120-0x121 Trainer's OT ID 0x122 Country 0x123 City 0x124 Trainer's Sprite 0x125 Is Exchanged Flag 0x126 Game Version 0x127 Language Retrieving the deposited Pokémon Checking on the deposited Pokémon is apparently done by /pokemondpds/worldexchange/get.asp. The response appears to be a Pokémon save struct. Retrieving the deposited Pokémon is done by /pokemondpds/worldexchange/return.asp. The response is merely 0x0001; the actual Pokémon data is taken from the get.asp request. Searching Searching is done through /pokemondpds/worldexchange/search.asp. The sent data is either 15 or 16 bytes long. The server responds with a full 292-byte Pokémon struct for each result. If there are n results, the response will be 292 * n bytes long. If there are no results, the server will give an empty response (0 bytes). Pokémon struct The Pokémon data for the Generation IV GTS is 292 bytes—56 bytes larger than a party Pokémon struct. The extra 56 bytes are GTS-specific data, such as the player's name & country, and what Pokémon they are requesting. In Generation IV, the trainer name is encoded with the Pokémon character table, while in Generation V, the trainer name is Unicode encoded. They are as follows: Generation IV Encrypted Bytes Offset Contents 0x00-0x01 Nat. Dex ID 0x02 Gender 0x03 Level 0x04-0x05 Requested Nat. Dex ID 0x06 Requested Gender 0x07 Requested Min Level 0x08 Requested Max Level 0x09 Unknown - always 0? 0x0A Trainer's Gender 0x0B Unknown - always 0? 0x0C-0x13 Timestamp - deposited time 0x14-0x1B Timestamp - time traded? 0x1C-0x1F PID 0x20-0x2F Trainer's Name 0x30-0x31 Trainer's OT ID 0x32 Country 0x33 City 0x34 Trainer's Sprite 0x35 Is Exchanged Flag 0x36 Game Version 0x37 Language The data for the Generation V GTS is 296 bytes (16 bytes of padding in between the encrypted party data and the GTS data) and adds the trainer's secret ID, an additional two unknown bytes at the end, and shifts the position of the trainer name to after the trainer and secret IDs. Generation V Encrypted Bytes Offset Contents 0x00-0x01 Nat. Dex ID 0x02 Gender 0x03 Level 0x04-0x05 Requested Nat. Dex ID 0x06 Requested Gender 0x07 Requested Min Level 0x08 Requested Max Level 0x09 Unknown - always 0? 0x0A Trainer's Gender 0x0B Unknown - always 0? 0x0C-0x13 Timestamp - deposited time 0x14-0x1B Timestamp - time traded? 0x1C-0x1F PID 0x20-0x21 Trainer's OT ID 0x22-0x23 Trainer's Secret ID 0x24-0x33 Trainer's Name 0x34 Country 0x35 City 0x36 Trainer's Sprite 0x37 Is Exchanged Flag 0x38 Game Version 0x39 Language 0x3A-0x3B Unknown Pokémon Gender Value Type 0x01 Male 0x02 Female 0x03 Either/neither Trainer Gender Value Type 0x00 Male 0x01 Female Timestamp Format The timestamps are set by the server, and are always PST (UTC-8). Offset Contents 0x00-0x01 Year 0x02 Month 0x03 Day 0x04 Hour 0x05 Minute 0x06 Second 0x07 Unknown - always 0? Trainer Class (for generation 5) Value Class 0x00 Youngster 0x01 Ace Trainer 0x02 Pokémon Ranger 0x03 Pokémon Breeder 0x04 Researcher 0x05 Hiker 0x06 Skinhead 0x07 Day-Care student 0x08 Lass 0x09 Ace Trainer (female) 0x0a Pokémon Ranger (female) 0x0b Pokémon Breeder (female) 0x0c Researcher (female) 0x0d Parasol Lady 0x0e Nurse 0x0f Day-Care student (female) Game Version Value Version 0x0A Diamond 0x0B Pearl 0x0C Platinum 0x07 HeartGold 0x08 SoulSilver 0x15 Black 0x14 White
    1 point
  6. 85h 85h Values 85h is an offset in the data structure of 4th Generation Pokémon, and shows how a Pokémon was encountered. Currently 85h has no relevance to gameplay, but in certain cases it can be used to determine the Legality of a Pokémon. 85h List 00 - Egg/Pal Park/Event 02 - Tall Grass/Honey Tree 04 - Dialga/Palkia 05 - Cave/Hall of Origin 07 - Caught in the Water 09 - Caught in Buildings 0A - Great Marsh/Safari Zone 0C- Starter Pokemon/Fossils (D/P) 18 - Starter Pokemon/Bebe's Eevee (Platinum) 17- Giratina (Origin)(Platinum) ??- Giratina (Another)(Platinum) ??- Fossils (Platinum)- 18? ??- Honey Tree (Platinum)- Pretty sure its 02 but not confirmed. ??- Dialga/Palkia (Platinum)
    1 point
  7. 5th Generation Wonder Card Map Gift Data Offset Description 0x00-0x01 Trainer ID Number, Item Number, Power Type 0x02-0x03 Secret ID Number 0x04 Hometown 00 - Game Received In 01 - Hoenn(Sapphire) Values follow in standard order through 21 0x05-0x07 Unused 0x08-0x0B PID Unset = 00000000 0x0C Primary Ribbons Ribbon data available below. 0x0D Secondary Ribbons Ribbon data available below. 0x0E PokéBall 0x0F Unused 0x10-0x11 Held Item 0x12-0x13 Move ID #1 0x14-0x15 Move ID #2 0x16-0x17 Move ID #3 0x18-0x19 Move ID #4 0x1A-0x1B PokéDex Number 0x1C Unused 0x1D Language 00 for Game Received In 0x1E-0x33 Pokémon Nickname (0x32-0x33 FF FF terminated) If no nickname, all FF. 0x34 Nature FF - Unset 0x35 Pokémon Gender 00 - Male 01 - Female 02 - Random 0x36 Pokémon Ability 00 - Ability 1 01 - Ability 2 02 - Dream World Ability 03 - RND(Abil1, Abil2) 04 - RND(Abil1, Abil2, AbilDW) 0x37 Shiny Toggle 00 - Not Shiny 01 - Allow Shiny 02 - Generate Shiny PID Shows Shiny Pokemon on Card 0x38-0x39 Egg Met Location 0x3A-0x3B Met Location of Pokémon 0x3C Level - unused(?) 0x3D-0x42 Contest Stats Last byte is Sheen 0x43-0x48 IVs FFs for unset IVs 0x49 Unused 0x4A-0x59 OT Name 0x5A OT Gender 00 - Male 01 - Female 03 - Recipient's Gender 0x5B Level(random if set to 0) 0x5C Egg Flag 00 - Is Not Egg 01 - Is Egg 0x5D-0x5F Unused Card Data Offset Description 0x60-0xA9 Card Title 0xAA-0xAB Unknown 0xAC-0xAF Date Card Received 0xB0-0xB1 Card ID 0xB2 "Card From" Location 0xB3 Card Type 01 - Pokémon [Blue] 02 - (Key) Item [Pink] 03 - Power [Yellow] 0xB4 Gift Status: Used / Unused 00 - Repeatable gift 01 - Unused 03 - Used 0xB5-0xCB Unused Ribbon Sets These are the values for each ribbon byte: Flag Value 0x0C 0x0D 0x01 Country Ribbon Special Ribbon 0x02 National Ribbon Memorial Ribbon 0x04 Earth Ribbon Wish Ribbon 0x08 World Ribbon Battle Champ Ribbon 0x10 Classic Ribbon Regional Champ Ribbon 0x20 Premiere Ribbon National Champ Ribbon 0x40 Event Ribbon World Champ Ribbon 0x80 Birthday Ribbon No Ribbon(Empty) First Appearance in the Memory The Wonder Cards do appear in the active memory while the game is running, however there are certain things that are set in addition to the card data in addition to it being in two locations. The cards appear in the region of 0x0226BE30-0x0226C87F in Black, and 0x0226BE50-0x0226C89F for White. Card data is unencrypted when viewing, but encrypted at all other times. Each card is separated by 220 bytes of data. Memory Offsets of each Card when viewing, including the leading 4 bytes: Card # Offset (Black) Offset (White) 1 0x0226BE30 0x0226BE50 2 0x0226BF0C 0x0226BF2C 3 0x0226BFE8 0x0226C008 4 0x0226C0C8 0x0226C0E8 5 0x0226C1A4 0x0226C1C4 6 0x0226C280 0x0226C2A0 7 0x0226C35C 0x0226C37C 8 0x0226C438 0x0226C458 9 0x0226C514 0x0226C534 10 0x0226C5F0 0x0226C610 11 0x0226C6CC 0x0226C6EC 12 0x0226C7A8 0x0226C7C8 The card is preceded by 4 bytes, in which the first is 1 to indicate that there is a card present in that slot, being 0 when a card is not present. Meaning Data Card Present 0x00000001 No Card Present 0x00000000 The card data is then present, byte for byte for the entire 204 bytes. After the card data, there are 4 bytes (pointer?). Card # Trash Value (Black) Trash Value (White) 1 0x0226CAA4 0x0226CAC4 2 0x0226CD88 0x0226CDA8 3 0x0226D06C 0x0226D08C 4 0x0226D350 0x0226D370 5 0x0226D388 0x0226D3A8 6 0x0226D3C0 0x0226D3E0 7 0x0226D3F8 0x0226D418 8 0x0226D430 0x0226D450 9 0x0226D468 0x0226D488 10 0x0226D4A0 0x0226D4C0 11 0x0226D4D8 0x0226D4F8 12 0x02270248 0x02270268 There are then 8 unused bytes (all 00), leading up to the next card. Second Appearance in the Memory The second appearance of the unencrypted card data while viewing is varied based on the number of cards currently on the save. Since it has not been tested whether or not active/inactive gifts may change the locations, trash all used cards before using any memory codes. Cards and the surrounding data follow the first appearance's format. Kaphotics' Test Card 1 Memory Location of N Cards [Stop at (N) cards]: Black: 02277F20(1 card) +58C(2c) +590(3) +58C(4) +2E8(5) +2E4(6) +2E8(7) +2E4(8) [9-12 still testing] White: 02277F40(1 card) +58C(2c) +590(3) +58C(4) +2E8(5) +2E4(6) +2E8(7) +2E4(8) [9-12 still testing] Card 2 = Card 1 Memory + 420 Card n = Card 1 Memory + 5020 + (n-3)*4C34 || Number of cards: 13>n>2 For other DS's (with different MAC addresses) the 1st location is the same but the rest follow different additive constants between cards. The second appearances will appear in the block range of 0x02270000-0x022AFFFF.
    1 point
×
×
  • Create New...