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
Thought to give an update on the audio fix. It turns out that it isn't just Rare games that have audio issues, but also other games that appeared to be fine initially before further inspection.

After testing with and without the fix, and comparing with their PAL counterparts, I've found that all non-Rare games either have correct tempo with incorrect pitch or incorrect tempo and pitch. Neither creates distortion like the majority of Rare's games, so that's why it was hard to tell initially.
Great job @LaminGaming !
Do you mind adding to your threadmarked post the fact that it's needed for all games?
Right now I will not add it to the autopatcher files, so people need to do it manually either by one of your cheats or by searching for it by themselves.
I don't have a N64 at the moment, but by opening in an hex editor a rom and searching for 02E6????D354 (using wildcard...) shows no results for some games... games in which the video table is in plain text, so it can't be packed...
In multiple games I even get a result for 02E6????????????????????D354... but again, not in all.
edit: (needs to be confirmed) use smaller wildcard for searching pal equivalent: 02F5????????????B2D2
IDK what's happening there... Without a n64 I can't check if it's really used for audio or random data...
Are there games in which you can simply change "02E6D354" (found in all roms)?
edit: probably a red herring, since yoshi's story pal has only this NTSC value in the rom... pal value returns no matches. doing the wildcard search instead returns a match for 02F5????B2D2
To make matters worse banjo tooie returns results for both searches... So a dumb patcher would be tricked in editing that data... data that, by looking at your code, it's irrelevant (and tooie can only be ram patched anyway for the video tables...)
---

edit: it's seems that every game that is "clear", not packed (so video tables are rom editable) contain both pal & ntsc values near each other.
example: yoshi's story ntsc/pal 02E6????D354 & 02F5????B2D2
example: resident evil 2 ntsc/pal 02E6????????????????????D354 & 02F5????????????B2D2
So far a lot of games follow this pattern...
question: why two different patterns? possible answer = different audio middleware. from a quick look nintendo in house games use the ???? wildcard pattern, even the latest ones ex. animal crossing.
this pattern is also used for initial third pary titles, like mortal kombat trilogy.
stuff like paper mario, which was developed by intelligent systems and not EAD, uses the longer wildcard variant.
Same for konami's ISS 2000, even though the older ISS 64 follows the ???? pattern.
 
Last edited by Fabax01,
Great job @LaminGaming !
Do you mind adding to your threadmarked post the fact that it's needed for all games?
Right now I will not add it to the autopatcher files, so people need to do it manually either by one of your cheats or by searching for it by themselves.
I don't have a N64 at the moment, but by opening in an hex editor a rom and searching for 02E6????D354 (using wildcard...) shows no results for some games... games in which the video table is in plain text, so it can't be packed...
In multiple games I even get a result for 02E6????????????????????D354... but again, not in all.
edit: (needs to be confirmed) use smaller wildcard for searching pal equivalent: 02F5????????????B2D2
IDK what's happening there... Without a n64 I can't check if it's really used for audio or random data...
Are there games in which you can simply change "02E6D354" (found in all roms)?
edit: probably a red herring, since yoshi's story pal has only this NTSC value in the rom... pal value returns no matches. doing the wildcard search instead returns a match for 02F5????B2D2
To make matters worse banjo tooie returns results for both searches... So a dumb patcher would be tricked in editing that data... data that, by looking at your code, it's irrelevant (and tooie can only be ram patched anyway for the video tables...)
Sure, I've just edited it now. From my observations, there are games that can't be ROM patched, similarly to the video tables. Although, there are exceptions, GoldenEye for example can be ROM patched with the audio fix but not the video tables. I have yet to find other instances, but GoldenEye might be a rare exception.

And then there's also Banjo-Kazooie and Banjo-Tooie, while they do have the values listed in the ROM, changing them patches the wrong ones, as those games have two video clock values for some reason, so only a RAM patch is possible for those.

