見出し画像

レトロフリークでゲームを吸い出してPCでも遊べるようにする:究極吸い出し

レトロフリークは、ファミコンやゲームボーイ、メガドライブなど複数のゲーム機のゲームが動くので人気がありますが、レトロフリークで吸い出したデータをそのままパソコンで遊ぼうとしても遊べません。
今回はレトロフリーク本体を使って、暗号化したデータ以外に暗号化されていないデータも同時に作る方法を話していきます。
暗号化していないファイルは、パソコンやそのほかのエミュレータでも動かすことができます。
レトロフリークについて書いた記事もあるので、まだ読んでなかったらこちらもどうぞ。

難易度設定
★      とても簡単 (何も考えなくてもできる)
★★     簡単 (初歩的なパソコンの知識があればできる)
★★★    普通 (ある程度の技術が必要)
★★★★   難しい(パソコンの知識があまりないと難しい)
★★★★★  かなり難しい(パソコンの知識と他の知識も必要)
★★★★★★ とても難しい(複合的な理解力が必要)

今回の難易度 ★★★★ 難しい
基本的なパソコンの知識がないと難しいと感じるかもしれません。解説の通りに進めれば、ある程度は出来るようになっています。

1:レトロフリークを手に入れよう

※吸出し自体は違法ではありません。吸い出したROMの配布や販売を助長するわけではありません。あくまで、コレクションのバックアップと有効活用のための記事であることを理解して吸出しを行ってください

まずは、レトロフリーク本体が必要です。
どれでもいいのですが、遊びたいゲーム機によってはアダプターが必要なので、それも考えて購入しましょう。
ファミコンだけなら安いのもあります。
オススメは、全部入ったギアコンバーターセットです。
ギアコンバーターは製造が終わっているので、単体で揃えるよりもセットで買うとお得です。

2:保存用のマイクロSDカードを手に入れる

レトロフリークで普通に遊ぶにもSDカードが必要なので、一緒に購入しましょう。
吸出しに必要な最低限の大きさは16GBですが、レトロフリークでそこそこ遊ぶなら64GBがいいと思います。
値段は128GBがコスパがいいので、私はSanDiskのを買いました。
レトロフリーク以外でも使い勝手がいいように128GBくらいのSDカードを複数持っていますが、256GBとか512GBはレトロフリークでは大きすぎて扱えないので注意してください。

吸い出すだけなら、安いBuffaloの32GBでもいいと思います。
あんまり容量が小さくても高いので、オススメしませんが16GB以上なら何を買ってもいいです。

3:パソコンで読み書きするUSBカードリーダー

パソコンである程度設定するので、USBからSDカードへ読み書きできるカードリーダーが必要です。
TransendのカードリーダーはUSB3.1対応で早いのでオススメです。私はこれをいつも使っています。

4:吸出し設定用のファイル

吸い出すときに必要なファイルがあるので、ダウンロードします。

retrofdのサイトからファイルを入手します。
手持ちのSDカードの容量よりも小さい容量のファイルをダウンロードしてください。
小さい容量のファイルじゃないと、SDカードの容量をオーバーしてしまうので、書き込めないからです。
16GBのSDカードなら8GBのファイル「retrofd_v1.0_8GB.zip
32GBのSDカードなら16GBのファイル「retrofd_v1.0_16GB.zip
64GB以上のSDカードなら「retrofd_v1.0_32GB.zip」をダウンロードします。

吸出しだけなら128GBのSDカードに8GBのイメージを焼いてもよいですが、128GB-8GB=120GBが余ってしまうので、128GBを使うなら32GBのイメージを焼いてください。
それでも96GBは余るので、割り切りましょう
再フォーマットすれば128GB使えるようになります。

画像1

ダウンロードしたら、わかりやすいところに解凍しておきます。
「~.img」というファイルを覚えておいてください。

5:イメージ書き込みツール

イメージ書き込みツールは「Win32 Disk Imager」が有名で、いろいろなところで使われていますが、私は操作ミスの少ない「Raspberry Pi Imager」を使っています。
このツールになじみがない人もいますが、フォーマットやイメージの書き込みが出来るので重宝します。

上記サイトからダウンロードしてインストールしておいてください。

6:SDカードのフォーマットをする


「Raspberry Pi Imager」を起動したら、SDカードのフォーマットを行います。
「Raspberry Pi Imager」ではfat32形式でしかフォーマットできません。

画像2


CHOOSE OSからEreeseを選択します。

画像3

次にCHOOSESTRAGEからSDカードを選択します。

画像4

画像では8.2GBになっていますが、手持ちのSDカードの容量を見ながら選択してください。

