Jump to content
NHL'94 Forums

Recommended Posts

Posted
6 hours ago, Ziggy Stardust said:

I'd rather have this than GTA VI!

Will this also be available for the SEGA CD version of NHL '94?

And to think that we will probably have this before GTA 6. 😃

Posted

 

 

Banner.png

Fight banner is in and working.

I have to get the possible injury from fighting working next. After that, all the 93 fight code will be working in 94.

I will also need to test out 2P,3P,4P and make sure they work, though I suspect they will be fine.

 After that, there's one fix I would like to apply. In 93, when a fight happens, it actually clears out the Chks For stat for all players (because it uses them for a condition for fighting). I plan to keep those totals, and use a different area to copy the Chks For to, and have the code clear that area instead.

I will also be adding the Fighting attribute to the edit lines screen and Team Roster screens, so they can be viewed. This may take a bit though, might be something to do in the future.

  • Love 1
  • Like 2
  • Wow 1
Posted (edited)
7 hours ago, chaos said:

 

 

Banner.png

Fight banner is in and working.

I have to get the possible injury from fighting working next. After that, all the 93 fight code will be working in 94.

I will also need to test out 2P,3P,4P and make sure they work, though I suspect they will be fine.

 After that, there's one fix I would like to apply. In 93, when a fight happens, it actually clears out the Chks For stat for all players (because it uses them for a condition for fighting). I plan to keep those totals, and use a different area to copy the Chks For to, and have the code clear that area instead.

I will also be adding the Fighting attribute to the edit lines screen and Team Roster screens, so they can be viewed. This may take a bit though, might be something to do in the future.

AWESOME work @chaos!  Nice to see that you're almost at the finish line.  Thanks for sharing this update!

Edited by Sauce
  • Thanks 1
Posted

Now I'm curious to learn which attribute controls a player's tendency to fight in these games. I'm guessing there is no on/off toggle for certain player's to fight given how we could make Wayne's little head bleed.

Posted
On 6/4/2025 at 2:28 PM, Ziggy Stardust said:

Now I'm curious to learn which attribute controls a player's tendency to fight in these games. I'm guessing there is no on/off toggle for certain player's to fight given how we could make Wayne's little head bleed.

In my memories of 92 and 93 it seemed nobody was off limits. Gretzky's head bled from a knockout check though, not a fight.

Posted
12 hours ago, CamKneely2 said:

In my memories of 92 and 93 it seemed nobody was off limits. Gretzky's head bled from a knockout check though, not a fight.

Ah yes, how could I forget. I found it funny how they're talking about taking fighting out in that scene when they're playing NHLPA '93 (hence making Gretzky's head bleed).

A fun little anecdote to pass along. In the past I worked on the NHL 2K series of games, and our sound guy back then, Joel Simmons, is the brother of the guy who animated the blood and players kicking their feet when they got injured in NHLPA '93. That was the work of George Simmons.

  • Like 3
Posted
On 6/3/2025 at 11:57 PM, chaos said:

 

 

Banner.png

Fight banner is in and working.

I have to get the possible injury from fighting working next. After that, all the 93 fight code will be working in 94.

I will also need to test out 2P,3P,4P and make sure they work, though I suspect they will be fine.

 After that, there's one fix I would like to apply. In 93, when a fight happens, it actually clears out the Chks For stat for all players (because it uses them for a condition for fighting). I plan to keep those totals, and use a different area to copy the Chks For to, and have the code clear that area instead.

I will also be adding the Fighting attribute to the edit lines screen and Team Roster screens, so they can be viewed. This may take a bit though, might be something to do in the future.

This is really coming along!  Great work!

Posted

 

Injury is working, along with the toddle getting to the penalty box after injury.

I checked multiplayer, and there are no problems! In a 2 controller H2H game, both fighters will be joypad controlled. Compatible with 3 and 4 player too.

Next I will work on adding Fighting attribute to be displayed with the rest of the attributes.

 

 

  • Love 2
  • Thanks 1
Posted

Good lord that' a lot of blood. Then the guy skates right over his bleeding face! What have you done to my G-rated game!?!

  • Haha 3
Posted (edited)
1 hour ago, chaos said:

Injury is working, along with the toddle getting to the penalty box after injury.

