ハードウェアの気になるあれこれ

技術的に興味のあることを調べて書いてくブログ。主にハードウェアがネタ。

ゲームボーイを作る(14) - キャッシュ機能付きCI環境構築

ゲームボーイを作るその14。テストを作って実装を進めているが、この作業を進めるうちに、少し前に実装してPASSしたテストがFAILするという事がチラホラ起き始めた。そろそろCIを導入してデグレを早期発見できるようにしてみようと思う。

  • GitHub Actionsを使った自動テスト環境の構築
    • 基本フローの構築
    • キャッシュ機能の導入
      • 最初のキャッシュ機能実装(失敗)
      • ステップの統合とインストール先の変更
    • sbtのデータのキャッシュ
続きを読む

ゲームボーイを作る(13) - フラグレジスタの確認

ゲームボーイを作るその13。加算・減算などを実装しようと思って、仕様を読んでいたのだがフラグ系のレジスタの動きを整理しておきたいと思ったので、簡単にまとめておく。

  • CPUの算術/論理演算とフラグレジスタ
    • 各命令セットのFlagsの見方
    • Zero (Z)
    • N
    • H (Half Carry)
    • C (Carry)
続きを読む

ゲームボーイを作る(10) - CPUのレジスタ実装

ゲームボーイを作るその10。前回でCPUレジスタの仮実装を行ったので、テスト環境側の期待値比較処理を作っていく。

  • CPUレジスタの期待値比較
    • CpuTbの修正
    • CpuTestに01_ld.s用のテストを実装
続きを読む

ゲームボーイを作る(8) - テストROMビルドのsbtタスク化

ゲームボーイを作るその8。前回に引き続き、ハードウェアの検証環境を整備していく。と書きながら、今回はバイナリ→HEX変換のタスク化の話。

  • テストROMバイナリ→テストHEXファイル変換
    • Scalaを使ってバイナリ→HEX変換処理
    • sbtのタスク実装
続きを読む