• Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by kingraph

  1. NHL'95 Expanded ROM Project

    From what I have gathered so far, there doesn't seem to be a pointer table length in the code. I could be wrong, but I haven't come across anything like that in wboy or slapshot's updated ROMs. The tables are just extended, and there aren't any headers before the tables. Having said that, there may be something later in the ROM that I haven't gotten to yet that is a pointer to the pointer table that includes size. But I can safely say that it's NOT near the actual pointer tables.
  2. NHL'95 Expanded ROM Project

    This thread will be my notes and attempt to expand NHL'95 to a 34 team ROM. Before I start, I'd like to thank @wboy, @slapshot67, and @smozoma up front, as just about all of my hacking knowledge has come from them. I will try to give credit where appropriate, but 95% of this will be one of those guys. So my initial thoughts are as follows: Expand the '95 ROM from 2MB to 4MB to create room for more teams, graphics Find the team data and move it to a new spot in the expanded ROM. Create data for 34 teams Change the team pointers to the new data "Decompress" graphics (logos, banners, player cards -- can player cards be color?) Change pointers to the new graphics Make '95 recognize the new teams/graphics, able to select in menu Figure out how the season data works, incorporate into 34 teams. Same with trade player and other unknown '95 stuff ADD: Music, figure out how to make sure the music works for new teams So here goes. I expect this to be a pretty long project, with many bumps along the way, but ultimately fun.
  3. NHL'95 Expanded ROM Project

    I figured as I am going step by step for the first time. Slapshot basically dropped the "answer key" to my exam, lol, so I am currently reverse engineering his ROM to learn everything he did. It's been a great learning experience so far. I definitely feel like he just shaved about 4-6 months of work for me, so I (and everyone) am very grateful for that! I also see why Slapshot said we may not have to expand the ROM -- there seems to be a ton of extra space (like 300k+ bytes) at the end of the original ROM, which should be enough for uncompressed graphics and additional teams. That would be great, as I wouldn't have to worry about that first problem of player cards/names that happens on the expansion.
  4. NHL'95 Expanded ROM Project

    This is what happens to my ROM when I added teams 29, 30 and I go to Team 29. When you add team data and pointers, so you also add pointers for logo/banner/etc for it to work?
  5. NHL'95 Expanded ROM Project

    That's awesome! I didn't find any pointer table length, so I guess as soon as you add teams and change the selectable teams value, it will look for the next pointer? On the version I was working on, the game got messed up when I got to team 29 and 30, so it wasn't as straightforward as adding team data and pointers for me. Unless I messed something up, I'll have to take another look.
  6. NHL'95 Expanded ROM Project

    Also, if you have a moment, can you share the process that you went through to get the two extra teams to pick up in the game? And if I wanted to expand this to 34 would that also be possible? I noticed the selectable teams for playoffs is still 26, which is what I was currently searching for. I'm happy to do the legwork, as well as making all of the graphics editable. Any help/guidance you can provide would likely save me many many hours.
  7. NHL'95 Expanded ROM Project

    Wow, I will check this out, thanks! There are only 6 player cards per team in '95, limited to the starting lineup.
  8. NHL'95 Expanded ROM Project

    I left the pointer table in the same location. I noticed that wboy left the pointer in the same location in '94 because immediately after the pointer table was the old team data, which was moved/erased, leaving plenty of room to expand the pointer table. FYI, he then put the player card pointers, team selection logo pointers, and finally the ice logo pointers. Then more free space from the deleted player data. I'm going to goof around some more with the playoff matchups...I thought I had included ASE/ASW in the 1/8 spot east and west, but I didn't spend too much time on that.
  9. NHL'95 Expanded ROM Project

    Good tip on the pointer table length...I figured there would be something like this, but didn't see any documentation. I'll check into that. I think for now I just increased the selectable number of teams, but I will add teams and see if I can change the length for the ROM to pick up teams 29, 30, etc. Side note - I am pretty sure I found the correct playoff hex values to change, but that's still not working for me either...can't pick ASE/ASW teams (but they do show up as Player 2 option). And I did update the playoff tree to include them here and there.
  10. NHL'95 Expanded ROM Project

    I am first going to try to get this to work for regular play. If I manage to get that working, I'll start to check out Season Mode -- if it's even possible. I am thinking there might be some issue with that, sort of like the "LEAVE OFF!" on user records on wboy's 30 team ROM. But I'm faaaaaaaaar from that point at this time. Team Selection Progress Update Last night I seem to have found the values that limit team selection for Player 1 and Player 2 using the RAM Watch and Trace method (thanks @Tony H and @smozoma!). @085EAB - selectable teams for Player 01 @085EAC - selectable teams for Player 02 Both values are set to 1C (28 in decimal). Changing to a lower value capped the available selected teams. Changing to 1E and the game did try to find 2 more teams (yay!), but were blank. Not sure if I have to add more pointers and team data for that to work? Adding as a "to do" test. The playoff teams were also limited when I changed these values, however no such luck when I increased the value -- they remained capped at 26 teams. So there must be some other cap on the playoffs somewhere that I have to find (either 1A or 19), but I didn't have much luck last night finding anything on playoffs.
  11. The BS factor of 94

    I took data from Blitz 01 - 07, since I had the penalty injury data (aka "Headshot" penalty). I had 1,307 injuries, and 1,144 times there was a goal scored afterwards (163 times the game ended). Of the 1,144 times, 598 (52%) of the time the opponent scored the next goal, 546 (48%) of the time the same team injuring the player scored. That's not as skewed as I thought it would be, and given a team likely gets a PP afterwards, this is nothing significant.
  12. The BS factor of 94

    I agree that home ice/away disadvantage has a factor here. I notice more wacky games in classic than GDL. Also, @Depch thought the crowd meter was key. To his credit, the instruction manual for Genesis says "don't dismiss the crowd meter. The higher the decibal rating, the better the teams play". Not sure what that exactly means, but it was interesting to read that. One theory I Have is that when you inflict an injury on a player, the momentum shifts against you. So while you may be happy that you knocked out Mario for the period, I believe you will be at a momentum disadvantage, even past the ensuing power play, if any. One idea to check the validity of this argument is to look at some game data and see which team scores the next goal after an injury. If I'm right, the team getting injured should score the next goal the majority of the time. I'll see if there is an easy way to run that data later.
  13. The BS factor of 94

    There is no doubt that games have imbalances (and those may shift during the game as well), and the degree of imbalance can get pretty severe sometimes. I think the "relatively impossible" or severe imbalance comes about 15% of the time. Against someone close or even slightly below your skill level, this is a near impossible game to win. What is important to note here, and something I've been meaning to show more video evidence of, is WHAT actually happens when the game is imbalanced. It's not a player rating hot/cold thing. It's how the AI acts, and how terrible your controls over that player become. Things that happen when the game is stacked against you include (from what I remember and immediately notice): * Slapshots and one-timers miss the net, or go into the crowd more frequently than not. I don't care if you're Mario Lemiuex. It's not going in. * When trying to get a loose puck, your AI happens to always be moving away from the puck. So even if you switch to the player, you're immediately fighting against the momentum of your player going the wrong way. Usually too late and your opponent picks up the puck. * Inability to switch to the player closest to the puck or defensemen. * Defensemen skate away into the boards and simply leave the middle of the ice wide open! * When skating up the ice or out of your zone, your own players get in front if you, slowing you down until your opponent's AI swarms you * Come within any opponent and your player loses the puck immediately on a stick tap. * A solid check mysteriously fails at the worst time (opponent one-timer or shot). * Players are moving through mud...delayed response to your inputs. * Pass from a winger to a wide open center goes flying to your defensemen, who is at the red line. Or, one-timer fails. Now, the flip side is true when the momentum is in your favor. Everything clicks and you can score 10 goals. I do think the game fluctuates this "momentum" (how I refer to it) throughout the game, but there is definitely about 10-15% of the time where the vast majority of the game is for/against you and you can't do jack to stop it. Even changing lines, goalies, etc.
  14. NHL'95 Expanded ROM Project

    Thanks! Looks like he found the team data that was covered in my first post, thanks for sharing! Thanks, I'll need it!
  15. NHL'95 Expanded ROM Project

    OK, so my first test was to see what would happen if I moved the team data to an expanded part of the ROM, changed the pointers, and deleted the old team data. Since I already had these locations, this was a fairly simple task. I moved all the team data to offset @240000, and expanded the roster space for each team to have 26 players: The game loaded and as far as I can tell everything is working fine (except for the player card/name issue I noted before...need to start the game or keep switching teams or else game will crash). I'm happy about this, so now you can edit the player names/rosters without space limitation issue. I understand how I can add additional team data, so adding the data for 6 more teams is rather simple. I also won't have an issue expanding the pointer table since the old team data that followed it is new gone, leaving room to add 6 more pointers. My goal now is to find the code, or area of the ROM, that tells the game that there are 28 teams you can select (26 in playoffs) and change that value to 34 (or whatever). @wboy did a "HOW TO: Limit selectable teams" for '94 and '93 which gives great information on how to do this for '94, but unfortunately it seems it's different in '95. There is no "001C 001C" hex value located in the ROM, soooooooooo the hunt begins! Oh, here is the ROM in case anyone wants to test and see if any other bugs are noticed EDIT: I messed up home jersey colors...will post later Okay, test: NHL95_02c_MoveTeamData.bin
  16. Online Etiquette Guide

    NHL’94 Etiquette Guide From time to time different issues come up in regards to sportsmanship, or etiquette in playing NHL’94 online vs. other players. This following is an etiquette guide, which I hope we can all contribute to, in an attempt to minimize conflicts. I’m not an etiquette authority and I’d like to make this a wiki-type of guide. I’m not the first to try this idea – special thanks to the following members who started and contributed to this topic before. Ticketnest: http://forum.nhl94.c...line-etiquette/ (Jan’10) Scribe99: http://forum.nhl94.c...line-etiquette/ (Mar’08) Backhandfloater: http://forum.nhl94.c...line-etiquette/ (Jan’07) I have consolidated their ideas into this guide. Please feel free to comment on any of the items, or on things you want to add or revise. PREGAME Contacting Other Coaches: If you ask the other guy to play, don't ask him how many games you have. Since you're asking to play, you are probably not as busy, so look it up yourself If you ask the other guy to play, don't ask him to host first. Since you're asking to play, you are probably more ready to play than him, so you should be able to get your emulator up and running and hosting first. Initial Set-Up: Player 1 (home team) typically takes responsibility for adjusting the settings (time, penalties, players, etc.) Player 2 can also do this but Player 2 should hesitate just a moment before doing so to give Player 1 a chance to take charge. The player who handles the settings should choose his team first and then move the cursor to his opponent's team. If you want to use the default team (that is, the team your team selector starts on), just move off and back onto the team so that your opponent knows that you've made a decision and aren't just being lazy. Matchups - Hot/Cold: Some players like to scroll through the hot/cold list and make lineup decisions based on that information, so be patient and don’t press start right away. Note: It has been verified that the hot/cold ratings are completely random and not related to whether a player is actually hot/cold (thanks Smozoma) Setting Lines: Player 1 (home team) usually sets his lines first, followed by Player 2. Player 1 can then change his lines again, since he is the home team and has 'last change,' in case he wants to match a D to a winger or something. If you prefer the default lineup, scroll to Start Game (but don’t hit start) to signal your opponent that you are ready. If you started the game before your opponent could set his lines (and you'll know this because he'll pause at the opening faceoff and make the changes), the right thing is to force a quick faceoff (I like lobbing the puck over the boards with the A button). Neither player should try to score immediately, until the correct lines are in place. GAMEPLAY Pausing: In league games, try to make sure you have 15 minutes available so you don’t have to pause in the middle of gameplay. However, life happens, and if you do have to pause, try to do so when you are in control of the puck, in a “neutral” position, or during a break in the action. Explain to your opponent the situation. Pausing when your opponent is in control of the puck or during action is EXTREMELY RUDE. A pause, followed by a flicker up/down of the menu items signals "nice play". Used more frequently in exhibitions, it’s use should be limited in league play – and NEVER while the play is live as it is a disruption to your opponent. A quick pause/unpause after a goal is usually a sign of frustration by your opponent. I can be used to stop the goal siren, and more commonly, used to stop the organ music (Buffalo Sabre Dance is the KING of annoying music). It also kills the crowd noise, but whether this actually has any effect on momentum is undetermined. Replays: In general, avoid excessive replays. Everyone hits the post and everyone gets screwed by cheap goals on occasion. Replays during league games should be extremely limited. If you want to view a replay during the action, try and wait until a moment when you wouldn't disadvantage your opponent. That is, wait for a lull in the action where the puck isn't in danger and a scoring chance isn't imminent. Preferably, wait until you have the puck, though this is not always possible. IT IS EXTREMELY RUDE TO PAUSE THE GAME DURING AN OPPONENT'S RUSH OR WHEN HE HAS THE PUCK IN YOUR ZONE. Calling Timeout: The original purpose of a timeout is to replenish your players’ energy during games with line changes. However, some players believe calling a timeout can change the flow of the game. Doing so is normal, but should only done after a goal is scored (see pausing) IMing during games: It’s common to sign out/make yourself invisible on AIM during a league game to avoid messaging during a game that can cause lag and/or desynchs. Opponents can chat via the netplay window (P2P), server room, or hamachi chat. In general, avoid chatting in the middle of a league game. Some players have full-screens and an IM can be a major disruption. Line Changes (in-game): At the end of a period, wait a moment before hitting start in case your opponent wants to change his lines or look at the stats. The most common reason to change lines between periods is due to a player injury that lasted a period. If you want to do these things, be quick about them. Wait until a stoppage in play to edit your lines or pause the game - don't ruin the flow of the game (see pausing). Please wait until a whistle blows to change your line. You might not realize it but your opponent may be starting his "move" before he's even crossing the blue line. A common practice is to quickly make your line change at the end of a period before intermission. Checking/Celebrating After Whistle: Some coaches like to check players as much as possible after a whistle. This is perfectly acceptable, and can be a fun side-game if both coaches like checking. In the case of a blowout, continuing to check after you score your 7+ goal can be considered taunting, particularly if your opponent doesn’t check back. If you are whistled for a penalty, try and take control of that player after the whistle and skate him over to the penalty box to save time. If you are getting the power play, don't knock down the player who committed the penalty after the whistle if you can help it. Penalty Shot If the goalie knocks the puck off your stick and the ref doesn't whistle the play dead, don't go get it and try for another shot! You got pokechecked, you're done! While that flaw may be "part of the game" to some, good etiquette says to let the time run out. Running up the score: In league play, running up the score is normal. Considering league records, and potential standings implications, a player has the right to score as many goals possible. While the person on the receiving end may not like it, they should just say “gg” and move on. A veteran running up the score on a newbie is uncalled for. We want to make the game fun and enjoyable for everyone and people can be discouraged if they are getting blown out. Pulling the Goalie: Don't pull your goalie unnecessarily – Pulling the goalie in the 3rd period when you’re down by 1 or 2 goals is an acceptable action, but pulling the goalie earlier or when down 3+ goals ruins the fun factor for yourself and your opponent. Man up and put that goalie back in there or politely IM your opponent that you've had enough (does not apply in league games). DON'T pull your goalie in your opponents zone! - If he's set his defense up & you have possession, pausing the game will generally cause him to lose control of his defenders on the restart, giving him no chance of defending your shot. Pull the goalie when you take possession in your own half, or between plays, before a faceoff (see pausing). DON'T pull the goalie when you're winning big - Taunting your opponent by showing you don't even need a goalie on the ice really his the height of unsporting conduct. You don't have to ease up, but don't take the piss either! Bugs (GENS): Goalie Lock: - This occurs when you skate too far with the goalie and make an errant pass (usually into the boards), and then you are unable switch to another player. You become “locked” as the goalie, and to make matters worse, you don’t even have manual goalie – the goalie is also controlled by the CPU. You have no ability to do anything until one of your players receives the puck. The consensus says that this is a part of the game, and you have to deal with it. Pausing, quitting, etc. is NOT acceptable. Be careful and don’t let it happen. When this happens to your opponent, you have the right to score. However, you also have the right to cause a whistle as a sign of sportsmanship. Post Whistle Penalty Shot: At the end of the period (or game!), if a player goes on a breakaway (hear the breakaway “beep”) and the other player checks him down, a penalty shot may result! This is part of the game and you have the right to score. The lesson learned here is to NOT hit a breakaway player after the whistle, and avoid the situation altogether. Goal after the whistle: At the end of a play that would result in an ensuing penalty shot, if you shoot the puck during the stoppage (before the penalty shot), the puck will go in the net and score. Good sportsman on your part to pull your goalie and give up the equalizer goal, however you would have had a penalty shot that you no longer have. I can only hope this never happens on a game-winning or OT goal! Hopefully both players agree to a redo, but at the end of the day if it happens, you may just have to deal with it as part of the game. Crease-cut goal: Not so much a bug, but this is where a player skates with the puck from the corner across the crease and when they start to shoot (usually backhanded) the goalie lays down (“takes a nap”) and it results in an easy goal. For the most part everyone agrees that it’s a cheap way to score, but at the same time also understands that its part of the game. It’s a defendable shot, so the team on defense just needs to recognize and adjust accordingly. POST GAME Say “GG” (Good game) and wait a moment because some guys want to look at the scoring/penalty summary or the stats. We are damn lucky to be playing this ancient game with some good people. Every game is a good game. Certainly beats playing the CPU. So even when your online opponent goose egg'd ya 0-12 say "Good Game."
  17. NHL'95 Expanded ROM Project

    Ahhh, I was trying the trace on the player cards and names, didn't think to look at the trace in the expanded area to see if anything is written there. Thanks for the tip, I will try.
  18. NHL'95 Expanded ROM Project

    EXPANDING ROM ISSUE When I expand the ROM from 2MB to 4MB ( or ANY size), there is a problem that occurs on the startup screen player cards/text that causes the game to freeze if you don't cycle through teams and/or start playing. This is without adding ANY additional code or changes. Just expanding the ROM. After digging around, this person on was experiencing the same problem: And the author found out that: His solution was to not write any code in the 200000 - 203FFF section, leave it 0 and his game worked. However, I tried all of these things and am still having the same issue. The GOOD news is that it doesn't seem to be a fatal problem as long as you pick teams and play. The player cards work in the matchups screens and as far as I can tell the rest of the game works as normal. My ASSUMPTION is that '95 does load some data related to player cards/names into a section of the ROM "at the end", and then has specific instructions to look at those offsets to display the player names/cards. By changing the size of the ROM, the data shifts and screws up all the offsets. So, I will see if I can find anything that references offsets 200000 or greater. Not critical, but worth noting.
  19. AIM or Discord

    Discord: Join our Discord Server -
  20. How to add teams in NOSE?

    You can't add any teams, just change the information on the current teams. Adding a team requires a LOT of work, hacking the ROM.
  21. NHL'95 Expanded ROM Project

    Thanks for the notes smoz, and I didn't even think about music pointers. I'll add it on the list of "to do". I picked 34 as a starting point, but if we can add more I'd do it. I just have no idea what I'm gonna run into.
  22. NHL'95 Expanded ROM Project

    TEAM DATA Now, I have the great fortune of wboy's program - NOSE - to save me lots of time! So using NOSE, it was easy to locate the team data in the game: So the offset for the team data actually starts at 07E2 (All-Stars East). The structure for each team data is as follows: * Header of '0092" - "The first 2 bytes of the team, typically 0092 is the offset + team start offset (e.g. 0092+00005330 for ANH) that takes you to the start of the roster data (also correctly bypassing any free bytes if they exist) - Thanks @wboy * "000C" (not sure what that does) * 2 bytes that are the length of team data * "0052 004C 0050". Again, I'm not sure what those last 6 bytes are, but they are the same for each team, so I don't think it's important at the moment. * Home/Away palettes (32 bytes), followed by 32 for the 3rd and 4th palette (not used as far as I know). * Off/Def/PP/PK/Home Adv/Def Adv (3 bytes) * 1 byte that determines the number of forwards and defensemen * Goalie bytes (2) * Lines info (64 bytes) * Player information. First two bytes are name length, followed by the name, then 8 bytes for ratings * Length of City - City Name - Length of Team Abr - Team Abr - Length of Team Name - Team Name - Length of Stadium Name - Stadium Name. END! After the Stadium Name, the next team offset starts with "0092..." Now, the wonderful thing about NOSE is when you change the player data, the program automatically shifts everything around correctly and adjusts the values so you don't have to do all of this in Hex! Thanks wboy! Team Pointer / Order of Teams Data Since I now have the offsets for all the team data, all I had to do was search for "00000D66" in Hex to find the team data pointers. Lo and behold: The pointer table became pretty clear right after I found the first one. You can see it's a set of 28 pointers that matches up with each team offset from the NOSE image. In fact, the first set of team data (ASE) is located right after the last pointer at offset @07E2. Now, the next step will be to remap that data to a new spot in the ROM, change the pointers, clear out the old team data and see if the ROM still works. SPOILER, I have already done this successfully (yay!), but will post more later.
  23. NHL95 Genesis Update

    You got it Coach! I'm fairly confident I can decompress the graphics (I already have the 1st splash ready to go), but the season information will be unchartered territory. I'm hopeful I can figure out how it works to incorporate 32+ teams, but that may be one of the last feats.
  24. NHL95 Genesis Update

    Cool, will do!
  25. NHL95 Genesis Update

    I actually starting digging into this a little more last week and I think I'll give expanding '95 a real shot. I was already able to find the team data and move it to a new part of an expanded ROM, so that was encouraging. This weekend I'll set up a thread to post my notes and progress, as I have found wboy's notes from years ago extremely valuable, so maybe others will want to pitch in as well.