Native-C やること(やるとは言っていない)
またこのネタですが、以前から気がついてたのですが、システム関数をコールするときにブロッキングな関数(例えばgetchar)だと動作を割り込ませることが難しいことが分かっています。
回避としてはノンブロッキングな関数のみとし、その他を静的ライブラリとしてリンキングするのが良さそうです。ただユーザーエリアが少なくなってしまうのでそのあたりの関係上ブレークチェック(MachiKania方式)も合わせて持っておくといいかもしれません。
そのほかの実装項目もたくさんあります。
## float周りの実装
math, printfの対応など 現在はまだ四則演算しかできないし、表示もできません。FPUないから遅いけど、なんんちゃってfpuのエミュレーションでもいいなと考えてるところ。
CP1動かそうとして例外発生>アセンブリで書いたエミュレーションコードでエミュレートし、その後復帰>OK何もなかった。いいね?
ハードウェアでFP対応してると高速ですが、対応してなくても実行は可能です。いつか実装するかも?
## ファイルIOの改善
jsonパーサーを用意してセーブやロードを容易にする。 構造体は実装済です。なのでバイナリレベルのロードはできるのですが、テキストで扱えるようにしたいです。エディタで中身見れれば随分と楽ですので。
## exampleの追加
ゲームばっかりでなく、浮動小数点数など生かした3Dエンジンを組み込んだり、でもやっぱり容量が足りなそうだからcrossコンパイルかハイブリッドになりそう。
ちなみにクロスコンパイルだと容量は最大1/10くらい小さくなります。このシステムもぎゅうぎゅうに詰めてこのサイズですから。グラフィックモードだとかなりきついですね。
## asのバグ修正
なんか最適化レベル上げた時にバグる現象を直さんと。どこでバグってるのかもまだわかってません。 最適化レベルで挙動が変わる系のやつほんと嫌い。