I checked multiplayer, and there are no problems! In a 2 controller H2H game, both fighters will be joypad controlled. Compatible with 3 and 4 player too.

Next I will work on adding Fighting attribute to be displayed with the rest of the attributes.

 

 

Hand this man the Bud of the Year award!

Said it plenty of times before... great work @chaos!

Edited by Sauce
  • Love 3
Posted

Christmas is coming early for all of us!

Now I wonder how difficult it will be to trigger a fight. I remember getting a fight to break out in the original NHL Hockey was quite easy and frequent, and they toned it down quite a bit with NHLPA '93.

Posted

Oh, speaking as @Ziggy Stardust just did, of NHL Hockey vs NHLPA '93, I just remembered a thing. 

This idea is to keep the Fighting and Fighting* penalties intact eh? I was reminded when attempting to make a game with "Blade of Steel" style fighting penalties, [Two minutes for LOSING!] that the rule didn't exist yet in '92. Curious if the game logic is going to support the separation or if that might be a casualty of the conversion.

@Drezz You say what we were all thinking.

  • Like 1
Posted
On 6/14/2025 at 7:53 PM, von Ozbourne said:

Oh, speaking as @Ziggy Stardust just did, of NHL Hockey vs NHLPA '93, I just remembered a thing. 

This idea is to keep the Fighting and Fighting* penalties intact eh? I was reminded when attempting to make a game with "Blade of Steel" style fighting penalties, [Two minutes for LOSING!] that the rule didn't exist yet in '92. Curious if the game logic is going to support the separation or if that might be a casualty of the conversion.

@Drezz You say what we were all thinking.

The penalties were already in 94, so there was no change done there. Fighting* is the winning fighter, Fighting is for the one who lost

  • 2 weeks later...
Posted

This is so awesome I can't wait

  • 4 weeks later...
Posted (edited)

I've been thinking about this a lot lately, and I am going to have to report this thread for witchcraft.

Edited by AdamCatalyst
  • Haha 1
Posted

Just to give an update,

I stepped away from this for a bit just to take a break. I will be back at it this week. Looking into adding the Fighting attribute to the Team Roster and Edit Lines screens.

  • Love 1
  • Like 1
Posted

Fighting.png

 

So I got fighting to show up on the edit lines/team rosters screens. It was actually much easier than I thought, once I figured out how the display function worked. The data containing the strings for the headers (Status, Overall, Agl, etc) actually contains other data pertaining to what attribute to look at in the ROM data. The function will find the team's data in the ROM, move to the player data, shuffle past the name, and will find the attribute linked to that string. It will then take it, do some math depending on the type of data (Status, Energy, Weight, Fighting, Handedness, Overall, or a regular attribute), and display it.

This is also where the check for "if it's 0 make it 25" is. If the calculated value is below 50, it will take half the calculated value, and add 25 to it before it displays it.

So note how the Fight numbers are low here compared to 93. That's the next thing to figure out, but according to how 94 is doing the math for Fighting, it works out here. It will take the value in the ROM (0-15, though no one is above a 13), knock off the Handedness (round down if its an odd number) then it multiplies by 100, and divides by 99, getting rid of the remainder (so in Ledyard's case, we have 12 * 100 / 99 = 12). Since 12 is lower than 50, it will take half of that and add it to 25. 25 + 6=31.

The string data in the original ROM starts at 0x193F8. 

To show you an example on how the attribute pointer is stored in the string data, I'll look at Agility.

dc.w $12
dc.b $5B ; [
dc.b $20
dc.b $20
dc.b $20
dc.b $41 ; A
dc.b $67 ; g
dc.b $69 ; i
dc.b $6C ; l
dc.b $69 ; i
dc.b $74 ; t
dc.b $79 ; y
dc.b $20
dc.b $20
dc.b $20
dc.b $20                                
dc.b $5D ; ]
dc.l $1000000A

The word size of data before the string (0012 in this case) tell the code how long the string is following this (it includes the string length bytes as well). So we have $12 = 18 bytes. Including the 00 12, the string will end with dc.b $5D. The string is stored as ASCII code, and you'll notice the brackets here, which the code will change into left and right arrows when it displays on the screen.

