User:Arcorann/DDR Scoring: Difference between revisions
No edit summary |
(→PS3) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This is not intended to be article quality at the moment. | This is not intended to be article quality at the moment. | ||
Also putting grading on this page. | |||
== Arcade mixes == | == Arcade mixes == | ||
Line 22: | Line 24: | ||
=== 4th/USA === | === 4th/USA === | ||
Official description of the scoring system: | Official description of the scoring system: https://web.archive.org/web/20130219110405fw_/http://www.konami.jp/bemani/ddr/jp/am/ddr4th/plan/score.html | ||
:Step Score = J + 333 * C | :Step Score = J + 333 * C | ||
Line 28: | Line 30: | ||
*C = combo count after step | *C = combo count after step | ||
*J = 777 if Perfect, 555 if Great, 0 otherwise | *J = 777 if Perfect, 555 if Great, 0 otherwise | ||
If the player has failed (life bar empty), replace C with 0. | |||
Note that AC DDR USA uses this even though its interface is based on 3rdMIX! | Note that AC DDR USA uses this even though its interface is based on 3rdMIX! | ||
Line 37: | Line 41: | ||
:Step Score = J * (K * U + Q) | :Step Score = J * (K * U + Q) | ||
where | where | ||
*B = 500000 * (1 + D) | *B = 500000 * (1 + D) if not a long version, 500000 * (1 + 2 * D) if a long version | ||
*D = difficulty rating if not an edit, 7 if an edit | *D = difficulty rating if not an edit, 7 (or 14) if an edit | ||
*S = N*(N+1)/2, N = number of steps in song | *S = N*(N+1)/2, N = number of steps in song | ||
*U = floor(B / S) | *U = floor(B / S) | ||
Line 45: | Line 49: | ||
At the end of the stage a bonus is applied: | At the end of the stage a bonus is applied: | ||
* | * Dance Level Bonus = 10000000 for AAA, divide by 10 for each lower rating down to 100 for D, 0 for E (only applied for "new songs", non-edits and songs that haven't been played already in the current session) | ||
* Combo Bonus is accumulated per step: | * Combo Bonus is accumulated per step: | ||
: Step Combo Bonus = C * J' | : Step Combo Bonus = C * J' | ||
where | where | ||
*C = combo count after step if life bar not empty, 0 otherwise | *C = combo count after step if life bar not empty, 0 otherwise | ||
*J = 55 if Perfect, 33 if Great, 0 otherwise | *J' = 55 if Perfect, 33 if Great, 0 otherwise | ||
=== DDRMAX === | === DDRMAX === | ||
Line 58: | Line 62: | ||
:Step Score = J * (K * U + Q) | :Step Score = J * (K * U + Q) | ||
where | where | ||
*K = ordinal position of current step (not freeze; freezes are not scored during the song counted in the Groove Radar bonus) | |||
*B = 5000000 | *B = 5000000 | ||
*S = N*(N+1)/2, N = number of steps in song (not freezes) | *S = N*(N+1)/2, N = number of steps in song (not freezes) | ||
Line 66: | Line 71: | ||
At the end of the stage a bonus is applied for each Groove Radar category. | At the end of the stage a bonus is applied for each Groove Radar category. | ||
Define: | |||
* F_s = Perfects / total steps | |||
* F_v = max combo / song maximum combo | |||
* F_a = Perfects on jumps / total jumps | |||
* F_c = DP / maximum DP | |||
* F_f = OK / total freezes | |||
Let | |||
* B_s = 20000000 | |||
* B_v = B_a = B_c = B_f = 10000000 | |||
* G_x = the song groove radar value in category x. | |||
* M_x = the theoretical maximum value in category x: | |||
** M_s = 374 | |||
** M_v = 640 | |||
** M_a = 67 | |||
** M_c = 3832 | |||
** M_f = 8000 | |||
* P_x = round(floor(128 * B_x / M_x) * G_x / 128) | |||
Then: | |||
* V_x = floor((floor(F_x * 100) * P_x / 100) is the bonus for radar category x. | |||
=== DDRMAX2/Extreme === | === DDRMAX2/Extreme === | ||
Scoring system: http://web.archive.org/web/20130411085205fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax2/score.html (normal | Scoring system: http://web.archive.org/web/20130411085205fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax2/score.html (MAX2 normal), https://web.archive.org/web/20070112062754fw_/http://www.konami.jp/bemani/ddr/jp/am/extreme/score.html (Extreme) | ||
Variant of 3rd with difficulty multiplier. | Variant of 3rd with difficulty multiplier. | ||
:Step Score = J * (K * U + Q) | :Step Score = J * (K * U + Q) | ||
where | where | ||
*K = ordinal position of current step or freeze (as judged; if a freeze ends at the same time as a step then it's possible that the ordinal position can change depending on if the step was early or late) | |||
*B = 1000000 * D | *B = 1000000 * D | ||
*D = difficulty rating if not an edit, 5 if an edit | *D = difficulty rating if not an edit, 5 if an edit | ||
*S = N*(N+1)/2, N = number of steps plus freezes in song | *S = N*(N+1)/2, N = number of steps plus freezes in song | ||
*U = floor(B / S) | *U = floor(B / S) | ||
*J = 10 if Perfect, 5 if Great, 0 otherwise | *J = 10 if Perfect or OK, 5 if Great, 0 otherwise | ||
*Q = B - U*S if the last step, 0 otherwise | *Q = B - U*S if the last step, 0 otherwise | ||
If the player has failed, replace (K * U + Q) with 1. | |||
=== SuperNOVA === | === SuperNOVA === | ||
Line 92: | Line 121: | ||
=== SuperNOVA2 to 2014 === | === SuperNOVA2 to 2014 === | ||
:Step Score = | :Step Score = | ||
:* U if Marvelous | :* U if Marvelous or OK | ||
:* U - 10 if Perfect | :* U - 10 if Perfect | ||
:* U/2 - 10 if Great | :* U/2 - 10 if Great | ||
Line 98: | Line 127: | ||
where | where | ||
*U = 1000000 / N | *U = 1000000 / N | ||
*N = number of steps plus freezes in song | *N = number of steps plus freezes plus shock arrows in song | ||
Score is rounded down to nearest 10 for output but fractions are retained internally. | Score is rounded down to nearest 10 for output but fractions are retained internally. | ||
Line 104: | Line 133: | ||
=== A onwards === | === A onwards === | ||
:Step Score = | :Step Score = | ||
:* U if Marvelous | :* U if Marvelous or OK | ||
:* U - 10 if Perfect | :* U - 10 if Perfect | ||
:* U * 0.6 - 10 if Great | :* U * 0.6 - 10 if Great | ||
Line 111: | Line 140: | ||
where | where | ||
*U = 1000000 / N | *U = 1000000 / N | ||
*N = number of steps plus freezes in song | *N = number of steps plus freezes plus shock arrows in song | ||
Score is rounded down to nearest 10 for output but fractions are retained internally. | Score is rounded down to nearest 10 for output but fractions are retained internally. | ||
Line 127: | Line 156: | ||
AC scoring systems were unified for all non-exclusive releases after SuperNOVA 2. | AC scoring systems were unified for all non-exclusive releases after SuperNOVA 2. | ||
*Kids (has a grade but not a numerical score) | *Kids (has a grade but not a numerical score) | ||
*true Kiss Destination (only appears at end of song; 9 digit scores possible; same as ) | *true Kiss Destination (only appears at end of song; 9 digit scores possible; likely same as 1st/2nd/Club) | ||
*DREAMS COME TRUE (only appears at end of song; appears to be same as TKD) | *DREAMS COME TRUE (only appears at end of song; appears to be same as TKD) | ||
*Disney's RAVE (no numerical score, grade shown ingame and updated in realtime) | *Disney's RAVE (no numerical score, grade shown ingame and updated in realtime) | ||
Line 137: | Line 166: | ||
*1st Asia (likely same as 1st/2nd) | *1st Asia (likely same as 1st/2nd) | ||
== Console and home mixes == | === Special modes === | ||
==== 3rd Nonstop ==== | |||
Probably same as normal with B replaced by (1000000 * stage number), but unverified. | |||
==== MAX2 Oni ==== | |||
Scoring system: http://web.archive.org/web/20130411085821fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax2/score_oni.html | |||
:Step Score = 2 if Perfect or OK, 1 if Great, 0 otherwise | |||
Divide the score by max score to get percentage, round down to nearest 0.1%. | |||
==== Extreme Nonstop ==== | |||
Incorporates Marvelous and stage count. | |||
:Step Score = J * (K * U + Q) | |||
where | |||
*K = ordinal position of current step or freeze (as judged; if a freeze ends at the same time as a step then it's possible that the ordinal position can change depending on if the step was early or late) | |||
*B = 10000000 * stage number | |||
*S = N*(N+1)/2, N = number of steps plus freezes in song | |||
*U = floor(B / S) | |||
*J = 10 if Marvelous or OK, 9 if Perfect, 5 if Great, 0 otherwise | |||
*Q = B - U*S if the last step, 0 otherwise | |||
==== Extreme Challenge ==== | |||
:Step Score = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise | |||
This is also used as the EX Score in later games. | |||
==== SuperNOVA Nonstop/Challenge ==== | |||
:Step Score = 10000000 * J / (3*N) | |||
where | |||
*J = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise | |||
*N = number of steps plus freezes in course | |||
Score is rounded down to nearest integer for output but fractions are retained internally. | |||
==== SuperNOVA2 to X3 Courses (Nonstop/Challenge) ==== | |||
:Step Score = 1000000 * (J + floor((S - 1) / 2)) / Z | |||
where: | |||
*J = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise | |||
*S = stage number | |||
*Z = the sum of ((3 + floor((S - 1) / 2)) * number of steps in stage S) across all stages | |||
Score is rounded down to nearest integer for output but fractions are retained internally. | |||
==== A20/A3 Courses (Nonstop/Dan) ==== | |||
Same as in regular modes, but counted across the whole course. | |||
:Step Score = | |||
:* U if Marvelous or OK | |||
:* U - 10 if Perfect | |||
:* U * 0.6 - 10 if Great | |||
:* U * 0.2 - 10 if Good | |||
:* 0 otherwise | |||
where | |||
*U = 1000000 / N | |||
*N = number of steps plus freezes plus shock arrows total in course. | |||
Score is rounded down to nearest 10 for output but fractions are retained internally. | |||
== Console and home mixes, regular == | |||
=== Same as AC mixes === | === Same as AC mixes === | ||
Line 150: | Line 242: | ||
* SuperNOVA: | * SuperNOVA: | ||
** | ** | ||
* SN2 | * SN2: | ||
* A | * A: | ||
** GRAND PRIX | ** GRAND PRIX | ||
=== Extreme US === | |||
Ref: http://aaronin.jp/boards/viewtopic.php?t=1230 | |||
Also seen in CS Festival and AC Fusion among others. Rounding not confirmed. | |||
Ingame score is as follows: | |||
:Step Score = 7000000 * J / (2*N) | |||
where | |||
*J = 2 if Perfect/OK, 1 if Great, 0 otherwise | |||
*N = number of steps plus freezes in song | |||
Song bonus is as follows (needs more research): | |||
:Bonus Step Score = 3000000 * J / (2*N) | |||
where | |||
*J = 2 if Perfect/OK, 1 if Great, 0 if Good/NG, -1 if Boo, -2 if Miss. | |||
*N = number of steps plus freezes in song | |||
Then: | |||
*If total bonus is negative, replace with 0. | |||
*If combined total score including bonus is less than or equal to 9,200,000 or the song was not a full combo, subtract 800,000 from bonus (needs more research) | |||
=== V === | |||
Same as A but with -100 instead of -10. | |||
:Step Score = | |||
:* U if Marvelous or OK | |||
:* U - 100 if Perfect | |||
:* U * 0.6 - 100 if Great | |||
:* U * 0.2 - 100 if Good | |||
:* 0 otherwise | |||
where | |||
*U = 1000000 / N | |||
*N = number of steps plus freezes plus shock arrows in song | |||
Score is rounded down to nearest 10 for output but fractions are retained internally. | |||
=== PS3 === | |||
Rounding not confirmed. Decimals appear to be retained internally and the score rounded down for display, except when they aren't. | |||
Steps within jumps etc. are counted separately. | |||
:Step Score = U / 4 * J | |||
where | |||
* J = 4 if Perfect (non-freeze), 3 if Great, 2 if Perfect freeze | |||
* U = 1000000 / (steps + freezes * 0.5) | |||
If the arrow is a bonus arrow, add | |||
:Bonus Step Score = floor(U / 4) * J (rounding not confirmed) | |||
=== Pending === | === Pending === | ||
Those known not to correspond with any (preceding) AC release include: | Those known not to correspond with any (preceding) AC release include: | ||
* Ultramix series (1, 2 and 3 are different, 4 might be the same as 3) | |||
*Ultramix series (1, 2 and 3 are different, 4 might be the same as 3 | |||
* Hottest Party series (incl. MUSIC FIT and Winx Club) (similar to MAX2/Extreme but max score doesn't match) | * Hottest Party series (incl. MUSIC FIT and Winx Club) (similar to MAX2/Extreme but max score doesn't match) | ||
* UNIVERSE series: | * UNIVERSE series: | ||
Line 168: | Line 308: | ||
* US PC (appears to be same as 4th, need confirmation) | * US PC (appears to be same as 4th, need confirmation) | ||
=== | |||
=== Console and home mixes, special === | |||
Same as main mode: | Same as main mode: | ||
Line 176: | Line 319: | ||
* MAX2 Endless (needs checks) | * MAX2 Endless (needs checks) | ||
* Extreme Endless (needs checks) | * Extreme Endless (needs checks) | ||
* | * Extreme 2 Course (and those with the same system) | ||
* X2 Endless | * X2 Endless | ||
=== 3rdMIX Endless === | |||
Let C' be the adjusted combo count after step: | Let C' be the adjusted combo count after step: | ||
: If C = combo count after step and C' | : If C = combo count after step and C'_p = value of C' on previous step, C' = : | ||
:* max(C' | :* max(C'_p, C) if Perfect or Great | ||
:* floor(C' | :* floor(C'_p / 2) otherwise | ||
Then, | Then, | ||
Line 203: | Line 344: | ||
*mod(S + 15, 32) + 1 if S > 16 | *mod(S + 15, 32) + 1 if S > 16 | ||
Note that this means the score per step can go down when crossing stage boundaries, e.g. if S goes from 272 to 273. | |||
Internal combo cap is 999999, but score cap will be hit before combo cap anyway. | |||
=== 4thMIX Endless === | |||
:Step Score = J + (floor(C/4) * L)^2 | :Step Score = J + (floor(C/4) * L)^2 | ||
Line 221: | Line 364: | ||
Note that if not Perfect or Great C will be 0 and thus step score will be 0. | Note that if not Perfect or Great C will be 0 and thus step score will be 0. | ||
Internal combo cap is 999999, though the max combo displayed is 9999. Score cap will be hit before combo cap anyway. | |||
=== Extreme US Endless === | |||
According to my notes, the same system is used in Extreme US and its derivatives, along with SuperNOVA and SuperNOVA2. None of this has been fully verified, though. | |||
What we have: | |||
If Good or lower, Step Score = 0. Otherwise: | |||
If C <= 10000, | |||
:Step Score = int((C^2 + B*C + B*D + C*D)/1000) | |||
If C > 10000, | |||
:Step Score = floor((step score at C = 10000) + (C-10000)*(10 + D/1000)) | |||
where: | |||
* N = steps plus freezes in song | |||
* D = ??00 if on Beginner, 1000 if on Basic, 1200 if on Difficult, 1400 if on Expert, ??00 if on Challenge. | |||
* C = combo after (?) step | |||
* B = floor(100000000 / N) | |||
* J = 5 if Marvelous or OK, 4 if Perfect, 3 if Great | |||
What we need: | |||
* How does J affect the score? It's not a straight multiplier, but on low combo and state counts it's close | |||
* Rounding | |||
* Values of D | |||
=== X Endless === | |||
Not fully verified. | |||
Let: | |||
* N be the total number of notes hit so far. (how do we define a "hit", clarify) | |||
* M be the total number of Marvelouses so far. | |||
* N' = N - P, where | |||
** P is a penalty defined as follows: Every time a combo-breaking judgement occurs, floor(C/4) is added to P, where C is the stage combo before the note (i.e. the current combo, but only counted from the start of the stage if it began in a previous stage). | |||
* S = current stage number. | |||
* L = 2*S^3 if on Level 1, and floor(S^3/D) + 1 otherwise, where | |||
** D = 3 if on Level 2, 6 if on Level 3, 8 if on Level 4 and 10 if on All. | |||
Then the step score is: | |||
* Marvelous: 3 * (N' + M) * L | |||
* Perfect/OK: 2 * N' * L | |||
* Great: N' * L | |||
There may be rounding errors involved. | |||
Strictly speaking, the formula for L is actually 2*min(S^3,2^31 - 1) for Level 1 and floor(min(S,1600)^3/D)+1 for other levels, but the caps aren't expected to be reached before the score cap (10^16 - 1). | |||
== Mobile mixes == | == Mobile mixes == | ||
Line 230: | Line 419: | ||
where | where | ||
*J = 2 if Marvelous/Perfect/OK, 1 if Great, 0 otherwise | *J = 2 if Marvelous/Perfect/OK, 1 if Great, 0 otherwise | ||
== Grading systems == | |||
=== 1st === | |||
Derived by me, not yet checked on AC. | |||
Possible grades are S, A, B, C, D. | |||
* If (bad + miss) == 0 and (max combo >= 100 or perfects >= 0.75 * total steps) then S. | |||
* Otherwise: | |||
** Set provisional grade to A if (max combo >= 50 or perfects >= 0.5 * total steps) and B otherwise | |||
** Deduct one grade if (bad + miss) > 0.05 * total steps | |||
** Deduct another grade if (bad + miss) > 0.15 * total steps. | |||
=== 2nd === | |||
Found on AIJ. | |||
Possible grades are SS, S, A, B, C, D. | |||
Let S be the total number of steps and C be the max combo. Define the following thresholds: | |||
* C_1 = min( 0.9 * S, 100) | |||
* C_2 = min( 0.5 * S, 60) | |||
* C_3 = min( 0.5 * S, 20) | |||
Let: | |||
* GP = (C == S) + (C >= C_1) + (C >= C_2) + (C >= C_3) | |||
** i.e. if C == S then GP = 4, else if C >= C_1, GP = 3, etc. | |||
* MT = 4 - GP. | |||
Then: | |||
* Provisional grade is SS if GP == 4, S if GP == 3, A if GP == 2, B if GP == 1, C if GP == 0. | |||
* Deduct one grade if either (misses > MT) or (perfects < greats). | |||
=== 3rd === | |||
Possible grades are SSS, SS, S, A, B, C, D, E. | |||
Assign DP per judgement: | |||
* 2 for Perfect | |||
* 1 for Great | |||
* 0 for Good | |||
* -4 for Boo | |||
* -5 for Miss | |||
Then: | |||
* If failed (empty life bar at some point), assign E. | |||
* If all Perfects, assign SSS. | |||
* Else, if all Great or Perfects, assign SS if (perfects >= 0.8 * total steps) and S otherwise. | |||
* Else, check DP / Max DP: | |||
** If >= 0.8, assign A | |||
** If >= 0.64, assign B | |||
** If >= 0.5, assign C | |||
** Else, assign D. | |||
=== 4th === | |||
Possible grades are AA, A, B, C, D. | |||
Assign DP per judgement as in 3rd. | |||
Then: | |||
* If failed (empty life bar at some point), assign D. | |||
* If all Perfects, assign AA. | |||
* Else, if all Great or Perfects, assign A. | |||
* Else, check DP / Max DP: | |||
** If >= 0.64, assign B | |||
** Else, assign C. | |||
=== 5th === | |||
Possible grades are AAA, AA, A, B, C, D, E. Very similar to 3rd. | |||
Assign DP per judgement as in 3rd. | |||
Then: | |||
* If failed (empty life bar at some point), assign E. | |||
* If all Perfects, assign AAA. | |||
* Else, if all Great or Perfects, assign AA. | |||
* Else, check DP / Max DP: | |||
** If >= 0.8, assign A | |||
** If >= 0.64, assign B | |||
** If >= 0.5, assign C | |||
** Else, assign D. | |||
Note that A, B, C and D are the same as 3rd's A, B, C and D. In fact, we can do a simple conversion table for 3rd, 4th and 5th: | |||
{| class="wikitable" | |||
|- | |||
| 3rd | |||
| 4th | |||
| 5th | |||
|- | |||
| SSS || AA || AAA | |||
|- | |||
| SS || A || AA | |||
|- | |||
| S || A || AA | |||
|- | |||
|A || B || A | |||
|- | |||
|B || B || B | |||
|- | |||
|C || C || C | |||
|- | |||
|D || C || D | |||
|} | |||
=== MAX to Extreme === | |||
Possible grades are AAA, AA, A, B, C, D, E. | |||
Assign DP per judgement: | |||
* 2 for Perfect | |||
* 1 for Great | |||
* 0 for Good | |||
* -4 for Boo | |||
* -8 for Miss | |||
* 6 for OK | |||
* 0 for NG | |||
Then: | |||
* If failed (empty life bar at some point), assign E. | |||
* Else, check DP / Max DP: | |||
** If DP = max DP, assign AAA | |||
** If >= 0.93, assign AA | |||
** If >= 0.80, assign A | |||
** If >= 0.65, assign B | |||
** If >= 0.45, assign C | |||
** Else, assign D. | |||
=== SuperNOVA === | |||
Based on machine score. AIJ also mentions a DP system? | |||
{| class="wikitable" | |||
|- | |||
|10,000,000 || AAA | |||
|- | |||
|9,500,000 || AA | |||
|- | |||
|8,100,000 || A | |||
|- | |||
|6,500,000 || B | |||
|- | |||
|5,400,000 || C | |||
|- | |||
|<5,400,000 || D | |||
|- | |||
|Failed || E | |||
|} | |||
=== SuperNOVA 2 to 2014 === | |||
Based on machine score. | |||
{| class="wikitable" | |||
|- | |||
|Grade || Beginner/Basic || Difficult || Expert/Challenge | |||
|- | |||
|AAA ||colspan="3"| 990,000 | |||
|- | |||
|AA ||colspan="3"| 950,000 | |||
|- | |||
|A || 800,000 || 850,000 || 900,000 | |||
|- | |||
|B || 700,000 || 750,000 || 800,000 | |||
|- | |||
|C || 500,000 || 600,000 || 700,000 | |||
|- | |||
|D ||colspan="3"| Lower | |||
|- | |||
|E ||colspan="3"| Failed | |||
|} | |||
=== A onwards === | |||
Based on machine score. | |||
{| class="wikitable" | |||
|- | |||
|Grade || Score | |||
|- | |||
|AAA || 990,000 | |||
|- | |||
|AA || 900,000 | |||
|- | |||
|AA- || 890,000 | |||
|- | |||
|A+ || 850,000 | |||
|- | |||
|A || 800,000 | |||
|- | |||
|A- || 790,000 | |||
|- | |||
|B+ || 750,000 | |||
|- | |||
|B || 700,000 | |||
|- | |||
|B- || 690,000 | |||
|- | |||
|C+ || 650,000 | |||
|- | |||
|C || 600,000 | |||
|- | |||
|C- || 590,000 | |||
|- | |||
|D+ || 550,000 | |||
|- | |||
|D || Lower | |||
|} | |||
=== Pending === | |||
* Solo (Bassmix and 2000) | |||
* V (apparently AA just disappeared? did that include AA-) | |||
* etc. |
Latest revision as of 02:57, 4 October 2024
This is not intended to be article quality at the moment.
Also putting grading on this page.
Arcade mixes
1st/2nd/Club
- Step Score = J * (floor(C/4)^2 + 1)
where
- C = combo count after step
- J = 300 if Perfect, 100 if Great, 0 otherwise
3rd
Official description of the scoring system: https://web.archive.org/web/20080604023941fw_/http://www.konami.jp/bemani/ddr/jp/am/ddr3rd/plan/score.html
Then for the kth step,
- Step Score = J * (K * U + Q)
where
- B = 1000000
- S = N*(N+1)/2, N = number of steps in song
- U = floor(B / S)
- J = 10 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
4th/USA
Official description of the scoring system: https://web.archive.org/web/20130219110405fw_/http://www.konami.jp/bemani/ddr/jp/am/ddr4th/plan/score.html
- Step Score = J + 333 * C
where
- C = combo count after step
- J = 777 if Perfect, 555 if Great, 0 otherwise
If the player has failed (life bar empty), replace C with 0.
Note that AC DDR USA uses this even though its interface is based on 3rdMIX!
5th
Scoring system: http://web.archive.org/web/20090511010714fw_/http://www.konami.jp/bemani/ddr/jp/am/ddr5th/plan/score.html (mind the frame)
Variant of 3rd with difficulty multiplier and end of song grade and combo bonuses.
- Step Score = J * (K * U + Q)
where
- B = 500000 * (1 + D) if not a long version, 500000 * (1 + 2 * D) if a long version
- D = difficulty rating if not an edit, 7 (or 14) if an edit
- S = N*(N+1)/2, N = number of steps in song
- U = floor(B / S)
- J = 10 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
At the end of the stage a bonus is applied:
- Dance Level Bonus = 10000000 for AAA, divide by 10 for each lower rating down to 100 for D, 0 for E (only applied for "new songs", non-edits and songs that haven't been played already in the current session)
- Combo Bonus is accumulated per step:
- Step Combo Bonus = C * J'
where
- C = combo count after step if life bar not empty, 0 otherwise
- J' = 55 if Perfect, 33 if Great, 0 otherwise
DDRMAX
Scoring system: http://web.archive.org/web/20130411085012fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax/sec/score.html and http://web.archive.org/web/20090523210619fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax/sec/score2.html
Variant of 3rd with groove radar bonuses.
- Step Score = J * (K * U + Q)
where
- K = ordinal position of current step (not freeze; freezes are not scored during the song counted in the Groove Radar bonus)
- B = 5000000
- S = N*(N+1)/2, N = number of steps in song (not freezes)
- U = floor(B / S)
- J = 10 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
At the end of the stage a bonus is applied for each Groove Radar category.
Define:
- F_s = Perfects / total steps
- F_v = max combo / song maximum combo
- F_a = Perfects on jumps / total jumps
- F_c = DP / maximum DP
- F_f = OK / total freezes
Let
- B_s = 20000000
- B_v = B_a = B_c = B_f = 10000000
- G_x = the song groove radar value in category x.
- M_x = the theoretical maximum value in category x:
- M_s = 374
- M_v = 640
- M_a = 67
- M_c = 3832
- M_f = 8000
- P_x = round(floor(128 * B_x / M_x) * G_x / 128)
Then:
- V_x = floor((floor(F_x * 100) * P_x / 100) is the bonus for radar category x.
DDRMAX2/Extreme
Scoring system: http://web.archive.org/web/20130411085205fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax2/score.html (MAX2 normal), https://web.archive.org/web/20070112062754fw_/http://www.konami.jp/bemani/ddr/jp/am/extreme/score.html (Extreme)
Variant of 3rd with difficulty multiplier.
- Step Score = J * (K * U + Q)
where
- K = ordinal position of current step or freeze (as judged; if a freeze ends at the same time as a step then it's possible that the ordinal position can change depending on if the step was early or late)
- B = 1000000 * D
- D = difficulty rating if not an edit, 5 if an edit
- S = N*(N+1)/2, N = number of steps plus freezes in song
- U = floor(B / S)
- J = 10 if Perfect or OK, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
If the player has failed, replace (K * U + Q) with 1.
SuperNOVA
Scoring system: http://web.archive.org/web/20130219115342fw_/http://www.konami.jp/bemani/ddr/jp/am/sn/secret/secret_02.html
- Step Score = 10000000 * J / (2*N)
where
- J = 2 if Perfect/OK, 1 if Great, 0 otherwise
- N = number of steps plus freezes in song
Score is rounded down to nearest integer for output but fractions are retained internally.
SuperNOVA2 to 2014
- Step Score =
- U if Marvelous or OK
- U - 10 if Perfect
- U/2 - 10 if Great
- 0 otherwise
where
- U = 1000000 / N
- N = number of steps plus freezes plus shock arrows in song
Score is rounded down to nearest 10 for output but fractions are retained internally.
A onwards
- Step Score =
- U if Marvelous or OK
- U - 10 if Perfect
- U * 0.6 - 10 if Great
- U * 0.2 - 10 if Good
- 0 otherwise
where
- U = 1000000 / N
- N = number of steps plus freezes plus shock arrows in song
Score is rounded down to nearest 10 for output but fractions are retained internally.
Solo Bass Mix/Solo 2000
Scores are tallied up at the end of the song:
- Perfect: 500 per Perfect
- Great: 300 per Great
- Good: 100 per Good
- Max Combo: 400 * Max Combo
- Max Perfect Combo: 100 * Max Perfect Combo
Pending
AC scoring systems were unified for all non-exclusive releases after SuperNOVA 2.
- Kids (has a grade but not a numerical score)
- true Kiss Destination (only appears at end of song; 9 digit scores possible; likely same as 1st/2nd/Club)
- DREAMS COME TRUE (only appears at end of song; appears to be same as TKD)
- Disney's RAVE (no numerical score, grade shown ingame and updated in realtime)
- 1st US (likely same as 1st/2nd)
- DS (likely same as 1st/2nd, unchecked)
- EuroMIX (looks like 3rd)
- EuroMIX2 (looks similar to MAX2)
- Fusion (likely same as Extreme US)
- 1st Asia (likely same as 1st/2nd)
Special modes
3rd Nonstop
Probably same as normal with B replaced by (1000000 * stage number), but unverified.
MAX2 Oni
Scoring system: http://web.archive.org/web/20130411085821fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax2/score_oni.html
- Step Score = 2 if Perfect or OK, 1 if Great, 0 otherwise
Divide the score by max score to get percentage, round down to nearest 0.1%.
Extreme Nonstop
Incorporates Marvelous and stage count.
- Step Score = J * (K * U + Q)
where
- K = ordinal position of current step or freeze (as judged; if a freeze ends at the same time as a step then it's possible that the ordinal position can change depending on if the step was early or late)
- B = 10000000 * stage number
- S = N*(N+1)/2, N = number of steps plus freezes in song
- U = floor(B / S)
- J = 10 if Marvelous or OK, 9 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
Extreme Challenge
- Step Score = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise
This is also used as the EX Score in later games.
SuperNOVA Nonstop/Challenge
- Step Score = 10000000 * J / (3*N)
where
- J = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise
- N = number of steps plus freezes in course
Score is rounded down to nearest integer for output but fractions are retained internally.
SuperNOVA2 to X3 Courses (Nonstop/Challenge)
- Step Score = 1000000 * (J + floor((S - 1) / 2)) / Z
where:
- J = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise
- S = stage number
- Z = the sum of ((3 + floor((S - 1) / 2)) * number of steps in stage S) across all stages
Score is rounded down to nearest integer for output but fractions are retained internally.
A20/A3 Courses (Nonstop/Dan)
Same as in regular modes, but counted across the whole course.
- Step Score =
- U if Marvelous or OK
- U - 10 if Perfect
- U * 0.6 - 10 if Great
- U * 0.2 - 10 if Good
- 0 otherwise
where
- U = 1000000 / N
- N = number of steps plus freezes plus shock arrows total in course.
Score is rounded down to nearest 10 for output but fractions are retained internally.
Console and home mixes, regular
Same as AC mixes
- 1st/2nd/Club:
- DDR 1st JP
- 2ndReMIX
- 3rd:
- 4th:
- 5th:
- MAX:
- MAX2/Extreme:
- SuperNOVA:
- SN2:
- A:
- GRAND PRIX
Extreme US
Ref: http://aaronin.jp/boards/viewtopic.php?t=1230
Also seen in CS Festival and AC Fusion among others. Rounding not confirmed.
Ingame score is as follows:
- Step Score = 7000000 * J / (2*N)
where
- J = 2 if Perfect/OK, 1 if Great, 0 otherwise
- N = number of steps plus freezes in song
Song bonus is as follows (needs more research):
- Bonus Step Score = 3000000 * J / (2*N)
where
- J = 2 if Perfect/OK, 1 if Great, 0 if Good/NG, -1 if Boo, -2 if Miss.
- N = number of steps plus freezes in song
Then:
- If total bonus is negative, replace with 0.
- If combined total score including bonus is less than or equal to 9,200,000 or the song was not a full combo, subtract 800,000 from bonus (needs more research)
V
Same as A but with -100 instead of -10.
- Step Score =
- U if Marvelous or OK
- U - 100 if Perfect
- U * 0.6 - 100 if Great
- U * 0.2 - 100 if Good
- 0 otherwise
where
- U = 1000000 / N
- N = number of steps plus freezes plus shock arrows in song
Score is rounded down to nearest 10 for output but fractions are retained internally.
PS3
Rounding not confirmed. Decimals appear to be retained internally and the score rounded down for display, except when they aren't.
Steps within jumps etc. are counted separately.
- Step Score = U / 4 * J
where
- J = 4 if Perfect (non-freeze), 3 if Great, 2 if Perfect freeze
- U = 1000000 / (steps + freezes * 0.5)
If the arrow is a bonus arrow, add
- Bonus Step Score = floor(U / 4) * J (rounding not confirmed)
Pending
Those known not to correspond with any (preceding) AC release include:
- Ultramix series (1, 2 and 3 are different, 4 might be the same as 3)
- Hottest Party series (incl. MUSIC FIT and Winx Club) (similar to MAX2/Extreme but max score doesn't match)
- UNIVERSE series:
- 1 and 2 similar to MAX2/Extreme but max score is 100,000,000?
- 3 similar to SN2 but doesn't appear to round to 10s
Other unchecked (partial):
- GB series (same as 1st/2nd? score only at end)
- US PC (appears to be same as 4th, need confirmation)
Console and home mixes, special
Same as main mode:
- 2ndReMIX Endless
Pending writeup (partial):
- MAX2 Endless (needs checks)
- Extreme Endless (needs checks)
- Extreme 2 Course (and those with the same system)
- X2 Endless
3rdMIX Endless
Let C' be the adjusted combo count after step:
- If C = combo count after step and C'_p = value of C' on previous step, C' = :
- max(C'_p, C) if Perfect or Great
- floor(C'_p / 2) otherwise
Then,
- Step Score = J * (floor(C'/4)^E + 1) * L_1 * L_2
where
- J = 300 if Perfect, 100 if Great, 0 otherwise
- E = min(6, floor(1 + (S - 1) / 8))
- L_1 = 1 + floor(N / 256)^floor(1 + (S - 1) / 32)
- L_2 = S^min(9, floor(1 + (S + 15)/32)) * (S - max(0, S - mod(S + 15, 32) - 1))
- N = cumulative step count across all stages so far after step
- S = current stage number
The term (S - max(0, S - mod(S + 15, 32) - 1)) can also be expressed as:
- S, if S <= 16
- mod(S + 15, 32) + 1 if S > 16
Note that this means the score per step can go down when crossing stage boundaries, e.g. if S goes from 272 to 273.
Internal combo cap is 999999, but score cap will be hit before combo cap anyway.
4thMIX Endless
- Step Score = J + (floor(C/4) * L)^2
where
- C = combo count after step
- J = 301 if Perfect, 101 if Great, 0 otherwise
- L = max(1, S - 5) * max(1, floor(2^E * (S - 16 * (E + 3)) - 1))
- E = min(11, floor(S / 16) - 4)
- S = current stage number
Alternatively, if we let L = max(1, S - 5) * L_2 and L_2(S) be a function of S, then we can define it as a recurrence:
- L_2(S) = 1, S <= 16
- L_2(S) = L_2(S - 1) + 1 * (mod(S, 2 ^ (4 - floor(S / 16)) == 0), 17 <= S <= 64
- L_2(S) = L_2(S - 1) + 2 ^ min(11, floor(S / 16) - 4), S >= 65.
Note that if not Perfect or Great C will be 0 and thus step score will be 0.
Internal combo cap is 999999, though the max combo displayed is 9999. Score cap will be hit before combo cap anyway.
Extreme US Endless
According to my notes, the same system is used in Extreme US and its derivatives, along with SuperNOVA and SuperNOVA2. None of this has been fully verified, though.
What we have:
If Good or lower, Step Score = 0. Otherwise: If C <= 10000,
- Step Score = int((C^2 + B*C + B*D + C*D)/1000)
If C > 10000,
- Step Score = floor((step score at C = 10000) + (C-10000)*(10 + D/1000))
where:
- N = steps plus freezes in song
- D = ??00 if on Beginner, 1000 if on Basic, 1200 if on Difficult, 1400 if on Expert, ??00 if on Challenge.
- C = combo after (?) step
- B = floor(100000000 / N)
- J = 5 if Marvelous or OK, 4 if Perfect, 3 if Great
What we need:
- How does J affect the score? It's not a straight multiplier, but on low combo and state counts it's close
- Rounding
- Values of D
X Endless
Not fully verified.
Let:
- N be the total number of notes hit so far. (how do we define a "hit", clarify)
- M be the total number of Marvelouses so far.
- N' = N - P, where
- P is a penalty defined as follows: Every time a combo-breaking judgement occurs, floor(C/4) is added to P, where C is the stage combo before the note (i.e. the current combo, but only counted from the start of the stage if it began in a previous stage).
- S = current stage number.
- L = 2*S^3 if on Level 1, and floor(S^3/D) + 1 otherwise, where
- D = 3 if on Level 2, 6 if on Level 3, 8 if on Level 4 and 10 if on All.
Then the step score is:
- Marvelous: 3 * (N' + M) * L
- Perfect/OK: 2 * N' * L
- Great: N' * L
There may be rounding errors involved.
Strictly speaking, the formula for L is actually 2*min(S^3,2^31 - 1) for Level 1 and floor(min(S,1600)^3/D)+1 for other levels, but the caps aren't expected to be reached before the score cap (10^16 - 1).
Mobile mixes
DDR S/S+
Despite having a UI based on X the scoring system is closer to that of SN than SN2.
- Step Score = 1000000 * J / (2*N)
where
- J = 2 if Marvelous/Perfect/OK, 1 if Great, 0 otherwise
Grading systems
1st
Derived by me, not yet checked on AC.
Possible grades are S, A, B, C, D.
- If (bad + miss) == 0 and (max combo >= 100 or perfects >= 0.75 * total steps) then S.
- Otherwise:
- Set provisional grade to A if (max combo >= 50 or perfects >= 0.5 * total steps) and B otherwise
- Deduct one grade if (bad + miss) > 0.05 * total steps
- Deduct another grade if (bad + miss) > 0.15 * total steps.
2nd
Found on AIJ.
Possible grades are SS, S, A, B, C, D.
Let S be the total number of steps and C be the max combo. Define the following thresholds:
- C_1 = min( 0.9 * S, 100)
- C_2 = min( 0.5 * S, 60)
- C_3 = min( 0.5 * S, 20)
Let:
- GP = (C == S) + (C >= C_1) + (C >= C_2) + (C >= C_3)
- i.e. if C == S then GP = 4, else if C >= C_1, GP = 3, etc.
- MT = 4 - GP.
Then:
- Provisional grade is SS if GP == 4, S if GP == 3, A if GP == 2, B if GP == 1, C if GP == 0.
- Deduct one grade if either (misses > MT) or (perfects < greats).
3rd
Possible grades are SSS, SS, S, A, B, C, D, E.
Assign DP per judgement:
- 2 for Perfect
- 1 for Great
- 0 for Good
- -4 for Boo
- -5 for Miss
Then:
- If failed (empty life bar at some point), assign E.
- If all Perfects, assign SSS.
- Else, if all Great or Perfects, assign SS if (perfects >= 0.8 * total steps) and S otherwise.
- Else, check DP / Max DP:
- If >= 0.8, assign A
- If >= 0.64, assign B
- If >= 0.5, assign C
- Else, assign D.
4th
Possible grades are AA, A, B, C, D.
Assign DP per judgement as in 3rd.
Then:
- If failed (empty life bar at some point), assign D.
- If all Perfects, assign AA.
- Else, if all Great or Perfects, assign A.
- Else, check DP / Max DP:
- If >= 0.64, assign B
- Else, assign C.
5th
Possible grades are AAA, AA, A, B, C, D, E. Very similar to 3rd.
Assign DP per judgement as in 3rd.
Then:
- If failed (empty life bar at some point), assign E.
- If all Perfects, assign AAA.
- Else, if all Great or Perfects, assign AA.
- Else, check DP / Max DP:
- If >= 0.8, assign A
- If >= 0.64, assign B
- If >= 0.5, assign C
- Else, assign D.
Note that A, B, C and D are the same as 3rd's A, B, C and D. In fact, we can do a simple conversion table for 3rd, 4th and 5th:
3rd | 4th | 5th |
SSS | AA | AAA |
SS | A | AA |
S | A | AA |
A | B | A |
B | B | B |
C | C | C |
D | C | D |
MAX to Extreme
Possible grades are AAA, AA, A, B, C, D, E.
Assign DP per judgement:
- 2 for Perfect
- 1 for Great
- 0 for Good
- -4 for Boo
- -8 for Miss
- 6 for OK
- 0 for NG
Then:
- If failed (empty life bar at some point), assign E.
- Else, check DP / Max DP:
- If DP = max DP, assign AAA
- If >= 0.93, assign AA
- If >= 0.80, assign A
- If >= 0.65, assign B
- If >= 0.45, assign C
- Else, assign D.
SuperNOVA
Based on machine score. AIJ also mentions a DP system?
10,000,000 | AAA |
9,500,000 | AA |
8,100,000 | A |
6,500,000 | B |
5,400,000 | C |
<5,400,000 | D |
Failed | E |
SuperNOVA 2 to 2014
Based on machine score.
Grade | Beginner/Basic | Difficult | Expert/Challenge |
AAA | 990,000 | ||
AA | 950,000 | ||
A | 800,000 | 850,000 | 900,000 |
B | 700,000 | 750,000 | 800,000 |
C | 500,000 | 600,000 | 700,000 |
D | Lower | ||
E | Failed |
A onwards
Based on machine score.
Grade | Score |
AAA | 990,000 |
AA | 900,000 |
AA- | 890,000 |
A+ | 850,000 |
A | 800,000 |
A- | 790,000 |
B+ | 750,000 |
B | 700,000 |
B- | 690,000 |
C+ | 650,000 |
C | 600,000 |
C- | 590,000 |
D+ | 550,000 |
D | Lower |
Pending
- Solo (Bassmix and 2000)
- V (apparently AA just disappeared? did that include AA-)
- etc.