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

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

GameBoy

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

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

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

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

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

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

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

ゲームボーイを作るその13。加算・減算などを実装しようと思って、仕様を読んでいたのだがフラグ系のレジスタの動きを整理しておきたいと思ったので、簡単にまとめておく。 CPUの算術/論理演算とフラグレジスタ 各命令セットのFlagsの見方 Zero (Z) N H (Ha…

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

ゲームボーイを作るその11。前回作ったテストをパスするため、ロード命令を実装していく。 ゲームボーイのCPUの命令 CPUの動作波形 とりあえずロードの実装

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

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

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

ゲームボーイを作るその9。今回はテストの体裁を調えるために、CPU内部のレジスタを仮実装していく。

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

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

ゲームボーイを作る(7) - CPUのテストベンチ作成

ゲームボーイを作るその7。前回は最初のテストコードの準備をしたので、今回はハードウェアの検証環境を整備していく。 CPUのテストベンチ作成 メモリ CPU CpuTb テストクラス ChiselTest CPUのテストクラス

ゲームボーイを作る(6) - 最初のCPUテストコードの作成

ゲームボーイを作るその6。CPUを作るためにcpu_instrsを解析していたが、最初に動かすテストとして使うのは厳しそうということで、まずは自前のテストコードをそれを動かす環境を用意する。

ゲームボーイを作る(5) - テストROMの解析3

ゲームボーイを作るその5。元に戻ってblargg-gb-testsのcpu_instrsの解析を続ける。

ゲームボーイを作る(4) - ビルド環境(wla-dx)の整備

ゲームボーイを作るその4。やっぱりビルドの環境があった方が良い気がしたので、そのあたりを整備していく。

ゲームボーイを作る(3) - テストROMの解析2

ゲームボーイを作るその3。今日は実装に使用するテストROMを解析してメモった内容の続き。今の段階では解析して、こう見える、、、程度の状態で書いているので、何か誤認識があるかもです。(後で気づいたことは、適宜修正入れていきます。) テストROMの解…

ゲームボーイを作る(2) - テストROMの解析1

ゲームボーイを作るその2。今日は実装に使用するテストROMを解析してメモった内容。 テストROMの解析1 cpu_instrs PASS/FAIL判定 shell.inc

ゲームボーイを作る(1)

何か動かして楽しいものを!と思いついたのが、昔のゲーム機器だったのだが、情報収集してみた結果ゲームボーイが比較的資料も豊富に存在していて、これなら作れるかもと思った。(先駆者の皆様に感謝!) 今回はゲームボーイを作るに当たって、色々調べてる…