アルカディアのソフト開発

f:id:nicotakuya:20220310032951j:plain

バンダイの「アルカディア(1983年)」。その昔、自分が小学生だった頃に買ってしまったゲーム機です。

 

f:id:nicotakuya:20220311135324j:plain

当時、遊んだソフト。「ホッピーバグ」は簡単すぎ、「エスケープマン」は意味不明すぎでした。買った直後にファミコンが発売されてしまい、自分の心に深い傷を残しました。

 

ググった感じでは、Emerson Radio社が「Arcadia 2001(1982年)」というゲーム機を出していて、これをライセンス供給したのがアルカディアだそうです。その約4年前にInterton社が「VC 4000(1978年)」というゲーム機を出していて、これがArcadia 2001と搭載CPUが同じで、外観も似ています。なにかつながりがあるのか?

 

アルカディアエミュレータは「WinArcadia」がおすすめです。開発元のWebサイトはこちら。

amigan.yatho.com

すごい熱意にあふれるサイト。しかし、ファイルによっては注意が必要。「Games(games.rar)」というROMイメージの詰め合わせは、どう考えても違法なので、ダウンロードしないようにお願いします。

 

f:id:nicotakuya:20220414220336p:plain

エマーソンのサービスマニュアルより。勝手に色を付けました。

これが読めるのはありがたいです。抵抗の一本一本まで仕様が載っています。

 

f:id:nicotakuya:20220310133817p:plain

アルカディアエミュレータ「WinArcadia」の起動画面。「VC 4000」にも対応しています。

メニューから「Help→Coding Guide」を選択すると、ソフト開発用の資料が表示されます。これによると、開発には「VACS」というアセンブラを使うとのこと。

ググったら出てきました。

github.com

VACSの正式名は「Verschueren Assembler Construction Set」。最初の作者はA.C. Verschuerenさんという方で、その後、Dennis D. Spreenさんという方が移植しています。

「Dist¥Examples」フォルダにサンプルのソースが3つほど入っています。

たとえば、「helloworld.asm」をビルドしたいという場合は次のコマンドを実行します。(カレントディレクトリがExamplesの場合)

..¥asm32 helloworld.asm

そのままだと「Line Too Long(行が長すぎる)」というエラーが出てしまうのですが、改行コードに問題があるようです。テキストエディタで「helloworld.asm」「arcadia.h」を開いて、改行コードを「LF」→「CR+LF」に変換します。

なお、asm32.exeはそのままだとWindowsの保護が働いて「不明な発行元」となり、実行できません。実行できるように設定します。

ビルドに成功すると「helloworld.bin」というROMイメージが生成されます。

 

f:id:nicotakuya:20220310191649p:plain

「helloworld.bin」の実行結果。「HELLO WORLD」と表示されました。

文字がめりこんでいるのが気になるので、次のコードを追加します。

      lodi,r0      0EFh         ;;;Screen Start
      stra,r0      CRTCVPR      ;;;Vertical Offset

 

f:id:nicotakuya:20220311141052p:plain

ビルドをやり直して、再実行。

文字の位置が直りました。「0EFh」が水平方向のオフセットです。どの値が正しいのかよくわかりません。

 

f:id:nicotakuya:20220310191842p:plain

アルカディアはROMの領域が0x0000~0x0FFF番地と0x2000~0x2FFF番地に分かれているという特殊な仕様になっています。両方を合わせて、容量は8KB。

RAM容量は1KBってことになっていますが、CPUやUVI(Universal Video Interface)に使われる分を差し引くと、ほとんど残っていません。

アドレスバスがA0〜A14までなので、0x0000~0x7FFFのメモリ空間をアクセス可能ですが、そこまで使ったソフトって存在するのでしょうか。

 

f:id:nicotakuya:20220310133534p:plain

Amigan Softwareで公開しているサンプル「examples.rar」の「arcadia¥Trauner」フォルダの中に「Tetris.bin」というROMイメージがありました。

アルカディア版の「テトリス」です。作者はPeter Traunerさんという方。2003年の作品です。容量はわずか4KB。

ドキュメントが付属していませんが、起動時に「プライベートまたは利益なしの使用を許可」と表示されるので、フリーソフトだと思われます。合法的に遊べます。

 

f:id:nicotakuya:20220310133604p:plain

プレイ中の様子。2プレイのゲームのようです。

 

f:id:nicotakuya:20220414220255j:plain

(2020/04/14追記)

実機を分解してみると、中身がジャンパ線だらけでした。赤色のリード線でGNDにつないでいたり、アバウトな作りに感じます。

緑のリード線は「A14」です。これによって、カートリッジ内の0x4000~0x7FFF番地にアクセスできるという重要な端子。この配線はサービスマニュアル内の「WIRING DIAGRAM」には載ってない謎です。

 

(2020/04/17追記)

arcadia 2001 teardown」で検索して出る画像を見ると、A14が配線されていません。バンダイアルカディアを販売したのは、Arcadia 2001よりも後になります。アルカディアはより大きなROMを搭載できるように仕様変更したと考えられます。

 

nicotakuya.hatenablog.com