作者erspicu (.)
看板Emulator
标题[闲聊] 即使是古早GameBoy模拟
时间Wed Nov 4 16:36:22 2015
纯闲聊...
原本觉得gb模拟应该相对於其他主机容易,
也的确要写出来会动的gb模拟器应该是比它後期的主机都容易,
但要写出来跟写出精确.正确的模拟器又是两回事...
原本是要朝向更多功能发展(gbc.sgb功能追加.mbc type功能追加...),
gbc.sgb也的确都跑出了颜色,玛莉欧dx甚至跑起来也有一个样子,
但就是都有一些显示上的bug,别说gbc游戏,
最基本的rockman word5 甚至跑关会跳出......
想说我都把cpu模拟的部分修正到跑测试完全无误,到底是哪里还有问题...
(gb模拟器验证 可参考
http://gbdev.gg8.se/wiki/articles/Test_ROMs ),
(另外FC可参考
http://wiki.nesdev.com/w/index.php/Emulator_tests )
想说应该是哪个指令其实还有小问题,找非常久.....
最後前一天发现原因,是因为 0xcb 延伸opcode的 cycle time 完全没加到,
timing不正确.... 後来又好奇拿别的模拟器测试,虽然那些模拟器相容性好,
功能支援也完整(gnuboy与vba),跑起一般游戏好像也没问题,但跑cpu test,
错得乱七八糟....11个测试挂掉几乎一半 (好奇怎不修一修....)
而我的cpu pass,但其他测试当然全挂.....主要是观念不够清楚,
cpu虽然硬修正到pass,但像是timing的环节.中断等等一堆细节,
中间可能都还一堆问题,所以我後来领悟了.......
能写出来只是一个最基本入门的门槛,但如何正确.精准处理又是另一个层次,
也许gb相较於其他主机简易些,但依照我的能力,应该先求正确,
至少跑游戏画面要对,别跑一跑跳掉或是怎样的,testing能过当然更好,
但重点是太多观念还得再离清....後来就决定化繁为简,先把最最基本的gb都做到好,
其他功能後续再说了.
现在写一些早期8bit或是16bit的主机困难度应该是少几年前非常多
(写到完整又另一回事),主要是前辈括荒时期,没那些文件描述,
据说都是直接拆晶片靠电子相关技术在测试特性,
模拟器追根究柢是精通硬体的人比较吃香,难是难在很多观念和运作正确理解,
会写软体但对硬体理解有限,要弄出完整的东西,真的是比较吃力.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.171.250.102
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Emulator/M.1446626191.A.551.html
※ 编辑: erspicu (118.171.250.102), 11/04/2015 16:38:24
1F:推 MaiLu: 虽然看不懂,但是推专业与用心 11/04 16:45
2F:推 jeff0811: 赞喔 11/04 17:14
3F:推 conpo: 推 11/04 20:48
4F:推 Jay915: 加油 走过就是你的了 11/04 23:18
5F:推 qazxswptt: 推 11/05 00:43
6F:推 XOGC: Fan Wen Yang算是神人吗/.y 11/05 01:09
印像中好像是很早期就写出相当不错任天堂模拟器的人,满厉害的.
7F:推 ResolaQQ: 纯好奇,为什麽会想写到精确呀?感觉要写得比前人好太难 11/05 05:13
精确是期望能有最好,但至少要能正确,好比说最少最少画面正确,
或不会玩一玩跳出游戏关卡之类的
※ 编辑: erspicu (60.248.56.181), 11/05/2015 18:02:38
8F:推 Samus: 辛苦辛苦 推 努力付出 11/14 14:29
9F:推 bgworld: 好厉害@@ 11/15 21:34