2014年10月13日月曜日

Mac OS X Marvericsから GB USB smart card 64Mに セーブデータを移動させる

LSDjのセーブデータバックアップに重宝する、GB USB smart card 64Mというカートリッジが有ります。
Windowsだと、GUIが用意されてて直感的に移行作業ができるんですが、Macには移行用のソフトが付いて無いので、ちょっと工夫が必要です。
大した作業はありませんが、海外の情報がほとんどで、せっかく調べたのでここにまとめます。

実行環境
Mac:OS X バージョン10.9.5

※ある程度Macの開発系の環境に知識がある人を対象に書きます。
用語が分からない方は、適宜ググりながら見て頂けると幸いです。

※ROMの操作や管理については自己責任でお願いします。
ROMやセーブデータが消えても、僕はどうすることもできないので…


1. 必要なライブラリのダウンロード

GB USB smart card 64Mと、Macをつなぐには、EMS Flasherというプログラムを利用します。
Homebrew または MacPortsで、EMS Flasherの実行に必要なライブラリをインストールしておきます。
自分の環境に応じて、以下コマンドを「ターミナル」で実行して下さい。

Homebrewでインストールする
brew install pkgconfig
brew install libusb
MacPortsでインストールする
sudo port install pkconfig
sudo port install libusb

2. EMS Flasherのダウンロード

EMS Flasher開発者のサイトから、Mac向けのソースをダウンロードします。

ダウンロードしたzipファイルを解凍し、適当なフォルダに移動させます。


3. EMS Flasher の実行

  1. ターミナルで、先ほど解凍したEMS Flasherのディレクトリに移動します。
    cd (EMS Flasherがあるディレクトリ)
    
  2. ターミナルで、ems-flasher のコマンドを指定して、実行します。
    ./ems-flasher --(コマンド名)
    

一応、これでEMS Flasherが使えるようになったはずです。
以下コマンドで、ems-flasherの使用方法を見ることができます。

./ems-flasher --help


番外. EMS Flasherを実行してみる

せっかくなので、EMS Flasherを実行してみます。

EMS Flasherの使い方を調べる:./ems-flasher --help
実行結果サンプル
$ ./ems-flasher --help
Usage: ./ems-flasher < --read | --write > [ --verbose ] 
       ./ems-flasher --title
       ./ems-flasher --version
       ./ems-flasher --help
Writes a ROM or SAV file to the EMS 64 Mbit USB flash cart

Options:
    --read                  read entire cart into file
    --write                 write ROM file to cart
    --title                 title of the ROM in both banks
    --verbose               displays more information
    --bank             select cart bank (1 or 2)
    --save                  force write to SRAM
    --rom                   force write to Flash ROM

You MUST supply exactly one of --read, --write, or --title
Reading or writing with a file ending in .sav will write to SRAM.
To select between ROM and SRAM, use ONE of the --save / --rom options.

Advanced options:
    --blocksize       bytes per block (default: 4096 read, 32 write)

Written by Mike Ryan  and others
See web site for more info:
    http://lacklustre.net/gb/ems/
カートリッジの中身を確認する:./ems-flasher --title

手持ちのGB USB smart card 64Mを、Macに繋いでコマンドを実行します。

実行結果サンプル
$ ./ems-flasher --title
Bank 0: LSDj-v4.7.3?
Hardware support: DMG <+CGB>
Cartridge header checksum invalid. This game will NOT boot on real hardware.
Bank 1: 
Hardware support: DMG
Cartridge header checksum invalid. This game will NOT boot on real hardware
バンク0に、LSDjが入ってることが認識されてます。
カートリッジの中身(ROM)を吸い出す:./ems-flasher --read (任意の名前).gb
実行結果サンプル
$ ./ems-flasher --read test.gb
$
※--verbose オプションを付ければ、メッセージがいくつか出力されます。
カートリッジの中身(セーブデータ)を吸い出す:./ems-flasher --read (任意の名前).sav
実行結果サンプル
$ ./ems-flasher --read test.sav
$

吸い出したROMとSAVで、大事なセーブデータのバックアップができますね!

ROMをカートリッジに移動させる:./ems-flasher --write (任意の名前).gb
実行結果サンプル
$ ./ems-flasher --write --verbose /path/to/LSDj-v4.7.3-init.gb
trying to find EMS cart
claimed EMS cart
base address is 0x0
Writing ROM file /path/to/LSDj-v4.7.3-init.gb
Successfully wrote 1048576 from /path/to/LSDj-v4.7.3-init.gb
セーブデータをカートリッジに移動させる:./ems-flasher --write (任意の名前).sav
実行結果サンプル
$ ./ems-flasher --write --verbose /path/to/LSDj-v4.7.3-init.sav
trying to find EMS cart
claimed EMS cart
base address is 0x0
Writing SAVE file /path/to/LSDj-v4.7.3-init.sav
Successfully wrote 131072 from /path/to/LSDj-v4.7.3-init.sav

これでバックアップデータの復元ができますね!!


あとがき

EMS Flasherをダウンロードしてきて、ターミナルから実行するだけなので、そんなに難しくはないと思います。
だからこそ、Mac向けのGUIも誰かが作ってくれることを期待してますw

参考サイト

0 件のコメント:

コメントを投稿