game.h

来自「代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考」· C头文件 代码 · 共 105 行

H
105
字号
#include "config.h"
typedef struct
{
//video 
	BYTE    TVMode;

//option
	BYTE    bRunOption;

//osd
	BYTE   *pRegion0DataStart;
	BYTE   *pRegion1DataStart;
	UINT32  unRegion0Offset;
	UINT32  unRegion1Offset;

//audio 
	BYTE   *pPCMStart;
	BYTE   *pPCMEnd;
	int     PCMLen;
	UINT32  unVolume;
	BYTE    unVolumeMaxStep;
	BYTE    unVolumeCurStep;

//game  
	BYTE   *pNESFile;
	BYTE    bNesFlag;							//bit 0     -> 1: use outside option
	//bit 1     -> h/v
	//bit 2     -> split flag
	//bit 3,7   -> decode type              
	BYTE    bNesPrgDataSize;

	BYTE    bSplitPos;

	UINT32  unMemoryLen;

//IR key 
	BYTE    bBreakIrKey[12];

//end status
	int     iRtsStatus;

}
S_HARDWARE;


//for light-gun function
#define GPIO_PAD1		 	0
#define GPIO_40		    	40



enum
{ T_NULL, T_LA, T_LB, T_LC, T_LD, T_LF, T_LC2, T_C3, T_C1, T_M7 };
enum
{ T_H, T_V, T_HV0, T_HV1 };



//error code define
#define BREAK_NES_BY_IR             0x0100
#define BREAK_NES_BY_GAMEPAD        0x0200
#define ERR_NES_FILE_HEADER         -1
#define ERR_NES_TR_NO_SUPPORT       -2
#define ERR_NES_4SCR_NO_SUPPORT     -3
#define ERR_NES_DECODE_NO_SUPPORT   -4
#define ERR_CPU_INST                -5
#define ERR_OUT_OF_MEMORY			-6


//NES_RUN_MODE      
#define NES_BREAK_A_START 	(1<<0)		// 0-> is A+B+start
#define NES_GAMEPAD_AB_SWAP (1<<2)
#define NES_CLOCK_SET       (1<<5)
#define NES_DEBUG_ON		(1<<6)
#define NES_LIGHT_GUN_ON	(1<<7)


#ifdef SUPPORT_OLD_NES_DISC
int     PlayNesfile(int, UINT32, int);
#else
int     PlayNesfile(UINT32, int, UINT32, int);
#endif

#if CONFIG==CONFIG_COMBO_SVCD

#ifdef SUPPORT_BOOMBOX_ESP
	#define PARAMETER_START         (SDRAM_BASE+(CDDA_OFFSET+MP3_OFFSET_XADD+240*2)*1024)//61+240+240
#else
	#define PARAMETER_START         (SDRAM_BASE+(240*2)*1024)//240+240
#endif	

#if 0
#define NES_DRV_START           (SDRAM_BASE+665*1024)	//Avoid CD_MOVE Buffer
#define NES_CODE_START          (SDRAM_BASE+739*1024)	//drv 74k
#else
#define NES_DRV_START           (SDRAM_BASE+671*1024)	//Avoid CD_MOVE Buffer
#define NES_CODE_START          (SDRAM_BASE+745*1024)	//drv 74k
#endif


//light-gun
//#define NES_CODE_START          (SDRAM_BASE+741*1024)	//drv 74k
#define GAME_AUD_START			(MP3_CODE_DEF-6)
#define NES_CODE_FREELEN	    ((GAME_AUD_START-745+1)*1024)	//745 is rom code start
#define NES_CODE_LIMIT          ((700-6)*1024)	//Avoid MP3 Ref0_Chroma for 瓜

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?