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: NHL 94' [SNES] ROM / RAM Hacking School - Finding RAM Values

Featured Replies

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:


  1. SNES debug emulator MESEN2
  2. 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 Start Game screen

image.png

Launch the Memory Search:


Now were going to do a simple Memory Search to find the starting Home Goalie Ram value

  • Click Debug ==> Memory Search

image.png


image.png

  • #1 in the screen shot (Compare To) needs to be set to Previous Search Value
  • #2 in the screen shot (Operator) needs to be set to Equal
  • #3 in the screen shot will apply the Search filters to all the Work RAM memory, Go ahead and click the Apply Filter button.
  • Results: You can't tell right now, but the results have filtered out some of the RAM values that have changed, this is good.

Now we are going to change the Goalie to Racicot and perform another search, because we increased the goalie from the first Goalie - Roy to the second Goalie - Racicot, we want to search for RAM values that have increased (Greater than).

image.png

  • #4 in the screen shot (Compare To) needs to be set to Previous Search Value
  • #5 in the screen shot (Operator) needs to be set to Greater than
  • #6 in the screen shot will apply the Search filters to all the Work RAM memory, Go ahead and click the Apply Filter button.
  • #7 in the screen shot shows the results, we have filtered down a lot of values, this is good.

Now we are going to change the Goalie back to Roy and perform another search, because we decreased the goalie from the second Goalie - Racicot back to the first Goalie - Roy, we want to search for RAM values that have decreased (Less than).

image.png

  • #8 in the screen shot (Compare To) needs to be set to Previous Search Value
  • #9 in the screen shot (Operator) needs to be set to Less than
  • #10 in the screen shot will apply the Search filters to all the Work RAM memory, Go ahead and click the Apply Filter button.
  • #11 in the screen shot shows the results; wow, we have filtered down to 2 values. One of these is our Home teams Goalie RAM value. $126D or $17AA

One last trick here is to leave Roy as the starting goalie, making sure you haven't changed it from the last search, and start the game. We can apply another filter during game play for RAM values that haven't changed (Equal).

image.png

  • #12 in the screen shot (Compare To) needs to be set to Previous Search Value
  • #13 in the screen shot (Operator) needs to be set to Equal. 
  • #14 in the screen shot will apply the Search filters to the remaining Work RAM memory, Go ahead and click the Apply Filter button.
  • #15 in the screen shot shows the results. Only one value left $17AA, this is our Home teams Goalie RAM value.

Now you can see the value for $17AA change from 00 (Roy) to 01 (Racicot) or FF (No Goalie)

Homework:


  • Using the same steps above, see if you can find the Away teams RAM value. Just make sure you set your controller to the away team for this exercise.

Edited by McMarkis

This is awesome and I actually understand it lol

  • 2 years later...

Great tutorial! Not touched this stuff for 15 years but thought I'd have a go and was able to follow along and found for SNES NHLPA93 (the 64 team version) 13F2 (home) and 13F4 (away). Was pretty cool to see the value change as scrolling through.

image.jpeg

Although I'm not sure what to do with this new found information!! 🤔 @McMarkis is there any next steps tutorials/examples about how to a apply it in the code?

Is it possible to do anything with 93 versions anyway at the moment? I think I read about someone working on 93 disassembly but I could not find anything (although I have had a quick look at the 92 and Gens 94 code).

Edited by top shelf

  • 1 month later...
  • Author

Thanks @top shelf

Unfortunately I haven’t created any additional tutorials yet, there just hasn’t been a lot of interest in SNES modding.

As for the NHL 93 disassembly, the one you’re probably referring to is for the GENS version of the game.

If you're looking for SNES information, everything currently available is collected here "SNES - Editing the Game Guide".

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

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.