Data Save (rksys.dat) Map - Printable Version +- Mario Kart Wii Gecko Codes, Cheats, & Hacks (https://mariokartwii.com) +-- Forum: Hacks/Modding (https://mariokartwii.com/forumdisplay.php?fid=14) +--- Forum: Resources and References (https://mariokartwii.com/forumdisplay.php?fid=18) +--- Thread: Data Save (rksys.dat) Map (/showthread.php?tid=1513) |
Data Save (rksys.dat) Map - Vega - 04-07-2020 Data Save (rksys.dat) Mapping EDIT: 1/22/2021 Looks like all the data was copy pasted (by Atlas) to the Wiki Tockdom http://wiki.tockdom.com/wiki/Rksys.dat Here is a very incomplete crude mapping of the Data Save. Credits: Atlas Cross1955 Guru NinARM Vega Volderbeek File Size + Location Size = 0x2BC000 Wii File System Location = /title/00010004/524d43xx/data/rksys.dat xx values: 4a = Japan / RMCJ 4b = Korea / RMCK 45 = USA / RMCE 50 = PAL / RMCP Loading Pointer of Data Save into a Register (for ASM Coders/Devs) Using r3...Obviously this can only be done after the game has loaded the contents of the Data Save into memory NTSC-U lis r3, 0x809C lwz r3, -0x7078 (r3) lwz r3, 0x0014 (r3) PAL lis r3, 0x809C lwz r3, -0x28B8 (r3) lwz r3, 0x0014 (r3) NTSC-J lis r3, 0x809C lwz r3, -0x3858 (r3) lwz r3, 0x0014 (r3) NTSC-K lis r3, 0x809B lwz r3, -0x4278 (r3) lwz r3, 0x0014 (r3) Header 0x0000 (double word) = RKSD0006 Magic ASCII; RKSD stands for Revolution Kart System Data????? (please check) #Specific Mapping for License 1 (Top Left) For other Licenses, simply increment the address by the following values... 0x8CC0 for License 2 (Top Right) 0x11980 for License 3 (Bottom Left) 0x1A640 for License 4 (Bottom Right) RKPD Magic and basic Mii info 0x0008 (word) = RKPD Magic ASCII; RKPD stands for Revolution Kart Player Data????? (please check) 0x001C (5 words) = Mii Name 0x0030 (word) = Mii's Avatar ID 0x0034 (word) = Mii's Client ID DWC User Data 0x0048 (word) = ??? 0x004C (word) = ??? 0x0054 (word) = ??? 0x0058 (word) = ??? 0x005C (word = ??? 0x0060 (word) = Seems to just be a copy of 0x0054 0x0064 (word) = WiFi Profile ID (pid), just the lower 32 bits of your FC (in Hex) 0x006C (word) = ASCII for RMCJ, used in the MD5 Checksum Algo thingy to get your FC from your Profile ID 0x0084 (word) = ??? Various Unlocking and Stat Stuff Fyi: It appears no bits get flipped for completing the following cups.. 50cc Special Cup 50cc Shell Cup 100cc Mushroom Cup 100cc Special Cup 100cc Shell Cup 100cc Lightning Cup 150cc Mushroom Cup 150cc Special Cup 150cc Shell Cup 150cc Lightning Cup Mirror Mode Mushroom Cup Mirror Mode Special Cup Mirror Mode Shell Cup Mirror Mode Lightning Cup 0x0038 (byte) = Cup completions (bit flipped high if completed) Bit Breakdown: Bit 0 = 50cc Mushroom Cup Bit 1 = 50cc Lightning Cup Bit 2 = Mirror Mode Leaf Cup Bit 3 = 150cc Leaf Cup Bit 4 = 100cc Leaf Cup Bit 5 = 50cc Leaf Cup Bit 6 = Mirror Mode Banana Cup Bit 7 = 150cc Banana Cup 0x0039 (byte) = Cup completions Bit Breakdown: Bit 0 = 100cc Banana Cup Bit 1 = 50cc Banana Cup Bit 2 = MIrror Mode Star Cup Bit 3 = 150cc Star Cup Bit 4 = 100cc Star Cup Bit 5 = 50cc Star Cup Bit 6 = Mirror Mode Flower Cup Bit 7 = 150cc Flower Cup 0x003A (byte) = Cup completions and character unlocks Bit Breakdown: Bit 0 = 100cc Flower Cup Bit 1 = 50cc Flower Cup Bit 2 = Mii Outfit B Bit 3 = Mii Outfit A Bit 4 = Rosalina Bit 5 = Funky Kong Bit 6 = King Boo Bit 7 = Dry Bowser 0x003B (byte) = Character unlocks Bit Breakdown: Bit 0 = Birdo Bit 1 = Daisy Bit 2 = Bowser Jr. Bit 3 = Diddy Kong Bit 4 = Baby Luigi Bit 5 = Baby Daisy Bit 6 = Toadette Bit 7 = Dry Bones 0x003C (byte) = When GP CC's get completed (flipped high) Bit Breakdown: Bit 0 = Unused Bit 1 = Unused Bit 2 = Unused Bit 3 = Unused Bit 4 = Unused Bit 5 = Unused Bit 6 = 50cc is fully completed (this is for when the game prompts you that you can now race with both karts and bikes in 50cc Grand Prix, but when you go back to 50cc GP, you still are unable to use bikes, lmao looks like nin devs messed this one up) Bit 7 = All CC's fully completed. 0x003D (byte) = Mirror Mode CC + Vehicle Unlocks Bit Breakdown: Bit 0 = Unused Bit 1 = Unused Bit 2 = Unused Bit 3 = Mirror Mode Bit 4 = Phantom Bit 5 = Spear Bit 6 = Shooting Star Bit 7 = Dolphin Dasher 0x003E (byte) = Vehicle Unlocks Bit Breakdown: Bit 0 = Sneakster Bit 1 = Zip Zip Bit 2 = Jet Bubble Bit 3 = Magickruiser Bit 4 = Quacker Bit 5 = Honeycoupe Bit 6 = Jetsetter Bit 7 = Piranha Prowler 0x003F (byte) = Vehicle Unlocks Bit Breakdown: Bit 0 = Sprinter Bit 1 = Daytripper Bit 2 = Super Blooper Bit 3 = Blue Falcon Bit 4 = Tiny Titan Bit 5 = Cheep Charger Bit 6 = Unused Bit 7 = Unused NOTE: To unlock literally everything, set a double word value of 0xFFFFFFFF031FFFFC at 0x0038. 0x0088 (word) = ??? Value is 0x50081000 on new Data Save 0x008C (word) = ??? Value is 0x50081000 on new Data Save 0x0092 (halfword) = ??? Value is 0x00 on new Data Save, but it appears to increase over time when you finish first 0x0096 (halfword) = ??? Value is 0x00 on new Data Save, but it appears to increase over time when you finish second The following are various license stats NOTE: All word values have a max of 0x0001869F (99999 in game) 0x00A0 (word) = Nintendo WFC Races Wins 0x00A4 (word) = Nintendo WFC Races Losses 0x00A8 (word) = Nintendo WFC Battle Wins 0x00AC (word) = Nintendo WFC Battle Losses 0x00B0 (word) Ghost Races Wins 0x00B4 (word) = Ghost Races Losses 0x00B8 (halfword) = VR 0x00BA (halfword) = BR 0x00BC (word) = Total Race Count 0x00C0 (word) = Total Battle Count 0x00C4 (word) = Unused? Doesn't effect any of the license stats. 0x00C8 (word) = Total Race+Battle Count Done w/ Wii Wheel. This number divided by (0x00BC+0x00C0) must be at 99.9% or greater to have 100% Wii Wheel. Simply set this value to the max (0x0001869F) to always have 100% Wii Wheel forever. 0x00CC (float) = Total Distance Traveled (rounded down after decimal conversion) 0x00D0 (word) = Challenge Ghosts Sent 0x00D4 (word) = Challenge Ghosts Received 0x00D8 (word) = Item Hits Delivered 0x00DC (word) = Item Hits Received 0x00E0 (word) = Trick Count 0x00E4 (word) = First-Place Appearances 0x00E8 (float) = Total Distance While in First Place for Races 0x00EC (float) = Total Distance Traveled For Races Only The game takes the first float value and divides it with the following float. Then that float is converted to a decimal and rounded down which is what you see on the License stats screen for '% in First Place'. 0x00F0 (halfword) = Tournaments Played 0x00F2 (halfword) = ??? Value is 0x8000 on new Data Save The following used to determine Favorite Character 0x00F4 (halfword) = Total Races Done w/ Mario 0x00F6 = Baby Peach 0x00F8 = Waluigi 0x00FA = Bowser 0x00FC = Baby Daisy 0x00FE = Dry Bones 0x0100 = Baby Mario 0x0102 = Luigi 0x0104 = Toad 0x0106 = Donkey Kong 0x0108 = Yoshi 0x010A = Wario 0x010C = Baby Luigi 0x010E = Toadette 0x0110 = Koopa 0x0112 = Daisy 0x0114 = Peach 0x0116 = Birdo 0x0118 = Diddy Kong 0x011A = King Boo 0x011C = Bowser Jr. 0x011E = Dry Bowser 0x0120 = Funky Kong 0x0122 = Rosalina 0x0124 = Mii The following used to determine Favorite Vehicle 0x0126 (halfword) = Total Races Done w/ Small Standard Kart 0x0128 = Medium Standard Kart 0x012A = Large Standard Kart 0x012C = Booster Seat 0x012E = Classic Dragster 0x0130 = Offroader 0x0132 = Mini Beast 0x0134 = Wild Wing 0x0136 = Flame Flyer 0x0138 = Cheep Charger 0x013A = Super Blooper 0x013C = Piranha Prowler 0x013E = Tiny Titan 0x0140 = Daytripper 0x0142 = Jetsetter 0x0144 = Blue Falcon 0x0146 = Sprinter 0x0148 = Honeycoupe 0x014A = Small Standard Bike 0x014C = Medium Standard Bike 0x014E = Large Standard Bike 0x0150 = Bullet Bike 0x0152 = Mach Bike 0x0154 = Flame Runner 0x0156 = Bit Bike 0x0158 = Sugarscoot 0x015A = Wario Bike 0x015C = Quacker 0x015E = Zip Zip 0x0160 = Shooting Star 0x0162 = Magikruiser 0x0164 = Sneakster 0x0166 = Spear 0x0168 = Jet Bubble 0x016A = Dolphin Dasher 0x016C = Phantom The following used to determine Favorite Course 0x016E (halfword) = Total Races Done on Mario Circuit 0x0170 = Moo Moo Meadows 0x0172 = Mushroom Gorge 0x0174 = Grumble Volcano 0x0176 = Toads Factory 0x0178 = Coconut Mall 0x017A = DK´s Snowboard Cross 0x017C = Wario´s Gold Mine 0x017E = Luigi Circuit 0x0180 = Daisy Circuit 0x0182 = Moonview Highway 0x0184 = Maple Treeway 0x0186 = Bowser´s Castle 0x0188 = Rainbow Road 0x018A = Dry Dry Ruins 0x018C = Koopa Cape 0x018E = GCN Peach Beach 0x0190 = GCN Mario Circuit 0x0192 = GCN Waluigi Stadium 0x0194 = GCN DK Mountain 0x0196 = DS Yoshi Falls 0x0198 = DS Desert Hills 0x019A = DS Peach Gardens 0x019C = DS Delphino Square 0x019E = SNES Mario Circuit 3 0x01A0 = SNES Ghost Valley 2 0x01A2 = N64 Mario Raceway 0x01A4 = N64 Sherbet Land 0x01A6 = N64 Bowser´s Castle 0x01A8 = N64 DK´s Jungle Parkway 0x01AA = GBA Bowser Castle 3 0x01AC = GBA Shy Guy Beach The following is used to determine Favorite Stage 0x01AE (halfword) = Total Battles Done on Defino Pier 0x01B0 = Block Plaza 0x01B2 = Chain Chomp Roulette 0x01B4 = Funky Stadium 0x01B6 = Thwomp Desert 0x01B8 = GCN Cookie Land 0x01BA = DS Twilight House 0x01BC = SNES Battle Course 4 0x01BE = GBA Battle Course 3 0x01C0 = N64 Skyscraper The following is some trophy ascii path crap, a shit ton of binary flips (im guessing to check if you get blued, fall off track, etc), plus star rank binary bit flip crap... 0x01C8 thru 0x021A = 50cc Mushroom Cup 0x0228 thru 0x027A = 50cc Flower Cup 0x0288 thru 0x02DA = 50cc Star Cup 0x02E8 thru 0x033A = 50cc Special Cup 0x0348 thru 0x039A = 50cc Shell Cup 0x03A8 thru 0x03FA = 50cc Banana Cup 0x0408 thru 0x045A = 50cc Leaf Cup 0x0468 thru 0x04BA = 50cc Lightning Cup 0x04C8 thru 0x051A = 100cc Mushroom Cup 0x0528 thru 0x057A = 100cc Flower Cup 0x0588 thru 0x05DA = 100cc Star Cup 0x05E8 thru 0x063A = 100cc Special Cup 0x0648 thru 0x069A = 100cc Shell Cup 0x06A8 thru 0x06FA = 100cc Banana Cup 0x0708 thru 0x075A = 100cc Leaf Cup 0x0768 thru 0x07BA = 100cc Lightning Cup 0x07C8 thru 0x081A = 150cc Mushroom Cup 0x0828 thru 0x087A = 150cc Flower Cup 0x0888 thru 0x08DA = 150cc Star Cup 0x08E8 thru 0x093A = 150cc Special Cup 0x0948 thru 0x099A = 150cc Shell Cup 0x09A8 thru 0x09FA = 150cc Banana Cup 0x0A08 thru 0x0A5A = 150cc Leaf Cup 0x0A68 thru 0x0ABA= 150cc Lightning Cup 0x0AC8 thru 0x0B1A = Mirror Mode Mushroom Cup 0x0B28 thru 0x0B7A = Mirror Mode Flower Cup 0x0B88 thru 0x0BDA = Mirror Mode Star Cup 0x0BE8 thru 0x0C3A = Mirror Mode Special Cup 0x0C48 thru 0x0C9A = Mirror Mode Shell Cup 0x0CA8 thru 0x0CFA = Mirror Mode Banana Cup 0x0D08 thru 0x0D5A = Mirror Mode Leaf Cup 0x0D68 thru 0x0DBA = Mirror Mode Lightning Cup Star Bit Flip Location is -1 from end address of Cup (ex: 50cc Mushroom Cup = 0x0219) 0x0219 (Byte) Bit 0 = ??? (gets flipped high when you get gold trophy) Bit 1 = ??? Bit 2 = ??? (gets flipped high when you get gold trophy) Bit 3 = ??? (gets flipped high when you get gold trophy) Bit 4 = F rank Bit 5 = B Rank Bit 6 = 1 Star Rank Bit 7 = 2 Star Rank Note: Flip Bits 6 and 7 to low (0) for 3 Star Rank Note: Flip Bits 6 and 7 to high (1) for A Rank 0x021A (byte) Bit 0 = Flipped high for Golden Trophy; bit must be flipped high to have a star rank Bit 1 = ??? Sometimes this is flipped high, sometimes not Bit 2 = ??? Bit 3 = ??? Bit 4 = ??? Bit 5 = ??? Bit 6 = ??? Bit 7 = ??? Region ID Stuff 0x26B0A (byte) = Region ID Region ID Values: 0x00 = Japan 0x10 = Americas 0x20 = Europe 0x30 = Aus/NZ 0x40 = Taiwan 0x50 = Korea 0x60 = China Checksum Stuff 0x27FFC (word) = CRC-32 Checksum of first 0x27FFC bytes TT Stuff Fyi each Ghost file has its own individual CRC-16 Halfword checksum. Hence why this section of the rksys.dat is not part of the CRC-32 checksumming. #Specific Mapping for License 1 0x28000 LC Ghost 0x2A800 MMM Ghost 0x2D000 MG Ghost 0x2F800 TF Ghost 0x32000 MC Ghost 0x34800 CM Ghost 0x37000 DKSC Ghost 0x39800 WGM Ghost 0x3C000 DC Ghost 0x3E800 KC Ghost 0x41000 MT Ghost 0x43800 GV Ghost 0x46000 DDR Ghost 0x48800 MH Ghost 0x4B000 BC Ghost 0x4D800 RR Ghost 0x50000 rPB Ghost 0x52800 rYF Ghost 0x55000 rGV2 Ghost 0x57800 rMR Ghost 0x5A000 rSL Ghost 0x5C800 rSGB Ghost 0x5F000 rDS Ghost 0x61800 rWS Ghost 0x64000 rDH Ghost 0x66800 rBC3 Ghost 0x69000 rDKJP Ghost 0x6B800 rMC Ghost 0x6E000 rMC3 Ghost 0x70800 rPG Ghost 0x73000 rDKM Ghost 0x75800 rBC Ghost Add 0xA5000 to values for License 2 Add 0x14A000 to values for License 3 Add 0x1EF000 to values for License 4 RE: Data Save (rksys.dat) Map - Vega - 01-22-2021 Looks like all the data was copy pasted (by Atlas) to the Wiki Tockdom http://wiki.tockdom.com/wiki/Rksys.dat |