Jump to content
NHL'94 Forums

HOW TO: Fix The Weight Bug (Gens)


smozoma

Recommended Posts

  • 4 months later...

Hey, I've been doing some work on a NHL 93 rom and had some trouble adding IMPROVED WEIGHT BUG FIX - CHECKING BASED ON WEIGHT AND CHECKING ATTRIBUTE at the end of the rom. The rom would simply not read it.

That said, at offset FF40 i decided to add the checking value $0075 in place of the weight value for the checkee so it was D02B 0075.

Unfortunately this made it all but impossible to check accordingly I decided to swap the values of the checker and checkee. That is 902A 0075 and D02B 0067. That way the checking value of the checker is Multiplied by 8 and weight value of the checkee is multiplied by 5. As such the checking value plays and important role in checking.

After that, I went into NOSE and swapped the weight value and checking value and went into Hexeditor changed the text "Weight" to "Checking" and "Checking" to "Balance"

This change worked quite well. The rom doesn't allow you to check the weight of the players but allows you to tinker with the Checking values to alter the flow of the game.

If anyone has any questions please let me know.

I manually implemented these changes into a '93 ROM I'm creating using 1980's

rosters. So just to clarify, now that in NOSE I have Weight changed to

Checking and Checking changed to Balance - both with rating systems of

0-F (0-15) - the success of a body check is determined by:

Player attempting check: Checking (formerly "Weight") *8

Player receiving check: Balance (formerly "Checking") *5

Hypothetically then:

If player attempting check has a Checking Rating of 4 and Player Receiving Check has a Balance value of 6 - the bodycheck is likely to be successful as 4*8=32 > 6*5=30

This may be an obvious yes answer, but before I proceed with the labour of determining ratings I felt the need to clarify.

