system.h 2.67 KB
/*
 *  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 */