Asher413

NHL '95 Gen- Season/Division notes

Recommended Posts

Season Schedule notes:

The schedule is found in the following places for NHL '95-98:

'95: 00008DD9-00009720                     '96: 00013559-00013E9F           '97:     000176BB-00017FCE     '98:  00017A9D-000183AD

The schedules for '95, through '98 appear to be in the following format:

1 byte to say the number of games on a day (including the 00's for the all start break), 2 bytes for each game, home team, then away team (Team bytes are in alphabetical order, from 00 for Anaheim to 19 for Winnipeg.  Dallas is in alphabetical order, not the Minnesota slot).  Editing the schedule works in '95 as long as you either: A. End the season on byte 9720, or B. copy the "end of season" code after 9720 to the end of your custom schedule (I haven't tested how much, but it works in my '94-'95 replay rom with about 64 bytes copied at the end).

I copied the schedule from '97 to '95 successfully, adding some empty bytes at the end.  A simulated season of 82 games went off just fine!  I've had mixed results in '96.

Division notes:

The divisions are found in two places, and it appears both need edited to stick (in '95).  At 0009D648 ('95), 00014286 ('96) and 000183B6 ('97) the teams are listed in alphabetical order from the Pacific, Central, Northeast and Atlantic  (In '97 the teams aren't all in alphabetical order- Colorado is tagged on the end of the Pacific, and Phoenix is still at the end as if it was Winnipeg).  At 00091918 ('95), 0001D9D58 ('96), 0001D0443 ('97) you find the # of teams in the Pacific, followed by the teams, the # of teams in the Central followed by the teams, etc. for each division.  In '96 and '97, then, the # of teams in the Western conference, followed by the teams, and # of teams in the Eastern Conference, followed by the teams.

It is was possible to swap team bytes in BOTH places to move teams around in '95.  I could not change the size of the divisions without errors and a lockup.  In '96 the standings screen would lock up with a straight switch (QUE/ANA), but display oddly if you only changed the lists at 0001D9D58.

Other season notes:

In '95: The month names on the "Games Today" screen is text that can be found in the ROM (Just look for "October"), and edited easily.  However, the month on the team's schedule is a graphic, so the text change doesn't impact that.

I have not yet found what impacts the player stats in simulating a season.  I've been able to identify every byte but one within a team/player data (where you can edit players, uniforms, etc- most of which is done in nose).  I am 95% certain it is coded somewhere based on a roster spot- (you can give the player in Ray Bourque's spot all 0 ratings, and he will still put up 100+ points in a season when simulating games), but I'm not sure how or where it is.  I'm fairly confident it is not attached to bytes of player ratings and name.

Where the offense/defense/home/away bytes are found in '92-'94 doesn't feel like it impacts season simulation at a notable level.

 

Edited by Asher413
Continual cleanup to keep first post readable/informative
  • Thanks 4

Share this post


Link to post
Share on other sites

@Asher413 is a beacon of light during these dark times!

Share this post


Link to post
Share on other sites

I have made a small breakthrough today (which will need more exploring):

I was able to create a functional season of 48 games with the 1994-95 schedule, that did NOT require any ending of the season early.  The key was to move the 'empty' days from the end of the season to the front of the season.  I also copied the next few lines of code to the end of the schedule as well, then filled in the gap with FF's.  I'm not sure how much code is needed to move.  This does lead to a longer time period to set up a season, and the game was auto-simulating the 80 or so empty days of lockout when the season is created.

This was disappointing in the fact I can't use the correct dates, and the 15th of the last month *must* be the last day of scheduled games, but a step forward none-the-less.

  • Thanks 2

Share this post


Link to post
Share on other sites

6124550f34a0e157-the-matrix-film-gif-by-

Nice Work!

Share this post


Link to post
Share on other sites

More randomness (I try to capture it for others to use in their works!)

I have not yet found what impacts the player stats in simulating a season.  I've been able to identify every byte but one within a team/player data (where you can edit players, uniforms, etc- most of which is done in nose).  I am 95% certain it is coded somewhere based on a roster spot- (you can give the player in Ray Bourque's spot all 0 ratings, and he will still put up 100+ points in a season when simulating games), but I'm not sure how or where it is.  I'm fairly confident it is not attached to bytes of player ratings and name.  But the classic example for me is Gretzky- I've traded him a lot (as a kid) moved him around now while editing, and there is no way he'd be programmed to get 35 points in a season (or even 10 once!).  You could build a rom where you place the best players in the right spots or catalog the spots, but I'm running into unrealistic numbers (you could have a perfect player on Anaheim and they probably won't break 70 points, or a player on Detroit will always go Fedorov level crazy...)

Where the offense/defense/home/away bytes are found in '92-'94 doesn't feel like it impacts season simulation at a notable level.  In my rom, Quebec, Pittsburgh and Detroit all have 6 offenses, and Detroit tends to score a goal a game more over a season than the other two, while 0 offense teams regularly outscore Quebec.

I'm unsure where to look for the simulation values outside of those places.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

@Asher413  very interesting stuff!

