(仮)

ヒマなオッサンのメモ

アーケードゲーム基板を販売している店舗

アーケードゲーム基板を販売している店舗一覧。(2018年8月現在)

以前に比べて増えたような気がする。

RetroPie adv-mameで縦画面ゲーム

adv-mame 1.4 で縦画面ゲームをやる場合、デフォルトでは横長のモニターに収まるように解像度が調整されて表示される。 モニターを回転させて画面いっぱいに表示させたい場合は、設定ファイルを変更する必要がある。

/opt/retropie/configs/mame-advmame/advmame-1.4.rc に以下を追加。

vertical/display_rol yes

これで縦画面のゲームを起動すると、モニターの左側が上になるように画面が90度回転して表示される。 横画面のゲームは回転しない。

逆に右側が上になるようにしたい場合は、display_rol を display_ror にすればよい。

設定ファイルの説明はこちらを参照。 http://www.advancemame.it/doc-advmame

X68000 ACE でHxC Floppy Emulator

超連射68Kをやりたい!、ということで、 X68000 ACEの電源修復の次は、 HxC Floppy Emulatorを接続します。

X68000 の注意点

X68000では、標準的なFDDインターフェースに、イジェクトなどの独自拡張が加えられています。 (以下の表の「X68000拡張」)

HxC Floppy Emulatorでは当然拡張部分は未対応ですので、その部分だけは既存のFDDを利用する必要があります。

詳細は、HxC Floppy Emulator公式サイトのフォーラムに記述があります。

http://torlus.com/floppy/forum/viewtopic.php?f=19&t=465

内蔵FDDのピンアサインとHxC Floppy Emulatortとの接続

このため、内蔵FDDコネクタとHxC Floppy Emulatorを接続するケーブルには細工が必要となります。

内蔵FDDコネクタに接続したケーブルをピンごとに分岐させ、一方はHxCに、もう一方は内蔵FDDに接続します。

ピンと接続先は以下のとおりです。

# 内容 X68000拡張 内蔵FDDに接続 HxCに接続
1 option select 0 o o
2 disk type select o o
3 option select 1 o o
4 - o
5 option select 2 o o
6 drive select 3 o
7 option select 3 o o
8 index o
9 eject o o
10 drive select 0 o
11 eject mask o o
12 drive select 1 o
13 LED blink o o
14 drive select 2 o
15 disk in o o
16 motor on o
17 err disk o o
18 direction o
19 fdd int o o
20 step o
21 - o
22 write data o
23 - o
24 write gate o
25 - o
26 track 0 o
27 - o
28 write protect o
29 - o
30 read data o
31 - o
32 side select o
33 - o
34 ready o

(参考) https://www.gamesx.com/wiki/doku.php?id=x68000:floppy_pinout

そのケーブルを自作するとこうなります。

赤い線がピン1に対応し、そのままピン2、ピン3の順でピン34まで並んでいます。 表にあるとおり、ピン1,3,5,7,9,11,13,15,17,19を内蔵FDDにつなぐため、 対応する線を途中で切断して分離させ、別途用意したFDD34ピンコネクタ(オス)に接続します。

写真だと、接続部をグルーガンで固めてしまっているので分かりにくいですね。

以下の接続図を参照。

内蔵FDDのケーブル(写真左)をこのFDDコネクタに接続します。

自作ケーブル(手前のきれいな方)のコネクタをX68000本体に接続します。

HxC Floppy Emulator の電源

電源は別途用意する必要があります。

5V/500mA あればよいので、100円ショップで売っているUSB接続のACアダプタでもOKです。 ただし、ケーブルは、一方をHxC Floppy Emulatorに接続する電源コネクタに付け替えるよう改造する必要があります。 (写真右)

ACアダプタ側の線のうち、どれが5Vで、どれがGNDかは、テスターで確認します。

電源コネクタ側は赤が5V、黒がGNDです。 工作が下手で、なぜか折り返すようにつないでます。

