AdamCatalyst Posted November 22, 2024 Report Posted November 22, 2024 (edited) NHL '94: Wide Display Mode (“widescreen”) Hack v2.0 Status: Stuck at ~93% ~94% ~95% ~96% ~98% updated 2024 12 27 The existing Wide Display Mode patches change the game to use the 320 pixel wide video mode instead of the 256 pixel wide video mode in most gameplay screens. This causes many cosmetic bugs, and I've been on a quest to try to fix every single last issue myself, for both the original and 32-team ROMS. Alas, I could't quite get it to 100%. You can see my progress my downloading my latest ROM, and using the included Wide Mode patch. It's almost perfect, but there are a few issues I need your help with. If you can help me finish this, I can write up an easy to use tutorial that will work on every '94 ROM, as well as output new patches. Known Issues #1. Instant Replay View. Does not properly erase the overlays for the scoreclock etc. #2. Unknown Errors. I've had some people report memory errors, particularly in long playoff series using teams #29-32. I've not yet been able to recreate these errors. Everything I have done I've taken this thing as far as I could on my own. Here are all my notes and research. I'm hopeful that some folks who're better at this stuff can help me get this project over the finish line! There are three sections separated into three different posts. 1. Patch v1.2 Analysis & Recommendations 2. Wide Mode Patch v1.2 Issues & Fixes 3. tldr; What do you need to get this to 100%? 1. Patch v1.2 Analysis & Recommendations I tested the existing patch v1.2 by paul294met, and tried to identify every single thing that it was doing. This is what I found. 1. Remove Checksum @ 0x300 4E B9 00 0F FA C0 v1.2 4E 71 4E 71 4E 71 Recommendation Use as-is. 2. Clear Screen Y-Axis when exiting Pause / Sideboards View @ 0x7D9F 00 v1.2 02 Recommendation Do not use. Leave with default setting of 0. 3. Fixes Pause Screen to be 256 wide @ 0x7DD3 0031 7C91 0000 0431 7C92 1C00 04 v1.2 0430 BC91 0030 BC92 1C30 BC8C 00 Recommendation Use as-is. 4. Unknown: ??? @ 0x7E82 58 78 B0 28 v1.2 4E 71 4E 71 Recommendation Use as-is. 5. Change Address of Referenced Code, to point to new code. @ 0xA012 / 0xA5C6 (Instant Replay Regular / Reverse View) 00 00 A4 48 v1.2 00 0F FA C0 32-Team Recommendation 00 1F FA 00 6. Instant Replay None of these Instant Replay changes are necessary. 6.1 Instant Replay Overlay Controls Y-Axis @ 0x0A456 02 v1.2 03 Recommendation Do not use. Keep default value. 6.2 Instant Replay Overlay Controls CLEAR Y-Axis @ 0x0A494 02 v1.2 03 Recommendation Do not use. Keep default value. 6.3 Instant Replay Overlay Option/Reverse/Exit Y-Axis @ 0x0A4B4 00 v1.2 03 Recommendation Do not use. Keep default value. 6.4 Instant Replay Overlay Option/Reverse/Exit CLEAR Y-Axis @ 0x0A4E2 02 v1.2 03 Recommendation Do not use. Keep default value. 7. Camera / Viewport Horizontal Pan Maximums 7.1 Horizontal Pan Maximum - RIGHT Side - 1/2 (Instant Replay) @ 0x0A641 3C v1.2 20 Recommendation 1C 7.2 Pan Maximum - RIGHT Side - 2/2 (Instant Replay) @ 0x0649 3C v1.2 20 Recommendation 1C 7.3 Pan Maximum LEFT Side - 1/2 (Instant Replay) @ 0x064D C4 v1.2 E0 Recommendation E4 7.4 Pan Maximum LEFT Side - 2/2 (Instant Replay) @ 0x0655 C4 v1.2 E0 Recommendation E4 7.5. Pan Maximum LEFT Side - Mid-Ice (In-Play) @ 0x0B0AB C4 v1.2 E0 Recommendation E4 7.6 Pan Maximum LEFT Side - Against Boards (In-Play) @ 0x0B0B3 C4 v1.2 E0 Recommendation E4 7.7 Pan Maximum RIGHT Side - Mid-Ice (In-Play) @ 0x0B0C9 3C v1.2 20 Recommendation 1C 7.8 Pan Maximum RIGHT Side - Against Boards (In-Play) @ 0x0BOD1 3C v1.2 20 Recommendation 1C 8. Unknown: Affects top two block rows @ 0x0115C4 3F v1.2 3B Recommendation Do not use, or use with caution. 9. Change Address of Referenced Code, to point to new code. This is the main code that changes the gameplay view to 320 pixels wide. @ 0x012B5C 00 01 17 38 v1.2 00 0F FA DA Classic / 32-Team Recommendation 00 0F FA DC / 00 1F FA 1C 10. Score Clock 10.1 Score Clock position @ 0x012C7B 17 v1.2 1F Recommendation Use as-is. 10.2 Home Team Name / Visitor Team Name @ 0x012C8D / @ 0x012C9F 18 v1.2 20 Recommendation Use as-is. 10.3 Score position @ 0x012D1F 1C v1.2 24 Recommendation Use as-is. 11. Rink Background X-position @ 0x015F3F C0 v1.2 E0 Recommendation Use as-is. 12. Sideboards Crowd Animation X-position @ 0x0161F7 C0 v1.2 E0 Recommendation Use as-is. 13. Rink Crowd Animation X-position @ 0x016287 90 v1.2 B0 Recommendation D0 14. Rink Player Visibility This sets the visual range where players sprites should be drawn, otherwise they are invisible. 14.1 Rink Player Visibility Right Side @ 0x016941 90 v1.2 B0 Recommendation Use as-is. 14.2 Rink Player Visibility Left Side @ 0x016949 70 v1.2 50 Recommendation Use as-is. 15. Gameplay X-position @ 0x016950 0100 v1.2 0120 Recommendation Do NOT use. Instead use the revised codes included in the next section. 16. Unknown @ 0x01695B 90 v1.2 B0 Recommendation Use with Caution. 17. Unknown @ 0x016963 70 v1.2 50 Recommendation Use with Caution. 18. Patch Code @ 0x0FFAC0 700091C8223C0003FEB0B0FC018C660458486002D09853816EF00C808AB9F12166024E75287C00C0000438BC8F0238BC800438BC870038BC814438BCC000323C003F33FC000E00C0000051C9FFF660FE v1.2 33FC920E00C0000433FC8C8100C000045278B00E4EF90000A44833FC920200C0000433FC8C8100C000044EF900011738FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF Recommendation Do NOT use. Instead use the revised codes included in the next section. Continued in the next post… Edited December 27, 2024 by AdamCatalyst Errors fixed. 1 Quote
AdamCatalyst Posted November 22, 2024 Author Report Posted November 22, 2024 (edited) 2. Wide Mode Patch v1.2 Issues & Fixes Issue 1: End of file / No-op not indicated. Included in updated patch code @ TBD: Please see the most up-to-date patch code at the bottom of this post. Issue 2: Face-Off Overlays display in the wrong positions. Fix as follows: (thanks @McMarkis) Face-Off Overlays Left Side X-Position @ 0xFB5F 36 to 3E Right Side Face-Off Overlays X-Position @ 0xFB6B BE to F6 Issue 3: Clear Screen. Only part of the screen is cleared / refreshed after displaying graphical overlays. This change is essential for most of the following fixes to work properly. Furthermore, code written by the v1.2 Wide Mode patch itself needs to be modified. Clear Screen Box @ 0x12B7F 20 to 28 Issue 4: Crowd Animation events (such as during face-offs) do not display on right side of the Rink Fix 1/2 @ 0x016281 C0 to E0 Fix 2/2 @ 0x016287 90 to D0 (already recommended in previous section) Issue 5: Bench & Crowd Animation events display in wrong position & size. Fix 1/2 @ 0x0FD81D C0 to E0 Fix 2/2 @ 0x0FD823 90 to D0 Issue 6: Line Change overlays appear in the wrong spot. Fix @ 0x0B9E5 16 to 1F Issue 7: Injury Overlays appear in the wrong spot. Fixes as follows. Injury Text Box @ 0x018727 0B to 11 Text: “Injury to:” (PERIOD) @ 0x018743 0C to 12 Text: “Out for period” @ 0x018750 0C to 12 Text: Injured Player Name (PERIOD) @ 0x018761 0C to 12 Text: “Injury to:” (GAME) @ 0x01876F 0C to 12 Text: “Out for game” @ 0x01877C 0C to 12 Injured Player Name (GAME) @ 0x01878B 0C to 12 Issue 8: Penalty Call Sideboards View incorrectly displays in 320 pixel mode. Fix as follows: Penalty Call Sideboards View Initiation (thanks @McMarkis) @ 0x0120D0 Original Code 247C 0005 CF6C Classic / 32-Team Redirect to Patch 4EF9 000F FAF4 / 4EF9 001F FA34 Must use this with updated Patch Code included at the end of this section. Issue 9: Players in Rink and Sideboards view appear offset by 32 pixels. Fixes as follows: Gameplay Display X-Postion @ @x01694E 0640 0100 D242 Classic / 32-Team Redirect to Patch 4EF9 000F FB0A / 4EF9 001F FA4A Must use this with updated Patch Code included at the end of this section. Issue 10: Penalty Shot Overlay no longer appears centred Fixes as follows: Clear Box for Penalty Shot & Shoot-Out @ 0x01203D 030200701B to 050200701C Penalty Shot Overlay Box @ 0x0187E3 030200701B to 060200701C Heading Text: “PENALTY SHOT!” @ 0x018887 04 to 08 Infraction Name @ 0x01882D 04 to 08 Infracting Player Number & Name @ 0x018858 04 to 08 Shooter Number & Name @ 0x018897 04 to 08 Issue 11: Goal Overlays (Goal, PP Goal, Hat Trick) appear in the wrong spot. Fixes as follows: “Goal!” Box @ 0x188D1 0B to 13 Goal Scorer @ 0x1897D 0C to 14 Text Heading “Assist by:” @ 0x189C1 0E to 16 Assist #1 @ 0x189CE 0C to 14 Assist #2 @ 0x189F3 0C to 14 Text Heading “GOALl!” @ 0x18A17 0F to 17 0x18A1F (may be unnecessary) 0C to 14 Text Heading “HAT TRICK!” (1/2) 0x18A25 0C to 17 0x18A32 (may be unnecessary) 0C to 14 Text Heading “PP GOALl!” @ 0x18A37 0D to 15 0x18A42 (may be unnecessary) 0C to 14 Text Heading “HAT TRICK!” (2/2) @ 0x18A47 0C to 14 0x18A54 (may be unnecessary) 0C to 14 Overtime Goal Clear Box @ 0x18A5D 0B02007013 to 130200701B Issue 12: Stars of the Game Overlay no longer appears centred Fixes as follows: Box for Stars of the Game @ 0x18541 02 to 06 Text: Stars of the Game @ 0x18553 09 to 0D Graphic: Stars of the Game Sponsor Icon (invisible) @ 0x18567 03 to 07 Text: Player Team @ 0x1859D 1A to 1E Text: Player Number & Name @ 0x185B9 03 to 07 Issue 13: Shoot-Out Overlays no longer appear centred. Fixes as follows: Clear Box for Penalty Shot & Shoot-Out @ 0x01203D 030200701B to 050200701C Shoot-Out Overlay Box @ 0x0FC337 03 to 06 Second Player Name Position @ 0x0FC38F 04 to 07 First Team (Home) Name & Score @ 0x0FC3CF 04 to 07 First Team (Home) Score Position @ 0x0FC3E9 15 to 18 Second Team (Visitor) Name & Score Position @ 0x0FC409 04 to 07 Second Team (Visitor) Score Position @ 0x0FC423 15 to 18 Round Number Position @ 0x0FC443 04 to 07 Heading Text: “SHOOTOUT MODE” @ 0x0FC469 04 to 07 First Player Name Position @ 0x0FC479 04 to 07 End of Shoot-Out Box Position @ 0x0FC5BB 01 to 05 End of Shoot-Out Text “SHOOTOUT WON BY” @ 0x0FC5D5 02 to 06 End of Shoot-Out Text: Winning Team Name Position (X-Axis) @ 0x0FC611 02 to 06 Issue 14: Instant Replay View erroneously shows score clock etc. overlays Work in-progress. Appendix: Recommended Patch Code This is the most recent version of the Patch code. You can put it anywhere that you have 72 bytes of unused space, however you will need to update references if you do not put it at my recommend location: @ 0x0FFAC0 (Original ROM) / @ 0x1FFAC0 (32-Team ROM) Original 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 Original ROM Patch Overwrite @ 0x0FFAC0 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 Patch Overwrite @ 0x1FFA00 (Area should be unused FFFF) 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 FFFF Continued in the next post… Edited December 27, 2024 by AdamCatalyst Fixed Errors. 1 Quote
AdamCatalyst Posted November 22, 2024 Author Report Posted November 22, 2024 (edited) 3. tldr; What do you need to get this to 100%? UPDATE: I believe I have everything I need. Now I jsut need some time to test and optimize. Will be released for everyone over the Christmas break. There are three (known) issues that are preventing me from getting this patch to 100%, and writing a corresponding how-to for any '94 ROM. Highest Priority: Sideboards view incorrectly shows up in 320 pixel mode when displaying a penalty call. There is already code included that changes the Sideboards view to use the 256 wide mode whenever the game is paused. However, I cannot even find where in the code it initiates the Penalty Call Sideboards view. If you can find the right section of the code for me, I might be able to insert a patch that does what we need. Can you help me find where the Penalty Call Sideboards view is initiated? FOUND by @McMarkis! Medium Priority. Face-Off overlay (right side) appears in the wrong spot. It is too far to the left, while arguably the face-off overlay on the left should also be moved a little closer to the centre. I have gotten close to finding where in the code this happens, but I was never able to figure it out. Can you help me find where the X & Y positions are set for the face-off overlays? FOUND by @McMarkis! Lowest Priority. The Ref overlay is also in the wrong spot. It needs to be moved 3 tiles / 24 pixels to the right OR the Goal etc. overlays need to be moved the same. This might not be obvious to you as an error, but this adjustment needs to be made in order to get the patch to be a perfect wide screen representation of the proportions of the original. Can you please find how to move the X position of the ref overlay? To kick things off, I've posted my previous research on this matter in this thread here: That's it. That's everything. Any and all help is greatly appreciated. Edited December 2, 2024 by AdamCatalyst update. 2 Quote
McMarkis Posted November 24, 2024 Report Posted November 24, 2024 (edited) Can you help me find where the Penalty Call Sideboards view is initiated? Try location 120C8 in your Wide mode rom. I know this line of code calls the Set Horizontal method when a penalty is called. Feel free to message me on discord as well to discuss. -Mark. Edited November 24, 2024 by McMarkis 1 Quote
Sean Posted November 24, 2024 Report Posted November 24, 2024 I’m so happy that you’ve decided to make your hobby hacking NHL 94 instead of becoming an evil villain or something like that. This is amazing. 1 Quote
AdamCatalyst Posted November 24, 2024 Author Report Posted November 24, 2024 3 hours ago, McMarkis said: Can you help me find where the Penalty Call Sideboards view is initiated? Try location 120C8 in your Wide mode rom. I know this line of code calls the Set Horizontal method when a penalty is called. Feel free to message me on discord as well to discuss. -Mark. Thanks so much for this! I tried, but couldn't figure this out. Will chase you up on Discord later. Quote
AdamCatalyst Posted November 29, 2024 Author Report Posted November 29, 2024 (edited) EDIT: After writing all this out, the solution came to me. HUGE thanks to @McMarkis! Just two more smaller fixes, and we'll have this patch at 100%. OK, this is all going over my head. Please bear in mind, I mostly work from pattern recognition. I'm a hack, not a hacker. Using Rhombus to look at this code, it looks like @0120C8 (1st image), it references a subroutine @012B94 (2nd image). When I compare the code at both of these spots to the Original ROM (3rd image) where it imitates the Pause Screen, and the difference in the Widescreen ROM (4th image), I'm not recognizing any clear enough patterns that I can try and exploit. The WS like it was re-written to take up less space by setting a variable differently, than injecting an instruction, probably the one we need. Perhaps someone with more skills can take a look, and give me a hint. I'm still committed to working on this, but it really is over my head at this point. Edited November 29, 2024 by AdamCatalyst figured it out 1 Quote
AdamCatalyst Posted November 29, 2024 Author Report Posted November 29, 2024 (edited) OK, a potential solution to the Penalty Call Sideboards problem: @0120D0 Original Code 247C 0005 CF6C Proposed Redirect to Hack 4EF9 001F FAF2 @1FFAF2 Original FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF Proposed Hack 247C 0005 CF6C 33FC 8C00 00C0 0004 4EF9 0001 20D6 4E75 I have no idea if this is an ideal way to do this, but it seems to work… Edited November 29, 2024 by AdamCatalyst typo Quote
McMarkis Posted November 29, 2024 Report Posted November 29, 2024 Looks good, you hijack the original code, point to new code, run the original code + the hack. Looks like the hack is setting the VDP to change the screen resolution. I'm no expert either, just started picking on the gens side of things. 33FC 8C00 00C0 0004 4EF9 0001 20D6 4E75 1 Quote
AdamCatalyst Posted November 29, 2024 Author Report Posted November 29, 2024 3 minutes ago, McMarkis said: Looks good, you hijack the original code, point to new code, run the original code + the hack. Looks like the hack is setting the VDP to change the screen resolution. I'm no expert either, just started picking on the gens side of things. 33FC 8C00 00C0 0004 4EF9 0001 20D6 4E75 Really and truly, I wasn't ever going to find where the code initiated that view. So despite your self-professed lack of "expert" status, your expertise was utterly essential to figuring this out. Quote
McMarkis Posted November 29, 2024 Report Posted November 29, 2024 For item 2: Medium Priority. Face-Off overlay (right side) appears in the wrong spot. Could you point out where in the code you think this is happening? I can then review the '92 source code, make some adjustments, and test how they affect it, with the goal of mapping it to '94 so you can fix this. Quote
AdamCatalyst Posted November 29, 2024 Author Report Posted November 29, 2024 The two posts have all the best clues that I've found. Quote
McMarkis Posted November 29, 2024 Report Posted November 29, 2024 I found it in the 92 code, I can move the whole faceoff window over. The bad news is it just adds to x, so it will always push it right. Is that what you wanted? I still have to map it to the 94 code where its happening. But progress 1 Quote
AdamCatalyst Posted November 29, 2024 Author Report Posted November 29, 2024 Yasss!!! Even if all you do is let me know where the value is for ‘92 I can go digging from there. Will need to specifically move the face off overlay when it appears in the right side of the screen, but I’m hopeful I can figure that out once I’m pointed to the right area of code. 1 Quote
chaos Posted November 30, 2024 Report Posted November 30, 2024 4 hours ago, McMarkis said: I found it in the 92 code, I can move the whole faceoff window over. The bad news is it just adds to x, so it will always push it right. Is that what you wanted? I still have to map it to the 94 code where its happening. But progress Where is this in the 92 code? I can find it in the 94 code Quote
McMarkis Posted November 30, 2024 Report Posted November 30, 2024 (edited) In your Wide Mode ROM at location FB5E, the instruction currently sets the X position for when the faceoff window is on the left side. The current calculation is #8 + 46, d0 (Left side). By changing 70 36 to 70 40, it modifies the calculation to #8 + 46 + 10, which moves the window 10 units to the right. Similarly, at location FB68, the X position is set for when the faceoff window is on the right side. The current calculation is #(18 * 8 ) + 46, d0 (Right side). Changing 303C 00BE to 303C 00B4 adjusts the calculation to #(18 * 8 ) + 46 - 10, shifting the window 10 units to the left. That should allow you to move the window around anywhere you want in any direction. For reference, if anyone else comes across this, the routine is located in the 92 source code under puckfaceoff2, which is part of logic.asm Edited December 2, 2024 by McMarkis Added 92 source code reference 1 1 Quote
chaos Posted November 30, 2024 Report Posted November 30, 2024 14 hours ago, AdamCatalyst said: EDIT: After writing all this out, the solution came to me. HUGE thanks to @McMarkis! Just two more smaller fixes, and we'll have this patch at 100%. OK, this is all going over my head. Please bear in mind, I mostly work from pattern recognition. I'm a hack, not a hacker. Using Rhombus to look at this code, it looks like @0120C8 (1st image), it references a subroutine @012B94 (2nd image). When I compare the code at both of these spots to the Original ROM (3rd image) where it imitates the Pause Screen, and the difference in the Widescreen ROM (4th image), I'm not recognizing any clear enough patterns that I can try and exploit. The WS like it was re-written to take up less space by setting a variable differently, than injecting an instruction, probably the one we need. Perhaps someone with more skills can take a look, and give me a hint. I'm still committed to working on this, but it really is over my head at this point. Looking at my code, it looks like at 120B6 is where it sets the flag for horizontal mode for penalties (in the "chkprogress" subroutine). Then at 120C8 is where "SetHor" is called to enter it. There is a flag that is set to enter 32 column mode (256 vertical resolution). This is bit 1 of RAM location FFBF78 ("disflags" in 92 source). The game is always in 32 column mode except for title screen, options menu (game setup menu), and any of the aux screens chosen from the pause menu. Instead of forcing the VDP register, you can just set or clear the display 32 column bit and let the code do the work for you. 1 1 Quote
AdamCatalyst Posted November 30, 2024 Author Report Posted November 30, 2024 9 hours ago, chaos said: Looking at my code, it looks like at 120B6 is where it sets the flag for horizontal mode for penalties (in the "chkprogress" subroutine). Then at 120C8 is where "SetHor" is called to enter it. There is a flag that is set to enter 32 column mode (256 vertical resolution). This is bit 1 of RAM location FFBF78 ("disflags" in 92 source). The game is always in 32 column mode except for title screen, options menu (game setup menu), and any of the aux screens chosen from the pause menu. Instead of forcing the VDP register, you can just set or clear the display 32 column bit and let the code do the work for you. I wish I had the knowledge to be able to turn what you said into practical information for me. If you had time, I’d greatly appreciate if you could point me in the direction as to how I might make use of this. I really have no clue how to flip a bit in RAM like that. Quote
chaos Posted November 30, 2024 Report Posted November 30, 2024 25 minutes ago, AdamCatalyst said: I wish I had the knowledge to be able to turn what you said into practical information for me. If you had time, I’d greatly appreciate if you could point me in the direction as to how I might make use of this. I really have no clue how to flip a bit in RAM like that. Sure. Keep your jump in the same spot. The assembly command would be bset #1, ($FFFFBF78).w to set the bit 1 in the disflags. Opcode would be 08F8 0001 BF78 So in your jump spot, try 247C 0005 CF6C 08F8 0001 BF78 4E75 I don't think you have to add the jump back, the rts should take care of that Quote
AdamCatalyst Posted November 30, 2024 Author Report Posted November 30, 2024 (edited) OK, a proposed set of adjustments for the Face-Off overlays in 320 pixel wide mode: @FB5F Original 36 Proposed Revision 3E @FB6B Original BE Proposed Revision F6 I have included screen caps of what this does. I'm not aiming for 100% numerical proportional equivalency, aiming for what "feels" like it probably would have looked like if originally conceived in 320 pixel wide mode. If anyone is reading this, please let me know if this "feels" right to you. Edited November 30, 2024 by AdamCatalyst fixed mistakes. 1 Quote
AdamCatalyst Posted November 30, 2024 Author Report Posted November 30, 2024 2 hours ago, chaos said: 247C 0005 CF6C 08F8 0001 BF78 4E75 I don't think you have to add the jump back, the rts should take care of that Thanks so much! I tried, with and without the jump back, no luck. Without the jump back it just shows a black screen on penalties, with the jump back it is still in 256 pixel mode. Happy to keep pursuing this, but also happy to just let the current solution stand, not seen a crash or glitch yet. Quote
chaos Posted November 30, 2024 Report Posted November 30, 2024 30 minutes ago, AdamCatalyst said: Thanks so much! I tried, with and without the jump back, no luck. Without the jump back it just shows a black screen on penalties, with the jump back it is still in 256 pixel mode. Happy to keep pursuing this, but also happy to just let the current solution stand, not seen a crash or glitch yet. OK, I'm confused, you want it to show the side in 256 pixel mode right? Is it not switching back to 320 when it goes back to vertical mode? Quote
AdamCatalyst Posted December 1, 2024 Author Report Posted December 1, 2024 YES, want it to go to 256. With cited code as-is, when it initiates Sideboards view it goes all black, and then doesn't draw anything until the face-off view, at 320px. When I added the Jump back-in, it displays Sideboards view for a penalty call, the face-off view as expected, but stays at 320px the whole time. No 256 switch. Quote
chaos Posted December 1, 2024 Report Posted December 1, 2024 3 hours ago, AdamCatalyst said: YES, want it to go to 256. With cited code as-is, when it initiates Sideboards view it goes all black, and then doesn't draw anything until the face-off view, at 320px. When I added the Jump back-in, it displays Sideboards view for a penalty call, the face-off view as expected, but stays at 320px the whole time. No 256 switch. OK, just leave it how you have it. It looks like if you set that flag you also need to call another subroutine, which is basically doing what you are doing. 1 Quote
McMarkis Posted December 2, 2024 Report Posted December 2, 2024 In your Wide Mode ROM @ Location 1601A if you modify 54 40 to 56 40, this will move the ref window to the right. The original 68k instruction is adding decimal value 2 to the D0 register. So changing the 54 to 56 adds #3 to D0 etc. add #2,d0 I think the text overlay may be a little more tricky. Still looking into that. For reference, if anyone else comes across this, the routine is located in the 92 source code under showref, which is part of video.asm @chaos Quote
chaos Posted December 2, 2024 Report Posted December 2, 2024 2 minutes ago, McMarkis said: In your Wide Mode ROM @ Location 1601A if you modify 54 40 to 56 40, this will move the ref window to the right. The original 68k instruction is adding decimal value 2 to the D0 register. So changing the 54 to 56 adds #3 to D0 etc. add #2,d0 I think the text overlay may be a little more tricky. Still looking into that. For reference, if anyone else comes across this, the routine is located in the 92 source code under showref, which is part of video.asm @chaos Hahaha, nice find. I was 2 minutes away from finding this today, but ended up having to do house stuff. Quote
AdamCatalyst Posted December 2, 2024 Author Report Posted December 2, 2024 (edited) @McMarkis Hah! Guess what? Yesterday I figured this out: Ref Call Text Box Position @ 0x127AE Ref Call Text Box Display Duration @ 0x12795 I *think* that's it then! Guys, thank-you so much for your help. Please don't ever hesitate to let me know if there is something I can help you with. 1. I'm going to get this all working with my ROM, post that. 2. Next I'm going to get it refined for the OG, post that. 3. Then I will write out an easier to use set of instructions and patch for the 32-team ROM, and compatibility with other patches. Will get #2 & #3 done over Christmas break. I can't tell you how many hours I poured into this with my brute force methods. I really appreciate you sharing your time and expertise on this. Edited December 2, 2024 by AdamCatalyst 1 1 Quote
Sean Posted December 4, 2024 Report Posted December 4, 2024 Have you noticed any "artifacts" like this during face-offs(presumably items that would render off-screen), specifically after a penalty? Messing around with the patch included in your last ROM on a definitely not WJC project, and obviously we're working from different templates so there's a decent probability I messed something up when cleaning up other things, but figured I'd throw it you way in case you've seen it before and/or I'm just missing it on this thread. Quote
AdamCatalyst Posted December 4, 2024 Author Report Posted December 4, 2024 (edited) During development I saw stuff like that, but no more. Please send me your WIP! I need a few “third party” ROMs to test it on, as I work out an easy to use set of universal instructions. It would be good to have one of yours in that process. My goal is to get patches and instructions out for everyone as a Christmas gift. Just getting my own wrapped up first. Edited December 4, 2024 by AdamCatalyst 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.