自作WASMプリプロセッサとWeb要素技術を使ってレトロ・シューティングを作る
自作WASMプリプロセッサとWeb要素技術を使ってPSGエミュレータを軽く作ってみた。そしていまレトロ・シューティングを作っている(進行中)。
S.F.
@SFPGMR
拡張wasmテキスト・モードでソースを書いて、プリプロセッサで定数置換とマクロ置換、ソースインクルードして、wat形式で吐いて、wat2wasmに食わせようかなとか思ったりしてるんだな。。binaryenに引き渡してもよいんだけど。。
2019-04-18 21:45:40
S.F.
@SFPGMR
だからちょっとpeg.jsでプリプロセッサみたいなのをちょこちょこって作って、定数ラベルとあとはソースインクルード、そしてマクロ機能を用意すれば移植できるんではないかとまたできもしないことを考えてるわけですわ。。
2019-04-18 21:45:39
S.F.
@SFPGMR
そのオフセットは数字ではなく定数ラベルで指定したいんだよね。。アセンブラだとEQU命令とかいうやつだったと思うんだけど、WASMのテキスト・フォーマットだとそれがないんだよな。確か。
2019-04-18 21:41:15
S.F.
@SFPGMR
メモリはリニアでとれるので、アロケータとかでメモリをマネージメントするのではなく、ワークエリアをそれなりにとって、そこにオフセットでアクセスすれば今回のようなレトロチップのエミュレーションにはちょうどいいと思ったんだよね。
2019-04-18 21:39:23
S.F.
@SFPGMR
それでこれをwasmテキストモードで書いて移植してみようかなと思ったのだった。しかしwasmでコードを書ききるにはちょっと面倒なところがあって。オフセット定数を数字でしか表せないところなんだけどね。。
2019-04-18 21:39:23
S.F.
@SFPGMR
まあちらっと見たところでは、デシメータに違いがあったり、mameのコードが若干複雑だなあと思ったりとか。もうちょっと読み比べんとわからんけどね。。
2019-04-18 21:35:31
S.F.
@SFPGMR
まそれはさておき、それでちょっとPSG(AY-3-8910/YM2149)のエミュレータのソースコードはないかな?とか探しはじめて。探すと2-3ぐらいはすぐに見つかった。
2019-04-18 21:23:20