system.h
2.67 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*
* NINTENDO64 SAMPLE PROGRAM
*
* FILE : system.h
*
* Copyright (C) 1997, NINTENDO Co,Ltd.
*/
/* スクリーンサイズ */
#define SCREEN_WD 640
#define SCREEN_HT 480
/* RDP FIFO のサイズ */
#define RDPFIFO_SIZE (4096 * 16 / sizeof(u64))
/* グラフィックスコマンドリストの最大数 */
#define GLIST_LEN 2048
/* アドレス */
/* パズル用イメージ*/
#define IMAGE_ADDRESS 0x80200000
/* フレームバッファ */
#define CFB_ADDRESS 0x802c0000
/* RDP FIFO 他 */
#define RSPBUF_ADDRESS 0x803ec000
/* メインスレッドのプライオリティ */
#define MAIN_PRIORITY 10
/* その他 */
#define SP_BOOT_UCODE_SIZE 0x00d0
#define NUM_PI_MSGS 8
#define STACKSIZE 0x2000
#define STATIC_SEGMENT 1
/*
* デバッグ用
*/
/* タイル透明処理 */
#define THROUGH
#undef THROUGH
/* BG 描画するか否か */
#define NO_BG
#undef NO_BG
/* インターレス or デフリッカー */
#define NORMAL_INTERLACE
#undef NORMAL_INTERLACE
/* 移動時のタイル反転するか否か */
#define MOVE_WITH_NO_SHADE
#undef MOVE_WITH_NO_SHADE
/* タイマーバー */
#define TIMER_BAR
#undef TIMER_BAR
#define TIME_SCALE 0.000512
#ifdef _LANGUAGE_C
/*
* extern 宣言
*/
extern OSMesgQueue piMessageQ;
extern OSMesgQueue siMessageQ;
extern OSMesgQueue dmaMessageQ;
extern OSMesgQueue mainFrameMQ;
extern OSContStatus contStatus[MAXCONTROLLERS];
extern OSContPad contPad[MAXCONTROLLERS];
extern u8 contExist;
extern u16 system_cfb[][SCREEN_WD * SCREEN_HT];
extern u64 system_rdpfifo[];
extern u64 system_rspyield[];
#ifdef TIMER_BAR
/* デバッグ用タイマーバー */
extern u32 time_retrace;
extern u32 time_gfx_rsp_start;
extern u32 time_gfx_rsp_end;
extern u32 time_gfx_rdp_end;
extern u32 time_aud_rsp_start;
extern u32 time_aud_rsp_end;
extern u32 time_gfx_cpu_start;
extern u32 time_gfx_cpu_end;
extern u32 time_aud_cpu_start;
extern u32 time_aud_cpu_end;
extern u32 delta_gfx_rsp_start;
extern u32 delta_aud_rsp_start;
extern u32 delta_gfx_cpu_start;
extern u32 delta_aud_cpu_start;
extern u32 delta_gfx_rsp_end;
extern u32 delta_gfx_rdp_end;
extern u32 delta_aud_rsp_end;
extern u32 delta_gfx_cpu_end;
extern u32 delta_aud_cpu_end;
#endif
/*
* WAVE データセグメントの extern 宣言用マクロ
*/
#define EXTERN_SEGMENT(name) \
extern char _##name##SegmentStart[], _##name##SegmentEnd[], \
_##name##SegmentRomStart[], _##name##SegmentRomEnd[]
/*
* セグメントの extern 宣言
*/
EXTERN_SEGMENT(code);
EXTERN_SEGMENT(static);
EXTERN_SEGMENT(seq);
EXTERN_SEGMENT(midibank);
EXTERN_SEGMENT(miditable);
EXTERN_SEGMENT(image);
/*
* プロトタイプ宣言
*/
/* ROM->RAM Copy */
void romCopy(const char *, const char *, const int);
#endif /* _LANGUAGE_C */