Jump to content
NHL'94 Forums

Recommended Posts

Posted (edited)

How to: Wide Display Mode in '94 (Patches)

v2.0.1 (2025 01 06)


 

image.gif

ezgif-5-87716f6c56.gif

Above: The Original ROM and WWF Survivor Shoot-Out patched for Wide Display mode.


Here is a couple patches that you can use on Sega Genesis/Mega Drive NHL ’94 ROMs to switch the gameplay view from 256 pixels wide to 320 pixels wide. These new patches are built on the v1.2 patches by Paul Met, with extensive new work and alterations to make these modifications more comprehensive and stable. Furthermore, two different versions of the patch are included, one for the original 28-team ROM, and another for the 32-Team ROM hack. And as an added bonus, two optional patches allow you to limit the amount of horizontal camera movement. Without further ado, here are the patches! Please let me know if you encounter any errors.

cheers,

-Adam
 

NHL 94 - Patches - Display Mode - Wide - v2.0.1.zip

 


Known Issues

  • In Instant Replay View, the Overlays for the Clock and Score are visible. (Any advice on how to fix this?)

Potential Issues

  • When applying this to existing ROM hacks, there may be compatibility issues, as it is impossible to prepare a patch that will work with every single ROM hack variant. If you are having difficulties, you may wish to manually modify the ROM with my notes below, or to ask that ROM hack creator for help. Just about everything they need to know is included in the next post below.

 

Edited by AdamCatalyst
Included NO horizontal pan patch
Posted (edited)

How to: Wide Display Mode in '94 (Manual Methods)

So, you're a masochist, eh? Who am I to judge… Every change made by this patch is itemized below. Feel free to critique and suggest improvements. Hopefully this will be useful for others looking to enhance the existing wide mode patches for other versions of the game. Please note, all known issues are listed in the post above.
 


v2.0.1 (2025 01 06)

 

1. Remove Checksum

0x300

4E B9 00 0F FA C0

Revised

4E 71 4E 71 4E 71

 

2. Pause Screen display mode set to 256 pixels wide

0x7DD2

0000 317C 9100 0004 317C 921C 0004

Revised

0004 30BC 9100 30BC 921C 30BC 8C00

 

3. TBD: May Be Unnecessary / Unwanted

0x7E82

58 78 B0 28

Revised

4E 71 4E 71

 

4. Instant Replay display mode changed to 320 pixels wide

This redirects to insert new code.
 

4.1 Instant Replay Regular View

0xA012

00 00 A4 48

Revised (Original 28-Team / 32-Team)

00 0F FA C0 / 00 1F FA 00


4.2 Instant Replay Reverse View

0xA5C6

00 00 A4 48

Revised (Original 28-Team / 32-Team)

00 0F FA C0 / 00 1F FA 00

 

5. Camera / Viewport Horizontal Pan Maximums Decreased


5.1  Pan Maximum RIGHT Side - 1/2 (Instant Replay)

0x0A641

003C > 001C (Original Camera Movement Range)
003C > 0010 (Less Camera Movement)
003C > 0000 (No Camera Movement)


5.2  Pan Maximum RIGHT Side - 2/2 (Instant Replay)

0xA649

003C > 001C (Original Camera Movement Range)
003C > 0010 (Less Camera Movement)
003C > 0000 (No Camera Movement)


5.3  Pan Maximum LEFT Side - 1/2 (Instant Replay)

0xA64D

FFC4 > FFE4 (Original Camera Movement Range)
FFC4 > FFF0 (Less Camera Movement)
FFC4 > 0000 (No Camera Movement)


5.4 Horizontal Pan Maximum - LEFT Side - 2/2 (Instant Replay)

0xA655

FFC4 > FFE4 (Original Camera Movement Range)
FFC4 > FFF0 (Less Camera Movement)
FFC4 > 0000 (No Camera Movement)


5.5 Camera Horizontal Pan Maximum - LEFT Side - Mid-Ice (In-Play)

0xB0AB

FFC4 > FFE4 (Original Camera Movement Range)
FFC4 > FFF0 (Less Camera Movement)
FFC4 > 0000 (No Camera Movement)


5.6 Horizontal Pan Maximum - LEFT Side - Against Boards (In-Play)

0xB0B3

FFC4 > FFE4 (Original Camera Movement Range)
FFC4 > FFF0 (Less Camera Movement)
FFC4 > 0000 (No Camera Movement)


5.7  Pan Maximum RIGHT Side - Mid-Ice (In-Play)

0xB0C9

003C > 001C (Original Camera Movement Range)
003C > 0010 (Less Camera Movement)
003C > 0000 (No Camera Movement)


5.8 Pan Maximum RIGHT Side - Against Boards (In-Play)

0x0B0D1

003C > 001C (Original Camera Movement Range)
003C > 0010 (Less Camera Movement)
003C > 0000 (No Camera Movement)

 

6. Line Change Overlays Relocation

0x0B9E5

16 > 1F

 

7. Face-Off Overlays Relocation

Thanks to @McMarkis

