comparison 06/t6rp.xhtml @ 13:2925b0e246c6 default tip

Fix a lot of things, and add a TODO.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Fri, 17 Feb 2012 12:54:08 +0100
parents 9f0e37b7eeab
children
comparison
equal deleted inserted replaced
12:79dfd9765a67 13:2925b0e246c6
7 </head> 7 </head>
8 <body> 8 <body>
9 <h1>T6RP format</h1> 9 <h1>T6RP format</h1>
10 <p>The T6RP format is the replay format used by EoSD.</p> 10 <p>The T6RP format is the replay format used by EoSD.</p>
11 11
12 <p>It is composed of a header and an "encrypted" data section, which is itself composed of a header, per-stage structures and lists of keystates.</p> 12 <p>It is composed of a header and an “encrypted” data section, which is itself composed of a header, per-stage structures and lists of keystates.</p>
13 13
14 14
15 <h2>Header</h2> 15 <h2>Header</h2>
16 <pre> 16 <pre>
17 typedef struct { 17 typedef struct {
18 char magic[4]; // T6RP 18 char magic[4]; // T6RP
19 uint16_t unknown; //TODO: always 0x0102 19 uint16_t version; // 0x0102 for 1.02h
20 // Seems to be a switch, if 0x0102 do something, else (whatever the value is), do something else
21 uint8_t player; // 0 = ReimuA, 1 = ReimuB, 2 = MarisaA, 3 = MarisaB 20 uint8_t player; // 0 = ReimuA, 1 = ReimuB, 2 = MarisaA, 3 = MarisaB
22 uint8_t rank; // 0 = Easy, 3 = Lunatic, 4 = Extra 21 uint8_t rank; // 0 = Easy, 3 = Lunatic, 4 = Extra
23 uint32_t checksum; // (0x3f000318 + key + sum(c for c in decrypted_data)) % (2 ** 32) 22 uint32_t checksum; // (0x3f000318 + key + sum(c for c in decrypted_data)) % (2 ** 32)
24 uint16_t unknown2; //TODO: seems to be ignored by the game. 23 uint16_t unknown2; //TODO: seems to be ignored by the game.
25 uint8_t key; 24 uint8_t key;
67 uint16_t unknown1; //TODO: seems to be ignored by the game. 66 uint16_t unknown1; //TODO: seems to be ignored by the game.
68 uint8_t power; 67 uint8_t power;
69 int8_t lives; 68 int8_t lives;
70 int8_t bombs; 69 int8_t bombs;
71 uint8_t difficulty; //TODO: WARNING: This has a huge effect on the game! 70 uint8_t difficulty; //TODO: WARNING: This has a huge effect on the game!
72 // It is also called rank (but we use the term "difficulty" because "rank" is the official name for Easy/Normal/Hard/Lunatic/Extra) 71 // It is also called rank (but we use the term “difficulty” because “rank” is the official name for Easy/Normal/Hard/Lunatic/Extra)
73 // See: http://en.touhouwiki.net/wiki/Embodiment_of_Scarlet_Devil/Gameplay#Rank 72 // See: http://en.touhouwiki.net/wiki/Embodiment_of_Scarlet_Devil/Gameplay#Rank
74 uint8_t unknown3[3]; //TODO: seems to be ignored by the game. Padding? 73 uint32_t unknown3; //TODO: seems to be ignored by the game. Padding?
75 thrpy6_keystate_t keystates[]; 74 thrpy6_keystate_t keystates[];
76 } thrpy6_stage_t; 75 } thrpy6_stage_t;
77 </pre> 76 </pre>
78 77
79 <h2>Keystates</h2> 78 <h2>Keystates</h2>