Hacking Hidden N64 VC widescreen mode

SuperrSonic

Well-Known Member
OP
Member
Joined
Dec 9, 2011
Messages
781
Trophies
0
XP
1,742
Country
Puerto Rico
If you're familiar with playing Wii games on a modern TV you might have noticed one or two games not supporting widescreen or others only supporting correction with borders, but in the case of Virtual Console only a very small number of Arcade games had support for it, usually VC games released on disc did support it as well.

By looking at these disc versions of VC games, I found a setting that is enabled when in widescreen mode, and it just so happens to exist in regular VC games as well.
Though I've found they're mostly only useful on n64 games, because of the sharper scaling. Enabling it in NES games gave me a similar look to NES games on Wii U (very blurry), you can get a better widescreen correction by doing what SSBB and SM All-Stars do by using VI, or rather by not using VI and just letting the TV stretch it. This can be patched-in on most VC games but not SNES, Genesis, or MS.

I've made a list and patches of every working game, I've also included dark filter removals where needed.

Normal VC
fae9d4m.png

After patch:
SjR1L1n.png

-Super Mario 64 (Has dark filter)
-Mario Kart 64 (Has dark filter)
+Mario Kart 64 (Korean release) (Has dark filter)
-Ocarina of Time
-Star Fox (HOME Menu goes widescreen but not game.)
+Star Fox REV3
+F-Zero X
+Paper Mario (Has dark filter? Game is just normally dark?)
+Wave Race 64 (Has dark filter)
+Yoshi's Story
+Sin and Punishment
+Pokemon Snap
-Pokemon Puzzle League
+1080 Snowboarding
+Kirby 64
+Cruis'n USA (Has dark filter)
+Mario Golf
-Majora's Mask
+Super Smash Bros.
-Ogre Battle 64
+Mario Tennis
+Mario Party 2
+Bomberman Hero
+Custom Robo V2 (Has dark filter)
+Kirby 64 (disc version) (native support)
+OOT (Brawl demo) (native support)
+StarFox64 (Brawl demo) (native support)

Code:
Every VC game conveniently stores the SYSCONF in memory, so I use it to check if widescreen has been set.
If it's set then enable the setting. This functionality is mostly useful for permanently writing these codes to the main.dol,
right now it's infeasible with the current tools, and the only method I've figured out breaks reset.
*All of these patches are for the NTSC-U releases unless specified.

Mario Kart 64 (K) widescreen  // Korean release is the same US ROM, and the VC portion can be easily converted to English.
281b6fbc 00005201
001fe6b3 00000001
e0000000 80008000

Mario Kart 64 (K) no dark filter
0404b468 4e800020

Star Fox 64 REV3 widescreen
281e589c 00005201
0024729b 00000001
e0000000 80008000

F-Zero X widescreen
281e545c 00005201
00246e63 00000001
e0000000 80008000

Paper Mario widescreen
281e565c 00005201
00246e6b 00000001
e0000000 80008000

Paper Mario increase brightness (makes whites 0xFF)
001913c1 00000020

Wave Race 64 widescreen
281e565c 00005201
00246e63 00000001
e0000000 80008000

Wave Race 64 no dark filter
040495b4 4e800020

Yoshi's Story widescreen
281ea55c 00005201
0024bf8b 00000001
e0000000 80008000

Sin and Punishment widescreen
281ecc5c 00005201
0024e6a3 00000001
e0000000 80008000

Pokemon Snap widescreen
2822465c 00005201
002af7fb 00000001
e0000000 80008000

1080 Snowboarding widescreen
281f10dc 00005201
00252b43 00000001
e0000000 80008000

Kirby 64 widescreen
281abb3c 00005201
001f31eb 00000001
e0000000 80008000

Cruis'n USA widescreen
281af07c 00005201
001f672b 00000001
e0000000 80008000

Cruis'n USA no dark filter
0404b79c 4e800020

