あまりたいしたことはしていないエミュレイタの他の実装を読んでみたりGBAの仕様について調べたりしていたGBAはDMG/CGBとは全然違うらしいカセットに互換性があるから似たようなものだと勝手に思っていたがGBAには32bitのARMv4のプロセッサが載っていてかなり現代的だこれどうやって互換性を保ってるんだろうエミュレイションまさか古いプロセッサも載せてるのか
まあだからDMG/CGBの延長でGBAに対応するのは難しそうだ別にエミュレイタ作る職人になりたいわけでもないしなポケモン金銀のカセットが手に入ったらCGB対応してみようかなくらいで

あとはポケモンやってたやはり初代はいろいろ洗練されてなくてびっくりするがそれでもどハマりしてたんだよなこれに買った初日に4時間プレイした週に8時間=乾電池2本分しか遊べないルールなのにけどおつきみやまを抜けられなかったのを今でも覚えているもうたいして迷わないけれど
イワヤマトンネルを抜けてシオンタウンに入る例の心細くなるBGMが流れるがポケモンセンターに入るといつもの音楽に戻る異国の地で日本のコンビニを見つけたらきっとこんな気持ちになるだろうか
せっかくなのでポケモンリーグ制覇まではやってみるつもりしかしポケモンリーグって何がリーグやねんリーグに四天王はおらんやろが


寝ます明日はなんか会議多かった気がする

6月になると1年の半分が過ぎたと勘違いすることがあるのは6時になったら午前中または午後の半分が過ぎることと混同しているためだという指摘を見た確かにな


今日はほぼエミュレイタのリファクタをしていたクレートを分割したりモジュールを整理したりSDLに依存している部分を抽象化したりこれでブラウザで動かす準備ができた……のか
ブラウザといえば昨日せっかく苦労してマルチスレッド対応させたけどWASMはシングルスレッドなのを思い出したので泣く泣く元に戻したまあ別にパフォーマンス的な旨みがあるわけでもないしいいのだけどcrossbeamの練習になったと思えばまあいい
音声のチャンネルを切って低音パートだけ鳴らしてみたりスプライトの描画を切ったりしてみるとなんか面白い自分で作るとこういうのが自由にできて楽しいな


寝ます明日は何しようかなとりあえずWASMでCanvasに描画させたりしてみようかな

だんだん会議に出る機会が増えてきた社外の人との会議って前職ではほとんど無かったのでちょっと緊張するでもちょっとしかしないのはまあそれなりの成長という気がする
振り返ってみるといろいろな先輩たちの影響を受けてできるようになったことがたくさんあるなと思う僕も誰かにそういう影響を与えられているだろうか別にそうでなくても構わないのだけどそうであったらそれはちょっと嬉しいことではある

エミュレイタはついにちゃんと音が出るところまでを実装して満足それからマルチスレッドで動作するようにしたこれは別にそんな御利益があるわけではないんだけどエミュレイタ本体部分はバックグラウンドスレッドで動くようになってUIスレッドは画面とか音楽とかキー入力に集中するようになったスクリーンバッファとかの共有はArc<Mutex<_>>でやっているあとVSYNCやサウンドバッファの通知はcrossbeamのチャンネルを使っているうまいことやらないと音声にノイズが乗ってしまうのでちょっと大変だったがなんとなくうまく動いたのでよかった
もう少しリファクタをして完全にSDLを抽象化できるようにしたいそれができたらWASMにしてCanvasとかに描画することになるだろう楽しそうだところでこれは原理的にはRasPi Picoでも動くのだろうかさすがにクロックが足りないかな


寝ます

エミュレイタで動かすためのポケモンとダンパーが届いたので吸い出して実行した動いたしかしFPSが低いので何が悪いのかなと調べていたら3時間経ってしまった原因はSDL2のイベントポーリングをCPUサイクルごとにやってるせいだった3μs程度掛かるのでM-cycle900nsくらいに間に合わなくて遅延していたわかってみればしょうもない話だったね
別にそんな頻繁に見る必要ないのでVSYNCの時だけ実行するようにしたら解決したはーー
APUも完成させたのであとはSDL2で音を出せるようにしたら完成そのあとはWASM移植をしたいがそれができるようにリファクタをしなくては


