LLVM 與 紅白機 - 模擬器

Table of Contents


再分享一點資訊

http://hookrace.net/blog/porting-nes-go-nim

簡單來說就是有一個老兄很欣賞某個go語言(近來變紅)寫的nes模擬器專案,

把它改寫成nim版本的nimes (nim這語言我第一次聽到...沒了解很多,

初看語法有點像是js又有點像是python),這語言可以編譯,

再透過LLVM的關係工具emscripten,轉出成js格式

(js上有llvm js實作版,來讀轉出的bytecode)

最後變成js網頁版 https://github.com/def-/nimes

demo http://hookrace.net/nimes

COSCUP 2012年也有人介紹過差不多的方式把超任模擬器移植到網頁上去
http://www.slideshare.net/weijr/javascript-14012795
https://www.youtube.com/watch?v=6DI3S0oIeno

這應該也不算新聞了(相關的還有DOSBOX JS版本,有的沒的很多...)

更特殊的是LLVM應用在直接把任天堂的ROM透過編譯的方式,

變成可以直接跑的應用程式

http://andrewkelley.me/post/jamulator.html

這是好幾年前就聽聞傳說中用編譯方式執行的概念...

好像還有別版本的,要再找一下?


說到LLVM這東西還滿神奇的,不知道有興趣就google看看..

怕說多說錯,比起java或是.net(stack machine),

LLVM(register machine)更像是真正一般硬體處理的觀念.

--

All Comments