1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
pub const LEVEL_HEADER_OFFSET: usize = 0x10;
pub const LEVEL_AREA_OFFSET: usize = 0x210;
pub const LEVEL_AREA_SUB_OFFSET: usize = 0x2E0F0;

pub const YEAR_OFFSET: usize = 0x10;
pub const MONTH_OFFSET: usize = 0x12;
pub const DAY_OFFSET: usize = 0x13;
pub const HOUR_OFFSET: usize = 0x14;
pub const MINUTE_OFFSET: usize = 0x15;

pub const TITLE_OFFSET: usize = LEVEL_HEADER_OFFSET + 0xF4;
pub const TITLE_LENGTH: usize = 0x40;
pub const TITLE_OFFSET_END: usize = TITLE_OFFSET + TITLE_LENGTH;

pub const DESCRIPTION_OFFSET: usize = LEVEL_HEADER_OFFSET + 0x136;
pub const DESCRIPTION_LENGTH: usize = 0xC8;
pub const DESCRIPTION_OFFSET_END: usize = DESCRIPTION_OFFSET + DESCRIPTION_LENGTH;

pub const START_Y_OFFSET: usize = LEVEL_HEADER_OFFSET + 0x0;

pub const FINISH_Y_OFFSET: usize = LEVEL_HEADER_OFFSET + 0x1;
pub const FINISH_X_OFFSET: usize = LEVEL_HEADER_OFFSET + 0x2;

pub const TIME_OFFSET: usize = LEVEL_HEADER_OFFSET + 0x4;

pub const GAME_STYLE_OFFSET: usize = LEVEL_HEADER_OFFSET + 0xF1;
pub const GAME_STYLE_OFFSET_END: usize = GAME_STYLE_OFFSET + 2;

pub const COURSE_THEME_OFFSET: [usize; 2] = [LEVEL_AREA_OFFSET + 0x0, LEVEL_AREA_SUB_OFFSET + 0x0];

pub const AUTO_SCROLL_OFFSET: [usize; 2] = [LEVEL_AREA_OFFSET + 0x1, LEVEL_AREA_SUB_OFFSET + 0x1];

pub const WATER_MAX_OFFSET: [usize; 2] = [LEVEL_AREA_OFFSET + 0x4, LEVEL_AREA_SUB_OFFSET + 0x4];
pub const WATER_MODE_OFFSET: [usize; 2] = [LEVEL_AREA_OFFSET + 0x5, LEVEL_AREA_SUB_OFFSET + 0x5];
pub const WATER_SPEED_OFFSET: [usize; 2] = [LEVEL_AREA_OFFSET + 0x6, LEVEL_AREA_SUB_OFFSET + 0x6];
pub const WATER_MIN_OFFSET: [usize; 2] = [LEVEL_AREA_OFFSET + 0x7, LEVEL_AREA_SUB_OFFSET + 0x7];

pub const AES_KEY_TABLE: [u32; 64] = [
    0x7AB1C9D2, 0xCA750936, 0x3003E59C, 0xF261014B, 0x2E25160A, 0xED614811, 0xF1AC6240, 0xD59272CD,
    0xF38549BF, 0x6CF5B327, 0xDA4DB82A, 0x820C435A, 0xC95609BA, 0x19BE08B0, 0x738E2B81, 0xED3C349A,
    0x045275D1, 0xE0A73635, 0x1DEBF4DA, 0x9924B0DE, 0x6A1FC367, 0x71970467, 0xFC55ABEB, 0x368D7489,
    0x0CC97D1D, 0x17CC441E, 0x3528D152, 0xD0129B53, 0xE12A69E9, 0x13D1BDB7, 0x32EAA9ED, 0x42F41D1B,
    0xAEA5F51F, 0x42C5D23C, 0x7CC742ED, 0x723BA5F9, 0xDE5B99E3, 0x2C0055A4, 0xC38807B4, 0x4C099B61,
    0xC4E4568E, 0x8C29C901, 0xE13B34AC, 0xE7C3F212, 0xB67EF941, 0x08038965, 0x8AFD1E6A, 0x8E5341A3,
    0xA4C61107, 0xFBAF1418, 0x9B05EF64, 0x3C91734E, 0x82EC6646, 0xFB19F33E, 0x3BDE6FE2, 0x17A84CCA,
    0xCCDF0CE9, 0x50E4135C, 0xFF2658B2, 0x3780F156, 0x7D8F5D68, 0x517CBED1, 0x1FCDDF0D, 0x77A58C94,
];