iplleo.h
2.68 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/********************************************************************************
iplleo.h: NINTENDO64 Disk Drive IPL header.
January 17, 1987
********************************************************************************/
#ifndef IPLLEO_H
#define IPLLEO_H
#include <PR/leoappli.h>
/********************************************************************************/
/* */
/* Destiny area. */
/* */
/********************************************************************************/
#define LEO_COUNTRY_CODE_JAPAN 0xe848d316
#define LEO_COUNTRY_CODE_USA 0x2263ee56
#define LEO_COUNTRY_CODE_EUROPE 0xffffffff /* not defined */
#define LEO_COUNTRY_CODE_ASIA 0xffffffff /* not defined */
#define LEO_COUNTRY_CODE_DEVELOPER 0x00000000
#if defined(JAPAN_ID)
#define LEO_COUNTRY_CODE LEO_COUNTRY_CODE_JAPAN
#elif defined(USA_ID)
#define LEO_COUNTRY_CODE LEO_COUNTRY_CODE_USA
#elif defined(EUROPE_ID)
#define LEO_COUNTRY_CODE LEO_COUNTRY_CODE_EUROPE
#elif defined(ASIA_ID)
#define LEO_COUNTRY_CODE LEO_COUNTRY_CODE_ASIA
#else
#define LEO_COUNTRY_CODE LEO_COUNTRY_CODE_DEVELOPER
#endif
/********************************************************************************/
/* */
/* Read IPL command. */
/* */
/********************************************************************************/
typedef struct {
LEOCmdHeader header;
u64 *buff_ptr;
u32 code;
} LEOCmdReadIPL;
typedef struct {
LEOCmdHeader header;
u16 pad;
u8 year;
u8 month;
u8 day;
u8 hour;
u8 minute;
u8 second;
} LEOCmdTimeIPL;
/********************************************************************************/
/* */
/* ID area. */
/* */
/********************************************************************************/
typedef struct {
u16 pad;
u8 year;
u8 month;
u8 day;
u8 hour;
u8 minute;
u8 second;
} LEODiskTime;
typedef struct {
u64 lineNumber;
LEODiskTime time;
} LEOSerialNum;
typedef struct {
u8 gameName[4];
u8 gameVersion;
u8 diskNumber;
u16 diskUsage;
LEOSerialNum serialNumber;
u64 reserve;
} LEODiskID;
#define diskInformation ((LEODiskID *)0x800001a0)
/********************************************************************************/
/* */
/* IPL function prototype definition */
/* */
/********************************************************************************/
extern void leoIPLInitialize(int priwrk, int priint);
extern void leoIPLCommand(void *command);
extern void leoIPLReset(void);
#endif