91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

一個自己編寫的FC模擬器,可以運行一些體積小于40KB的游戲(部分游戲有Bug),程序結構簡單,可以說是模擬FC最少所需要的代碼量。使用freeglut庫輸出圖像。

資源截圖

代碼片段和文件信息

#include
#include?“Cpu.h“
using?namespace?std;

CCpu::CCpu(void):NesFile(NULL)
{
}


CCpu::~CCpu(void)
{
delete?NesFile;
}


//?初始化CPU
void?CCpu::Init(CNesFile*?FileCPpu*?ppu)
{
if(NesFile)
delete?NesFile;
NesFile=File;
Ppu=ppu;
Reset();
}


//?復位CPU
void?CCpu::Reset(void)
{
Ppu->Init(NesFile);
memset(Memory00x800); //將內存全部設為0
memset(SRAM00x2000); //SRAM設為0吧

RegA=RegX=RegY=0;
RegSP=0xff;
RegPC=ReadWord(RES_VECTOR);
RegP=Z_FLAG|R_FLAG;
isUp=isDown=isLeft=isRight=isA=isB=isSelect=isStart=false;
}


//?模擬一條CPU指令
bool?CCpu::emulate(void)
{
BYTE?opcode=ReadByte(RegPC++);
WORD?WordTemp;
BYTE?ByteTempByteTemp2;
switch(opcode)
{
//ADC?Immediate
case?0x69:
ByteTemp=ReadByte(RegPC++);
WordTemp=RegA+ByteTemp+(RegP&C_FLAG);
TestFlag(WordTemp>0xFFC_FLAG);
TestFlag((~(RegA^ByteTemp))&(RegA^WordTemp)&0x80V_FLAG);
RegA=(BYTE)WordTemp;
TestFlag(RegA==0Z_FLAG);
TestFlag(RegA&0x80N_FLAG);
break;
//ADC?Zero?Page
case?0x65:
ByteTemp=ReadByte(RegPC++);
ByteTemp=ReadByte(ByteTemp);
WordTemp=RegA+ByteTemp+(RegP&C_FLAG);
TestFlag(WordTemp>0xFFC_FLAG);
TestFlag((~(RegA^ByteTemp))&(RegA^WordTemp)&0x80V_FLAG);
RegA=(BYTE)WordTemp;
TestFlag(RegA==0Z_FLAG);
TestFlag(RegA&0x80N_FLAG);
break;
//ADC?Zero?PageX
case?0x75:
ByteTemp=ReadByte(RegPC++);
ByteTemp=ReadByte((ByteTemp+RegX)&0xff);
WordTemp=RegA+ByteTemp+(RegP&C_FLAG);
TestFlag(WordTemp>0xFFC_FLAG);
TestFlag((~(RegA^ByteTemp))&(RegA^WordTemp)&0x80V_FLAG);
RegA=(BYTE)WordTemp;
TestFlag(RegA==0Z_FLAG);
TestFlag(RegA&0x80N_FLAG);
break;
//ADC?Absolute
case?0x6d:
WordTemp=ReadWord(RegPC++);
RegPC++;
ByteTemp=ReadByte(WordTemp);
WordTemp=RegA+ByteTemp+(RegP&C_FLAG);
TestFlag(WordTemp>0xFFC_FLAG);
TestFlag((~(RegA^ByteTemp))&(RegA^WordTemp)&0x80V_FLAG);
RegA=(BYTE)WordTemp;
TestFlag(RegA==0Z_FLAG);
TestFlag(RegA&0x80N_FLAG);
break;
//ADC?AbsoluteX
case?0x7d:
WordTemp=ReadWord(RegPC++);
RegPC++;
ByteTemp=ReadByte(WordTemp+RegX);
WordTemp=RegA+ByteTemp+(RegP&C_FLAG);
TestFlag(WordTemp>0xFFC_FLAG);
TestFlag((~(RegA^ByteTemp))&(RegA^WordTemp)&0x80V_FLAG);
RegA=(BYTE)WordTemp;
TestFlag(RegA==0Z_FLAG);
TestFlag(RegA&0x80N_FLAG);
break;
//ADC?AbsoluteY
case?0x79:
WordTemp=ReadWord(RegPC++);
RegPC++;
ByteTemp=ReadByte(WordTemp+RegY);
WordTemp=RegA+ByteTemp+(RegP&C_FLAG);
TestFlag(WordTemp>0xFFC_FLAG);
TestFlag((~(RegA^ByteTemp))&(RegA^WordTemp)&0x80V_FLAG);
RegA=(BYTE)WordTemp;
TestFlag(RegA==0Z_FLAG);
TestFlag(RegA&0x80N_FLAG);
break;
//ADC?(IndirectX)
case?0x61:
ByteTemp=ReadByte(RegPC++);
WordTemp=ReadWord((ByteTemp+RegX)&0xff);
ByteTemp=ReadWord(WordTemp);
WordTemp=RegA+ByteTemp+(RegP&C_FLAG);
TestFlag(WordTemp>0xFFC_FLAG);
TestFlag((~(RegA^ByteTemp))&(RegA^WordTemp)&0x80V_FLAG);
RegA=(BYTE)WordTe

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????32504??2011-10-12?12:49??nesEmu\nesEmu\Cpu.cpp

?????文件???????4313??2011-10-13?11:33??nesEmu\nesEmu\Cpu.h

?????文件???????3616??2011-10-15?22:18??nesEmu\nesEmu\Main.cpp

?????文件?????306176??2011-10-13?12:56??nesEmu\nesEmu\nesEmu.exe

?????文件???????4774??2011-10-13?11:48??nesEmu\nesEmu\nesEmu.vcxproj

?????文件???????1586??2011-05-11?21:13??nesEmu\nesEmu\nesEmu.vcxproj.filters

?????文件????????143??2011-05-11?16:35??nesEmu\nesEmu\nesEmu.vcxproj.user

?????文件????????997??2011-05-11?23:32??nesEmu\nesEmu\NesFile.cpp

?????文件???????1492??2011-05-22?11:02??nesEmu\nesEmu\NesFile.h

?????文件???????7251??2011-10-15?22:17??nesEmu\nesEmu\Ppu.cpp

?????文件???????2516??2011-10-13?11:33??nesEmu\nesEmu\Ppu.h

?????文件??????24592??2002-10-27?15:29??nesEmu\nesEmu\test

?????文件????????156??2011-10-15?22:17??nesEmu\nesEmu\typedef.h

?????文件??????40976??2011-10-12?13:35??nesEmu\nesEmu\五子棋

?????文件??????65552??2011-10-12?13:36??nesEmu\nesEmu\俄羅斯方塊

?????文件??????40976??2011-10-12?13:36??nesEmu\nesEmu\彈球

?????文件??????40976??2011-10-12?13:37??nesEmu\nesEmu\拆屋工

?????文件??????40976??2011-10-12?13:35??nesEmu\nesEmu\挖金子

?????文件??????24592??2011-10-12?13:36??nesEmu\nesEmu\敲冰塊

?????文件??????40976??2011-10-12?13:37??nesEmu\nesEmu\超級瑪麗

?????文件????????885??2011-05-11?16:35??nesEmu\nesEmu.sln

????..A..H.?????20480??2011-10-15?22:18??nesEmu\nesEmu.suo

?????目錄??????????0??2011-10-15?22:18??nesEmu\nesEmu

?????目錄??????????0??2011-10-15?22:19??nesEmu

-----------?---------??----------?-----??----

???????????????706505????????????????????24


評論

共有 條評論