2021-08-09 ゲームボーイを作る(14) - キャッシュ機能付きCI環境構築 GitHub Actions CI Chisel ゲームボーイを作るその14。テストを作って実装を進めているが、この作業を進めるうちに、少し前に実装してPASSしたテストがFAILするという事がチラホラ起き始めた。そろそろCIを導入してデグレを早期発見できるようにしてみようと思う。 GitHub Actionsを使った自動テスト環境の構築 基本フローの構築 キャッシュ機能の導入 最初のキャッシュ機能実装(失敗) ステップの統合とインストール先の変更 sbtのデータのキャッシュ 続きを読む
2021-08-05 ゲームボーイを作る(13) - フラグレジスタの確認 GameBoy ゲームボーイを作るその13。加算・減算などを実装しようと思って、仕様を読んでいたのだがフラグ系のレジスタの動きを整理しておきたいと思ったので、簡単にまとめておく。 CPUの算術/論理演算とフラグレジスタ 各命令セットのFlagsの見方 Zero (Z) N H (Half Carry) C (Carry) 続きを読む
2021-07-29 ゲームボーイを作る(12) - レジスタ表示の改善 Chisel ゲームボーイを作るその12。ちょっと寄り道して、デバッグのためにレジスタ表示を改善する。 レジスタ値のデバッグ出力の改善 続きを読む
2021-07-28 ゲームボーイを作る(11) - ロード命令の実装 GameBoy Chisel ゲームボーイを作るその11。前回作ったテストをパスするため、ロード命令を実装していく。 ゲームボーイのCPUの命令 CPUの動作波形 とりあえずロードの実装 続きを読む
2021-07-25 ゲームボーイを作る(10) - CPUのレジスタ実装 GameBoy Chisel ChiselTest BoringUtils ゲームボーイを作るその10。前回でCPUレジスタの仮実装を行ったので、テスト環境側の期待値比較処理を作っていく。 CPUレジスタの期待値比較 CpuTbの修正 CpuTestに01_ld.s用のテストを実装 続きを読む
2021-07-23 ゲームボーイを作る(9) - CPUのレジスタ実装 GameBoy Chisel ゲームボーイを作るその9。今回はテストの体裁を調えるために、CPU内部のレジスタを仮実装していく。 ゲームボーイのCPUのレジスタ実装 CPUのレジスタの仕様 レジスタの実装 続きを読む
2021-07-22 ゲームボーイを作る(8) - テストROMビルドのsbtタスク化 GameBoy wla-dx sbt ゲームボーイを作るその8。前回に引き続き、ハードウェアの検証環境を整備していく。と書きながら、今回はバイナリ→HEX変換のタスク化の話。 テストROMバイナリ→テストHEXファイル変換 Scalaを使ってバイナリ→HEX変換処理 sbtのタスク実装 続きを読む