
使用C++实现FC红白机模拟器:基于QT
文章平均质量分 89
让我们一起从0开始,编写一个红白机模拟器吧!
因为笔者个人写作水平和能力限制,文字风格较为啰嗦,不适合大神和想要直接写代码的人上手哦~
冬瓜神君
路漫漫其修远兮,吾将上下而求索
展开
-
使用C++实现FC红白机模拟器 Cartridge 与 Mapper(实现篇)
2.Cartridge 与 Mapper的实现首先我们在QT中创建两个类,Cartridge 与Mapper类:Cartridge 类负责加载和解析ROM,因为CPU和PPU的内存映射都有指向卡带的部分,因此需要分别提供CPU和PPU的读写接口。 Mapper 类负责地址空间与ROM的实际映射关系。2.1Cartridge 类实现在Qt中创建Cartridge类并生成cartridge.h与cartridge.cpp两个文件。cartridge.h内容如下:#ifndef C...原创 2021-08-26 12:54:22 · 2030 阅读 · 3 评论 -
使用C++实现FC红白机模拟器 Cartridge 与 Mapper(原理篇)
1. 认识nes文件我们既然是模拟,就不可能使用实体的卡带硬件。那我们如何获取游戏文件呢?好在已经有人为我们准备好了(心怀感恩)。.nes文件是NES(FC)的rom文件,关于它的来龙去脉这里就不做详细介绍了(我也不知道)。.nes有1.0和2.0之分,简单起见 这里只考虑1.0。NES文件由 Header、Trainer、PRG ROM、CHR ROM4个部分组成。Header 大小:16字节,用于ROM文件的校验,记录PRG和CHR大小等作用。 Trainer,这个区域很多时候并不.原创 2021-08-24 10:28:31 · 3045 阅读 · 0 评论 -
使用C++实现FC红白机模拟器 概述
想必提到Fc游戏机大家都应该不会陌生(陌生您也不会搜到这篇文章了 ),FC游戏机又称红白机,是任天堂在1983年退出,很快也火遍中国。不过国内更熟悉的可能是小霸王等一众兼容机(偷笑)~~但是不管怎么说,红白机依然使我们不少人的童年回忆。想必当初一起玩游戏的那些伙伴已经走入了各行各业,自然也少不了成为“程序猿”的。你没有想过自己实现一款红白机呢?或许这有些难度,毕竟我们还需要准备不同的硬件、设计电路焊接等。不过好在,我们可以通过纯代码的方式在PC(或者android)实现一个红白机模拟器。工欲善其事必先利原创 2021-08-23 12:40:54 · 3986 阅读 · 3 评论