类型:其他 版本:v3.11大小:19.8MB更新:2022/4/13 12:31:15 语言:简体中文等级:平台:Android
软件介绍下载地址
FC模拟器是一款简单有趣的红白机模拟游戏。在游戏中你可以在这里找到很多熟悉的复古fc游戏,但是那毕竟是情怀啊,FC模拟器能够帮助玩家在手机上完美运行红白机的FC类型游戏,更具风味的玩法。
1.红白机游戏完美模拟
2.重拾儿时经典的回忆
3.超过30款作品等你玩
这是一个经典怀旧的游戏模拟器,测试可以支持一下小游戏多达两百多款,请自行在应用内下载rom!
1.点控模式
平滑简单的曹通模式可以轻松解决各种问题
2.简单快速的游戏模式
3.回味经典的游戏内容
4.全新的无广告玩法
1.将继续更新街机游戏。
2.支持水平版和垂直版控制,快乐摇杆。
3.具有用户友好、易于操作的管理界面。
4.最好的手持模拟器和街机模拟器。
出色的游戏模拟器。可以让你的手机完美运行经典的红白机游戏。强大的模拟效果,让您体验经典游戏的流畅乐趣。fc模拟器拥有丰富方便的功能,实时存档不再无法保存和烦恼,传统按键配置,让您有一种回归童年的乐趣。
第一次安装会解压内置游戏
是一款功能齐全的小霸王游戏机模拟器
收集了以前常玩的四百款NES游戏,可以畅玩游戏了
支持手柄的控制,您可以选择加载手柄对游戏进行操作
可以设置游戏的声音,根据自己的爱好进行选择
能够选择屏幕的大小,随意调整
可以选择自动画面省略
开发攻略
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语言就足够了)
还记得小时候家里没钱,就在别人家玩红白机,那时候超级玛丽一人一把,魂斗罗一起闯关,超级好玩。
到后来家里面买了第一台彩电,没想到里面内置300个小游戏,还附带两个游戏手柄,这下好了,有时间就在家玩游戏,影子传说玩通关,还有洛克人、雪人,真是回忆满满!(当时家里面人不让玩,把手柄藏起来,但机智的我肯定是能找得到的。每次要玩游戏的时候,找出手柄玩完游戏又原封不动的放回去,真是神不知鬼不觉)。
后面就到了诺基亚塞班时代,当时用NES模拟器玩游戏,实体按键玩着也是挺舒服的,最重要的是可以存档,硬是把超级玛丽通关了。
FC模拟器下载