Game Mechanics
Analyzing the code to see how the game works. Prepare for bugs!
11 topics in this forum
-
Official release date of the 1.0 ROM is January 1st, 2026. Before we get to that, I need to write up how fighting works. It is mostly based on the same method as NHLPA93. How it works in NHLPA93: The game keeps tracks of a value I will call Check Count. Every time a player falls to the ice from a check, a number is added to the Check Count value, regardless of Home or Away teams. It is a total of checks for both teams. In normal cases, a 1 will be added to the value. If the player has a Fight attribute of 0 (which would be an H/F attribute of 0 or 1), 2 will be added to the value. During every player-player contact (does not have to be a …
-
-
- 15 replies
- 2.1k views
- 3 followers
-
-
For those who don't want to watch me ramble for over an hour on my stream (btw stream is here - https://www.twitch.tv/videos/2120586640) Using the source code from 92 (Link - NHL Hockey Source Code), we are now able to find out how things work a lot easier than finding a needle in a haystack like we had done in the past. NHL94 has improved upon 92, but much of the code is the same (with some refinements and added things, like bonuses). The most important thing is we have an idea how the RAM is laid out (basically all the variables for the game). How does checking work in 94? Weight is involved. Where you are on the rink is involved (You're getting ch…
-
-
- 26 replies
- 6.8k views
- 2 followers
-
-
NHL Hockey (NHL92), NHLPA Hockey 93, and NHL94 all share a similar proprietary format when it comes to sprites, frames, and animations. While 92 is a little different in the way the frame data is laid out, 93 and 94 are the same. The format used might actually be similar to other EA Sports games at the time (early Madden games). Note, the labels used in the NHL92 source code will be used in this post. What's a sprite? A sprite is a special object that can be moved around and placed on top of, or below the background tiles and other sprites. The amount of sprites that can be displayed on the screen is limited, depending on the console. Sprites are usually small c…
-
-
- 5 replies
- 7.1k views
- 2 followers
-
-
The Art of Shooting in NHL94 "How the hell did that shot not go on net?" is one of the common phrases to say when playing this game. Well, the 94 RNG gods have screwed with you more times than you can count. Is there a way to always make sure your shot goes where you want it to? Well, no. But the higher the Shot Accuracy (ShA) of the player the more likely you will get a "perfect shot". Aiming There are 9 places you can aim your shot at (this is looking at the top goal, when shooting up): 0 is up on the Dpad, 1 is top right on the Dpad, 2 is right on the Dpad, and go clockwise to get the rest. When you are not pressing a direction, …
-
-
- 20 replies
- 3.7k views
- 1 follower
-
-
Centers, wingers, and defensemen have specific offensive and defensive assignments, depending on where the puck is, and what team is in possession of it. In normal play, the skaters will cycle through these two assignments. But, there are special assignments for certain cases (scoring a goal, winning the finals and holding the cup, receiving a pass, in a faceoff, on a breakaway, etc.). These are temporary assignments, and once complete, will switch the player back to the offense/defense cycle. It should be noted that a joypad controlled skater does not get assignments. assnearest - Player closest to the puck One such assignment is labeled "assnearest", whi…
-
-
- 1 reply
- 1.5k views
- 1 follower
-
-
The game uses "assignments" for the players (and the puck) to tell them what to do and in what situations to do them. For example, there's an assignment to hold the Stanley Cup after winning the playoffs, an assignment to go to the bench, or go to the penalty box, fist pump when you score, stop the puck from flipping, etc. Below is the list of assignments. Some of them are straight forward with their descriptions: (yes, there is an assfight and assfwatch, but unfortunately, they are empty) A majority of these assignments are specific to CPU players. Some of them are used by "joystick" controlled players, as the NHL92 source code likes to call it. I haven't…
-
-
- 5 replies
- 1.9k views
- 1 follower
-
-
Defensemen have 2 unique assignments - assdefd and assdefo. One for defense, one for offense. These are assigned to CPU defensemen who do not have the puck. One is used when their team is on offense, and the other when their team is playing defense. Defensemen are a little different compared to the center and wing positions. On offense, the center and the wingers will skate to imaginary boxed areas, with a position inside randomized, which is reset when the puck crosses some markers (blue lines, offensive goal line). On offense, the defensemen will actually react to the puck location and move inside their imaginary box in a specific fashion. On defense, the wing…
-
-
- 8 replies
- 2.4k views
- 2 followers
-
-
There are 2 assignments where a CPU player will look to check - assnearest (player nearest to the puck but doesn't have it), and assdefd (defensive assignment for defensemen). Once it is determined where they will skate to, the player will go into the check4check routine. In this routine, a calculation is made, using the player's Chk rating, to determine whether or not to look to check. If the calculation is successful, it will do a check to see if there are any players in the vicinity to check. Finally, it will choose a type of check (either a hold check, or a burst check). Formula to determine if there will be a check attempt (for a hold or burst check): St…
-
-
- 1 reply
- 1.6k views
- 2 followers
-
-
In the game, a player can get injured for the game, or injured for the period. But there are some players who can never get a game injury (except if they get hit by a goon, more on that later)! What causes an injury? When the game determines a player is getting knocked down (the check is successful), it will check if there should be an injury. The impact value of player will be used in the calculation. To determine if there will be an injury: (starting at ROM address 0x14428) - Start with $A0 (160 decimal) - RNG (result will be from 0 up to 160 decimal) - Compare the impact of the player to the result (the impact value is calculated when the 2 players are a…
-
-
- 21 replies
- 4.5k views
- 3 followers
-
-
The center has 2 specific player assignments: asscentero and asscenterd. These are used by the CPU to determine what the Center should usually do when their team has the puck, or when their team does not. asscentero - Center on offense When the team has the puck, the Center (when he doesn't have the puck) will have the asscentero assignment. Depending on where the puck is, the Center will skate to different zones on the ice. Take a look at the photo of the rink and its colored zones (in this photo, the team is shooting at the top goal. Everything will be referenced like that): The rink has extra areas marked on it. There is a line going up the center …
-
-
- 10 replies
- 2.5k views
- 1 follower
-
-
The wingers have 2 specific player assignments: asswingo and asswingd. These are used by the CPU to determine what the RW and LW should usually do when their team has the puck, or when their team does not. asswingo - Winger on offense When the team has the puck, the winger (when he doesn't have the puck) will have the asswingo assignment. Depending on where the puck is, the RW and LW will skate to different zones on the ice. Take a look at the photo of the rink and its colored zones (in this photo, the team is shooting at the top goal. Everything will be referenced like that): The rink has extra areas marked on it. There is a line going up the center …
-
-
- 1 reply
- 1.5k views
- 1 follower
-