Jump to content
NHL'94 Forums

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


smozoma

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)

Link to comment
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 2
Link to comment
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

Link to comment
Share on other sites

Awesome..!

Link to comment
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!!!

Link to comment
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.

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
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.

Link to comment
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!!!!! :)

Link to comment
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

Link to comment
Share on other sites

  • 2 weeks later...
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?

Link to comment
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:^_^

Link to comment
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
Link to comment
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
Link to comment
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.

Link to comment
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)

Link to comment
Share on other sites

  • 5 months later...
  • 2 months later...

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.

  • Who's Online   0 Members, 0 Anonymous, 70 Guests (See full list)

    • There are no registered users currently online
×
×
  • Create New...