Jump to content
NHL'94 Forums

Recommended Posts

Posted

Make the Edit Lines ratings match the players' actual skills

You can download this program to apply this fix to your NHL'94-based ROM:

RatingsFix10.zip

the source code (RatingsFix.py) is also included.

Usage: Drag and drop a ROM file onto RatingsFix.exe and then follow the instructions the program gives you.

Update: I made another bug fix, since the original one I think wouldn't work well in leagues. The new fix is called Fix 1. The old one, Fix 2. I recommend the new fix (Fix 1), at least for leagues. Use the program above to apply it, it gives you the option of which fix to apply.

Note: Only works with NHL'94-based ROMs (not NHLPA'93, NHL'95, etc.).

BUG DESCRIPTION:

The player ratings you see in the Edit Lines/Team Rosters screens do not match the actual ratings the players have on the ice. Consequently, you can't tell if a player is actually hot or cold.

When on the ice, each player has a bonus from -9 to +8 (out of 99) applied to all his main attributes (agility, speed, shot power, etc). All his attributes get the same bonus value. You can think of the bonus as a percentage. If one of your guys is +8, he is up to 8% better than normal at everything. If you're lucky, most of your players will have positive bonuses, but typically you have a few with positive and a few with negative...

However, the Edit Lines/Team Rosters screens work differently when showing you the player attribute ratings. These screens pick a different bonus for every attribute of every player. Consequently, these values are meaningless, other than being ballpark figures. They could be up to 17 points off from the actual value!

Here are some tables with examples, since I tend to make things sound more complicated than they are!:

Note: the bonuses would be different every game.

Original game:  They don''t match!

Player     Attribute  On-ice Bonus  Team Rosters Bonus
                     (consistent)       (random)
------------------------------------------------------
Gretzky    Speed           +5 %             -9 %       ** Note: bonuses are different each game
Gretzky    Agility         +5 %             +8 %
Gretzky    Shot Power      +5 %             -1 %
Sandstrom  Speed           -3 %             -3 %
Sandstrom  Agility         -3 %             +4 %
Sandstrom  Shot Power      -3 %              0 %


Fix 1 (Recommended):

Player     Attribute  On-ice Bonus  Team Rosters Bonus
                       (random)   (random, but matches)
------------------------------------------------------
Gretzky    Speed           -9 %            -9 %
Gretzky    Agility         +8              +8
Gretzky    Shot Power      -1              -1
Sandstrom  Speed           -3              -3
Sandstrom  Agility         +4              +4
Sandstrom  Shot Power       0               0


Fix 2:

Player     Attribute  On-ice Bonus  Team Rosters Bonus
                     (consistent)     (consistent)
-----------------------------------------------------
Gretzky    Speed           +5 %            +5 %
Gretzky    Agility         +5              +5
Gretzky    Shot Power      +5              +5
Sandstrom  Speed           -3              -3
Sandstrom  Agility         -3              -3
Sandstrom  Shot Power      -3              -3

SOLUTION:

So, there are two different ways to fix this bug...

1) make the players on the ice use different bonuses for each attribute, to match the Edit Lines/Team Rosters

or

2) make the Edit Lines / Team Rosters screens use the 1 bonus per player.

So, I have created these two hacks. You can pick which one you want to use. I recommend the 1st one, since I think this is how they intended to write the game. The 2nd one would probably cause a lot of fake 'desynchs' when people see that their star player is -9 in all his attributes!

DO NOT USE BOTH HACKS IN ONE ROM! Using both hacks would make the bug again, but backwards.

FIX 1: RECOMMENDED BUG FIX:

This fix makes the players' on-ice ratings match the ones you normally see in the Edit Lines/Team Rosters screens. Players will have independent bonuses on each attribute. This is recommended for leagues.

Step 1:  
   Open your ROM in a hex editor and go to the end of the ROM.  You''ll see
a bunch of "FFFF..." bytes.
   Use your PageUp key until you see bytes other than "FFFF...".  In a 
30-team ROM, this will be usually be around @001e2b00.

Step 2:
   Where the FFFFs start, paste in these values:
   (be careful not to overwrite the "60 FE" bytes that mark the end of the
original data)

   Offset: @xxxxxxxx:
   Old Value: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
   New Value: D3FC 0000 01B2 3F02 3438 BF14 0442 0010 d441 1231 2000 341f 4e75

   Make note of where you pasted to.  I''ll call this location "xxxxxxxx".

Step 3:

   Offset: @000f710a
   Old Value:  D3FC 0000 01A2 1231 1000
   New Value:  4e71 4e71 4eb9 xxxx xxxx

   Replace xxxx xxxx with the location you used in Step 3.  Make sure it''s 
