Hi, DsPet -- I'm a little new here, but I was doing some digging on Animal Crossing and your posts kept showing up in Google a lot.
Sorry to resurrect a thread, but this might be the best place to ask ![Smile](images/smilies/happy.gif)
Do you have any information to share on the NPC format stored in the ISO?
In general, it seems to look something like...
Code:
struct npc_record {
uint16_t index; // Ordered NPC Index No.
char header[32]; // 32 Bytes of ????
char name[8][18]; // Name in UTF16 in 8 regions
char phrase[10][22]; // Phrase in UTF16 in 10 languages
uint8_t race; // Race ENUM, 0 = cat, etc.
uint8_t month; // Birth month, Jan = 0x01, etc.
uint8_t day; // Birth day.
char footer[5]; // five unknown bytes
uint8_t personality : 4; // Personality enum
uint8_t unk_nibble : 4; // Unknown nibble: always 0x5, 0x6, 0x9 or 0xA.
char unknown; // Always 0x00 or 0x80.
} __attribute__ ((packed));
I was wondering if you had any information on the unknown (to me) portions of the struct --
In particular, the 32 bytes in the header, the 5 bytes after the birthday, the byte at the end, and the nibble after the personality.
Observations:
footer[0] is a number 0x00 - 0x27, excluding 0x15.
footer[1] and footer[2] are always 0x00 through 0x09.
footer[3] is 0x01 through 0x0e
footer[4] is 0x00 through 0x0b.
unk_nibble is always 0x5, 0x6, 0x9 or 0xA.
unknown byte is always 0x00 or 0x80. Is this a binary flag on the high bit for something?
I don't have any particular end goal, I just decided on a whim to start browsing through AC:CF files to see what I could learn in case any decrypted dump of AC:NL ever existed ...
(Maybe this would be good practice. I've never reverse engineered anything before.)