smozoma

HOW TO: Fix the C-then-B check bug (Genesis)

Recommended Posts

This is the bug that Plabax discovered that allowed checking with any player in both weight bug ROMs and weight bug fixed ROMs. Someone asked me to look into fixing it (not sure if they want me to say who!) so I took a look and I'm pretty sure this fixes it.

Effect of the bug:

(Assuming a ROM with the normal weight bug) you could check heavy players with light players as usual using the C button, but if you wanted to check a light player with a heavy player, you could do so by checking with C, then, before contact was made, pressing B to switch to another player. The check would then be successful. So using normal C checks and C-B checks, you could check any player, regardless of weight.

Why the bug exists:

Here is the pseudo-code for calculating whether a check succeeds (i.e., this is an english-ish version of the game's code):

checkvalue = 120
If (player is checking/boosting):
        checkvalue = 2 × checkvalue
checkvalue = checkvalue - (8 × weight of checking player)
checkvalue = checkvalue + (8 × weight of checked player)


Then it does some stuff with checkvalue and decides whether or not the check succeeds.

The bug is that, when you press B and switch control away from your player, the game erases the data that tells it that the player is checking, so it thinks he isn't. So when you do a C-B check, you change the base checking value, and then for some reason the effect of the check seems to be reversed.

To fix the bug, simply remove the code that checks "If (player is checking/boosting)", so that it always does the "checkvalue = 2 × checkvalue" calculation (it always thinks the player is checking).

In the ROM, at address 013D6C (NHL ´94) or 00FF52 (NHLPA ´93)

::Change these 4 numbers::
67 00 00 04         - BEQ #$0004 - skip over the "checking = 2 × checkvalue" line of code

::To these 4 numbers::
4E 71 4E 71         - NOP NOP    - do nothing (don´t skip the calculation)

Hopefully there are no unexpected side-effects of this change. I don't know why they had that line of code in there to see if you were checking/boosting. I wonder if now we'll see checks happen in unexpected places. Maybe Mogilny is so fast that he can just run into people and they'll go down?

Note: Original ROM

Note that if you use the original ROM, any edit you make to it will make the game not load. This is because there is code in the game that checks if the game has been tampered with. To fix it, just open and save the ROM with NOSE (which deactivates the code that checks for tampering)

Share this post


Link to post
Share on other sites

smoz, where would we be without you?

Probably doing something lame like spending more time with family or making the world a better place
  • Like 1

Share this post


Link to post
Share on other sites

Probably doing something lame like spending more time with family or making the world a better place

Ah, that s**t's overrated.

This is a really cheap bug. Shud defo be removed from all roms for leagues except classic

Share this post


Link to post
Share on other sites

Does it defo not exist in snes btw?

Trudatman wud b heartbroken if it did

Share this post


Link to post
Share on other sites

I doubt it's in SNES 94. No idea why that line was there to begin with. It's probably in SNES 93.

Share this post


Link to post
Share on other sites

Awesome..!

Share this post


Link to post
Share on other sites

Not sure I fully understand (I read it like 10x), but if it works that is fantastic!!!

Someone please post a ROM that we can use to test out and report any potential side effects.

It's been a while since I've written this, but...THANKS Smozoma!!!

Share this post


Link to post
Share on other sites

Smozoga

Share this post


Link to post
Share on other sites

you are making the world a better place.

Edited by tru

Share this post


Link to post
Share on other sites

Not sure I fully understand (I read it like 10x), but if it works that is fantastic!!!

Someone please post a ROM that we can use to test out and report any potential side effects.

It's been a while since I've written this, but...THANKS Smozoma!!!

no worries, i didn't explain it very well because I don't really understand well how the checking works overall.

Share this post


Link to post
Share on other sites

Ah, that s**t's overrated.

This is a really cheap bug. Shud defo be removed from all roms for leagues except classic

so is this cheat going to be removed from the blitz lg ?

its screwed everything that makes blitz ....Blitz, Nothing more putrid than guys taking advantage iof every cheat or bug they can find ,buncha RATS !!!

Share this post


Link to post
Share on other sites

so is this cheat going to be removed from the blitz lg ?

its screwed everything that makes blitz ....Blitz, Nothing more putrid than guys taking advantage iof every cheat or bug they can find ,buncha RATS !!!

Yeah I agree that it shouldn't be in Blitz since Smoz has found a fix. Blitz should be the league that uses all the improvements like weight bug fix, Y button goalie control, etc and now this.

Share this post


Link to post
Share on other sites

You guys are taking away my pro tactics, now how we gonna go noob squashing :rolleyes:

Share this post


Link to post
Share on other sites

Yeah I agree that it shouldn't be in Blitz since Smoz has found a fix. Blitz should be the league that uses all the improvements like weight bug fix, Y button goalie control, etc and now this.

Geeeeeeezus Bok anything to get your Y button request in!!!!! :)

