Emulator 板


LINE

純拉賽文...輕鬆看就好 https://youtu.be/JDWlDcBtvmU
由於PC模擬器寫到後來撞牆,沒了動力,主要是周邊裝置IO文件看得不是很懂, 又非電子系所畢業,硬體不太行,K了很吃力,後來就沒進度先放著..... (INTEL真的出一堆數字編號的控制器晶片..) 趁著這個空檔突然想起以前寫過的任天堂紅白機模擬器(其實完成度根本啥都稱不上), 想把這舊專案重啟整個重新大更新,回去找以前的code,因為覺得沒啥參考價值, 沒放出來到網路上,所以檔案沒備份好,只剩下CPU code這塊, 就利用這僅存的部分繼續完成,反正之前的東西砍掉也沒差. 紅白機模擬器好不好寫? 真的建議初學者寫gb來練習比較好, 相比下nes的真的比較有挑戰性. 如果你只是要一個體驗,沒打算實作到一定的完整度,是也可以考慮nes, 最簡單的處理方式就是找mapper0 而且畫面沒有scrolling的rom來測試, Donkey Kong是很適合的遊戲,只要固定在畫面更新時一次性把整個背景和sprites 繪出來就好,但這只能夠讓部分遊戲看起來好像有一個樣子, 真正說起來nes難是難在透過正確的timing,在正確的時間下一條一條去輸出scanlie, 然後不管是畫面輸出或是對PPU的記憶體進行讀寫都會跟 buff 的處理方式有關係, 內部還有暫存器會在特定的時間點更新,錯了一個環節畫面可能就錯亂掉了 (特別牽涉到 x y的scrolling這種遊戲). 其實nes撰寫有點超過我的能力(我本來悟性就不高...), 這次重啟專案主要目的就是希望可以讓timing正確一點, 至少可以處理到有scrolling特效遊戲,用比較合乎常規的方式去達成, 而不是亂做一個樣子,但頗為困難,所以不得以最後借助兩款open專案, https://github.com/scottferg/Fergulator 這款我主要是參考它timing的方式以及每行scanlie的正確處理, 我主要目的不是移植別人的東西,而是瞭解觀念(雖然還是有問號 orz..), 重新用自己風格和想法撰寫,因為我的是c#,這款是go,所以日後我專案放出來, 除非用心去找,不然是不太好看出參考的痕跡. https://sourceforge.net/projects/mynes/ 這款我主要是參考PPU記憶體讀寫牽涉到BUFF這塊,同樣都是C#專案, 有部分method的code接近,但在日後應該會用我自己的想法再度改寫些. 至於timing為何不參考mynes這款,mynes是完成度我認為有95%的完美模擬器, 而它的timing完成度應該有99%正確性(數字自己亂估,不用太認真), 寫法相當複雜,以學習性來說Fergulator理想很多,不得不推薦一下mynes這款模擬器, 不錯,精確度和mapper可能比很多模擬器更好,網路上都有測試比較過. 這重啟專案目前會再補足一些東西,應該是近期會釋放出來,以學習跟教育為用途, sprite0hit 跟 SpriteOverflow 尚未實作,sprite跟背景之間的穿透處理還沒正確做完, 目前也還沒遊戲手把輸入功能,code很亂需要整理和優化 (但即使還沒優化效能目前很夠用) , 最後就是super mario bros畫面背景還有問題 orz...然後會想再多支援幾個簡單的mapper(可能真的只是支援很簡單的幾個mapper), 完成後會放上github. 最後談到nes的耗費效能...其實現在的電腦不管是任何程式語言甚至是script language, 應該跑nes模擬器都沒啥問題,連javascript跑起來也不差了... 效能瓶頸比較要注意的是畫面顯示這塊會佔用最多,至少你的顯示方式, 在不做任何其他事情的時候,單純只是顯示靜態畫面要達到最好有2.300 fps為基準, 因為後續還要扣除掉模擬器的運作時間.畫面特效處理等等,顯示越快, 你能用的時間越充裕,目前我是在沒code優化狀態下還可以搭配XBRZ 5X (xbrz 5x filter有出了...),而且這部分還是純c#寫的,都還ok, 但filter的部分有整個自己優化處理過了. 其實還想些一些東西,但真的模擬器難不是難在寫出,而且好好地寫好, 雖然興趣廣,但功能完善度東缺西缺的,應該會先補齊(如果可以的話). --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.70.88.120
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Emulator/M.1477331332.A.FEE.html
1F:推 oginome: 推erspicu大實作! 10/25 01:52
2F:推 superrockman: 會寫程式就已經很神了阿.....真的 10/25 01:57
※ 編輯: erspicu (61.70.88.120), 10/25/2016 02:05:09
3F:→ HiJimmy: 最近都再用平板玩紅白機~~ 10/25 02:58
※ 編輯: erspicu (60.248.56.181), 10/26/2016 17:55:06
4F:推 conpo: 專業好文推!辛苦了 10/26 20:45







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP