Skip to content
View in the app

A better way to browse. Learn more.

NHL'94 Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

How-to: Use the Hacks in Adam Catalyst’s ROMs (NHL '94)

Featured Replies

6 hours ago, AdamCatalyst said:

@chaos Thanks for this! My understanding is admittedly primitive. 

No, finding that was pretty impressive without looking at the disassembled code!

  • Replies 69
  • Views 55.5k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • AdamCatalyst
    AdamCatalyst

    NHL’s 2023–2025 Team Colours Key Team Colours mapped to the Sega MD/Genesis colour space. I undertook a massive re-colouring exercise in my 2023 v2+ ROMs, using a wholistic approach to devel

  • AdamCatalyst
    AdamCatalyst

    NOSE Add-On for Adam Catalyst ROMs These files can be added to NOSE in order to make editing Adam Catalyst's ROMs easier. Download, and review the included README for instructions on how to insta

  • AdamCatalyst
    AdamCatalyst

    How-to: Stars of the Game layout (v24.1.0 / 2023 12 01) The “Stars of the Game” layout and typesetting has been altered. You can move elements around and make adjustments as follows. Box f

Posted Images

  • Author

oh, no, I have been looking at the '92 source code! I just don't always interpret it correctly. If you had a few minutes, I would greatly appreciate it if you would look at the last lingering issue I posted about in the Wide Display mode code. 

EDIT#1. Actually @chaos, are you sure about @AC1D? I'd previously identified this value as the friction level for the puck on the ice, and don't see any effect on the player, only the puck. I've play tested this a fair amount.

EDIT #2. Also… do you happen to know what the value at @AC05 does? Haven't been able to figure that one out.

Edited by AdamCatalyst
more thoughts.

3 hours ago, AdamCatalyst said:

oh, no, I have been looking at the '92 source code! I just don't always interpret it correctly. If you had a few minutes, I would greatly appreciate it if you would look at the last lingering issue I posted about in the Wide Display mode code. 

EDIT#1. Actually @chaos, are you sure about @AC1D? I'd previously identified this value as the friction level for the puck on the ice, and don't see any effect on the player, only the puck. I've play tested this a fair amount.

EDIT #2. Also… do you happen to know what the value at @AC05 does? Haven't been able to figure that one out.

#1 - Yes, this code:

ROM:0000AC10 7406				 moveq   #6,d2
ROM:0000AC12 082B 0000 0062                      btst    #0,$62(a3)      ; pfdoff - player deceleration
ROM:0000AC18 6700 0004                           beq.w   _off
ROM:0000AC1C 7409                                moveq   #9,d2

is testing for a flag that is set when the player is assigned to receive a pass. EDIT: They will slow down at a slower rate (9 instead of 6). You can look in 94 source code at the asspassrec subroutine.

#2 - So AC05 is a weird one. 

ROM:0000ABFA 7811                                moveq   #$11,d4
ROM:0000ABFC 4A78 D06E                           tst.w   (word_FFD06E).w
ROM:0000AC00 6700 0004                           beq.w   _notoside
ROM:0000AC04 7816                                moveq   #$16,d4

So the $11 is used as the factor with the velocity before adding it to the player's position. In the 92 source, it's looking to see if the player is offsides here, and if so, will make them "appear" to skate quicker to get onside, by using $16 instead of $11. 94 has this test of a variable instead. The problem is, this variable is only set on startup (in the Begin subroutine), and the value stored in it is related to the VDP Control. I've never seen a situation yet when it was set, it always seems to be 0. So it will always skip 0xAC04 instruction.

92 does this whole part differently.

  • Author

This is so odd. While I believe you, I can't understand how your tests could yield such different results than mine! Can you confirm, that when you change 0xAC10 to 01 in '94 it does not increase puck deceleration, or if you change it to FF it does not decrease puck friction, but it does affect player deceleration? I've literally play tested this for a month, and never seen this variable affect anything but puck deceleration behaviour. I am so confused. Furthermore, I have never seen anything but higher values reduce the deceleration affect! Any thoughts on how we could be seeing such different results!?!?

5 minutes ago, AdamCatalyst said:

This is so odd. While I believe you, I can't understand how your tests could yield such different results than mine! Can you confirm, that when you change 0xAC10 to 01 in '94 it does not increase puck deceleration, or if you change it to FF it does not decrease puck friction, but it does affect player deceleration? I've literally play tested this for a month, and never seen this variable affect anything but puck deceleration behaviour. I am so confused. Furthermore, I have never seen anything but higher values reduce the deceleration affect! Any thoughts on how we could be seeing such different results!?!?

I edited my above post. When receiving a pass they will not slow down as much. A higher number means less reduction to velocity.

That value at AC10 is being used as a divisor in a way. It's being used to shift the velocity x number of times (in original case, 6 times). Which would divide the velocity by 64 in the case of 6. That result is then subtracted from the velocity and stored as the new velocity.

So a lower number, the faster the deceleration, since the result before subtracting is higher.

Here's GIFs. First one is vanilla 94.

 

Sundin_Norm.gif

 

Second one is with the value at 0xAC11 changed to 03 (from 06)

Sundin_Slow.gif

Here's a GIF with the value at 0xAC1D set to 03 instead of 09. You are right! The puck slows down. Upon further investigation, it seems that the puck always has the flag pfdoff set to ON. So it will always be using this value on deceleration (when it is on the ice. If there is any Z height to the puck it won't decelerate like this). Players will also use this when decelerating for a pass though.

Puck_Slow.gif

 

Screenshot 2025-01-28 at 1.39.13 PM.png

  • Author
14 minutes ago, chaos said:

Here's a GIF with the value at 0xAC1D set to 03 instead of 09. You are right! The puck slows down. Upon further investigation, it seems that the puck always has the flag pfdoff set to ON. So it will always be using this value on deceleration (when it is on the ice. If there is any Z height to the puck it won't decelerate like this). Players will also use this when decelerating for a pass though.

Puck_Slow.gif

 

Screenshot 2025-01-28 at 1.39.13 PM.png

Hah! So you can see why I defined this as "Puck Friction" when it only occurred with pucks on the ice. Thank-you so much for spelling this all out for me. I hadn't noticed it having any affect on the skating, as the puck effect was so pronounced.

  • 6 months later...
On 1/28/2025 at 11:55 AM, AdamCatalyst said:

So you can see why I defined this as "Puck Friction" when it only occurred with pucks on the ice.

This is going back a ways, but I'm just looking for some validation in my memory. I seem to recall playing one of the Genesis NHL games back in the day and coming across a weird trick where the puck might be shot in the air but if you pause the game, if halved the velocity of the shot. So Al MacInnis could blast it from the point, but after spamming the start button, the puck would just die in mid air by the face off circle and fall straight down.

The thing is that this was obviously on original hardware, and between '92 to '96 I don't recall which game this glitch was in, and I haven't been able to replicate it in emulation.

In contrast to the friction along the ice, there doesn't seem to be any friction acting on the puck when airborne and I don't remember this trick having any effect when the puck was on the ice anyway. Not sure if there is any way to track down what would cause this, nor does it have much practical application anyway, but it was just a curiosity that I was reminded of with this statement.

  • Author

I have stumbled across a way to make the puck have high wind resistance, low ice resistance, effectively giving it air brakes. It may very well have been with this variable.

if I ever get my next ROM out, I re-wrote the formula for gravity, which noticeably changes things. Simply increasing gravity too high will also give the puck “air brakes”. 
 

PM me and I can dig up my notes on gravity. 

Edited by AdamCatalyst

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

Who's Online (See full list)

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.