///////////////////////////////////////////////
   
          DTXManiaXG(Ver.K) 4.10
 
///////////////////////////////////////////////
○概要
DTXManiaXG(Ver.K)をDTXMania Release104を元に作り直したものです。
一部コード書き直しにより、ほんの僅かながら内部処理が改善されているかもしれません。
.NET Frameworks 4.7.1に変更したため、Ver4.00からはWindowsXP環境では起動できません。

○諸注意
・ドラム演奏にしか対応できていない状態に近いです。
・現在は5レーンギター譜面に対応できていません。

○導入について
・絶対にVer3系までの環境に上書きをしないでください。
・スキンを含めて大きな変更が起こっているため、Ver3.61までの環境に上書きするのは大変危険です。

○Ver3.61までとの大きな変更点
・64bit対応
・スクロール基準速度の変更
・フルスクリーン時の処理変更
・フォルダ構成の変更
・全スキン共通画像フォルダを実装
・シャッター位置の計算式をだいたい本家準拠に変更
・VisualStudio2015以降でのビルドに対応、推奨コンパイラをVisualStudio2017に変更
・XG風表示とGITADORA風表示を1つの本体に統合(スキンごとに変更可能)
・DirectXに使用するライブラリをSharpDXに変更
・DirectSound時の音声デコードに使用するライブラリをBassに変更
・xaファイル読み込みに使用するライブラリをlibbjxaに変更

○動画再生について
・従来のVideo for Windowsでの動画再生は廃止となりました。これによってDirectShowの環境構築が必須となっています。
・MemoryRendererシステムでの動画再生には対応していません。
・DirectShow環境の構築方法はDTXManiaのOSDN内Wikiに掲載されています。
　https://osdn.jp/projects/dtxmania/wiki/DirectShow%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

○追加機能
共通の場合[共通]、XG風またはGITADORA風のみの場合はそれぞれ[XG][GD]と表記しています
・[共通]レーン画像の描画方法を変更。これによって再現度が高くなりました。
・[共通]本体からのシャッター画像の切り替えを実装
・[共通]X-PERFECT判定の実装。ただし判定数は通常のPERFECTに加算されます。有効にする場合はConfig.iniの「XPerfectJudgeMode」を1にしてください。
・[共通]KONMAI式ソフトバージョン表示を採用。アップデートが適用されているかの確認、ビルド設定(DEBUG版か否か)の確認が容易にできるようになった。(主に作者が得する)
・[共通]実行時フォルダをDTXManiaとDTXCreaterで統一。4.00からはDTXManiaとDTXCreaterの同一リリースになります。
・[共通]レーンフラッシュのテクスチャ構造を見直すことで画像枚数の大幅削減に成功。
・[XG]一部画像を大幅作り直し。
・[XG]曲決定から演奏開始までの流れを変更。(曲決定演出→曲読み込み→演奏開始)
・[XG]簡易的に選曲画面で曲別スキルを表示できるようにした。
・[XG]スキルメーターの画像構造を変更。ギター2P側のレイアウトを再現。
・[XG]ExciteGaugeのゲージ加算時アニメーションを追加
・[GD]デザインをmatixx風に書き直し
・[GD]ドラムのみノーツの分布グラフを実装

○廃止
・100〜999によるXGレベル表記

○仕様
・X-PERFECTの判定範囲はPERFECT範囲の半分です。
・ボーナス時のレーンの振動は、視認性を考えてX方向のみ動くようにしています。
・matixx風でチップの破片が表示されるのは仕様です。(後々スキン側のオプション化予定)

○制約事項
・一部画像は製作中です。
・一部表示系のオプションは未実装です。
・ドラムランダム、レーン数変更は未実装です。
・ギターのコンボ表示に対応していません。
・旧規格クリップの表示は未対応です。
・リザルト画面のFC、EXC画像の描画に対応していません。
・FLIP機能は不具合があるため使用できません。
・DTXCreaterはギター5レーンに対応していません。
・シャッターはドラム画面のみ対応しています。

○既知の不具合
・シャッター画像で「BLACK」を選択してから再度CONFIG画面に入ると「DEFAULT」に戻っている

○matixx風表示
・難易度ラベル表示は固定になっています。(BASIC、ADVANCED、EXTREME、MASTER、ULTIMATEの5つ。DTXMania2準拠)

