<?xml version="1.0"?>
<rss version="2.0"><channel><title><![CDATA[How-To & Reference Latest Topics]]></title><link>https://forum.nhl94.com/index.php?/forum/258-how-to-reference/</link><description><![CDATA[How-To & Reference Latest Topics]]></description><language>en</language><item><title>How to: NHL 94' [SNES] ROM / RAM Hacking School - Finding RAM Values</title><link>https://forum.nhl94.com/index.php?/topic/28954-how-to-nhl-94-snes-rom-ram-hacking-school-finding-ram-values/</link><description><![CDATA[<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Finding Ram Values</strong></span></span>
</p>

<hr>
<p>
	In this tutorial we will be searching for RAM values, like the ones used to identify how the <a href="https://forum.nhl94.com/index.php?/topic/28923-how-to-pull-cpu-goalie-earlier-when-losing-by-how-many-goals-snes/" rel="">CPU pulls the goalie</a>. The Home and Away team goalies are stored in the emulators RAM, we will learn how to find those values in RAM by doing a simple search in the emulator.
</p>

<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Tools that you need:</strong></span></span>
</p>

<hr>
<ol>
	<li>
		SNES debug emulator <a href="https://github.com/SourMesen/Mesen2?tab=readme-ov-file#development-builds" rel="external nofollow">MESEN2</a>
	</li>
	<li>
		NHL 94' rom in .sfc or .smc format
	</li>
</ol>

<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Setup emulator and launch the game:</strong></span></span>
</p>

<hr>
<ul>
	<li>
		Launch the emulator and load the rom ==&gt;File ==&gt;Open
	</li>
	<li>
		(Optional, keyboard works fine) Setup your joystick under settings ==&gt; Input ==&gt; SNES ==&gt; Port 1 Setup
	</li>
	<li>
		Setup a Regular Season game and navigate to the Start Game screen
	</li>
</ul>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36364" data-ratio="101.58" data-unique="yf2z9ywjj" width="316" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.67d4f0ca01b0d3d23c4494a3063d516a.png">
</p>

<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Launch the Memory Search:</strong></span></span>
</p>

<hr>
<p>
	Now were going to do a simple Memory Search to find the starting Home Goalie Ram value
</p>

<ul>
	<li>
		Click Debug ==&gt; Memory Search
	</li>
</ul>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36365" data-ratio="50.72" data-unique="pcxgwyw9e" width="209" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.44257272aa396cae6573221595559fe7.png">
</p>

<p>
	<br>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.bf66db26ff135fa2b33055db737a0725.png" data-fileid="36361" data-fileext="png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36361" data-ratio="74.5" width="706" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.bf66db26ff135fa2b33055db737a0725.png"></a>
</p>

<ul>
	<li>
		#1 in the screen shot (Compare To) needs to be set to <strong>Previous Search Value</strong>
	</li>
	<li>
		#2 in the screen shot (Operator) needs to be set to <strong>Equal</strong>
	</li>
	<li>
		#3 in the screen shot will apply the Search filters to all the Work RAM memory, Go ahead and click the <strong>Apply Filter</strong> button.
	</li>
	<li>
		Results: You can't tell right now, but the results have filtered out some of the RAM values that have changed, this is good.
	</li>
</ul>

<p>
	Now we are going to change the Goalie to Racicot and perform another search, because we increased the goalie from the first Goalie - Roy to the second Goalie - Racicot, we want to search for RAM values that have increased (Greater than).
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36366" data-ratio="74.50" data-unique="p57ttif5u" width="706" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.a2f9a33fcd3b73aeba5364d53c9e7134.png">
</p>

<ul>
	<li>
		#4 in the screen shot (Compare To) needs to be set to <strong>Previous Search Value</strong>
	</li>
	<li>
		#5 in the screen shot (Operator) needs to be set to <strong>Greater than</strong>
	</li>
	<li>
		#6 in the screen shot will apply the Search filters to all the Work RAM memory, Go ahead and click the Apply Filter button.
	</li>
	<li>
		#7 in the screen shot shows the results, we have filtered down a lot of values, this is good.
	</li>
</ul>

<p>
	Now we are going to change the Goalie back to Roy and perform another search, because we decreased the goalie from the second Goalie - Racicot back to the first Goalie - Roy, we want to search for RAM values that have decreased (Less than).
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36367" data-ratio="74.50" data-unique="ody955rb0" width="706" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.b60568df9b0989dbf86a22fb99ad6fd3.png">
</p>

<ul>
	<li>
		#8 in the screen shot (Compare To) needs to be set to <strong>Previous Search Value</strong>
	</li>
	<li>
		#9 in the screen shot (Operator) needs to be set to <strong>Less than</strong>
	</li>
	<li>
		#10 in the screen shot will apply the Search filters to all the Work RAM memory, Go ahead and click the Apply Filter button.
	</li>
	<li>
		#11 in the screen shot shows the results; wow, we have filtered down to 2 values. One of these is our Home teams Goalie RAM value. $126D or $17AA
	</li>
</ul>

<p>
	One last trick here is to leave Roy as the starting goalie, making sure you haven't changed it from the last search, and start the game. We can apply another filter during game play for RAM values that haven't changed (Equal).
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36368" data-ratio="74.50" data-unique="ymasybbjj" width="706" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.8c97b857310054f0cbd28f08705f2da7.png">
</p>

<ul>
	<li>
		#12 in the screen shot (Compare To) needs to be set to <strong>Previous Search Value</strong>
	</li>
	<li>
		#13 in the screen shot (Operator) needs to be set to <strong>Equal. </strong>
	</li>
	<li>
		#14 in the screen shot will apply the Search filters to the remaining Work RAM memory, Go ahead and click the Apply Filter button.
	</li>
	<li>
		#15 in the screen shot shows the results. Only one value left $17AA, this is our Home teams Goalie RAM value.
	</li>
</ul>

<p>
	Now you can see the value for $17AA change from 00 (Roy) to 01 (Racicot) or FF (No Goalie)
</p>

<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Homework:</strong></span></span>
</p>

<hr>
<ul>
	<li>
		Using the same steps above, see if you can find the Away teams RAM value. Just make sure you set your controller to the away team for this exercise.
	</li>
</ul>
]]></description><guid isPermaLink="false">28954</guid><pubDate>Wed, 31 Jan 2024 21:33:25 +0000</pubDate></item><item><title>How To: Disable Interference Penalty [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/29990-how-to-disable-interference-penalty-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Disable Interference Penalty With Penalties ON</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong></span><br>
	Request to disable Interference penalties as certain individuals despise it, and feel it is called too often in SNES.<br>
	<br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u></span><br>
	This hack allows you to disable the Interference Penalty while still keeping all other penalties ON.
</p>

<p>
	<span style="font-size:16px;"><u><strong>Technical Details:</strong></u></span>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">This one was simple, we just have to prevent the check to assess goalie interference by skipping.</span></font>
</p>

<p>
	<span style="color:#374151; font-size:16px; text-align:start"><strong>Old Code</strong>:</span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36476" data-ratio="3.40" data-unique="ts2fpcu4f" width="765" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.6540a557c85c3e83235629fd9ad304cd.png">
</p>

<p>
	<b>Modified Code: </b>Change the BMI (Branch If Minus) to BRA (Branch Always)
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36478" data-ratio="3.35" data-unique="7iyg7ybov" width="746" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.aa8c28e70b0a2e7e451d07f7212a7fbb.png">
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">Download the patch tool to create your own ROM or patch an existing ROM</span></font>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36480" data-ratio="35.98" data-unique="0qegcams3" width="617" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.c0c90a8f2ee677b57e6685f52121c9da.png">
</p>

<p>
	<a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" ipsnoembed="true" rel="external nofollow">https://github.com/Mhopkinsinc/NHL94SNESVault/releases</a>
</p>

<p>
	<span style="font-size:16px;"><u><strong>Hex Version:</strong></u></span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36481" data-ratio="11.87" data-unique="m1g3uz039" width="792" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.b5e0565368ecfa86e96775909d8bbb08.png">
</p>

<p>
	1) Replace old hex value with new hex value.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_6346_5" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) F3AA8
Old: 30 
New: 80