Share this post


Link to post
Share on other sites

Geeeeeeezus Bok anything to get your Y button request in!!!!! :)

Give him his Y button for gods sake!

I agree with his comment: Blitz should have all the fixes, mods & improvements. Should be the league that uses the "perfect" version of the rom

Share this post


Link to post
Share on other sites
In the ROM, at address 013D6C (NHL ´94) or 00FF52 (NHLPA ´93)

::Change these 4 numbers::
67 00 00 04         - BEQ #$0004 - skip over the "checking = 2 × checkvalue" line of code

::To these 4 numbers::
4E 71 4E 71         - NOP NOP    - do nothing (don´t skip the calculation)

I tried to do this for the classic ROM to post here, but after I make these changes the ROM doesn't open. Anyone else have success?

Share this post


Link to post
Share on other sites

I tried to do this for the classic ROM to post here, but after I make these changes the ROM doesn't open. Anyone else have success?

why would you want to fix this? you wont be able to cheat to win ...cmon now.

Share this post


Link to post
Share on other sites

When I make changes with Hex editor that happens to me sometimes.

I just:

Run it thru NOSE after making changes.

Magically fixes!

Share this post


Link to post
Share on other sites

why would you want to fix this? you wont be able to cheat to win ...cmon now.

Haha, just for you hokkee -- when we play, I won't do any pass shots, cb checks, b-checks, passes off the boards, keg tosses, rebound goals, crease-cuts, 5-hole slappers, slap-dekes, or goalie rams.

One-timer and deke goals only. :red_heart:^_^

Share this post


Link to post
Share on other sites

When I make changes with Hex editor that happens to me sometimes.

I just:

Run it thru NOSE after making changes.

Magically fixes!

It's magic! Thanks for the tip!

Here's the classic ROM for everyone to test out: nhl94_noCB.bin

Share this post


Link to post
Share on other sites

Haha, just for you hokkee -- when we play, I won't do any pass shots, cb checks, b-checks, passes off the boards, keg tosses, rebound goals, crease-cuts, 5-hole slappers, slap-dekes, or goalie rams.

One-timer and deke goals only. :red_heart:^_^

we never play anyways ,and i can score in almost every fashion but i dont use glitches to change the hitting like you and plababy

Edited by hokkeefan

Share this post


Link to post
Share on other sites

we never play anyways ,and i can score in almost every fashion but i dont use glitches to change the hitting like you and plababy

this really bugs me though ,why would anyone use a glitch in the game to gain a huge advantage over the other teams???

It really shows what a person is really like to have used this beat people that play a fair game.

I was told this was known for awhile now and i never heard of this untill about 3 weeks ago.

Edited by hokkeefan

Share this post


Link to post
Share on other sites

this really bugs me though ,why would anyone use a glitch in the game to gain a huge advantage over the other teams???

It really shows what a person is really like to have used this beat people that play a fair game.

I was told this was known for awhile now and i never heard of this untill about 3 weeks ago.

Plabax revealed this sometime during the last GDL. It hasn't been used, to my knowledge, in any other league. And I don't think it's been adopted widely either, as it's still relatively new. I think this Blitz would be the first league that the entire field knows, or has had the opportunity to learn, of this bug.

we never play anyways ,and i can score in almost every fashion but i dont use glitches to change the hitting like you and plababy

Ahhh, you know I'm just kidding.

Share this post


Link to post
Share on other sites

It is yet another amazing factor of NOSE!

I believe this works because when you use a hex editor it screws up the check sum and NOSE then fixes it.

Share this post


Link to post
Share on other sites

It is yet another amazing factor of NOSE!

I believe this works because when you use a hex editor it screws up the check sum and NOSE then fixes it.

NOSE disables the check sum calculation / verification.

Here is how to do it manually: http://forum.nhl94.com/index.php?/topic/109-rom-hacking-ea-genesis-games/?p=89392

In short, go to 0300 in your ROM and write 4E71 4E71 4E71. (4E71 is the "NOP" (No OPeration) command. it means, don't do anything)

Share this post


Link to post
Share on other sites

Is this fixing the problem?

Any side effects to fixing this?

Share this post


Link to post
Share on other sites

Is this fixing the problem?

Any side effects to fixing this?

The only application of this fix has been in the Dream Team Tournament. It seems to work, but it's kind of hard to tell as this ROM has all custom players. No side effects that I've noticed either.

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