While I have a lot to learn about digging into RBI 3's internals, I did also pick up a fun side project that I've been spending the past few days on. RBI 3 was notable for being the first game in the series to include past division winners. This adds a ton of depth and selection to the game, but also the rosters are fraught with errors, inaccurate stats, and even fictional players!
With assistance from Nightwulf's rbi3.txt, Baseball-Reference.com and some simple pattern finding, I've been able to find that many players in the division winning teams have stats that may have been accurate, but their actual ATTRIBUTES (that is, their Power/Contact/Speed) don't match the numbers. Games from RBI 2 started to closely correlate a player's actual season performance and their attributes. If a player hits well enough, they get a good Contact rating. Hit enough homers, and Power goes up accordingly.
I can present one example:
In the '83 Dodgers starting lineup is Candy Maldonado with .194 AVG and 1 home run. The stats are accurate, he only played 42 games with the Dodgers that year. But internally his attributes are way different: He has 795 Power and 20 Contact. Searching through rbi3.txt, I found that players with 795 Power usually hit 15 home runs, although there's a range from 9-15. And 20 Contact seems to match players who hit about .257-.264. When I scanned the '83 Dodgers roster on Baseball-Reference, I found a perfect fit: Dusty Baker, who hit .260 with 15 home runs. Candy is essentially a proxy for Dusty Baker!
To confirm my finding, I opened up RBI 4 and checked the '83 roster. Candy is gone from this roster and in his place is 'DB Left' with .260 average and 15 HR. And when I checked his stats at offsets $0FBA3E-$0FBA4F...I get $031B power and $14 contact. This translates to 795 Power and 20 Contact. Indeed, the one and same Dusty Baker that Candy was standing in for.
There are many such examples in these '83-'89 teams where either a real player who was on the bench or an entirely fictional player name is used as a proxy for a real player that otherwise isn't included. Most retired players should follow the XY Position format, but for whatever reason aren't included in that way. I don't know why Tengen had to go through lengths to disguise these players when they could've used their simple abbreviated format, especially since starting with RBI 4 these rosters were mostly corrected and proper players were added in. What's more, RBI 3 has some players who WERE retired but weren't in this abbreviated format - for example pitcher Tippy Martinez on the '83 Orioles is still spelled out as 'T Martnz' even though he retired in 1988. RBI 4 properly abbreviates his name as 'TM Pitcher'.
I've run through all through all the division rosters to check them but...my god it's a LOT. I have a nearly 12,000-word document in my hands and I'm not sure how to dump all this to you guys. Tengen was really THAT sloppy with RBI 3. The best I can do for now is give you a sample by sharing what a mess the '86 Angels are in RBI 3 and how to make sense of it. It's the most inaccurate roster in the game! It's quite a big read, so make yourself comfy.
I took a screenshot of the '86 Angels roster attributes from Nightwulf's rbi3.txt. Let's get down to business.
*JN Catch is Jerry Narron. He retired after the '87 season with the Mariners.
*MC Pitch is Mike Cook. After the '89 season with the Twins, he floated around free agency for several years before a final brief stint with the Orioles in '93.
*Reggie Jackson is clearly missing. Reggie Jackson Baseball released for the Sega Master System in 1989 and Tengen was probably being overly cautious about including him, even as something like 'RJ Right'. Reggie's RBI 1 stats are taken from his 1982 season with the California Angels. In 1986, he hit .241 with 18 homers instead.
*Doug DeCinces is also missing. He retired after the '87 season. RBI 1 is almost completely accurate, but he hit 26 homers, not 25.
*Ruppert Jones is missing. He also retired after the '87 season. His HR total is accurate in RBI 1 but he hit .229 and never hit .250 in any season.
*Bobby Girch is missing. Bobby retired after the '86 season. His RBI 1 stats are accurate.
*George Hendrick is also absent. His RBI 1 stats are accurate. He retired after the '88 season with the Angels.
*Rick Burleson is missing too. His RBI 1 stats are accurate. He retired after the '87 season with the Orioles.
*Don Sutton is clearly missing (also from the '88 Dodgers). He had a 1.18 ERA in RBI 1 but he actually pitched 3.74.
*Doug Corbett is also missing. He had a 1.10 ERA in RBI 1 but he actually pitched 3.66. He retired after '87 with the Orioles.
*Finally Donnie Moore is also missing. He retired after '88 with the Angels.
*Gary Pettis's .258 average is accurate. RBI 1 is slightly off with a .256 average instead.
*Rob Wilfong's .219 average is accurate. RBI 1 gave him a .248 average which he did hit in 1984 for the Angels (with 8 homers instead of 3).
*Most people assume that Darrell Miller is used as a proxy for Reggie Jackson due to his position in the lineup and being the team's strongest hitter. His in-game stats are accurate. But his attributes clearly don't align with that. He has 861 Power and 20 Contact. But that doesn't match Reggie Jackson, either from his RBI 1 '82 stats or what's supposed to be Reggie's '86 stats. 861 Power correlates to players with 25 or 26 home runs, while 20 contact usually aligns with averages around .254-.262. Darrell Miller mostly played in the outfield but was sometimes used in the infield. All of this means that Miller isn't replacing Reggie Jackson...he's replacing Doug DeCinces!
*Okay so what about Devon White? His displayed stats are accurate, but his attributes don't match. He has 807 power and 26 contact. 807 Power generally matches players who have hit 17 home runs while 26 Contact is kinda all over the place but is supposed to be around .240-.250. Devon White was an outfielder, just like Reggie Jackson...that means DEVON is supposed to be the Reggie Jackson proxy, NOT Miller.
*Mark Ryal's average is inaccurate. He hit .375 in 13 games, not .363. But his 813 Power and 23 Contact don't add up. Most players with 813 Power hit 18 homers, but at least two other players had 17 homers: Alvin Davis and the mysterious 'Lestats' of the '83 Orioles (more on him later). Players with 23 Contact are all over the place, but go as low as .239. Ryal was a utility player that had played in the outfield, so it's most likely he's a proxy for Ruppert Jones.
*Gus Polidor's .263 average and 0 homers are accurate. But it doesn't mingle with his 807 Power and 18 Contact. 807 Power matches with players that have hit 17 homers as established before, while 18 Contact usually speaks to a from .267-.272. My evidence is weak, since Polidor was mostly an infielder, but I think he's most likely a proxy for outfielder George Hendrick.
*Mark McLemore's stats are completely inaccurate. In 5 games for the Angels in '86, Mark never got a single hit and never hit .250 in his career. Mark has 780 Power and 18 Contact. The Power rating most closely aligns with players who have hit anywhere between 8-11 home runs (usually 11) while 18 Contact usually aligns with a range from .268-.278. This means Mark is a proxy for Bobby Girch, further supported by the fact that both played Second Base.
*Who the hell is Woodroe? There was never any player with that last name on the '86 Angels, or in baseball for that matter. As far as I can tell, the name is made-up, and so are the stats for that matter. No one hit .364 with 15 homers. Even more vexing are the underwhelming 768 Power and 15 Contact. 768 Power tends to match players with 2-6 homers, while 15 Contact speaks to an average around the low .280s...this makes this imaginary player a proxy for Rick Burleson.
FINALLY I can get to the pitching. It is much harder to align a pitcher's attributes to their ERA alone and they often differ significantly from RBI 1 so I have to make more educated guesses. Pitching staff is limited to 10 with 4 starters and often teams had more than 10 pitchers, so there's inevitably some cuts or starters moved to the bullpen.
*Urbano Lugo did start 3 games but the other 5 he appeared in were relief. He's likely a stand-in for Don Sutton.
*Willie Fraser started a single game for the Angels in '86 with 8.31 ERA...doesn't match the 4.31 shown in game. But no one else on the team had a 4.31 ERA that season either. Hard to tell who stands in for. Closest guesses I have are Todd Fischer (4.24) or Verne Ruhle (4.15 ERA).
*In 1 start and 4 relief appearances, Mike Cook had a 9.00 ERA which does not match the 4.00 listed in the game. It's possible RBI 3's ERA lookup tables couldn't produce an ERA that high. No other pitcher in the '86 Angels had 4.00 ERA and I don't know who he might've stood in for.
*There was never any baseball player who had a last name of Ranger, nor any pitcher in the '86 Angels with a 5.41 ERA. Ranger is left-handed and the only other southpaws on the team besides John Candelaria were Chuck Finley, and Terry Forster - none of whom appear on this roster or had an ERA this high. Ranger is probably a proxy for any of these guys.
*For that matter, there's no 'Sucal' player on the '86 Angels nor any player who ever had that last name. However, it seems to be an anagram of 'Lucas' and Gary Lucas did pitch a 3.15 ERA which is super close to Sucal's 3.14, so it's likely meant to be him.
*Never heard of Ronikman either. But it sounds awful close to Ron Romanick, who was one of the '86 Angels' starters. He never pitched from the bullpen though, and he had a 5.50 ERA rather than the game's 4.84.
*Lastly, who's Lasher? He's most likely Donnie Moore, as Lasher's 2.87 ERA is closest to Donnie Moore's 2.97 ERA.
Good god and all this is just ONE team. I need to figure out where to compile all this information for all the rest...
Holy shit, that's some thorough work! I knew some of the older teams were a mess, but many of them were before I started paying attention to baseball ('87 was the first game I attended and first World Series I watched), so I didn't realize how bad/weird it was.
Quote from: chicobo329 on 09/09/25, 05:26:23 AM*Don Sutton is clearly missing (also from the '88 Dodgers). He had a 1.18 ERA in RBI 1 but he actually pitched 3.74.
*Doug Corbett is also missing. He had a 1.10 ERA in RBI 1 but he actually pitched 3.66. He retired after '87 with the Orioles.
Ha, those were two very impressive instances of "RBI 1 can't do ERAs over 3.56".
Quote from: chicobo329 on 09/09/25, 05:17:26 AMWith assistance from Nightwulf's rbi3.txt, Baseball-Reference.com and some simple pattern finding, I've been able to find that many players in the division winning teams have stats that may have been accurate, but their actual ATTRIBUTES (that is, their Power/Contact/Speed) don't match the numbers. Games from RBI 2 started to closely correlate a player's actual season performance and their attributes. If a player hits well enough, they get a good Contact rating. Hit enough homers, and Power goes up accordingly.
I'd noticed the same - they are much less likely to give a guy Tom Brookens Power, with a few exceptions ('89 Canseco has huge power despite 17 homers, making up for the fact he was injured). I think all the '89 teams are just copy/pastes from RBI 2 as well.
The main exception to the general HR->POW ratios, which I'm sure you're excited to discuss, is the '84 Cubs, who have pretty crazy power across the board that's nowhere near their homer totals.
Quote from: BeefMaster on 09/09/25, 07:25:11 AMI'd noticed the same - they are much less likely to give a guy Tom Brookens Power, with a few exceptions ('89 Canseco has huge power despite 17 homers, making up for the fact he was injured). I think all the '89 teams are just copy/pastes from RBI 2 as well.
The main exception to the general HR->POW ratios, which I'm sure you're excited to discuss, is the '84 Cubs, who have pretty crazy power across the board that's nowhere near their homer totals.
I suspected at first that it was just a bad dump of the NES RBI 3 which has a few errors (namely '87 Alan Trammell). There's several bad dumps floating around and only one good dump. But even a good dump doesn't fix the '84 Cubs...and neither does the Genesis version! I think Tengen just genuinely screwed up. I did write down what to make sense of for the '84 Cubs, but in order to be certain of who might've been a proxy, I'd have to look at RBI 4-onward since they have a corrected '84 Cubs roster. I think the data is just corrupted, I can't find any rhyme or reason to any of the Power stats.
1984 Chicago Cubs
The pitching staff is accurate. The Cubs had a busy pitching roster that season so a few cuts had to be made.
*LD First is Leon Durham. He was finished after the '89 season with the Cardinals.
*RC Third is Ron Cey. His last season was with the Oakland A's in '87.
*KM Right is Keith Moreland. He retired after '89 with the Orioles.
*BD Center is Bob Dernier. He also appears in the '83 Phillies roster in this game. He retired with the Phillies after '89.
*GM Left is Gary Matthews, father of another former player Gary Matthews Jr. He also appears in the the '83 Phillies roster in this game. He retired with the Mariners after '87.
*BB Short is none other than Bill Buckner. Bill did play 22 games for Boston in 1990 and was released mid-season after which he retired. He does not appear in Boston's 1990 roster in RBI 3, but he is also on the '86 Sox as BB First.
*ST Pitch is Steve Trout. His last season was with the Mariners in '89.
*RB Pitch is Rich Bordi. His last appearance was 2 games for the Oakland A's in '88. He's not on that roster in this game.
*GF Pitch is George Frazier, who's also on the '87 Twins roster (which was also his last season before retiring).
*TS Pitch is Tim Stoddard. His last season was with the Indians in '89.
*RM Pitch is Ron Meridith. He only pitched 3 games out of the bullpen for the '84 Cubs and retired after '87 with the Rangers.
*Jody Davis played 12 games for the Braves in '90 before retiring. He's not on that roster in this game.
*Thad Bosley was still active in 1990, playing 30 games for the Rangers before retiring the next season. He's not on the '90 Rangers roster in this game.
*Billy Hatcher's stats are accurate, but he was an outfielder, not an infielder. I'm almost entirely positive he's a stand-in for Larry Bowa, who retired after the '85 season with the Mets.
*Wileford seems to be a fake player. Steve Lake hit .222 average and 2 home runs, but he was a Catcher. Possible infielders this could be a proxy for are Richie Hebner (.333/2 HR) and Tom Veryzer (.189/0 HR).
*Steve Lake was a Catcher, but not a switch-hitter. His stats are also inaccurate: they belong to Dave Owen instead. He was a Shortstop with .194 average and 1 home run who was indeed a switch-hitter.
Great stuff per usual, it's clear they needed to hire a "stat fact checker" for the various versions of RBI - as they all have their quirks.
Spent more time looking into the '84 Cubs to see what the heck messed up. Attached are the attributes of the RBI 3 roster and the RBI 4 roster. I think it stands to reason that the actual attributes in RBI 4's roster were intended for RBI 3's.
The '84 Cubs are hopelessly broken in all versions of RBI 3, NES and Genesis. It doesn't make any sense for me to try and divine if any players on that roster were proxies based on their attributes since they are all corrupted with no rhyme or reason to them. Fortunately, RBI 4 and RBI '93 both feature the team with a much more accurate roster and proper attributes for its players. The first step I did was open up RBI 4 and look at the '84 Cubs in the code, then check the View Teams page, and then compared against their actual stats on Baseball Reference. I am ignoring the pitchers as their stats weren't corrupted in RBI 3.
The '84 Cubs roster in RBI 4 had some changes from 3's:
*Pretty much everybody has different Speed attributes, which tells me they were also corrupted in 3.
*JD Catcher is Jody Davis. He's unabbreviated in RBI 3 as he retired after playing a handful of games for the Braves in the '90 season.
*BB Short/Bill Buckner is absent the '84 Cubs in RBI 4.
*Thad Bosley is missing from this roster in RBI 4.
*Billy Hatcher is also missing in RBI 4.
*The imaginary Wileford player is obviously gone in RBI 4. He's listed as a Second Baseman but the only other players that had played Second Base at any time in '84 were Dave Owen, Gary Woods, and Tom Veryzer (who's not in either game).
*Steve Lake's stats were incorrectly Larry Bowa's in RB1 3, while Steve's actual stats are fairly close to Wileford's. Larry Bowa exclusively was a Shortstop, but if I had to guess, Tengen screwed up with their proxies. Larry Bowa was a switch-hitter while Steve Lake was right-handed. It seems clear to me, given Wileford's stats closely matching Lake's actual ones, that Larry Bowa was meant to be where Steve Lake was in RBI 3 and Wileford was meant to be Steve Lake - just with their positions flipped (and still incorrect in Bowa's case).
This isn't a change but I just discovered this error in both 3 and 4's rosters:
*In both RBI 3 and RBI 4, Mel Hall's stats are accurate to his time in the Cubs but he was traded midseason from the Cubs to the Indians and altogether should have .265 average and 11 home runs. This also means he shouldn't be on this roster at all! Especially since the players he was traded for are on the roster (Rick Sutcliffe, Ron Hassey, and George Frazier) at the same time.
RBI 4 has these new abbreviated players:
*GW Center is Gary Woods who retired after he played one more season with the Cubs in '85. He's actually in Left Field in this game, but he played all positions in the outfield during the '84 season.
*DO Shrtstp is Dave Owen who had a short 4-season career that ended with the Royals in '88.
*LB Shrtstp is Larry Bowa, who had his last season with the Mets in '85. He later became a manager and coach for several teams.
*RH Catcher is Ron Hassey. He appears in the '88, '89, and '90 Oakland A's rosters. But he still played with the Expos in '91 before retiring. He's not on that roster in this game. RBI 4 was released in September 1992, enough time to know that Hassey retired and thus abbreviate him.
*Ron Hassey's stats are accurate to his time with the Cubs in '84, but he was traded midseason from the Indians and should have altogether a .269 average with 2 home runs.
*Larry Bowa played 133 games for the Cubs this season but is on the bench. Dave Owen's 47 games make it strange that he's on the starting lineup by default.
There's some Power attribute anomalies, but RBI 4 doesn't use proxies like RBI 3 did so these are just Tengen playing against stat correlation. Contact scores are all sensible for their batting averages. Note that RBI 4 still correlates attributes to stats like RBI 3 does. RBI '93 and RBI '94 start adjusting the power scaling.
*Keith Moreland's 804 Power underperforms his 16 homers. The only two players with 804 Power in RBI 3 had 10 home runs.
*Steve Lake's 783 Power in RBI 4 doesn't really match his 2 homers, and aligns better with those who hit 6-11 home runs (usually 11).
*Gary Woods's 777 Power in RBI 4 fits players that hit between 4-9 homers, but he only has 3.
*Ron Hassey's 816 Power punches well above his 2 home runs. The only player in RBI 3 with 816 Power is Matt Williams who hit 18.
*Dave Owen's 750 Power better suits a player with 3 home runs, not 1.
*Henry Cotto has no homers but 720 Power instead of the minimum 705. Not especially unusual, but most players with 720 Power have 1 home run. It's possible his Power was flipped with Larry Bowa's on accident.
*Mel Hall's 774 Power isn't that uncommon. Most batters with this had 8 home runs, but there's a few in the 4-8 range.
I'd noticed the Cubs' inflated power numbers, but completely missed that they all had 66 contact (which is worse than a pitcher); I just assumed it was "the developers were big fans of that team and gave them really good power as an Easter egg", not "something got screwed up when we exported the data from whatever tool we were writing it with and no one double-checked it".