Headered ROM (.SMC)
ROM Offsets: (hex) F3CA8
Old: 30 
New: 80</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">29990</guid><pubDate>Tue, 27 Feb 2024 02:15:54 +0000</pubDate></item><item><title>Center ice logos and menu logos - swapping and editing</title><link>https://forum.nhl94.com/index.php?/topic/16251-center-ice-logos-and-menu-logos-swapping-and-editing/</link><description><![CDATA[
<p>Get a hex-editor (I recommend HxD, very easy to use and very user friendly) and open NHL'94 rom in it.</p>
<p>Center ice logos are located at E03B7 - E0496 offsets, find it with "Goto" option.</p>
<p>The center ice logos offset stars with 7B B4 9A 00 3C E5 9A 00 A1 BF etc etc and ends with  88 00 B6 D4 9A 00 C6 FF 88 00.</p>
<p>You can also find beginning of the offset with "Find" option, search for 7B B4 9A 00 in Hex-values datatypes.</p>
<p>The complete offsets values for center ice logos look like this in HxD:</p>
<p>                                    7B B4 9A 00 3C E5 9A 00 A1</p>
<p>BF 9A 00 F8 E7 9A 00 96 CA 9A 00 6C E7 9A 00 3D</p>
<p>FF 8D 00 E0 E6 9A 00 2E AC 9A 00 F6 E4 9A 00 38</p>
<p>FF 84 00 98 E3 9A 00 80 C8 9A 00 F4 E1 9A 00 15</p>
<p>C3 9A 00 26 E7 9A 00 57 C5 9A 00 54 E6 9A 00 A9</p>
<p>FE 82 00 B0 E4 9A 00 9C D7 9A 00 C6 E2 9A 00 4A</p>
<p>DA 9A 00 3E E8 9A 00 F5 BB 9A 00 9A E6 9A 00 CB</p>
<p>FE 98 00 82 E5 9A 00 A0 CB 9A 00 C8 E5 9A 00 C0</p>
<p>FE 99 00 0E E6 9A 00 36 C4 9A 00 B2 E7 9A 00 47</p>
<p>FF 83 00 68 E1 9A 00 AF D5 9A 00 AE E1 9A 00 67</p>
<p>C6 9A 00 3A E2 9A 00 74 C7 9A 00 80 E2 9A 00 85</p>
<p>FE 97 00 0C E3 9A 00 72 D9 9A 00 52 E3 9A 00 78</p>
<p>FE 86 00 DE E3 9A 00 33 DD 9A 00 24 E4 9A 00 73</p>
<p>BE 9A 00 6A E4 9A 00 B6 D4 9A 00 C6 FF 88 00 B6</p>
<p>D4 9A 00 C6 FF 88 00</p>
<p><br>It's a mess, after formatting and adding team names it makes much more sense:<br></p>
<p>7B B4 9A 00 3C E5 9A 00 Anaheim</p>
<p>A1 BF 9A 00 F8 E7 9A 00 Boston       <br>96 CA 9A 00 6C E7 9A 00 Buffalo </p>
<p>3D FF  <b>8D</b> 00 E0 E6 9A 00 Calgary</p>
<p>2E AC 9A 00 F6 E4 9A 00 Chicago</p>
<p>38 FF  <b>84</b> 00 98 E3 9A 00 Dallas</p>
<p>80 C8  9A 00 F4 E1 9A 00 Detroit</p>
<p>15 C3 9A 00 26 E7 9A 00 Edmonton</p>
<p>57 C5 9A 00 54 E6 9A 00 Florida</p>
<p>A9 FE <b>82</b> 00 B0 E4 9A 00 Hartford</p>
<p>9C D7 9A 00 C6 E2 9A 00 Los Angeles</p>
<p>4A DA 9A 00 3E E8 9A 00 Montreal</p>
<p>F5 BB 9A 00 9A E6 9A 00 New Jersey </p>
<p>CB FE <b>98</b> 00 82 E5 9A 00 NY Islanders</p>
<p>A0 CB 9A 00 C8 E5 9A 00 NY Rangers</p>
<p>C0 FE <b>99</b> 00 0E E6 9A 00 Ottawa</p>
<p>36 C4 <span style="font-weight:normal;">9A</span> 00 B2 E7 9A 00 Philadelphia</p>
<p>47 FF <b>83</b> 00 68 E1 9A 00 Pittsburgh</p>
<p>AF D5 9A 00 AE E1 9A 00 Quebec</p>
<p>67 C6 9A 00 3A E2 9A 00 San Jose</p>
<p>74 C7 9A 00 80 E2 9A 00 St. Louis</p>
<p>85 FE <b>97</b> 00 0C E3 9A 00 Tampa Bay</p>
<p>72 D9 9A 00 52 E3 9A 00 Toronto</p>
<p>78 FE <b>86</b> 00 DE E3 9A 00 Vancouver</p>
<p>33 DD 9A 00 24 E4 9A 00 Washington</p>
<p>73 BE 9A 00 6A E4 9A 00 Winnipeg</p>
<p>B6 D4 9A 00 C6 FF <b>88 </b>00<b> </b><i><span style="font-weight:normal;">East</span></i></p>
<p>B6 D4 9A 00 C6 FF <b>88 </b>00<b> </b><i><span style="font-weight:normal;">West</span></i></p>
<p>Yes, it's that simple, every line represents one center ice logo. For instance, if you want to change Quebec ice cener logo in your custom NHL 99 rom with generic NHL logo, just rewrite the values on the Quebec line (AF D5 9A 00 AE E1 9A 00) with the values from East or West line (B6 D4 9A 00 C6 FF <b>88 </b>00). </p>
<p>I bolded values which differ to frequent 9A value.</p>
<p>Do not edit just part of the line, the game freezes after that. If you edit only first two values, the game works but the logo looks ugly.</p>
<p>Due to compressed graphics in SNES rom there won't be probably possible to edit logos like it can be done in Genesis version but this way offers more possibilities when editing roms.  Post NHL 94 teams do not need to use Jets, Whalers or Nordiques logos in modern NHL roms but generic NHL logo now. For international tournaments or non-NHL leagues roms you can choose the same logo for all teams.</p>
<p>If someone can find where the values/pointers for ice graphics are located, I am sure more progress can be done then.</p>
]]></description><guid isPermaLink="false">16251</guid><pubDate>Thu, 19 Jun 2014 23:02:32 +0000</pubDate></item><item><title>HOW TO: Display Hot/Cold Bonus Value in Edit Lines (Max Boost) [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/35930-how-to-display-hotcold-bonus-value-in-edit-lines-max-boost-snes/</link><description><![CDATA[<p>
	<span style="color:#353c41; font-size:16px; text-align:start"><strong><u>Problem:</u></strong></span><br style="color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">There is a bug in the SNES code responsible for calculating the Hot/Cold Bonus for every player attribute (Speed, Agility, etc.). The details can be found<span> </span></span><a href="https://forum.nhl94.com/index.php?/topic/20408-in-game-bonuses-to-player-attributes/&amp;do=findComment&amp;comment=206428" rel="" style="background-color:transparent; color:rgb( var(--theme-link) ); font-size:14px; text-align:start">here</a><span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">.<br>
	TLDR; As a result, no attribute receives a negative bonus; instead, the attribute is consistently given the maximum boost (100) if the bonus was negative.</span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Solution:</strong></u><br>
	This patch will show the true attribute value (100) in Edit Lines when the bug happens.<br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37740" data-ratio="88.76" data-unique="knt5jwr8d" width="516" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2025_03/image.png.56e6fbed347290b2127a63b4b0204fcf.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="font-size:16px"><b><u>Patch:</u></b></span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<font color="#374151">Download the<span> </span><a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow" style="background-color:transparent; color:rgb( var(--theme-link) )" target="_blank">patch tool</a><span> </span>to create your own ROM or patch an existing ROM.</font><br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37739" data-ratio="78.90" data-unique="4w58vmhm9" width="621" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2025_03/image.png.42a5d0e2852a9efd415add993f01a032.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	 
</p>
]]></description><guid isPermaLink="false">35930</guid><pubDate>Sat, 08 Mar 2025 02:52:36 +0000</pubDate></item><item><title>How to: NHL 94' [SNES] ROM / RAM Hacking School - Trace Logging</title><link>https://forum.nhl94.com/index.php?/topic/28956-how-to-nhl-94-snes-rom-ram-hacking-school-trace-logging/</link><description><![CDATA[<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Trace Logging</strong></span></span>
</p>

<hr>
<p>
	In this tutorial we will be taking the RAM values we found in the <a href="https://forum.nhl94.com/index.php?/topic/28954-how-to-nhl-94-snes-rom-ram-hacking-school-finding-ram-values/" rel="">finding RAM values tutorial</a> , and tracing where the code in the ROM, is writing to that RAM value. Confused?<br>
	Basically we are tracing whenever the Away teams goalie (CPU) is being pulled because of a powerplay, or in the 3rd period when the CPU is losing by 1 or 2 goals.
</p>

<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Setup emulator and launch the game:</strong></span></span>
</p>

<hr>
<ul>
	<li>
		This builds on the <a href="https://forum.nhl94.com/index.php?/topic/28954-how-to-nhl-94-snes-rom-ram-hacking-school-finding-ram-values/" rel="">first tutorial</a>, so I assume you already have the <a href="https://github.com/SourMesen/Mesen2?tab=readme-ov-file#development-builds" rel="external nofollow">MESEN2</a> emulator installed and know how to launch the rom.
	</li>
	<li>
		Get the game to a position where you are winning by 1 or 2 goals in the third period with close to 1:20 minutes left. Then make a save state and pause the game.
	</li>
	<li>
		File ==&gt;Save State ==&gt;Select an empty slot
	</li>
</ul>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36369" data-ratio="101.58" data-unique="z8qxguw0p" width="316" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.707ee2b94703ac05c2b40a33efeb87f8.png">
</p>

<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Launch the Trace Logger:</strong></span></span>
</p>

<hr>
<p>
	Now were going to add a trace condition to Log writes for the Away Goalies Ram Address $17AC
</p>

<ul>
	<li>
		Click Debug ==&gt; Trace Logger
	</li>
</ul>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36370" data-ratio="53.55" data-unique="o9yqji65o" width="211" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.3f9740295397f1e36968144fd40e9d86.png">
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36371" data-ratio="63.64" data-unique="tus0mdesm" width="924" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.8149e728a66581b4fbd7f6fa57d51f08.png">
</p>

<p>
	This looks confusing, but the only thing you really need to understand here is the trace condition.
</p>

<ul>
	<li>
		#1 in the screen shot (<strong>Condtion</strong>) needs to copied from here and pasted in. <strong>IsWrite &amp;&amp; MemAddress &gt;= $017AC &amp;&amp; MemAddress  &lt;=$017AD</strong>

		<ul>
			<li>
				What this is doing is anytime a write (<strong>IsWrite</strong>) is happening to RAM (<strong>MemAddress</strong>) greater than or equal to (<strong>&gt;=</strong>) $017AC and (<strong>&amp;&amp;</strong>) less than (<strong>&lt;=</strong>) $017AD; log it to the trace window. $017AC + $017AB contains the Away teams goalie.
			</li>
		</ul>
	</li>
	<li>
		#2 in the screen shot (<strong>Clear log</strong>) needs to be pressed to clear the log before you start the game again.
	</li>
	<li>
		#3 allows you to save the log file to your computer if you want. (Not required for this example)
	</li>
</ul>

<p>
	Now we are going to play the game again and make sure the CPU has the puck and is over the center ice line with less than 1 minute left. This will cause the CPU to pull its goalie and we should see a trace in the log appear.
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36372" data-ratio="91.60" data-unique="jehb4ytig" width="702" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.afda82e8eb4c69e2a4b217a44c45c36c.png">
</p>

<p>
	If everything goes according to plan, you should see some traces show in the Trace log window when the goalie gets pulled.
</p>

<ul>
	<li>
		#1 in the screen shot is the RAM value for the away goalie we were talking about $17AC
	</li>
	<li>
		#2 in the screen shot is the new value it was set to FF 00; this means Pulled goalie in the game.
	</li>
	<li>
		#3 in the screen shot is the location in the ROM .sfc file that code executed to set the RAM value.
		<ul>
			<li>
				This one is a little tricker to understand. We can now look at the decompiled rom and see exactly what game code was running that sets this value. We will cover this in a more advanced topic.<br>
				<img class="ipsImage ipsImage_thumbnailed" data-fileid="36379" data-ratio="34.77" data-unique="ptcfrtujm" width="463" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.23c090e788c5ca88e8abc41ce7a9ac92.png">
			</li>
		</ul>
	</li>
</ul>

<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>Homework:</strong></span></span>
</p>

<hr>
<ul>
	<li>
		You now have the general knowledge to find RAM values in the emulator and then trace them to find the exact location in the ROM where that logic is.
	</li>
	<li>
		Use what you have learned to try and find other RAM values that you may be interested in. Maybe try and find the game clock ticking down in RAM.
	</li>
	<li>
		If this didn't work for you, just restore the save state and try again.
	</li>
</ul>
]]></description><guid isPermaLink="false">28956</guid><pubDate>Wed, 31 Jan 2024 23:18:24 +0000</pubDate></item><item><title>HOW TO: Save + Show Body Checks Per Player [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/34453-how-to-save-show-body-checks-per-player-snes/</link><description><![CDATA[<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Problem:</strong></u><br>
	GENS was tracking Body Checks per player in the game as a hidden stat, while the SNES version was not. We would like to record Checks For and Against in the SNES version as a stat so it can be extracted from the save state and used on the website.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Technical Details:</strong></u><br>
	When a Body Check is recorded in the game, also record who performed the check and the player that was checked, similar to the other Player Stats (G, A, Sh) <br>
	This can now be extracted from the save state with all the other stats. Plus you can also choose to show the Checks For, in the Player Stats Screen.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="font-size:16px"><b><u>Patch:</u></b></span><br>
	<font color="#374151">Download the<span> </span><a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow" style="background-color:transparent; color:rgb( var(--theme-link) )" target="_blank">patch tool</a><span> </span>to patch an existing ROM, or create a new one.</font>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37260" data-ratio="88.97" data-unique="gaz9a08gg" width="517" src="https://forum.nhl94.com/uploads/monthly_2024_10/image.png.72d853bf60b346572e0777a87cbd2eae.png"><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37259" data-ratio="89.84" data-unique="x1raddg51" width="640" src="https://forum.nhl94.com/uploads/monthly_2024_10/image.png.52721cea78f85d3cc0c5f910d5998c77.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	 
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Hex Version:</strong></u>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">Replace old hex values with new hex values. (<strong>Just use the<a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow"> patch tool</a>, its easier</strong>)</span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37279" data-ratio="34.39" data-unique="r0w85nquj" width="945" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_10/image.png.13f76ac4a5a6122c1fc4f4f4fd270e7c.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	 
</p>

<p style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); font-size: 14px; text-align: start;">
	 
</p>
]]></description><guid isPermaLink="false">34453</guid><pubDate>Wed, 09 Oct 2024 22:24:03 +0000</pubDate></item><item><title>HOW TO: Allow all players for every position [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/34241-how-to-allow-all-players-for-every-position-snes/</link><description><![CDATA[<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	Have you ever wanted to put Ray Bourque as a forward? This hack enables the option in Edit Lines to assign forwards and defensemen to any position
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Technical Details:</strong></u><br>
	The SNES code was performing very specific checks to prevent Forwards and Defense from swapping positions. I wrote new code that displays all forwards and defense in Edit Lines. I combined this code with the <a href="https://forum.nhl94.com/index.php?/topic/34239-how-to-fix-missing-extra-attacker-bug-snes/" rel="">Missing Extra Attacker Bug Fix</a>, to allow the swapping of forwards and defense.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="font-size:16px"><b><u>Patch:</u></b></span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<font color="#374151">Download the<span> </span><a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow" style="background-color:transparent; color:rgb( var(--theme-link) )" target="_blank">patch tool</a><span> </span>to patch an existing ROM, or create a new one.</font>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37231" data-ratio="81.12" data-unique="mq755y9cu" width="641" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_09/image.png.1781e7e4c017471b3cad5f15f77f375e.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	 
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Hex Version:</strong></u>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37232" data-ratio="28.77" data-unique="jvmc4bxj9" width="942" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_09/image.png.64440ebe3bf3f6a3cda83aa03eca8c16.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">1) Replace old hex values with new hex values. (<strong>Just use the patch tool, its easier</strong>)</span>
</p>

<pre id="ips_uid_9994_12" style="background-color:#ffffff; border-bottom:1px solid #888888; border-image:initial; border-left-color:#888888; border-left-style:solid; border-left-width:4px !important; border-radius:var(--radius-1); border-right:1px solid #888888; border-top:1px solid #888888; color:#353c41; font-size:1em; padding:2px; text-align:start"><span style="color:#000000">===========================
Headerless ROM (.SFC)
===========================
  ROM Offsets: (hex) D8C96
  Old: C9 01 00
  New: 20 78 CE

  ROM Offsets: (hex) D8E1A
  Old: 10 21 22 00 93 9B
  New: EA EA EA 4C BA CE

  ROM Offsets: (hex) DCE78
  Old: FF 
  New: 48 A5 A5 18 6D 9F 1D 85 95 AE 9F 1D E8 A5 95 20 72 
       8D CF 8F 1D 9F F0 07 C6 95 CA D0 F0 80 1E CA A5 A5
       18 6D 9F 1D ED 8B 1D 85 95 20 72 8D 48 A5 A5 86 AF 
       18 6D AF 00 85 95 68 20 7C 8D 68 C9 01 00 60 22 00 
       93 9B 8D A3 1D 22 00 D3 9E A5 A5 8D AB 1D 22 DC 92 
       9B 18 6D A3 1D 8D A3 1D AD AB 1D 4C 3B 8E

===========================
Headered ROM (.SMC)
===========================
  ROM Offsets: (hex) D8E96
  Old: C9 01 00 
  New: 20 78 CE

  ROM Offsets: (hex) D901A
  Old: 10 21 22 00 93 9B
  New: EA EA EA 4C BA CE

  ROM Offsets: (hex) DD078
  Old: FF
  New: 48 A5 A5 18 6D 9F 1D 85 95 AE 9F 1D E8 A5 95 20 72 
       8D CF 8F 1D 9F F0 07 C6 95 CA D0 F0 80 1E CA A5 A5
       18 6D 9F 1D ED 8B 1D 85 95 20 72 8D 48 A5 A5 86 AF 
       18 6D AF 00 85 95 68 20 7C 8D 68 C9 01 00 60 22 00 
       93 9B 8D A3 1D 22 00 D3 9E A5 A5 8D AB 1D 22 DC 92 
       9B 18 6D A3 1D 8D A3 1D AD AB 1D 4C 3B 8E</span></pre>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	 
</p>
]]></description><guid isPermaLink="false">34241</guid><pubDate>Tue, 24 Sep 2024 19:13:13 +0000</pubDate></item><item><title>HOW TO: Fix Missing Extra Attacker Bug [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/34239-how-to-fix-missing-extra-attacker-bug-snes/</link><description><![CDATA[<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="font-size:16px"><strong><u>Problem:</u></strong></span><br>
	There is a bug in the SNES version that prevents the extra attacker from coming on the ice if he is currently in the lineup. As a result, the extra attacker never comes on the ice when the goalie is pulled or when the other team gets a penalty.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	Example: Carson is the extra attacker for L.A. If you replace Robitaille with Carson and pull the goalie, you are left with 5 skaters and no Goalie.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Solution:</strong></u><br>
	On the GENS side, when editing lines, if you insert the extra attacker into your lineup, the replaced player will automatically become the new extra attacker.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	Example: Carson is the extra attacker for L.A. If you replace Robitaille with Carson, Robitaille now becomes the Extra Attacker.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Technical Details:</strong></u><br>
	The SNES code was performing very specific checks to prevent Forwards and Defense from swapping positions. The GENS code didn't care, so I ported a version of the GENS code to SNES.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="font-size:16px"><u><strong>New Code</strong></u><span><span><span><span><span><u><span><span><span><span>:</span></span></span></span></u></span></span></span></span></span></span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	See uploaded image at the end of the post, if interested.
</p>

<p style="background-color:#ffffff; color:#353c41; text-align:start">
	<span style="font-size:16px"><b><u>Patch:</u></b></span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<font color="#374151">Download the<span> </span><a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow" style="background-color:transparent; color:rgb( var(--theme-link) )" target="_blank">patch tool</a><span> </span>to patch an existing ROM, or create a new one.</font>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37229" data-ratio="83.99" data-unique="otgx0ux0k" width="631" src="https://forum.nhl94.com/uploads/monthly_2024_09/image.png.e1ccfd285f0fe4bb67f09684bb56a131.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Hex Version:</strong></u>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37230" data-ratio="26.58" data-unique="5wg0lczze" width="933" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_09/image.png.f09c4c86f099e460f8af31d0ec905509.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">1) Replace old hex values with new hex values.</span>
</p>

<pre id="ips_uid_9994_12" style="border-bottom-width:1px; border-color:#888888; border-image:initial; border-left-width:4px !important; border-radius:var(--radius-1); border-right-width:1px; border-style:solid; border-top-width:1px; font-size:1em; padding:2px"><span style="color:#000000">===========================
Headerless ROM (.SFC)
===========================
  ROM Offsets: (hex) D8C96
  Old: C9 01 00
  New: 20 78 CE

  ROM Offsets: (hex) DCE78
  Old: FF 
  New: 48 A5 A5 18 6D 9F 1D 85 95 AE 9F 1D E8 A5 95 20 72 
       8D CF 8F 1D 9F F0 07 C6 95 CA D0 F0 80 1E CA A5 A5 
       18 6D 9F 1D ED 8B 1D 85 95 20 72 8D 48 A5 A5 86 AF 
       18 6D AF 00 85 95 68 20 7C 8D 68 C9 01 00 60

===========================
Headered ROM (.SMC)
===========================
  ROM Offsets: (hex) D8E96
  Old: C9 01 00 
  New: 20 78 CE

  ROM Offsets: (hex) DD078
  Old: FF
  New: 48 A5 A5 18 6D 9F 1D 85 95 AE 9F 1D E8 A5 95 20 72
  8D CF 8F 1D 9F F0 07 C6 95 CA D0 F0 80 1E CA A5 A5
  18 6D 9F 1D ED 8B 1D 85 95 20 72 8D 48 A5 A5 86 AF
  18 6D AF 00 85 95 68 20 7C 8D 68 C9 01 00 60</span></pre>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="37228" href="https://forum.nhl94.com/uploads/monthly_2024_09/image.png.c48818f3e4e891d028e1e67bf7834b82.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37228" data-ratio="141.78" width="529" src="https://forum.nhl94.com/uploads/monthly_2024_09/image.thumb.png.eb0b01484f1ecb5bdc14d1d8e1351abc.png"></a>
</p>
]]></description><guid isPermaLink="false">34239</guid><pubDate>Tue, 24 Sep 2024 18:20:37 +0000</pubDate></item><item><title>HOW TO: Fix Hot/Cold Bonus Bug [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/33959-how-to-fix-hotcold-bonus-bug-snes/</link><description><![CDATA[<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	 
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="font-size:16px"><strong><u>Problem:</u></strong></span><br>
	There is a bug in the SNES code responsible for calculating the Hot/Cold Bonus for every player attribute (Speed, Agility, etc.).<br>
	As a result, no attribute receives a negative bonus; instead, the attribute is consistently given the maximum boost (15) if the bonus was negative.<br>
	An unsigned division error caused the bug, the details can be found <a href="https://forum.nhl94.com/index.php?/topic/20408-in-game-bonuses-to-player-attributes/&amp;do=findComment&amp;comment=206428" rel="">here</a>.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Solution:</strong></u><br>
	Fix the division error if the Boost is negative, preventing the Max Boost from being applied. This limits the Boost from (-3 to +3) per attribute as intended.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Technical Details:</strong></u><br>
	We convert the negative number to positive for the division, then revert it to negative and apply the bonus. If the number was already positive, no changes are required.
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="font-size:16px"><u><strong>New Code</strong></u><span><span><span><span><span><u><span><span><span><span>:</span></span></span></span></u></span></span></span></span></span></span><br>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37156" data-ratio="29.01" data-unique="5xl3utdu9" width="941" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.a6c2e36f140ec9e662d5a6ca79376701.png"><br>
	<br>
	Special thanks to <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/1232-chaos/&amp;do=hovercard" data-mentionid="1232" href="https://forum.nhl94.com/index.php?/profile/1232-chaos/" id="ips_uid_9994_8" rel="">@chaos</a> for helping with the assembly and providing GENS documentation on player attributes, bonuses etc.
</p>

<p style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;">
	<span style="font-size: 16px;"><b><u>Patch:</u></b></span>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<font color="#374151">Download the<span> </span><a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow" style="background-color:transparent; color:rgb( var(--theme-link) )" target="_blank">patch tool</a><span> </span>to create your own ROM or patch an existing ROM.</font>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37157" data-ratio="79.59" data-unique="jhc049csf" width="627" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.3d3a1635de2b6e9666949d8d58a1d1d4.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<u style="background-color:#ffffff; color:#353c41; font-size:16px; text-align:start"><strong>Hex Version:</strong></u>
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37158" data-ratio="11.68" data-unique="4hvmts682" width="942" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.c48dd568e3f325cc7b2a27f634b54022.png">
</p>

<p style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">
	<span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">1) Replace old hex value with new hex value.</span>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_9994_12" style=""><span class="pln">===========================
Headerless ROM (.SFC)
===========================
  ROM Offsets: (hex) FD224
  Old: B9 12 1A 4A 4A
  New: 20 32 FB EA EA

  ROM Offsets: (hex) FFB32
  Old: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  New: B9 12 1A 10 09 49 FF 1A 4A 4A 49 FF 1A 60 4A 4A 60

===========================
Headered ROM (.SMC)
===========================
  ROM Offsets: (hex) FD434
  Old: B9 12 1A 4A 4A
  New: 20 32 FB EA EA

  ROM Offsets: (hex) FFD32
  Old: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  New: B9 12 1A 10 09 49 FF 1A 4A 4A 49 FF 1A 60 4A 4A 60</span></pre>

<p>
	<a class="ipsAttachLink" data-fileext="zip" data-fileid="37159" href="https://forum.nhl94.com/applications/core/interface/file/attachment.php?id=37159&amp;key=0ee91cdeae67ae61035651dfda2a11c0" rel="">NHL '94 (USA)_Hot_Cold_Patched.zip</a>
</p>
]]></description><guid isPermaLink="false">33959</guid><pubDate>Fri, 30 Aug 2024 20:22:24 +0000</pubDate></item><item><title>HOW TO: Skip EA + Flying Pucks Intro [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/33458-how-to-skip-ea-flying-pucks-intro-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Skip EA + Flying Pucks Intro Screens</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong></span><br>
	It takes forever [24 Seconds] before you get to the "Game Setup" screen on the SNES version of 94. We would like to speed this up similar to the GENS version [4 Seconds].<br>
	<br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u></span>
</p>

<p>
	Simply skip the code that loads the EA Sports Screen, and the Flying Pucks Screen. This now takes less than 4 seconds to get to the "Game Setup" Screen
</p>

<p>
	<span style="font-size:16px;"><u><strong>Technical Details:</strong></u></span>
</p>

<p>
	The code below is executed when the ROM starts up.
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37110" data-ratio="22.14" data-unique="o10aooa16" width="533" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.bd88fa205c54db383b207d75eb550ebc.png"> 
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;"><strong>Code</strong>:</span></font>
</p>

<ol>
	<li>
		Change the JSL (Jump Sub-Routine) to NOP (No Operation) to skip the EA Intro
	</li>
	<li>
		Change the JSL (Jump Sub-Routine) to NOP (No Operation) to skip the Flying Pucks Intro
	</li>
</ol>

<p>
	<span style="font-size:16px;"><strong>New Code</strong><span><span><span><span><span>:</span></span></span></span></span></span>
</p>

<p>
	<font color="#374151">Download the <a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow">patch tool</a> to create your own ROM or patch an existing ROM.</font>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37111" data-ratio="73.16" data-unique="x7x7ne8om" width="637" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.d07c688eb2ed609e7754d5a451e4516b.png">
</p>

<p>
	<span style="font-size:16px;"><u><strong>Hex Version:</strong></u></span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="37114" data-ratio="21.47" data-unique="2bldl77vd" width="587" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.2a8635d7e1093c4f2f4b653fe3e02e46.png">
</p>

<p>
	1) Replace old hex value with new hex value.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_8451_6" style=""><span class="pln">Headerless ROM (.SFC)
  ROM Offsets: (hex) F8289
  Old: 22 36 F4 9F
  New: EA EA EA EA

  ROM Offsets: (hex) F82C0
  Old: 22 18 B1 9D
  New: EA EA EA EA

Headered ROM (.SMC)
  ROM Offsets: (hex) F8489
  Old: 22 36 F4 9F
  New: EA EA EA EA

  ROM Offsets: (hex) F84C0
  Old: 22 18 B1 9D
  New: EA EA EA EA</span></pre>

<p>
	   
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">33458</guid><pubDate>Mon, 12 Aug 2024 16:24:03 +0000</pubDate></item><item><title>HOW TO: Fix Y Button Bug Allowing Checked Players to Instantly Stand Up [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/33441-how-to-fix-y-button-bug-allowing-checked-players-to-instantly-stand-up-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Fix Y Button Bug Allowing Checked Players to Instantly Stand Up</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong></span><br>
	When a player is knocked down, pressing the Y button causes them to get up instantly. This behavior doesn't occur on GENS or the previous version, NHLPA 93.
</p>

<p>
	The knocked down player should stay down for 3 seconds as intended.<br>
	<br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u></span>
</p>

<p>
	The Y button performs a 'Hook / Hold' animation when you don't have the puck. The existing code already prevents "Hook/Hold" if your player is "Speed Boosting"
</p>

<ul>
	<li>
		To improve this, we add an additional check when the Y button is pressed to determine if the controlled player's animation is in the 'Knocked Down' position.
	</li>
	<li>
		If the player is knocked down, exit the routine without performing the "Hook / Hold" animation similar to "Speed Boosting" code.
	</li>
</ul>

<p>
	<span style="font-size:16px;"><u><strong>Technical Details:</strong></u></span>
</p>

<p>
	The code below is executed when the Y button is pressed without the puck. 
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;"><strong>Code</strong>:</span></font>
</p>

<ol>
	<li>
		Load the selected player animation/action, 0 = Standing, 1 = Knocked Down or Passing, 8 = Slapshot, F342 = Speed Boost
	</li>
	<li>
		Check if the player is knocked down
	</li>
	<li>
		If the player is knocked down then branch to RTL (Exit).
	</li>
	<li>
		If the Player is <strong>NOT </strong>knocked down then continue back to the original code.
	</li>
</ol>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37101" data-ratio="16.42" data-unique="trzlp0fpw" width="889" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.80ba62ede581be08a4f847513897bd96.png">
</p>

<p>
	<span style="font-size:16px;"><strong>New Code</strong><span><span><span><span><span>:</span></span></span></span></span></span>
</p>

<p>
	<font color="#374151">Download the <a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow">patch tool</a> to create your own ROM or patch an existing ROM.</font>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37098" data-ratio="68.03" data-unique="zhfasd0qw" width="610" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.b9bab2617aa42fa4e423da5b68dd4c40.png">
</p>

<p>
	<span style="font-size:16px;"><u><strong>Hex Version:</strong></u></span>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="37099" data-ratio="24.68" data-unique="kbi8tl7ns" width="709" src="https://forum.nhl94.com/uploads/monthly_2024_08/image.png.07f9f0a72ab2f61337e70b9346443cb7.png">
</p>

<p>
	1) Replace old hex value with new hex value.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_7619_6" style=""><span class="pln">Headerless ROM (.SFC)
  ROM Offsets: (hex) F2251
  Old: BD E3 14
  New: 4C C5 FB

  ROM Offsets: (hex) F7BC5
  Old: FF FF FF FF FF FF FF FF FF FF FF FF
  New: BD E3 14 C9 01 00 F0 03 4C 56 A2 6B

Headered ROM (.SMC)
  ROM Offsets: (hex) F2451
  Old: BD E3 14
  New: 4C C5 FB

  ROM Offsets: (hex) F7DC5
  Old: FF FF FF FF FF FF FF FF FF FF FF FF
  New: BD E3 14 C9 01 00 F0 03 4C 56 A2 6B</span></pre>

<p>
	   
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">33441</guid><pubDate>Sat, 10 Aug 2024 17:35:37 +0000</pubDate></item><item><title>How To: Disable/Reduce Puck Hitting Goal Posts [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/30441-how-to-disablereduce-puck-hitting-goal-posts-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Disable / Reduce frequency of the puck hitting the posts</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong></span><br>
	Reduce the Insane amount of times the puck hits the post in SNES.<br>
	<br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u></span><br>
	There are a few things you can do:
</p>

<ul>
	<li>
		Remove the check to see if the puck hits the cross bar or post, this results in a goal when it normally would hit the post.
	</li>
	<li>
		Keep the check but make the cross bar height higher and or the side posts further out.
	</li>
	<li>
		Keep the Crossbar check but skip the posts check. This would probably be the best balance if you still want some posts in the game.
	</li>
</ul>

<p>
	<span style="font-size:16px;"><u><strong>Technical Details:</strong></u></span>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">The code below is executed when the puck is about to go into the net. As mentioned above there are a few hacks you can apply.</span></font>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;"><strong>Code</strong>:</span></font>
</p>

<ol>
	<li>
		<font color="#374151"><span style="font-size: 16px;">Hijacking the code at this location; we can jump to the goal logic (jmpToGoalLogic) and skip all the post checks. (Always a goal, no post)</span></font>
	</li>
	<li>
		<font color="#374151"><span style="font-size: 16px;">Changing this value from #$000D to a larger hex value (000F) will make the crossbar height higher (Not visually just in code)</span></font>
	</li>
	<li>
		<font color="#374151"><span style="font-size: 16px;">Changing this value from #$0012 to a larger hex value (0014) should make one side of the net wider (Not visually just in code)</span></font>
	</li>
	<li>
		<font color="#374151"><span style="font-size: 16px;">Changing this value from #$FFEF to a smaller hex value (FFEB) should make the other side of the net wider (Not visually just in code)</span></font>
	</li>
</ol>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36585" data-ratio="29.25" data-unique="kqj2n9kbf" width="735" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.e792a880d1bfe265d7f3529d7879b8ff.png">
</p>

<p>
	<span style="font-size:16px;"><strong>New Code</strong>:</span>
</p>

<p>
	<span style="font-size: 16px;">I simply chose option 1; to skip all the logic that checks if the post was hit, and always jump to the Goal Logic.</span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36587" data-ratio="4.70" data-unique="1sralr534" width="553" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.c96fa2453f70252da9c9f8520859feae.png">
</p>

<p>
	<span style="font-size: 16px;">I have included that patch in the tool and the Hex example below.</span>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">Download the patch tool to create your own ROM or patch an existing ROM.</span></font>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36584" data-ratio="60.39" data-unique="6y517rn50" width="611" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.2e230bf6968ccffa39da10f8abfed641.png">
</p>

<p>
	<a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" ipsnoembed="true" rel="external nofollow">https://github.com/Mhopkinsinc/NHL94SNESVault/releases</a>
</p>

<p>
	<span style="font-size:16px;"><u><strong>Hex Version:</strong></u></span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36586" data-ratio="9.31" data-unique="y56z5p1ba" width="838" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.7dbeca2fda3aaf13d477d998039df296.png">
</p>

<p>
	1) Replace old hex value with new hex value.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_7752_6" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) F1230
