Home

Sappy - The GBA Music Player

Last Update : 02/xx/2005


Sappy Player - Sappyプレーヤー
 Sappyはオーストラリアの Bouche (Andrew Lim) 氏が製作したGBAミュージックプレーヤーです。GBAゲームの音楽をゲームファイルから直で再生することができます。デフォルトではすべてのゲームに対応していませんが、ユーザー側で追加対応することもできるようになっています。

 ちなみに、このプレーヤーで再生できるのは、Nintendo純正(?)のサウンドエンジンを搭載したゲームだけです。別のサウンドエンジンを搭載しているゲームでは全く利用できません。また、これは実機の音を忠実に再現するのが目的である「サウンドエミュレータ」ではありません。2004年10月にGBAのサウンドフォーマット「GSF」というのが提唱されています。

Sappy (download page in DESnet) is a music player through MIDI, coded by Andrew 'Bouche' Lim. This is allows you to play the Gameboy Advance music (aka Sappy dirver) from a rom image file. This is NOT a sound emulator, now "GSF", the Gameboy Advance sound format, was launched.

And now, Kyofu Kawa's Sappy.

Here is an unofficial fun site, but is an official download page of STOS tool. The page is almost written in Japanese (and this broken English), so please use a machine translator (e.g. Babel Fish Translation) to read. (^^


Sample List for Japanese Games - 追加のサンプルリスト
 「data」フォルダにある sappy.lst は、ゲームごとにサウンド再生を定義したリストファイルです。以下がそれのサンプル追加ラインです。テキトーに追加してください。

The following is some sample lines of Japanese games (only) for sappy.lst file in the data folder. (Related page is here.)


How to Edit Sound List (1) - 必要なもの
 音楽を再生できるようにゲームを追加対応するにあたって、必要なものは次の4つになります。φ(.. )

STOS (Sappy Table Offset Search) Tool
This is tool that search the game file to list-up the probable address of sound table offset. (Raki's STOS - 18 KB / Ika's STOS)

(1) Sappy Player
 プレーヤー本体(Windows用)です。フリーウェアです。DESnetのSappyページより入手してください。サウンドエミュレータをしているわけではないので、GBAエミュレータと同じくらいのPCスペックは要求されません。
 なお、このソフトはVisual Basicで組まれているので、別途PCにVB6ランタイムが導入されている必要があります。ちなみに、海外製なのでメニューは英語ですが、メニューや一部ダイアログの表記を日本語化するパッチを公開しています。いい加減な訳がありますが、英語を見ると目まいや吐き気や頭痛がする方はどーぞ。(エミュレータ 日本語化のページ)

(2) GBA Game File
 GBAゲームのROMイメージファイル(*.gba)です。このプレーヤーは「GBA2MIDI」とも言うべきものなので、自分で吸い出したゲームファイル自体が必要になります。なお、GBゲームも読み込めるようになっていますが、対応していません(前バージョンは再生できた???)。

(3) Text Editor
 テキスト文章を編集するソフトです。Windows標準のメモ帳とかでOKです。

(4) STOS Tool
 「テーブルオフセット検索補助ツール」(Windows用)です。サウンドテーブルの可能性があるオフセットのアドレス値を検索するのに必須のツールです。サウンドリストに追加する1行がすでに分かっているならば不要です。 [ らき氏作 ... Download (18 KB) / いか氏作 ... loveemu labo ]

(X) Hex Editor (バイナリエディタ)
 データを1バイトごとに区切って16進数で表示するソフトです。必ずしも必要なものではありませんが、バイナリデータをチェックすることができるので、補助的な役割として導入しておくと、(分かる人には)便利かもしれません。これに関することは、ここでは端折りますが、「Stirling」(定番)とか「狐's バイナリエディタ」(老舗)とか「BZ」(使ったことない)というソフトが有名どころです。


How to Edit Sound List (2) - リストの仕様
 「data」フォルダ内にある sappy.lst ファイルがゲームの対応を定義したファイルです。テキストエディタなどで普通に表示することができます。中身を見ると1行ごとに1ゲーム分の設定が定義されているのが分かると思います。すでに追加する1行が分かっている場合は下の項目へ。それでは、その仕様と意味です。重要なものは赤マークのパラメータです。

****, XXXXXX, sapphire, blank, blank, &H******, 0, 0
ヘッダー ゲーム名 ROMタイプ ソングリスト INSTマップ オフセット値 開始曲No. 終了曲No.

 まず、ヘッダーは4文字のゲームコードを入力します。このコードはゲームのカートリッジ自体にも記載されていたりしますが、すべてのGBAゲームを判別できるものです。もう少し詳しく書くと、ゲームファイルのヘッダー部の00AC-00AFhに記載されており、GBAエミュレータのカートリッジROM情報でもチェックできたりします。

 次に、ゲーム名はそのままゲームのタイトルです。必ずしも書かなければならないところではありませんが、何のゲームかが分かるように書いておきます。なお、海外製ということで、日本語だとプレーヤーの表示に文字化けが起こったり、MIDI出力の際にプレーヤーが落ちてしまうので、必ず英語で書いてください。そして、最後に日本のゲームであることを示す (J) を付けるのをお忘れなく。

 最後に、オフセット値はサウンドテーブルがある最初のアドレス値を入力します。このオフセット値を検索してくれるのがSTOSツールです。使い方は簡単で、ゲームファイルを読み込んで、検索ボタンを押すと、下に10個のアドレス値候補が表示されます。候補が表示されているボックスの1行目は4文字のゲームコードです。


How to Edit Sound List (3) - リストの編集
 それでは「data」フォルダの sappy.lst ファイルを編集します。たとえば、ゲーム名が「ABCD Game」、ゲームコードが「AXXJ」、テーブルオフセットのアドレス値が「8C74A0」だとすると、

AXXJ, ABCD Game (J), sapphire, blank, blank, &H8C74A0, 0, 0

というような1行になります。アドレス値は「&H + アドレス値」の形式で書いてください。これ以外の「sapphire」とかはそのままでOKです。追加する行は順番は関係ないのでどこでも構いません。このファイルはプレーヤー起動時に読み込まれるので、プレーヤーを起動中ならいったん終了させておきましょう。追加したらファイルを上書き保存、プレーヤーを起動し、ゲームファイルを読み込ませ、Playボタンを押すと曲の再生です。

 必ずしも一発目で鳴るとは限らないので、+ボタンを押すなりして曲番号を色々と変更し再生させてみましょう。効果音なりサウンドなりの出力により、下のトラック表示が変化すればいいのですが、何回か変更してもうんともすんとも言わなかったり、エラーがでて落ちてしまうのであれば、オフセットアドレス値をSTOSツールの候補2、3、4、・・・のものにしていきましょう。最終的に見つからなかった場合は、別のサウンドエンジンを持つ可能性のあるゲーム、ということであきらめてください。


How to Record MIDI - MIDI変換
 このプレーヤーは音楽をMIDIファイル(*.mid)に変換出力するコンバータ機能を搭載しています。その作業の流れは次のとおりです。再生中に出力しようとするとエラー落ちするので、必ず停止状態にしてください。

ゲームを読み込む > 出力する曲番号を選択 > 再生ボタン > 停止ボタン > MIDI出力

 作業は無音状態で行われ、成功ダイアログが出て終了です。当たり前のことですが、このMIDIファイルを無断で自分のサイトのバックグラウンドで流したり、どこぞで配布したりしてはいけませんので、あくまで個人の範囲内で楽しみましょう。(^^

*ポケモンの音楽を出力しようとするとすぐにエラーで落ちてしまいますが、これは sappy.lst ファイルに記載されているゲーム名が「Pok駑on」になっているためです。また、曲名リストにあたる sapphire.lst ファイルでもこのような文字化けがあります。「Pokemon」の海外名はeの上部に「'」みたいなもの(揚音符、このまま英語的に発音すると「ポークモン」になってしまうため)が付くので、日本語環境ではその部分が文字化けしています。バグというわけではないので、「駑」を「em」のような感じで変更しておけばOKです。

Sappy has MIDI converter function, like GBA2MIDI.
Load ROM » Select song number » Play button » Stop button » Export song to MIDI » Yeah!


How to Convert Music for Japanese Mobile Phone - 携帯着メロに変換
 プレーヤーとはちょっと関係ない話に発展しますが、出力したMIDIファイルを携帯電話の着信メロディファイルにコンバートする情報をちょっと書き出しておきます。自分のお気に入りのGBA音楽を携帯着メロに〜。もしもし〜。

 色々ありますが、あぽ氏が制作したPsmPlayerという携帯電話の着信メロディプレーヤー兼コンバートソフト(Windows用、配布サイズ200KBぐらい)がお勧めです。多機種に対応していて、特別複雑な作業は必要なし。一応シェアウェアのソフトですが、拡張機能の使用制限だけです。これでコンバートしたデータを携帯電話に転送しましょう。

 あらためて書きますが、このファイルも何かしらのアレンジが加えられていようとなかろうと、無断で配布したりしてはいけません。


Misc - 雑ネタ
[1] プレーヤー操作のメモ
- 曲の実装スタイルはゲームによって異なります。音楽+効果音、効果音+音楽、音楽+効果音+音楽、音楽と効果音のまぜこぜ、というような感じです。途中途中で下のトラック表示部分が全く変化しない曲番号があると思いますが、それはただ単にサウンドデータがない部分です。
- 音楽のループ回数はデフォルトで2回になってますが、これは[Set speed limit...]で変更できます。0は無限ループになります。
- [Auto Advance to Next Track]は1曲再生し終わると自動的に次の曲に移るものです。ほっぽておいてもどんどん曲を再生していってくれます。これを機能させるには再生中に+ボタンを押すなりして曲番号を変化させておかなければなりません(バグだそうな)。ちなみに、サウンドリストファイル<*.lst>が用意されていない大部分のゲームでこれを機能させるには、[Use Song Lists for Auto Advance]を無効しておく必要があります。
- 曲の再生スピードが重く感じる場合は、プレーヤー自体を最小化したり、トラック表示部分(再生中にめまぐるしく変化するところ)をモニター画面外に隠しましょう。

[2] gba2midi by Ika
  いか氏製作のGBAミュージックプレーヤーです(配布サイト、loveemu labo)。基本的にSappyプレーヤーと同種のプログラムで、GBAゲームの音楽をゲームファイルから直で変換 & 再生することができます。

[3] GAS2HTML
 「GAS2HTML」はサウンドデータの処理をHTMLファイルで色分けして出力する拙作へっぽこツールです。また、ゲームファイルからサウンド処理部分のデータのみを試験的にリッピングしたファイル(当然ながらSappy専用、GSFとは無関係)も含まれています。(データ自体を配布するのは当然いけないけれど、ファイルから切り出す手段がいまいち思いつかない・・・。ーー) [Download (46 KB)]

* My Works for Windows
Let's GBA2AIF! ... This is a ripping tool for gba's voice or sound effects data. Download is here.


Finally - 最後に
 これ以外の情報はプレーヤー付属の<readme_sappy.txt>(もち、英語)を参照してください。インストゥルメントマップ(Instrument Maps)については、いまいち(というか、全然)分かりません。(?o?

 最後に、クールなミュージックプレーヤーSappyを製作されたBouche氏、ズバッと検索のSTOSツールを製作された、らき氏やいか氏に感謝! (^^)/



ヤフオクならではの豊富な商品ラインアップから、ゲームや掘り出し物を見つけちゃお!


Home (E) | Home (J)
Copyright © 2000-2011 Let's Emu! All rights reserved.