#author("2023-04-14T20:01:22+09:00","","") * Doc.9 マルチブート [#u4adedb2] マルチブートとは、カードリッジの入っていない状態でプログラムを動かす仕組みのことです。元々はカードリッジの持っていない友達と対戦ゲームをすることを想定していたように思います。そう考えると大昔、初代ゲームボーイのテトリス対戦はかなり白熱していたことでしょう。今では対戦のため、というより自作プログラムを単体で動かすという趣旨に代わってきてるように思います。解析が進みプラットフォームも多様化を極めておりぶっちゃけますと3.3vでGPIO出来ればなんでも動きます。~ ** raspberry pi [#sa745a2a] IoTの覇者とえいば[[raspberry pi:https://ja.wikipedia.org/wiki/Raspberry_Pi]]。情報も豊富で使い方は様々、売上台数は累計4,600万台(2022年2月28日時点)とのことです(因みにGBAは世界で8,151万台)。世界に対して売りさばいているシングルボードコンピュータでこの分野に叶う相手はそうそういないでしょう。まだ使ったことのない方(特に学生さん)がもしいらっしゃるのでしたら早めに触っておくことをお勧めします。ここではセットアップの説明を大幅に省略してraspberry pi上のコンパイル環境やwiringPiライブラリが導入済みであることを想定して書いています。~ ** 用意するもの [#m83ea1fa] - raspberry pi - ゲームボーイアドバンス専用通信ケーブル(AGB-005)もしくは互換ケーブルでも可 - ブレッドボード - ブレッドボード用のケーブル(オス-オス) - ニッパ - 半田ごて - 絶縁テープ - テスター ** 通信ケーブル製作 [#v9a54d31] 通信ケーブルについてはAGB-005以外でも問題ないです。ポイントはGBAのシリアルポートに刺さるコネクタ部品と、そこから伸びている4本の線がmbedとspi通信できれば大丈夫です。配線は以下のとおり。~ 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) #ref(1.png,nolink) ** 製作例 [#qe6d2fba] #ref(2.png,nolink) #ref(3.png,nolink) ** 使い方 [#u3a2f4b0] -[[https://github.com/akkera102/gba_01_multiboot]]にアクセスしてzipファイルを入手してください。 ** mbed [#q0a1bf87] #ref(clip_1.png,nolink) 左がGBA本体、右がケーブルプラグの拡大写真となっています。ちなみにspi通信が16bit単位であり、モード3でないとダメっぽいです。~ [[Dev'rs GBA Dev FAQs:http://www.devrs.com/gba/files/gbadevfaqs.php#PCGCable]] Can you modify a GBA link cable to connect to a COM serial port to support multiboot? There are many reasons you can't easily do this. The first reason is that a standard serial COM port uses 1/8/1 format but GBA multiplayer / multiboot link mode uses 1/16/1 format. (format = Start bit/Data Bits/Stop Bit) ** Raspberry pi [#l4a9b287] mbedのコードを流用して作りました。~ セーブデータのバックアップ、リストアにも対応しています。~ https://github.com/akkera102/gba_01_multiboot ** Arudino [#l0964ca5] Arudinoでも動作報告を頂きました(thanks kos-さん!)。~ インターネットアーカイブからの発掘でしたので検索に引っかからず?~ ロストテクノロジー寸前だったかもしれないです。~ 簡単な流れは以下のとおりとなっています。~ GBA --- Arudino --- Linux PC(or Raspberry pi) - SPI通信(GBA~Arudino) - UART通信(Arudino~Linux PC) - Linux PCからgbaファイルを転送 ソースコードはArudinoと、Linux PC用の2つがあります。~ ** 履歴 [#c4d9ece6] - 2017/09/13 - 2014/12/25 - 2014/11/10