I think the video clock values are being used for the audio, as changing them does work. But there may still be something else that can be edited to achieve the same results, I just can't confirm that for sure without further testing. The values can also be layed out differently per game, with some being more spaced out than others. But for the most part, they seem to be structured like this: 02E6????D354.

Edit: Yeah, you can find both PAL and NTSC video clock values in the same ROM, but only one of them takes affect based on whatever region the ROM is in. There's even ones for MPAL: 02E6025C.

Edit 2: Did some looking and can now say almost for certain that there are only two possible patterns for NTSC. Here's a list:

02E6????D354

Conker's Bad Fur Day
Diddy Kong Racing
Dinosaur Planet
Donkey Kong 64
F-Zero X
GoldenEye 007
Jet Force Gemini
Killer Instinct Gold
Mario Kart 64
Mickey's Speedway USA
Pilotwings 64
Quake
Star Fox 64
Star Wars Episode 1: Racer
Super Mario 64
Super Smash Bros.
The Legend of Zelda: Majora's Mask
The Legend of Zelda: Ocarina of Time
Wave Race 64
Yoshi's Story

02E6????????????????????D354

007 The World Is Not Enough
Mario Golf
Mario Party
Mario Party 2
Mario Party 3
Paper Mario
Quake II
Rayman 2: The Great Escape
Turok: Rage Wars
Turok 2: Seeds of Evil
Turok 3: Shadow of Oblivion

Cannot Be Patched

Banjo-Kazooie
Banjo-Tooie
Blast Corps
Mario Tennis
Perfect Dark
Turok: Dinosaur Hunter
 
Last edited by LaminGaming,
Sure, I've just edited it now. From my observations, there are games that can't be ROM patched, similarly to the video tables. Although, there are exceptions, GoldenEye for example can be ROM patched with the audio fix but not the video tables. I have yet to find other instances, but GoldenEye might be a rare exception.

And then there's also Banjo-Kazooie and Banjo-Tooie, while they do have the values listed in the ROM, changing them patches the wrong ones, as those games have two video clock values for some reason, so only a RAM patch is possible for those.

I think the video clock values are being used for the audio, as changing them does work. But there may still be something else that can be edited to achieve the same results, I just can't confirm that for sure without further testing. The values can also be layed out differently per game, with some being more spaced out than others. But for the most part, they seem to be structured like this: 02E6????D354.

Edit: Yeah, you can find both PAL and NTSC video clock values in the same ROM, but only one of them takes affect based on whatever region the ROM is in. There's even ones for MPAL: 02E6025C.

Edit 2: Did some looking and can now say almost for certain that there are only two possible patterns for NTSC. Here's a list:

02E6????D354

Conker's Bad Fur Day
Diddy Kong Racing
Dinosaur Planet
Donkey Kong 64
F-Zero X
GoldenEye 007
Jet Force Gemini
Killer Instinct Gold
Mario Kart 64
Mickey's Speedway USA
Pilotwings 64
Quake
Star Fox 64
Star Wars Episode 1: Racer
Super Mario 64
Super Smash Bros.
The Legend of Zelda: Majora's Mask
The Legend of Zelda: Ocarina of Time
Wave Race 64
Yoshi's Story

02E6????????????????????D354

007 The World Is Not Enough
Mario Golf
Mario Party
Mario Party 2
Mario Party 3
Paper Mario
Quake II
Rayman 2: The Great Escape
Turok: Rage Wars
Turok 2: Seeds of Evil
Turok 3: Shadow of Oblivion

Cannot Be Patched

