siproc.h
2.5 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
/*---------------------------------------------------------------------
Copyright (C) 1998 Nintendo.
File cont.h
Coded by Koji Mitsunari. Jun 19, 1997.
Modified by Koji Mitsunari. May 18, 1998.
Comments Header file for SI Procedure
$Id:
---------------------------------------------------------------------*/
#ifndef _siproc_h_
#define _siproc_h_
/*--------------------------------------------------------------------
マクロ定義
--------------------------------------------------------------------*/
/* 対応ゲームの会社コードとゲームタイトル */
#define COMPANY_CODE 0 /* <--変更してください */
#define GAME_TITLE "GAME TITLE\0\0\0\0\0\0" /* <--変更してください */
#define CONTNO 0 /* コントローラ番号 */
/* siprocに対するコマンド */
#define SI_CONT_READ 0
#define SI_GBPAK_READ 2
#define SI_GBPAK_WRITE 3
/* エラーメッセージの番号 */
#define GBPAK_ERR_MES_NOPACK 1
#define GBPAK_ERR_MES_ERR_DEVICE 2
#define GBPAK_ERR_MES_FAIL 3
#define GBPAK_ERR_MES_NOCART 4
#define GBPAK_ERR_MES_ANOTHER_GAME 5
#define GBPAK_ERR_MES_NOW_LOADING 6
#define GBPAK_ERR_MES_FAIL_IN_READ_ID 7
/* 違うゲームだったときの(このサンプル独自の、仮の)エラーコード */
#define GBPAK_ERR_ANOTHER_GAME 100
#define SI_MSG_NUM 1
#define RET_MSG_NUM 1
/*--------------------------------------------------------------------
構造体
--------------------------------------------------------------------*/
typedef struct{ /*--- コントローラの読み込みデータ用 ---*/
int flag;
int stat;
int nowcon;
int oldcon;
int nowtrg;
int repeat;
int repcnt;
int sx;
int sy;
} Conts;
typedef struct { /*--- siproc へのメッセージ渡し用 ---*/
s32 cmd; /* Command of SI */
u16 address; /* Gameboy Address */
u16 size; /* Data size (bytes) */
u8 *buffer; /* RDRAM buffer pointer */
} SiMsg;
typedef struct { /*--- siproc からのメッセージ返し用 ---*/
s32 proc_status;
s32 errmes; /* Error message */
s32 ret; /* ret of 64GB-PAK function */
u8 status; /* Status of 64GB-PAK */
} RetMsg;
/*--------------------------------------------------------------------
外部宣言
--------------------------------------------------------------------*/
extern Conts conts[]; /* Data of controller */
extern OSMesgQueue siMsgQ; /* siproc へのメッセージ渡し用 */
extern OSMesgQueue retMsgQ;/* siproc からのメッセージ返し用 */
extern void siproc(void);
#endif /* _siproc_h_ */