Sign in to follow this  
Followers 0
smozoma

HOW TO: Fix The Missing 2nd Assist Bug

10 posts in this topic

There is a bug in the game where it cuts out the second assist on a play if the goal scorer and 1st assister pass between each other twice. For example, if player A passes to B, B passes to C, C passes back to B, and B scores, A doesn't get the assist he deserves.

Download this patcher program to add the hack to your own ROMs. Unzip it, and just drag-and-drop your ROMs onto the program in order to patch them. NHL94 only (might work with NHL93, but I haven't tried it)

AssistBugFix1.0.zip

For those interested in the technical side of the hack, here are the details:

================================================================================
SECOND ASSIST BUG FIX
--------------------------------------------------------------------------------
This fixes the bug where the 3rd player on a play does not get an assist if the
other two players pass the puck back and forth.  For example, if player A
passes to player B, B passes to C, C passes back to B, and B scores, A doesn't
get an assist, but he should.

If you open an NHL94 ROM in a hex editor and go to the end, you'll see a bunch 
of "FFFFFF...".  This is empty space in the ROM.  I use this empty space to add
new code to the ROM.  When I want to change the behaviour of the original code,
I overwrite the original code with code that tells the ROM to look at my code
at the end of the ROM (using a "JSR" instruction).  My code then does what I 
want to do (like add 1 check to a player who did a check).  Then at the end of 
my code, I jump back to place after my "JSR" instruction, to keep doing whatever
the game was doing before.

When a fix adds code at the end of the ROM, let "iiiiiiii" be the 
location of the unused code section of the ROM (the "FF" bytes, 
so iiiiiiii is where those FFs start. For example, 000ffac2 for a 
28-team ROM and 001E2092 for a 30-team ROM).  The last number should always be 
even (0,2,4,6,8,A,C,E).

Variables/Registers/Constants used in this hack:
D0 (16-bit) is the index of the last player to touch to the puck
(A0) is the start of the home or away team's Game Stats structure
$0018 is the offset to "current / last person to touch puck" (i.e. goal scorer)
$001A is the offset to "first assist"
$001C is the offset to "second assist"
Use Word operations (.W)


@ 00010188
::Old::
31 68 00 1A 00 1C	-- MOVE.w  $001A(A0),$001C(A0)
::New::
4E B9 ii ii ii ii	-- JSR     $iiiiiiii (I use $000ffb1e)	-- jump to new code at end of ROM
for pasting in hex editor: 4EB9000FFB1E

@ 000F6CE4
::Old::
31 68 00 1A 00 1C	-- MOVE.w  $001A(A0),$001C(A0)
::New::
4E B9 ii ii ii ii	-- JSR     $iiiiiiii (I use $000ffb1e)
for pasting in hex editor: 4EB9000FFB1E

@ iiiiiiii (empty space at end of ROM.  I use $000ffb1e)
B0 68 00 1A	  	-- CMP.W	$001A(A0),D0		-- is new current player EQ 1st assist?
67 00 00 08	  	-- BEQ  	#$0008				-- if EQ skip next instruction
31 68 00 1A 00 1C	-- MOVE.w   $001A(A0),$001C(A0)	-- overwrite 2nd assist with 1st assist
4e 75				-- RTS							-- go back to where we did JSR
for pasting in hex editor: B068001A670000083168001A001C4E75

================================================================================

Edited by smozoma

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

No youtube? Denied!

(at work)

Share this post


Link to post
Share on other sites

lol was trying Clocks steps on embedding a youtube vid and f@#ked it up.

I suppose I could just ' B) ' the post. lol

Share this post


Link to post
Share on other sites

Smoz,

I love the dedication to figuring more stuff out with the game. That 2nd assist bug is always annoying.

-Evan

Share this post


Link to post
Share on other sites
Smoz,

I love the dedication to figuring more stuff out with the game. That 2nd assist bug is always annoying.

-Evan

hacking the game is so addictive :blink:

I updated my post above, with the info for the hack.

A patcher program is attached, too. You just drag-and-drop a ROM onto the executable and then tell it what name to use to save the patched ROM as.

Share this post


Link to post
Share on other sites

Just awesome.

Nice work Smoz.

Share this post


Link to post
Share on other sites

Cool hack Smoz

Tried it in NHL 93. It also works. :D

Your expanation of the hack was a big help

Share this post


Link to post
Share on other sites
Cool hack Smoz

Tried it in NHL 93. It also works. :D

Your expanation of the hack was a big help

Even explanation. (I have been to school – honest)

Share this post


Link to post
Share on other sites
Cool hack Smoz

Tried it in NHL 93. It also works. :D

Your expanation of the hack was a big help

cool stuff, never thought about applying it to the other games. good to know these things transfer well :)

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
Sign in to follow this  
Followers 0

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

    There are no registered users currently online