All Projects → dustpg → Stepfc

dustpg / Stepfc

Licence: other
Make FC(NES) Emulator Step-by-Step 一步一步模拟红白机

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Stepfc

Gearnes
NES / Famicom emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 23 (-89.69%)
Mutual labels:  emulator, nes-emulator
Rustynes
👾 An NES emulator by Rust and WebAssembly
Stars: ✭ 399 (+78.92%)
Mutual labels:  nes-emulator, emulator
awesome-emu-resources
A curated list of emulator development resources
Stars: ✭ 26 (-88.34%)
Mutual labels:  emulator, nes-emulator
SaltyNES
A NES emulator in WebAssembly
Stars: ✭ 69 (-69.06%)
Mutual labels:  emulator, nes-emulator
Nsfplay
Nintendo NES sound file NSF music player
Stars: ✭ 155 (-30.49%)
Mutual labels:  nes-emulator, emulator
js-nes-emulator
NES emulator in javascript.
Stars: ✭ 12 (-94.62%)
Mutual labels:  emulator, nes-emulator
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (+44.84%)
Mutual labels:  nes-emulator, emulator
Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (+9.42%)
Mutual labels:  nes-emulator, emulator
Xamarines
🕹️📱Cross-Platform Nintendo Emulator using Xamarin and .Net Standard!
Stars: ✭ 153 (-31.39%)
Mutual labels:  nes-emulator, emulator
Nes Rust
NES emulator written in Rust + WASM
Stars: ✭ 141 (-36.77%)
Mutual labels:  nes-emulator, emulator
Nes.swift
An NES emulator written in Swift
Stars: ✭ 103 (-53.81%)
Mutual labels:  nes-emulator, emulator
Mednes
A cycle-accurate, cross-platform NES emulator written in C++
Stars: ✭ 189 (-15.25%)
Mutual labels:  nes-emulator, emulator
Flownes
🎮 An NES emulator written in ES2015+ with flowtype
Stars: ✭ 160 (-28.25%)
Mutual labels:  nes-emulator, emulator
Simplenes
An NES emulator in C++
Stars: ✭ 2,915 (+1207.17%)
Mutual labels:  nes-emulator, emulator
Chameleonmini Rebooted
Chameleon Mini revE rebooted - Iceman Fork, the ChameleonMini is a versatile contactless smartcard emulator (NFC/RFID)
Stars: ✭ 208 (-6.73%)
Mutual labels:  emulator
X6502
Yet another 6502 emulator that one day dreams of being an Atari 2600.
Stars: ✭ 220 (-1.35%)
Mutual labels:  emulator
Goboy
Multi-platform Nintendo Game Boy Color emulator written in Go
Stars: ✭ 2,403 (+977.58%)
Mutual labels:  emulator
Esp32 Obd2 Emulator
Open-source OBD-II emulator based on an ESP32 + CAN transceiver IC, controllable via WiFi through a simple web UI (or via API)
Stars: ✭ 207 (-7.17%)
Mutual labels:  emulator
Jquery.terminal
jQuery Terminal Emulator - JavaScript library for creating web-based terminals with custom commands
Stars: ✭ 2,623 (+1076.23%)
Mutual labels:  emulator
Punes
Nintendo Entertaiment System emulator and NSF/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)
Stars: ✭ 217 (-2.69%)
Mutual labels:  emulator

Make FC(NES) Emulator Step by Step

Re: 从零开始的红白机模拟

StepFC

项目说明

同时拥有VS2017和CodeLite的项目工程以保证在不同编译器上能够成功编译.

License

  • StepFC::StepX 每个步骤, 基于 MIT, 重点是分享代码
  • StepFC::StepFC 成品模拟器, 基于GPLv2, 重点是模拟器本身的可执行二进制文件

StepX列表

  1. 第0步: 加载NES ROM文件
    • 读取文件是优先的.
    • 但是打好基础也是非常重要的, 接口是一个好东西
  2. 第1步: 实现基本的CPU读写功能
    • 需要了解CPU地址空间的布局哦
  3. 第2步: 6502汇编
    • 实现反汇编是调试不可缺少的一环
  4. 第3步: 实现CPU指令
    • 这一步比起前面就比较大了
    • 实现所有的CPU指令
  5. 第4步: 背景渲染
    • 实现第一次图像显示
  6. 第5步: 基本输入
    • 实现标准双手柄的输入
  7. 第6步: 精灵渲染
    • 然后就是渲染64个精灵
  8. 第7步: 实现中精度同步
    • 基于初级的暴力的垂直同步
    • 合并背景与精灵
  9. 第8步: 实现基本音频播放
    • 用一个末端的状态机实现音频吧
  10. 第9步: 实现Mappper1234
    • Mapper4是主要介绍的, 因为会触发IRQ
  11. 第A步: 实现基础混频
    • 将音频准确度从60Hz提高至44.1kHz吧
    • 但是距离1.79MHz还差了几十倍, 路还很长
  12. 第B步: 存档读档规范化
    • 终于规范化存储档了
    • SL大法好
  13. 第C步: 录像与回放
    • 可以用于TAS了
  14. 第D步: 滤镜与滤波器
    • 让用户体验更好一点
    • FC甚至自带了滤波器
  15. 第E步: 扩展音频
    • 扩展音频也是FC的一大亮点
    • NSF探索
    • 音频可视化
  16. 第F步: 全部成为F
    • 重启
    • 扩展输入
    • 更精确地模拟
    • FDS BIOS
    • 更多的Mapper
    • 游戏特化
    • 平台优化
    • 网络
    • 图形用户接口
    • NES调试
    • 作弊器/金手指
    • 以上内容均讨论, 内容留空
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].