www.pudn.com > ncdzsrc.rar > driver.h


/*************************************************************************** 
 
	driver.c 
 
	NEOGEO CDドライバコア (based on M.A.M.E.'s neogeo driver) 
 
***************************************************************************/ 
 
#ifndef NEOGEO_DRIVER_H 
#define NEOGEO_DRIVER_H 
 
#if FAST_SPRITE_DRAW 
#define NEOGEO      0 
#define NEOGEO_FAST 1 
#define RASTER      2 
#define RASTER_FAST 3 
#define RASTER_BUSY 4 
#define RBUSY_FAST  5 
#else 
#define NEOGEO      0 
#define NEOGEO_FAST 0 
#define RASTER      2 
#define RASTER_FAST 2 
#define RASTER_BUSY 4 
#define RBUSY_FAST  4 
#endif 
 
#define RASTER_LINES		264 
#define FIRST_VISIBLE_LINE	16 
#define	LAST_VISIBLE_LINE	239 
#define	SCREEN_WIDTH		320 
#define	SCREEN_HEIGHT		256 
 
// ドライバのフラグ 
#define PATCH_NONE		0			// パッチなし 
#define PATCH_SSRPG		(1 << 0)	// 真説サムライスピリッツ専用 
#define PATCH_AOF2		(1 << 1)	// 龍虎の拳2専用 
#define PATCH_ADKWORLD	(1 << 2)	// ADKワールド専用 
#define PATCH_CRSWORD2	(1 << 3)	// クロスソード2専用 
#define PATCH_RBFF2		(1 << 4)	// リアルバウト餓狼伝説2専用 
#define PATCH_TYPE6		(1 << 5)	// 未使用 
#define LOADING_TYPE1	(1 << 6)	// 読み込みタイプ1 通常 
#define LOADING_TYPE2	(1 << 7)	// 読み込みタイプ2 ロード画面にサウンドがかぶるゲーム 
#define LOADING_TYPE3	(1 << 8)	// 読み込みタイプ3 龍虎外伝、月華1、月華2用 
 
// ゲーム判別マクロ 
#define GAME_NAME(name)  (strcmp(game_name, name) == 0) 
 
 
// 入力ポート用 
enum 
{ 
	NEOGEO_INPUT_UP = 0, 
	NEOGEO_INPUT_DOWN, 
	NEOGEO_INPUT_LEFT, 
	NEOGEO_INPUT_RIGHT, 
	NEOGEO_INPUT_BUTTONA, 
	NEOGEO_INPUT_BUTTONB, 
	NEOGEO_INPUT_BUTTONC, 
	NEOGEO_INPUT_BUTTOND, 
	NEOGEO_INPUT_START, 
	NEOGEO_INPUT_SELECT, 
	NEOGEO_INPUT_MAX 
}; 
 
 
/*------------------------------------------------------ 
  構造体 
 -----------------------------------------------------*/ 
 
typedef struct cdrom_t 
{ 
	const int num_tracks; 
	const int num_trackdata; 
	const UINT32 *tracks[]; 
} CDROM; 
 
typedef struct gamename_t 
{ 
	const char *name; 
	const char *id; 
	const int  year; 
	const char *manufacture; 
	const int  driver; 
	const int  flag; 
	const CDROM *cdrom; 
	const char *title[3]; 
} GAMES; 
 
 
/*------------------------------------------------------ 
  グローバル変数等 
 -----------------------------------------------------*/ 
 
extern GAMES games[]; 
extern MEMREGION neogeo_memory_region[]; 
extern READMEM  neogeo_readmem[]; 
extern WRITEMEM neogeo_writemem[]; 
 
extern UINT32 neogeo_frame_counter; 
extern struct rectangle visible_area; 
extern double video_fps; 
 
 
/*------------------------------------------------------ 
  グローバル関数 
 -----------------------------------------------------*/ 
 
void neogeo_driver_reset(void); 
void neogeo_interrupt(void); 
void neogeo_raster_interrupt(void); 
void neogeo_raster_interrupt_busy(void); 
 
READ16_HANDLER( neogeo_controler1_16_r ); 
READ16_HANDLER( neogeo_controler2_16_r ); 
READ16_HANDLER( neogeo_controler3_16_r ); 
 
UINT8 neogeo_z80_port_r(UINT16 port); 
void neogeo_z80_port_w(UINT16 port, UINT8 data); 
 
#endif /* NEOGEO_DRIVER_H */