Jump to content
NHL'94 Forums

TOOL: Hack Applicator (AKA smozROM)


smozoma
 Share

Recommended Posts

  • 8 months later...
14 hours ago, clockwise said:

I missed this, somehow. Really cool tool. Maybe I'll be able to open my own ROMS again. :huh:

Something I remember is NOSE didn't seem to like the goalie control fix, so if you remove that from your ROMs they may open? I could be wrong about that though...

Link to comment
Share on other sites

  • 3 months later...

Hey everyone, I was wondering if someone could help me with a Nose editor problem.

i wanted to create an NHL94 rom on the 1993 season. Since all the player ratings are already in 93, I thought it would be a fun project. When transferring the 1993 player stats to the 94 Rom I noticed the top players were having massive increases in stats due to the change in attribute importance between the 93 and 94 Rom. 

I used the amazing smozrom program and edited the 94 rom to 0-15 attributes and changed the nose ini files. The Nose still rejects the edited 94Rom and only accepts the 0-6 ratings versions. Can anyone help me with this? 

Mr. T

Link to comment
Share on other sites

  • 7 months later...

I'm trying to hack a rom, using SMOZROM, but when I'm done it doesn't have the bodycheck stats; it still has PIM.  

When I go thru questions in the SMOZROM, it never asks me if I want to add BC stats, and at the end it's listed under "OMIT" (hack not applied).

I know that I have solved this on previous roms I've made, but I can't remember how I got it to work.

Link to comment
Share on other sites

I forget if there's an easier way, but the instructions for doing it manually are here:

https://forum.nhl94.com/index.php?/topic/8030-how-to-fix-the-weight-bug-gens/

Do only the "CHECK STATS" part.

Alternatively, it might work if you apply the 'simple' weight bug fix and if that also adds the check stats (I forget if it does...) then you would just go in and do the reverse of the "SIMPLE WEIGHT BUG FIX" to restore the weight bug but keep the check stat.

Link to comment
Share on other sites

3 hours ago, smozoma said:

Alternatively, it might work if you apply the 'simple' weight bug fix and if that also adds the check stats (I forget if it does...) then you would just go in and do the reverse of the "SIMPLE WEIGHT BUG FIX" to restore the weight bug but keep the check stat.

Yes, that is how I had to do it.  The SmozROM doesn't seem (to me anyway) to be able to have BC stats without the WBF.  I ran it thru the WBF hack applicator and it seems to have done the trick.

 

Thanks to everyone that makes this game better!

Link to comment
Share on other sites

  • 1 year later...

Thanks for pointing out your Three-Stars hack! I implemented it last night, and will play test it today. I do have a question for you…

Is there documentation anywhere on how that hack works? I'd love to try my own formulas…

Lastly, I wanted to share that on macOS 11.6.1 I could not get the script to work, getting errors that it could not find the "weightscale.txt" file. I put copies of this file *everywhere* it could conceivably be referenced, but no luck. In the end I edited the PY with a manual path, and that did the trick. HOWEVER, I did figure out a solution for those who don't want to edit the file manuually.. If you are on a Mac, and experience this problem, put a copy of the "weightscale.txt" file in the root of your home folder "~/" . That'll do it!

Link to comment
Share on other sites

On 1/2/2022 at 9:31 AM, AdamCatalyst said:

Thanks for pointing out your Three-Stars hack! I implemented it last night, and will play test it today. I do have a question for you…

Is there documentation anywhere on how that hack works? I'd love to try my own formulas…

Lastly, I wanted to share that on macOS 11.6.1 I could not get the script to work, getting errors that it could not find the "weightscale.txt" file. I put copies of this file *everywhere* it could conceivably be referenced, but no luck. In the end I edited the PY with a manual path, and that did the trick. HOWEVER, I did figure out a solution for those who don't want to edit the file manuually.. If you are on a Mac, and experience this problem, put a copy of the "weightscale.txt" file in the root of your home folder "~/" . That'll do it!

Check out line 950 in the .py file, it lists out the values used. If you want to add different logic rather than different values, that's waaaay more complicated.

If you have any fixes to make in the file, such as the path, please add and share! The path stuff is around line 308, but assumes windows (backslashes)

  • Thanks 1
Link to comment
Share on other sites

Thanks. I will tinker with this, and share if I come up with anything useful.

I did notice that the 3-stars hack can potentially crash a ROM. I have a ROM set to 1-second periods for testing purposes, and applying the 3-stars hack will crash it when it goes to load the three stars. I haven't done a deep dive, but I imagine it might have to with zero shots on net or saves, etc. I've not seen this crash in any normal play through, but I thought I should mention it. 

Link to comment
Share on other sites

1 hour ago, AdamCatalyst said:

Thanks. I will tinker with this, and share if I come up with anything useful.

I did notice that the 3-stars hack can potentially crash a ROM. I have a ROM set to 1-second periods for testing purposes, and applying the 3-stars hack will crash it when it goes to load the three stars. I haven't done a deep dive, but I imagine it might have to with zero shots on net or saves, etc. I've not seen this crash in any normal play through, but I thought I should mention it. 