Old: AD F9 0D
New: 4C 0F 92

Headered ROM (.SMC)
ROM Offsets: (hex) F1430
Old: AD F9 0D 
New: 4C 0F 92</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">30441</guid><pubDate>Wed, 13 Mar 2024 03:12:06 +0000</pubDate></item><item><title>How To: Disable Penalty Shots [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/30144-how-to-disable-penalty-shots-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Disable Penalty Shots</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong></span><br>
	Request for the option to turn off Penalty Shots.<br>
	<br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u></span><br>
	This hack allows you to disable Penalty Shots regardless if Penalties are On or Off.
</p>

<p>
	<span style="font-size:16px;"><u><strong>Technical Details:</strong></u></span>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">The change is simple but finding it was tricky. We just have to branch to the code that signals no penalty shot.</span></font>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;"><strong>Old Code</strong>:</span></font>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">1) Checks if the BreakAwayActive flag is set and if it is, Branches to 9EC068, this code sets up a flag to call a penalty shot.<br>
	2) The code at 9EC068 Sets a flag to call a penalty shot by setting the value to #$FFFF</span></font>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36496" data-ratio="24.73" data-unique="758n1ur9e" width="918" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.f77e8c4ce781412b99dc20d8f783cc2c.png">
</p>

<p>
	<span style="font-size:16px;"><strong>New Code</strong>:</span>
