bms benchmark 20140120

BMS test case
Name base BMS Requirements LR2 nanasi fgt++ ruvit nazo pomu2 uBM PMSee-V bmx2wav
Sofa $15 -> $1 / sta (Video: sm4809390) - #RANDOM 246
負数BPM スクロール逆流 ○特例 無視 無視 独自解釈
分解能 4032 (*1) △a △b ×
改行コード CRLF+LF (#if 52) ×? ○? ○? ○? ○? ○? △?
データ文字列長が奇数の行 (*2) 末尾- 末尾+ 末尾+ 末尾- 末尾- 末尾- 末尾- 末尾- 行-
#PLAYER 1で2P側にもオブジェ ch次第 ch次第 funny DP化 ch次第 DP化 ch22-25 問わない
譜面末尾が改行で終わってない × × ○?
#000 の演奏オブジェへの配慮 (*9) × × 無関係
オートメーション工場 / sta (パッチ差分) - headerも括る大量の#random (*3) ×落 ×
定義ミスura_63..wavも鳴らす × × × × × × × ×
μ-law (crash_00.wav) × × ×落 ×
入れ子#random (347781-409539) × × × × ○(*10) × ×
U9 / futher (Video: sm9091918) L9 / paraoka #RANDOM 6 (exBPM 6種類)
負数BPM スクロール逆流 (if 3) ○特例無視 無視 独自解釈
スクロールオブジェの精度 △? × ×
STOP 空定義 (#05209:FD) 無視 無視 無視 無視 無視 ∞停止 無視 無視 変換中止
L / (^^) (Video: sm5406031) (パッチ差分) L9 / paraoka #RANDOM 3通りの分岐が計101回 ×落 △? ×?
空分岐
分解能 192000 (*4) △? ×? × × × × △(96000) △(9600)
L9999999999999^99999999999 / (^^) (Video: sm5089672) L9 / paraoka 分解能 1536 (*5) △? △? ○? △? ×?
スクロールオブジェの精度 △? × ○? × △?
糞mt / (^^) (エッセンス抽出差分) klimt / judithz ch17 (FreeZone) △(*6) × × × ×
ninth -forbidden story- / sta ("(^^)"用に移植した差分[1]) ninth / sta parserに変なもの突っ込みまくり TN1305 847 935 853 1303 790 1169 1225 -
 +ch17 (FreeZone) #004 × × × ×
非Shift_JISのバイナリコード混入 ? ? ? ? ? ? ? ? ?
「韓国」について / sta ("(^^)"用に移植した差分[2]) ninth / sta データ文字列長が奇数の行 末尾- 末尾+ 末尾+ 末尾- 末尾- 末尾- 末尾- 末尾- 行-
演奏オブジェ数 487629? ×? × × ×? △? × ○? × ○?
内部オブジェ数 648943?
parserに変なもの突っ込みまくり
素粒子レベルの分解能 (*7) 丸め? (15360)
Mokugyo AllCenturyMIX (longLONG) / sta 木魚 / HIROHIO #001-999 [BPM 4][小節長256] ×? ×? ×落 ○? ×? ×? ○? ×? ×当然
演奏時間177日14時間24分弱(*8) × ○?
(**)

'○' は期待通りに動作する

'△' は部分的には動作する

'×' は期待通りに動かない

'?' は'特に'よくわからなかった項目

TN = Total Notes (演奏オブジェ数)

PCスペックに左右される部分とか把握してないし, 信用しないでね

○×は必ずしも性能の良し悪しを指しているわけではありません (たとえば (*9) などを参照)

(*1)

この譜面で分解能が最大になる分岐 (最も細かいリズムが指定されている分岐) は, #IF 183 (& ほか数ルート)

#IF 183 には、小節長1を448等分している小節と、小節長1を288等分している小節がともに存在する

したがってこの分岐全体で要求されるリズム解像度 (配列数) は, 448 & 288 の最小公倍数 = 4032

ちなみに, 小節長1を25等分する分岐も存在する (#IF 186 ほか)

(*2)

#00111:01020 というデータ文があったとき,

(*3)

合計で 6177 回も #RANDOM n が出てくる

(*4)

小節長0.01の160等分(#996-), 小節長0.005の192等分(#019-), つまり16000と38400の最小公倍数192000が必要

(*5)

小節長0.5 の192等分(#017-), 小節長0.375の192等分(#018-), つまり384と512の最小公倍数1536が必要

一律192分配置なので中身は把握しやすい

(*6)

LR2 は譜面拡張子をpmsに変更すれば, ch17/27のオブジェも計上可能

(*7)

小節長0.9を 1544.5/210/1485.5/810.5/971.5/972/865/1173/858/1093/811/1047.5/1024/256 等分してたり宇宙

(*8)

木魚は低スペックPCでは起動すらできず完走確認も不能. LR2/pomu2 はギガ単位ページフォルト祭り

LR2 の再生可能限界時間は約7日19時間弱?

(*9)

#000小節1拍目から演奏オブジェが存在した場合, 空小節を挿入するなどの配慮がないと対処不能

ただしもちろん, 演出として意図的に#000から演奏オブジェを配置する場合もある

○は#000の前に, 4/4拍子1小節分の余白を挿入

fgt++は任意キー押下を待ってからスクロール開始 (ただし#000のみで終わる譜面はバグる)

pomu2は'Are you ready?'と一拍待ってからスクロール開始 (ただし譜面表示時点から入力を判定してしまう)

uBMplay はnazoの挙動を忠実に踏襲

bmx2wav #000の1拍目オブジェ1個のみで終わる譜面は"有効な音声オブジェ無し"とみなされ変換不能 [1.0.8pre] fix

(*10)

uBMplay 1.5.0 にて入れ子に再対応したため、譜面を正しく再生できるようになった (1.4.6 以前は入れ子を外すので不正確)

(New)