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 & Reference

  1. NHL 94 SNES This post contains information about the SNES version of NHL 94'. Similar to the thread created on the GENS side, I thought I would try and get this going on the SNES side as well. I have also created a GITHUB repository (NHL 94' SNESVault), that contains a disassembled version of NHL 94' for SNES. The goal is to have the GITHUB repository contain all the documentation and code for the SNES version of NHL 94' Last update Last Update 03.07.2025 SNES 94' Editors SNES 94' Editor [Team / Player editor] @statto nhl94e [NHL 94' Player name & stats editor / Import new Player profile images] @haydenkale SNES 94' Tools…

  2. Started by northstar91,

    Hey everybody! I've been reading around the forums for a while now, impressed by all of the hacks/edits performed on the GENS version (most notably the new Clockwise ROM and new stat creations). With the increased interest on hacking for the SNES side, including attempting to get 30+ teams and to deal with logos, I want to help out as much as possible. That said, the first thing we should do to streamline SNES hacking/editing is to compile all the information we have on the ROM in one location. The eventual goal is to have a complete ROM mapping of NHL '94 for SNES (which I know will be difficult, but it can be done). For now, I have started a Google Spreadsheet to c…

      • Wow
      • Thanks
    • 44 replies
    • 37.5k views
  3. Pretty neat tutorial on the SNES programming language. https://skilldrick.github.io/easy6502/ (updated link, thanks @stewy)

      • Thanks
    • 2 replies
    • 8.2k views
  4. Started by chaos,

    Most (almost all) of this was pulled from the Extracting Stats topic in the General Questions and Discussion forum. A very special thanks to Xstioph for finding these (back in 2007!). A reminder: SNES uses Little Endian format. So any stat that uses 2 offsets (like Attack Zone for example), the most significant byte is the second one, and the least significant byte is the first one. Also, all values stored are in HEX, not Decimal. Example: Attack Zone for Home is located at offsets 9061 and 9062. Lets say 9061 contains 15 (256 in decimal) and 9062 contains 01 (21 in decimal). Normally, in Big Endian (used in Genesis), this is read as 1501 (9061, then 9062), and…

    • 2 replies
    • 7.2k views
  5. Started by smozoma,

    some notes on expanding player names for Statto's editor.. First, here is a document on pointers in SNES. They are waaay more confusing than in the Genesis. http://www.romhacking.net/docs/%5B50%5Dxcalpointers.txt. Here is an example: I thought that there must be a pointer to the start of the All Stars East team. I figured/guessed that the start was at offset 0E2857 in the ROM, where there is a "U" character (value 55), since this character appeared right after all the rink names, except for the last team. So, my starting pointer is E2857. In SNES pointers, you only need the last 4 numbers in an address (don't ask why.. long story..), so you have 2857. Next,…

    • 8 replies
    • 10.5k views
  6. Started by top shelf,

    You can now download: SNES 93 with checksum disabled SNES 93 with checksum disabled and expanded This now means you edit this game in an hex editor without it crashing. However, will add some offsets soon so hopefully and editor can be put together. It may not have the whistles and bells of the other games - but the game play is really great. 93.zip

      • Like
    • 62 replies
    • 35.8k views
  7. Finding Ram Values In this tutorial we will be searching for RAM values, like the ones used to identify how the CPU pulls the goalie. The Home and Away team goalies are stored in the emulators RAM, we will learn how to find those values in RAM by doing a simple search in the emulator. Tools that you need: SNES debug emulator MESEN2 NHL 94' rom in .sfc or .smc format Setup emulator and launch the game: Launch the emulator and load the rom ==>File ==>Open (Optional, keyboard works fine) Setup your joystick under settings ==> Input ==> SNES ==> Port 1 Setup Setup a Regular Season game and navigate to the Sta…

  8. Disable Interference Penalty With Penalties ON Problem: Request to disable Interference penalties as certain individuals despise it, and feel it is called too often in SNES. Solution: This hack allows you to disable the Interference Penalty while still keeping all other penalties ON. Technical Details: This one was simple, we just have to prevent the check to assess goalie interference by skipping. Old Code: Modified Code: Change the BMI (Branch If Minus) to BRA (Branch Always) Download the patch tool to create your own ROM or patch an existing ROM https://github.com/Mhopkinsinc/NHL94SNESVault/releases He…

  9. Get a hex-editor (I recommend HxD, very easy to use and very user friendly) and open NHL'94 rom in it. Center ice logos are located at E03B7 - E0496 offsets, find it with "Goto" option. The center ice logos offset stars with 7B B4 9A 00 3C E5 9A 00 A1 BF etc etc and ends with 88 00 B6 D4 9A 00 C6 FF 88 00. You can also find beginning of the offset with "Find" option, search for 7B B4 9A 00 in Hex-values datatypes. The complete offsets values for center ice logos look like this in HxD: 7B B4 9A 00 3C E5 9A 00 A1 BF 9A 00 F8 E7 9A 00 96 CA 9A 00 6C E7 9A 00 3D FF 8D 00 E0 E6 9A 00 2E AC 9A 00 F6 E4 9A 00 38 FF 84 00 98 E3 9A 00 8…

  10. Problem: There is a bug in the SNES code responsible for calculating the Hot/Cold Bonus for every player attribute (Speed, Agility, etc.). The details can be found here. TLDR; As a result, no attribute receives a negative bonus; instead, the attribute is consistently given the maximum boost (100) if the bonus was negative. Solution: This patch will show the true attribute value (100) in Edit Lines when the bug happens. Patch: Download the patch tool to create your own ROM or patch an existing ROM.

    • 0 replies
    • 1.5k views
  11. Trace Logging In this tutorial we will be taking the RAM values we found in the finding RAM values tutorial , and tracing where the code in the ROM, is writing to that RAM value. Confused? Basically we are tracing whenever the Away teams goalie (CPU) is being pulled because of a powerplay, or in the 3rd period when the CPU is losing by 1 or 2 goals. Setup emulator and launch the game: This builds on the first tutorial, so I assume you already have the MESEN2 emulator installed and know how to launch the rom. Get the game to a position where you are winning by 1 or 2 goals in the third period with close to 1:20 minutes left. Then make a save sta…

  12. Problem: GENS was tracking Body Checks per player in the game as a hidden stat, while the SNES version was not. We would like to record Checks For and Against in the SNES version as a stat so it can be extracted from the save state and used on the website. Technical Details: When a Body Check is recorded in the game, also record who performed the check and the player that was checked, similar to the other Player Stats (G, A, Sh) This can now be extracted from the save state with all the other stats. Plus you can also choose to show the Checks For, in the Player Stats Screen. Patch: Download the patch tool to patch an existing ROM, or create a new one. …

  13. Have you ever wanted to put Ray Bourque as a forward? This hack enables the option in Edit Lines to assign forwards and defensemen to any position Technical Details: The SNES code was performing very specific checks to prevent Forwards and Defense from swapping positions. I wrote new code that displays all forwards and defense in Edit Lines. I combined this code with the Missing Extra Attacker Bug Fix, to allow the swapping of forwards and defense. Patch: Download the patch tool to patch an existing ROM, or create a new one. Hex Version: 1) Replace old hex values with new hex values. (Just use the patch tool, its easier) ==…

  14. Problem: There is a bug in the SNES version that prevents the extra attacker from coming on the ice if he is currently in the lineup. As a result, the extra attacker never comes on the ice when the goalie is pulled or when the other team gets a penalty. Example: Carson is the extra attacker for L.A. If you replace Robitaille with Carson and pull the goalie, you are left with 5 skaters and no Goalie. Solution: On the GENS side, when editing lines, if you insert the extra attacker into your lineup, the replaced player will automatically become the new extra attacker. Example: Carson is the extra attacker for L.A. If you replace Robitaille with Carson, Rob…

  15. Started by McMarkis,

    Problem: There is a bug in the SNES code responsible for calculating the Hot/Cold Bonus for every player attribute (Speed, Agility, etc.). As a result, no attribute receives a negative bonus; instead, the attribute is consistently given the maximum boost (15) if the bonus was negative. An unsigned division error caused the bug, the details can be found here. Solution: Fix the division error if the Boost is negative, preventing the Max Boost from being applied. This limits the Boost from (-3 to +3) per attribute as intended. Technical Details: We convert the negative number to positive for the division, then revert it to negative and apply the bonus. If…

  16. Skip EA + Flying Pucks Intro Screens Problem: It takes forever [24 Seconds] before you get to the "Game Setup" screen on the SNES version of 94. We would like to speed this up similar to the GENS version [4 Seconds]. Solution: Simply skip the code that loads the EA Sports Screen, and the Flying Pucks Screen. This now takes less than 4 seconds to get to the "Game Setup" Screen Technical Details: The code below is executed when the ROM starts up. Code: Change the JSL (Jump Sub-Routine) to NOP (No Operation) to skip the EA Intro Change the JSL (Jump Sub-Routine) to NOP (No Operation) to skip the Flying Pucks Intro N…

      • Haha
      • Like
    • 3 replies
    • 3.5k views
  17. Fix Y Button Bug Allowing Checked Players to Instantly Stand Up Problem: When a player is knocked down, pressing the Y button causes them to get up instantly. This behavior doesn't occur on GENS or the previous version, NHLPA 93. The knocked down player should stay down for 3 seconds as intended. Solution: The Y button performs a 'Hook / Hold' animation when you don't have the puck. The existing code already prevents "Hook/Hold" if your player is "Speed Boosting" To improve this, we add an additional check when the Y button is pressed to determine if the controlled player's animation is in the 'Knocked Down' position. If the player is …

  18. Disable / Reduce frequency of the puck hitting the posts Problem: Reduce the Insane amount of times the puck hits the post in SNES. Solution: There are a few things you can do: Remove the check to see if the puck hits the cross bar or post, this results in a goal when it normally would hit the post. Keep the check but make the cross bar height higher and or the side posts further out. Keep the Crossbar check but skip the posts check. This would probably be the best balance if you still want some posts in the game. Technical Details: The code below is executed when the puck is about to go into the net. As mentioned above there …

  19. Started by McMarkis,

    Disable Penalty Shots Problem: Request for the option to turn off Penalty Shots. Solution: This hack allows you to disable Penalty Shots regardless if Penalties are On or Off. Technical Details: The change is simple but finding it was tricky. We just have to branch to the code that signals no penalty shot. Old Code: 1) Checks if the BreakAwayActive flag is set and if it is, Branches to 9EC068, this code sets up a flag to call a penalty shot. 2) The code at 9EC068 Sets a flag to call a penalty shot by setting the value to #$FFFF New Code: 1) Still checks if the BreakAwayActive flag is set but now it Branches to 9EC06D in…

      • Like
      • Wow
    • 2 replies
    • 2.8k views
  20. Pull Goalie with L+R Trigger Problem: Pausing the game to pull the goalie kills game flow. Solution: This hack allows you to pull / insert the goalie by pressing L+R trigger buttons. Also plays the beep SFX to notify users of the action. Technical Details: Similar to the "Defense Ctrl" code injection method, we have to swap out some of the existing code and insert a jump to new code that we create. This new code will be placed in the free space at the end of the 9E bank. Old Code: Hijack Instruction LDY.B and LDA.W and JSR (Jump) to the new code we wrote. Run new code that checks if the goalie is in net and if L+R are pr…

  21. Started by McMarkis,

    Enable 1 Minute Penalties Problem: The SNES rom crashes when you try to modify penalties to be 1 minute, as the game developers never expected there to be 1 minute penalties. Solution: Modify the penalty length in the ROM and skip the problematic check for 0 or 1 if the penalty length is one minute. Technical Details: Similar to the "Defense Ctrl" code injection method, we have to swap out some of the existing code and insert a jump to new code that we create. This new code will be placed in the free space at the end of the 9E bank. Problem Code: Hijack Instruction before the problem code and run new code (One_Min_Pen) R…

      • Like
    • 3 replies
    • 3.2k views
  22. NHL 94 [SNES] ROM / RAM Hacking School As a tribute to @Tony H and his ROM hacking tutorial on the GENS side, I have created a version of his tutorials for SNES. SNES Tutorials Finding RAM values like the ones used to identify how the CPU pulls the goalie. Trace Logging RAM values to see what code is being run Tools that you need SNES debug emulator MESEN2 NHL 94' rom in .sfc or .smc format

    • 0 replies
    • 2.4k views
  23. Started by McMarkis,

    Real Time Clock [SNES] Note: Full credit to @Brodeur30 & @kingraph for the original GENS hack. Problem: Request for the Real Time Clock feature to be implemented on the SNES. This enables period and penalty durations to correspond with actual real-world time, meaning a 5-minute period is equivalent to 5 real minutes. Modify The Time Clock To Be Real Time: Want to make the time clock use real time instead of 2.5x speed? ROM Offset: (hex)F85B6-F85B7 Change: AA 0A to 44 04 The above change will slow the clock down to real time. Modify The Penalty Clock To Be Real Time: Want to make the penalty clock real time? ROM Offset: (hex)…

    • 0 replies
    • 2.6k views
  24. Pull CPU Goalie earlier when losing [SNES] Problem: Would like the CPU to pull its goalie earlier in the 3rd period when losing by 1 or more goals. Pull CPU Goalie earlier in the 3rd: Want to change how early the CPU pulls its goalie when losing? ROM Offset: (hex)00F5150-00F5151 Change: 3D 00 to 96 00 The above change will pull the goalie with 2:30 remaining in the 3rd period. Pull CPU Goalie when losing by more than 2 goals: You can also modify how many goals the CPU is losing by when the goalie gets pulled. ROM Offset: (hex)000F5148 Change: 03 to 04 The above change will pull the goalie when losing by 1, 2 or 3 goals. B…

    • 0 replies
    • 2.3k views
  25. Enable Hidden "30 Second" Periods I think this hack was originally found in the GENS version but may not have been fully documented. Here is the link to my GENS post, its slightly different. Guess what? Buried deep in the ROM, like a pirate's treasure, there's a sneaky '30 Second' period option playing hide-and-seek! If you're up for a bit of digital treasure hunting and want to unlock this secret in your ROM, just tweak these Hex values Headerless Rom ROM Offset: (hex) 000EACD7 Change: 03 to 04 It's like whispering a secret code to open a hidden chamber! But beware, once you activate it, your game time could disappear faster than a fart in the wind – on…

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.