ゲームボーイエミュレータを作っている。
https://bit.ly/3MQZaUS
オーディオ以外はだいたい出来た。
音まわりはなー、デバッグめんどいことが見えてるから手つけづらいんだよな。
そして作り始めたはいいけど、思ったよりゲームボーイのゲームやってないことに気づいて
若干この先を作るモチベが下がっている... 本当にやりこんだのは初代ポケモンくらいだな...
あまり苦労した感じは今のところない。
NESに比べるとCPUが8bit(6502)から16bit(LR35902)になって実装めんどくなるかと思ったが
結局0xFF個しかオペコードないから、実装するだけならさほど時間はかからなかったし。
(厳密には0xFF*2だが)
ゲームボーイは仕様面がわかる資料がNESに比べてはるかに整備されてると感じた。
まず、洗練されたドキュメントがここにあるし。
https://bit.ly/43pMqKi
このへん読めばどう動いてるのかなんとなくわかるし。
https://bit.ly/3WxuUS7
でもやっぱり細かいところわからなかったりするから
githubで誰かのコードを漁って読むんだけどね...
-----
今回はRustを使ってみたんだが、この言語はいろんな意味ですごいと思った。
まず、所有権という概念のせいで恐ろしく書きづらい。しかしその制約のおかげで、
いかに今まで自分が適当にオブジェクトを設計していたのかを思い知らされる。
この循環参照を完膚なきまでに許さない言語仕様は、
書きづらいのに心地いいみたいな不思議な感覚に陥る。
これは初めての感覚だ。人気が出る理由がなんとなくわかる。
とはいっても、RcとかRefCellとか使えば似たようなことができるわけだが...
しかし、そういう設計は最小限にしようという思考が働くだけでも十分だと思う。
欠点があるとすれば、他のプログラミング言語に比べると
ちょっと難しい気がするなぁというのが正直な感想ではある。
でも多分慣れだな。
blog comments powered by