接続して起動

HxC Floppy Emulatorにつなぐとこのようになります。 FDDケーブルは、突起がある側が下になるようにします。

X68000本体のFDDにはダミーのフロッピーディスクをセットします。

HxC Floppy Emulatorで読み込むディスクイメージを指定して電源を入れると

ようやく超連射68Kを起動できました。 長かった。

必要なパーツ

今回追加購入が必要だったものは以下の通りでした。

X68000 ACE 電源修復(ATX電源+ACアダプター化)

超連射68Kをやりたい!、と思い、 某オークションサイトでX68000 ACEを入手しました。

メモリが2MBあるし、安いしラッキーと思っていたのですが、案の定(?)電源が入りませんでした。

POWERランプが赤く光るものの、本体前面のスイッチを押しても全く反応なし。 どうやらこれも電源の故障による可能性があるらしいです。

そのようなわけで、ATX電源で修復してみることにします。

こちらを参考にさせていただきました。ありがとうございます。 http://kanchan707.blog43.fc2.com/blog-entry-272.html

パーツ

予算は5〜6000円程度。

  • ATX電源(ACアダプタータイプ)
    • zmart DC-ATX-160W 160W ACアダプター電源 キット pico BOX ATX ITX psu
  • ACアダプタ(12V 10A~15A 外径5.5mm、内径2.5mm センタープラス)
    • PSE規格品】12V10A 汎用 ACアダプター ノイズフィルターつき スイッチング方式 DCプラグ5.5mmx2.1mm 5.5mmx2.5mm 共用
  • ATX24ピンコネクタ(オス)
  • 74LS04
  • 抵抗 4.7kΩ
  • 基板(小さいものでよい)

ATX電源は、小さくてACアダプタを使うタイプを選びました。Amazonで購入。

zmart DC-ATX-160W 160W ACアダプター電源 キット pico BOX ATX ITX psu

ACアダプターは、12Vで10A以上のものが必要。 こんなの簡単に見つかるだろうと思い、秋葉原を漁ってみたのですが、まったくなし。 電流が小さすぎたり、電圧が高すぎたり。 結局、これもAmazonで入手しました。

回路図

参考にした回路図は、20ピンの電源のものだったのと、HDDの電源もつなぐことを想定していました。 今回は24ピンでHDD不要のため、ちょっとアレンジしています。

電源ON/OFFの信号がATXX68000では逆らしいので、74LS04と抵抗で反転させているようです。 (ハードウェアのことは知らないので、これ以上はよく分かりません・・・)

制作

電源取り外し

元の電源を取り外しますが、ケーブルは利用するため、電源から切り離してとっておきます。

反転回路

回路図を参考に、74LS04と抵抗を結線します。

結線

電源から取り外したケーブルを、ATXコネクタに接続します。

かなり雑な写真でよく分かりませんね・・・。あくまでも回路図を参考に。

本体に適当に装着。電源から外したケーブルが短くて、取り回しにくいのが難点。

かなり適当な工作でしたが、それでも問題なくX68000が使えるようになりました。 こういったことができるのも、情報を公開されている先達のおかげです。感謝。

.D88形式のフロッピーディスクイメージフォーマット

全体

項目 サイズ
ヘッダ 0x2b0
トラック0 不定
トラック1 不定
: :
  • トラック数とサイズはディスクの種類によって異なる。
    • トラック数 最大164
    • トラックサイズは、セクタ数、セクタヘッダ、データサイズにより変動

ヘッダ

項目 サイズ 備考
ディスク名 17 C文字列(末尾が 0x00)最大16文字
予約 9
ライトプロテクト 1 0x00=なし 0x10=あり
ディスクの種類 1 0x00=2D 0x10=2DD 0x20=2HD
ディスクサイズ 4 ヘッダと全トラックの合計サイズ(リトルエンディアン)
トラック先頭のオフセット 4*164 トラックのファイル先頭からのオフセット。トラック0〜163の順で、1トラック4バイト(リトルエンディアン)