Banjo-Kazooie
Banjo-Tooie
Blast Corps
Mario Tennis
Perfect Dark
Turok: Dinosaur Hunter
I've run a patching script on >200 roms.
"pattern": {
"name": "lamingaming audio fix #2",
"search": "02E6CCCCCCCCCCCCCCCCCCCCD354",
"wildcard": "0xCC",
"replace": "02FACCCCCCCCCCCCCCCCCCCCFE22",
"replace_wildcard": "0xCC"
},
"pattern": {
"name": "lamingaming audio fix #1",
"search": "02E6CCCCD354",
"wildcard": "0xCC",
"replace": "02FACCCCFE22",
"replace_wildcard": "0xCC"
}
}
Results:
Case A) patches both video & audio
Case B) only patches audio
Case C) doesn't patch anything
These were my results. I guess I'll update the patterns file in the main post
 
I've run a patching script on >200 roms.
"pattern": {
"name": "lamingaming audio fix #2",
"search": "02E6CCCCCCCCCCCCCCCCCCCCD354",
"wildcard": "0xCC",
"replace": "02FACCCCCCCCCCCCCCCCCCCCFE22",
"replace_wildcard": "0xCC"
},
"pattern": {
"name": "lamingaming audio fix #1",
"search": "02E6CCCCD354",
"wildcard": "0xCC",
"replace": "02FACCCCFE22",
"replace_wildcard": "0xCC"
}
}
Results:
Case A) patches both video & audio
Case B) only patches audio
Case C) doesn't patch anything
These were my results. I guess I'll update the patterns file in the main post
Ah, I see you've beaten me to it already lol. I've just finished creating my own audio fix patterns for NTSC and PAL, as well as other ones that have both the video and audio fixes to save time patching. I've given them a test and they all appear to be working correctly.
 

Attachments

  • Like
Reactions: Fabax01
Ah, I see you've beaten me to it already lol. I've just finished creating my own audio fix patterns for NTSC and PAL, as well as other ones that have both the video and audio fixes to save time patching. I've given them a test and they all appear to be working correctly.
Oh man sorry, was just uploading the newer ones with a changelog and didn't see you also uploaded some!
Well, yours can be helpful for others too, as I didn't implement the "near ntsc"/"near pal" patterns... don't want some random person using them without reading all the posts and seeing a rainbow clusterfuck on screen (composite user) :D
 
Oh man sorry, was just uploading the newer ones with a changelog and didn't see you also uploaded some!
Well, yours can be helpful for others too, as I didn't implement the "near ntsc"/"near pal" patterns... don't want some random person using them without reading all the posts and seeing a rainbow clusterfuck on screen (composite user) :D
That's alright, I just had a look at yours and they're pretty much the same as mine anyway. I guess I could add the near NTSC/PAL ones to the threadmarked post.

Speaking of issues with composite, does this also apply to s-video? I'm assuming it does, but it looks fine with my OSSC (when using the correct horizontal sample rate) regardless of which video table I use. Unless it only applies to CRT's. I would've tested it on mine, but it's currently not working - got to try fixing it at some point.
 
That's alright, I just had a look at yours and they're pretty much the same as mine anyway. I guess I could add the near NTSC/PAL ones to the threadmarked post.

