Jump to content
NHL'94 Forums

Recommended Posts

Posted (edited)

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

v3.0 (2025 03 20)


 

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 are entirely new patches built from the ground up to make the man comprehensive stable, and minimal intrusive to the game's original code as possible. 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 - v3.0.zip

 


Version Notes

  • v3.0 Completely re-written from the ground up for better optimization.
  • v2.2 Fixed misaligned Arrow Indicators for Off-Screen players, and removed Gameplay overlays from Instant Replay view.
  • v2.1 Fixed Injury & Shoot-Out Overlays.
  • v2.0 Initial Public Release.

Known Issues

  • In Instant Replay View, there are two garbage video tiles on the lower let side. (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
Updated for v3.0
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 listed 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.


v3.0 (2025 03 20)

 

1. Remove Checksum

0x300

4E B9 00 0F FA C0

Revised

4E 71 4E 71 4E 71

 

2. Instant Replay Reverse View Display Mode

0x9D02

317C 8C00 0004 31FC 0005 B00E

Revised

317C 8C81 0004 31FC 0006 B00E

For some reason the Instant Replay Reverse view has a manual video mode refresh in it. This changes the settings used from 32-Column / Window Map #5 to 40-Column / Window Map #6.

 

3. Instant Replay Window Clearing Bytes

0x9FF2

0400

Revised

06E8

This is the minimal value that clears the entire Window in IR mode.

 

4. Camera / Viewport Horizontal Pan Maximums Decreased


4.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)


4.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)

4.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)


4.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)


4.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)


4.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)


4.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)


4.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)

 

5. Line Change Overlays Relocation

0x0B9E5

16 > 1F

 

6. Face-Off Overlays Relocation

Thanks to @McMarkis

6.1 Face-Off Overlays Left Side X-Position

0xFB5F

36 > 3E

6.2 Right Side Face-Off Overlays X-Position

0xFB6B

BE > F6

 

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

0x01203D

03 02 00 70 1B

Revised

05 02 00 70 1D

 

8. Patch Vertical Mode to 40-Columns (320 pixels wide)

0x12B44

08B8 0007 C2EC

Replace with Jump to Patch (28-Team / 32-Team)

4EB9 000F FAF2 / 4EB9 001F FA32

 

Patch @ 0x0FFAF2 / 0x1FFA32

08B8 0007 C2EC 08B8 0001 BF78 33FC 8C81 00C0 0004 31FC 0006 B00E 4E75

After the view mode flag is set to Vertical, this patch sets the display mode flag to 40 columns, the video mode to 320 pixels wide, and the Window to Map #6.

 

9. Clear Screen Box for Games set to 40-Columns (320 pixels wide)

0x12B7F

20 > 28

This properly clears overlays.

 

10. Patch Horizontal Mode (Sideboards View) to 32-Columns (256 pixels wide)

0x12B98

08F8 0007 C2EC

Replace with Jump to Patch (28-Team / 32-Team)

4EB9 000F FAC0 / 4EB9 001F FA00

 

Patch @ 0xFFAC0 / 0x1FFA00

08F8 0007 C2EC 08F8 0001 BF78 33FC 8C00 00C0 0004 31FC 0005 B00E 4E75

After the view mode flag is set to Horizontal, this patch sets the display mode flag to 32 columns, the video mode to 256 pixels wide, and the Window to Map #5.

 

11. Score Clock Relocation

11.1 Score Clock position

0x012C7B

17 > 1F

11.2 Home Team Name

0x012C8D

18 > 20

11.3 Visitor Team Name

0x012C9F

18 > 20

11.4 Score position

0x012D1F

1C > 24

 

12. Rink Background X-position Revised

0x015F3F

C0 > E0

 

13. Sideboards Crowd Animation X-position Revised

0x0161F7

C0 > E0

 

14. Crowd Animation Events X-position Revised

14.1

0x016281

C0 > E0

14.2

0x016287

90 > D0

 

15. Arrows Indicating Off-Screen Players

From what I can tell, the system takes the players positions on the ice, and then rescales them to a smaller overlay. 0x16592 indicates $0100, or 256 pixels wide, the original viewport. $0120 changes the overlay to 320 pixels wide for wide mode, so it doesn't draw each arrow 20% too far to the left.

The thresholds for when the arrows appear has been adjusted, and the middle arrow have been re-positioned offscreen.

15.1 Horizontal Arrow RIGHT Side THRESHOLD @
0x16540

Original

0074

Revised


0084


15.2 Horizontal Arrow LEFT Side THRESHOLD @

0x1654C 


Original

FF8C 

Revised

FF7C


 

15.3 Arrow Map Width @
0x16592

Original (256)

0100

Revised (320)

0120


15.4 Diagonal Arrow RIGHT side Offsets @
0x165C4 / 0x165CC / 0x165D4