○SpecialThanks!(4.00以降)
・FROM氏(DTXMania原作、DTXMania2原作)
・yyagi氏(DTXMania制作)
・GT氏(スキン制作)
・RWS氏(一部スキン画像をお借りしました)
・RTISA氏(一部スキン画像をお借りしました)

○使用ライブラリ
ライセンス表記は「Licenses」フォルダに収録しています。
・BASS
・BASS.net
・DirectShowLib
・libbjxa
・libogg_libvorbis
・SharpDX
(以下Ver4.01まで)
・SlimDX
・xadec

○連絡先
Project:https://ja.osdn.net/projects/dtxmaniaxg-verk/
HP:http://dtxxgk.at-ninja.jp/
Mail:gennsou76573@gmail.com
Twitter:@kairera0467

○更新履歴
2019090100	4.10	64bitに対応(DTXMania本家と同じ処置)
					matixx風のラグ数値画像を追加(matixx風表示モード限定。暫定実装につき本家とは挙動が異なります)
					ペダルレーン(BDかLPかLBD)の場合、判定領域を加算する機能を暫定追加(各判定の領域ms + 任意msとしています。現状のデフォルトは30ms)
					matixx風選曲画面にランク表示、FC/EXC表示の実装
					JudgeAnimeType=C(疑似XG風)でのアニメーション方法をWindowsAnimetionManagerを使用する方式に変更。これによりif文が大幅削減、SharpDXでもTypeCを使用できるようになった。
					判定画像アニメーションのデフォルトをTypeCに変更
					デフォルトスキンの画像がいくつか欠けていたので追加
					DirectShowLibをnugetから取得するよう変更。これにより使用するdllの名称がDirectShowLib.dllになります。
					CONFIGのAVI、フィルインの説明文を少し変更
					クリップパネルのテクスチャが無くても動画の小窓表示をするよう変更
					不具合が解消できないため、matixx選曲画面のランダムカテゴリの名称表記を「ランダムカテゴリ内」とする機能を当面の間は凍結。グラフ画像が無かった場合、リザルト画面に入る前にエラーが発生して終了していたので修正
					matixx選曲画面でBPMに少数点以下が存在すると表示がおかしくなる不具合を修正
					matixx選曲画面の曲別スキル表示で小数点以下の数値が0と5しか表示できていなかったのを修正
					matixx選曲画面でフォルダから抜けた時にアーティスト名画像がそのまま残る不具合を修正
					matixx表示の曲決定画面、演奏画面でデフォルトのジャケット画像が表示されない不具合を修正
					matixxリザルト画面で曲別スキル値が0の場合、曲別スキル値に何も表示されない不具合を修正
					matixxリザルト画面のスキル値、達成率値が1桁の場合正しく表示されない不具合を修正
					matixx風スキンで不要になっていた画像を削除
					XG風リザルト画面にパート表示画像を追加、難易度数字が2Pに対応していなかったので修正
					XG風表示でギター演奏画面に入れない不具合を修正
					XG風デフォルトスキンのdifficult.dtxsが、XG2のものを使っていたのでXG1のものに差し替え
					CaptureキーがConfigで設定したキー含めて完全に使えるよう修正
					FDK.MemoryRenderer.dllを削除
					EnumSongs実行中にDTXクラスがBMP等を読み込みに行かないよう修正
2019071900	4.10RC3 matixx風スキンのテクスチャを数点追加。
					ペダルレーン(BDかLPかLBD)の場合、判定領域を加算する機能を暫定追加(各判定の領域ms + 任意msとしています。現状のデフォルトは30ms)
					再実装までJudgeAnimeTypeC(XG風アニメーション)を封印。当面はコマ画像式でお願いします...
					画面キャプチャをF12キー固定で復活。
					LPとLBDのVelocity設定が使えなかったので修正。
					matixx風選曲画面でフォルダに出入りした時にテクスチャが更新されていなかったので修正。
					
					matixx風選曲画面で「曲読み込み中」と「曲データが見つかりません」の画像を生成、描画をしていなかったので修正。
					matixx風選曲画面で、曲が1曲も存在しない、または曲検索中の場合は難易度パネルを表示しないよう変更。
					内部楽曲DBのBPM情報に「最小BPM」と「最高BPM」を追加。
					不具合が解消できないため、matixx選曲画面のランダムカテゴリの名称表記を「ランダムカテゴリ内」とする機能を当面の間は凍結。