8 characters, like "001e 2b00"

Here that is in picture form using the free HxD hex editor:

post-253-011457100 1279996698_thumb.png

FIX 2:

This other fix makes the Edit Lines/Team Rosters ratings match the actual ratings the players have on the ice.

Do not apply this fix if you applied the other one -- they would counteract each other.

Offset: @faa38
Old Value: D9FC 0000 0010
New Value: 4E71 4E71 4E71

Offset: @faab4
Old Value: 1E34 20FF
New Value: 1E14 4e71

Offset: @faad4
Old Value: D634 20FF
New Value: D634 0000

Posted

this topic has been discussed so many times here, but I STILL don't really understand. I hope I have the main point right:

1. guys are +/-/= for their stats. got it.

2. RB's intro means nothing. okay, if you say so -- everybody else sure agrees.

3. you've found a way to fix this, making the RB comments reflect the actual hot/cold players. sweet!

that's really cool. does it pick the three most-affected and three least-affected players from each team?. is this possible in SNES, too? same value offsets? thanks for your time.

Posted

this topic has been discussed so many times here, but I STILL don't really understand. I hope I have the main point right:

1. guys are +/-/= for their stats. got it.

2. RB's intro means nothing. okay, if you say so -- everybody else sure agrees.

3. you've found a way to fix this, making the RB comments reflect the actual hot/cold players. sweet!

that's really cool. does it pick the three most-affected and three least-affected players from each team?.

Not quite.

1. Correct

2. When Ron Barr says a guy is Hot or Cold, he is still talking nonsense. You could say he's guessing :P He might be right, he might be wrong.

3.

No, Ron Barr still talks nonsense. However, if you apply this hack, the numbers you see for the ratings of players will be correct.

(EDIT: For Fix 2) I made the numbers you see on the Ron Barr screen, Edit Lines, and Team Rosters fit the actual gameplay, because they were also nonsense before.

So, say a guy has a 4 in skating speed (this shows in the 63-80 range on Edit Lines and Team Rosters). Internally, the game takes the 4, multiplies it by 5, and then adds in a hot/cold value for that player (NOTHING TO DO WITH RON BARR! :)). So it ends up being close to 20, plus or minus a few depending on whether he is actually hot or cold (nevermind Ron Barr). If he's actually really hot that game, he might get bumped up to a 22. The game then uses that value for his speed, so he moves 22 units of distance per frame.

On the Edit Lines and Team Rosters screens, it takes the 4 speed and multiplies by 18, to get 72. 72 is right in the middle of that 63-80 range. It then takes that hot/cold value and adds or subtracts it from 72 to get his display rating. It used to grab some other random number, instead of the hot/cold value, so it didn't make sense, it was nonsense other than being in the correct range, and you couldn't make any decisions on who to bench based on it.

is this possible in SNES, too? same value offsets? thanks for your time.

These are code hacks, not data hacks, so they won't translate at all from the Genesis to the SNES. The consoles have totally different CPUs, so totally different code languages. Those numbers you change for this fix are actually code -- the first and last are ADD instructions, and the middle one is a MOVE instruction. They were adding or moving a value from the wrong place.

Posted

well, then, are you able to do the same thing for the SNES version, yourself? like, does the skill you used to ascertain and adjust these values translate similarly to allow you to replicate the results you have had in GENS to the correlated digits in the SNES code? and do the SNES rating suffer from the exact same deficiencies that the GENS code has/had? either way, thanks for the work! please do what you can by way of another 45% of our community.

Posted

well, then, are you able to do the same thing for the SNES version, yourself? like, does the skill you used to ascertain and adjust these values translate similarly to allow you to replicate the results you have had in GENS to the correlated digits in the SNES code? and do the SNES rating suffer from the exact same deficiencies that the GENS code has/had? either way, thanks for the work! please do what you can by way of another 45% of our community.

I'm not too interested in doing SNES fixes, other than making a 30+ team SNES 94 ROM with decompressed graphics.

If no one even knows if the SNES has this ratings issue, I don't want to put time into looking for it in a game I don't play :)

Posted

word. I guess it has been drilled into my head here that the ratings are "ALL WRONG!l!ONE!|!:!1!i!;!" it would explain some things I don't get about player boosts, but those may be home/away-related. the SNES manual mentions home/away boosts zero times. the games are different, but I don't suspect they were different in their ratings math. I suspect the equations are the same for those things, but I really don't know. it would be beyond awesome if we had "edit lines" options reflecting the boosts and anchors that aren't discernible from the 25-100 ratings.

