« GBALoader(EWIN Expansion PAK/GBA & EXPLORER 2in1)覚え書き | トップページ | TTMENU.DAT for acekard R.P.G »

まだあったダメ文字?・・・acekard R.P.G

akmenu407で2バイトコードにおける2バイト目が0x5C,0x7Cとなる「ソポ問題」が解決され、akmenu408も出て、ホッとしていました。ところが、新たなダメ文字?が見つかってしまいました。

今度は、

蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍
乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷
蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶
蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄
裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞

の、いずれかの文字をファイル名の先頭の文字に使うと、表示されないという不具合です。

これらの文字は、2バイトコードの1バイト目が、0xE5 になります。
ディレクトリエントリのファイル名の先頭が、0xE5 となるわけですが、この 0xE5 には、削除済みという意味があるため、Windowsでは、このコードを 0x05 に置き換えてディレクトリエントリを構成します。
acekard R.P.G で使用している libfat は、本来ならば、0x05 を 0xE5 に置き換えてローカルコードにしなければならないのですが、この処理が抜けていて、無効なディレクトリエントリとして扱ってしまい、その結果、ファイルとして表示されないという現象になってしまいます。

パッチ修正では、困難です。ソースコードを修正すれば対応できる話ですけど・・・。
滅多に使わない文字(第二水準、JIS 73区)だし、これら文字が先頭になければ問題ないので、ちょっと保留。

moonshellでも表示されないので、他のマジコンも同じだろうなぁ・・・と思って、CycloDS Evolutionで試してみたら、ちゃんと表示されるんです。それにセーブファイルも作成されます。こんな細かいところまで気が付いて libfat を修正しているんだぁ、と関心。
(ロングファイル名のエイリアス名は、ちょっと変だけど、使えない訳ではないので、TeamCyclops には脱帽です)

|

« GBALoader(EWIN Expansion PAK/GBA & EXPLORER 2in1)覚え書き | トップページ | TTMENU.DAT for acekard R.P.G »

ゲーム」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« GBALoader(EWIN Expansion PAK/GBA & EXPLORER 2in1)覚え書き | トップページ | TTMENU.DAT for acekard R.P.G »