トラック

トラックに含まれるセクタを順に連結したもの。

セクタ

項目 サイズ 備考
トラック(C) 1 0から数える
サイド(H) 1 0=表面 1=裏面
セクタ(R) 1 1から数える
セクタサイズ(N) 1 0=128bytes 1=256bytes 2=512bytes 3=1024bytes
トラック中のセクタ数 2 (リトルエンディアン)
記録密度 1 0x00=倍密度 0x40=単密度 0x01=高密度
削除フラグ 1 0x00=通常 0x10=削除
ステータス 1 0x00=正常
予約 5
このセクタのデータサイズ 2 (リトルエンディアン)
データ 不定 サイズはセクタサイズ分

例:標準的な2Dフォーマットの場合

トラック数 サイド セクタ数/トラック セクタサイズ(byte)
40 2 16 256

ヘッダ

項目 サイズ
ディスク名 17 (任意)
予約 9 0
ライトプロテクト 1 0x00
ディスクの種類 1 0x00
ディスクサイズ 2 348848 (= 0x2b0(ヘッダ)+40(トラック数)☓ 2(面)☓ 16(セクタ/トラック)☓ (0x10(セクタヘッダ)+ 0x100(セクタデータ))
トラック先頭のオフセット 4*164 0x02b0,0x24b0,...(トラックごとに+0x2200 0〜39トラックまで。40トラック以降は 0)

トラック

トラック サイド セクタ オフセット サイズ
0 0 1 0x02b0 0x110
0 0 2 0x03c0 0x110
: : : : :
0 0 16 0x12a0 0x110
0 1 1 0x13b0 0x110
: : : : :
0 1 16 0x23a0 0x110
1 0 1 0x24b0 0x110
: : : : :
39 1 16 0x551a0 0x110

セクタ

項目 サイズ
トラック 1 0〜39
サイド 1 0 or 1
セクタ 1 1〜16
セクタサイズ 1 1
トラック中のセクタ数 2 16
記録密度 1 0x00
削除フラグ 1 0x00
ステータス 1 0x00
予約 5 0
このセクタのデータサイズ 2 256
データ 256 (実データ)

HxC Floppy Emulator 用に .2d 形式ディスクイメージの変換

HxC Floppy Emulator は独自の hxe 形式なのだが、一般的なディスクイメージとは異なるので変換する必要がある。

HxC Floppy Emulatorの公式が配布している HxCFloppyEmulator software を利用すれば、.d88形式は標準で変換可能。 しかし、.2d形式は未対応なため、ちょっと工夫が必要。

http://hxc2001.free.fr/floppy_drive_emulator/index.html#download

.2d -> hfe 変換

.2d形式は生データだけなのでRAW fileとして扱うのだが、フロッピーディスクのトラック数などのフォーマットを指定する必要がある。

変換したい.2dファイル専用ディレクトリを作る

Batch converterは、ディレクトリ内のすべてのファイルを変換しようとするので、 .2dファイル専用ディレクトリを作って、変換したいファイルだけをコピーしておく。

変換実施

HxCFloppyEmulator software で Batch converter を選ぶ

赤枠が設定箇所

  • Target file format は HFE
  • Source directory は先に作っておいた2dファイル専用ディレクトリを指定
  • Target directory は変換後のファイルを起きたいディレクトリだが、Source とは異なる場所にすること
  • Treat input files as RAW files のチェックを入れる

チェックを入れるとフロッピーディスクのフォーマット指定ウィンドウが出る。 標準フォーマットだと以下の設定となる。 入力したら close を押して戻る。

これで Convert を押すと、Source directory にあるすべてのファイルが変換される。

変換後のファイル拡張子は hfe になっているので、それをSDカードにコピーしてやれば、 HxC Floppy emulator で使えるはず。

RetroPie

古いゲームはレトロフリークでやることが多いのだが、1つだけ大きな問題がある。 PC-Engine CD-ROM2のゲームができないことだ。

そこで、Raspberry Piをゲーム機にできるRetroPieを試してみた。

https://retropie.org.uk

必要な機材(超重要)

特に重要なのはRaspberry Pi本体とSDカードで、高い性能のものを揃えないと実用的でない。

RasPi3でないとエミュレーション速度が遅くてゲームにならず、 SDカードはclass10でないとRetroPieの起動が遅くてゲームをやる気が削がれることになる。

16GBなら1000円未満で入手できるので、ここはケチケチせずによいものを手に入れるべきだ。

microSDの相性問題

最初は、家に転がっていたメーカー不詳のものを使ってやっていたのだが、 これが非常に不安定で、再起動すると動かなくなることがしばしば。

どうやらファイルシステムの破損が起きているようで、 最終的にはカーネルパニックで起動すらしなくなる。

RetroPieのバグというにはあまりに不安定で諦めかけていたのだが、 ふとSDカードの相性?と思って調べると、やはりあるらしい。

https://elinux.org/RPi_SD_cards

東芝製が比較的安定しているようなので、適当に見繕って16GBのもの(toshiba EXCERIA M301 UHS-I CLASS10)を購入して使ってみたところ、 ようやく安定した動きとなった。

アクセス速度もかなり速く、書き込みがメーカー不詳SDの約3倍(5GB/sec -> 15GB/sec)となったため、 RetroPieの動きも体感できるほど早くなった。

準備

RetroPie入手

ここから4.3をダウンロード retropie-4.3-rpi2_rpi3.img.gz https://github.com/RetroPie/RetroPie-Setup/releases

SDカードをフォーマット

Macの場合、ディスクユーティリティでSDカードを選び消去をすればよい。

イメージを書き込む

Macコマンドラインで実施。 デバイス名は環境により異なるので実施時に確認のこと。

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:          Apple_CoreStorage                         120.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *120.0 GB   disk1
                                 Logical Volume on disk0s2
                                 798BD153-ABCD-4C14-BBDF-9E9027CC740F
                                 Unencrypted
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.5 GB    disk2
   1:                 DOS_FAT_32 NO NAME                 15.5 GB    disk2s1

$ sudo diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

$ sudo dd bs=1m if=retropie-4.3-rpi2_rpi3.img of=/dev/rdisk2 conv=sync
Password:
2145+0 records in
2145+0 records out
2249195520 bytes transferred in 151.199757 secs (14875656 bytes/sec)

初期設定

最低限必要そうなものを列挙。 設定画面が統一されていないのが面倒。

  • コントローラー
    • emulation station起動後に自動的に設定画面が出るので、USBコントローラーを繋いで設定。
    • 最後にホットキー(エミュレーターの制御キー)を有効にするボタン設定もあるが、使っているコントローラーのボタン数が足りないので割り当てない。
    • 割り当てないと本当にそれでよいか念押しをしてくるが、NOを選ぶ。
    • その代わり、ゲーム終了などのエミュレーターの制御は、キーボードで行うことになる。
  • WIFI
    • 設定はemulation stationのconfiguration -> WIFI
    • 接続したいアクセスポイントを選ぶ
    • パスフレーズを入力
  • samba
    • 「RETROPIE SETUP」->「Configuration/tools」->「samba - Configure Samba ROM Shares」->「Install RetroPie Samba shares」
  • SSH
    • RASPI CONFIG -> interfacing -> SSH

PC-Engine エミュレーターの起動

まずはHuカードのゲームを試してみる。

ROMファイルがないとエミュレーターがemulation stationの選択肢にすら出てこず起動できないので、 ROMファイルを既定の場所にコピーする。

ROMファイルのあるPCからRetroPieの共有ディレクトリ \\retropie\roms\pcengine にROMファイルをコピーする。 (RetroPieローカルのパスは /home/pi/RetroPie/roms/pcengine) 拡張子は .pce。

ROMディレクトリにファイルをコピーしたら、いったんemulation stationをrebootする。

STARTを押す -> QUIT -> RESTART EMULATION STATION

rebootが終わると、メニューにPC-Engineが表示されるようになる。 ROMファイルを選んで、ゲームが起動すればOK。

エミュレーターからemulation stationに戻るには、キーボードの ESC を押す。

CD-ROM2 のゲーム

システムカード

CD-ROM2のシステムカードを syscard3.pce という名前にして BIOS ディレクトリに入れておく。 (ROMファイルの場所とは違うので注意)

samba経由なら \\retropie\BIOS へ。 (RetroPieローカルパスは /home/pi/RetroPie/BIOS

詳細はこちらを参照。→ https://github.com/retropie/retropie-setup/wiki/PC-Engine

CDのイメージファイル化

MacPC-EngineのCDをリッピングする方法が不明だったので、 実績のあるWindowsCD Manipulatorを利用。

CD Manipulatorはここから入手→ http://www.storeroom.info/cdm/

CD-ROMをセットし、左上のボタンを押す。

「検索」ボタンを押して、保存ファイル名を指定。 他のオプションを画面のように設定して「OK」を押すと、CDを読んでイメージを作成してくれる。

CD Manipulatorリッピングすると5つファイルができるが、 RetroPieに必要なのは.imgと.cueのみ。

これをsamba経由で \\retropie\roms\pcengine にコピー。

WindowsCD Manipulatorについては、以下を参考にさせていただいた。 http://blog.livedoor.jp/lunchbox360/archives/3306551.html

CD-ROM2ゲームの起動

emulation stationを再起動すると、CD-ROMのゲームが一覧に表示されるようになる。 これを選択すると、システムカードとCDイメージがセットされた状態でPC-Engineエミュレーターが起動。 あとは通常のPC-Engineで動かしているのとまったく同じで、RUN でゲームが起動する。

ここまででひとまず目的は達成。

スクリーンショット

スクリーンショットはデフォルトでキーボードの F8 で取得でき、.png ファイルでRetroPieに保存される。

しかし、デフォルトのsambaの設定では、スクリーンショットが保存されるディレクトリが共有されていない。 これでは面倒なので、共有設定を追加する。

SSHでRasPi3にログオンした後、 /etc/samba/smb.conf を編集。

$ sudo vi /etc/samba/smb.conf

以下をファイルの最後に追加。

[screenshot]
comment = screenshot
writable = yes
path = "/opt/retropie/configs/all/retroarch/screenshots"
guest ok = yes
create mask = 0644
directory mask = 0755
force user = pi

そしてsambaを再起動。 コマンドが分からなかったので、RetroPieで実施。

RETROPIE SETUP -> Configuration / tools -> samba - Configure Samba ROM Shares -> Restart Samba service

これで、\\retropie\screenshot にアクセスすれば .png ファイルを簡単に取り出せるようになる。

こんな感じ。

GATE OF THUNDER

Soldier Blade

まとめ

最初は古いRasPiとSDカードをリサイクルする目的だったが、きちんと使えずかなり無駄な時間を使ってしまった。 結局、新しいRasPiとSDカードに買い換えることになり、当初の目的には見合わない結果となってしまった。

RasPi3本体、ACアダプタ、microSDを全部買い替え、さらにキーボードも追加購入したので、1万円弱の出費に。

さらに失敗だったのは、microSDが16GBでは足りないこと。 CDイメージは1枚500MB程度なのに、手持ちCDが20枚以上あるので、全部入らないことを計算に入れてなかったのだった。

と、いくつか問題はあったものの、お手軽にCD-ROM2で遊べるのは素晴らしい。