English/Japanese
PogoShell FAQ (よくある質問と回答)
(2003年1月5日更新)
最多の質問: フラッシュカートリッジでROMを実行したりMODを演奏したりできません
旧型Visolyカートリッジをご使用の場合 (64Mbyteカートリッジおよび128MByte Turboカートリッジ)
makefsを実行するときに "-old" オプションを付けてください。
作成したROMイメージが大きくなりすぎる場合は、お気の毒ですが、ROMからプラグインを削除する以外の対処方法はありません。
ROM (.gbaまたは.binで終わるファイルすべてと、プラグインも含む) はカートリッジの特定の領域に配置しなければなりません。ROMイメージが肥大してしまう理由はそこにあります。
ですから、数本のゲームをセレクトするためだけに (普通のメニューとして) PogoShellを使用したいのであれば、.pluginsディレクトリを削除してください。ゲームに使用できる領域がさらに拡大します。
また、これはGBAのROMに限った話だということに (再び) 留意してください。データファイル (MOD, BMP, ファミコンのROM, スペクトラムのゲームなど) は領域を問わないので、現在はカートリッジ内にある全ROMファイルの後に配置しています。
詳細解説:
フラッシュカードに書き込まれるROMファイルはすべて特定の領域に配置する必要が
あります。そうしなければ実行できません。
ROMをスタートすることができる領域は、旧型カートリッジの場合、非常に制限され
ます。例えば、カートリッジの先頭の8MByte (64MBit) には、わずかに四ヶ所しか
ROMを配置できる領域がありません。こんな感じです:
0 32 4096 5028 8192 (END)
|____|___________________________|____|___________________________|
1 2 3 4
そしてPogoShellが最初の領域に配置されるため、カートリッジにはサイズの大きな
ゲームだとたった二個しか収まらないのです。またもうひとつ注意していただきたい
のは、バージョンv1.0以降のPogoShellは32KByteを越えているため、第二のスタート
領域まではみ出してしまい、空き領域をふたつ (小ひとつと大ひとつ) しか確保でき
ないことです。
より新しいカートリッジの場合は、32KBytesごとにROMを配置できます。こんな風にで
す:
0 32 64 96 128
|____|____|____|____|____ ......
他の種類のカートリッジをご使用の場合 (EZFlash, F2A, GBA Wise Box など)
私はこれらを所持していないので、サポート対象に加えるのは難しいところです。F2AカートリッジはVisolyと同じはずなので、動作するでしょう (要確認?)。その他のカートリッジはRomstart (ROM実行時) の方式が異なったり、複数ROMをまったくサポートしていなかったりするかもしれません。
Pogoshellって何ですか?
まず第一に強調しておきますが、PogoshellはGameboy Advanceとフラッシュカートリッジを所有しているかたにのみ有用なものです。各種エミュレータがまだサポートしていないフラッシュカートリッジの特殊機能を使用しています。
Pogoshellは (一番簡単にいえば) ROMをいくつかフラッシュカートリッジに転送するときに、メニュープログラムの代わりに使うことができるものです。しかしそれだけではありません。実際はディレクトリ式のファイルシステムを使用しているので、コンピュータで扱うのと同じ感覚でROMと他のファイルを転送することができます。Pogoshellは異種のファイル形式を処理 (音楽を演奏したり、ファミコンやスペクトラムのゲームを実行したり、グラフィックを表示したり) するよう拡張することができるのです。
またSRAMファイルシステムを備えており、フラッシュカートリッジで一度に四個を超えるセーブデータを扱うことが可能になります。
何を押せばいいのでしょうか…。
キー操作を忘れたときは、セレクトボタンを押せば、メッセージボックスが可能な操作を教えてくれるはずです。
エミュレータから動かしているのですが、ROMを実行できません。
(現在のところ) フラッシュカートリッジの特殊機能をエミュレートしているエミュレータはありませんので、PogoShellが内部で処理していることしかできません。ROMやプラグインを必要とするファイルは実行できないということです (プラグインは他のファイル引数としてを受け取りますが、ROMの一種です)。
128Mbitを超えるバイナリファイルが動作しません。
ちゃんと動作するのですが、ほとんどのエミュレータ (ROMメモリを 0x09000000 でまとめてしまうVisualBoy Advanceなど) では扱うことができません。またエミュレータでPogoshellが動作しても、そこからROMを実行することはできないので注意してください。
PogoShellで古いセーブファイルを使用したいのですが
PogoShellはゲームを開始するさい、必ずSRAMバンク1にセーブファイルを展開し、シェルを再起動したときにそこからセーブ・ファイルへと再格納します - したがって、もしそのゲーム用のセーブファイル (64Kバイトの生SRAMファイル) があるなら、以下の手順だけでできます:
- PogoShellからゲームを開始
- GBAの電源を切り、カートリッジを外して、バンク1に自分のセーブ・ファイルをアップロード
- 再びGBAの電源を入れると- PogoShellはファイル・システムのファイルにデータを保存しているはずです。
同じテクニックを用いて、PogoShellのセーブ・ファイルから生セーブ・ファイルを取り出すことももちろん可能です…。
ファイルシステムへの書きこみをサポートしてもらえませんか。
ROMのファイルシステムは、あくまで読み込み専用のファイルシステムです。フラッシュROMへの書きこみも可能ですが、実用的にならないだけです。そのかわり、実際はSRAMに保存するようなシンプルな変更 (ファイルやディレクトリの表示/非表示など) はやってみてもいいかもしれません。
大きな圧縮ファイル (MOD) が動作しません。
圧縮ファイルはRAMに解凍する必要があります。ですから非圧縮時のファイルサイズが256KByteを超える場合は動作しません。
GUIが遅いです - スプライトは使えないのですか?
(特にGP32に) 移植可能なプログラムにしたいので、GBA独自の機能はあまり使用したくありません…。
アーカイブを解凍できません!
zip以上の圧縮効果を得るために、私は通常tar+gzipで圧縮しています。ほとんどのWindowsプログラムがこれに対応しています - しかしこのことで混乱するユーザーもいるので (そしてIEはgz拡張子を除去せずにgzipファイルを解凍しようとするので) 将来的にはおそらくzipを使用することになると思います :9
ZIPで圧縮したROMに対応させてください!
理論的には可能ですが (GBAのコードを用いてROMに書きこむのは低速なうえ、大容量ブロックで行わなければなりませんので) それほど実用的ではないのです。また解凍領域としてフラッシュ・カートリッジの空き容量から8Mバイトを割かなければなりません。(ええと、実は回避策もあるのですが、ROM内でカートリッジ・イメージをシャッフルしなければならなくなります。ぐへぇ! :)
グラフィックを変更したいのですが。
icons.bmpを変更し、それにあわせてgui.cfgを編集すれば可能です。Pogoshell内のREADMEをチェックしてください。
テキストビューアが使いものになりません…。
知っています。まだ問題点をかかえています。もっと使えるものを作ってください! (後述) - または、修正するまで待ってください :)
「〜のROMイメージ」が実行できません。
動作しないROMもあります - おそらくハードウェア側のレジスタやメモリなどの状況によるものです。これに関しては調査するつもりです。また拡張子は今のところ大文字・小文字を区別するので注意が必要です。手許の.gbaまたは.binファイルの拡張子が小文字<になっていることを確認してください。
WAV, HTML,「その他さまざまな形式」も操作できるようにしてもらえませんか。
専用のプラグインを書くか、誰かが作ってくれるのを期待しましょう。より詳しい情報に興味をお持ちのかたは、PogoShellサイトにある "modplay.tgz" のアーカイブをチェックしてください。私自身も内部処理を多少追加する予定ですが (少なくともBMP形式の対応と、もっとましなTXTビューア) 、その後どうするかは考えていません。
Modplayer を終了する方法は?
START + SELECT (私のライブラリではこの方法でリセットを行いますので、同様にGBAFrotz, Level9 & Magnetic Scrolls も終了できます)。
ソースコードの公開予定はありますか?
公開済です。ホームページまたはsourceforgeを参照してください。