忍者ブログ

DTXManiaXG(ver.K)開発日誌

「-真のX-Gradeを見るまで俺は止まらない-」 DTXManiaXG(verK)の開発ブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

第2回Windows7音ズレ対策本部

毎回のとおり箇条書きでいきます。
○前回のあらすじ
・多分DirectSound H/Wアクセラレータの廃止が原因でWASAPI/ASIOを使えば直るかも、と仮定。
・大まかな手順を決定。

○FDK周りの構築
・CSoundをゴリゴリ修正していって新規ファイルの追加。
 ・幸いCSoundはちょっとだけ修正していたので助かった。
 ・DirectSound、ASIO、WASAPI、それぞれの生成をコピー。
 ・とりあえず生成、再生などを一通り作った。
 ・オンメモリ、ストリーム生成を削除。
 ・
・CSound管理をちょこっと弄る。
 ・生成方法をとりあえずDirectSoundで生成するようにした。
  ・WASAPI、ASIOも試したかったけど、引数が分からないため見送り。

○本日の結果
・システムサウンド、演奏中のチップ音が鳴らなくなった。(当然だが)
何故かpresoundのみ鳴る。

次回へ続く。
PR

第1回Windows7音ズレ対策本部

○概要
ご存知のとおり・・・・かは知りませんが、DTXManiaはDirectSoundで音声出力しています。
Windows7ではOSの仕様変更等によりそこらへんの処理がXPと違い、
結果Windows7ではXPより反応が遅く、発生時刻にズレが出てしまいます。
さらにOSでのラグは少しだけで済むのですが、32bitならともかく64bitは大きくズレます。
(友人曰く32bitと64bitはほとんど別物)

細かい説明→http://blogs.msdn.com/b/windows_multimedia_jp/archive/2010/06/28/4-windows7.aspx

上のサイトに書いてあるとおり、7ではDirectSound H/Wが使用できません。
そのため直接ハードウェアにアクセスできないのでわざわざ遠回りを・・・・というわけです。

DTXMania - SourceForge.JP #28914: Win7での反応遅延

こっちにもありますが、
「単にWin7だと(HWアクセラレーションが使えない関係で)サウンド出力が遅くなってるってだけだというオチだったらイヤですね。
SSTのソースを借用して、WASAPI/ASIO対応を試してみますか・・・。」(yyagi氏)
「webでいろいろサウンドについてみていると、
:遅延の根本原因は、Windows標準のDirect Sound APIがそもそも遅延が大きいものであることが影響している
ということでやはり悩んでおられる方がおり、ASIO/WASAPIで改善出来た」(sf298yen氏)

ということからWASAPI、ASIOなどの出力方法を使うことによって解決できる確率が大きいということになりそうです。

○大まかな内容
・SSTのソースからWASAPI、ASIO関連のコードを持ってきて修正。
・DTXManiaで使えるようにするオプションを作る。
・音が鳴って遅延が無くなるようにする。
 ・検証環境は家にWin7の32bitと64bitが両方あるため、これらで検証。
  ・ちなみにDTXHDを64bitのノートPCで起動したところ、処理落ちは無いが恐ろしくサウンドの出力がズレる。

○その他
・これらの実験はメインのビルドとは別に作る。
 ・むしろ当たり前である。

第1回はこれにて終了。

11/25まで追加分

1週間空きましたが、ver1.70で追加される機能は以下のとおりです。
<機能追加>
・NamePlateTypeDを追加。演奏するには別途XG3スキンを導入する必要があります。
・NamePlateTypeがAもしくはBの時にライブポイントのゲージみたいな画像が描画されるようにした。(もはや誰得である)
・ 簡易的なネームカラーを実装。
<仕様変更>
・旧スキル計算時に旧式のランク計算がされるように変更。
・スコアのアニメーションを元のDTXManiaの仕様にした。
・本家rev457(一部デバッグコードの削除)の適用。
・エクセ時1000000点の辻褄合わせが最後のチップと同じタイミングになった。
<機能修正>
・グループ名が13文字以上でも正しく表示されるよう修正。
・AddAutoGaugeがfalseでもオート時にゲージが加算されていたのを修正。
・うまいことBGAが描画できるよう修正。

さて、本家のフォーラムにもありますが、問題が無ければ12/1(土)の朝10時ごろに本家DTXMania(095)がリリースされます。
今から私も動作確認等します。問題が無ければいいのですが・・・・

11/15まで更新分

GTA5のトレーラームービー第2弾が公開されましたね。まったく関係ありませんが。

今日までの更新はこんなかんじ。
・一部のトグルの値が保存されていないバグの修正。
・XG2スキンへの対応として動くレーンの上に線が描画されるようにした。(レーン画像から持ってきたため新規追加画像はありません。)
・判定文字の位置をXG仕様に修正。

最近は課題がでかいのでなかなか更新頻度が低くなりがちです。
で、挑んでいるのが飛び散るチップのエフェクト。
内部側で再現できればいいのですが、なかなか構文が難しい・・・・
とりあえずチップのテクスチャを引っ張ってきて左上のX座標、チップごとの幅をつくってみて、
青い星(いわゆる粉)の処理を借りて作っているのですが、とりあえず今までにわかったのが
・for文で粉が散っていられる最大数を決める
 <例(粉の場合)>
 for(int i = 0; i < STAR_MAX; i++)
 ・これで思いついたが、上手くいけばフィルインエフェクトの改良ができそう。
 ・これがある関係上、1レーンに2つという縛りがつけにくい
・「b使用中」で消えるかどうかを操作する

ということです。
一番の問題が1レーンごとの最大数を設定することができないということ。
つまりチップが気持ち悪いぐらい増産されてしまうということです。

以上、kaireraでした。

明日ver1.60リリースです!

今日の開発内容
<機能追加>
・シャッターの完全実装。シャッターの位置が保存されるようになった。
・MutingLPトグルの実装。
・CLASSIC譜面判別を有効無効にすることができるようにした。
<仕様変更>
・BGAの一時的な封印。
・クイックコンフィングのHIDDEN/SUDDENが設定に反映されるように修正。

シャッターの位置保存までは少し苦労しました。
正しく適用するために内部的にOUTSIDEのキー操作の処理を今までと逆にしました。
当然プレイする側からの操作はそのままですのでご安心を。
Config.iniに保存される値はパーセントに補正する前の値ですので、Config.iniからは細かく調整できます。
BGAは処理だけAVI.csに移動させる予定です。進行描画だけ移せれば結構楽なんですが・・・・

CLASSIC譜面判別トグルとLP消音トグルはリクエストからです。
if文を弄って、コンフィングの一覧に追加するだけなので結構楽です。問題はコンフィング追加に時間がかかること。

クイックコンフィングのHID/SUD項目への対応はやってみたら意外とできたのでそのまま実装。
時間はわずか10分。やることはやってみるもんだ。

開発メモをノートに書いてることがほとんどなのですが、こっちに書き直すのが面倒なのでまだ1つも移せていません。
実装する予定の機能もあるので早いとこ書き上げなければ・・・・

以上、kaireraでした。

プロフィール

HN:
kairera0467
年齢:
22
性別:
男性
誕生日:
1997/08/11
自己紹介:
DTXManiaの新人開発スタッフ。
Maill:gennsou76573●gmail.com
(●を@に変えてくださいね。)

最新リリース

Twitter

ブログ内検索