-
Notifications
You must be signed in to change notification settings - Fork 470
/
Copy pathspc7110.h
104 lines (86 loc) · 2.01 KB
/
spc7110.h
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
/*****************************************************************************\
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
This file is licensed under the Snes9x License.
For further information, consult the LICENSE file in the root directory.
\*****************************************************************************/
#ifndef _SPC7110_H_
#define _SPC7110_H_
#define SPC7110_DECOMP_BUFFER_SIZE 64
// for snapshot only
struct SSPC7110Snapshot
{
uint8 r4801;
uint8 r4802;
uint8 r4803;
uint8 r4804;
uint8 r4805;
uint8 r4806;
uint8 r4807;
uint8 r4808;
uint8 r4809;
uint8 r480a;
uint8 r480b;
uint8 r480c;
uint8 r4811;
uint8 r4812;
uint8 r4813;
uint8 r4814;
uint8 r4815;
uint8 r4816;
uint8 r4817;
uint8 r4818;
uint8 r481x;
bool8 r4814_latch; // bool
bool8 r4815_latch; // bool
uint8 r4820;
uint8 r4821;
uint8 r4822;
uint8 r4823;
uint8 r4824;
uint8 r4825;
uint8 r4826;
uint8 r4827;
uint8 r4828;
uint8 r4829;
uint8 r482a;
uint8 r482b;
uint8 r482c;
uint8 r482d;
uint8 r482e;
uint8 r482f;
uint8 r4830;
uint8 r4831;
uint8 r4832;
uint8 r4833;
uint8 r4834;
uint32 dx_offset; // unsigned
uint32 ex_offset; // unsigned
uint32 fx_offset; // unsigned
uint8 r4840;
uint8 r4841;
uint8 r4842;
int32 rtc_state; // enum RTC_State
int32 rtc_mode; // enum RTC_Mode
uint32 rtc_index; // unsigned
uint32 decomp_mode; // unsigned
uint32 decomp_offset; // unsigned
uint8 decomp_buffer[SPC7110_DECOMP_BUFFER_SIZE];
uint32 decomp_buffer_rdoffset; // unsigned
uint32 decomp_buffer_wroffset; // unsigned
uint32 decomp_buffer_length; // unsigned
struct ContextState
{
uint8 index;
uint8 invert;
} context[32];
};
extern struct SSPC7110Snapshot s7snap;
void S9xInitSPC7110 (void);
void S9xResetSPC7110 (void);
void S9xSPC7110PreSaveState (void);
void S9xSPC7110PostLoadState (int);
void S9xSetSPC7110 (uint8, uint16);
uint8 S9xGetSPC7110 (uint16);
uint8 S9xGetSPC7110Byte (uint32);
uint8 * S9xGetBasePointerSPC7110 (uint32);
#endif