</p>

<p>
	<span style="font-size:16px;">1) Still checks if the BreakAwayActive flag is set but now it Branches to 9EC06D instead of the 9EC068<br>
	2) The code at 9EC06D sets a flag to signal <strong>NO</strong> penalty shot by setting the value to #$0000</span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36497" data-ratio="25.33" data-unique="0eu9bhaw3" width="904" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.0cdb229196d61398fcfc493fec3f4a54.png">
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">Download the patch tool to create your own ROM or patch an existing ROM</span></font>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36498" data-ratio="39.97" data-unique="dehdadjdn" width="613" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.83dda958be96fc97ac3acc95b274addc.png">
</p>

<p>
	<a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" ipsnoembed="true" rel="external nofollow">https://github.com/Mhopkinsinc/NHL94SNESVault/releases</a>
</p>

<p>
	<span style="font-size:16px;"><u><strong>Hex Version:</strong></u></span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36501" data-ratio="12.06" data-unique="w7tzdsn3v" width="788" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_03/image.png.5bfa14f7101ea201a215c954af4eb10b.png">
</p>

<p>
	1) Replace old hex value with new hex value.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_4924_7" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) F4064
Old: 03 
New: 08

Headered ROM (.SMC)
ROM Offsets: (hex) F4264
Old: 03 
New: 08</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">30144</guid><pubDate>Sat, 02 Mar 2024 18:24:10 +0000</pubDate></item><item><title>How To: Manual Pull Goalie L+R Tigger [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/29778-how-to-manual-pull-goalie-lr-tigger-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Pull Goalie with L+R Trigger</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong></span><br>
	Pausing the game to pull the goalie kills game flow.<br>
	<br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u></span><br>
	This hack allows you to pull / insert the goalie by pressing L+R trigger buttons. Also plays the beep SFX to notify users of the action.
