ゲームボーイアドバンス用「カードeリーダー」のカードをエンジニアが自作してソリティアをプレイ
2001年に発売されたゲームボーイアドバンス専用の「カードeリーダー」は、ドットが印字された特別なカードを読み取ることでミニゲームやムービーを楽しむことができます。ソフトウェアエンジニアのマット・グリア氏が、このカードeリーダーで読み取れるカードを自作し、市販のゲームボーイアドバンスでソリティアをプレイできるようにしたと発表しました。
Cramming Solitaire onto a Nintendo E-Reader card | Matt Greer
Clever coder crams a Solitaire game onto a single Nintendo GBA e-Reader card | Tom's Hardware
https://www.tomshardware.com/video-games/handheld-gaming/clever-coder-crams-a-solitaire-game-onto-a-single-nintendo-gba-e-reader-card
実際にカードを読み取ってソリティアをプレイする様子は以下の動画で確認できます。
Solitaire for the Nintendo E-Reader - YouTube
グリア氏が作成したのは以下の1枚のカードです。このカードの特徴は、1つのラインごとに2192バイト、合計4.3キロバイト強のデータを含む2つの「ドット」でソリティアを復元できるという点です。
カードeリーダーには8MBのオンボードストレージが搭載されていて、カードを読み取ることで機器にデータを解凍して実行し、ゲームなどを再現することができます。過去にはスーパーマリオアドバンス4やドンキーコングなどの追加ステージがカードで提供されており、グリア氏自身もカードeリーダーを使って遊んでいたそうです。
グリア氏によると、カードeリーダーにはゲームボーイアドバンスに加えてファミコン(ファミリーコンピュータ)やザイログ社の「Z80」バイナリのロードをサポートしているため、いずれかの方法で設計すると好きなゲームを構築することが可能だといいます。中でも、Z80に合わせて作成したソフトはバイナリサイズを非常に小さくできるのが特徴だとのこと。
グリア氏は有志が公開しているカードeリーダー向けのAPIとZ80アセンブリを組み合わせ、たった4384バイトの制限内で、BGMを含めたソリティアを再現することに成功しました。
グリア氏は「全体的に、カードeリーダー向けAPIは非常に便利で、開発を容易にする優れた機能がたくさんあります」と述べつつ、背景描写などの処理に難儀し、時にはグラフィック上の不具合が発生したこともあったと語っています。最終的には関数を変更することで納得のいく処理ができたとのことです。
ereader sprite limit - YouTube
グリア氏は「私の目標は、さらに多くのカードeリーダー用アプリを構築することで、専門の業者にカードを製造してもらいたいとも思っています」と語りました。なお、グリア氏が作成したソリティアのカードは以下のサイトから「無料で注文できる」とのことです。
Retro Dot Cards
https://www.retrodotcards.com/