Posted

Really nice find, there's been discussion about this hot cold business for years. Ron Barr has been Jimmy the Greek'd, and it hurts but still

sayga.gif

Approved.

Posted

you say "ga" and I say "SNES" (like "'s nice"). anyway, I want this topic to grow. somebody address the SNES!

Posted

Sorry might of missed something but is it possible to apply this only to certain players all the time? So rather than all the players being either hot or cold it could just be applied to inconsistent players e.g. Petr Klima etc

Posted

Sorry might of missed something but is it possible to apply this only to certain players all the time? So rather than all the players being either hot or cold it could just be applied to inconsistent players e.g. Petr Klima etc

All players are 'inconsistent' due to how the game works. This fix lets you use Edit Lines/Team Rosters to see exactly how good or bad they are that game.

In case there is a misunderstanding: it's not your whole team that is either hot OR cold.. each player is hot or cold (or normal) to some degree.

Posted (edited)

Do you need us to test the ROM and show you screenshots? I'll try two versions of the game for reference and proof.

Edited by RedWingDevil
Posted

somebody needs to do this for SNES. I don't know if it suffers from the same bug, so I guess the first step would be determining that. too cool.

Posted

Do you need us to test the ROM and show you screenshots? I'll try two versions of the game for reference and proof.

I've tested it out and I think it works.

If you have any troubles, please tell me.

Posted

Stats sheet for hot/cold players on option 2 of the program:

Philadelphia Flyes @ Pittsburgh Penguins

Mario Lemieux (Hot):

Overall: 99

Agility: 96

Speed: 76

OWA: 99

DWA: 78

Shot power: 78

Shot accuracy: 99

Pass accuracy: 99

Stick handling: 99

Aggresiveness: 46

Checking: 60 (probably one of his highest ratings in this attribute)

Eric Lindros (Hot):

Overall: 86

Agility: 74

Speed: 56

OWA: 74

DWA: 74

Shot power: 74

Shot accuracy: 99

Pass accuracy: 74

Stick handling: 74

Aggressiveness: 74

Checking: 92

Tom Barraso (Cold):

Overall: 67

Agility: 65

Speed: 65

DWA: 83

Puck control: 65

Stick right: 65

Strick left: 65

Glove right: 65

Glove left: 65

Tommy Soderstrom (Cold):

Overall: 68

Agility: 68

Speed: 68

DWA: 86

Puck control: 68

Stick right: 50

Strick left: 68

Glove right: 50

Glove left: 68

Notes:

- Jagr was a bit low on shot power and accuracy in comparison to say, Rick Tocchet. However, he was higher in shot accuracy, stick handling and checking.

- Lemieux became the First star of the match, having nailed 2 goals and an assist. Ratings were good on him in this game.

- Barraso felt better than Soderstrom in this game despite both goalies being on a cold streak. His attributes were a bit higher in this glove and stick work whereas Soderstrom was a bit higher in speed, agility and defensive awareness.

More notes to come for options 1 and 2 for the road game.

Posted

Stats sheet for hot/cold players on option 2 of the program:

Philadelphia Flyes @ Pittsburgh Penguins

Mario Lemieux (Hot):

Overall: 99

Agility: 96

Hey, this doesn't really prove much... just accept that it works, ok? ;)

i'll make a couple screenshots later that actually prove that it works by showing the internal values the ROM is using and comparing them to the ratings you see in Edit Lines, showing how they relate.

Muller is a nice guy to test with, because he has a 4 (72) rating in just about everything.

Posted

I don't know if anyone is going to actually read this, but whatev!

I made the picture for Fix 2 first, so I'll post it first since I added more detail to it than for Fix 1...

Also, I made a mistake when setting up the screen shots, so the players are in different orders in the RAM Watch windows...

Fix 2 proof

The Edit Lines ratings are changed to match the "under the hood" ratings of the players.

Edit Lines ratings follows the formula (0-to-6 rating)x18+bonus

RAM Watch rating (these are the under-the-hood ratings the game actually uses for your players), the formula is (0-to-6 rating)x5+(bonus/3).

Since the game doesn't use decimal numbers, when you divide a number by 3, you have to round down. so 1/3 is 0. 5/3 is 1. -5/3 is -1.

You can see that Muller's bonus for everything is -9. That's the coldest possible.