7.1 Face-Off Overlays Left Side X-Position

0xFB5F

36 > 3E

 

7.2 Right Side Face-Off Overlays X-Position

0xFB6B

BE > F6

 

8. Gameplay Display Mode Changed to 320 pixel wide

This redirects to insert new code.

0x012B5C

00 01 17 38

Revised (Original 28-Team / 32-Team)

00 0F FA DC / 00 1F FA 1C

 

9. Clear Screen Box for Penalty Shot & Shoot-Out Relocation & Resizing

0x01203D

03 02 00 70 1B

Revised

05 02 00 70 1D

 

10. Penalty Call Sideboards View Display Mode set to 256 pixels wide

This redirects to insert new code.

Thanks to @McMarkis

0x120D0

247C 0005 CF6C

Revised (Original 28-Team / 32-Team)

4EF9 000F FAF4 / 4EF9 001F FA34

 

11. Clear Screen Box for Games set to 320 pixels wide

0x12B7F

20 > 28

 

12. Score Clock Relocation


12.1 Score Clock position

0x012C7B

17 > 1F

 

12.2 Home Team Name

0x012C8D

18 > 20


12.3 Visitor Team Name

0x012C9F

18 > 20


12.4 Score position

0x012D1F

1C > 24

 

13. Rink Background X-position Revised

0x015F3F

C0 > E0

 

14. Sideboards Crowd Animation X-position Revised

0x0161F7

C0 > E0

 

15. Crowd Animation Events X-position Revised

15.1

0x016281

C0 > E0

15.2

0x016287

90 > D0

 

16. Rink Crowd Animation  X-position Revised

0x016287

90 > D0

 

17. Rink Player Visibility Range Increased
 

17.1 Rink Player Visibility Right Side

0x016941

90 > B0


17.2 Rink Player Visibility Left Side

0x016949

70 > 50

 

18. Offset the Position of Players in the Rink and Sideboards to Match

This redirects to insert new code.

 

Gameplay Display X-Position

0x01694E

0640 0100 D242

Revised (Original 28-Team / 32-Team)

4EF9 000F FB0A / 4EF9 001F FA4A

 

19. TBD: May Be Unnecessary / Unwanted

0x01695B

90 > B0

 

20. TBD: May Be Unnecessary / Unwanted

0x016963

70 > 50

 

21. Stars of the Game Overlay Relocated


21.1 Box for Stars of the Game

0x18541

02 > 06


21.2 Text: Stars of the Game

0x18553

09 > 0D


21.3 Graphic: Stars of the Game Sponsor Icon (unused by default)

0x18567

03 > 07


21.4 Text: Player Team

0x1859D

1A > 1E


21.5 Text: Player Number & Name

0x185B9

03 > 07

 

22. Penalty Shot Overlay Relocation


22.1 Penalty Shot Overlay Box

0x0187E3

03 02 00 70 1B

Revised

06 02 00 70 1C


22.2 Heading Text: “PENALTY SHOT!”

0x018887

04 > 08


22.3 Infraction Name

0x01882D

04 > 08


22.4 Infracting Player Number & Name

0x018858

04 > 08


22.5 Shooter Number & Name

0x018897

04 > 08

 

23. Goal Overlays (Goal, PP Goal, Hat Trick) Relocation


23.1 “Goal!” Box

0x188D1

0B > 13


23.2 Goal Scorer

0x1897D

0C > 14


23.3 Text Heading “Assist by:”

0x189C1

0E > 16


23.4 Assist #1

0x189CE

0C > 14


23.5 Assist #2

0x189F3

0C > 14


23.6 Text Heading “GOALl!”

0x18A17

0F > 17


23.7 TBD: May Be Unnecessary / Unwanted

0x18A1F

0C > 14


23.8 Text Heading “HAT TRICK!” (1/2)

0x18A25

0C > 14


23.9 TBD: May Be Unnecessary / Unwanted

0x18A32

0C > 14


23.10 Text Heading “PP GOALl!”

0x18A37

0D > 15


23.11 TBD: May Be Unnecessary / Unwanted

0x18A42

0C > 14


23.12 Text Heading “HAT TRICK!” (2/2)

0x18A47

0C > 14


12.13 TBD: May Be Unnecessary / Unwanted

0x18A54

0C > 14


23.14 Overtime Goal Clear Box

0x18A5D

0B 02 00 70 13 > 13 02 00 70 1B

 

24. Shoot-Out Overlays Relocation


24.1 Shoot-Out Overlay Box

0x0FC337

03 > 06


24.2 Second Player Name Position

0x0FC38F

04 > 07


24.3 First Team (Home) Name & Score

0x0FC3CF

04 > 07


24.4 First Team (Home) Score Position

0x0FC3E9

15 > 18


24.5 Second Team (Visitor) Name & Score Position

0x0FC409

04 > 07


24.6 Second Team (Visitor) Score Position

0x0FC423

15 > 18


24.7 Round Number Position

0x0FC443

04 > 07


24.8 Heading Text: “SHOOTOUT MODE”

