前言
编程语言是一门工具。它用于实现逻辑。看到C++实现的任天堂红白机模拟器这篇推荐之后,遂去阅读SimpleNES的源码。
代码中关于日志设置和按键映射的相关代码阅读完毕。关于nes模拟的代码并没有阅读。使用软件来模拟硬件,需要先熟悉游戏机的硬件。这里|这里有相关的教程,但学习起来性价比并不高,遂忽略具体的模拟过程,仅看硬件模拟的总体代码框架。
总体代码
主函数的代码分为四部分:参数读取,日志设置,按键映射,模拟器运行nes游戏。
参数读取:通过argc/argv
循环读取参数。每个参数均为字符串类型,使用stringstream
对字符串中的内容进行细致处理。日志设置:日志分级,只记录比设置等级高的日志;不同级别的日志可以输出不同/相同日志文件中;存在默认日志等级;(日志对象可以是一个文件流)按键映射:基础库提供全局按键;使用的真实按键和虚拟按键之间建立映射关系;按键之间的映射关系,可以通过配置文件修改。模拟器运行游戏(相关代码未读):卡带模拟(根据nes文件格式,将nes文件加载如内存);CPU模拟;PPU模拟;BUS模拟(通过总线进行读写数据);等;
缺少
代码的cmake
过程同样没看。不咋会,哪天遇到/整理一个关于库的创建/调用的cmake
编译过程。
咋向下发射子弹的??