⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.h

📁 著名的任天堂FC游戏机模拟器VirtuaNes 085版的源码!
💻 H
📖 第 1 页 / 共 2 页
字号:
		nShortCut[104] = DIK_F10+K_CTRL;	// Fit screen
		nShortCut[105] = 0;			// Left clip

		// Cheat
		nShortCut[110] = DIK_HOME+K_CTRL;	// Search
		nShortCut[111] = DIK_END+K_CTRL;	// Cheat
		nShortCut[112] = DIK_INSERT;		// Cheat enable
		nShortCut[113] = DIK_DELETE;		// Cheat disable
		nShortCut[114] = 0;			// GameGenie

		// Tools
		nShortCut[116] = 0;			// Pattern Viewer
		nShortCut[117] = 0;			// NameTable Viewer
		nShortCut[118] = 0;			// Palette Viewer

		nShortCut[119] = 0;			// Memory Viewer

		// Quick Load/Save
		nShortCut[256] = DIK_NUMPAD0+K_CTRL;	// QuickLoad Slot0
		nShortCut[257] = DIK_NUMPAD1+K_CTRL;	// QuickLoad Slot1
		nShortCut[258] = DIK_NUMPAD2+K_CTRL;	// QuickLoad Slot2
		nShortCut[259] = DIK_NUMPAD3+K_CTRL;	// QuickLoad Slot3
		nShortCut[260] = DIK_NUMPAD4+K_CTRL;	// QuickLoad Slot4
		nShortCut[261] = DIK_NUMPAD5+K_CTRL;	// QuickLoad Slot5
		nShortCut[262] = DIK_NUMPAD6+K_CTRL;	// QuickLoad Slot6
		nShortCut[263] = DIK_NUMPAD7+K_CTRL;	// QuickLoad Slot7
		nShortCut[264] = DIK_NUMPAD8+K_CTRL;	// QuickLoad Slot8
		nShortCut[265] = DIK_NUMPAD9+K_CTRL;	// QuickLoad Slot9

		nShortCut[266] = DIK_NUMPAD0+K_ALT;	// QuickSave Slot0
		nShortCut[267] = DIK_NUMPAD1+K_ALT;	// QuickSave Slot1
		nShortCut[268] = DIK_NUMPAD2+K_ALT;	// QuickSave Slot2
		nShortCut[269] = DIK_NUMPAD3+K_ALT;	// QuickSave Slot3
		nShortCut[270] = DIK_NUMPAD4+K_ALT;	// QuickSave Slot4
		nShortCut[271] = DIK_NUMPAD5+K_ALT;	// QuickSave Slot5
		nShortCut[272] = DIK_NUMPAD6+K_ALT;	// QuickSave Slot6
		nShortCut[273] = DIK_NUMPAD7+K_ALT;	// QuickSave Slot7
		nShortCut[274] = DIK_NUMPAD8+K_ALT;	// QuickSave Slot8
		nShortCut[275] = DIK_NUMPAD9+K_ALT;	// QuickSave Slot9
	}
};

class	CCfgLanguage
{
public:
	LCID	lcID;
	CHAR	szLanguage[256];

	void	Default() {
		lcID = NULL;
		szLanguage[0] = 0;
	}
};

class	CCfgController
{
public:
	WORD	nButton[4][64];
	WORD	nRapid [4][ 2];
	// 0:Crazy Climber
	// 1:Famly Trainer
	// 2:Exciting Boxing
	// 3:Mahjang
	WORD	nExButton[4][64];
	WORD	nNsfButton[64];
	WORD	nVSUnisystem[64];

	void	Default() {
		DefaultController1();
		DefaultController2();
		DefaultController3();
		DefaultController4();
		DefaultExController0();
		DefaultExController1();
		DefaultExController2();
		DefaultExController3();
		DefaultNsfController();
		DefaultVSUnisystem();
	}

	void	DefaultController1() {
		for( INT i = 0; i < 64; i++ )
			nButton[0][i] = 0;

		nButton[0][ 0] = DIK_UP;
		nButton[0][ 1] = DIK_DOWN;
		nButton[0][ 2] = DIK_LEFT;
		nButton[0][ 3] = DIK_RIGHT;
		nButton[0][ 4] = DIK_X;	// A
		nButton[0][ 5] = DIK_Z;	// B
		nButton[0][ 6] = 0;	// A Rapid
		nButton[0][ 7] = 0;	// B Rapid
		nButton[0][ 8] = DIK_RSHIFT; // SELECT
		nButton[0][ 9] = DIK_RETURN; // START

		nRapid[0][0] = 0;	// A Rapid speed
		nRapid[0][1] = 0;	// B Rapid speed
	}

