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

📄 apu_interface.h

📁 著名的任天堂FC游戏机模拟器VirtuaNes 085版的源码!
💻 H
字号:
//////////////////////////////////////////////////////////////////////////
//                                                                      //
//      APU Interface class                                             //
//                                                           Norix      //
//                                               written     2001/09/18 //
//                                               last modify ----/--/-- //
//////////////////////////////////////////////////////////////////////////
#ifndef	__APU_INTERFACE_INCLUDED__
#define	__APU_INTERFACE_INCLUDED__

#define	WIN32_LEAN_AND_MEAN
#include "windows.h"

#include "typedef.h"
#include "macro.h"

#define	APU_CLOCK		1789772.5f

// Fixed point decimal macro
#define	INT2FIX(x)	((x)<<16)
#define	FIX2INT(x)	((x)>>16)

// APU僀儞僞乕僼僃乕僗拪徾僋儔僗
class	APU_INTERFACE
{
public:
	// 忢偵幚憰傪梫媮偝傟傞傕偺
	virtual	void	Reset( FLOAT fClock, INT nRate ) = 0;
	virtual	void	Setup( FLOAT fClock, INT nRate ) = 0;
	virtual	void	Write( WORD addr, BYTE data ) = 0;
	virtual	INT	Process( INT channel ) = 0;

	// 僆僾僔儑儞偱幚憰偡傞
	virtual	BYTE	Read ( WORD addr ) { return (BYTE)(addr>>8); }

	virtual	void	WriteSync( WORD addr, BYTE data ) {}
	virtual	BYTE	ReadSync ( WORD addr ) { return 0; }
	virtual	void	VSync() {}
	virtual	BOOL	Sync( INT cycles ) { return FALSE; }	// IRQ傪敪惗偡傞帪TRUE傪曉偡

	virtual	INT	GetFreq( INT channel ) { return 0; }

	// For State save
	virtual	INT	GetStateSize() { return 0; }
	virtual	void	SaveState( LPBYTE p ) {}
	virtual	void	LoadState( LPBYTE p ) {}
protected:
private:
};

#endif	// !__APU_INTERFACE_INCLUDED__

⌨️ 快捷键说明

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