NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
SIHardware.h
1
#ifndef RVL_SDK_SI_HARDWARE_H
2
#define RVL_SDK_SI_HARDWARE_H
3
#include <types.h>
4
#ifdef __cplusplus
5
extern
"C"
{
6
#endif
7
8
/**
9
* SI hardware registers
10
*/
11
volatile
u32 SI_HW_REGS[] : 0xCD006400;
12
13
/**
14
* Hardware register indexes
15
*/
16
typedef
enum
{
17
SI_SIC0OUTBUF,
//!< 0xCD006400
18
SI_SIC0INBUFH,
//!< 0xCD006404
19
SI_SIC0INBUFL,
//!< 0xCD006408
20
SI_SIC1OUTBUF,
//!< 0xCD00640C
21
SI_SIC1INBUFH,
//!< 0xCD006410
22
SI_SIC1INBUFL,
//!< 0xCD006414
23
SI_SIC2OUTBUF,
//!< 0xCD006418
24
SI_SIC2INBUFH,
//!< 0xCD00641C
25
SI_SIC2INBUFL,
//!< 0xCD006420
26
SI_SIC3OUTBUF,
//!< 0xCD006424
27
SI_SIC3INBUFH,
//!< 0xCD006428
28
SI_SIC3INBUFL,
//!< 0xCD00642C
29
SI_SIPOLL,
//!< 0xCD006430
30
SI_SICOMSCR,
//!< 0xCD006434
31
SI_SISR,
//!< 0xCD006438
32
SI_SIEXILK,
//!< 0xCD00643C
33
34
// SI communication RAM
35
SI_RAM_BASE = (0xCD006480 - 0xCD006400) /
sizeof
(u32)
//!< 0xCD006480
36
};
37
38
// SIPOLL - SI Poll Register
39
#define SI_SIPOLL_X (0b1111111111 << 16)
40
#define SI_SIPOLL_Y (0b11111111 << 8)
41
42
// SICOMCSR - SI Communication Control Status Register
43
#define SI_SICOMCSR_TCINT (1 << 31)
44
#define SI_SICOMCSR_TCINTMSK (1 << 30)
45
#define SI_SICOMCSR_COMERR (1 << 29)
46
#define SI_SICOMCSR_RDSTINT (1 << 28)
47
#define SI_SICOMCSR_RDSTINTMSK (1 << 27)
48
#define SI_SICOMCSR_OUTLNGTH (0b1111111 << 16)
49
#define SI_SICOMCSR_INLNGTH (0b1111111 << 8)
50
#define SI_SICOMCSR_CHANNEL (0b11 << 1)
51
#define SI_SICOMCSR_TSTART (1 << 0)
52
53
// SISR - SI Status Register
54
#define SI_SISR_WR (1 << 31)
55
#define SI_SISR_RDST0 (1 << 29)
56
#define SI_SISR_WRST0 (1 << 28)
57
#define SI_SISR_NOREP0 (1 << 27)
58
#define SI_SISR_COLL0 (1 << 26)
59
#define SI_SISR_OVRUN0 (1 << 25)
60
#define SI_SISR_UNRUN0 (1 << 24)
61
#define SI_SISR_RDST1 (1 << 21)
62
#define SI_SISR_WRST1 (1 << 20)
63
#define SI_SISR_NOREP1 (1 << 19)
64
#define SI_SISR_COLL1 (1 << 18)
65
#define SI_SISR_OVRUN1 (1 << 17)
66
#define SI_SISR_UNRUN1 (1 << 16)
67
#define SI_SISR_RDST2 (1 << 13)
68
#define SI_SISR_WRST2 (1 << 12)
69
#define SI_SISR_NOREP2 (1 << 11)
70
#define SI_SISR_COLL2 (1 << 10)
71
#define SI_SISR_OVRUN2 (1 << 9)
72
#define SI_SISR_UNRUN2 (1 << 8)
73
#define SI_SISR_RDST3 (1 << 5)
74
#define SI_SISR_WRST3 (1 << 4)
75
#define SI_SISR_NOREP3 (1 << 3)
76
#define SI_SISR_COLL3 (1 << 2)
77
#define SI_SISR_OVRUN3 (1 << 1)
78
#define SI_SISR_UNRUN3 (1 << 0)
79
80
// SISR flags by channel
81
// Ex: (SISR >> ((SI_MAX_CHAN-1) - chan) * 8)
82
#define SI_RDST SI_SISR_RDST3
83
#define SI_WRST SI_SISR_WRST3
84
#define SI_NOREP SI_SISR_NOREP3
85
#define SI_COLL SI_SISR_COLL3
86
#define SI_OVRUN SI_SISR_OVRUN3
87
#define SI_UNRUN SI_SISR_UNRUN3
88
89
#ifdef __cplusplus
90
}
91
#endif
92
#endif
include
lib
revolution
SI
SIHardware.h
Made with ❤️ by
CLF78
and
RootCubed
. Logos by
Chasical
and
B1
. Website generated by
Doxygen
1.13.2