Ninety roster slots, sixty-two actual fighters, and twenty-five years of arguing about who is best. It was never settled because nobody could say what the numbers on the stat screen do. Now they can: the damage formula is decoded, so every fighter's real move table can be run through the game's own arithmetic against one standard opponent. This is that ranking, and the method behind it.
Who is the best wrestler in WCW/nWo Revenge?
Scott Norton, by the game's own arithmetic — first of 62. Goldberg lands 8th, Sting 12th, Hollywood Hogan 24th. The rest of this page is how that was worked out, and why every previous ranking disagreed with every other one.
First, though: who is even in the list?
Who is even in it
The ROM has 90 roster slots. Two filters cut that down, and both are mechanical rather than a matter of taste:
- Thirteen slots are not wrestlers. Managers and valets carry placeholder move tables that sum to around 400 damage where a real fighter reaches 1,800–2,200. The cut is drawn at 1,200, which sits in empty space between the two clusters. That leaves 77.
- Fifteen more are duplicates. Some slots share a parameter file byte for byte with another slot: the same fighter under a second name. Deduplicating leaves 62 distinct fighters.
Why the obvious scoring is arbitrary
The tempting approach is to normalise a few columns, weight them, and add them up. It is how tier lists are usually built, and the trouble is visible the moment you write the weights down: why is an ability byte worth as much as a whole move table? Any answer is a preference, not a measurement. Worse, min–max normalisation makes every number relative to whoever is in the table, and a final rescale puts exactly 100 at the top and exactly 0 at the bottom by construction — so a 100 means "best of these 62", never "strong".
Since the engine is decoded, none of that is necessary any more. The game itself says what a fighter does — and you can watch it do so: drop your own ROM into the AKI Inspector and the Analyse tab opens with this exact ranking, computed in the browser from the cartridge in front of you. There is nothing to set, because there are no weights.
The scoring, derived from the engine
Take the damage formula from part two and run every fighter's real move table through it against one standard opponent — the roster average, identical for everyone, so it is a comparison under equal conditions:
# a fresh limb has condition 50, so the condition term is exactly the
# move's base damage: (50 + 50) * base / 100 == base
damage_per_move = base + (my attack[limb] - their defence[limb]) * base / 10
# average that over all of a fighter's moves, against the average defence
# of the 62-fighter field:
deals = mean over my moves of damage_per_move # health points
takes = mean over the five limbs of the damage the # health points
average attacker's average move does to me
moves_to_finish = 255 / deals # how long I need to empty someone
moves_i_survive = 255 / takes # how long I last
index = moves_i_survive / moves_to_finish
Run it, and two things fall out. The first is the answer to the legend:
| # | Wrestler | Deals per move | Takes per move | Moves to finish | Moves survived | Index |
|---|---|---|---|---|---|---|
| 1 | Scott Norton | 14.70 | 12.42 | 17.4 | 20.5 | 1.184 |
| 2 | Chris Benoit | 14.57 | 12.56 | 17.5 | 20.3 | 1.160 |
| 3 | Giant | 14.55 | 12.70 | 17.5 | 20.1 | 1.145 |
| 4 | Saturn | 14.12 | 12.50 | 18.1 | 20.4 | 1.129 |
| 5 | Eddy Guerrero | 14.07 | 12.52 | 18.1 | 20.4 | 1.124 |
| 6 | Diamond Dallas Page | 14.06 | 12.56 | 18.1 | 20.3 | 1.120 |
| 7 | Scott Steiner | 14.19 | 12.70 | 18.0 | 20.1 | 1.117 |
| 8 | Goldberg | 14.03 | 12.64 | 18.2 | 20.2 | 1.110 |
| 9 | Juventud Guerrera | 14.04 | 12.68 | 18.2 | 20.1 | 1.107 |
| 10 | Rick Steiner | 13.58 | 12.33 | 18.8 | 20.7 | 1.101 |
| 11 | Psychosis | 13.96 | 12.68 | 18.3 | 20.1 | 1.101 |
| 12 | Sting | 13.70 | 12.58 | 18.6 | 20.3 | 1.089 |
The second is more interesting than the first: the roster is far flatter than the arguing suggests. Damage per move runs from 11.71 to 14.70 across all 62 fighters — a spread of 25 %. The index spans 0.874 to 1.184, about 35 %. There is no character in this game who deals double what another does; the ability bytes nudge a move by a few percent each way and the move's own base damage does the rest.
It also settles a question the stat screen can only pose. Compared against this engine-derived order, the ability-byte column is off by 6.5 places on average, and the moveset-total column by 18.4. The stat sheet the game shows you is a decent proxy for what the engine actually does. The move-table totals are not.
For completeness, all 62 with both the engine figures and the raw inputs:
| # | Wrestler | kg | Abilities | 5s | Move damage | Deals | Takes | Index |
|---|---|---|---|---|---|---|---|---|
| 1 | Scott Norton | 152 | 33 | 2 | 2,028 | 14.70 | 12.42 | 1.184 |
| 2 | Chris Benoit | 99.8 | 31 | 1 | 2,123 | 14.57 | 12.56 | 1.160 |
| 3 | Giant | 244.9 | 34 | 2 | 1,960 | 14.55 | 12.70 | 1.145 |
| 4 | Saturn | 106.6 | 30 | 2,064 | 14.12 | 12.50 | 1.129 | |
| 5 | Eddy Guerrero | 93 | 30 | 1 | 2,172 | 14.07 | 12.52 | 1.124 |
| 6 | Diamond Dallas Page | 106.6 | 30 | 2,002 | 14.06 | 12.56 | 1.120 | |
| 7 | Scott Steiner | 106.6 | 30 | 1 | 2,000 | 14.19 | 12.70 | 1.117 |
| 8 | Goldberg | 129.3 | 32 | 2 | 1,951 | 14.03 | 12.64 | 1.110 |
| 9 | Juventud Guerrera | 74.8 | 30 | 1 | 1,947 | 14.04 | 12.68 | 1.107 |
| 10 | Rick Steiner | 112.5 | 36 | 2 | 1,872 | 13.58 | 12.33 | 1.101 |
| 11 | Psychosis | 90.7 | 28 | 2,123 | 13.96 | 12.68 | 1.101 | |
| 12 | Sting | 114.3 | 34 | 1,967 | 13.70 | 12.58 | 1.089 | |
| 13 | Chris Jericho | 102.1 | 30 | 2,002 | 13.53 | 12.44 | 1.088 | |
| 14 | Rey Mysterio Jr. | 70.3 | 26 | 1 | 2,060 | 14.44 | 13.30 | 1.086 |
| 15 | Raven | 107.5 | 28 | 1,847 | 13.57 | 12.52 | 1.083 | |
| 16 | Scott Hall | 130.2 | 28 | 1,923 | 13.58 | 12.54 | 1.083 | |
| 17 | Lex Luger | 122.5 | 30 | 2 | 1,912 | 13.64 | 12.60 | 1.083 |
| 18 | Wrath | 134.7 | 27 | 2,098 | 13.65 | 12.68 | 1.077 | |
| 19 | Booker T | 117 | 32 | 1 | 1,851 | 13.28 | 12.37 | 1.074 |
| 20 | AKI man | 109.8 | 25 | 1,982 | 13.59 | 12.86 | 1.057 | |
| 21 | Kevin Nash | 166.5 | 28 | 1 | 1,888 | 13.80 | 13.09 | 1.055 |
| 22 | Buff Bagwell | 114.3 | 26 | 1 | 1,969 | 13.49 | 12.81 | 1.053 |
| 23 | Dean Malenko | 98 | 30 | 2,033 | 13.15 | 12.56 | 1.047 | |
| 24 | Hollywood Hogan | 124.7 | 31 | 1 | 1,867 | 13.32 | 12.74 | 1.045 |
| 25 | Curt Hennig | 118.8 | 28 | 1 | 1,908 | 13.10 | 12.54 | 1.045 |
| 26 | Brian Adams | 146.1 | 27 | 1,954 | 13.12 | 12.56 | 1.045 | |
| 27 | La Parka | 105.2 | 29 | 2,016 | 13.28 | 12.74 | 1.043 | |
| 28 | Reese | 163.3 | 24 | 1,864 | 13.17 | 12.66 | 1.040 | |
| 29 | Ultimo Dragon | 79.4 | 30 | 1 | 2,076 | 12.98 | 12.64 | 1.027 |
| 30 | Disco Inferno | 108.9 | 28 | 1,892 | 12.66 | 12.44 | 1.018 | |
| 31 | Bret Hart | 106.1 | 29 | 1,811 | 12.66 | 12.47 | 1.015 | |
| 32 | Roddy Piper | 103 | 29 | 1,765 | 12.48 | 12.40 | 1.007 | |
| 33 | Kanyon | 114.3 | 25 | 1,979 | 12.74 | 12.68 | 1.005 | |
| 34 | Glacier | 111.1 | 24 | 1 | 1,824 | 13.00 | 13.03 | 0.998 |
| 35 | Meng | 140.6 | 27 | 1,860 | 12.81 | 12.84 | 0.998 | |
| 36 | Konnan | 113.4 | 25 | 1,998 | 12.76 | 12.84 | 0.994 | |
| 37 | Executioner | 117.9 | 19 | 2,025 | 13.76 | 13.89 | 0.991 | |
| 38 | Dr. Frank | 127 | 22 | 1,983 | 13.20 | 13.58 | 0.972 | |
| 39 | Han Zo Mon | 94.8 | 22 | 2,082 | 13.14 | 13.54 | 0.970 | |
| 40 | Barbarian | 136.1 | 25 | 1,903 | 12.45 | 12.84 | 0.970 | |
| 41 | Macho Man Randy Savage | 104.3 | 28 | 1,837 | 12.56 | 12.98 | 0.967 | |
| 42 | Maya Inca Boy | 119.7 | 20 | 2,040 | 12.47 | 12.91 | 0.966 | |
| 43 | Fit Finley | 104.8 | 27 | 1,820 | 12.43 | 12.87 | 0.966 | |
| 44 | Jim Neidhart | 123.8 | 24 | 1,940 | 12.37 | 12.84 | 0.963 | |
| 45 | Alex Wright | 98.9 | 24 | 1,895 | 12.30 | 12.81 | 0.960 | |
| 46 | Sick Boy | 113.4 | 20 | 1,938 | 12.58 | 13.15 | 0.957 | |
| 47 | Jekel | 122.9 | 18 | 1,955 | 13.01 | 13.61 | 0.956 | |
| 48 | Yugi Nagata | 104.3 | 25 | 1,828 | 12.20 | 12.79 | 0.954 | |
| 49 | Kidman | 83.9 | 17 | 2,007 | 13.01 | 13.65 | 0.953 | |
| 50 | Kim Chee | 159.7 | 22 | 1,880 | 12.55 | 13.28 | 0.945 | |
| 51 | Chavo Guerrero Jr. | 89.8 | 19 | 1,942 | 12.61 | 13.40 | 0.941 | |
| 52 | Van Hammer | 124.7 | 20 | 1,990 | 12.45 | 13.40 | 0.929 | |
| 53 | British Bulldog | 114.8 | 21 | 1,912 | 12.12 | 13.15 | 0.921 | |
| 54 | Shogun | 109.8 | 20 | 1,863 | 12.57 | 13.65 | 0.921 | |
| 55 | Stevie Ray | 132.4 | 20 | 1,823 | 12.22 | 13.28 | 0.920 | |
| 56 | Hawk Hana | 119.7 | 19 | 1,932 | 12.56 | 13.82 | 0.909 | |
| 57 | Ming Chee | 119.7 | 21 | 1,944 | 11.96 | 13.36 | 0.895 | |
| 58 | Lodi | 99.8 | 17 | 1,868 | 12.16 | 13.65 | 0.891 | |
| 59 | Riggs | 101.6 | 17 | 1,868 | 12.16 | 13.65 | 0.891 | |
| 60 | Brickowski | 109.8 | 20 | 1,950 | 12.19 | 13.86 | 0.880 | |
| 61 | Dake Ken | 104.8 | 19 | 1,882 | 11.95 | 13.61 | 0.878 | |
| 62 | Larry Zbysko | 109.3 | 18 | 1,773 | 11.71 | 13.40 | 0.874 |
Norton's parameter file reads 3 5 5 1 2 for offence and 3 4 4 2 4 for defence — 33 points, and two maxed offence values, which only four fighters have: Giant, Norton, Luger and Goldberg. He pairs that with a move table near the top of the field, and the combination is what puts him first. Hollywood Hogan, for the record, lands 24th.
Methodology
Everything was computed from a dump of my own cartridge with the AKI Inspector; the Analyse tab shows the same table for any ROM you open, and bin/staerke.js <rom> prints it on the command line. The damage formula it uses was read out of the game code and then executed in a MIPS interpreter against the cartridge's own memory image — the full account is in the write-up on the pin mechanic. No ROM data is reproduced here.
| ROM | WCW/nWo Revenge (USA) |
| Product code | NW2E |
| SHA-256 | 66c137d326565c6f31f992daba8f67c0aee7f025a142dd249d27019708014b60 |
| Roster | 90 slots, 77 with a real move table, 62 distinct fighters |
| Fresh limb condition | 50, so the condition term is exactly the move's base damage |