【遊戲框架系列】嵌入Bochs
02-05
https://www.zhihu.com/video/942673918079774720
想起之前看到JSLinux以及http://copy.sh/(竟然上不去了,copy/v86)的時候被震驚到了。當然,jslinux更加厲害一些,據說作者寫這個的目的是要在瀏覽器裡面運行gcc來測試js的性能……
手寫一個x86模擬器是非常困難的,我一點思路都木有,畢竟還要了解那麼多x86指令呢。想要自己做的話指令集和語法肯定要自己編個,這樣其實跟腳本語言差不多。。算了,還是看看有沒有現成的可以用來偷懶下~qemu太複雜了,還是bochs簡單點。用VS2017編譯bochs項目竟然不報一個錯!而且bochs可以生成靜態庫,這樣我就不需要把30萬行代碼包含到bajdcc/GameFramework(國內鏡像bajdcc/GameFramework - 碼雲 Gitee.com)中去了~
折騰了一番bochs源碼之後,剖出了它的啟動代碼,其實我無非就是把它的win32_gui模塊替換成direct2d_gui罷了,GUI更新的數據結構我就用byte*去傳。
看看後面bochs支不支持自定個io設備什麼的,到時候可以自己改操作系統與模擬器傳參了~
解決完這一套東西,就要繼續改進bajdcc/MiniOS了,再要改不好它的bug,那就只能推倒重來了(攤手
推薦閱讀:
※python 的 tuple 是不是冗餘設計?
※C 語言的內存管理如何比 C++ 的 RAII 靠譜?
※英語不好能學C語言和C++么?
※C++中如何載入100K+的常數數組?