カートリッジリーダーの小ネタ。遭遇の可能性は低く、且つ対処法を知っていれば実害は(ほとんど)ありません。自分が試したところ、最新のVer14.2でも発生を確認しました。
単純に結論を言ってしまうと、CRC32で取得したタイトルのファイル名が長すぎる場合にファイル名が欠損するという現象です。本当にそれだけのこと。
試しに「がんばれゴエモン もののけ道中 飛び出せ鍋奉行!」を吸い出す
GBCの本ソフトを吸い出してみます。副題が長めですね。
基本的に吸い出し自体は特に問題ありませんが、CRC32の後のファイル名の導出が途切れています。尚、カートリッジリーダーの液晶上はエラーなどは出ておらず、Press Button…出てるので正常に吸い出しできているように見えます。
吸い出したファイルを見てみると…
しかし、SDカードをPCに繋げてみるとこんな感じになってます。そう、ファイル名が長すぎて拡張子が欠損してるんですね。
当然、この拡張子のままだとエミュレータで読み込めません。
カートリッジリーダーの出力ログを見てみると、やはりファイル名が長すぎて欠損しているのが見てわかります。
OSCR HW3 V14.2
[+] Game Boy
[+] Game Boy (Color)
Name: GOEMON NABE
Serial: AEFJ
Revision: 0
Mapper: MBC5
ROM Size: 2 MB
Save Size: 8 KB
Press Button...
[+] Read ROM
Saving to GB/ROM/GOEMON NABE/467/...
[*******************]
Checksum: B5F3 -> OK
CRC32... 73311CFA -> Ganbare Goemon - Mononoke Douchuu Tobidase Nabebugyou! (Japan) (SGB Enhanced) (GB Compatible).g
原因はプログラムっぽい
Cart_Reader.inoのプログラムを調べてみると、ゲーム名を代入する変数gamenameの文字列サイズが96バイトであることがわかります。「Ganbare Goemon – Mononoke Douchuu Tobidase Nabebugyou! (Japan) (SGB Enhanced) (GB Compatible).gbc」は空白含めると97バイトなので欠損したものと思われます。
この変数を変えれば問題解決しそうな感じもしますが、変更後に他の箇所に影響が出ないとも言い切れません。そこまでプログラミングスキルもないので別のアプローチで対処します。
対処法:ファイル名をリネームするだけ
まぁ言及する必要もなさそうな対処法ですが、ファイル自体は正常に吸い出せているため、ファイルをリネームするだけでOKです。今回の例だと.gを.gbcに変えるだけ。
たったそれだけでエミュレータで読み込みもできるようになりました。めでたしめでたし。
感想
日本語で長めの副題が付いているタイトルは結構引っ掛かるものがありそうですね。逆に海外タイトルで長名タイトルって思い浮かびません。知らないだけかもですが。
とりあえず自分がテキトーにSDCardフォルダのtxtを眺めてて見つけたのはGBAの「絶体絶命でんぢゃらすじーさん〜泣きの1回 絶対服従ばいおれんす校長〜ワガハイが1番えらいんじゃい!!〜」です。「Zettaizetsumei Dangerous Jiisan – Naki no 1-kai – Zettaifukujuu Violence Kouchou – Wagahai ga 1-ban Erainjai!! (Japan).gba」というゲーム名で122バイトなんでアウトです。
他にもちらほら96バイト超えのタイトルがありましたが、数件あるかといったレベルじゃないかと思ってます。この現象に遭遇した時は焦らず落ち着いてリネームで対処しましょう。