受到 Rust 實作的 RISC-V emulator rvemu 的感召,作者選擇為一個更為簡單的系統 LR35902 打造 emulator,LR35902 這個名字大家或許不熟悉,但若提到使用它的產品:Gameboy 就可說是無人不曉了,我們打造的 emulator,也能載入經典遊戲 Tetris 的 gb 檔,實際執行遊戲。
實作硬體 emulator 各部分也能讓我們再次了解 LR35902 的結構,包括 CPU、指令集、記憶體配置、GPU、中斷、讀取輸入等等,舉一反三,實作了 LR35902 emulator, RISC-V emulator 的實作也難不倒人了。
更酷炫的是,Gameboy emulator 利用 Rust 提供的工具鏈,能夠輕鬆編譯為 WebAssembly ,放到瀏覽器裡執行,本演講一併介紹如何將 Rust 編譯為 WebAssembly,展示 Rust 現下最便利的 WebAssembly 開發工具的實力。
參考內容:
https://github.com/d0iasm/rvemu
https://yodalee.me/2020/12/2020_rust_gameboy/
https://yodalee.me/2021/04/2021_rust_gameboy2/
About 葉闆
大學念電機,研究所念微波,現在不務正業在軟體公司當個系統工程師,覺得 Rust 好有趣好想把全世界的 project 都變成 Rust,最近正努力在 Valheim 裡求生存,沼澤太難了吧 QQ。