Mario Golf widescreen
281a79bc 00005201
001ef083 00000001
e0000000 80008000

Super Smash Bros. widescreen
281bcfbc 00005201
00204aeb 00000001
e0000000 80008000

Mario Tennis widescreen
281d78fc 00005201
0021fa33 00000001
e0000000 80008000

Mario Tennis increase brightness (makes whites 0xFF)
001889e1 00000020

Mario Tennis 'no controller inserted' screen
04066100 4e800020

Mario Party 2 widescreen
281d347c 00005201
0021f773 00000001
e0000000 80008000

Bomberman Hero widescreen
281d1f3c 00005201
00197973 00000001
e0000000 80008000

Bomberman Hero - gamma setting bool (??)
00197977 00000001

Custom Robo V2 (NTSC-J) widescreen
281ab9bc 00005201
001f306b 00000001
e0000000 80008000

Custom Robo V2 (NTSC-J) no dark filter
0404b414 4e800020
 

SaulFabre

Wii scene/hacking & Wii VC well-known guy
Member
Joined
Feb 6, 2019
Messages
1,130
Trophies
1
Age
22
Location
Ecuador
Website
saulfabreg-wiivc.blogspot.com
XP
2,457
Country
Ecuador
@SuperrSonic i have a question.

If removing dark filter of N64 VC games is possible, it could be also possible to remove the dark filter to SNES VC games? Specially the game "Kirby Super Star" (Kirby's Fun Pak/Hoshi no Kirby Super Deluxe) which has a very annoying, dark and blurry filter which affects game visualization...

Any way for remove the dark filter and make the SNES Kirby Super Star game more brighter?

Thanks a lot
 

SuperrSonic

Well-Known Member
OP
Member
Joined
Dec 9, 2011
Messages
781
Trophies
0
XP
1,742
Country
Puerto Rico
Any way for remove the dark filter and make the SNES Kirby Super Star game more brighter?

Thanks a lot
Yes, I don't have this game anymore but I have a note that says the Wii VC and the Kirby collection both add around 30% black, and if you find the highest color value in the .dol you can change it however you want. Because it isn't exactly 30% you have to do some trial and error or take a proper screenshot of something in the game that should be white, to grab the value and then try searching for it on a hex editor.

The same strategy of using a screenshot to find the value in the dol also works for the GBA demos released on GameCube, but not much else. It's worth noting that this doesn't work for SNES games that use very little dimming (SM All-Stars, Secret of Mana, Fire Emblem 4, etc.)
 
  • Like
Reactions: SaulFabre

SaulFabre

Wii scene/hacking & Wii VC well-known guy
Member
Joined
Feb 6, 2019
Messages
1,130
Trophies
1
Age
22
Location
Ecuador
Website
saulfabreg-wiivc.blogspot.com
XP
2,457
Country
Ecuador
I have some games in PAL region, wouldn't it be possible for you to make them compatible for that region? Not everyone plays NTSC
Have you tried using Patcher64+ Tool?

--------------------- MERGED ---------------------------

If you're familiar with playing Wii games on a modern TV you might have noticed one or two games not supporting widescreen or others only supporting correction with borders, but in the case of Virtual Console only a very small number of Arcade games had support for it, usually VC games released on disc did support it as well.

By looking at these disc versions of VC games, I found a setting that is enabled when in widescreen mode, and it just so happens to exist in regular VC games as well.
Though I've found they're mostly only useful on n64 games, because of the sharper scaling. Enabling it in NES games gave me a similar look to NES games on Wii U (very blurry), you can get a better widescreen correction by doing what SSBB and SM All-Stars do by using VI, or rather by not using VI and just letting the TV stretch it. This can be patched-in on most VC games but not SNES, Genesis, or MS.

I've made a list and patches of every working game, I've also included dark filter removals where needed.

Normal VC
fae9d4m.png

After patch:
SjR1L1n.png

-Super Mario 64 (Has dark filter)
-Mario Kart 64 (Has dark filter)
+Mario Kart 64 (Korean release) (Has dark filter)
-Ocarina of Time
-Star Fox (HOME Menu goes widescreen but not game.)
+Star Fox REV3
+F-Zero X
+Paper Mario (Has dark filter? Game is just normally dark?)
+Wave Race 64 (Has dark filter)
+Yoshi's Story
+Sin and Punishment
+Pokemon Snap
-Pokemon Puzzle League
+1080 Snowboarding
+Kirby 64
+Cruis'n USA (Has dark filter)
+Mario Golf
-Majora's Mask
+Super Smash Bros.
-Ogre Battle 64
+Mario Tennis
+Mario Party 2
+Bomberman Hero
+Custom Robo V2 (Has dark filter)
+Kirby 64 (disc version) (native support)
+OOT (Brawl demo) (native support)
+StarFox64 (Brawl demo) (native support)

Code:
Every VC game conveniently stores the SYSCONF in memory, so I use it to check if widescreen has been set.
If it's set then enable the setting. This functionality is mostly useful for permanently writing these codes to the main.dol,
right now it's infeasible with the current tools, and the only method I've figured out breaks reset.
*All of these patches are for the NTSC-U releases unless specified.

Mario Kart 64 (K) widescreen  // Korean release is the same US ROM, and the VC portion can be easily converted to English.
281b6fbc 00005201
001fe6b3 00000001
e0000000 80008000

Mario Kart 64 (K) no dark filter
0404b468 4e800020

Star Fox 64 REV3 widescreen
281e589c 00005201
0024729b 00000001
e0000000 80008000

F-Zero X widescreen
281e545c 00005201
00246e63 00000001
e0000000 80008000

Paper Mario widescreen
281e565c 00005201
00246e6b 00000001
e0000000 80008000

Paper Mario increase brightness (makes whites 0xFF)
001913c1 00000020

Wave Race 64 widescreen
281e565c 00005201
00246e63 00000001
e0000000 80008000

Wave Race 64 no dark filter
040495b4 4e800020

Yoshi's Story widescreen
281ea55c 00005201
0024bf8b 00000001
e0000000 80008000

Sin and Punishment widescreen
281ecc5c 00005201
0024e6a3 00000001
e0000000 80008000

Pokemon Snap widescreen
2822465c 00005201
002af7fb 00000001
e0000000 80008000

1080 Snowboarding widescreen
281f10dc 00005201
00252b43 00000001
e0000000 80008000

Kirby 64 widescreen
281abb3c 00005201
001f31eb 00000001
e0000000 80008000

Cruis'n USA widescreen
281af07c 00005201
001f672b 00000001
e0000000 80008000

Cruis'n USA no dark filter
0404b79c 4e800020

Mario Golf widescreen
281a79bc 00005201
001ef083 00000001
e0000000 80008000

Super Smash Bros. widescreen
281bcfbc 00005201
00204aeb 00000001
e0000000 80008000

Mario Tennis widescreen
281d78fc 00005201
0021fa33 00000001
e0000000 80008000

Mario Tennis increase brightness (makes whites 0xFF)
001889e1 00000020

Mario Tennis 'no controller inserted' screen
04066100 4e800020

Mario Party 2 widescreen
281d347c 00005201
0021f773 00000001
e0000000 80008000

Bomberman Hero widescreen
281d1f3c 00005201
00197973 00000001
e0000000 80008000

Bomberman Hero - gamma setting bool (??)
00197977 00000001

Custom Robo V2 (NTSC-J) widescreen
281ab9bc 00005201
001f306b 00000001
e0000000 80008000

Custom Robo V2 (NTSC-J) no dark filter
0404b414 4e800020
Okay @SuperrSonic, but what type of codes are these? Are Gecko codes or they are another type of code? And how I can convert these codes to hex values and find the correct offset for insert these values in the main.dol file? I'm asking this because I'm interested in making a WAD of Mario Tennis which brightness is set to max brightness (said in another words, that doesn't have any dark filter).

And another question: any way for put a more brighter color pallete to NES VC releases for Wii for replace that dark and blurry color pallete of VC?

Thanks ;)
 
Last edited by SaulFabre,

SaulFabre

Wii scene/hacking & Wii VC well-known guy
Member
Joined
Feb 6, 2019
Messages
1,130
Trophies
1
Age
22
Location
Ecuador
Website
saulfabreg-wiivc.blogspot.com
XP
2,457
Country
Ecuador
Okay @SuperrSonic, but what type of codes are these? Are Gecko codes or they are another type of code? And how I can convert these codes to hex values and find the correct offset for insert these values in the main.dol file? I'm asking this because I'm interested in making a WAD of Mario Tennis which brightness is set to max brightness (said in another words, that doesn't have any dark filter).

And another question: any way for put a more brighter color pallete to NES VC releases for Wii for replace that dark and blurry color pallete of VC?

Thanks ;)
@SuperrSonic Any answers to my question? :unsure::unsure::unsure:
 
Last edited by SaulFabre,

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
364
Trophies
0
Age
22
XP
635
Country
United States
@SuperrSonic Any answers to my question? :unsure::unsure::unsure:

@MaeseJesus has mentioned the first half is a memory address and second half is what value to put in there.

So we would need to find the mapping between memory and dol file.

I have the PowerPC disassembly tool which can do it but it only works for elf's (I tried converting dol to elf with another tool but disassembler crashed).

I think Dolphin debug build might be able to give us the mapping...
 
  • Like
Reactions: SaulFabre

Nintendo Maniac

Well-Known Member
Member
Joined
Apr 26, 2007
Messages
785
Trophies
0
XP
554
Country
United States
To OP, do you have more information on how you achieved this?

Over on the Dolphin forum, the creator of Patcher64+ wants to implement this "hidden widescreen" setting, but needs more information on how it was achieved as they were not able to get the codes working with any result:
Admentus @ forums.dolphin-emu.org said:
https://gbatemp.net/threads/hidden-n64-vc-widescreen-mode.575806/

Similarly I found this source a while ago that supposedly unlocks Widescreen from within the Virtual Console. It seems it was posted as Gecko Codes. Sadly I wasn't able to replicate this with Gecko Codes (does nothing?), so I can't look up the original values or offsets from the RAM to the VC AppFile 01.
 
Last edited by Nintendo Maniac,
  • Like
Reactions: SaulFabre

SuperrSonic

Well-Known Member
OP
Member
Joined
Dec 9, 2011
Messages
781
Trophies
0
XP
1,742
Country
Puerto Rico
but needs more information on how it was achieved as they were not able to get the codes working with any result
If the codes fail even if the console is set to widescreen, then the SYSCONF reading failed because its location in memory is different. When I tested these codes I saw no signs of this happening, but it's possible this is the problem.

Just remove the first and third lines. It was a pointless idea anyway because with a custom nandloader one can read this information reliably.

About the patch: I used Brawl's Ocarina of Time demo, I changed the aspect settings and compared, then I applied those changes to my target VC game until I found the exact value.
 
  • Like
Reactions: SaulFabre

skylabhalo

Member
Newcomer
Joined
Jun 12, 2021
Messages
6
Trophies
0
Age
21
Location
Germany
XP
44
Country
Germany
How would one apply one of these patches? I only have 2 Monitors (Same Model Same Brand acer) and on both of them I'm not able to change the widescreen setting. When switching my wii to PAL 50hz I can change the aspect ratio with the monitor. But as soon as I try NTSC it doesn't and it stretches the graphics all across the screen :c PAL60 for some reason still only Outputs in 50 Hz. It's still weird cause the Monitor supports NTSC 60hz it just doesn't let me turn off the wide mode on 60hz .-.
 
Last edited by skylabhalo,
General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: Aloha snack bar!!!