</p>

<p>
	<span style="font-size:16px;"><u><strong>Technical Details:</strong></u></span>
</p>

<p>
	<span style="color:#374151; font-size:16px; text-align:start">Similar to the <a href="https://forum.nhl94.com/index.php?/topic/13921-how-to-have-defense-ctrl-on-by-default/&amp;do=findComment&amp;comment=112601" rel="">"Defense Ctrl"</a> code injection method, we have to swap out some of the existing code and insert a jump to new code that we create. This new code will be placed in the free space at the end of the 9E bank.</span>
</p>

<p>
	<span style="color:#374151; font-size:16px; text-align:start"><strong>Old Code</strong>:</span>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36460" data-ratio="10.95" data-unique="lnkw7y898" width="776" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.e5936f892ed02661c08e3130a9c60f3a.png">
</p>

<p>
	<strong>Hijack </strong>Instruction LDY.B and LDA.W and JSR (Jump) to the new code we wrote.
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36461" data-ratio="10.57" data-unique="at0je99jk" width="776" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.379a82ec06859d84caae4beede92fd35.png">
</p>

<p>
	<strong>Run new code</strong> that checks if the goalie is in net and if L+R are pressed for player 1 or 2.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="36462" href="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.ebd0c4085e16d85b8d678127052455ff.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36462" data-ratio="84.94" data-unique="mhppdvov3" width="883" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.thumb.png.6ef4b66156c12eec32d1d8881bc367e7.png"></a>
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">I have included the rom to play around with or compare for differences if interested. Or you can download the tool and create your own ROM.</span></font>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36463" data-ratio="34.00" data-unique="k31j4rg46" width="603" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.0af9fd0eb6eb61464b68ff0ac2d1dbb1.png">
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36464" data-ratio="35.78" data-unique="5fhncd8hc" width="612" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.308cacbb751e77a9f7ac25f61a3eec33.png">
</p>

<p>
	<a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" ipsnoembed="true" rel="external nofollow">https://github.com/Mhopkinsinc/NHL94SNESVault/releases</a>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="sfc" data-fileid="36465" href="https://forum.nhl94.com/applications/core/interface/file/attachment.php?id=36465&amp;key=b9df114a1f31b833f07805e344ac5d1d" rel="">nhl94.sfc</a>
</p>

<p>
	<span style="font-size:16px;"><u><strong>Hex Version:</strong></u></span>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="36468" href="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.f3adccecfb07dc05f9a5bdfdc227e7b7.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36468" data-ratio="24.10" data-unique="x5dcthxwa" width="1000" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.thumb.png.48be6188c56fb96eb6a72f313f115eb7.png"></a>
</p>

<p>
	1) Hijack old code and point to the new code
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_5404_5" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) F50BF-F50C3
Old: A4 91 B9 AA 17 
New: 20 6E FB EA EA

Headered ROM (.SMC)
ROM Offsets: (hex) F52BF-F52C3
Old: A4 91 B9 AA 17 
New: 20 6E FB EA EA</span></pre>

<p>
	2) Insert new code that allows you to pull goalie with L+R Trigger
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_5404_7" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) F7B6E-F7BC4
OLD: FF's
NEW: A2 00 00 AC 91 00 B9 AA 17 C9 00 FF D0 01 60 B9 C1 FB DD 84 1C F0 09 E8 E8 E0 04 00 D0 F1 80 2D BD 76 07 29 FF 00 C9 30 00 D0 22 B9 AA 17 F0 07 C9 FF FF F0 02 80 16 49 FF FF 99 AA 17 22 07 D4 9F A9 00 70 85 64 A9 05 00 22 7D A1 80 A4 91 B9 AA 17 60 01 00 02 00

Headered ROM (.SMC)
ROM Offsets: (hex) F7D6E-F7DC4
OLD: FF's
NEW: A2 00 00 AC 91 00 B9 AA 17 C9 00 FF D0 01 60 B9 C1 FB DD 84 1C F0 09 E8 E8 E0 04 00 D0 F1 80 2D BD 76 07 29 FF 00 C9 30 00 D0 22 B9 AA 17 F0 07 C9 FF FF F0 02 80 16 49 FF FF 99 AA 17 22 07 D4 9F A9 00 70 85 64 A9 05 00 22 7D A1 80 A4 91 B9 AA 17 60 01 00 02 00</span></pre>

<p>
	<span style="font-size:16px;"><u><strong>Limitations:</strong></u></span>
</p>

<ul>
	<li>
		This only works for Player 1 and Player 2, if both players are on the same team, Player 1 gets control of this option.
	</li>
	<li>
		Only works during game play, you can't pull / insert your goalie in between whistles.
	</li>
</ul>
]]></description><guid isPermaLink="false">29778</guid><pubDate>Mon, 19 Feb 2024 21:58:28 +0000</pubDate></item><item><title>How To: Enable 1 Minute Penalties [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/28175-how-to-enable-1-minute-penalties-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Enable 1 Minute Penalties</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong><br>
	The SNES rom crashes when you try to modify penalties to be 1 minute, as the<font color="#374151"> game developers never expected there to be 1 minute penalties.</font></span><br>
	<br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u><br>
	Modify the penalty length in the ROM and skip the problematic check for 0 or 1 if the penalty length is one minute.</span>
</p>

<p>
	<span style="font-size:16px;"><u><strong>Technical Details:</strong></u></span>
</p>

<p>
	<span style="color:#374151; font-size:16px; text-align:start">Similar to the <a href="https://forum.nhl94.com/index.php?/topic/13921-how-to-have-defense-ctrl-on-by-default/&amp;do=findComment&amp;comment=112601" rel="">"Defense Ctrl"</a> code injection method, we have to swap out some of the existing code and insert a jump to new code that we create. This new code will be placed in the free space at the end of the 9E bank.</span>
</p>

<p>
	<span style="color:#374151; font-size:16px; text-align:start"><strong>Problem Code</strong>:</span>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36439" data-ratio="20.31" data-unique="jdlth9c6s" width="773" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.fa53ad0bc4df75f7bd8024776c7e5270.png">
</p>

<p>
	<strong>Hijack </strong>Instruction before the problem code and run new code (One_Min_Pen)
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36440" data-ratio="20.44" data-unique="6gpwkgsy6" width="778" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.9451a7e32647f6e884d77618f754250a.png">
</p>

<p>
	<strong>Run new code</strong> to skip the compare if we know its a one minute penalty and continue like normal as if it was a 2 min penalty.
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36441" data-ratio="27.59" data-unique="u1akz8kmn" width="870" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.fc288bdf032ead7faf157a6efb298dd0.png">
</p>

<p>
	<font color="#374151"><span style="font-size: 16px;">I have included the 1 min penalty rom to play around with or compare for differences if interested. Or you can download the tool and create your own ROM.</span></font>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36442" data-ratio="33.71" data-unique="aj4ot6438" width="614" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.9deb87be27c7900fea2e328f4b5b8ddb.png"><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36443" data-ratio="36.23" data-unique="6snilm4cx" width="610" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.22bfd33d8fd99c6b2d241c5e7f2aa250.png">
</p>

<p>
	<a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" ipsnoembed="true" rel="external nofollow">https://github.com/Mhopkinsinc/NHL94SNESVault/releases</a>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="sfc" data-fileid="36444" href="https://forum.nhl94.com/applications/core/interface/file/attachment.php?id=36444&amp;key=8718ec1cfb806dd5e8558d4d770785a5" rel="">nhl94.sfc</a>
</p>

<p>
	<span style="font-size:16px;"><u><strong>Hex Version:</strong></u></span>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="36448" href="https://forum.nhl94.com/uploads/monthly_2024_02/image.png.e52eb13eb1422f62d6964b5e28198cf1.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36448" data-ratio="33.80" data-unique="tqmhuy5h2" width="1000" src="https://forum.nhl94.com/uploads/monthly_2024_02/image.thumb.png.bd30cf9ca30611ca2c0230b5318e90ec.png"></a>
</p>

<p>
	1) Change all the penalties from 02 minutes to 01 minutes.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_4971_12" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) 54C7,54E9,550B,552B,554B,556B,558C,55B1,55C9
Change:02 to 01

Headered ROM (.SMC)
ROM Offsets: (hex) 56C7,56E9,570B,572B,574B,576B,578C,57B1,57C9
Change:02 to 01</span></pre>

<p>
	2) Hijack old code and point to the new code
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_4971_8" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) F3417-F3419
Change:29 FF 00 to 4C 5B FB

Headered ROM (.SMC)
ROM Offsets: (hex) F3617-F3619
Change:29 FF 00 to 4C 5B FB</span></pre>

<p>
	3) Insert new code that fixes the bug
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_4971_15" style=""><span class="pln">Headerless ROM (.SFC)
ROM Offsets: (hex) F7B5B-F7B6D
Change: FF's to C9 01 04 F0 05 C9 01 0A D0 03 4C 21 B4 29 FF 00 4C 1A B4

Headered ROM (.SMC)
ROM Offsets: (hex) F7D5B-F7D6D
Change: FF's to C9 01 04 F0 05 C9 01 0A D0 03 4C 21 B4 29 FF 00 4C 1A B4</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">28175</guid><pubDate>Wed, 13 Dec 2023 01:16:07 +0000</pubDate></item><item><title>NHL 94' [SNES] ROM / RAM Hacking School Thread Guide</title><link>https://forum.nhl94.com/index.php?/topic/28955-nhl-94-snes-rom-ram-hacking-school-thread-guide/</link><description><![CDATA[<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>NHL 94 [SNES] ROM / RAM Hacking School</strong></span></span>
</p>

<hr>
<p>
	As a tribute to <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/1144-tony-h/&amp;do=hovercard" data-mentionid="1144" href="https://forum.nhl94.com/index.php?/profile/1144-tony-h/" id="ips_uid_2010_5" rel="">@Tony H</a> and his <span ipsnoautolink="true">ROM hacking tutorial</span> on the <a href="https://forum.nhl94.com/index.php?/topic/3474-reference-nhl-94-rom-hacking-school/" rel="">GENS</a> side, I have created a version of his tutorials for SNES.
</p>

<p>
	<span style="font-size:18px;"><strong>SNES Tutorials</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28954-how-to-nhl-94-snes-rom-ram-hacking-school-finding-ram-values/" rel="">Finding RAM values</a> like the ones used to identify how the <a href="https://forum.nhl94.com/index.php?/topic/28923-how-to-pull-cpu-goalie-earlier-when-losing-by-how-many-goals-snes/" rel="">CPU pulls the goalie</a>.
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28956-how-to-nhl-94-snes-rom-ram-hacking-school-trace-logging/" rel="">Trace Logging RAM</a> values to see what code is being run
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>Tools that you need</strong></span>
</p>

<hr>
<ol>
	<li>
		SNES debug emulator <a href="https://github.com/SourMesen/Mesen2?tab=readme-ov-file#development-builds" rel="external nofollow">MESEN2</a>
	</li>
	<li>
		NHL 94' rom in .sfc or .smc format
	</li>
</ol>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">28955</guid><pubDate>Wed, 31 Jan 2024 21:37:22 +0000</pubDate></item><item><title>Real Time Clock Hack [Ported to SNES]</title><link>https://forum.nhl94.com/index.php?/topic/28924-real-time-clock-hack-ported-to-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Real Time Clock [SNES]</span></strong>
</p>

