生活/53.33M
fc模拟器(Advanced NES FC Simulator Free)是一款简单有趣的红白机模拟游戏。在游戏中,你可以随时感受新的玩法,找到更多的游戏服务,带来新的更有趣的游戏模式。享受快乐的游戏模式装置。回忆经典游戏的内容后,可以看到更多有趣多样的通用模拟器;全新无广告玩法,开启专业游戏模式和体验。快来下载体验吧。
1.将继续更新街机游戏。
2.支持水平版和垂直版控制,快乐摇杆。
3.具有用户友好、易于操作的管理界面。
4.最好的手持模拟器和街机模拟器。
打开fc模拟器(Advanced NES FC Simulator Free)安卓版“我”到对应的,想玩的模拟器游戏
点击下载,按照提示一步一步完成即可
打开游戏,即可轻松玩耍各模拟器游戏
需要注意的是个别大型游戏,需要一定的手机配置,不然进游戏会发现很卡、 对应的键位需要自己摸索。
联机方法:
双方都先读取同样的rom
1P 选择 'Nifi' > 'As a host'
2P 选择'Nifi' > 'As a guest'
如果底下显示playing,就代表联机上了。
注意以下事项:
不要使用快捷键、不要即使存取档、不要使用R、L,不要读取新的rom
保证双方的按键设置一致。
不想联机时,选择'Nifi' > 'Close Nifi'
fc模拟器(Advanced NES FC Simulator Free)如何使用?
1,将下载到的模拟器解压缩,你会看到一个roms文件夹,这里就是存放游戏ROM文件的。如图:
2, 将下载到的FC游戏ROM,放到上面说的roms文件夹下,注意,ROM是ZIP格式,你可以改变ROM的名字,但是不要解压缩也不要改后缀名,比如下载《魂斗罗》得到的文件是 Contra.zip,为了方便记忆你可以改成 魂斗罗.zip。如图:
3, 双击VirtuaNES.exe,打开模拟器,然后点击文件――打开:
4, 找到刚才的roms文件夹,选择一个想玩的游戏,比如:魂斗罗.zip,然后单机右下角的打开就可以玩游戏了^_^~~~
5, 模拟器默认的控制方式是
6, 当然如果你习惯用手柄或者用其他按键来控制,你可以修改,点选项――控制器,然后在想修改的按键对应的框里面输入你想设置的按键,然后点确定就可以了。如图:
开发攻略
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模拟器(Advanced NES FC Simulator Free)。
首先还是要懂汇编啦,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语言就足够了)
FC模拟器安卓版仅支持安卓
打开FC模拟器安卓版“我”到对应的,想玩的模拟器游戏
点击下载,按照提示一步一步完成即可
打开游戏,即可轻松玩耍各模拟器游戏
需要注意的是个别大型游戏,需要一定的手机配置,不然进游戏会发现很卡、 对应的键位需要自己摸索。
2023-1-4
1、语言包已经更新,请注意使用旧版的语言包可能出现问题。
2、模拟器可以开关在播放录像时的时间显示。
3、修正了 MMC5 的区块载入状态问题。
4、修正了一处 FDS。
5、修正了一些导出AVI录像方面的错误。
2023-2-23
1.修复了多种一直的BUG
2.增加了多种经典游戏
3.适配多种最新的机型
4.优化了游戏的流畅性和游戏体验
1.经典按键分布手柄式操作;
2.流畅画面表现力告别闪屏;
3.连发按键给你轻松操作感;
4.实时存档不必再为无法保存而烦恼
2023-6-27
1.修复了多种一直的BUG
2.增加了多种经典游戏
3.适配多种最新的机型
4.优化了游戏的流畅性和游戏体验
2023-1-4
1、语言包已经更新,请注意使用旧版的语言包可能出现问题。
2、模拟器可以开关在播放录像时的时间显示。
3、修正了 MMC5 的区块载入状态问题。
4、修正了一处 FDS。
5、修正了一些导出AVI录像方面的错误。