• Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by smozoma

  1. Clint Malarchuk is the goalie who's neck was cut open by a skate in 1989. Since then he's had bad PTSD. (warning: main photo has some blood) (whoops, I thought he was in 94, but actually he retired after the 91-92 season)
  2. HDMI TV's

    Thanks, good to get experiences/opinions on these
  3. HDMI TV's

    What particular complaints did you have about the Framemeister and the Mini Gens HD? If it's lag.. that could actually be a setting on your TV. New TVs with motion smoothing (like 120Hz mode) will add delay, but you can usually disable it -- my TV has a Game Mode that I can enable per-input (e.g., on HDMI input #2).
  4. REFERENCE: NHL'95 34 Team ROM Offsets

    The forum only lets me Like this once, unfortunately
  5. Anyone Make custom Carts here?

    Look for the tool called "NOSE" on these forums. It makes editing rosters and team colours and names super simple (really amazing program). Then you could ask if someone would update the slash screen and team logos for you, since that is trickier.
  6. [Oct, 2018 - Vancouver, BC] - KING of '94 III

    Nice bead player! Here are the rules: It'll minimum 6 games (Maybe minimum 7 or 8)
  7. 1977 World Junior Championships

    Is that Phil Esposito at the start? If there were a clearer version of this video, that'd be meme-able
  8. 1977 World Junior Championships

    Apparently he died last year, Mylnikov
  9. 1977 World Junior Championships

    I think every game for anyone with the Nordiques that year was a horrible game Team GP W L T Pts GF GA PIM Att. Coach Playoff Results Quebec Nordiques 80 12 61 7 31 240 407 2104 15,080 Michel Bergeron Out of Playoffs Player Name GP Min GA GAA W L T Svs Pct EN SO John Tanner 1 60 3 3.00 0 1 0 27 0.900 0 0 Mario Brunetta 6 191 13 4.08 1 2 0 86 0.869 0 0 Ron Tugnutt 35 1978 152 4.61 5 24 3 928 0.859 4 0 Sergei Mylnikov 10 568 47 4.96 1 7 2 283 0.858 1 0 Greg Millen 18 1080 95 5.28 3 14 1 553 0.853 3 0 Scott Gordon 10 597 53 5.33 2 8 0 315 0.856 1 0 Stephane Fiset 6 342 34 5.96 0 5 1 165 0.829 1 0 Except these guys # Player Name Pos. GP G A Pts PIM +/- GP G A Pts PIM Birthplace Age 19 Joe Sakic C 80 39 63 102 27 -40 -- -- -- -- -- BC: Burnaby 20 26 Peter Stastny 1 F 62 24 38 62 24 -45 -- -- -- -- -- Slovakia: Bratislava 32 Michel Goulet 2 L 57 16 29 45 42 -33 -- -- -- -- -- PQ: Peribonka 29
  10. Hamachi relayed connection

    Note that when it comes to Internet, there are two different types of 'fast.' Bandwidth (how much data can be sent in a period of time). Higher is better. Typically measured in megabits-per-second. Latency/ping (how long it takes for a piece of data to go from one place to another). Lower is better. Measured in milliseconds. For downloading files or watching HD video, you want high bandwidth so that you can get LOTS of data in a short period of time. For games, you want low latency so you can get data SOONER. Games like NHL94 use very little data, so the only important thing is latency. If you can get cheap wired internet, even if it has has low bandwidth, that will be better for 94. We have found that wireless connections are always worse than wired connections.
  11. Best Setups for NHL94

    Basically, moving to a new computer will sometimes have problems, so the best OS is the one you already have working I'd expect that cable is better than (or equal to) DSL, unless there it something particular about your location? EDIT: DSL vs cable will depend pretty much entirely on the physical setup of the network in your area. You'd have to try both.
  12. Hamachi relayed connection

    Oh interesting. Maybe we should put that trick into one of our 'playing online' guides. Here's a description:
  13. Hamachi relayed connection

    Don't feel stupid, that's messed up. That sounds like an artificial limitation they've created. Or.. all I can find about "opengate" is this: Are you using wireless internet?
  14. Hamachi relayed connection

    You can always host directly, but you can only play as the home team that way (unless you switch to SNES!). Unfortunately you won't be able to do away games unless your opponent can also set up their router correctly for direct connections.
  15. NHL 2018 Deadline update - Naples

    That should be fixable, as far as I know. I vaguely recall looking into it last year.. either I never actually finished working on it (I definitely remember putting off looking into it for quite a while) or I missed something or I never actually got around to looking at it.... Unless that was the music...
  16. Arda and 94 Bailey Bobble

    Also visible in the March 12 th video clips (Definitely in the "Loyalty/Bandwagon " clip, not sure about the goalie interference clip)
  17. NHL 2018 Deadline update - Naples

    Of the 3, i like the white shoulders. Kind of calls back to the 92-93 unis, as well as the current 3rd-jerseys. The middle one is probably more accurate though?
  18. NHL eSports Article

    A little more on this: It sounds like they've intentionally made it pretty simple to start with, so less can go wrong.
  19. Affordable Sega Genesis HDMI Console?

    In Toronto, I really didn't notice any lag (but then I wasn't used to playing on a CRT anyway...) Vegas, on the other hand, those giant TVs were terrible. They probably didn't enable game mode.
  20. (v1.2 - update June 29 2009) Here is a program that applies the Weight Bug Fix to your ROM. It has a few options: 1. Apply the Weight Bug Fix hack + another hack that makes the game record Checks-For and Checks-Against for each player 2. Apply just the weight bug fix hack, or 3. Apply just the record Checks-For and Checks-Against hack. (There is a side-effect with the "Checks-For and Checks-Against" hack: it overwrites the PIM stat with CkF (checks for), so if you have a stat system like GDL/Blitz, then you need to manually count PIM for each player using the penalty summary.) ------------------------------------------------------------ For those interested, here are my notes on how to do the weight bug fix. There is the 'simple' weight bug fix, and the 'improved weight bug fix' which combines a player's weight and checking attributes to decide whether a check will work. The program above only does the 'improved weight bug fix'. a line of code in my notes might look like this: 52 28 01 1C -- ADDQ.B #1,$011C(A0) -- increment check value 52 28 01 1C is the actual code that you put in the ROM using a hex editor ADDQ.B #1,$011C(A0) is what the hex code translates to in assembly code increment check value is my description of what the code/instruction does If you open an NHL94 ROM in a hex editor and go to the end, you'll see a bunch of "FFFFFF...". This is empty space in the ROM. I use this empty space to add new code to the ROM. When I want to change the behaviour of the original code, I overwrite the original code with code that tells the ROM to look at my code at the end of the ROM (using a "JSR" instruction). My code then does what I want to do (like add 1 check to a player who did a check). Then at the end of my code, I jump back to place after my "JSR" instruction, to keep doing whatever the game was doing before. When a fix adds code at the end of the ROM, let "gggggggg" or "gg:gggg" be the location of the unused code section of the ROM (the "FF" bytes, so gggggggg is where those FFs start. For example, 00fffac2 for a 28-team ROM and 01E2af2 for a 30-team ROM). The last number should always be even (0,2,4,6,8,A,C,E). ================================================================================ SIMPLE WEIGHT BUG FIX - CHECKING BASED ONLY ON WEIGHT -------------------------------------------------------------------------------- This hack doesn't involve using the empty space at the end of the ROM. You just need to change 2 values in the original ROM (switch 2a and 2b). Easiest hack ever! (A2) is the info array of the player getting checked (A3) is the info array of the player trying to check @ 01:3D72 (NHL '94) or 00:FF40 (NHLPA '93) ::Old:: 90 2b 00 67 - SUB.B #$0067(A3),D0 - sub guy checking's (wgt*8) d0 2a 00 67 - ADD.B #$0067(A2),D0 - add guy getting checked (wgt*8) ::New:: 90 2a 00 67 - SUB.B #$0067(A2),D0 - sub guy getting checked (wgt*8) d0 2b 00 67 - ADD.B #$0067(A3),D0 - add guy checking's (wgt*8) ================================================================================ IMPROVED WEIGHT BUG FIX - CHECKING BASED ON WEIGHT AND CHECKING ATTRIBUTE -------------------------------------------------------------------------------- (A2) is the info array of the player getting checked (A3) is the info array of the player trying to check Make sure the bytes at 01:3D70 are E3 40 @ 01:3D72 ::Old:: 90 2b 00 67 -- SUB.B #$0067(A3),D0 -- sub guy checking's (wgt*8) d0 2a 00 67 -- ADD.B #$0067(A2),D0 -- add guy getting checked (wgt*8) ::New:: 4e b9 gggg gggg -- JSR $(empty code) 4e 71 -- NOP @ gg:gggg ::Old:: FF FF FF FF ... ::New:: 3F 01 -- MOVE.W D1,-(A7) -- push d1 90 2a 00 67 -- SUB.B #$0067(A2),D0 -- sub guy getting checked (wgt*8) -- (let x = current value of d0, which is $78 or $F0) 12 2B 00 67 -- MOV.B #$0067(A3),D1 -- d1 = ckr wgt -- d1 = wgt*8 E2 01 -- ASR.B #1,D1 -- d1 /= 2 -- d1 = wgt*4 D0 01 -- ADD.B D1, D0 -- d0 += d1 -- d0 = x + wgt*4 E2 01 -- ASR.B #1,D1 -- d1 /= 2 -- d1 = wgt*2 D0 01 -- ADD.B D1, D0 -- d0 += d1 -- d0 = x + wgt*6 12 2B 00 75 -- MOV.B #$0075(A3),D1 -- d1 = ckr chk -- d1 = chk*5+0.5 (the bonus averages about 0.5) E3 01 -- ASL.B #1,D1 -- d1 *= 2 -- d1 = chk*10+1 D0 01 -- ADD.B D1, D0 -- d0 += d1 -- d0 = x + wgt*6 + chk*10+1 04 00 00 0E -- SUBI.B #$0E, D0 -- d0 -= 14 -- d0 = x + wgt*6 + chk*10+1 - 14 32 1F -- MOVE.W (A7)+,D1 -- pop d1 4e 75 -- RTS You can change the value subtracted with the SUBI.B to make it harder or easier to check, overall. Subtract less to make it easier to check, subtract more to make it harder. I chose 14 because it made the average of the formula equal to the average wgt*8. wgt*8 is the check resistance of the players. ================================================================================ CHECK STATS -------------------------------------------------------------------------------- This replaces the PIM stat in the Player Stats screen with CHK (checks) per player. It also adds a Checks Against stat per player (overwriting the original hidden check stat). (A0) is $C6CE or $CA32, the start of the home or away team stats, respectively. (A2) is the info array of the player getting checked (A3) is the info array of the player giving the check Replace "PIM" text with "CHK" in Player Stats screen. @ 00:993F ::Old:: 50 49 4D -- PIM -- ASCII text "PIM" ::New:: 43 48 4B -- CHK -- ASCII text "CHK" Replace the "increment team and player check count" with a jump to custom code: @ 01:4130 ::Old:: 52 68 00 10 -- ADDQ.W #1,$0010(A0) 42 40 -- CLR.W D0 10 2B 00 66 -- MOVE.b $0066(A3),D0 -- d0 = player index/offset in team D0 C0 -- ADDA.W D0,A0 -- a0 += player index/offset 52 28 01 1C -- ADDQ.B #1,$011C(A0) -- increment check value (we can change the value of A0 because it isn't used later until reset to another value) ::New:: 4e b9 gggg gggg -- JSR $gggggggg 4e 71 4e 71 -- NOP, NOP 4e 71 4e 71 -- NOP, NOP 4e 71 Here is our custom code: @ hh:hhhh ::Old:: FF FF FF FF ... ::New:: 1. Increment team check count 52 68 00 10 -- ADDQ.W #1,$0010(A0) -- inc team check count for the Game Stats -- screen (checks after the whistle count) 2. If the game is halted (whistle blown), branch to skip recording individual checks 08 39 00 00 00 ff c2 ea -- BTST #0,($00FFC2EA) -- if the bit not 0, we will branch 66 00 00 2A -- BNE $002A -- branch to the RTS to skip checks after whistle (NOTE: if you want to also not count checks after the whistle in the Game Stats screen, then move the "1." code below "2." and change "66 00 00 2A" to "66 00 00 2E") 3. Increment check (for) count for individual players 42 40 -- CLR.W D0 10 2B 00 66 -- MOVE.b $0066(A3),D0 -- d0 = player index (offset in team) D0 C0 -- ADDA.W D0,A0 -- a0 += player index 52 28 01 02 -- ADDQ.B #1,$0102(A0) -- increment check value 4. Increment check (against) count for individual players 90 C0 -- SUBA.W D0, A0 -- undo the ADDA.W above 90 FC 03 64 -- SUBA.W #$0364,A0 -- back up A0 to Home Players stat array B7 CA -- CMPA.L a2,a3 -- cmp a3-a2 (cmp checker-checkee) 6E 00 00 06 -- BGT #$0006 -- if a3-a2 is positive, it's a check against -- a home player, so skip next instruction D0 FC 06 C8 -- ADDA.W #$06C8,A0 -- go to Away Players stat array 42 40 -- CLR.W D0 -- set D0 to zero 10 2A 00 66 -- MOV.B #$0066(A2),D0 -- set D0 = player index of checked player D0 C0 -- ADDA.W D0,A0 -- a0 += player index 52 28 01 1C -- ADDQ.B #1,$011C(A0) -- increment check against value 5. return 4e 75 -- RTS Don't write PIM stat -- we're using that memory for check stats! @ 01:2302 ::Old:: D5 32 00 00 -- ADD.B D2,$00(A2,D0) ::New:: 4E 71 4E 71 -- NOP NOP ================================================================================ -- Explanation: In the "Simple" version of the weight bug fix, the 2 lines of code being edited are below (SUB.B and ADD.B instructions). When the game first starts, it takes each player's weight, multiplies it by 8, and stores it somewhere, then it uses that value when doing checking. This code retrieves those values and does a calculation with them to decide if the check succeeds or not. Here, I have Gretzky (weight=4, so 8*4=32) trying to check Muller (weight=9, so 8*9=72) (note: D0 is a register(like a variable) with an initial value of 240) 90 2B 00 67 :: SUB.B $0067(A3),D0 -- D0 = D0-8*(gretz's wgt) -- D0 = 240 - 32 = 208 -- (for mcsorley it would be D0 = 240 - 112 = 128) -- (A3) points to information about Gretzky and $0067 means to get his wgt*8 value D0 2A 00 67 :: ADD.B $0067(A2),D0 -- D0 = D0+8*(muller's wgt) -- D0 = 208 + 72 = 280 -- but since 280 is too big (this is a Byte command, so max 255), it becomes: -- D0 = 208 + 72 = 24 -- (had it been mcsorley trying to check: D0 = 128 + 8*9 = 200) -- (A2) points to information about Muller and $0067 means to get his wgt*8 value After this, it divides the result by 2, then does some stuff I don't understand! The fix just swiches (A2) and (A3) in the instructions. -- I played gr8199kings a few games with a ROM with this fix, and it works. Guys like McSorley and Lemieux are tough to knock down. Guys like Gretzky are easy to knock down, but because low weight makes guys turn and accelerate better, it's very hard to catch him to check him with a big, lumbering, slow guy who can check well. Whether this actually improves the fun factor of the game or not is another matter.. You can download a ROM with the fix in it here
  21. Checking Success and Weight

    One wrinkle to add to the past few messages... If you are playing a ROM using the "Full" Weight Bug Fix (such as in Blitz league, and I assume VHL?), it incorporates the Checking rating into the checking calculations, so it is advantageous to have a high. Here is a description of how that works: (coming up on the 10th anniversary of the weight bug fix...)
  22. Checking Success and Weight

    Geez, how do you ever notice something like that
  23. Checking Success and Weight

    Hm interesting!
  24. Checking Success and Weight

    Without analyzing the code, these are going to be difficult questions to get specific answers for, other than experimental observations ("i played a game of whole team wgt 3 vs whole team wgt 4 and 20% of my open-ice checks succeeded.. 15% when i did (something) to the agilities of the teams")
  25. ROM & RAM Map

    Good points, yes! Not to mention the 32-team ROM. I guess to 'map' those, we'd note the pointer in the game that points to where that data is stored, and the relative positions at that location. For example there is (1) a pointer to (2) the list of team pointers (which has moved in the expanded ROMs), which point to (3) the team data (which moves every time you edit a ROM in NOSE).. One thing that bugs me about that site is that for the utilities it doesn't let you just link to our forum page, you're supposed to upload it to their website (which is probably better for ensuring that tools don't disappear from the internet, but of course we'd prefer people come to the forum and participate!)