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
105
106
107
108
109
110
111
112
113
114
115
116
|
#ifndef M_DEBUG_H
#define M_DEBUG_H
#include "ultra64.h"
typedef enum {
/* 0 */ DEBUG_REG_START = 0,
/* 0 */ DEBUG_REG_REG = DEBUG_REG_START,
/* 1 */ DEBUG_REG_SREG,
/* 2 */ DEBUG_REG_OREG,
/* 3 */ DEBUG_REG_PREG,
/* 4 */ DEBUG_REG_QREG,
/* 5 */ DEBUG_REG_MREG,
/* 6 */ DEBUG_REG_SBREG,
/* 7 */ DEBUG_REG_DREG,
/* 8 */ DEBUG_REG_UREG,
/* 9 */ DEBUG_REG_IREG,
/* 10 */ DEBUG_REG_ZREG,
/* 11 */ DEBUG_REG_CRV,
/* 12 */ DEBUG_REG_NS1,
/* 13 */ DEBUG_REG_SND,
/* 14 */ DEBUG_REG_XREG,
/* 15 */ DEBUG_REG_CRV2,
/* 16 */ DEBUG_REG_DEMOREG,
/* 17 */ DEBUG_REG_TREG,
/* 18 */ DEBUG_REG_WREG,
/* 19 */ DEBUG_REG_AREG,
/* 20 */ DEBUG_REG_VREG,
/* 21 */ DEBUG_REG_HREG,
/* 22 */ DEBUG_REG_GREG,
/* 23 */ DEBUG_REG_mREG,
/* 24 */ DEBUG_REG_nREG,
/* 25 */ DEBUG_REG_BREG,
/* 26 */ DEBUG_REG_DORO,
/* 27 */ DEBUG_REG_kREG,
/* 28 */ DEBUG_REG_BAK,
/* 29 */ DEBUG_REG_PLAYERREG,
/* 30 */ DEBUG_REG_NMREG,
/* 31 */ DEBUG_REG_NIIREG,
/* 32 */ DEBUG_REG_GENREG,
/* 33 */ DEBUG_REG_MYKREG,
/* 34 */ DEBUG_REG_CAMREG,
/* 35 */ DEBUG_REG_SAKREG,
/* 36 */ DEBUG_REG_TAKREG,
/* 37 */ DEBUG_REG_PL2REG,
/* 38 */ DEBUG_REG_MAX
} DEBUG_REG;
#define DEBUG_REG_SIZE 16
#define DEBUG_REG_GROUP 6
#define DEBUG_REG_COUNT (DEBUG_REG_SIZE * DEBUG_REG_GROUP * DEBUG_REG_MAX)
typedef struct Debug_mode {
/* 0x00 */ u8 mode;
/* 0x01 */ u8 type;
/* 0x02 */ s8 inputR;
/* 0x03 */ s8 keyWait;
/* 0x04 */ s32 oldKey;
/* 0x08 */ s32 pad[3];
/* 0x14 */ s16 r[DEBUG_REG_SIZE * DEBUG_REG_GROUP * DEBUG_REG_MAX];
} Debug_mode; // size = 0x1C94
extern Debug_mode* debug_mode;
#define REGADDR(reg, idx) (debug_mode->r[DEBUG_REG_SIZE * DEBUG_REG_GROUP * DEBUG_REG_##reg + (idx)])
#define GETREG(reg, idx) (REGADDR(reg, idx))
#define REG(r) GETREG(REG,r)
#define SREG(r) GETREG(SREG,r)
#define OREG(r) GETREG(OREG,r)
#define PREG(r) GETREG(PREG,r)
#define QREG(r) GETREG(QREG,r)
#define MREG(r) GETREG(MREG,r)
#define SBREG(r) GETREG(SBREG,r)
#define DREG(r) GETREG(DREG,r)
#define UREG(r) GETREG(UREG,r)
#define IREG(r) GETREG(IREG,r)
#define ZREG(r) GETREG(ZREG,r)
#define CRV(r) GETREG(CRV,r)
#define NS1(r) GETREG(NS1,r)
#define SND(r) GETREG(SND,r)
#define XREG(r) GETREG(XREG,r)
#define CRV2(r) GETREG(CRV2,r)
#define DEMOREG(r) GETREG(DEMOREG,r)
#define TREG(r) GETREG(TREG,r)
#define WREG(r) GETREG(WREG,r)
#define AREG(r) GETREG(AREG,r)
#define VREG(r) GETREG(VREG,r)
#define HREG(r) GETREG(HREG,r)
#define GREG(r) GETREG(GREG,r)
#define mREG(r) GETREG(mREG,r)
#define nREG(r) GETREG(nREG,r)
#define BREG(r) GETREG(BREG,r)
#define DORO(r) GETREG(DORO,r)
#define kREG(r) GETREG(kREG,r)
#define BAK(r) GETREG(BAK,r)
#define PLAYERREG(r) GETREG(PLAYERREG,r)
#define NMREG(r) GETREG(NMREG,r)
#define NIIREG(r) GETREG(NIIREG,r)
#define GENREG(r) GETREG(GENREG,r)
#define MYKREG(r) GETREG(MYKREG,r)
#define CAMREG(r) GETREG(CAMREG,r)
#define SAKKREG(r) GETREG(SAKKREG,r)
#define TAKREG(r) GETREG(TAKREG,r)
#define PL2REG(r) GETREG(PL2REG,r)
extern void new_Debug_mode(void);
#endif
|