NTSC games on PAL N64 rolling video / shifted colours fix

for more info: Video Interface@64brew
special greetings to Roadhouse of High Society

Now... no need for paladin (& sound issues see threadmark, please download latest version) or a RGB mod... do this:
Hex edit the rom, search for 00000C150C150C15 & replace all instances with 00170C690C6F0C6D
Usually this is enough, but on some tvs you also need to do this:
search for 03E5223900 replace with 04541E3A00
key word "some TVs". as such, my personal pattern, "opt" does not automatically patch this; nor the pal2ntsc reverse ones,
Remember to fix CRC or the game will not boot. (I use rn64crc2)
If the game's compressed (ex. no pattern found) or you aren't using a copier / flashcard, you can easily create a GameShark code.
Dump the ram & search for the aforementioned values. As an example, here's the code that I made for Densha De Go. It is pretty long, since patching only a few video tables just crashed the output (tv: no video but could hear the audio)

Note: Why continuous write? Well, If I remember correctly the injector does not support F1 (write once at boot) cheat codes.
Everdrive does... but everdrive also needs "enable codes". Here's a simplified version of the code, for use with an everdrive.
F105BD20 2400 ---> enable code, thanks Shogun of gamehacking.org
F1074306 0C4D --| only video table used
F1074308 0C4D --| htotal patch taken from n64opt.json
F107430A 0C4D --| and uses F1 write once instead of 81 continuous

Anyway... the long code is below.

#VIBURST
8107425C 0454
8107425E 1E3A
810742AC 0454
810742AE 1E3A
810742FC 0454
810742FE 1E3A
8107434C 0454
8107434E 1E3A
8107439C 0454
8107439E 1E3A
810743EC 0454
810743EE 1E3A
8107443C 0454
8107443E 1E3A
8107448C 0454
8107448E 1E3A
810744DC 0454
810744DE 1E3A
8107452C 0454
8107452E 1E3A
8107457C 0454
8107457E 1E3A
810745CC 0454
810745CE 1E3A
8107461C 0454
8107461E 1E3A
8107466C 0454
8107466E 1E3A
810753DC 0454
810753DE 1E3A
8107580C 0454
8107580E 1E3A
#VIBURST_END

#HSYNC
81074264 0017
81074266 0C69
81074268 0C6F
8107426A 0C6D
810742B4 0017
810742B6 0C69
810742B8 0C6F
810742BA 0C6D
81074304 0017
81074306 0C69
81074308 0C6F
8107430A 0C6D
81074354 0017
81074356 0C69
81074358 0C6F
8107435A 0C6D
810743A4 0017
810743A6 0C69
810743A8 0C6F
810743AA 0C6D
810743F4 0017
810743F6 0C69
810743F8 0C6F
810743FA 0C6D
81074444 0017
81074446 0C69
81074448 0C6F
8107444A 0C6D
81074494 0017
81074496 0C69
81074498 0C6F
8107449A 0C6D
810744E4 0017
810744E6 0C69
810744E8 0C6F
810744EA 0C6D
81074534 0017
81074536 0C69
81074538 0C6F
8107453A 0C6D
81074584 0017
81074586 0C69
81074588 0C6F
8107458A 0C6D
810745D4 0017
810745D6 0C69
810745D8 0C6F
810745DA 0C6D
81074624 0017
81074626 0C69
81074628 0C6F
8107462A 0C6D
81074674 0017
81074676 0C69
81074678 0C6F
8107467A 0C6D
810753E4 0017
810753E6 0C69
810753E8 0C6F
810753EA 0C6D
81075814 0017
81075816 0C69
81075818 0C6F
8107581A 0C6D
#HSYNC_END

I attached a json file in order to automate the process with Garey27's Binary-AutoPatcher (you can find it on GitHub) - Big Endian (z64) input file

edit: added pal game to ntsc patterns zip for ntsc console users that have the opposite problem.
hint: if you're trying to make a pal2ntsc code/manual hex edit... search also for 00150C690C6F0C6E to patch, not only 0017...0C6D!
edit: added optimized ntsc2pal pattern zip
edit: added opt&n64 files in single zip, like the one for NTSC consoles. now includes audio fix by @LaminGaming - see threadmark for RAM patching.
edit: while the method works with most TVs, there are a few in which this fix will not be effective.
 

Attachments

Last edited by Fabax01,
  • Love
Reactions: hippy dave
are you sure? just tried right now and the video gets successfully fixed (tried with opt.json)... it's 100% the retail NTSC rom since fox gets listed under "Star Fox" instead of the PAL name. Or maybe you were referring to the japanese one?
Yeah, it didn't work for me, not sure how it's working for you, unless I did something wrong. There's only one video table in the ROM, but patching it does nothing, it stays at 61.02Hz.
For Whatever Reason, the PAL60 Patch Requires the NTSC Rom in Order for It to Work, which Seems to be Causing Those Issues. Either That, or the PAL60 Patch was Created with the European ROM in Mind, and Not the Australian ROM (Though idk if That'd be of Any Significance)

I Decided to Patch the PAL60 Version and NTSC Version with Both the Opt and N64 Json Files, as Well as Run Those ROMs through RN64CRC (Just In Case the Checksum Might've been the Issue), and All of Them Still Have the Distorted Video. Here's a Pic of What It Looks Like for Me. It Just Looks Really Bloodshot and Distorted af. I Also Decided to Test the European and Australian ROMs to See if it was a Hardware Issue of Sorts, and Nope. Those Display Just Fine (As Seen in the 2nd Pic)



Unnfortunately, Only the NTSC Rom is Patchable, since Patching the EU or AU Rom will Cause it to Stay on a Black Screen, which Also Explains Why It Doesn't Allow You to Patch Them On Their Website (3rd and 4th Pic)

But Yeah, I'll See What I Can Do with Locating the Values in P64
Just checked the code addresses for the "NTSC" version of Smash Remix and they are the same. I also ran the ROM on my everdrive and had no issues, so the codes are definitely working.
 
  • Like
Reactions: Fabax01
@LaminGaming I'll add to the thread that the fix doesn't work with all TVs. Oh well :(, at least it fixes a lot of 'em.
Yep! It was the TV!
Tested It Out on a Sony Bravia KDL-40CX520 40", and The Video and Audio are Flawless with the Patch!
Thank You Very Much for Your Help! Really Appreciate It! 🩵🧡
 

Attachments

  • 20260329_164929.jpg
    20260329_164929.jpg
    555.6 KB · Views: 7
Last edited by Real_Yeeted_Bean,
I just want to say THANKS!!!! You guys are awesome, now I can play some sm64 at full speed without visual artifacts on my pal console... Thanks again! I'll try some more games and I'll report back if find any issues. :bow:
 
  • Like
Reactions: LaminGaming

Site & Scene News

Popular threads in this forum