So, his Edit Lines ratings are 4x18-9 = 63 for both speed and agility. (if his bonus were 0, he'd be 4x18+0=72).

"under the hood", his ratings are 4x5+(-9/3)=17.

Savard's bonus is -4. His Edit Lines agility is 5x18-4=86 and his speed is 4x18-4=68. His "under the hood" agility is 5x5+(-4/3)=24 (recall that (-4/3 gets rounded down to -1) and his speed is 4x5+(-4/3)=19.

post-253-052577300 1280121625_thumb.png

Fix 1 proof

The players' "under-the-hood" ratings are changed to match the Edit Lines ratings.

for fix 1, you can see that the bonuses for speed and agility are separate values.

Muller's agility bonus is -4 and his speed bonus is +6.

Consequently, his agility is 4x18-4=68 and his speed is 4x18+6=78. So he's faster than normal, but not as agile. This could feel weird, since we're used to players being hot or cold across all their attributes.

post-253-041307100 1280121611_thumb.png

Posted

If using Fix 1, I think the thing people will notice when playing the game is that players can have a big difference in skating "feel" in different games.

For example, if Muller has a high Agility bonus, and a low (negative) Speed bonus, he will skate like a guy with higher agility than speed (like Oates, Lemieux..).

In the next game, he might have low Agility and high Speed, so he will be harder to control, like Pat Verbeek or Benoit Hogue.

  • 5 years later...
Posted

I don't know if anyone is going to actually read this, but whatev!

I made the picture for Fix 2 first, so I'll post it first since I added more detail to it than for Fix 1...

Also, I made a mistake when setting up the screen shots, so the players are in different orders in the RAM Watch windows...

Fix 2 proof

The Edit Lines ratings are changed to match the "under the hood" ratings of the players.

Edit Lines ratings follows the formula (0-to-6 rating)x18+bonus

RAM Watch rating (these are the under-the-hood ratings the game actually uses for your players), the formula is (0-to-6 rating)x5+(bonus/3).

Since the game doesn't use decimal numbers, when you divide a number by 3, you have to round down. so 1/3 is 0. 5/3 is 1. -5/3 is -1.

You can see that Muller's bonus for everything is -9. That's the coldest possible.

So, his Edit Lines ratings are 4x18-9 = 63 for both speed and agility. (if his bonus were 0, he'd be 4x18+0=72).

"under the hood", his ratings are 4x5+(-9/3)=17.

Savard's bonus is -4. His Edit Lines agility is 5x18-4=86 and his speed is 4x18-4=68. His "under the hood" agility is 5x5+(-4/3)=24 (recall that (-4/3 gets rounded down to -1) and his speed is 4x5+(-4/3)=19.

fix2.PNG

Fix 1 proof

The players' "under-the-hood" ratings are changed to match the Edit Lines ratings.

for fix 1, you can see that the bonuses for speed and agility are separate values.

Muller's agility bonus is -4 and his speed bonus is +6.

Consequently, his agility is 4x18-4=68 and his speed is 4x18+6=78. So he's faster than normal, but not as agile. This could feel weird, since we're used to players being hot or cold across all their attributes.

fix1.PNG

Bumping this because it's awesome.

Posted

Okay, so I have read this completely, and I do understand a massive amount of what this bugfix does, especially if it helps in making the numbers as accurate in~game as probable on a Game by Game basis.

However, I am a tad bit confused on a particular factor regarding the First Fix, and I want to be sure that I know what I am doing before putting this into MIAA Women's Hockey 20I5, primarily my current builds and revisions that I will use as templates for future titles.

I had originally developed MIAA 20I5 with faster paced hockey games in mind, and any that have played the current builds and revisions of Volume 0I and 02 are well aware that this title's gameplay is structured primarily around it.

What I would like to know before applying the First Fix is the following: How dynamically would this affect the players that have Hot and Cold Bonuses, knowing that the players in the MIAA series (as well as another series that I am working on immediately after it; more on that later) were made for faster and far more difficult gameplay; would this bugfix make the game even faster and harder than it already be (that would be very welcome, in the event that it does so), or will it make the game slower to sluggish (not as sluggish as NTSC versions of NHL Hockey '92, I am hoping) and feel more like the original NHL '94?

Although I am one for having accurate numbers that randomize from game to game to make the experience with each team a different one every single time (seriously, this bugfix probably would be majorly lovely for Volume 0I, because the Reading Rockets are capable of taking down Methuen in almost every single game that I have pitted the two against each other in while playing CPU Only Full Game Mode, given the fixed player stats), all that I hope be that this does not damage the player stats and ratings that I have applied to each team, or else I will have to keep this fix out.

Given this thought, I had felt that it would be proper to obtain some clarification on that before using it; I do not want to apply the fix and then it makes the gampleplay slightly slower and harder to handle then how I already have it, just want to play it safe before doing anything that I will have to review in Future~Time.

Posted

The fix itself is a little outdated, smozoma incorporated it into his hack applicator. It's very easy to use and you can choose a few different ways to hack the hot/cold edit lines ratings based on your preference.

The reason I bumped the particular post was the "proof" that smozoma shows, which I found very insightful and worthy of reading.

Posted

Ah, I see.

I will definitely have to do some testings to view which of the Hot and Cold fixes works best in favour of MIAA 20I5, knowing how each fix works will be necessary for future Volumes and revisions.

Given what has been provided by Smozoma here though, I feel that the First Fix would probably work best for playing Regular Season titles, as player conditions usually change at a lot of different points; the Second Fix would more than likely work best for a Post~Season or Tournament ROM, as it seems logical that teams during the Post~Season festivities would stay at the same levels, give or take a few statistical changes nearing the Finals.

You do make a point though, Kingraph, reading up about this truly be worth the time spent; a bugfix such as this truly does appear to be vital for optimization of the experience in NHL '94 and other titles that have this bug present (if there are any that have it, anyway), and definitely is of ample requirement to have implemented to allow the game to feel more complete, if not perfected. (:

Posted

You gotta make an effort to write more concise posts :)

The 1st fix: players will be hot and cold on individual attributes. As such, generally, an individual player will be roughly neutral in total/average hotness/coldness. For example, Player X is a hot skater but cold shooter that game.

The 2nd fix, individual players are either hot or cold across the board. So this tends to make players' hotness/coldness more extreme.

Posted

Sounds clear to me now, that makes absolute sense to me.

Thanks for clearing up that confusion, now I am able to understand how this works in full, truly will help out for future installments later on. (:

  • 8 months later...
Posted

Despite all the flack we give Ron Barr for not knowing who is hot or cold, he DOES report the information he is given correctly! He's just a broadcaster!

What I mean is, when Ron Barr says a person is HOT, that person's overall reported rating is higher than baseline. When he says a person is COLD, the overall reported rating is lower than baseline. Ron didn't know that the displayed ratings didn't represent the actual in-game ratings, he just tells it like he sees it! I guess if you applied fix 1, he'd be right.

  • Like 1
Posted

has Smoz won "bud of the decade," yet?

Posted

Despite all the flack we give Ron Barr for not knowing who is hot or cold, he DOES report the information he is given correctly! He's just a broadcaster!

What I mean is, when Ron Barr says a person is HOT, that person's overall reported rating is higher than baseline. When he says a person is COLD, the overall reported rating is lower than baseline. Ron didn't know that the displayed ratings didn't represent the actual in-game ratings, he just tells it like he sees it! I guess if you applied fix 1, he'd be right.

Hmm are you sure about that? I thought he didn't even match those. You tried it many times?

has Smoz won "bud of the decade," yet?

I been slacking :(

No mo mojo fo ninetyflo

  • Like 1
Posted

Hmm are you sure about that? I thought he didn't even match those. You tried it many times?

At least 50 for 50, different teams, players. Figured that was enough to make that determination. Again, it works on the original misreporting of the random ratings. Once fixed through your hack, the hot/cold does NOT match up.

Posted

in my recent hacks, I have "Jack Edwards" saying that "ratings are based on the last few games," or something like that. he also doesn't mention hot/cold anymore -- he rambles about players practicing, an injury, a player being sick, who will be late decisions....

Posted

Edit Lines ratings follows the formula (0-to-6 rating)x18+bonus

RAM Watch rating (these are the under-the-hood ratings the game actually uses for your players), the formula is (0-to-6 rating)x5+(bonus/3).

Since the game doesn't use decimal numbers, when you divide a number by 3, you have to round down. so 1/3 is 0. 5/3 is 1. -5/3 is -1.

If I understand this correctly, the fact that the bonus is -9 to +8 has some deeper implications. Because you have to divide by 3 and round down, the -9 bonus is the only one that will get you a 3 adjustment. Taking that a step further, there really isn't a range of 18 different bonus attributes, but rather 6 possible adjustments (-3,-2,-1,0,1,2).

Here is a chart that shows what the "under-the-hood" ratings bonus would be for each of the bonus values. I then translate it back into our familiar "0-6" rating scale to make it easier to digest.

uZKTtos.png

The percentages are the chance you have of getting one of those bonuses assuming each bonus has an equal probability of being selected. You'll note that there is more RED here than green (because of that -9), so you are more likely to have a cold player than hot player on any given game. Also, a super-cold player (-9 bonus) is the equivalent of a hot player (+6 -- +8).

Did I get that right? I'm hoping to make Seth's head explode.

post-2578-0-03411900-1461275922_thumb.pn

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...