kuma4649 / mml2vgm

GNU General Public License v3.0
105 stars 10 forks source link

QSound crash #115

Closed musicalman closed 3 years ago

musicalman commented 3 years ago

こんにちは、 ここでは多くの情報を提供することができませんので、事前にお詫び申し上げます! Mml2vgm出力ファイルは、QSoundチップを使用している場合、VGMPlayをクラッシュさせる傾向があります。 クラッシュが発生すると、メモリの場所を読み取れないというエラーが表示されます。 vgmrips.netからQSound音楽をダウンロードしたとき、これまでのところクラッシュは発生していません。 したがって、これはmml2vgmの問題だと思いますが、よくわかりません。 あなたは何をアドバイスしますか? 代わりに、問題をvgmplayに報告する方がよいでしょうか?

kuma4649 commented 3 years ago

情報が少なすぎて、状況がつかめません。。。(^^;;;

musicalman commented 3 years ago

わかります。 さらに調べてみます...

superctr commented 3 years ago

I posted an explanation here https://vgmrips.net/forum/viewtopic.php?p=12368#p12368

The "ROM size" parameter of the datablock must be 0x10000 or greater. Otherwise the ADPCM logic will eventually read past the size of the allocated datablock, causing a crash.

kuma4649 commented 3 years ago

ふむふむ... 「最小でも0x10000byte用意する必要がある」 ということでよろしいでしょうか。

superctr commented 3 years ago

bild

It's this parameter. I think it's best to just leave it at 0x1000000 (16MB, the max size the QSound chip supports). The actual datablock doesn't have to be that big anyway, since you have the "size of data" parameter.

kuma4649 commented 3 years ago

おっと、パディングするようにしてしまった...(^^;

TAG488

kuma4649 commented 3 years ago

必ず最低64kのデータを作っても問題ないでしょうか。 ちょっと無駄な場合もあるでしょうけど。。。

musicalman commented 3 years ago

うーん、混乱があるかもしれません... 私のテストでは、vgmデータを埋める必要はありません。 私がしなければならなかったのは、ROMサイズのバイト(バイト0X107-0X10a)を00000100に設定することだけでした。 この修正は、TAG487によって生成されたデータでうまく機能しましたが、多くのファイルでテストしませんでした。 残念ながら、TAG488はQSoundデータをまったくコンパイルできません...

kuma4649 commented 3 years ago

>残念ながら、TAG488はQSoundデータをまったくコンパイルできません...

All NG?

musicalman commented 3 years ago

はいQSoundはエラーを出します。 しかし、私は少し間違っていたと思います。 64 kを超えるサンプルを使用するvgmをコンパイルしようとしたことがないので、おそらくそれでも機能します...

kuma4649 commented 3 years ago

エラーを再現する手順を教えてください。

こちらでは特に問題なく動作するのでわからないのです。

musicalman commented 3 years ago

mml2vgm.exeを開いてtestQSound.gwiをコンパイルしようとすると、このエラーが発生します。 英語ですので、ご理解いただければ幸いです。 Error : (F:- L:-)Unexpected Error: line:- Message: Unknown command 00 Stack Trace: at Core.Mml2vgm.OutVgmFile(outDatum[] desBuf) at Core.Mml2vgm.Start()

kuma4649 commented 3 years ago

現象確認できました! 修正します!

kuma4649 commented 3 years ago

TAG489にて修正しました。

musicalman commented 3 years ago

これまでのところうまく機能しています。 お時間をいただきありがとうございます!