<hr>
<p>
	<u><strong>Note:</strong></u><br>
	Full credit to <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/10263-brodeur30/&amp;do=hovercard" data-mentionid="10263" href="https://forum.nhl94.com/index.php?/profile/10263-brodeur30/" id="ips_uid_349_15" rel="">@Brodeur30</a> &amp; <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/2578-kingraph/&amp;do=hovercard" data-mentionid="2578" href="https://forum.nhl94.com/index.php?/profile/2578-kingraph/" rel="">@kingraph</a> for the <a href="https://forum.nhl94.com/index.php?/topic/17900-real-time-clock-in-nhl-94-genesis/&amp;do=findComment&amp;comment=172322" rel="">original</a> GENS hack.
</p>

<p>
	<span style="font-size:16px"><strong><u>Problem:</u></strong></span><br>
	Request for the Real Time Clock feature to be implemented on the SNES. This enables period and penalty durations to correspond with actual real-world time, meaning a 5-minute period is equivalent to 5 real minutes.<br>
	<br>
	<font color="#374151"><span style="font-size:16px"><u><strong>Modify The Time Clock To Be Real Time:</strong></u></span></font><br>
	<font color="#374151">Want to make the time clock use real time instead of 2.5x speed?</font>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_349_5" style=""><span class="pln">ROM Offset: (hex)F85B6-F85B7
Change: AA 0A to 44 04</span></pre>

<p>
	<span style="color:#374151; text-align:start">The above change will slow the clock down to real time.</span>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36354" data-ratio="19.82" data-unique="hwgdmmmwg" width="651" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.447e117ce25865139d0bc6c7bfb4f6d4.png">
</p>

<p>
	<font color="#374151"><span style="font-size:16px"><u><strong>Modify The Penalty Clock To Be Real Time:</strong></u></span></font><br>
	<font color="#374151">Want to make the penalty clock real time?</font>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_349_8" style=""><span class="pln">ROM Offset: (hex)F3F66-F3F67
Change: 18 00 to 3C 00</span></pre>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36356" data-ratio="18.06" data-unique="6l7r1pgqq" width="648" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.afba42f0d0243682b3068661644249dd.png">
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_349_13" style=""><span class="pln">ROM Offset: (hex)F8668-F8669
Change: 18 00 to 3C 00</span></pre>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36355" data-ratio="18.57" data-unique="gfjllfcol" width="657" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.cdc4f8a7bd6b615b078f3e5cd569379f.png">
</p>

<p>
	The above 2 changes will make the penalty clock real time.
</p>

<p>
	<span style="font-size:16px"><strong><u>BONUS INFO:</u></strong></span><br>
	This is all setup already on the <a href="https://github.com/Mhopkinsinc/NHL94SNESVault" rel="external nofollow">SNES GitHub repo</a> along with other Hacks. Check it out!
</p>
]]></description><guid isPermaLink="false">28924</guid><pubDate>Tue, 30 Jan 2024 00:47:35 +0000</pubDate></item><item><title><![CDATA[HOW TO: Pull CPU Goalie earlier when losing & by how many goals [SNES]]]></title><link>https://forum.nhl94.com/index.php?/topic/28923-how-to-pull-cpu-goalie-earlier-when-losing-by-how-many-goals-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Pull CPU Goalie earlier when losing [SNES]</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px"><strong><u>Problem:</u></strong></span><br>
	Would like the CPU to pull its goalie earlier in the 3rd period when losing by 1 or more goals.<br>
	<br>
	<font color="#374151"><span style="font-size:16px"><u><strong>Pull CPU Goalie earlier in the 3rd:</strong></u></span></font><br>
	<font color="#374151">Want to change how early the CPU pulls its goalie when losing?</font>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_2941_14" style=""><span class="pln">ROM Offset: (hex)00F5150-00F5151
Change: 3D 00 to 96 00</span></pre>

<p>
	<span style="color:#374151; text-align:start">The above change will pull the goalie with 2:30 remaining in the 3rd period.</span>
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36352" data-ratio="18.29" data-unique="mlng307m9" width="656" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.e007ec120c0dda3a846a0733119c25bb.png">
</p>

<p>
	<font color="#374151"><span style="font-size:16px"><u><strong>Pull CPU Goalie when losing by more than 2 goals:</strong></u></span></font><br>
	<span style="color:#374151; text-align:start">You can also modify how many goals the CPU is losing by when the goalie gets pulled.</span>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_2941_10" style=""><span class="pln">ROM Offset: (hex)000F5148
Change: 03 to 04</span></pre>

<p>
	The above change will pull the goalie when losing by 1, 2 or 3 goals.
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36353" data-ratio="18.32" data-unique="j38gf5708" width="704" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2024_01/image.png.12ed05f165543e2b59d652f57cb02d01.png">
</p>

<p>
	<span style="font-size:16px"><strong><u>BONUS INFO:</u></strong></span><br>
	This is all setup already on the <a href="https://github.com/Mhopkinsinc/NHL94SNESVault" rel="external nofollow">SNES GitHub repo</a> along with other Hacks. Check it out!
</p>
]]></description><guid isPermaLink="false">28923</guid><pubDate>Tue, 30 Jan 2024 00:02:54 +0000</pubDate></item><item><title>HOW TO: Enable Hidden "30 Second" Periods. [SNES]</title><link>https://forum.nhl94.com/index.php?/topic/28168-how-to-enable-hidden-30-second-periods-snes/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Enable Hidden "30 Second" Periods</span></strong>
</p>

<hr>
<p>
	<font color="#374151"><span style="font-size: 16px;">I think this hack was originally found in the <span ipsnoautolink="true">GENS</span> version but may not have been fully documented. Here is the link to my <a href="https://forum.nhl94.com/index.php?/topic/28165-how-to-enable-hidden-30-second-periods/" rel="">GENS</a> post, its slightly different.</span></font>
</p>

<p>
	<span style="color:#374151; font-size:16px; text-align:start">Guess what? Buried deep in the ROM, like a pirate's treasure, there's a sneaky '30 Second' period option playing hide-and-seek! If you're up for a bit of digital treasure hunting and want to unlock this secret in your ROM, just tweak these Hex values</span>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_4791_16" style=""><span class="pln">Headerless Rom
ROM Offset: (hex) 000EACD7 
Change: 03 to 04</span></pre>

<p>
	<span style="color:#374151; font-size:16px; text-align:start">It's like whispering a secret code to open a hidden chamber! But beware, once you activate it, your game time could disappear faster than a fart in the wind – one minute you're playing, the next, poof! It's all over!</span>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.81e9d5a33e6fefdf87b25b7542e8335a.png" data-fileid="36100" data-fileext="png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36100" data-ratio="106.17" width="632" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.81e9d5a33e6fefdf87b25b7542e8335a.png"></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.979012fd2e51f8817af0d6f7a725532a.png" data-fileid="36101" data-fileext="png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36101" data-ratio="88.8" width="518" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.979012fd2e51f8817af0d6f7a725532a.png"></a>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="sfc" data-fileid="36102" data-filekey="3fe5fc43758ab0a3746454550865cab0" href="https://forum.nhl94.com/applications/core/interface/file/attachment.php?id=36102&amp;key=3fe5fc43758ab0a3746454550865cab0" rel="">nhl94.sfc</a>
</p>
]]></description><guid isPermaLink="false">28168</guid><pubDate>Tue, 12 Dec 2023 21:18:31 +0000</pubDate></item><item><title>SNES Editing the Game - Thread Guide [NHL 94]</title><link>https://forum.nhl94.com/index.php?/topic/28166-snes-editing-the-game-thread-guide-nhl-94/</link><description><![CDATA[<p>
	<span style="font-size:18px;"><span style="background-color: rgb(255, 255, 255); color: rgb(53, 60, 65); text-align: start;"><strong>NHL 94 SNES</strong></span></span>
</p>

<hr>
<p>
	<span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">This post contains information about the SNES version of NHL 94'. </span>Similar to the thread created on the <a href="https://forum.nhl94.com/index.php?/topic/8090-gens-editing-the-game-thread-guide-newbs-start-here/" rel="">GENS side</a>, I thought I would try and get this going on the SNES side as well. I have also created a <span ipsnoautolink="true">GITHUB</span> repository (<a href="https://github.com/Mhopkinsinc/NHL94SNESVault" rel="external nofollow">NHL 94' SNESVault</a>), that contains a disassembled version of NHL 94' for SNES. The goal is to have the <a href="https://github.com/Mhopkinsinc/NHL94SNESVault" rel="external nofollow">GITHUB</a> repository contain all the documentation and code for the SNES version of NHL 94'
</p>

<p>
	<span style="font-size:18px;"><strong>Last update</strong></span>
</p>