After the string, there is a long word size of data (4 bytes) - $10 00 00 0A. This is what we are interested in. We want to look at the upper word, as this is what is used ($1000). The bottom word ($000A) will be set differently depending on the type of attribute (regular attribute like Agl here will have $000A).

 When the code scrolls through to the player to be displayed, and it gets to the player needed, the pointer will be 1 byte after the end of the attribute list.

Let's look at how the attributes are stored in ROM:

Player Data Structure in ROM:

00 XX PLAYER NAME YY 12 34 56 78 9A BC DE

00 XX = Player name length + 2 (the two bytes containing the length of the name) in hex 

Note: The 2 bytes above are swapped in SNES version (because of endianness)

Player Name = Straight-forward
YY = Jersey # (in decimal)

1 = Weight
2 = Agility

3 = Speed
4 = Off Awareness

5 = Def Awareness
6 = Shot Power

7 = Checking
8 = Handedness/Fighting (Odd = Right, Even = Left)

9 = Stick Handling
A = Shot Accuracy

B = Endurance
C = Pass/Shot Bias

D = Passing
E = Aggression

So right now we are 1 byte after the Passing/Aggression byte (which would be the first byte in the next player's name length) after looping through to the player to display. The code will compensate by adding -1 to the pointer offset. 

If we look at our pointer in the Agility data ($1000) we need to find what bit is set, as this is used to compare.

Data -	0  0  0  1   0  0  0  0  0  0  0  0  0  0  0  0
Bit  - 15 14 13 12  11 10  9  8  7  6  5  4  3  2  1  0

Bit 12 is set for Agility. 

Now if you look above at the ROM data for the player, you will see each byte contains 2 attributes. Wgt/Agility is byte 6 from the end (since we add -1 to the offset, Pass/Agr is byte 0).

We take our bit 12, divide by 2 (leave the remainder if applicable) to get 6. We add a -6 offset to grab the whole byte from the attribute data. Then, since we are using the lower nibble, the code will mask off the Weight, leaving the Agility nibble (if we were looking at weight, it checks if the bit is odd, and will shift accordingly).

In the case of Overall:

There is a table used that has weights for the attribute list. This is located at $FAB1C for players, and $FAB2C for goalies.

 

If you want to add the Fighting display into a ROM:

  • Copy the attribute header strings from NHLPA93 (starting at $156C0, ending at $15837) to a free location in ROM.
  • Update the pointers at $84DD and $8BD9 (original pointer is 01 93 F8) to the new starting location.
  • If you want to show Fighting attribute on the Shootout mode edit screens, there are 2 more pointers that need to be updated, but you will need to calculate them. It will be new starting location + $16. Update the pointers at $FC85F and $FC891 (original pointer 01 94 0E)

Once I figure out how to display the Fighting attribute correctly, I'll update this post.

  • Love 2
Posted

Screenshot 2025-07-29 192143.png

OK, got the display to be correct now. 93 takes the attribute, multiplies by 100, and divides by $F (15 decimal).

In 94, instead of $F, it sets the divisor to $64 (100 decimal). It will multiply the attribute by 16, add hot/cold, then multiply by 100 before dividing.

As I described in post above, it ends up subtracting 1 from the divisor when calculating the Fighting attribute display (I think this code was never changed from 93). So in 93 it divides fighting by $E (14 decimal) (subtracts 1 because removal of Hand bit, $E is the highest Fighting can be). It still subtracts 1 in 94, but this ends up dividing by 99 decimal instead.

All 93 attributes are on the 0-F scale.

In 94, they are on 0-6 scale, except for Fighting (and Weight, but that's done the same in both games).

So I can't just change where it sets $64 as the divisor. But instead, I can change the 2 bytes used for the subtracting of 1, and use $E for the fighting divisor.

That's located at $8E3E:

0x8E3E:

***d1 is the register used as the divisor, set to $64 (100 dec) earlier in 94 code, or $F in the 93 code.

Original code - 53 41 (subq #1,d1) 

Change to - 72 0E (moveq #$E,d1)

 

OK, so now all the stuff involved with fighting is in the ROM. Now the last thing to do is make some changes to determine how to start a fight.

  • Love 1
  • Wow 1
Posted

Okay, first, this is all very interesting and I look forward to the day we might be fisticuffing and one-timering in the same game.

Second, you bring up something that I am curious about now. 

You mention the ratings scales in '93 [0-F] and '94 [0-6] have their own math, but also that you are making some adjustments to how those maths get mathed.

Hypothetically speaking, would this make it possible to copy the ratings equations for all stats from '93 into '94 so the two would be transferable?

Posted
3 hours ago, von Ozbourne said:

Okay, first, this is all very interesting and I look forward to the day we might be fisticuffing and one-timering in the same game.

Second, you bring up something that I am curious about now. 

You mention the ratings scales in '93 [0-F] and '94 [0-6] have their own math, but also that you are making some adjustments to how those maths get mathed.

Hypothetically speaking, would this make it possible to copy the ratings equations for all stats from '93 into '94 so the two would be transferable?

OK, let me be a little bit clearer. The only math I'm changing here is the display for the fighting attribute. All the display math was changed from 93 to 94, and the fighting attribute display math was not fixed. This math has nothing to do with what the game uses for logic, it's just used to display the attribute on a 25-99 scale.

Since 94 added hot/cold, team, and PP/PK bonuses, they had to change the attributes so that the bonuses would not affect as much as whole points. So they made a 0-6 scale, where the logic will multiply that value by 5, then add the bonuses, for a max of 30 decimal.

There's a lot of spots in the player logic that use the same math as 93, but they will double the starting value of the math to work with the 0-30 scale instead of 0-15 scale. Other spots are completely changed to work with the new scale. 

There's a patch to use 0-15 scale attribute ratings, though I don't know exactly how smoz changes things to work with 0-15. The bonuses would need to be revamped, or he's multiplying by 2 instead of 5 in the logic.

The display math and the logic math for attributes are 2 different things.

 

  • Thanks 1
Posted

Has anyone let "Coach" know?

  • 2 weeks later...
Posted

At this point EA Sports should just hire y'all. All the stuff done to nhl 94 on here is more interesting than the stuff they push out on a yearly basis.

  • Love 2
Posted

Adding fighting to NHL ’94 on the Genesis could bring a new level of realism and excitement. Would love to see how it plays out

Posted
On 7/31/2025 at 10:27 AM, jer_33 said:

Has anyone let "Coach" know?

Thanks for the shout out Jer!!

I miss you guys.  Things are going great still coaching HS Football (Year 35) been playing and making College Football roms of Tecmo Super Bowl.

This might reignite my hockey bug.

I remember not that long ago people said this was impossible.

Good job, Chaos!!

  • Love 2
  • Like 1
Posted
On 8/15/2025 at 10:26 AM, CoachMac said:

Thanks for the shout out Jer!!

I miss you guys.  Things are going great still coaching HS Football (Year 35) been playing and making College Football roms of Tecmo Super Bowl.

This might reignite my hockey bug.

I remember not that long ago people said this was impossible.

Good job, Chaos!!

Coach!!!! I've been messaging you... where are you? Come back!!

Posted
4 hours ago, IAmFleury'sHipCheck said:

Coach!!!! I've been messaging you... where are you? Come back!!

I would love to come back, but of course, I'm living in a cabin in the mountains and have no internet.
Only access is at work.

I miss you guys.  Almost 10 years since original King.

We'll see what happens.  I'm making TSB College Football roms and playing lots of solitaire of those roms and my Original 6 roms.

I'm not getting your messages.

You still in Chicago?

Posted
24 minutes ago, CoachMac said:

I would love to come back, but of course, I'm living in a cabin in the mountains and have no internet.
Only access is at work.

I miss you guys.  Almost 10 years since original King.

We'll see what happens.  I'm making TSB College Football roms and playing lots of solitaire of those roms and my Original 6 roms.

I'm not getting your messages.

You still in Chicago?

Coach! So great to hear back from you! I had reached out in the direct messages here last year and sent another msg on June 16th. I pasted one of them below but check your mail. If I know that you'll be in here checking messages, I'll make sure that I stay more connected here.  
Love that your still playing your original 6 roms and that's really cool your making those TSB College Fb roms.
I'm still in Chicago. I live downtown near the Sears Tower.
Some days I feel like I could go for an Endurance Ride to Nevada just to get away... but then I immediately realize that I would perish even before making it to the end of my street. haha
Miss you a lot man. Please send a response if you see that msg below in your inbox. Hope all is well with you
image.png

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