世界を動かす技術を、日本語で。

RISCBoyは、ゼロから設計されたオープンソースのポータブルゲームコンソールです。

2026年7月12日原文(github.com)

概要

  • RISCBoy は、ゼロから設計された オープンソース携帯ゲーム機 プロジェクト
  • RISC-V互換CPU や独自のグラフィックスパイプラインを搭載
  • iCE40-HX8k FPGA 実装を想定、厳しいリソース制約下での設計
  • RV32IMC命令セット 対応、公式準拠テストもパス
  • KiCad設計のPCB や各種ツールチェーン構築方法も提供

RISCBoy概要

  • RISCBoy は、2001年に RISC-V が存在した並行世界の Gameboy Advance をイメージした設計
  • RISC-V互換CPU、ラスタグラフィックスパイプライン、ディスプレイコントローラ、バスファブリック、メモリコントローラ、UART、GPIOなどの 周辺回路 を内蔵
  • KiCad で設計した PCBレイアウト を提供
  • Verilog 2005 による合成可能なコードで記述、 iCE40-HX8k FPGA (7680ロジックエレメント)に収まるよう最適化
  • Icestorm などのオープンソースFPGAツールチェーンに対応

CPUと命令セット

  • RV32IMC命令セット (RISC-V 32bit整数+乗除算+圧縮命令)をサポート
  • RISC-V公式コンプライアンススイートriscv-formal検証スイート、独自の形式的プロパティチェックをパス
  • M-mode CSRs、例外処理、外部割り込み向けの簡易ベクトル拡張機能を実装

リポジトリのクローン

  • HDLおよびテスト用サブモジュール を利用
    • 推奨コマンド:
      • git clone --recursive https://github.com/Wren6991/RISCBoy.git riscboy
      • または、通常clone後にサブモジュール初期化:
        • git submodule update --init --recursive
  • スタンドアロンテスト にはサブモジュールのリカーシブ更新が必須
  • RISCBoyゲートウェアのビルド のみならサブモジュール更新は不要

RV32IMCツールチェーンの構築

  • RV32IMCツールチェーン がソフトウェアテストのコンパイルに必要
  • RISC-V GNU Toolchain のGitHub手順に従う
    • Ubuntu 20.04用依存パッケージ:
      • sudo apt install -y autoconf automake autotools-dev curl python3 libmpc-dev ...
    • クローン&ビルド例:
      • git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
      • ./configure --prefix=/opt/riscv --with-arch=rv32imc --with-abi=ilp32 --with-multilib-generator="rv32i-ilp32--;rv32ic-ilp32--;rv32im-ilp32--;rv32imc-ilp32--"
      • make -j $(nproc)
  • 小型FPGA (例:iCE40 UP5k)では RV32Iバリアント にも対応
  • 適切なISAバリアント 用標準ライブラリ生成が必須
  • RV32Iプロセッサ上でRV32IMC標準ライブラリ実行は不可

シミュレーション

  • Xilinx ISIM 14.x によるシミュレーションフロー
    • scripts/フォルダにMakefileを配置
  • RISC-Vコンプライアンススイート のチェックアウトが必要
  • テスト実行例:
    • . sourceme
    • cd test
    • ./runtests
  • ソフトウェアテスト には RV32ICツールチェーン が必要
  • パス調整GUIデバッグ も可能:
    • cd system
    • make TEST=helloworld gui

PCB設計

  • Rev A PCB はiTeadの4層5x5cmプロトタイピングサービス対応
    • 10枚で約$65
  • 回路図 はPDFで公開
  • Rev B は今後設計予定
  • 現在の開発ハードウェアは Snowflake FPGAボード に類似

FPGA合成フロー

  • iCE40用オープンソースツールチェーン を利用
    • Yosys (合成)、 nextpnr (配置配線)、 Project Icestorm (ビットストリーム生成)
  • Linux環境 での動作確認済み
    • Raspberry Pi でのビルド実績あり
  • 合成手順例:
    • . sourceme
    • cd synth
    • make -f HX8k-EVN.mk bit(Lattice HX8k評価ボード用FPGAイメージ生成)
  • ECP5向け実験的サポート
    • make -f ECP5-EVN.mk BUILD=full bit
    • 外部SRAM内部同期メモリ に置換

ディレクトリ構成

  • board: KiCad設計ファイル(メインPCB・開発用小型ボード)
  • doc: ドキュメント用LaTeXソース、図、最新PDF
  • hdl: RISCBoyゲートウェアのVerilogソース
    • busfabric: AHB-liteクロスバー、APBペリフェラル
    • graphics: ピクセル処理ユニット
    • hazard5: 完全自給自足型RISC-Vプロセッサ
    • mem: メモリコントローラ、ラッパ・モデル
    • peris: UART、SPI、PWMなどの小型ペリフェラル
    • riscboy_core: RISCBoy構成要素の結線モジュール
    • riscboy_fpga: 各種FPGA・ボード向けトップラッパ
  • reference: RISCBoyで使用する標準PDF(例:RISC-V命令セット)
  • scripts: その他スクリプト・Makefileなど
  • software: システムテスト用Cファイル集(現状は本格的なソフトウェアツリーではない)
  • synth: システム合成用ワーキングディレクトリ、上位Makefile、ピン制約ファイル
  • test: 回帰テスト(Verilogテストベンチ、シミュレーション用ソフトウェアテストケースなど)

まとめ

  • RISCBoy は、 RISC-VアーキテクチャオープンソースFPGAツールチェーン を活用した、教育・研究・趣味向けの高度な 携帯ゲーム機設計プロジェクト
  • ドキュメントソースコードPCB設計 まで一貫して公開
  • FPGA開発やRISC-V学習独自ゲーム機開発 に最適なリファレンス設計

Hackerたちの意見

GitHubのページから: 「これは、2001年にRISC-Vが存在した平行宇宙のゲームボーイアドバンスです。子供の頃の携帯ゲーム機へのラブレターであり、それを支えた技術への3時の酔っ払いメッセージです。」

著者に感謝!2026年に絵文字なしのGitHubページを書いてくれて。

「異なる宇宙のハードウェア」プロジェクトが大好き!

すべてのハードウェアは、私たちの世界に現れるまで別の宇宙に存在しているんだ。

あ、これはルーク・レンの作品だね。彼はラズベリーパイのASIC設計エンジニアなんだ。素晴らしいプロジェクト、好きだな!

「ASIC設計」エンジニアって言うのは彼を過小評価してると思う。彼はCPUコアの開発もしてるからね!

この人はRP2040からDVI/HDMIも設計したよ: https://github.com/Wren6991/PicoDVI

彼はラズベリーパイで働いていて、RP2350の中心にあるHazard3 RISC-Vコアを設計したんだ。ただ、Hazard3は彼の暇な時間に作ったものなんだけどね。実際には、RISCBoyのために設計した「Hazard5」コアのフォークなんだ。

彼がオープンソースのAHB/APBのものを持ってるのを見て驚いたよ。ARMの独自技術だと思ってあまり勉強してなかったから。

AMBAはずっとオープンスタンダードだよね。リリースされてからかな?

デザインは最初のwafer.spaceのランでテープアウトされたけど(https://github.com/wafer-space/ws-run1を参照)、実際に動いたかどうかは聞いたことないな。

PDFに書かれているプログラム可能なスキャンラインバッファベースのレンダリングパイプラインは、そういうのが好きな人には読む価値があるよ。

Hacker Newsで議論の続きを見る