smozoma

HOW TO: Fix The Weight Bug (Gens)

Recommended Posts

Kiba    9

CoachMac, did you made WBX-version of NHL93 Gens?

Share this post


Link to post
Share on other sites
NYI80-83    0

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)?

Share this post


Link to post
Share on other sites
CoachMac    99

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.

Share this post


Link to post
Share on other sites
NYI80-83    0

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.

Share this post


Link to post
Share on other sites
smozoma    102

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)"

Share this post


Link to post
Share on other sites
CoachMac    99

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

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

Share this post


Link to post
Share on other sites
DominikJagr    0

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.

Share this post


Link to post
Share on other sites
DominikJagr    0

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?

Share this post


Link to post
Share on other sites
kingraph    138

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.

Share this post


Link to post
Share on other sites
TomKabs93    7

It really doesn't matter what checking system is used, because C checks are 100% inferior to B checks.

B checks work best in every system

Share this post


Link to post
Share on other sites
kingraph    138

It really doesn't matter what checking system is used, because C checks are 100% inferior to B checks.

B checks work best in every system

Not with penalties turned off.

Quit yer yappin' and buy some Internets.

Share this post


Link to post
Share on other sites
TomKabs93    7

hahaha, okay you got me there

I love yapping

Share this post


Link to post
Share on other sites
smozoma    102

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

Share this post


Link to post
Share on other sites
DominikJagr    0

Good analysis, kingraph, thanks!

I prefer the simple-weight only hack as well.

I hope McMikey will discuss the weight bug with Mark Lesser.

Share this post


Link to post
Share on other sites
Depch    22

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

Share this post


Link to post
Share on other sites
TomKabs93    7

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

Share this post


Link to post
Share on other sites
Depch    22

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

Share this post


Link to post
Share on other sites
Brutus    45

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 :)

Share this post


Link to post
Share on other sites
smozoma    102

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.

Share this post


Link to post
Share on other sites
CoachMac    99

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.

Share this post


Link to post
Share on other sites
Premium    18

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

Share this post


Link to post
Share on other sites
CoachMac    99

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?

Share this post


Link to post
Share on other sites
smozoma    102

The computer isn't affected by the weight bug, so the check should work.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now