kuma4649 / mml2vgm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QSound crash

musicalman opened this issue · comments

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

commented

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

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

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.

commented

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

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.

commented

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

TAG488

commented

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

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

commented

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

All NG?

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

commented

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

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

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()

commented

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

commented

TAG489にて修正しました。

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