Hi, I'm Tickenest. You may remember me from such threads as "Classic Fall 2020 GENS-A Season Report" and "The Truth". Well I have decided that I want to try and answer some lingering questions that we have about this game. We don't know exactly what some player attributes mean. We don't know what causes some players to commit more penalties than others. We don't know why our teams take fewer shots in the Down direction than the Up direction, but we shoot a higher percentage in the Down direction. Well, we can't directly answer these questions, but we can do the next best thing, which is to generate a ton of game statistics from CPU simulation and analyze those stats.
My goal is to generate a large master dataset for detailed analysis. I would like to have lots of statistics from lots of CPU simulations of NHL '94 games. Specifically, I'm looking to pair up each of the 26 non-All Star teams against each other for 6 games, 3 home and 3 away. 20 minute periods (for reasons that I'll explain below), Penalties ON, no Offsides, Line Changes AUTO. I'm using the GENS version of the ROM because we can track player ice team and player checks on that version but not the SNES version. If the GENS side proves to be a successful effort, then I could see a SNES version happening down the line.
You see, I've analyzed the player data from many seasons of Classic, but player statistics from Classic or any other league that we run will always have the major flaw that they depend heavily on the human who is controlling the players. By doing CPU vs. CPU simulations, we can at least eliminate that factor.
Now this will take a while because simming all of these games is not a fast process. The good news is that there are two main ways that I can speed up the simulations:
Increase the speed at which RetroArch runs
Get help from the community!
I'm asking for help to make this dataset happen. Specifically, I would be grateful for volunteers who would be willing to help, at least briefly, with the data collection. If you'd like to help, here's how you do it.
This is the spreadsheet that I'm using to track the progress:
NHL '94 Save State Collection Tracker - Google Sheets
I've listed all 26 teams and assign them 3 games against each opponent (including themselves), 78 games per team (at home.) That's 2028 games to simulate. When a game is successfully simmed and submitted to me, I mark it in the spreadsheet with an x.
If you would like to help, here are the exact steps to do so:
1) Setting up RetroArch
Settings -> Frame Throttle -> Maximum Run Speed - set this to 10.0x (this allows the emulator to run in Fast Forward mode up to 10x speed)
Settings -> Input -> Hotkey Binds -> Fast-Forward Toggle - assign this to any key on your keyboard that you're not already using. This is the Fast Forward toggle key. Press it, and the emulator will run as fast as it can, up to 10.0x speed as set above.
I strongly suggest that you make a copy of your nhl94.bin file in the ROMs folder and rename it to nhl94_Stats.bin. This way, any save states that you create won't get confused with your normal nhl94.bin save states.
2) Doing the simulations
Go to the spreadsheet linked above, and pick out a matchup that hasn't been simmed yet. In RA, open the renamed ROM and set up a new game. Use these exact settings:
Demo (CPU vs. CPU)
20 Minute Periods
Home Team - The team listed in BOLD at the top of the column in the spreadsheet.
Away Team - The team that you've chosen to use as the Away Team for the simulation you're going to do. So if you chose the NJD column and NYI as the games you want to sim, make NJD the home team and NYI the away team.
Penalties ON, Offsides OFF
Line Changes Auto
Press Start to get to the matchup screen, and then the pre-game menu. Press your Fast Forward Toggle key to start the speedup, and then press Start to start the game. Now just let it go. We're doing 20 minute periods because I believe that we'll get similar statistics for 3 20-minute period games as we would from 12 5-minute period games, but it's just easier to babysit a longer game. You don't actually have to press anything to get the game to resume between periods. If you wait long enough (and it doesn't take long when Fast Forward is on), the game will resume on its own. The only thing you have to do is capture the save state at the end of the game. Make sure that you take it at the 3 Stars screen or in the menu after the game. Definitely do not do it during a highlight because the statistics get lost during highlights. Once you've got the save state, end the game and start another one if you feel like it.
Please make sure that you set Penalties to ON, no Offsides. Penalty frequency is probably going to be one of the easiest things to study once we have the data.
Also, don't melt your computer on my behalf. You can always slow down the Fast Forward speed if necessary.
3) Submitting results
You can upload save states that you've captured for the project to me directly on Discord. An alternative is to upload them to this Google Drive folder: https://drive.google.com/drive/folders/19uRvJHy8WDw2mqe8RbTLoeW1FWtSz65E?usp=sharing. You'll need to be logged into Google in order to upload that way. I would like it if you follow this naming convention for each save state: nhl94_Stats_ANHBOS1.state3. It helps me keep track of things. So that's home team's 3-letter abbreviation, and then away team's 3-letter abbreviation. The number after "state" does not matter. And if you don't feel like renaming the save states, that's okay, I can still use them. Just please mention which matchups you did and then update the spreadsheet or allow me to do it.
Even if you only bang out a few, it's still a few that I or someone else didn't have to do. Feel free to comment below or ask me questions in Discord. Thanks, and I'll be sure to share some results when I have them!