summaryrefslogtreecommitdiff
path: root/include/m_debug.h
blob: 0a38dca6b560feeaf1a4a99fa1b3cdc0b629b4d9 (plain)
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