Jump to content
NHL'94 Forums

NHL "95 Full Season Bug


Puck Junk

Recommended Posts

On 3/29/2023 at 5:23 PM, rezmang said:

Excellent. Is the source or assembly available somewhere for the original NHL 95 rom? I do have experience with this kind of code and wanted to take a peak at what the actual bug is.

I’m about 10 games shy of hitting this bug on the original, so I hope to start testing cheat code patches soon.

Thank you!!!!

Are you doing this on original hardware with a game genie? It would be cool if you took a video of it working, and you making the playoffs with 128+points on a real system! You'll be the first person in history to get around the bug! I'm putting together a video for this, and being able to include someone showing it working would be cool to have in it.

Link to comment
Share on other sites

Nah, I’m not that cool :]

Using RetroArch via https://github.com/eduardofilo/RG350_adam_image/blob/master/README.md

But I can provide you before and after screenshots if that helps.

I did want to investigate if it’s possible to simplify the patch to a single code, but not sure if that’s realistic. Signed integer overflow is a pretty common bug, especially in the 8/16 bit world. My hope was there might be an earlier summing function we could tweak or this was the result of a bad masked 16bit conversion. I still need to sit down and stare at the assembly for a while, but it does seem like you have a pretty good handle on this. So thank you for your hard work and diligence on this. Making a video on this is a great idea!!!

Link to comment
Share on other sites

4 hours ago, rezmang said:

Nah, I’m not that cool :]

Using RetroArch via https://github.com/eduardofilo/RG350_adam_image/blob/master/README.md

But I can provide you before and after screenshots if that helps.

I did want to investigate if it’s possible to simplify the patch to a single code, but not sure if that’s realistic. Signed integer overflow is a pretty common bug, especially in the 8/16 bit world. My hope was there might be an earlier summing function we could tweak or this was the result of a bad masked 16bit conversion. I still need to sit down and stare at the assembly for a while, but it does seem like you have a pretty good handle on this. So thank you for your hard work and diligence on this. Making a video on this is a great idea!!!

 

Ah that's good thinking. I'll see what happens if I change the CMP.B to CMP.W (16-bit comparison instead of 8-bit). The extra bits in the D7 register are all 1s so are negative, but I think it might work anyway. That'll bring it down to 3 game genie codes (or just 2 if you can enter them after the game starts, bypassing the need for the checksum skip code).

Problem is... the part of the CMP that uses the address and register ($A1,D6), the extra bits accessed in that address might have something else in them, which won't sort properly. So I'll have to test it out to see what happens, because I don't know what else is in that memory. If it's something like Ties, then it won't work.

Link to comment
Share on other sites

On 3/31/2023 at 8:41 AM, rezmang said:

Nah, I’m not that cool :]

Using RetroArch via https://github.com/eduardofilo/RG350_adam_image/blob/master/README.md

But I can provide you before and after screenshots if that helps.

I did want to investigate if it’s possible to simplify the patch to a single code, but not sure if that’s realistic. Signed integer overflow is a pretty common bug, especially in the 8/16 bit world. My hope was there might be an earlier summing function we could tweak or this was the result of a bad masked 16bit conversion. I still need to sit down and stare at the assembly for a while, but it does seem like you have a pretty good handle on this. So thank you for your hard work and diligence on this. Making a video on this is a great idea!!!

I took a look at switching to 16-bit comparison, but it won't work because the data structure where it stores each teams points is adjacent 8-bit values. So using the 16-bit comparison would mix together the points of 2 teams. So the 5 codes from this message is the best that can be done. But the thing is, you don't need to enter the codes every time you play, so it's not a huge inconvenience to have 5 codes. You only really need to enter the codes before starting the playoffs so that it sets the matchups correctly.

  • Thanks 1
Link to comment
Share on other sites

Check out: https://github.com/libretro/libretro-database

There is already a cheat config for NHL 95: https://github.com/libretro/libretro-database/blob/master/cht/Sega - Mega Drive - Genesis/NHL 95 (USA%2C Europe).cht

Looking around, it seems you can combine multiple cheats codes using a plus sign (+).

I’m going on vacation for the next few weeks, but when I’m back I should have my season ready to test this. I will also upload my state file so you can play around with this too.

Thank you!!

  • Thanks 2
Link to comment
Share on other sites

  • 3 weeks later...

I finally got back around to hitting the 128 point season bug on the original ROM. I have attached screen shots and game saves for 126 points and 128 points. I now have everything setup on my laptop, so I guess the next step is to try and get the patch codes in and verify everything is working. Not sure if I will get to this today, but I will definitely get back to this next weekend.

Thank you!!

image.pngimage.pngNHL '95.srm.points_128NHL '95.srm.points_126

Edited by rezmang
Link to comment
Share on other sites

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