FC模拟器中文版
软件介绍
FC模拟器中文版安卓版是一款功能强大的fc游戏模拟器,这款软件可以帮助用户在手机上就可以轻松游玩经典的红白机游戏,并且软件还模拟出了红白机的操作方法,为玩家带来了更多的代入感,使玩家能够随时随地回味童年经典的红白机游戏。
FC模拟器中文版安卓版还内置了作弊代码以及金手指功能,用户如果觉得关卡太难,就可以使用软件自由的开启金手指,轻轻松松渡过难关。
软件特色
1、重拾儿时经典的回忆
2、超过30款作品等你玩
3、连发按键给你轻松操作感
4、流畅画面表现力告别闪屏
5、红白机游戏完美模拟
6、经典按键分布手柄式操作
软件亮点
1. 完美还原经典游戏,可以随时随地挑战;
2. 大量的游戏玩法,可以进行快乐游戏的快乐挑战;
3. 多种遥感游戏,你可以轻松拥有快乐的游戏体验。
4.简单有趣的红白机模拟游戏
使用教程
FC模拟器怎么游玩?
1、首先打开这款软件,然后点击上方的搜索框
2、然后进入软件找到自己下载的nes游戏文件,这边建议在手机内存中新建一个文件夹专门用来存游戏,方便用户在软件中找到游戏
3、找到文件之后点进去就可以直接进行游戏了,无需安装游戏可直接进行游戏
开发攻略
1.要懂汇编(具体包括:a.汇编指令代码功能。b.寄存器,内存,堆栈概念。c.CPU复位及中断过程)
2. 会一种程序设计语言。(写完的模拟器用 printf 就可以看功能了啊,流水灯轻松实现啊)
3. 最好了解一些“链接器”的知识,和“编译器”的C语言运行时上下文环境的问题。链接器要实现多个程序段的重定位。当然不会不影响,但是对C语言程序怎么就能执行的会很费解,会有心结的。(不会直接用汇编写程序嘛...NES模拟器都是汇编的,但是写个MSP430模拟器什么的就该有帮助了,这可以看IDE工具的相应的 linker user's guid 和 compiler user's guid 或相应的 help)
其他的比如《编译原理》基本用不到吧,编译器手册可能会有些用处,但是和教科书的编译原理是不一样的,这里主要是关注C语言和汇编如何对应。
主要就是组成原理啊,程序就是一条条指令,CPU就是”取指令->执行指令“的死循环嘛(第一条指令是复位过程决定的)。就要知道什么是指令,怎么执行就行啦。执行时涉及到什么就看什么是什么。简单的很。还有微机原理的内容理解有助于实现模拟器的一些外设(显示器,手柄什么的)仿真,对应情景就是向某个外设寄存器地址写了什么值相应模拟器应该如何模仿外设的功能。
关于【NES模拟器实现】:
刚好写过一个简单的fc模拟器。
首先还是要懂汇编啦,add,jmp,mov的功能什么的,再有知道寄存器和内存地址,堆栈这些概念。
然后知道复位,和其他中断的流程。
这时你就可以根据一个程序来开始写模拟器了,无非就是看每条指令把哪个操作数,经过什么变换,放到哪里去(补充:影响哪些状态标志位),复位的位置在哪里,从哪条指令开始运行,一步步调试了。最简单的就是switch指令case指令1,指令2...6502是复杂指令集的,指令编码规律性不大(但是还是有一些的),寻找到指令具体怎么操作了就看指令的功能了。参见:6502 Instruction Set。
另外调试过程中,6502cpu有一个“全覆盖”的程序帮助调试,这个程序几乎包含了所有指令和寻址方式的组合,如果结果错误就会陷入一个死循环指示错误。搜索:Klaus Dormann 的 6502_functional_tests(http://2m5.de/6502_Emu/index.htm)。
这个阶段写的 CPU 模拟器只是保证了 CPU 执行指令的正确性,一般就是通过观察执行完的指令影响的寄存器或是状态标志位和内存内容是不是按照预期变化。这种调试方式。
CPU写好了之后,显示的问题就是有个缓冲区是放那些显示的“模式块”的,按照它的格式定义转换成一个RGB数组就可以让各种 GUI 显示了。(好吧我就做到这里 ... 按键和声音什么的没有做)。参考【相关网站】有很丰富的资料。(这里还可以利用后面提到的《VirtuaNES-debug》辅助调试)
这部分就是实现外设的部分了,根据外设的需求在写入一些特殊地址时要做相应的功能响应。无非也就是将相关的内存内容经过一定变换,选择合适的方式表现出来(如输出字符,显示图像,输出声音之类的)。
【更容易实现的CPU】
还有我给个小提示,写CPU模拟器可以从MSP430开始,因为MSP430只有27条指令,精简指令集的编码方式(指令编码规律性强),4种寻址方式,相对简单,资料也多。根据TI的官方文档基本就可以完成设计,TI文档写得很漂亮!包括数据手册,用户指南什么的。
继续补充一点东西:
当初的实现大体流程(几天就可以搞定的):
1. 收集资料
2. 大体计划 :
了解硬件结构(CPU,PPU,APU,控制器...) -> 实现CPU -> 实现PPU -> 实现控制器 -> 实现APU
3. 初步理解 (10.9,10.10)
电路结构,卡带分类,CPU的最简单模式
while(1)
{
取指 -> 执行;
}
3. 实现 CPU(6502兼容 无十进制运算 dec)
了解指令分类
switch case 实现基本的 指令系统(10.11)
继续调试完善CPU, 代码基本完成(10.12)
指令全覆盖测试程序测试CPU,修复bug(10.13)
继续完善,写PPU(10.14)能够看到PPU中数据
写 ppu 数据 -> RGB 的转换
QT编写显示界面,基本完成背景图像显示(10.15)
完成精灵的显示,和滚动的实现(只有X轴)(10.16)
一定要多记笔记啊!我笔记发现没有记网站!当初有好几个那么经典的NEC资料和6502 CPU模拟器的网站的!
【相关网站】:
6502.org: The 6502 Microprocessor Resource 这个讲6502CPU模拟器设计资料的
NES info, programs, and demos 这个是 nesdev 有很多关于 NES 游戏机的资料。
另外有本《小霸王游戏机的奥秘.PDF》模糊的讲了一下NES游戏机的技术,但是不太深入。但是还是挺有用的。
再另外有个软件叫《VirtuaNES-debug》这个可以单步执行nes指令,可以调试NES游戏程序,并可以显示很多内部的数据结构,在实现过程中很有帮助的!(另外本身这个软件就是开源的)下面是软件示意图:
我以前写的NES和430的模拟器,写着玩的,代码量也不是很大,但是有些够理解用的基本功能了。都基本上是纯C语言写的,NES的用QT做了个图形显示,Cpu部分都是C语言实现。
还写了一个实现了几条指令的430CPU但是能跑流水灯了!而且是完全控制台下的流水灯!(c语言就足够了)