メガデモを語る Heaven 7
■ このスレッドは過去ログ倉庫に格納されています
0710デフォルトの名無しさん
2009/05/24(日) 22:39:36皆さんご自身で内容を見ることができる方法を説明します。
- OllyDbg で実行ファイルを開く
- 展開処理からインポート処理へ移る場所 004100F6 の RETN にブレークをはる
- ブレークポイントまで実行すると、00420000 からにコードとデータがある
- 00420000 〜 0042007F までがインポート処理
- 00420080 に来た時点で、サウンド関係のインポートテーブルは以下のようになる
004300c8 waveOutGetPosition
004300cc waveOutOpen
004300d0 waveOutPrepareHeader
004300d4 waveOutWrite
- 00420080〜004200C7 までが描画初期化
- 004200C8 からのコール先 004201DD がサウンドレンダリング処理
- リターン後 004200D5〜00420109 で waveOutOpen, waveOutPrepareHeader, waveOutWrite を用いて音を出す
- メインループでは waveOutGetPosition で経過時間を取得している
- いくつかの定数
0x00920000 曲の長さ(44.1KHz でのサンプル数単位)
0x00870200 波形書き込みバッファの先頭
0xFBF70200 0x00870200 - 0x00920000*8
0x00422568 楽曲のシーケンスコード
0x39377CB7 float。44100*64 倍すると493.883(オクターブ4のB(シ)の周波数)
0x3F83C02D float。1.029302 = pow(2, 1/24)。半音のさらに半分 (50セント) の周波数比
■ このスレッドは過去ログ倉庫に格納されています