Editing Hey! Pikmin save file

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
  
 
== Format ==
 
== Format ==
The save data is split into several blocks that start with 4-byte magic words. The blocks are ordered in the same order they are presented in this article.
+
The save data is split into several blocks that start with 4-byte magic words.
  
 
=== SAVE ===
 
=== SAVE ===
Line 51: Line 51:
  
 
=== PBUF ===
 
=== PBUF ===
Which log entries the player has unlocked, and which they have read.
 
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
! colspan="2" | Offset || rowspan="2" | Length || rowspan="2" | Field || rowspan="2" | Notes
 
! colspan="2" | Offset || rowspan="2" | Length || rowspan="2" | Field || rowspan="2" | Notes
Line 59: Line 58:
 
| <code>0x002C</code> || <code>0x0000</code> || 4 bytes || Block magic word || Always <code>PBUF</code>.
 
| <code>0x002C</code> || <code>0x0000</code> || 4 bytes || Block magic word || Always <code>PBUF</code>.
 
|-
 
|-
| <code>0x0030</code> || <code>0x0004</code> || 4 bytes || Unknown || Messing with it can make the save file be recognized as empty in the title screen.
 
|-
 
| <code>0x0034</code> || <code>0x0008</code> || 36 bytes || Unlocked entries bitfield || The first 11 bits correspond to the Pikmin Logs category (blue pellet, red pellet, rock pellet, winged pellet, yellow pellet, Onion, Red Pikmin, Blue Pikmin, Yellow Pikmin, Rock Pikmin, Winged Pikmin). After that come the enemies, normal treasures, and amiibo treasures, but their order is all over the place.
 
|-
 
| <code>0x0058</code> || <code>0x002C</code> || 4 bytes || Read "Pikmin Logs" entries bitfield ||
 
|-
 
| <code>0x005C</code> || <code>0x0030</code> || 36 bytes || Read entries from the other categories bitfield ||
 
 
|}
 
|}
  
Line 140: Line 132:
 
! File || Block
 
! File || Block
 
|-
 
|-
| <code>0x0BF0</code> || <code>0x0000</code> || 4 bytes || Block magic word || Always <code>RINF</code>.
+
| <code>0x0BF0</code> || <code>0x0000</code> || 4 bytes || Block magic word || Always <code>0xRINF</code>.
 
|-
 
|-
 
|}
 
|}
Line 194: Line 186:
 
| <code>0x0CE0</code> || <code>0x0000</code> || 4 bytes || Block magic word || Always <code>DATE</code>.
 
| <code>0x0CE0</code> || <code>0x0000</code> || 4 bytes || Block magic word || Always <code>DATE</code>.
 
|-
 
|-
| <code>0x0CE4</code> || <code>0x0004</code> || 4 bytes || {{unknown|Unknown}} ||  
+
| <code>0x0CE4</code> || <code>0x0004</code> || 8 bytes || {{unknown|Unknown}} ||  
|-
 
| <code>0x0CE8</code> || <code>0x0008</code> || 4 bytes || Year || Human format. For instance, 2019 has the actual value "2019".
 
 
|-
 
|-
 
| <code>0x0CEC</code> || <code>0x000C</code> || 1 byte || Month || 1 to 12.
 
| <code>0x0CEC</code> || <code>0x000C</code> || 1 byte || Month || 1 to 12.
Line 242: Line 232:
  
 
== Checksum ==
 
== Checksum ==
The checksum seems to be a CRC32 of the 0xD87 bytes that follow after the checksum (i.e. just one byte short of the entire remaining data), with CRC32 as implemented by e.g. zlib.
+
The checksum seems to be a CRC32 of the 0xd87 bytes that follow after the checksum (i.e. just one byte short of the entire remaining data), with crc32 as implemented by e.g. zlib.
 
 
The following Python code can recalculate the checksum if the data after the checksum is modified:
 
  
 +
The following python code can recalculate the checksum if the data after the checksum is modified:
 
<pre>
 
<pre>
 
import struct
 
import struct

Please note that all contributions to Pikmin Technical Knowledge Base are considered to be released under the Creative Commons Attribution-ShareAlike (see Pikmin Technical Knowledge Base:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Templates used on this page: