siproc.h 2.5 KB
/*---------------------------------------------------------------------
        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_ */