0x0FC469

04 > 07


24.9 First Player Name Position

0x0FC479

04 > 07


24.10 End of Shoot-Out Box Position

0x0FC5BB

01 > 05


24.11 End of Shoot-Out Text “SHOOTOUT WON BY”

0x0FC5D5

02 > 06


24.12 End of Shoot-Out Text: Winning Team Name Position (X-Axis)

0x0FC611

02 > 06

 

25. Bench & Crowd Animation Relocation

25.1

0x0FD81D

C0 > E0

25.2

0x0FD823

90 > D0

 

26. Patch Code Insertion

You can put this code anywhere that you have enough unused space. If you don’t use my recommended addresses, be sure to update the addresses used in the redirects listed above.

 

Original 28-Team ROM

0x0FFAC0

7000 91C8 223C 0003 FEB0 B0FC 018C 6604 5848 6002 D098 5381 6EF0 0C80 8AB9 F121 6602 4E75 287C 00C0 0004 38BC 8F02 38BC 8004 38BC 8700 38BC 8144 38BC C000 323C 003F 33FC 000E 00C0 0000 51C9 FFF6 60FE FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF

Revised

33FC 9210 00C0 0004 33FC 8C81 00C0 0004 5278 B00E 4EF9 0000 A448 4E75 33FC 9200 00C0 0004 33FC 8C81 00C0 0004 4EF9 0001 1738 4E75 247C 0005 CF6C 33FC 8C00 00C0 0004 4EF9 0001 20D6 4E75 0640 0120 0838 0007 C2EC 6700 0006 0640 FFDF D242 4EF9 0001 6954 4E75 60FE

 

32-Team ROM

0x1FFAC0

FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF

Revised

33FC 9210 00C0 0004 33FC 8C81 00C0 0004 5278 B00E 4EF9 0000 A448 4E75 33FC 9200 00C0 0004 33FC 8C81 00C0 0004 4EF9 0001 1738 4E75 247C 0005 CF6C 33FC 8C00 00C0 0004 4EF9 0001 20D6 4E75 0640 0120 0838 0007 C2EC 6700 0006 0640 FFDF D242 4EF9 0001 6954 4E75

 


Patch Code Breakdown

Here is how the above patch code functions. We can break it down into four lines of code.

 

First, @ 0x0000A012 & 0x0000A5C6 it jumps 0x0000A448 for the Instant Replay Regular & Reverse view. We modified those two references to point here (000FFAC0 / 001FFA00) instead. This line of code change the display mode to 320 pixels wide first, then tells it to head on back to 0x0000A448 as it was originally intended.

33FC 9210 00C0 0004 33FC 8C81 00C0 0004 5278 B00E 4EF9 0000 A448 4E75

 

Second, @ 0x00012B5C it jumps to 0x00011738 for the Gameplay view. We modified that reference to point here (000FFADC / 001FFA1C) instead. This line of code change the display mode to 320 pixels wide first, then tells it to head on back to 0x00011738 as it was originally intended.

33FC 9200 00C0 0004 33FC 8C81 00C0 0004 4EF9 0001 1738 4E75

 

Third, @ 0x000120D0 it initiates the Sideboards view for when a Penalty is called. We've removed eight bytes of code at that location, and inserted a redirect to here (000FFAF4 / 001FFA34) instead. This line of code first run the eight bytes of code that we had previously removed, then we change the display mode to 256 pixels wide, and head back to right after those eight bytes of code that we had displaced.

247C 0005 CF6C 33FC 8C00 00C0 0004 4EF9 0001 20D6 4E75

 

Lastly, @ 0x0001694E it indicates where the sprites should placed on the ice. Again, we've removed eight bytes of code, and inserted a redirect, this time to here (000FFB0A / 001FFA4A). This line of code first runs the eight bytes of code we had previously removed, but with a revised value setting the sprite position to be optimal for gameplay in 320 pixel wide display mode. Next, it tests to see if the current view is Vertical (gameplay) or Horizontal (sideboards). If it is Horizontal, it subtracts #32 from the sprite position value, in order to make it optimal for the 256 pixel wide display mode. Then we head back to right after those eight bytes of code that we had displaced.

0640 0120 0838 0007 C2EC 6700 0006 0640 FFDF D242 4EF9 0001 6954 4E75

 

And that's it.

 


If you want more information, check out this thread with all my development notes.

 

Edited by AdamCatalyst
Added "No Camera Movement" option
  • Wow 1
Posted

First? That's what the leet innerwebs kids say right?

Just have to say that at risk of sounding like a plant and a cheerleader, this patch amazing and worked perfectly.
Except for the fact that it didn't compensate for the four letter names I used in my WWF mod.
0/10.

But since you were nice enough to include all of the offsets for manual editing, I didn't need to track those down in my notes and was able to quickly edit the hex value to move the score numbers over by one tile, thus redeeming yourself.
A/7

I also liked that you included an add-on for less lateral camera movement. Haven't tried "minimal", but "less" seemed just right compared to the default of "lots".
Þ/π

  • Love 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...