Ohhh I wonder if that's a divide-by-zero on the save percentage. Doubt I'll fix it.. It was hard to cram the assembly instructions for my formula into the same number of bytes as the old formula, since mine is more complicated.

Link to comment
Share on other sites

Considering that the error so severe that no-one noticed or bothered to report it in over eleven years, I think you can sleep easy on this one. Hopefully no-one else brings it up for at least another decade. :) 

 

Link to comment
Share on other sites

@smozoma Thanks for your help. I was able to customize the formula to something that worked better for me.

I did some experiments on the crash, and here is what I found. It seems like there must be at least three different players who register a goal, or assist, or shot, or check, or save, or allow a goal. If, for instance, two players register body checks, they will show up on the "Stars of the Game" window, but the game will still crash there. The crash state is avoided as long as three different players register something that can be calculated by the formula. For whatever reason, shut-outs alone don't seem to count. I was able to test this by ragging the puck for the most boring but challenging zero event games possible.

I've not tested this extensively, but I’d say I’m 90% confident that this is what is happening. For whatever reason, the original code is able to pick stars even with a zero event game. Unfortunately I lack the skills to be able to implement a fix on this one. 

-a

 

p.s. If anyone else wants to customize values, I highly recommend making a save game right before the final buzzer. You can then adjust values and run different ROM variation through the same save game.

Link to comment
Share on other sites

I must have removed the protection against not enough players in order to cram in more calculation logic :D

Forgive me if I don't understand how this works anymore 11 years later:

image.png

Link to comment
Share on other sites

@smozoma May I ask you a favour… would you be willing to share a larger screen cap of your spreadsheet? I am trying to understand the original code that prevented the "no-event" three stars crash, and the excerpts of your notes on that spreadsheet have actually been helpful. I can't promise anything, other than that I will share any potentially useful findings.

Link to comment
Share on other sites

3 hours ago, AdamCatalyst said:

@smozoma May I ask you a favour… would you be willing to share a larger screen cap of your spreadsheet? I am trying to understand the original code that prevented the "no-event" three stars crash, and the excerpts of your notes on that spreadsheet have actually been helpful. I can't promise anything, other than that I will share any potentially useful findings.

No problem, I DM'd you the spreadsheet and an idea for how to fix the problem (looks like they were using Time on Ice to solve the problem.. so all else being equal, the player with the most ice time would get the higher star!)

  • Love 1
Link to comment
Share on other sites

On 1/4/2022 at 1:26 PM, AdamCatalyst said:

I did notice that the 3-stars hack can potentially crash a ROM. I have a ROM set to 1-second periods for testing purposes,

I guess this is more of a "Well here's one for ya" kind of thing, but I tend to test the playoffs as well, so I use 10 second periods, with two players, and pull the goalies because of that infinite overtime thing. Usually end the game by winning the face off straight back into the net.

The weird part about that is it ends up giving the three stars to:
1st. The guy that lost the face off, but was given credit for the resulting own-goal.
2nd. The winning goaltender with a 0-save shutout.
3rd. The winning team's backup goaltender, who I suppose did just as much as the rest of the team.

  • Haha 1
Link to comment
Share on other sites

@von Ozbourme That is weird!

I can confirm that in the original formula, skaters are assigned one Star Point for each second that they are on the ice. I've restored that in order to prevent crashes, and removed the logic for goalie periods played, instead only relying on the logic for goalie faced shots to determine eligibility. I'll share all my findings once I feel more certain about the effects from this change.

If you (or anyone) wants to beta test the modified script (or a pre-modded ROM), please send me a PM!

Link to comment
Share on other sites

I wrapped up my experimenting with the Star Points formula from the original game, and the custom formula from the  script. I turned my findings into @smozoma, and will leave it to him to decide what to do with it. I somehow doubt this affects anyone, but you never know. I did want to share something else that might be useful to someone out there.

I noticed that with the Star Point variables in the original script, it could realistically produce scenarios where the goalie with the worse save percentage would end up taking first star, because of the seer volume of shots they faced. It seems to me, that the variables used for "goal against" and "shot against" end up creating a mandatory minimum save percentage floor in order for a goalie to earn star points. The ratio in the script is set to ~-3:1 ratio, which essentially means that a goalie is accumulating Star Points for every shot faced, as long as their save percentage is over ~.650 (I know… I'm irrationally superstitious with numbers.) If you wanted to enforce a higher minimum save percentage for your goalies to be accumulating Star Points, change this ratio in the variables. I personally found that an -8:1 ratio worked best for me (meaning that my goalies are only racking up star points when they have a save percentage above .875), but even a -4:1 ratio will make a dramatic difference by raising the floor to a .750 save percentage. And of course, you could go the other way, if you wanted to more heavily favour shot volume over save percentage.

 

Link to comment
Share on other sites

23 hours ago, AdamCatalyst said:

And of course, you could go the other way, if you wanted to more heavily favour shot volume over save percentage.

I suppose that does leave the door open for a Denis Godla-like 2015 World Junior like performance. Getting the fan chanted unanimous first star nod in a 39 save, 5-1 loss.

  • Like 1
Link to comment
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.

 Share

×
×
  • Create New...