<hr>
<ul>
	<li>
		Last Update 03.07.2025
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 94' Editors</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/11993-editor-v081/" rel="">SNES 94' Editor</a> [Team / Player editor] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/1659-statto/&amp;do=hovercard" data-mentionid="1659" href="https://forum.nhl94.com/index.php?/profile/1659-statto/" id="ips_uid_8438_9" rel="">@statto</a>
	</li>
	<li>
		<a href="https://github.com/clandrew/nhl94e" rel="external nofollow">nhl94e</a> [NHL 94' Player name &amp; stats editor / Import new Player profile images] @haydenkale
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 94' Tools</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://github.com/Mhopkinsinc/NHL94SNESVault/releases" rel="external nofollow">SNES 94' Hacks Tool</a> [Apply all available hacks to an existing ROM] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_7351_4" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/16918-tool-snes-94-roster-tool/" rel="">SNES 94' Roster Tool</a> [Export/Import Rosters to/from csv files ] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/1232-chaos/&amp;do=hovercard" data-mentionid="1232" href="https://forum.nhl94.com/index.php?/profile/1232-chaos/" id="ips_uid_8438_5" rel="">@chaos</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/21426-tool-snes-94-player-card-updater-pcu/" rel="">SNES 94 Player Card Updater (PCU)</a> [<span style="background-color:#ffffff; color:#353c41; font-size:14px; text-align:start">Updates all player profiles in a SNES '94 ROM</span>] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/1232-chaos/&amp;do=hovercard" data-mentionid="1232" href="https://forum.nhl94.com/index.php?/profile/1232-chaos/" id="ips_uid_8438_6" rel="">@chaos</a>
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 94' Bug Fixes</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/33441-how-to-fix-y-button-bug-allowing-checked-players-to-instantly-stand-up-snes/" rel="">Y Button Bug Fix</a> [Prevents knocked-down player from instantly standing up when the Y button is pressed.] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_4091_5" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/33959-how-to-fix-hotcold-bonus-bug-snes/" rel="">Hot Cold Bug Fix</a> [Applies proper Hot/Cold Bonus of (-3 to +3) instead of Max 15 when bonus was negative] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_4091_7" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/34239-how-to-fix-missing-extra-attacker-bug-snes/" rel="">Missing Extra Attacker Bug Fix</a> [Properly swaps extra attacker like GENS in Edit Lines.] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_3178_4" rel="">@McMarkis</a>
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 94' Hacks</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28168-how-to-enable-hidden-30-second-periods-snes/" rel="">Enable Hidden "30 Second" Periods</a> <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_3930_4" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28175-how-to-enable-1-minute-penalties-snes/" rel="">Enable 1 Minute Penalties</a> <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_8409_4" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28190-how-to-enable-defense-control-snes-bonus-info/" rel="">Enable Defense Control</a> [Slight modification to the Defense Control with some bonus content] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_9385_5" rel="">@McMarkis</a> original by <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/253-smozoma/&amp;do=hovercard" data-mentionid="253" href="https://forum.nhl94.com/index.php?/profile/253-smozoma/" id="ips_uid_637_5" rel="">@smozoma</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28923-how-to-pull-cpu-goalie-earlier-when-losing-by-how-many-goals-snes/" rel="">Pull CPU Goalie earlier when losing</a> [Pull the goalie earlier and decide by how many goals] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_1124_5" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28924-real-time-clock-hack-ported-to-snes/" rel="">Real Time Clock</a> [Enable <strong>period </strong>and <strong>penalty </strong>durations to correspond with actual real-world time.] <span><a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_6074_4" rel="">@McMarkis</a></span> original: <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/10263-brodeur30/&amp;do=hovercard" data-mentionid="10263" href="https://forum.nhl94.com/index.php?/profile/10263-brodeur30/" id="ips_uid_6162_4" rel="">@Brodeur30</a> <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/2578-kingraph/&amp;do=hovercard" data-mentionid="2578" href="https://forum.nhl94.com/index.php?/profile/2578-kingraph/" id="ips_uid_4311_4" rel="">@kingraph</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/29778-how-to-manual-pull-goalie-lr-tigger-snes/" rel="">Manual Pull Goalie</a> [Use the L+R Trigger to pull the goalie] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_8268_5" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/29990-how-to-disable-interference-penalty-snes/" rel="">Disable Interference Penalty</a> [While keeping all other penalties ON] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_6329_4" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/30144-how-to-disable-penalty-shots-snes/" rel="">Disable Penalty Shots</a> [While keeping all other penalties ON] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_6329_6" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/30441-how-to-disablereduce-puck-hitting-goal-posts-snes/" rel="">Disable / Reduce puck hitting the post</a> [Removes insane number of times the puck hits the post.] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_4088_4" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/33458-how-to-skip-ea-flying-pucks-intro-snes/" rel="">Skip EA + NHL Flying Pucks Intro</a> [Now only takes ~4 seconds to load the game] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_4091_4" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/34241-how-to-allow-all-players-for-every-position-snes/" rel="">Allow all players for every position</a> [Edit Line Hack to allow Forwards &amp; Defense to play any position] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_3150_5" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/34453-how-to-save-show-body-checks-per-player-snes/" rel="">Save &amp; Show Body Checks Per Player</a> [Record Body Checks For/Against. Display Checks For in Player Stats] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_3178_5" rel="">@McMarkis</a>
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/35930-how-to-display-hotcold-bonus-value-in-edit-lines-max-boost-snes/" rel="">Display Hot/Cold Bonus Value in Edit Lines (Max Boost)</a> [Show 100 in Edit Lines for Player Attributes that have the bug] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/&amp;do=hovercard" data-mentionid="191" href="https://forum.nhl94.com/index.php?/profile/191-mcmarkis/" id="ips_uid_5724_4" rel="">@McMarkis</a>
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 94' Graphics</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://github.com/clandrew/nhl94e/tree/main/Decompress2" rel="external nofollow">Decompress2</a> [Extract/Decompress Player Profile Images from SNES 94' rom]
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 94' Audio &amp; Music</strong></span>
</p>

<hr>
<ul>
	<li>
		[TO DO]
	</li>
</ul>

<p>
	<span style="font-size: 18px;"><b>SNES 94' Important Forum Posts</b></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/20408-in-game-bonuses-to-player-attributes/#findComment-206428" rel="">Player Attributes</a>
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>Tutorials</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/28955-nhl-94-snes-rom-ram-hacking-school-thread-guide/" rel="">ROM Hacking School for SNES 94'</a>
	</li>
</ul>

<p>
	<span style="font-size: 18px;"><strong>SNES 94' </strong><b>Roms</b></span>
</p>

<hr>
<ul>
	<li>
		Older [<a href="https://forum.nhl94.com/index.php?/forum/170-snes-roms/" rel="">SNES ROMS</a>]
	</li>
	<li>
		<a href="https://forum.nhl94.com/index.php?/topic/4213-xstiophs-corner/" rel="">Xstioph's Corner</a> [ROMS by the original HEX GOAT] <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/153-xstioph/&amp;do=hovercard" data-mentionid="153" href="https://forum.nhl94.com/index.php?/profile/153-xstioph/" id="ips_uid_4869_4" rel="">@Xstioph</a>
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES Debug Emulators</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://github.com/SourMesen/Mesen2?tab=readme-ov-file#development-builds" rel="external nofollow">MESEN2</a> [SNES emulator with excellent debug tools]
	</li>
	<li>
		<a href="https://github.com/DizTools/bsnes-plus/releases" rel="external nofollow">BSNES-Plus</a> [SNES emulator with great debug tools]
	</li>
	<li>
		<a href="https://www.romhacking.net/utilities/241/" rel="external nofollow">Geiger’s snes9x</a> [SNES emulator with good debug tools]
	</li>
	<li>
		<a href="https://github.com/alekmaul/pvsneslib/wiki/First-steps-with-No%24sns-emulator" rel="external nofollow">no$sns</a> [SNES emulator with good debug tools]
	</li>
	<li>
		<a href="https://www.romhacking.net/utilities/274/" rel="external nofollow">vSNES</a> [Old tool used more for graphics save state debug]
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 65c816 (Assembly) Info</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="http://www.6502.org/tutorials/65c816opcodes.html" rel="external nofollow">65c816</a> [Opcodes for Super Nintendo]
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>SNES 65c816 Tools</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://github.com/RPGHacker/asar" rel="external nofollow">ASAR</a> [SNES assembler / ROM patcher]
	</li>
	<li>
		<a href="https://github.com/IsoFrieze/DiztinGUIsh/tree/master" rel="external nofollow">DiztinGUIsh</a> [SNES disassembler &amp; trace log capture tool.]
	</li>
	<li>
		<a href="https://www.romhacking.net/utilities/26/" rel="external nofollow">LunarAddress</a> [SNES Address Conversion from SNES to PC location]
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>Coding Tools</strong></span>
</p>

<hr>
<ul>
	<li>
		<a href="https://code.visualstudio.com/download" rel="external nofollow">VS Code</a> [Multi OS tool used to edit the disassembled SNES NHL 94' ASM files] 
	</li>
	<li>
		<a href="https://mh-nexus.de/en/hxd/" rel="external nofollow">HxD</a> [Windows based Hex editor for editing a compiled SNES rom]
	</li>
	<li>
		<a href="https://www.scootersoftware.com/" rel="external nofollow">Beyond Compare</a> [Multi OS tool used to compare files for changes/differences]
	</li>
</ul>

<p>
	<span style="font-size:18px;"><strong>F.A.Q</strong></span>
</p>

<hr>
<ul>
	<li>
		What is <a href="https://docs.github.com/en/get-started/quickstart/hello-world#introduction" rel="external nofollow">GITHUB</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">28166</guid><pubDate>Tue, 12 Dec 2023 20:51:59 +0000</pubDate></item><item><title>HOW TO: Enable Defense Control [SNES] + Bonus info</title><link>https://forum.nhl94.com/index.php?/topic/28190-how-to-enable-defense-control-snes-bonus-info/</link><description><![CDATA[<p>
	<strong><span style="background-color:#ffffff; color:#000000; font-size:24px; text-align:start">Turn On Defense Control By Default</span></strong>
</p>

<hr>
<p>
	<span style="font-size:16px;"><strong><u>Note:</u></strong></span><br>
	Full credit to <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/253-smozoma/&amp;do=hovercard" data-mentionid="253" href="https://forum.nhl94.com/index.php?/profile/253-smozoma/" id="ips_uid_4487_7" rel="">@smozoma</a> for the <a href="https://forum.nhl94.com/index.php?/topic/13921-how-to-have-defense-ctrl-on-by-default/&amp;do=findComment&amp;comment=112601" rel="">original </a>hack. This post details the process of incorporating it into the disassembled ROM, allowing it to be recompiled into the game with configurable options. Tutorials to follow in the future on how you can recompile the rom yourself.
</p>

<p>
	<span style="font-size:16px;"><strong><u>Problem:</u></strong></span><br>
	Defense Control is turned off as a default setting in the game, but the majority of SNES players favor having it enabled from the start.<br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36115" data-ratio="32.20" data-unique="r5r9p6io6" width="354" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.795613a5441059b49e24994b17ffa07a.png"><br>
	<span style="font-size:16px;"><u><strong>Solution:</strong></u></span><br>
	<span style="color:#374151; font-size:16px; text-align:start">The same as the original hack, we have to swap out some of the existing code and insert a jump to new code we create. This new code will be placed in the free space at the end of the 9F bank.</span><br>
	[1] Hijack old code and have it jump to the new code we add at the bottom of the bank. Line 322
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36111" data-ratio="13.52" data-unique="6k447a1xe" width="873" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.af414501898ed4d8d79b708b58dd253e.png"><br>
	[2] New code to turn on Defense Control for Home and Away teams. Line 11391<br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36112" data-ratio="21.25" data-unique="xj4kezwgz" width="833" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.a54c8f0ac6fc47248e938f2660c7f00e.png"><br>
	[3] I've introduced a variable named !Defense_Control, which you have the option to enable or disable during the compilation of your ROM. The intention is to add more configurable variables for ROM building in the future. Currently, there are two additional variables available: one to adjust penalty duration and another to activate the hidden 30-second periods.<br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36114" data-ratio="55.73" data-unique="pm61u1wue" width="576" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.1aa84eed9f24884b512c3fb4339a8811.png">
</p>

<p>
	<span style="font-size:16px;"><strong><u>BONUS INFO:</u></strong></span><br>
	The code we initially diverted from was actually responsible for determining the starting goalie in the game. This opens up potential for further modifications, such as automatically  starting the 2nd goalie, or even enabling on-the-fly pulling of the goalie without needing to pause the game.<br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36113" data-ratio="8.26" data-unique="asdo1l1u4" width="944" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.1c986085078dbfc1f941a6cae847b247.png"><br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="36116" data-ratio="33.43" data-unique="xyz838mg6" width="362" alt="image.png" src="https://forum.nhl94.com/uploads/monthly_2023_12/image.png.fab7c59442521757d0021138c730b7ce.png">
</p>

<p>
	<a class="ipsAttachLink" data-fileext="sfc" data-fileid="36106" href="https://forum.nhl94.com/applications/core/interface/file/attachment.php?id=36106&amp;key=4cc88bbb14d2e5703a71c0b325f54960" rel="">nhl94.sfc</a>
</p>
]]></description><guid isPermaLink="false">28190</guid><pubDate>Wed, 13 Dec 2023 23:41:59 +0000</pubDate></item><item><title>SNES NHL94 ROM Mapping Project</title><link>https://forum.nhl94.com/index.php?/topic/13150-snes-nhl94-rom-mapping-project/</link><description><![CDATA[
<p>Hey everybody!  I've been reading around the forums for a while now, impressed by all of the hacks/edits performed on the GENS version (most notably the new Clockwise ROM and new stat creations).  With the increased interest on hacking for the SNES side, including attempting to get 30+ teams and to deal with logos, I want to help out as much as possible.</p>
<p>That said, the first thing we should do to streamline SNES hacking/editing is to compile all the information we have on the ROM in one location.  The eventual goal is to have a complete ROM mapping of NHL '94 for SNES (which I know will be difficult, but it can be done).  For now, I have started a Google Spreadsheet to compile information related to locations of palettes and pointer tables I have found on the forums (click on the link below to view it).  If you have information about any other locations of pointer tables/palettes/etc. that is not on the document, post it on this topic and I can add it to the spreadsheet.</p>
<p>Spreadsheet (Note: offsets assume header on the ROM)</p>
<p><a href="https://spreadsheets.google.com/spreadsheet/ccc?key=0ArV1f1EnnLgZdElrZ3d0NUFWeGhSMndIQkpNSkRlMEE&amp;hl=en_US&amp;authkey=CMSFy4kC" rel="external nofollow">https://spreadsheets.google.com/spreadsheet/ccc?key=0ArV1f1EnnLgZdElrZ3d0NUFWeGhSMndIQkpNSkRlMEE&amp;hl=en_US&amp;authkey=CMSFy4kC</a></p>
]]></description><guid isPermaLink="false">13150</guid><pubDate>Wed, 08 Jun 2011 16:01:36 +0000</pubDate></item><item><title>GUIDE: Learn SNES assembly programming language (6502)</title><link>https://forum.nhl94.com/index.php?/topic/14422-guide-learn-snes-assembly-programming-language-6502/</link><description><![CDATA[<p>
	Pretty neat tutorial on the SNES programming language.