	void	DefaultController2() {
		for( INT i = 0; i < 64; i++ )
			nButton[1][i] = 0;

		nButton[1][ 0] = DIK_NUMPAD8;
		nButton[1][ 1] = DIK_NUMPAD2;
		nButton[1][ 2] = DIK_NUMPAD4;
		nButton[1][ 3] = DIK_NUMPAD6;
		nButton[1][ 4] = DIK_N;	// A
		nButton[1][ 5] = DIK_B;	// B
		nButton[1][ 6] = 0;	// A Rapid
		nButton[1][ 7] = 0;	// B Rapid
		nButton[1][ 8] = 0;	// SELECT
		nButton[1][ 9] = 0;	// START
		nButton[1][10] = DIK_M;	// Mic

		nRapid[1][0] = 0;	// A Rapid speed
		nRapid[1][1] = 0;	// B Rapid speed
	}

	void	DefaultController3() {
		for( INT i = 0; i < 64; i++ )
			nButton[2][i] = 0;

		nRapid[2][0] = 0;	// A Rapid speed
		nRapid[2][1] = 0;	// B Rapid speed
	}

	void	DefaultController4() {
		for( INT i = 0; i < 64; i++ )
			nButton[3][i] = 0;

		nRapid[3][0] = 0;	// A Rapid speed
		nRapid[3][1] = 0;	// B Rapid speed
	}

	void	DefaultExController0() {
		// Crazy Climber狠嫩白(幚嵺偵偼懚嵼偟側偄)
		for( INT i = 0; i < 64; i++ )
			nExButton[0][i] = 0;
//		nExButton[0][ 0] = 0;	// L up
//		nExButton[0][ 1] = 0;	// L down
//		nExButton[0][ 2] = 0;	// L left
//		nExButton[0][ 3] = 0;	// L right
//		nExButton[0][ 4] = 0;	// R up
//		nExButton[0][ 5] = 0;	// R down
//		nExButton[0][ 6] = 0;	// R left
//		nExButton[0][ 7] = 0;	// R right
	}

	void	DefaultExController1() {
		// Famly Trainer狠嫩白
		for( INT i = 0; i < 64; i++ )
			nExButton[1][i] = 0;
	}

	void	DefaultExController2() {
		// Exciting Boxing狠嫩白
		for( INT i = 0; i < 64; i++ )
			nExButton[2][i] = 0;
	}

	void	DefaultExController3() {
		// Mahjang狠嫩白
		for( INT i = 0; i < 64; i++ )
			nExButton[3][i] = 0;
	}

	void	DefaultNsfController() {
		for( INT i = 0; i < 64; i++ )
			nNsfButton[i] = 0;

		nNsfButton[ 0] = DIK_UP;	// Play
		nNsfButton[ 1] = DIK_DOWN;	// Stop
		nNsfButton[ 2] = DIK_LEFT;	// Number -1
		nNsfButton[ 3] = DIK_RIGHT;	// Number +1
		nNsfButton[ 4] = DIK_PRIOR;	// Number +16
		nNsfButton[ 5] = DIK_NEXT;	// Number -16
	}

	void	DefaultVSUnisystem() {
		for( INT i = 0; i < 64; i++ )
			nVSUnisystem[i] = 0;

		nVSUnisystem[0] = DIK_C;	// Coin
	}
};

class	CCfgMovie
{
public:
	BYTE	bUsePlayer[4];
	BOOL	bRerecord;
	BOOL	bLoopPlay;
	BOOL	bResetRec;
	BOOL	bPadDisplay;

	void	Default() {
		bUsePlayer[0] = 0xFF;
		bUsePlayer[1] = 0x00;
		bUsePlayer[2] = 0x00;
		bUsePlayer[3] = 0x00;
		bRerecord = TRUE;
		bLoopPlay = FALSE;
		bResetRec = FALSE;
		bPadDisplay = FALSE;
	}
};

class	CCfgLauncher
{
public:
	RECT	rcWindowPos;

	BYTE	bHeaderView [16];
	BYTE	nHeaderOrder[16];
	SHORT	nHeaderWidth[16];