(Secondary Question: can I edit the multiplier's in HEX to change it say to Checking *5 instead of Checking *8 if so desired)?

Link to comment
Share on other sites

Interesting.

I had thought about trying the same thing.

I am currently using/testing my WBX rom which just takes weight out of the equation for checking.

I really like it, even prefer it to the wt bug fix.

With your changing wt to checking, does it not make good checkers (High wt.) slower and less nimble?

Also Balance formerly checking only affects CPU likelihood to check I believe?

Anyway, welcome and I will look forward to trying some of your roms.

Link to comment
Share on other sites

Interesting.

I had thought about trying the same thing.

I am currently using/testing my WBX rom which just takes weight out of the equation for checking.

I really like it, even prefer it to the wt bug fix.

With your changing wt to checking, does it not make good checkers (High wt.) slower and less nimble?

Also Balance formerly checking only affects CPU likelihood to check I believe?

Anyway, welcome and I will look forward to trying some of your roms.

Thank you for your response. I literally implemented it last night so not sure it's effect. Was hoping someone had also used ricci's formula since he posted that and could clarify that for me. Sounded to me like he made it so that Balance - formerly checking - was a factor in the success/failure of a check. Will have to test.

I am newly registered to the site, but have been playing NHL'93 on a ROM for a while. I had difficulty registering on the site last year for some reason, but it was easy when i tried last night. I have played with the simple weight bug fix - learned from this site thank you all - for a while now and have used NOSE to edit ROMS

My goal now is to find a way where a player can be good at withstanding a check but not good at making a bodycheck OR vice versa. For example it will be important for Wayne Gretzky to be able to withstand a bodycheck to make him a great offensive player in the game, but it would be nice if that didn't also mean he could knock everyone down as well. Hopefully ricci's formula works - but again I'll have to test it.

Link to comment
Share on other sites

  • 11 months later...

That said, at offset FF40 i decided to add the checking value $0075 in place of the weight value for the checkee so it was D02B 0075.

Unfortunately this made it all but impossible to check accordingly I decided to swap the values of the checker and checkee. That is 902A 0075 and D02B 0067. That way the checking value of the checker is Multiplied by 8 and weight value of the checkee is multiplied by 5. As such the checking value plays and important role in checking.

After that, I went into NOSE and swapped the weight value and checking value and went into Hexeditor changed the text "Weight" to "Checking" and "Checking" to "Balance"

I manually implemented these changes into a '93 ROM I'm creating using 1980's

rosters. So just to clarify, now that in NOSE I have Weight changed to

Checking and Checking changed to Balance - both with rating systems of

0-F (0-15) - the success of a body check is determined by:

Player attempting check: Checking (formerly "Weight") *8

Player receiving check: Balance (formerly "Checking") *5

Hypothetically then:

If player attempting check has a Checking Rating of 4 and Player Receiving Check has a Balance value of 6 - the bodycheck is likely to be successful as 4*8=32 > 6*5=30

This may be an obvious yes answer, but before I proceed with the labour of determining ratings I felt the need to clarify.

(Secondary Question: can I edit the multiplier's in HEX to change it say to Checking *5 instead of Checking *8 if so desired)?

Hey guys, sorry for not replying to this in ages.

While I like the idea that you're doing (checking vs balance), you've made a mistake, in the bolded bits above.

The $0075 and $0067 do not specify the multipliers. They are offsets into player data in RAM that point to a location where the value has already been multiplied. I.e., the instruction "90 2b 00 67 (SUB.B #$0067(A3),D0)" points to "the player's weight x 8". It has already been multiplied by 8 and stored at that location (A3+$0067 bytes). Changing $0067 to $0075 just gives you "the player's checking x 5", which is already multiplied and stored at A3+$0075.

I would not try to change the values that are stored there, because that will mess up other things. Weight affects acceleration. Checking affects AI behaviour.

Multiplying by arbitrary numbers is tricky because you don't want to use the actual multiplication instruction. Instead, you're usually better off using ASR.B (effectively divides a number by 2 and rounds down), ARL.B (doubles a number), or adding numbers extra times.

You could take the value of (wgt*8) when stored in D1 and halve it to (wgt*4) using the "E2 01 (ASR.B #1,D1) instruction.

You could take the value of (chk*5) when stored in D1 and add it to D0 by repeating the instruction "D0 01 (ADD.B D1, D0)" or subtract it from D0 with "90 01 (SUB.B D1,D0)"

Link to comment
Share on other sites

And why exactly does it seem that 92 has it right.

What happened between 92 and 93 that brought on the wt bug.

In my opinion it has something to do with rewriting the code from the scratch, 93 is not just an update of the previous version but in many ways a completely new game. It does not use password system anymore but stores data in the memory, players have their individual stats and you can check them, injuries were added, summaries added, lines editing added and the list goes on.

Link to comment
Share on other sites

Guys, do you prefer the simple hack (weight only) or the improved one (weight+checking)? The improved one definitely looks more sophisticated and makes things more interesting (ligher guys with good checking ability can knock down heavy guys when they suck at checking) but imo the simple one is what was intended by creators of the game. It looks they screw it up with 2A and 2B values with putting them at the wrong place in the code. Something like NHL 96 or 97 and goalies with wrong R/L gloves. What are your thoughts?

Link to comment
Share on other sites

Guys, do you prefer the simple hack (weight only) or the improved one (weight+checking)? The improved one definitely looks more sophisticated and makes things more interesting (ligher guys with good checking ability can knock down heavy guys when they suck at checking) but imo the simple one is what was intended by creators of the game. It looks they screw it up with 2A and 2B values with putting them at the wrong place in the code. Something like NHL 96 or 97 and goalies with wrong R/L gloves. What are your thoughts?

I prefer the weight only hack. Only 1 player has 6 checking, Ray Bourque, and that makes him SO much more valuable than every other defensemen, in my opinion, because he is a 10 weight with a 13.4 checking ability. Not to mention he is stacked in every attribute already.

8 players have 5 checking, 4 forwards and 2 defensemen, and 2 other F that aren't really used:

Eric Lindros F -

Mark Messier F

Esa Tikkanen F

Scott Stevens D

Ulf Samuelsson D

Joel Otto F

---- (not really used)

Mike Eagles F

Mike Foligno F

Lindros is super-heavy anyway (12 weight), so the additional checking just vaults him into the ultimate check monster (13.6). Messier and Tikkanen are much more valuable with the additional checking, and Joel Otto is usually a 3F picked to knock people around. Stevens and Ulf also command a premium for this increased ability.

Tikkanen (9 weight) and Ulf (8 weight) vault into good checkers vs. what they would have been without the checking rating.

On the flip side, a few guys go the other way -- Coffey (9 wgt/2chk), Carson (9 wgt/2chk), Shanahan (10 wgt/2chk) and Ruzicka (10 wgt/2chk) -- where they become pure offense/check resistance.

I'm not against the checking rating (I LOVE the Blitz league), but I find it affects just a few guys at the extreme, and not worth the extra formula.

Link to comment
Share on other sites

I wish I knew how to fix (remove) the B-check :D.

B-check is countered by stickhandling or at least stickhandling works as a resistance against it (needs to be 79 to have wobble effect, maybe lower too but could be ultra rare then, 79 does it rare already). Maybe the penalties off change difference to penalties on change could help solving it out.

I'm not sure if I like the idea of B being taken away, but since Blitz has these hacks and formulas to make the game more realistic, maybe it would work in this league as well. :)

Link to comment
Share on other sites

B-check is countered by stickhandling or at least stickhandling works as a resistance against it (needs to be 79 to have wobble effect, maybe lower too but could be ultra rare then, 79 does it rare already). Maybe the penalties off change difference to penalties on change could help solving it out.

I'm not sure if I like the idea of B being taken away, but since Blitz has these hacks and formulas to make the game more realistic, maybe it would work in this league as well. :)

Are you kidding me??

This game would be terrible without B checks! That's like taking scissors out of rock paper scissors. That is in my opinion as game breaking as not allowing manual goalie. Without B CHECK there would be literally nothing some people can do against others.

And B check isn't completely countered by high stickhandling. You can still B CHECK gretzky, he will just shake some of them off. Luckily the B check is so solid that even when they wobble it you're still in a good position to defend against them again

edit: don't take my post as angry, you're a cool guy depch and I'd like to talk to you sometime :D

I'm just passionate

Edited by TomKabs93
Link to comment
Share on other sites

Are you kidding me??

This game would be terrible without B checks! That's like taking scissors out of rock paper scissors. That is in my opinion as game breaking as not allowing manual goalie. Without B CHECK there would be literally nothing some people can do against others.

And B check isn't completely countered by high stickhandling. You can still B CHECK gretzky, he will just shake some of them off. Luckily the B check is so solid that even when they wobble it you're still in a good position to defend against them again

edit: don't take my post as angry, you're a cool guy depch and I'd like to talk to you sometime :D

I'm just passionate

Yea, Gretzky, Coffey and Lemieux still fall sometimes, like every 1/3 to 1/6 try, so it's not that bad even with the resistance to it, didn't mean complete immunity. And no, I like B-check, I would not like to have it taken away, but in Blitz I might withstand it.. maybe........

Link to comment
Share on other sites

I'd like the idea of B check ALOT more if it also took stickhandling into account for DOING it, not just defending it. So, Gretzky should be the best B checker & most immune to it, unless done by another level 6 guy.

Either way, once you get used to playing w/ a set of rules, it's hard to take one of them out.

Personally, I equate NHL94 to being like playing an arcade version of rock, paper, scissors. If you don't have enough options, it's lame. If you have too many, the game becomes too complicated and less fun.

For me, I grew up playing w/out penalties on since my older brother hated how random they were, and I never learned the art of the B check. It took me over a year to get used to using it/having it done to me, as I had 20 years of playing without it. So, whenever I join a league w/out it, I mash my C button in great glory :)

Link to comment
Share on other sites

If the B-check were removed, we might see an evolution of pokecheck techniques for stealing the puck. Timed and aimed right, you can do some niiice poke checks!

Or maybe just increase the odds of getting a penalty when doing a B-check (which is really just a trip...), so it's a bit more risky.

Link to comment
Share on other sites

  • 11 months later...

I am re-visiting the WBX version of roms now that I am playing lots of 94.

I have been playing a rom with both values set to (2A) effectively eliminating weight from the equation.

I also have penalties turned off so, no b-checks,and obviously c/b checks are unneeded.

You can still very effectively check on the boards and open ice checks work quite a bit.

My favorite thing is the best players are the best players and the most important attribute is no longer weight.

Link to comment
Share on other sites

My favorite thing is the best players are the best players and the most important attribute is no longer weight.

That explains why I can win Blitz three times in a row with the lightest team. Wow! Weight has never been more important...

Link to comment
Share on other sites

  • 3 months later...

When playing the Computer.

How does the Wt. Bug Work?

If I am controlling Roenick, but the computer controlled Ray Bourque checks me.

Will the check be successful?

Is the wt. bug in effect? or would it be like a c/b check?

Link to comment
Share on other sites

  • 1 year later...
On 6/29/2009 at 12:31 AM, smozoma said:

v1.2

Bug Fix:

in the Game Stats screen, if you sorted on the "checks for" stat, it still had a title of "Penalty Minutes". Now says "Checks For".

In case anyone ever wants to do this manually, the location in the ROM is at offset 0099B4

The original hex values are: 5065 6E61 6C74 7920 4D69 6E75 7465 7320 2020 (Penalty Minutes )

Change that to: 2020 2043 6865 636B 7320 466F 7220 2020 2020 ( Checks For )

 

  • Thanks 2
Link to comment
Share on other sites

  • 5 years later...

Hi there, so I realize this is a very old post and this might not get seen but, Could someone explain what the weight bug is? And is it JUST for NHL 94? Or other games too? I could take a few guesses as what the weight bug is but, I really am not sure, could anyone explain it?

And also couldn't someone just use NOSE to make all the players in the game have the same weight so they all can check eachother equally? That might be boring but, IDK. Maybe make all of them close? Instead of say, 1-10 skill, make everyone between 4 and 6 so even the lower ones still have a good chance to check? Or is that not how it works. Please explain lol!

Link to comment
Share on other sites

3 hours ago, NotJustGamesThisIsMyLife said:

Hi there, so I realize this is a very old post and this might not get seen but, Could someone explain what the weight bug is? And is it JUST for NHL 94? Or other games too? I could take a few guesses as what the weight bug is but, I really am not sure, could anyone explain it?

And also couldn't someone just use NOSE to make all the players in the game have the same weight so they all can check eachother equally? That might be boring but, IDK. Maybe make all of them close? Instead of say, 1-10 skill, make everyone between 4 and 6 so even the lower ones still have a good chance to check? Or is that not how it works. Please explain lol!

In NHL'94 on the Genesis (i'm not sure if this exists in 92 or 93. But it's not on SNES 94, or either 95 game), they mixed up the player weights in the checking calculation, so that the lighter a player is than who they are trying to check, the greater the chance of the check succeeding. So light players can check heavy players, instead of the other way around.

Originally I tried simply reversing the player weights (make Lindros light, make Fleury heavy), but since weight also affects acceleration, the game felt weird, with players who should be quick (e.g. Gretzky) accelerating really slowly, while Marty McSorley was now super quick. So I bit the bullet and learned how to hack the game in order to fix the actual code.

If you set all the players to be the same weight, the game is kind of boring because few checks work. You normally need a 16 pound difference in weight (or 2 units of weight in the under-the-hood rating system) for a check to succeed. So if they're all the same weight, checks usually don't work.

This weight bug fix, well, fixes the bug. It re-reverses the weight comparison, so lighter players can check heavy players. So it's the best way to fix the problem.

Link to comment
Share on other sites

That's wild that they're backwards like this! I honestly never had a clue about that. Checking always seemed funky compared to 95 though so it makes sense. Things like this absolutely happened frequently in games back in the day though. Pokemon games, which may be the most romhacked games on the planet if you're not familiar, are famous for the original Red/Blue generation having literally the same reverse effect with Critical hit boosting. Making it higher actually lessened the chance of a critical hit lmao. Just a random example! The price to pay for games not being updatable on console back then. But I'd still take a few issues like this over the constant patches/updates/DLC/Pay2Win of modern games

  • Love 1
Link to comment
Share on other sites

The extra weird thing is that the bug only applies when the human player is controlling the player. It looks kind of like it was test code that got left in by accident and no one made the connection in testing that Fleury shouldn't be able to cream Lindros

Link to comment
Share on other sites

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...