画像5

WRITEをクリックしてフォーマットします。

フォーマットが終わったら、SDカードリーダーを接続しなおしてください。
ここで抜き差ししないと正しく書き込めないことがあるので、注意してください。

7:SDカードにイメージを書き込む

続いてダウンロードしたイメージをSDカードに書き込みます。

画像6

CHOOSE OSからUse customを選択します。

画像7

保存しておいたイメージを選択します。

画像8

次にCHOOSESTRAGEからSDカードを選択します。

画像9

WRITEをクリックして書き込みます。

画像10
画像11
画像12

書き込みが終わったらSDカードを取り出してください。
レトロフリークで認識するか確認してから次へ進みます。

8:レトロフリークの起動

SDカードをレトロフリークで認識するか確認します。
SDカードを本体に差し込んで起動します。

画像13

カードリッジアダプターのアップデートが必要なら「はい」を選択してアップデートします。これをしないとカートリッジの読み込みができません。

画像14

データの保存先をSDカードにします

画像15

2021年8月現在の最新システムバージョンはは2.7です。
2.7で吸い出しできる報告は上がっていますが、それ以上のバージョンではできない可能性があります。アップデートはなさそうですが、2.7以上のバージョンで出来るようになるまでアップデートしないでください。
私のシステムは2.0でした。あまりバージョンが低くても読めないゲームがあるので、そこも注意してください。一度アップデートするとダウングレードはできません。

画像16

本体にゲームのカセットを差し込みます。
今回はファミコンの「魔界村」で試します。

画像17
画像18

microSDにインストールするか聞かれるので、「はい」を選択します。

画像19

インストールが出来たら本体を終了して、電源を切ってください。

9:データ編集用のアプリをインストールする

データを編集する前にテキストエディターをダウンロードします。
「TeraPad」

「Notepad++」

上記のいずれかで編集します。(どちらも無料です)
私は「Notepad++」を使っています。32bit版と64bit版があるので、OSに合わせてインストールしてください。

Windowsに付属しているメモ帳やノートバッドで編集すると正常に動かなくなるので注意してください。
(Windows付属のテキストエディターで編集すると、レトロフリークで読むことができる改行コードと異なるためです)

10:データの編集

一度レトロフリークで起動したSDカードをパソコンにつなぎます。

※Windowsに繋ぐとフォーマットを促されますが、フォーマットしないでください。SDカードのデータが消えます。

画像20

SDカードの中に「retrofd」というフォルダがあるので開きます。

画像21

中に「retrofd.cfg」と「rfd_logcd.sh」というのがあるので、これを編集します。
「retrofd.sh」という間違えやすいファイルがあるので、気を付けてください。

「retrofd.cfg」を編集します。

画像22
# clear micro SD partition 2/3
RF_CLR_SDP23=no   
# FACTORY TEST MODE
RF_FTM=no   
# Log copy daemon
RF_LOGCD=yes   

「RF_LOGCD=no」を「RF_LOGCD=yes」に変更します。
上記のコードを丸ごとコピーして書き換えてください。

次に「rfd_logcd.sh」を編集します。

画像23
#!/sbin/busybox sh

while ! busybox grep "/mnt/external_sd" /proc/mounts > /dev/null
do
	busybox sleep 1
done

# copy log files(/mnt/ram/log/*) to SD(/retrofd/log) if new ones exist
srcd=/mnt/ram   
dstd=/mnt/external_sd/retrofd/log   
while : ;
do
	busybox find $srcd -maxdepth 1 -type f | busybox sed -e 's/.*\///' | while read logfile
	do
		if [ ! -f "$dstd/$logfile" ]; then
			fsize0=`busybox ls -l "$srcd/$logfile" | busybox awk '{print $5}'`
			while : ;
			do
				busybox sleep 1
				fsize=`busybox ls -l "$srcd/$logfile" | busybox awk '{print $5}'`
				[ $fsize = $fsize0 -o "$fsize" = "" ] && break
				fsize0=$fsize
			done
			if [ $fsize != "" ]; then
				busybox cp "$srcd/$logfile" $dstd/
				busybox sync
				busybox dd if=/dev/urandom of=/dev/graphics/fb0 count=100 seek=0 bs=1280
				busybox dd if=/dev/urandom of=/dev/graphics/fb0 count=100 seek=2880 bs=1280
				busybox dd if=/dev/urandom of=/dev/graphics/fb0 count=100 seek=5760 bs=1280
			fi
		fi
	done
	busybox sleep 1
done
#!/sbin/busybox sh

