音を鳴らすROMを作成するツールのC言語ソースと、作成したROMファイルのサンプル(MSXエミュレータの動作比較用)

リニアPCMのwavファイルを入力して、MSX用のROMファイルを出力します。
量子化ビット数が1ビットの音を鳴らす、ただそれだけのROMファイルです。
PSGを使うROMと1ビットサウンドポートを使うROMの、2つを出力します。
ROMファイルは、実機のBIOSやC-BIOSで起動したMSXエミュレータでROMカートリッジとして使用することも可能ですし、MSXエミュレータのBIOSの代用品として使用することも可能です。
BIOSの代用品と書きましたが、音を鳴らすだけです。他のソフトを動かす目的では使えません。


ここにzipファイルは置けないみたいなので、外部に置いてみます。
http://www2.axfc.net/u/3768305.zip
wav2msxrom_1bit.zip 14,750バイト
CRC32 D3534224
MD5 54395836BB4F8E905672576DBC6BEF71
SHA1 94FF8AD7F4668977C31A7767058B26109BE940ED


BIOSの代用品として使う場合は、ファイル名をMSX.ROMなど、そのエミュレータに応じた名前に変更して下さい。

MSXで再生できるサンプリング周波数には制限があります。
また、サンプリング周波数変換(リサンプリング処理)は実装していません。
よって、入力されたwavファイルそのままの音程やテンポではなく、近似値で再生します。
近似値とは言っても、このプログラムでは最高で約29043Hzになるはずですので、例えば48000Hzや44100Hzのwavファイルを入力した場合は大幅に異なる音程やテンポになります。
また、PSGでも1ビットサウンドポートでも量子化ビット数が1ビットの音を再生するので、音質は悪いです。
さらに、厳密に言えば各ビットを等間隔で処理するのではなく、8ビット処理して次の8ビットの処理を開始するまでに少しタイムラグがあるので、時間軸方向にゆがんだ感じの波形になるはずです。

出力するROMのサイズは16KBです。
MSXのBIOS(メインROM)は本来32KBですが、32KBをフル活用するROMを作成するのは面倒だと思ったので。
32KBじゃないとメインROMとして受け付けないエミュレータの場合は、ファイルを2つ結合して32KBにするか、あきらめてROMカートリッジとして使用するか、どちらかにして下さい。

受け付けられないwavファイルの場合は、特にエラーメッセージは出しません。ROMファイルを出力せずに終了します。



サンプリング周波数変換が必要な場合は、spwave等のソフトを使用して下さい。

同梱しているROMファイルの音は、おもしろ替歌(フリーソフト)
http://www.createsystem.co.jp/main/downloade.html
の楽譜(主役)に CDEFGABCH を入力して作成したwavを素材にしています。

ソースの一部分はCommon Source Code Projectからコピーしているので、ライセンスはGPLとしておきます。


戻る

š
šƒAƒNƒZƒX‰ðÍ SEO/SEO‘΍ô š