Speaking of issues with composite, does this also apply to s-video? I'm assuming it does, but it looks fine with my OSSC (when using the correct horizontal sample rate) regardless of which video table I use. Unless it only applies to CRT's. I would've tested it on mine, but it's currently not working - got to try fixing it at some point.
It's rainbowing of edges (check white backgrounds or white objects) / red/blue blinking in black text & a lot of other chroma dots/noise.
This happened on all devices with composite (less evident on a friend's CRT iirc)
Maybe it doesn't happen on S-video since Chroma is on it's wire? Didn't test (have no s-video cable)
Anyway seems the cause is phase shifting (that's the reason I chose my patterns to end chroma calculation in .75, or at least .25 for PAL & .5 for NTSC; couldn't verify NTSC but theoretically .5 is correct. Try .5 with pal color encoding and it becomes a complete mess especially in static images... and that's with the NUS-CPU-P-02 board, I shudder to think of the artifacts with an earlier '96-97 pal board...)
 
It's rainbowing of edges (check white backgrounds or white objects) / red/blue blinking in black text & a lot of other chroma dots/noise.
This happened on all devices with composite (less evident on a friend's CRT iirc)
Maybe it doesn't happen on S-video since Chroma is on it's wire? Didn't test (have no s-video cable)
Anyway seems the cause is phase shifting (that's the reason I chose my patterns to end chroma calculation in .75, or at least .25 for PAL & .5 for NTSC; couldn't verify NTSC but theoretically .5 is correct. Try .5 with pal color encoding and it becomes a complete mess especially in static images... and that's with the NUS-CPU-P-02 board, I shudder to think of the artifacts with an earlier '96-97 pal board...)
I just did some testing on my N64 (NUS-CPU-P-01) to verify if composite does have issues with 59.83Hz, and can confirm that it is much noisier compared to 59.41Hz, 59.94Hz, and 61.02Hz. I also did the same tests with s-video and had no issues, which is most likely because of chroma being separate from luma.

Here's some screenshots showing the difference between 59.83Hz and 61.02Hz for composite.

59.83Hz
1000008159.png


61.02Hz
1000008160.png


Edit: And I guess I'll show s-video as well for reference.
1000008161.png
 
Last edited by LaminGaming,
  • Like
Reactions: Fabax01
I just did some testing on my N64 (NUS-CPU-P-01) to clarify if composite does have issues with 59.83Hz, and can confirm that it is much noisier compared to 59.41Hz, 59.94Hz, and 61.02Hz. I also did the same tests with s-video and had no issues, which is most likely because of chroma being separate from luma.

Here's some screenshots showing the difference between 59.83Hz and 61.02Hz for composite.

59.83Hz
View attachment 546032

61.02Hz
View attachment 546033

Edit: And I guess I'll show s-video as well for reference.
View attachment 546036
Nice pics, now people can see the difference! But that noise in the composite shot... just as I suspected, yikes... :wacko:
Edited "experimentation" post and added that using "near X" freq. is also suitable for S-VIDEO users.
 
  • Like
Reactions: LaminGaming
Man thank you so much! With that i finally could fix the problem that my upscaler didn't want to take the Output signal of the original NTSC roms on my RGB modded PAL N64. While weirdly on my other old flatscreen with Scart input it perfectly works even without the patch. It seems like that the TV does something different than the upscaler.

I made a powershell script that automated the process of patching all the rooms in the folder, put them in an extra folder and also rename them without the ".patched" afterwards. Then I let the checksum checker run over them et voila, all of them worked, no matter if US or JP.

For anyone who wants to use it: Put the files of the patcher, the n64 json script and also the powershellscript in the same folder as your roms. Then start the powershell-script. After it's done, all the patched roms should be in the "patched" folder.

Thank you again!
Thank you too for the script ! ^_^
Since I had to repatch a few roms (see @LaminGaming 's discovery) I tried it today... works great!
I just made an edit to clean & checksum-fix the games too. (oh... and changed n64.json to opt.json!)
Get-ChildItem *.z64 | foreach { Remove-Item -Path $_.FullName }
[System.Diagnostics.Process]::Start("rn64crc.exe", "-u patched")
---
edit:
maybe it's useful for others, if you can't use powershell or just prefer cmd... "drag files over for patch&crc.bat":
@Echo off
cd "%~dp0"
:loop
set "file=%1"
patcher.exe -input %1 -config opt.json
rn64crc.exe -u %1.patched
ren %1.patched "%~n1"_patched.z64
shift
if not "%~1"=="" goto loop
timeout -1
 
Last edited by Fabax01,
Hello, sorry to bother you, but I'm having trouble modifying Nintendo 64 games. I recently acquired a Summercart64 that I wanted to use to play NTSC games, but I'm encountering visual problems...

While searching for a solution to a problem, I came across your post and tried to implement what you suggested. I managed to change the first two codes using the HxD software, but I didn't really understand how to include the codes, let alone how to use Garey27's Binary-AutoPatcher... I must admit I don't know much about reading data, and it all seems a bit daunting. So I was wondering if I could ask for your help or if there might be a source of more advanced documentation.
 
Hello, sorry to bother you, but I'm having trouble modifying Nintendo 64 games. I recently acquired a Summercart64 that I wanted to use to play NTSC games, but I'm encountering visual problems...

While searching for a solution to a problem, I came across your post and tried to implement what you suggested. I managed to change the first two codes using the HxD software, but I didn't really understand how to include the codes, let alone how to use Garey27's Binary-AutoPatcher... I must admit I don't know much about reading data, and it all seems a bit daunting. So I was wondering if I could ask for your help or if there might be a source of more advanced documentation.
Hello, I assume you're a Windows user since you're using HxD. Use this.
Download Garey27's Binary-Autopatcher here.
You also need rn64crc since you're not using a Everdrive (from 2.x onward they can auto patch checksum.)
Download the attachment in the main post (or, if you're using SCART/S-video, the one from LaminGaming's threadmark.)
Set up a folder like this:
Immagine senza nome.png

Now right click the powershell script (.ps1) and select "Run with Powershell".
New file(s) will be created in the "patched" folder.
NOTE: the games are video-patched, but will still not run unless you recalculate the checksum.
Either open a command prompt, cd to the main folder and do "rn64crc patched -u" or, for easier use, make a shortcut to rn64crc instead and edit the properties to include the "-u" argument. This way, you can simply drag'n'drop the "patched" folder onto the shortcut. Here's another picture.
Cattura2.JPG

Afterwards, copy ROMs inside patched to the SD and play.
I suggest using @LaminGaming 's 59.83Hz json file if playing with S-video / RGB SCART mod (do not use it with composite!)
If you are on simple RCA cables (yellow plug) try the 59.94Hz pattern file first (also known as opt.json) - It's the one I personally use.
Obviously, you need to rename the jsons to "n64.json" or to edit the powershell script directly.
if your TV still has issues then use the original "n64.json" file (59.41Hz)
---
If no patched files are created (or video isn't fixed) then you gotta make a code (see Rareware games.)
Sadly I can't give you an easier tutorial for making them - but LaminGaming already made a few codes so I hope you can use those.
Since you're on SummerCart64 you don't have cheats support built in (same as Everdrive 64 1.X clone users):
You gotta use triclon's injector too! It's a pretty self explanatory program, but doesn't work on all games.
As an example, IIRC Mario Tennis (Europe) has wrong exception handler address set so while the game does start codes do not get applied - other games simply do not boot.
 
Hello, I assume you're a Windows user since you're using HxD. Use this.
Download Garey27's Binary-Autopatcher here.
You also need rn64crc since you're not using a Everdrive (from 2.x onward they can auto patch checksum.)
Download the attachment in the main post (or, if you're using SCART/S-video, the one from LaminGaming's threadmark.)
Set up a folder like this:
View attachment 555319
Now right click the powershell script (.ps1) and select "Run with Powershell".
New file(s) will be created in the "patched" folder.
NOTE: the games are video-patched, but will still not run unless you recalculate the checksum.
Either open a command prompt, cd to the main folder and do "rn64crc patched -u" or, for easier use, make a shortcut to rn64crc instead and edit the properties to include the "-u" argument. This way, you can simply drag'n'drop the "patched" folder onto the shortcut. Here's another picture.
View attachment 555322
Afterwards, copy ROMs inside patched to the SD and play.
I suggest using @LaminGaming 's 59.83Hz json file if playing with S-video / RGB SCART mod (do not use it with composite!)
If you are on simple RCA cables (yellow plug) try the 59.94Hz pattern file first (also known as opt.json) - It's the one I personally use.
Obviously, you need to rename the jsons to "n64.json" or to edit the powershell script directly.
if your TV still has issues then use the original "n64.json" file (59.41Hz)
---
If no patched files are created (or video isn't fixed) then you gotta make a code (see Rareware games.)
Sadly I can't give you an easier tutorial for making them - but LaminGaming already made a few codes so I hope you can use those.
Since you're on SummerCart64 you don't have cheats support built in (same as Everdrive 64 1.X clone users):
You gotta use triclon's injector too! It's a pretty self explanatory program, but doesn't work on all games.
As an example, IIRC Mario Tennis (Europe) has wrong exception handler address set so while the game does start codes do not get applied - other games simply do not boot.
I Patched Smash Remix (2.0.1, PAL60) Using This Method, and I was Able to Fix the Audio, but the Video Isn't Fixed At All. I've Also Tried Searching for 00000C150C150C15 with HxD, but to No Avail. Does Anybody Know How I Can Find the Hex Address for the Video, or How to Make a GameShark Code for the Video? I've Tried LaminGaming's Smash 64 Codes, but They Didn't Work At All. I'm Using an Everdrive64 X7 on an Australian N64.
 
I Patched Smash Remix (2.0.1, PAL60) Using This Method, and I was Able to Fix the Audio, but the Video Isn't Fixed At All. I've Also Tried Searching for 00000C150C150C15 with HxD, but to No Avail. Does Anybody Know How I Can Find the Hex Address for the Video, or How to Make a GameShark Code for the Video? I've Tried LaminGaming's Smash 64 Codes, but They Didn't Work At All. I'm Using an Everdrive64 X7 on an Australian N64.
I've downloaded from p2p a random "smash remix 2.0.1" rom; it gets thrown into the patcher, then copied into my n64 and... the game displays fine, and I deleted it. So no idea what's the issue.
I don't play hack roms (I mean, I like minor edits made by me or others, not entire overhauls)... wouldn't "pal60" mean that it is already working and doesn't need a video fix?
(custom video mode since there is no retail pal60 n64 game.) But I guess you already tried running the rom without the patcher and came here.
Maybe try patching NTSC ver instead?
 
I Patched Smash Remix (2.0.1, PAL60) Using This Method, and I was Able to Fix the Audio, but the Video Isn't Fixed At All. I've Also Tried Searching for 00000C150C150C15 with HxD, but to No Avail. Does Anybody Know How I Can Find the Hex Address for the Video, or How to Make a GameShark Code for the Video? I've Tried LaminGaming's Smash 64 Codes, but They Didn't Work At All. I'm Using an Everdrive64 X7 on an Australian N64.
I don't know about Smash Remix, but you can't ROM patch the video for Smash 64. The only way to fix the video is with GameShark. I assume the reason the codes most likely didn't work is because the values are at different addresses, so you need to relocate the values in an emulator like Project 64 and update them. If that doesn't work, then I'm not sure what else to suggest. I did just read that Smash Remix supports both NTSC and PAL versions of Smash 64, so you could just use the PAL version in that case.
 
Last edited by LaminGaming,
  • Like
Reactions: Fabax01
I've downloaded from p2p a random "smash remix 2.0.1" rom; it gets thrown into the patcher, then copied into my n64 and... the game displays fine, and I deleted it. So no idea what's the issue.
I don't play hack roms (I mean, I like minor edits made by me or others, not entire overhauls)... wouldn't "pal60" mean that it is already working and doesn't need a video fix?
(custom video mode since there is no retail pal60 n64 game.) But I guess you already tried running the rom without the patcher and came here.
Maybe try patching NTSC ver instead?
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)


I don't know about Smash Remix, but you can't ROM patch the video for Smash 64. The only way to fix the video is with GameShark. I assume the reason the codes most likely didn't work is because the values are at different addresses, so you need to relocate the values in an emulator like Project 64 and update them. If that doesn't work, then I'm not sure what else to suggest. I did just read that Smash Remix supports both NTSC and PAL versions of Smash 64, so you could just use the PAL version in that case.
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
 

Attachments

  • 20260329_001512.jpg
    20260329_001512.jpg
    310.9 KB · Views: 14
  • 20260329_140915.jpg
    20260329_140915.jpg
    791.3 KB · Views: 12
  • Desktop Screenshot 2026.03.29 - 02.42.19.54.png
    Desktop Screenshot 2026.03.29 - 02.42.19.54.png
    489 KB · Views: 11
  • Desktop Screenshot 2026.03.29 - 02.42.02.02.png
    Desktop Screenshot 2026.03.29 - 02.42.02.02.png
    490.6 KB · Views: 15
Last edited by Real_Yeeted_Bean,
I don't know about Smash Remix, but you can't ROM patch the video for Smash 64. The only way to fix the video is with GameShark. I assume the reason the codes most likely didn't work is because the values are at different addresses, so you need to relocate the values in an emulator like Project 64 and update them. If that doesn't work, then I'm not sure what else to suggest. I did just read that Smash Remix supports both NTSC and PAL versions of Smash 64, so you could just use the PAL version in that case.
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?
edit: I do suggest using codes. They are proofed working with the correct refresh rate.
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
What I am saying is to choose "NTSC" instead of "PAL60" in the "smash remix" website, save the resulting rom and then threw it into the patcher with opt or n64.json
If the checksum is not fixed the rom will not boot at all, so it can't be that...
Maybe it's just your TV? Is it a "samsung"? -snip-
 
Last edited by Fabax01,
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?

What I am saying is to choose "NTSC" instead of "PAL60" in the "smash remix" website, save the resulting rom and then threw it into the patcher with opt or n64.json
If the checksum is not fixed the rom will not boot at all, so it can't be that...
Maybe it's just your TV? Is it a "samsung"? -snip-
Yeah, That's Exactly What I Did. I Made 2 PAL60 ROMs and 2 NTSC ROMs (One for Each Json) via Their Website, Patched Them Again and Tested Them Out.

Oh Yeah, It Is a Samsung. A Samsung TU8000 75" to be Precise, since My Main TV (LG G5 77") Doesn't Have AV Support.

I'll See If It Works on a Different TV When I Get Back Home since I'm Shopping rn
 
Yeah, That's Exactly What I Did. I Made 2 PAL60 ROMs and 2 NTSC ROMs (One for Each Json) via Their Website, Patched Them Again and Tested Them Out.

Oh Yeah, It Is a Samsung. A Samsung TU8000 75" to be Precise, since My Main TV (LG G5 77") Doesn't Have AV Support.

I'll See If It Works on a Different TV When I Get Back Home since I'm Shopping rn
Just as I thought... a Samsung. I remember back in 2010-2012 having similar issues of red with a few of "60hz but not ntsc compliant, funky pal60" devices (such as playing out of region VHS tapes I think)... Not a cheap TV either, it was one of the first "Smart" (i.e. crap) ones.
The screen would not scroll, but colors were completely wrong.
If the file I sent you doesn't work please try a TV of a different brand if possible, maybe from friends n' family...
It is weird since these patched roms work fine on the samsung of one of my friends...
 
Just as I thought... a Samsung. I remember back in 2010-2012 having similar issues of red with a few of "60hz but not ntsc compliant, funky pal60" devices (such as playing out of region VHS tapes I think)... Not a cheap TV either, it was one of the first "Smart" (i.e. crap) ones.
The screen would not scroll, but colors were completely wrong.
If the file I sent you doesn't work please try a TV of a different brand if possible, maybe from friends n' family...
It is weird since these patched roms work fine on the samsung of one of my friends...
Yeah, the File Didn't Work, so I'll See If I Can Test It Out on a Different TV When I Get Home
 

Site & Scene News

Popular threads in this forum