Yeah I have noticed that too on the slots.  I made a super team and simmed when @kingraph was working on the 95 project.  And the team did not fair any better.  And the guys that took over the spots in the line up that were previously held by top players had great stat lines for the season.

Good find too on the home/away stuff.  Are there bytes at all that give extra advantage for home and away like 94 in a reg game?  I don't think anywhere in the game or manual they talk about an advantage in 95.  

  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, segathon said:

Good find too on the home/away stuff.  Are there bytes at all that give extra advantage for home and away like 94 in a reg game?  I don't think anywhere in the game or manual they talk about an advantage in 95.  

The bytes are there, but i'm not sure if they impact anything.

  • Thanks 1

Share this post


Link to post
Share on other sites

Some more random work tonight- in both '95 and '97, there appears to be a pointer to the divisions just before they are listed (in '95 it's at 00091908).  Playing with '95- if I redo the divisions listed at 91918 and also change the pointers, divisions of different sizes seemed to work until playoff seeding. Come playoff seeding, even with 14 teams listed in the two divisions in the west, and they showed in the standings properly, the 13th and 14th teams actually were in the playoffs for the east.  The seeding was correct on the first 12 western teams, and correct if the last two west teams were in the east.  So somewhere in the rom is the coding of 12 west teams, 14 east teams that still needs to be found.  **I only tested one configuration through a season tonight, 7, 7, 7, 5 for division sizes, with the teams in order 00, 01, ...**

 Graphically, the game didn't like divisions of 8 or 5.  (With 8, it kept the team over the Up/Down for conference, and with 5 it was keeping the 6th team from the last division you looked at on the screen)

I did basic testing tonight with '96, the divisions were listed the way I pasted in above.  A similar graphical glitch jumped in when going to the end of a season as I got when I edited the schedule too short.  The game locked up if I worked my way to game 84, but before that, the standings were displaying properly, minus the 5 team division.

  • Like 1
  • Love 1

Share this post


Link to post
Share on other sites

Great Work @Asher413 I was thinking of the pointers, but unable to decipher the details. Im guessing that there will be a pointer for the for each conference to ensure that the seeding is aligned correctly. I tested a few myself and keeps glitching on the standings. So, this is an exciting new development for the standings. It just determining how to expand the conferences so they dont spill over into the East.

Share this post


Link to post
Share on other sites

@Asher413 I believe I found something in the Hex code that might pertain to the teams in the season. Despite them not being the correct values of each team, there is 26 values and found in 2 different spots.

9EC2A, and 88AC2. Each reflect the following :

00 01 02 03 04 05 06 00 00 01 05 03 04 02 00 00 00 03 05 01 04 00 00 00 00 00 00 

They fall eerily close to the divisions.

 

Share this post


Link to post
Share on other sites

Did a test season run with divisions moved and adjusted to the Western and Eastern to have the same amount of teams (13) and the season simulated perfectly. Player stats, off-season awards, etc. All worked. So, we have the ability to play a full season with re-aligned teams, but limited to the 26. Unless, @Asher413 @kingraph or someone finds the holy grail of cracking the season. Just hoping we can to allow this to be fully optimized.

  • Like 1

Share this post


Link to post
Share on other sites

Awesome news!

I had a random theory when driving to work today:  Elitserien '95 may be a key.  They have a season with smaller teams, fewer playoff teams, but in theory the same engine, so the changes between the roms should be fewer.  Here's what I found:

The Elitserien schedule is found at 00006977 (and ends at 00006C46).  It does conform to the format listed in the first post (win!).  This also means the "end of season" routine can be compared between the two (maybe unlocking information).  The first difference in bytes is Elitserien has FF 23 FC 00 00 6D 44 while 'NHL has FF 23 FC 00 00 98 1E.  If those last digits are pointers, both point to nearly identical bytes (For "82" bytes)  There, Elitserien has 36 4E 4E B9 00 08 7D B0 while NHL has 63 90 4E B9 00 08 A5 D8.  That's as far as the first rabbit hole went for me, and I didn't find anything I *really* wanted to be different (08 vs 10).  I figured the thought of using Elitserien was worth capturing for others to potentially use it!  (And I'm hopeful it may help unlock the player stats issue I found when simulating when comparing the team data)

  • Like 2
  • Love 1

Share this post


Link to post
Share on other sites

This is great intell. Also, we should work together on this if you like to crack it a little further. I was actually looking at the original rom to differences compared to the 34 Team Rom. 

There is clues in each version of 95-98. So maybe finding each ones spots might give us a better understanding of what we need to look for. 

Share this post


Link to post
Share on other sites

I am likely a few weeks away from being able to dive into any of this, but it's very exciting.  Question, if you pick one of the all star teams (27-28) or if using the expanded in the 34 team ROM for the season schedule, does it work?  Or is it limited to using the first 26 teams in the ROM?  Assuming you also swapped one of the teams in the league for 27+.

  • Like 1

Share this post


Link to post
Share on other sites

I'll be testing it today. But I think it is limited to the 26 teams, but they would have to be swapped out for any of the teams they are looking to add. But I did try before and it did work in the season. 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.