	INT	nListSelect;

	BOOL	bSortDir;
	INT	nSortType;

	BYTE	bFolderUse[16];
	CHAR	szFolder[16][_MAX_PATH];

	CHAR	szLastSelect[_MAX_PATH];

	void	Default() {
		rcWindowPos.left = rcWindowPos.right =
		rcWindowPos.top = rcWindowPos.bottom = 0;

		nListSelect = 0;

		bSortDir = FALSE;
		nSortType = 0;

		INT	i;
		for( i = 0; i < 16; i++ ) {
			bHeaderView [i] = TRUE;
			nHeaderOrder[i] = i;
			nHeaderWidth[i] = (i==0)?160:48;
		}

		for( i = 0; i < 16; i++ ) {
			bFolderUse[i] = FALSE;
			szFolder[i][0] = '\0';
		}

		szLastSelect[0] = '\0';
	}
};

class	CCfgExtraSound
{
public:
	CHAR	szExtSoundFile[ ESF_FILE_MAX ][ MAX_PATH ];

	void	Default() {
		for( INT i = 0; i < ESF_FILE_MAX; i++ ) {
			szExtSoundFile[i][0] = '\0';
		}
	}
};

class	CCfgNetPlay
{
public:
	RECT	rcChatPos;

	INT	nRecentPort, nRecentHost;
	CHAR	szRecentPort[16][_MAX_PATH+1];
	CHAR	szRecentHost[16][_MAX_PATH+1];
	CHAR	szNick[_MAX_PATH+1];

	void	Default() {
		rcChatPos.left = rcChatPos.right =
		rcChatPos.top = rcChatPos.bottom = 0;

		::lstrcpy( szNick, "NoName" );

		for( INT i = 0; i < 16; i++ ) {
			szRecentPort[i][0] = '\0';
			szRecentHost[i][0] = '\0';
		}
		::lstrcpy( szRecentPort[0], "10000" );
		::lstrcpy( szRecentHost[0], "localhost:10000" );

		nRecentPort = 1;
		nRecentHost = 1;
	}
};

class	CConfig
{
public:
	CConfig() {
		m_bKeyboardDisable = FALSE;
		Default();
	}

	CCfgGeneral	general;
	CCfgPath	path;
	CCfgEmulator	emulator;
	CCfgGraphics	graphics;
	CCfgSound	sound;
	CCfgShortCut	shortcut;
	CCfgLanguage	language;
	CCfgController	controller;
	CCfgMovie	movie;
	CCfgLauncher	launcher;
	CCfgExtraSound	extsound;
	CCfgNetPlay	netplay;

	void	Default() {
		general.Default();
		path.Default();
		emulator.Default();
		graphics.Default();
		sound.Default();
		shortcut.Default();
		language.Default();
		controller.Default();
		movie.Default();
		launcher.Default();
		extsound.Default();
		netplay.Default();
	}

	void	Load();
	void	Save();

// Checker
	void	InputKeyboardDisable( BOOL bEnable ) {
		m_bKeyboardDisable = bEnable;
	}

	BOOL	ButtonCheck( INT nNo, INT nID );
	BOOL	ExButtonCheck( INT nNo, INT nID );
	BOOL	NsfButtonCheck( INT nID );
	BOOL	ButtonCheck( INT nID, WORD* pKey );

// Converter
	string	ShortcutToKeyName( INT nShortcut );

// Table
	static	INT	SamplingRateTable[];
	static	INT	ShortcutKeyID[];
protected:

	BOOL	m_bKeyboardDisable;
private:
};

// 屄暿僎乕儉僆僾僔儑儞
class	CGameOption
{
public:
	// for Cartridge
	void	Load( DWORD crc );
	void	Save( LPCSTR name, DWORD crc );
	// for FDS
	void	Load( DWORD gid, DWORD mid );
	void	Save( LPCSTR name, DWORD gid, DWORD mid );

	// Default曐懚
	INT	defRenderMethod;
	INT	defIRQtype;
	BOOL	defFrameIRQ;
	BOOL	defVideoMode;

	// 僨乕僞
	INT	nRenderMethod;
	INT	nIRQtype;
	BOOL	bFrameIRQ;
	BOOL	bVideoMode;
protected:
private:
};

extern	CConfig		Config;
extern	CGameOption	GameOption;

#endif // !__CCONFIG_INCLUDED__

⌨️ 快捷键说明

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