2019040600	4.10RC2	WASAPI/ASIO使用時に起動できなくなる問題に対する緊急対応。ただし、OSバージョン依存の機能が一部使用できなくなっています。(WASAPIが使用可能であるかのチェック、Windows10WASAPI共有使用時に低遅延になる機能)
					エンド画面の「Thank you for Playing」の文字が描画できなくなっていたので作り直し。
2019040400	4.10RC	DirectXを呼び出すためのライブラリをSharpDXに移行
					FDKのSimpleFramework、入力、サウンド関連のコードを本家Rel.114 Rev.a7c21e08c54e71b89f3abf85a1fd32f7d77e60f9相当のものに更新。
					GD風リザルト画面のレイアウトを調整
					ドラム画面のみBPMバーの動作にWindowsAnimationManagerを使うようにした
					xaのデコードをlibbjxaを使用するよう変更。同時にxadec.dllを削除。
					mp3、oggのデコードをBASS.netで行うよう変更。同時にSoundDecoder.dllを削除。
					SoundDeviceにWASAPI共有を追加、従来のWASAPIをWASAPI排他に変更
					JudgeAnimeTypeC時の光の棒描画に問題があったため画像を改良。同時にSkinConfig.iniへの項目を数点追加した(詳しくはSkinConfig.iniを参照してください)
					「Width」のスペルミスを全体的に修正
2018010500	4.01	致命的な不具合の修正
2017122500	4.00	正式リリース
					XG風表示とGITADORA風表示を統合
					GITADORA風表示をmatixx風に作り直し(途中)
					GITADORA風ドラムパートのみノーツ分布グラフを実装
					GITADORA風ドラムパートのみクリアゲージを実装(ただし保存されない)
					GITADORA風ドラムパートのみコンボの各桁変化時にアニメーションをするよう変更
					GITADORA風表示のみクリップのウィンドウ表示を3D風に変更(今後2D表示の切り替えを実装する予定)
					XG表示のみゲージ空orRISKY:1時に演奏画面でレーン背後に表示される黒幕を実装
					ライドシンバルがオートに変わらない不具合を修正
//以下RC版-------------------------------------------------------------------------------------------------------------
2017081100	RC9		ゲージ加算時のエフェクトを実装
					ゲージ画像のマスクを再実装
					DTXMania Rev:2539bcb4959f525915aae41e95b6e1c3f4aff2ebの内容を取り込み。
					SoundDeviceASIO、CSoundDeviceASIOの内容を最新のものに更新。
					レーン中央にクリップを表示する機能を追加。(除外しているので動作はしません)
					クリップウィンドウを3D風表示する機能を追加。(除外しているので動作はしません)
					ドラム画面のみJudgeAnimeTypeBで演奏画面に入った時に、あらかじめ1回アニメーションを発動させてみる。
					曲読み込み画面から演奏画面へのフェードアウト中はキー操作ができないよう変更
					DkDkTypeとAssignToLBDが演奏に反映されるようにした
					キー設定画面のレイアウトを微調整
					デフォルトスキンの「5_image_panel.png」「5_image_panel_guitar.png」を更新。
					ゴースト使用時に現在の達成率のスキル計算がうまくいっていなかったので修正
					XG演奏スキルの小数点第3以下を切り捨てるよう修正(既存の記録において達成率が下がる場合がありますが正常な動作です)
					ギター画面の難易度数値表示を画像にした
					難易度数値の画像化、シャッター操作の対応の副作用でギター画面に入れなくなっていたのを修正
					NamePlateTypeA時、ギター画面の曲名パネルの座標がズレていたので修正
					ギター画面の曲名パネルの位置がドラム画面のグラフ有無に依存していたのを修正
2017052800	RC8		CONFIG画面からシャッター柄を変更できるようにした。
					演奏画面でシャッターを移動できるようにした
					ネームプレートの難易度表示用の数字をシステムのフォント描画からテクスチャでの表示に変更。
					アイテム数表示を実装するクラスを「CActSelectShowCurrentPosition」に移動。
					同時に「5_skill number on gauge etc」を削除。数字フォントは「5_scrollbar.png」に移動した。
					シャッター座標の計算式を変更。
					小節線が1px左にずれていたので修正
					StageEffectに加算合成が適用されていなかったのを修正
					判定ラインの描画優先度を間違えていたので修正。
