AdamCatalyst Posted January 3 Report Posted January 3 (edited) How to: Wide Display Mode in '94 (Patches) v2.0.1 (2025 01 06) 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 January 6 by AdamCatalyst Included NO horizontal pan patch Quote
AdamCatalyst Posted January 3 Author Report Posted January 3 (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 January 6 by AdamCatalyst Added "No Camera Movement" option 1 Quote
von Ozbourne Posted January 5 Report Posted January 5 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". Þ/π 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.