模拟器是如何工作的?当我看到NES/SNES或C64模拟器时,我很震惊。
您是否必须通过解释特定的组装指令来模拟这些机器的处理器?还有什么?它们通常是如何设计的?
你能给那些对编写模拟器(特别是游戏系统)感兴趣的人一些建议吗?
模拟器是如何工作的?当我看到NES/SNES或C64模拟器时,我很震惊。
您是否必须通过解释特定的组装指令来模拟这些机器的处理器?还有什么?它们通常是如何设计的?
你能给那些对编写模拟器(特别是游戏系统)感兴趣的人一些建议吗?
当前回答
我写过一篇关于用JavaScript模拟Chip-8系统的文章。
这是一个很好的开始,因为系统不是很复杂,但你仍然了解操作码、堆栈、寄存器等是如何工作的。
我将很快为NES写一篇更长的指南。
其他回答
我将如何开始模仿。
1.买一些关于低级编程的书籍,你将需要它来“模拟”任天堂的操作系统……游戏的男孩……
2.专门找一些模拟方面的书,也许还有操作系统开发方面的。(你不会做一个操作系统,但最接近它。
3.看看一些开源仿真器,特别是那些您想为其创建仿真器的系统。
4.将更复杂的代码片段复制到IDE/编译器中。这将节省编写长代码的时间。这就是我为操作系统开发所做的,使用linux的一个区域
我写过一篇关于用JavaScript模拟Chip-8系统的文章。
这是一个很好的开始,因为系统不是很复杂,但你仍然了解操作码、堆栈、寄存器等是如何工作的。
我将很快为NES写一篇更长的指南。
我从来没有做过像模拟游戏机这样奇特的事情,但我曾经上过一门课程,作业是为Andrew Tanenbaums结构化计算机组织中描述的机器编写模拟器。这很有趣,给了我很多顿悟的时刻。在开始编写一个真正的模拟器之前,您可能需要先阅读一下这本书。
共享源设备模拟器包含PocketPC/智能手机模拟器的可构建源代码(需要Visual Studio,在Windows上运行)。我参与了二进制版本的V1和V2。
它解决了许多仿真问题: -从虚拟客户端到物理客户端再到虚拟主机的高效地址转换 - JIT编译客户代码 -模拟周边设备,如网络适配器、触摸屏和音频 - UI集成,主机键盘和鼠标 -保存/恢复状态,用于模拟从低功耗模式恢复
还可以查看Darek Mihocka的Emulators.com,获得关于jit指令级优化的建议,以及许多关于构建高效模拟器的其他好东西。