Every WCW/nWo Revenge fighter, ranked by the game's own damage math
All 62 fighters in WCW/nWo Revenge, ranked by running each real move table through the game's damage formula. Scott Norton comes first, and the field is flatter than expected.
WCW/nWo Revenge has 90 roster slots, 62 real fighters and twenty-five years of argument about which of them is best. With the damage formula decoded, each fighter's move table can now be run through the game's own arithmetic, and this is the ranking that comes out.
Who counts as a fighter#
Two mechanical filters reduce the 90 roster slots in the ROM to the list that gets ranked.
- Thirteen slots are not wrestlers. Managers and valets have placeholder move tables worth 329 to 590 damage in total, against 1,765 to 2,172 for a real fighter. The cut-off is the largest relative jump in the sorted sums, a factor of three here. A fixed threshold would not transfer to other games: 1,200 suits Revenge but falls on the median of No Mercy. That leaves 77.
- Fifteen more are duplicates that share another slot's parameter file, mostly the same fighter under a second name. One is a valet, Sister Sherri, on Sting's file. That leaves 62 distinct fighters.
Why not a weighted score#
Tier lists usually normalise a few columns, weight them and add them up. The weights are a preference, since nothing says how much an ability byte should count against a whole move table. Normalising and rescaling also put 100 at the top and 0 at the bottom by construction, so a score of 100 means only "best of these 62". With the engine decoded, none of this is needed. The Rating of the AKI Anvil computes the ranking below in the browser for any supported cartridge, and there is nothing to configure.
Scoring with the engine's formula#
The damage formula comes from the write-up on the pin mechanic. Every fighter's move table runs through it against one standard opponent, the roster average, so all fighters are compared under the same 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 = max(0, base)
+ max(0, (my attack[limb] - their defence[limb]) * base / 10)
# each term is clipped at zero, as the engine clips it. Two things the
# engine does are left out on purpose: the spirit term (both sides sit at
# the same spirit here, so it is zero) and integer truncation (the average
# opponent has fractional defence, so this stays in floats)
# average that over the moves that carry damage, 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_finishDeals and takes are both in health points. Dividing 255 health by each gives the moves a fighter needs to finish an opponent and the moves they survive, and the index is the ratio of the two. Above 1.0, a fighter outlasts the time they need to win. The damage term was checked against the ROM in the pin write-up, while the averaging is this article's own arithmetic. An independent recomputation from the raw tables reproduces all 62 rows.
The ranking#
Scott Norton comes first with an index of 1.184. He needs 17.4 moves to finish the average opponent and survives 20.5, so his reputation among players as a hidden gem holds up. Goldberg is 8th, Sting 12th and Hollywood Hogan 24th.
| # | 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. That is 33 points, with two maxed offence values that only Giant, Norton, Luger and Goldberg have. Together with a move table near the top of the field, it puts him first.
A flat roster#
The roster is much flatter than the arguments suggest. Damage per move ranges from 11.71 to 14.70, a spread of 25 %, and the index from 0.874 to 1.184, about 35 %. No fighter deals double what another does. The ability bytes change a move's damage by a few percent either way, and the move's base damage does the rest.
Against the engine's order, the ability-byte total is off by 6.5 places on average and the move-table total by 16.0, while the two disagree with each other by 18.4. The stat sheet the game shows is a fair guide to what the engine does. The move-table totals are not.
Method and sources#
Everything was computed from a dump of my own cartridge with the AKI Anvil, and bin/strength.js <rom> prints the same table on the command line. The damage formula was read out of the game code and then executed in a MIPS interpreter against the cartridge's own memory image. No ROM data is reproduced here.
The ranking covers the three games whose per-wrestler move tables are decoded: World Tour, Virtual Pro-Wrestling 64 and Revenge. WrestleMania 2000, Virtual Pro-Wrestling 2 and No Mercy instead hold one shared move table of 1,702, 2,302 and 2,136 entries, which each wrestler's moveset points into. All of those movesets decode (58 of 58, 98 of 98 and 64 of 64), so the same ranking is possible there. It has not been built yet.
| Property | Value |
|---|---|
| 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 |
So the long argument has an answer: Scott Norton, by a narrow margin over Chris Benoit. More telling is how little separates the rest of the roster, and that the stat screen was a fair guide all along.