Original
0074 / 0074 / 0074 (116)

Revised
007C / 017C / 0054

Custom
007C / 017C / 005C

Top Right / Middle Right / Bottom Right


15.5 Arrow Offsets LEFT side @
0x165E4 / 0x165EC / 0x165F4

Original 
FF8C / FF8C / FF8C (-116)

Revised 
FFAC / FE84 / FF84

Bottom Left / Middle Left / Top Left

 

 

16. Rink Player Sprite Draw Distance

16.1 Rink Player Visibility Right Side

0x016941

90 > B0

16.2 Rink Player Sprite Draw Distance West

0x016949

70 > 50

 

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

Gameplay Display X-Position

0x01694E

0640 0100 D242

Replace with Jump to Patch (28-Team / 32-Team)

4EB9 000F FADC / 4EB9 001F FA1C

Patch @ 0xFFADC / 0x1FFA1C

0640 0120 0838 0007 C2EC 6700 0006 0640 FFDF D242 4E75

Changes default gameplay X-Offset from 256 to 288, to centre gameplay in wider viewport. If in horizontal mode, it changes the offset back to 256. 

 

18. Stars of the Game Overlay Relocated


18.1 Box for Stars of the Game

0x18541

02 > 06


18.2 Text: Stars of the Game

0x18553

09 > 0D


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

0x18567

03 > 07


18.4 Text: Player Team

0x1859D

1A > 1E


18.5 Text: Player Number & Name

0x185B9

03 > 07

 

19.  Injury Overlays Relocation

19.1 Injury Text Box @

0x018727

0B > 13

19.2 Text: “Injury to:” (PERIOD) @
0x018743

0C > 14

19.3 Text: “Out for period” @
0x018750

0C > 14

19.4 Text: Injured Player Name (PERIOD) @
0x018761

0C > 14

19.5 Text: “Injury to:” (GAME) @
0x01876F

0C > 14

19.6 Text: “Out for game” @
0x01877C

0C > 14

19.7 Injured Player Name (GAME) @
0x01878B

0C > 14

 

20. Penalty Shot Overlay Relocation


20.1 Penalty Shot Overlay Box

0x0187E3

03 02 00 70 1B

Revised

06 02 00 70 1C


20.2 Heading Text: “PENALTY SHOT!”

0x018887

04 > 08


20.3 Infraction Name

0x01882D

04 > 08


20.4 Infracting Player Number & Name

0x018858

04 > 08


20.5 Shooter Number & Name

0x018897

04 > 08

 

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


21.1 “Goal!” Box

0x188D1

0B > 13


21.2 Goal Scorer

0x1897D

0C > 14


21.3 Text Heading “Assist by:”

0x189C1

0E > 16


21.4 Assist #1

0x189CE

0C > 14


21.5 Assist #2

0x189F3

0C > 14


21.6 Text Heading “GOALl!”

0x18A17

0F > 17


21.7 TBD: May Be Unnecessary / Unwanted

0x18A1F

0C > 14


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

0x18A25

0C > 14


21.9 TBD: May Be Unnecessary / Unwanted

0x18A32

0C > 14


21.10 Text Heading “PP GOALl!”

0x18A37

0D > 15


21.11 TBD: May Be Unnecessary / Unwanted

0x18A42

0C > 14


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

0x18A47

0C > 14


21.13 TBD: May Be Unnecessary / Unwanted

0x18A54

0C > 14


21.14 Overtime Goal Clear Box

0x18A5D

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

 

22. Shoot-Out Overlays Relocation


22.1 Shoot-Out Overlay Box

0x0FC337

03 > 06


22.2 Second Player Name Position

0x0FC38F

04 > 07


22.3 First Team (Home) Name & Score

0x0FC3CF

04 > 07


22.4 First Team (Home) Score Position

0x0FC3E9

15 > 18


22.5 Second Team (Visitor) Name & Score Position

0x0FC409

04 > 07


22.6 Second Team (Visitor) Score Position

0x0FC423

15 > 18


22.7 Round Number Position

0x0FC443

04 > 07


22.8 Heading Text: “SHOOTOUT MODE”

0x0FC469

04 > 07


22.9 First Player Name Position

0x0FC479

04 > 07


22.10 End of Shoot-Out Box Position

0x0FC5BB

01 > 05


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

0x0FC5D5

02 > 06


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

0x0FC611

02 > 06

 

23. Bench & Crowd Animation Relocation

23.1

0x0FD81D

C0 > E0

23.2

0x0FD823

90 > D0

 

And that's it.

 


Note on Patch Code Insertion

You can put the patch codes I include above 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 with the patches.

 

 

Edited by AdamCatalyst
Updated for v3.0
  • 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.

  • Who's Online   0 Members, 0 Anonymous, 16 Guests (See full list)

    • There are no registered users currently online
×
×
  • Create New...