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

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

ゲームボーイを作る(17) - LCDの調査

ゲームボーイを作るその17。CPUを作るのに若干飽きてきたので、LCD周りの調査を始めた。今回は入手したLCDについて調べた事を少しまとめてみる。

  • MSP2807
    • ESP32で動かす
    • Arduino IDEのインストールとESP32の設定
    • Adafruitライブラリの導入
    • 動作確認
      • スケッチの作成と微修正
      • ボードの接続
      • ESP32への書き込み
続きを読む

ゲームボーイを作る(16) - ジャンプ命令のサイクル数について

ゲームボーイを作るその16。今回はジャンプの挙動について、どう扱うべきかについて迷ったのでメモ書き程度にまとめておく。

  • ジャンプ命令(JPNN/JPHL)
続きを読む

ゲームボーイを作る(15) - DAA命令の調査

ゲームボーイを作るその15。少しずつCPUの実装を進めている所なのだが、DAAという命令の挙動がよくわからん!となったので、調べたことをまとめておく。

  • DAA (Decimal Adjust Accumulator)命令
続きを読む

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

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

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

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

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

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

ゲームボーイを作る(11) - ロード命令の実装

ゲームボーイを作るその11。前回作ったテストをパスするため、ロード命令を実装していく。

続きを読む