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


/*************************************************************************** 
 
	machine.c 
 
	NEOGEO CD マシンエミュレーションコア 
 
***************************************************************************/ 
 
#ifndef MACHINE_H 
#define MACHINE_H 
 
#include "cdda.h" 
#include "cdrom.h" 
#include "loadscr.h" 
#include "simbios.h" 
#include "pd4990a.h" 
#include "i68k.h" 
 
// 外部メモリ転送タイプ 
#define	EXMEM_OBJ		0x00 
#define	EXMEM_PCMA		0x01 
#define	EXMEM_Z80		0x04 
#define	EXMEM_FIX		0x05 
#define	EXMEM_UNKNOWN	0xff 
 
// ハードウェア転送タイプ 
#define	PRG_TYPE		0x00 
#define FIX_TYPE		0x01 
#define SPR_TYPE		0x02 
#define Z80_TYPE		0x03 
#define PCM_TYPE		0x04 
#define PAT_TYPE		0x05 
#define PAL_TYPE		0x06 
#define OBJ_TYPE		0x07 
#define AXX_TYPE		0x08 
#define BACKUP_RAM		0x09 
#define UNKNOWN_TYPE	0x0f 
 
#define	BIOS_PRG_TYPE	0x10	// 未使用 
#define BIOS_FIX_TYPE	0x11 
#define BIOS_SPR_TYPE	0x12 
#define BIOS_Z80_TYPE	0x13 
#define BIOS_PCM_TYPE	0x14 
#define BIOS_PAT_TYPE	0x15	// 未使用 
#define BIOS_PAL_TYPE	0x16	// 未使用 
#define BIOS_OBJ_TYPE	0x17	// 未使用 
#define BIOS_AXX_TYPE	0x18	// 未使用 
 
// ハードウェア転送方法 
#define UPLOAD_IMMIDIATE	0x00 
#define UPLOAD_PATTERN		0x01 
#define UPLOAD_MEMORY		0x02 
#define UPLOAD_FILE			0x03 
 
// ハードウェアメモリ転送用マクロ 
#define upload_get_type()		m68000_read_memory_8(0x108000 + 0x7eda) 
#define upload_get_bank()		m68000_read_memory_8(0x108000 + 0x7edb) 
#define upload_get_dst()		m68000_read_memory_32(0x108000 + 0x7ef4) 
#define upload_get_src()		m68000_read_memory_32(0x108000 + 0x7ef8) 
#define upload_get_length()		m68000_read_memory_32(0x108000 + 0x7efc) 
 
// ロード画面用マクロ 
#define with_image()			m68000_read_memory_8(0x108000 + 0x7ddc) 
#define spr_disable_w(data)		m68000_write_memory_8(0xff0111, data) 
#define fix_disable_w(data)		m68000_write_memory_8(0xff0115, data) 
#define video_enable_w(data)	m68000_write_memory_8(0xff0119, data) 
 
extern int  game_index; 
extern char game_name[]; 
extern int  driver_type; 
extern int  driver_flag; 
 
void neogeo_run(void); 
void neogeo_reset(void); 
 
void neogeo_decode_spr(UINT8 *mem, offs_t offset, UINT32 length); 
void neogeo_decode_fix(UINT8 *mem, offs_t offset, UINT32 length); 
void neogeo_undecode_fix(UINT8 *mem, offs_t offset, UINT32 length); 
void neogeo_apply_patch(UINT16 *src, int bank, offs_t offset); 
 
WRITE16_HANDLER( neogeo_select_bios_vectors ); 
WRITE16_HANDLER( neogeo_select_game_vectors ); 
 
READ16_HANDLER( neogeo_memcard16_r ); 
WRITE16_HANDLER( neogeo_memcard16_w ); 
 
READ16_HANDLER( neogeo_externalmem_16_r ); 
WRITE16_HANDLER( neogeo_externalmem_16_w ); 
 
READ16_HANDLER( neogeo_hardcontrol_16_r ); 
WRITE16_HANDLER( neogeo_hardcontrol_16_w ); 
 
void neogeo_set_title(void); 
 
#endif /* MACHINE_H */