2017040100	RC7		「Skin/Common」フォルダを追加。
					Drumのみシャッターを仮実装。
					「JUST」オプションを実装。
					FT、LP、LBDのチップ識別用フラグを動くようにした。
					背景画像用意のコードを一新。これにより、一時的にBGA枠、DTX指定の背景画像は廃止。
					ドラム画面のRISKY数字の座標を調整。
					選曲画面の位置バー画像を2回読み込んでいたので、「1回読み込み→コピー」にするよう修正。
					オート時にハイスコアによってScoreIniを更新しないよう修正。
					「5_skill number on gauge etc.png」に設置していた数字フォントを「5_scrollbar.png」に移動。
					「5_skill number on gauge etc.png」を削除。
2016042700	RC6		リザルト画面のレベル数値表示に対応。
					Flipに対応。(YPボタンが無いため、現在はF5キーで切り替え可能)
					ギター演奏画面で、NamePlateTypeB時の難易度表示の整数部分のフォントサイズを大きめにした。
					ギター演奏画面パート表示が1P・2Pの両方で同じになっていたので修正。
					Wailingのチップ、枠表示に対応。(残りの2方向のWailingは実装できていないため作成を保留。)
					曲選択画面でアイテム数を表示できるようにした。
					不要な画像を読み込んでいたことにより、演奏開始できない状態になっていたので修正。
					DirectShow環境を構築していないなど、何らかの事情で動画ファイルの読み込みに失敗した場合、演奏中に一時停止をすると強制終了してしまう不具合を修正。
					リポジトリ内での実行時フォルダをDTXManiaとDTXCreaterで統一。
2016041100	RC5		スキルメーターの比較対象の達成率と、自己ベストの達成率が同じ数値の場合にパネルが重なって表示されてしまう不具合を修正。
					SkillModeがXGの場合でもランク計算がDTXManiaのままになっていたのを修正。
					曲決定演出時にDrumパートのパネルが表示されない不具合を修正。
					NamePlateTypeA時にCLASSIC譜面でなくても、CLASSIC譜面用のネームプレートが表示される不具合を修正。
2016040900	RC4		DTXCreaterを同梱してみる。
					ギターNamePlateTypeB時の曲名表示を実装。
					ドラム判定文字位置の再調整。リバース、TypeBに対応
					曲決定演出の難易度表示をドラムCLASSIC、ギター・ベースに対応。
					ボーナス演出時のレーン振動を仮実装。(Ver3.60までとコードが違います)
					タイトル画面でデバッグビルド状態であるかを確認できるようにした。
					DTXVモード時にLP・LBDがオートになっていなかったのを修正。
					RANDOM選択時に効果音が鳴っていなかったのを修正。
					CLASSIC譜面判別をデフォルトで有効にした。
					「ストイックモード」「BG Alpha」オプションの廃止。
					ギター画面のゲージが両方ともドラムの数値を参照していたので修正。
					ファイルからImage、CTextureを生成するメソッドを最適化。(try&catchをできるだけ使わないコードにした。NNAさんありがとうございます。)
2016032500	RC3		曲決定後の演出を実装。
					ギター画面の整理。
					ダークオプションの実装。
					CLASSIC譜面フラグの追加。
					難易度ラベルスクリプトをXG1用、XG2用の2つを同梱することにした。(暫定処置)
					ドラム判定文字位置の調整。(TypeAのみ)
					ギター判定文字位置の調整。(TypeA〜C、Reverse対応)
					選曲画面で曲パネル生成時に既にあるパネルを解放するようにした。
					演奏画面のデバッグ表示がズレていたので修正。
					タイトル画面、QuickConfigの操作がXGになっていなかったので修正。
					NameTypeB時の曲名表示がズレていたので修正。
2016030800	RC2		スキルメーターの対応開始
					NamePlateTypeの切り替え対応
					リザルトのゲージ画像追加
					リザルト画面の難易度ラベル、レベルの表示対応。
					CONFIG画面の項目フォントを少し小さめにした。
					スキンの検出に失敗していたのを修正。
2016030500	RC1		とりあえずRC版。