寝ます夜更かししすぎた……

エミュレイタに簡易コルーチンをいれるリファクタを断念したすごい頑張ればできるかもしれないが少なくとも必要な操作はだいたいわかるどう考えてもコスパが悪いそれに別に長期に亘ってメンテするようなコードでもないし……なんだか悔しいけれども
APUの実装を進めた矩形はを出すところはできたと思うが試してはいないので残るはノイズ生成音が鳴るのが楽しみだ


寝ます夜更かししちゃった土日に餃子食べたいな

インフラのこと考えてたら終わった一日AWS筋力にはまだまだ改善の余地がある経験が足りないな

エミュレイタ開発は簡単なリファクタとジョイパッド対応をしたといっても本当に動いてるのかわからないけどゲームボーイのボタンって十字キーとそれ以外が排他っぽいんだな知らなかった
あとはサウンドの実装がいるこれはちょっと大変そうあとまだROMのダンパーが届かないからリファクタを先にやった方がいいかもな


寝ます

あまり元気ではない気圧のせいだという噂もあるけれど

エミュレイタのコルーチン対応は挫折した一応書けたようだけど正しく動かなかったし所有権周りでかなり困難があったしあと最大の問題として割り込み要求のチェックをどこでやればいいのか難しいというのがあるなのでコルーチンで解決するのは諦めることにしてマクロだけで何とかならないかもともと本ではそうしているのだしもっといい感じにできないか考えることにする他のリファクタもしたいし
PPUの実装を終わらせたのでdmg-acid2テストが動作したこれであとはジョイパッドとサウンドを実装すればそこそこのゲームが遊べるわけだがまだダンパーを入手できていないのでそれまではリファクタをするWASM移植とかもそのうちやりたいがまあさすがにそれまでには届くでしょう


寝ます

午後から法事なんか合同だったので30分くらいで終わるこんなんでいいんだこんなんでいいんだったらやらなくてもよくない

そのあとは両親が家に来たり晩ごはんを食べたりしたなんか途中でまた胃がパニックしてしまって辛かった何だろうなあこれもしかしてワインが良くなかったりするのか過学習の気配がある推論

夜はエミュレイタのリファクタをしたNightlyに入っているコルーチンを使えば複数サイクルの命令が書きやすくなるのではと思ったのだけど型パズルがかなりキツいあと一歩のように見えるのだがそれが異常に遠いのがRustという言語だ


夜更かししすぎた体調あまり良くないのにハー愚行だなあ

体調がよくない熱っぽいけど熱はない体温調節の問題かもでも喉も荒れている感じがあるし風邪なのかしら

そういうわけで今日はあまり何もしていないエミュレイタはタイマーを実装したのでCPU関連のテストは通った次はグラフィックだがその前にすこしリファクタをしたい気がする複数サイクルの命令の表現って難しいのよねcontinuationがあれば簡単なのか


寝ます明日は法事そのあと両親と会食健康状態がもうすこしよくなってほしい

細々したタスクが一段落したのでちょっと腰を据えて世界観の把握に努めようと思いいろいろ資料を追っていたまあこういうのは資料だけ見てても流れみたいなのがわからないのよねそれで訊けそうな人に訊いたりしたが結局決まってないことが多かったりして要領を得ないフラストレイション
アジャイルでやろうとしたのだと思うがインクリメンタルにやるべきところを結局ズドンとスコープが拡大しているっぽい辛いしかしこういう時こそネガティヴケイパビリティを発揮しなくてはいけない
あと自己紹介LTをやったがいまいちという感じだったというかまあなんか聴衆の層を読み間違えた気がするやれやれ

エミュレイタは一応全部の命令を実装したのでテストROMがだいたい動くようになったタイマーを実装すれば全部動くまああと音を出したりジョイパッドに対応したりしないといけないけど土日に用事がなければ終わっただろうに多分無理だ


寝ます