マルチブート

マルチブートとは、カードリッジの入っていない状態でプログラムを動かす仕組みのことを指します。元々は初代ゲームボーイのテトリスの2台接続対戦から発展していって、自作プログラムを単体で動かすという趣旨にスライドしていったのかなあと個人的に思っています。時代が進んだおかげで敷居もだいぶ低くなり、ぶっちゃけますと5v or 3.3v電源のGPIOを使えるハードウェアならなんでもかまいません。

raspberry pi

IoTの大御所とえいばraspberry pi一択です。情報も豊富で使い方は多様化を極めています。売上台数は累計4,600万台(2022年2月28日時点)で、すでに販売を終えたGBAの8,151万台と比べるとすごさを実感できると思います。シングルボードコンピュータでこの分野に叶う相手はそうそういないかもしれません。まだ使ったことのない方(特に学生さん)がもしいらっしゃるのでしたら、早めに触っておくことをお勧めします。

用意するもの

通信ケーブル製作

通信ケーブルについてはAGB-005以外でも問題ないです。ポイントはGBAのシリアルポートに刺さるコネクタ部品と、そこから伸びている4本の線がraspberry piとspi通信できれば大丈夫です。配線は以下のとおり。左がGBA本体、右がケーブルプラグの拡大写真となっています。

GBA   --- raspberry pi b+

6-GND     GND
3-SI      GPIO 10 (SPI_MOSI)
2-SO      GPIO  9 (SPI_MISO)
5-SC      GPIO 11 (SPI_SCLK)
1.png

製作例

2.png

使い方

ここからはraspberry piのコンパイル環境、wiringPiライブラリが導入済みであることを想定して書いています。別途、他所から勉強してきてください。まずgithubにアクセスします。画面中央の緑色アイコンの「code」をクリックしてDownload ZIPしてください。

3.png

解凍後、以下のコマンドでコンパイルします。

$ gcc multiboot.c -lwiringPi -o multiboot

実行前にケーブルを接続してGBAを電源ONのみにします。

$ ./multiboot

実行ファイルを起動すれば上記の製作例のように画面が表示されます。ちなみに仕様的な話をすると通信はspiが16bit単位であり、モード3でないとダメっぽいようです。

mbed

mbedバージョンもあります。

履歴


添付ファイル: file3.png 40件 [詳細] file2.png 18件 [詳細] file1.png 17件 [詳細]

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-05-30 (火) 00:07:21