日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

NES模拟器源码阅读

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NES模拟器源码阅读 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

編程語(yǔ)言是一門工具。它用于實(shí)現(xiàn)邏輯。看到C++實(shí)現(xiàn)的任天堂紅白機(jī)模擬器這篇推薦之后,遂去閱讀SimpleNES的源碼。

代碼中關(guān)于日志設(shè)置和按鍵映射的相關(guān)代碼閱讀完畢。關(guān)于nes模擬的代碼并沒(méi)有閱讀。使用軟件來(lái)模擬硬件,需要先熟悉游戲機(jī)的硬件。這里|這里有相關(guān)的教程,但學(xué)習(xí)起來(lái)性價(jià)比并不高,遂忽略具體的模擬過(guò)程,僅看硬件模擬的總體代碼框架。


總體代碼

主函數(shù)的代碼分為四部分:參數(shù)讀取,日志設(shè)置,按鍵映射,模擬器運(yùn)行nes游戲。

  • 參數(shù)讀取:通過(guò)argc/argv循環(huán)讀取參數(shù)。每個(gè)參數(shù)均為字符串類型,使用stringstream對(duì)字符串中的內(nèi)容進(jìn)行細(xì)致處理。
  • 日志設(shè)置:日志分級(jí),只記錄比設(shè)置等級(jí)高的日志;不同級(jí)別的日志可以輸出不同/相同日志文件中;存在默認(rèn)日志等級(jí);(日志對(duì)象可以是一個(gè)文件流)
  • 按鍵映射:基礎(chǔ)庫(kù)提供全局按鍵;使用的真實(shí)按鍵和虛擬按鍵之間建立映射關(guān)系;按鍵之間的映射關(guān)系,可以通過(guò)配置文件修改。
  • 模擬器運(yùn)行游戲(相關(guān)代碼未讀):卡帶模擬(根據(jù)nes文件格式,將nes文件加載如內(nèi)存);CPU模擬;PPU模擬;BUS模擬(通過(guò)總線進(jìn)行讀寫(xiě)數(shù)據(jù));等;

  • 缺少

    代碼的cmake過(guò)程同樣沒(méi)看。不咋會(huì),哪天遇到/整理一個(gè)關(guān)于庫(kù)的創(chuàng)建/調(diào)用的cmake編譯過(guò)程。

    咋向下發(fā)射子彈的??

    總結(jié)

    以上是生活随笔為你收集整理的NES模拟器源码阅读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。