</p>

<p>
	<a href="https://skilldrick.github.io/easy6502/" ipsnoembed="true" rel="external nofollow">https://skilldrick.github.io/easy6502/</a> (updated link, thanks <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.nhl94.com/index.php?/profile/11701-stewy/&amp;do=hovercard" data-mentionid="11701" href="https://forum.nhl94.com/index.php?/profile/11701-stewy/" rel="">@stewy</a>)
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">14422</guid><pubDate>Sun, 08 Jul 2012 15:49:59 +0000</pubDate></item><item><title>SNES ROM Stat Extract Info</title><link>https://forum.nhl94.com/index.php?/topic/15522-snes-rom-stat-extract-info/</link><description><![CDATA[
<p>Most (almost all) of this was pulled from the <a href="https://forum.nhl94.com/index.php?/topic/194-extracting-stats/page-2" rel="">Extracting Stats</a> topic in the General Questions and Discussion forum.  A very special thanks to Xstioph for finding these (back in 2007!).  </p>
<p>A reminder:  SNES uses Little Endian format.  So any stat that uses 2 offsets (like Attack Zone for example), the most significant byte is the second one, and the least significant byte is the first one.  Also, all values stored are in HEX, not Decimal.</p>
<p>Example:  Attack Zone for Home is located at offsets 9061 and 9062.  Lets say 9061 contains 15 (256 in decimal) and 9062 contains 01 (21 in decimal).  Normally, in Big Endian (used in Genesis), this is read as 1501 (9061, then 9062), and you would calculate the attack zone by converting 1501 to decimal, but in Little Endian (used in SNES), it would be read 0115 (9062, then 9061).  0115 would then be converted into decimal and minutes and seconds could then be calculated.</p>
<p>Conversion (use a calculator or do it like this):</p>
<pre class="ipsCode prettyprint">
1st position (farthest on the right): 5 x 1 = 5
                        2nd position: 1 x 16 = 16
                        3rd position: 1 x 256 = 256
                        4th position: 0 x 4096 = 0

256 + 16 + 5 =  277 seconds or 4 minutes 37 seconds
</pre>
<p>---------------------------------------------------------------------</p>
<p><u><strong><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">Game Stats:</span></strong></u><br><br><strong>HOME</strong><br><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">Offset (decimal)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9121: Score    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9101: Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9173: Breakaways</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9177: Breakaway goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9193: One Timers</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9197: One Timer Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9181: Penalty Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9185: Penalty Shot Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9125: Faceoffs Won</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9161: Body Checks</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9169: Passes</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9165: Passes Recived</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9061+9062: Attack Zone</span><br><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">-</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9049: Power Play</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9045: Power Play Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9069: Power Play Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9077: Shorthanded Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9053: Penalties</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9057: Penalty time</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9065+9066: Power Play Time</span><br><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">-</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9085: Period 1 Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9089: Period 2 Shots    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9093: Period 3 Shots    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9097: Overtime Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">-</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9105: Period 1 Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9109: Period 2 Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9113: Period 3 Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9117: Overtime Goals </span><br><br><br><strong>AWAY</strong><br><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9123: Score</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9103: Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9175: Breakaways</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9179: Breakaway goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9195: One Timers</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9199: One Timer Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9183: Penalty Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9187: Penalty Shot Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9127: Faceoffs Won</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9163: Body Checks</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9171: Passes</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9167: Passes recived</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9063+9064: Attack Zone</span><br><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">-</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9051: Power Play</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9047: Power Play Goals    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9071: Power Play Shots</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9079: Shorthanded Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9055: Penalties</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9059: Penalty time</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9067+9068: Power Play Time</span><br><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">-</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9087: Period 1 Shots    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9091: Period 2 Shots    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9095: Period 3 Shots    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9099: Overtime Shots </span><br><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">-</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9107: Period 1 Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9111: Period 2 Goals    </span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9115: Period 3 Goals</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9119: Overtime Goals</span></p>
<p>---------------------------------------------------------------------</p>
<div> </div>
<div>
<strong><u>Player Stats</u></strong>:</div>
<div> </div>
<div>
<span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"><strong>Home Team</strong></span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">:</span><br><br><strong>Goals</strong><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9473: xx : # of goals scored for the 1st player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of goals conceded for the 1st player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9474: xx : # of goals scored for the 2nd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of goals conceded for the 2nd player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9475: xx : # of goals scored for the 3rd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of goals conceded for the 3rd player in the team roster (if/when goalie)</span>
</div>
<div><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9476-9497: xx : # of goals scored for the 4th-25th player on the team roster (each byte is for 1 player)</span></div>
<div> </div>
<div><strong>Assists</strong></div>
<p><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9525: xx : # of assists for the 1st player in the team roster (goalies too)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9526: xx : # of assists for the 2nd player in the team roster (goalies too)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9527: xx : # of assists for the 3rd player in the team roster (goalies too)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9528-9549: xx : # of assists for the 4-25th player in the team roster (each byte is for 1 player)</span></p>
<div>
<strong>Shots</strong><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9577: xx : # of shots on goal for the 1st player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of shots against for the 1st player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9578: xx : # of shots on goal for the 2nd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of shots against for the 2nd player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9579: xx : # of shots on goal for the 3rd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of shots against for the 3rd player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9580-9601: xx : # of shots on goal for the 4-25th player in the team roster (each byte is for 1 player)</span>
</div>
<div> </div>
<div><strong>Penalties</strong></div>
<p><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9629: xx : # of penalty minutes for the 1st player in the team roster (goalie cannot get penalty)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9630: xx : # of penalty minutes for the 2nd player in the team roster (goalie cannot get penalty)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9631: xx : # of penalty minutes for the 3rd player in the team roster (goalie cannot get penalty)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9632-9653: xx : # of penalty minutes for the 4-25th player in the team roster </span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">(each byte is for 1 player)</span></p>
<p><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"><strong>Away Team</strong></span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">:</span><br><br><strong>Goals</strong><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9499: xx : # of goals scored for the 1st player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of goals conceded for the 1st player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9500: xx : # of goals scored for the 2nd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of goals conceded for the 2nd player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9501: xx : # of goals scored for the 3rd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of goals conceded for the 3rd player in the team roster (if/when goalie)</span></p>
<br><div>
<span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9502-9523: xx : # of goals scored for the 4-25th player in the team roster </span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">(each byte is for 1 player)</span>
</div>
<div> </div>
<div><strong>Assists</strong></div>
<p><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9551: xx : # of assists for the 1st player in the team roster (goalies too)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9552: xx : # of assists for the 2nd player in the team roster (goalies too)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9553: xx : # of assists for the 3rd player in the team roster (goalies too)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9554-9575: xx : # of assists for the 4th player in the team roster (</span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">each byte is for 1 player)</span></p>
<p><strong>Shots</strong><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9603: xx : # of shots on goal for the 1st player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of shots against for the 1st player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9604: xx : # of shots on goal for the 2nd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of shots against for the 2nd player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9605: xx : # of shots on goal for the 3rd player in the team roster (if player)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">        : xx : # of shots against for the 3rd player in the team roster (if/when goalie)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9606-9627: xx : # of shots on goal for the 4th player in the team roster </span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">(</span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">each byte is for 1 player)</span></p>
<p><strong>Penalties</strong><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9655: xx : # of penalty minutes for the 1st player in the team roster (goalie cannot get penalty)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9656: xx : # of penalty minutes for the 2nd player in the team roster (goalie cannot get penalty)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9657: xx : # of penalty minutes for the 3rd player in the team roster (goalie cannot get penalty)</span><br><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">9658-9679: xx : # of penalty minutes for the 4-25th player in the team roster </span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">(</span><span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">each byte is for 1 player)</span></p>
<div> </div>
]]></description><guid isPermaLink="false">15522</guid><pubDate>Fri, 26 Jul 2013 12:12:53 +0000</pubDate></item><item><title>HOW TO:  expand player names</title><link>https://forum.nhl94.com/index.php?/topic/11634-how-to-expand-player-names/</link><description><![CDATA[
<p>some notes on expanding player names for Statto's editor..</p>
<p>First, here is a document on pointers in SNES.  They are waaay more confusing than in the Genesis.  <a href="http://www.romhacking.net/docs/%5B50%5Dxcalpointers.txt" rel="external nofollow">http://www.romhacking.net/docs/%5B50%5Dxcalpointers.txt</a>.</p>
<p>Here is an example:</p>
<ul>
<li>I thought that there must be a pointer to the start of the All Stars East team.  I figured/guessed that the start was at offset 0E2857<br>in the ROM, where there is a "U" character (value 55), since this character appeared right after all the rink names, except for the last team.<br>
</li>
<li>So, my starting pointer is <strong>E2857</strong>.  <br>
</li>
<li>In SNES pointers, you only need the last 4 numbers in an address (don't ask why.. long story..), so you have <strong>2857</strong>.<br>
</li>
<li>Next, subtract the ROM header size, which is <strong>0200</strong>.  This gives you <strong>2657</strong>.<br>
</li>
<li>Next, you need the pointer's first digit to be between 8-F.  So, if it's 0-7, add 8 to it.  This gives you <strong>A657</strong>.<br>
</li>
<li>Next, the SNES CPU is "little endian", so you reverse the bytes in the number, giving you <strong>57A6</strong>.<br>
</li>
</ul>
<p></p>
<p>It turns out that this value, 57A6, appears in the ROM twice, and the 2nd time is the 'team pointer.'  The pointers to the other teams are also in this area.  Team Pointers are each followed by the value "9C00" (I don't know why.. (EDIT: this is the "bank" number.. it's part of the pointer, though sometimes it is found separate from the other part))</p>
<p>The team pointer table is from E27E7-E2857 (ie, it ends right were the ASE team data starts)</p>
<p><a class="ipsAttachLink ipsAttachLink_image" href="https://forum.nhl94.com/uploads/monthly_03_2010/post-253-1269550795.png" rel=""><img src="https://forum.nhl94.com/uploads/monthly_03_2010/post-253-1269550795_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=3621" class="ipsImage ipsImage_thumbnailed" alt="post-253-1269550795_thumb.png" loading="lazy"></a><a class="ipsAttachLink ipsAttachLink_image" href="https://forum.nhl94.com/uploads/monthly_03_2010/post-253-1269550359.png" rel=""><img src="https://forum.nhl94.com/uploads/monthly_03_2010/post-253-1269550359_thumb.png" data-fileid="%7B___base_url___%7D/applications/core/interface/file/attachment.php?id=3617" class="ipsImage ipsImage_thumbnailed" alt="post-253-1269550359_thumb.png" loading="lazy"></a></p>
<p>As an excel sheet:<a href="https://forum.nhl94.com/applications/core/interface/file/attachment.php?id=3620" data-fileid="3620" rel="">snes94.zip</a></p>
<p>To be continued.. I need to figure out how it can find the rink name after a player's name length has been changed...</p>
]]></description><guid isPermaLink="false">11634</guid><pubDate>Thu, 25 Mar 2010 21:02:19 +0000</pubDate></item></channel></rss>