while ! busybox grep "/mnt/external_sd" /proc/mounts > /dev/null
do
	busybox sleep 1
done

# copy log files(/mnt/ram/log/*) to SD(/retrofd/log) if new ones exist
srcd=/mnt/ram/log   
dstd=/mnt/external_sd/retrofd/log   
while : ;
do
	busybox find $srcd -maxdepth 1 -type f | busybox sed -e 's/.*\///' | while read logfile
	do
		if [ ! -f "$dstd/$logfile" ]; then
			fsize0=`busybox ls -l "$srcd/$logfile" | busybox awk '{print $5}'`
			while : ;
			do
				busybox sleep 1
				fsize=`busybox ls -l "$srcd/$logfile" | busybox awk '{print $5}'`
				[ $fsize = $fsize0 -o "$fsize" = "" ] && break
				fsize0=$fsize
			done
			if [ $fsize != "" ]; then
				busybox cp "$srcd/$logfile" $dstd/
				busybox sync
				busybox dd if=/dev/urandom of=/dev/graphics/fb0 count=100 seek=0 bs=1280
				busybox dd if=/dev/urandom of=/dev/graphics/fb0 count=100 seek=2880 bs=1280
				busybox dd if=/dev/urandom of=/dev/graphics/fb0 count=100 seek=5760 bs=1280
			fi
		fi
	done
	busybox sleep 1
done

「rfd_logcd.sh」のコードを上記のものに丸ごと変えてください。

もしくは下記の作者の公式サイトからダウンロードしてファイル名を「rfd_logcd.sh」に変更して使ってください。

test version of 'log copy daemon'

@hissorii hissorii released this on 28 Jun 2019

ログ・コピー・デーモンをアップデートしてみました。

コードのソースは上記作者のサイトの「test version of 'log copy daemon'」からダウンロードできます。
このファイルの9行目の「srcd=/mnt/ram/log」を「 srcd=/mnt/ram」に変更します。

11:ゲームを吸い出す

レトロフリークの電源を入れる前にSDカードをセットしておきます。
電源が入ったらゲームカートリッジを差し込みます。
ゲーム名が表示されてしばらくすると、画面上部に虹色の帯が現れます。

画像24

図のように変化したらゲームが吸い出されています。
ゲームが認識されない場合は挿しなおしたり、ゲームを遊んで中断したり、ほかのゲームに入れ替えたりしてみましょう。

ファミコンだと5秒くらいの間に吸い出されます。ゲーム機の種類によって時間が変わりますが、長くても10秒まではかかりません。それ以上たっても変化がない時は挿し直すか、ゲームを交換したり端子を清掃したりしてください。

12:ゲームを遊ぶ

ゲームはSDカードの「retrofd」フォルダの「log」フォルダに魔界村だと「Makai Mura (Japan).NES」もしくは「dump.NES」という名前で記録されています。
ファミコンの場合は「ゲーム名+.NES」という名前になります。
スーパーファミコンだと「ゲーム名+.sfc」か「dump.sfc」という名前です。

ゲーム名で記録されている場合は、ほかのゲームで上書きされませんが、「dump.NES」で書き込まれていると上書きされてしまいます。
面倒ですが読み込まれたその都度、確認する必要があるようです。

「RetroFreak」フォルダの「Games」フォルダに「ゲーム名+.NES」というファイルが同様にできますが、こちらは暗号化されていて遊ぶことができないので注意してください。(レトロフリークが正しく動作する時にできるファイルです)

13:吸い出したゲームが成功しているか確認する


ゲームが正しく吸い出されているか確認します。
「ROM Checker」でデータの整合性を確かめます。

上記のサイトから「ROM Checker」をダウンロードして解凍して、どこかに保存してください。
起動した画面に、吸い出したゲームをドラッグ&ドロップします。

画像25

「データーベースのCRCと一致しました」と表示されたら問題ありません。
ほかの項目でゲーム名やその他の情報も出ています。
ファイル名だけが「dump.NES」になっているので、「ゲーム名+.NES」に変更してください。
ゲーム名は日本語ではなく、半角英数字でつけてください。
一部のエミュレーターでは日本語で動かない場合があります。

吸い出したゲームは、すべてのエミュレーターで動作するわけではないので、いくつかのエミュレーターを使い分けて遊んでください。

まとめ


ひとつひとつ吸い出すのが面倒ですが、レトロフリークだけで吸出し出来るので重宝すると思います。
パソコンとレトロフリークの組み合わせで吸い出す方法もあるので、また紹介したいと思います。

サポートしてくださると私もあなたも幸せになれる。そんな気がしています。