Everything posted by chaos
- Goalie fights!
-
How-to: Move & Resize the Net Graphic (NHL '94)
If you make the changes to the goal frame data before applying the fighting patch on a custom ROM, it would maintain the changes. All of the associated data with sprites and frames is organized like so in the regular ROM: $5B1C-$76B2 - SPAList - Sprite Animation List: A table for each animation listing frames and the time to display the frame. $5DE7A - Offset List: 1st long word (4 bytes long) - Offset to default sprite tile palette (128 bytes long) before frame data (default ROM has this offset as $4082A) 2nd long word (4 bytes long) - Offset to frame data (default ROM has this offset as $408AA) $5DE82 (2 byes long) - # of Sprite Tiles (default set to $2041 tiles, which means the Sprite Tiles data is $40820 in size, since $2041 * 32 bytes/tile) Sprite Tiles ($5DE84-$9E724): Exactly what it says. Sprites can be 1x1 tiles up to 4x4 (only 4x4 sprite is the glass breaking if I remember correctly). Also included in these are the goal tiles, the arrows, the stars. Frame Sprite Data Offsets ($9E724-$9EDC2): This is a table of offsets. Each frame has an offset to its frame data. For example, frame 1, which is "Skating with the puck" frame, has an offset of $69E. $9E724+$69E = $9EDC2, which would be the where the frame data starts for frame 1. We can tell how many sprites each frame has by subtracting this offset from the next one in the list. In this example, the next offset is $6A6. $696-$69E = 8 bytes, which means there is 1 sprite in the frame (see next section). There are 845 frames in NHL94. Sprite Data ($9EDC2-A44C9): $5708 long (There are 2,785 total sprites) This is the data you are editing as it will point to the sprite tiles and position them in the frame. Offset 0-1: X Global. The X position of the upper left corner of the sprite in the frame. This is offset from the 0,0 point of the frame. Offset 2-3: Y Global. Same as above, in Y. Offset 4-5: Tile offset. Confusing, see link. Offset 6 : Palette stuff and default H/V flip. Offset 7 : Sizetab byte (# of tiles in the sprite) Hotlist table ($A44CA-$A4B54): 2 bytes for each frame, 1 for X and 1 for Y. Offset from the 0,0 point of the frame, it is used for collision purposes (like the player's stick which is a separate collision point from their body). There are 16 bytes missing from the end of this table. These are because the last 8 frames are direction arrows and stars for the 3rd and 4th player when 4-way is used. They don't have collision, so they were omitted (there's only data for 837 frames). Since this data is so tightly packed and one after another, the SPAList, Frame Sprite Data offsets, Sprite Data, and Hotlist table get moved to new free space, since data needs to be added to all those tables for the fight frames. The sprite tiles stay put (for now), and I just add the fight sprite tiles to the end of it, overwriting some of the frame sprite data offset table. I was going to just pad the rest of it with FF, probably should. I also update the Offset List and the # of Sprite Tiles. So even though the data you are looking for is still there, it is not being used. Check out my post where I dissect a frame and reassemble it for more info - https://forum.nhl94.com/index.php?/topic/37002-sprites-frames-and-animations/ I challenge you to follow the procedure to find the new location of the sprite data for the goal! The top goal is frame # 405, bottom goal is frame # 406. Frame Sprite Data Offset table starts at $202830.
-
How-to: Move & Resize the Net Graphic (NHL '94)
The fighting code has to move the frame data to new space since it is adding new frames. The tile locations are not changed. What you are editing here is the offset of the sprite tile in the frame, relative to the position the code labels as the center of that frame. For example, the player's frame uses their feet as the frame center, and uses this location for collision purposes. The offsets you are editing are in the frame data that is getting moved. If you use the 94_custom_patch route, these changes you made in the frame data should be copied over (I had updated it a few months ago to get this working, previously it was just copying over data from the vanilla ROM). When you run the python program, you should see it saving the files needed. I should write up a way to make your own frames. This way, you can just make your own sprite tiles, form them into a frame, add the data, and reassign the nets current frame to your new one.
-
aggression?
Agr is used to determine if player gets a penalty after a hit.
-
How Fighting Works in the NHL94 Fighting Patch
ChksF = Checks For, meaning the # of Checks the player made in the game so far
-
NHL'94: Fight Edition
NOSE is hard coded for the number of menu items that appear based on the game title (92, 93, 94, etc). Since the menu hack to allow the Fight option changes the location of where the menu items are in the ROM, NOSE spits some some errors. NOSE has to be changed to allow the Fight option. This is going to happen in the future (hopefully soon). The suggestion here is to take a vanilla 94 ROM (or custom ROM) with the fight patch not applied, edit the stuff in NOSE you need to edit, then run the patch program to patch the ROM with fighting. You can edit the fight_patch.asm (vanilla 94 ROM) or fight_patchc.asm (for custom ROMs) to set the default Fight option or any other settings before applying the patch.
-
NHL'94: Fight Edition
Thanks!! Yes, there's a problem loading the ROM in NOSE because of the menu hack. Unfortunately the menus are hard coded in NOSE, so I need to add the functionality to get it to work. I'll work on that soon.
-
NHL'94: Fight Edition
I haven't set it to save the mode like the others get saved (it's more work, future stuff). You edit the .asm file and set it to a default value in there before you assemble (scripts/fight_patchc.asm). The default is On. I don't remember it switching back to Off though. I hacked the function that loads the default menu positions.
-
NHL'94: Fight Edition
Oh ok, the one in my post was newest version I grabbed from the forum thread. I ran it through the patch a few minutes ago.
-
NHL'94: Fight Edition
AC_2025_fight1.01.bin Here it is. Note, none of his players have H/F values set to fight. You will have to modify the ROM in NOSE. They are all 0 and 1, need to be 6 or above to start a fight in Arcade mode, 10 or above in normal fight mode.
-
NHL'94: Fight Edition
I would look at the time it was modified. I just used the custom patch script on his ROM and it worked no problem.
-
NHL'94: Fight Edition
did you look at the build.log file in the output folder?
-
NHL'94: Fight Edition
Can you tell me the steps you are using to apply the patch?
-
A-Button Timing and Long Clearances : A Better A-Button
Problem here is you are requiring people to play with a 6 button controller. Many prefer the 3 button feel. The fake shot was done with 3 buttons. The game will do a long clear on the flip when your team is on the PK. You can remove that check and make it do it all the time, or make it so if the button is pressed longer, it will flip it farther. You should look at the source code for 92 to see how to implement how to check which buttons are being held and pressed, etc
-
NHL 94: 2025 Edition by Adam Catalyst
- NHL'94: Fight Edition
I dont think theres a need to disable them, you can just opt not to use them. It would require special button presses to activate them during gameplay.- Speed & Agility
Weight and agility affect your acceleration, speed is just the players top speed. a lighter player with 4 Agl will get to top speed quicker that a heavier player with 4 Agl.- How Fighting Works in the NHL94 Fighting Patch
Yeah, it's now possible to add animations in. Code could be adjusted to use them. Maybe in the future.- NHL'26 - '94 Edition
Close, in On mode 71+ start a fight, players 14 and above can participate. Also, they have to have a few Chks For, and the total game checks need to be around 30, so yes, checking after the whistle will bump these numbers up- NHL'94: Fight Edition
93 was the same. There's a way to adjust the time (in the penalty data, there is a delay for after the whistle), but I haven't messed with it.- NHL'94: Fight Edition
Good to hear from you Skip!! Thank you for the kind words. Hope you are doing well!- CDL12 - Returning Players and Signups
A League Champs: S1: Uncle Seth S2: angryjay93 S3: Uncle Seth S4: kingraph S5: angryjay93 S6: Uncle Seth S7: Corbettkb S8: angryjay93 S9: angryjay93 S10: Schmidt S11: angryjay93 B League Champs: S1: sonoffett87 S2: hokkeefan2 S3: Tickenest S4: szpakman S5: kazelegend S6: Wittgenstein S7: INDIO * (replaced skankhunt42) S8: jv S9: kidswasted S10: Stantonator S11: grimmace92 C League Champs: S2: INDIO S3: TecmoDPS S4: Charlesworth S5: Big Valboski S6: skankhunt42 S7: SOH S8: NewJerseyKiller S9: Stantonator S10: niuhuskie224 S11: mastrhiggins Draft Cameos: S2: Jeremy Roenick S3: Luc Robitaille (no show) S4: Russ Courtnall S5: Teemu Selanne CDL Season 12 I plan on starting this league in a few weeks. I will give it till 1/18/26 for S11 players from A, B, and C Leagues to let me know if they are returning. Once the time is done (or I've heard from everyone), there may be some open spots. Open spots in A will be filled by previous A league caliber players (ones who have played in A and still qualified to stay in A), or I will do a play in of sorts from top B teams to determine replacements (though I doubt we will need this). Open spots in B will more than likely be filled by C league players from S11, with a play in as well. This all depends on who signs up. There may be exceptions to the rule (where someone of B quality returns, they would participate in the play-in as well). Note, the only thing holding up the draft will be A and B signups. Once this is figured out, I will announce the start of the draft (along with the draft order). Draft show TBD. C league signups will be open up to the day of the A/B League Draft, and are open to anyone. Current league cap is 26. C league signups will be limited to the number of A/B league teams. Players who completed their seasons in CDL11 get priority in spots. Any open spots will be discussed once I hear from the returning coaches. Relegation and Promotion The criteria is still the same. Last season we had 13 teams in A, and 12 in B. The champion from C is guaranteed to move up to B, and the champion from B is guaranteed to move up to A. The coach with the worst record in A will be moved to B and the coach with the worst record in B will be moved to C. There will be a play-in involving the 2nd-worst team in A and the best team in B, and another with the 2nd-worst team in B and the best team in C ((if they won the championship, it will be the next best reg. season record). The play-in will involve using their teams from CDL11 and will be a best of 5 series, with the higher league player having home ice (using the playoff ROM). As of right now: Moving up to A - grimmace92 (B Champ) Moving down to B - scribe99 (.250 win PCT) Moving up to B - mastrhiggins (C Champ) Moving down to C - TecmoJon (.273 win Pct) Play-ins (currently, if players return): A League - Stantonator (.271 in A) vs. Chris O (.727 in B ) B League - skills324 (.386 in B ) vs. LeifErikson (.841 in C) Sign-ups C League is more of like a "farm" league, where coaches will choose (via a Team Selection Draft) one of the drafted A/B teams to play a season with, continued with a playoff. The C Champ and the team with the best reg. season record will be promoted to B league the following season, and allowed to partake in the A/B draft. This league is geared more towards the guys who are more novices at the game, especially draft leagues. They can choose a team during the Team Selection Draft that fits their abilities. C is open to any player whose setup has been CONFIRMED to work (they will have a role assigned to them in Discord). Sign-up deadline will be the day of the A/B League Draft, and cannot exceed the total amount of A/B teams (currently 26). League spots are for CDL10 returnees first. Empty spots in A and B will be filled by my choice; see first paragraph. Draft News Once A/B returnees all report, and I fill out the remaining spots, I will post the draft order. The order will be completely randomized again. I thought of doing this differently, but I liked how this turned out. Also, you CANNOT trade your 1st round pick until after the 1st round is over. You must select where you are slotted! There will be a stream again for choosing the draft order. As far as the draft show, we will do a post A/B draft show, analyzing the teams and hopefully giving some insight that can help the C league players before their Team Selection Draft. League Info If you are new to CDL, this is a draft league where coaches in A and B league will choose from the available players from the original NHL 94 rosters. Each team needs to select 6 Forwards, 4 Defensemen, and 2 Goalies. C league coaches will have a team selection draft afterwards, where they will select a team from one of the A/B drafted teams. The regular season usually runs for 4 weeks, and the schedule is 40+ games. The league and ROM settings are as follows: - 5 min periods, 10 min OT, 1 min Penalties - Quicker control and longer range of Goalie - 0 Team Bonuses and PP/PK bonus - Warm/Cool Bonus (very slight hot/cold, attributes in the Edit Lines screen will be accurate) - Small Home Team Bonus in the Playoff ROM (+1), to make home ice a little more meaningful. - Reduced Penalty Shot timer - Goalie Boosts - +1 to Agl, +1 to DfA, +1 to PkC. All Stk/Glv will be normal classic values. Rules Warning! There are glitches in the game. A majority of them are unavoidable. Some of them are able to be triggered. In this league, anything goes. If a glitch causes a goal against you, you are free to talk about it with your opponent and decide an outcome, and come to an agreement. But there is no rule stating they have to reciprocate the goal. Double penalty shot? Play to the whistle. Next time blow your opponent out if he does something to piss you off. One rule regarding pulling the goalie - It must be done while having possession, or before a faceoff in the offensive or neutral zone. Let me know if you are returning or not, by posting below, or in this Discord thread - CDL12 Signups and Returnees. If I don't hear from you, I will assume you are not returning. List of returnees:- NHL'94: Fight Edition
Another solution, if you don't want to use the menu hack, you can comment the line out of the fight_patchc.asm file (it's at the end). Then, just change the DefFight variable to the one you want to use (Off, On, On-Arcade mode = 0, 1, 2). I expect some updates to the menu patch in the future, where it can pull the data from the ROM and move it to the new location, just like I am doing with the sprite tile data.- How Fighting Works in the NHL94 Fighting Patch
Thanks bud! No, injuries for the game will still work the same. The H/F will also affect who fights as well.- NHL'94: Fight Edition
It is designed to work on custom ROMs as well, but the ROM developer will need to do the extra work modifying player attributes to make them fight. Also, there's a lot of custom graphics hacks that I'm not accounting for, so they will have to most likely reapply them. I would wait until the developer releases a version of their ROM with the fighting. - NHL'94: Fight Edition