Hacking Possible to Disable the Wii's (De)Flicker Filter?

EnterpriseFreak

Active Member
Newcomer
Joined
Sep 2, 2021
Messages
29
Trophies
0
Age
19
XP
74
Country
Germany
@EnterpriseFreak It's called the deflicker filter. Set it to "Safe (OFF)" and it'll work.
That works, thanks! That makes it a lot easier for people that use your loader. Guess manually patching is still is useful for loaders that don't have the option to disable the filter and for vWii injects tho. Anyway thanks for your help!
 
  • Like
Reactions: blackb0x

mive

Well-Known Member
Member
Joined
Jul 19, 2018
Messages
209
Trophies
0
Age
38
XP
471
Country
Germany
Why don't you just bundle the common-key? Afaik Dolphin bundles it just like NUS Packer and probably other programs too.

you're probably right, I'll include static binaries. I'll also fix some issues I've encountered

edit:
added zip
 

Attachments

  • WiiVC_Disable_GXSetCopyFilter.zip
    1.4 MB · Views: 28
Last edited by mive,

TheLegendOfXela

Well-Known Member
Newcomer
Joined
Jan 8, 2019
Messages
47
Trophies
0
XP
124
Country
United States
Hey everyone, I'm new here. Just wanted to say that've found this thread yesterday and tried the method on my copy of Twilight Princess for the Wii and I must say that it looks like 1000x better now. Since I haven't found a tool that would patch the main.dol automatically, so I've decided to create one myself. Since I'm new I can't post a direct link to the github right now but my username on there is EnterpriseFreak-v2 and the project is called No-AA-Patcher. I've also attached an image that shows the huge difference patching the video mode makes for Twilight Princess. View attachment 274606
Could you also add the ability to remove dithering, please?
 

EnterpriseFreak

Active Member
Newcomer
Joined
Sep 2, 2021
Messages
29
Trophies
0
Age
19
XP
74
Country
Germany
@EnterpriseFreak https://gbatemp.net/posts/9481457

But when you disable dithering it tends to make games look worse. And that's why I added filter strength options to the loader instead of an option to disable dithering.
Yeah, I know. I have seen how Twilight Princess on GameCube looks like witthout it (absolutely horrible!), and it's not something I'd remove from the games myself. I'll make it so that you have to pass something like "--disableDither" to the program as an argument if you really want to remove that filter
 

EnterpriseFreak

Active Member
Newcomer
Joined
Sep 2, 2021
Messages
29
Trophies
0
Age
19
XP
74
Country
Germany
Last edited by EnterpriseFreak,

TheLegendOfXela

Well-Known Member
Newcomer
Joined
Jan 8, 2019
Messages
47
Trophies
0
XP
124
Country
United States
@TheLegendOfXela
https://github.com/EnterpriseFreak-v2/No-AA-Patcher/releases/tag/1.1.1
From what I've seen games look a lot worse when disabling dithering so I'd argue that the patching works. Please report back if it works for you.
Edit: Updated the release link to v1.1.1 which also supports the deflicker patterns of MK Wii, etc.
Thanks! I appreciate it! I've removed the dithering filter from Animal Crossing City Folk and New Super Mario Bros and I think it looks pretty good. What about the removal of dithering looks bad to everyone? Just curious!
 

EnterpriseFreak

Active Member
Newcomer
Joined
Sep 2, 2021
Messages
29
Trophies
0
Age
19
XP
74
Country
Germany
Thanks! I appreciate it! I've removed the dithering filter from Animal Crossing City Folk and New Super Mario Bros and I think it looks pretty good. What about the removal of dithering looks bad to everyone? Just curious!
Well not every game suffers to the same degree from removed dithering, it's mostly the games that have a ton of different shades of the same color on screen at the same time that suffer the most from removed dithering. A game with "cartoonish" textures like Animal Crossing will not suffer as much from the lack of dithering a game with more realistic graphics like Resident Evil. I've attached two images (from the Wikipedia article on dithering) that shows a 16-color color photo of a cat with and without dithering applied to it. This should give you an example on the effects of missing dithering on something thats similar to games with more realistic graphics.
16cnd.png 16cwd.png

Wikipedia article these images were taken from: https://en.wikipedia.org/wiki/Dither
 
Last edited by EnterpriseFreak,
  • Like
Reactions: TheLegendOfXela

WobblingPixels

Member
Newcomer
Joined
Jun 29, 2021
Messages
8
Trophies
0
Age
32
XP
52
Country
Germany
Hey everyone, I'm new here. Just wanted to say that've found this thread yesterday and tried the method on my copy of Twilight Princess for the Wii and I must say that it looks like 1000x better now. Since I haven't found a tool that would patch the main.dol automatically, so I've decided to create one myself. Since I'm new I can't post a direct link to the github right now but my username on there is EnterpriseFreak-v2 and the project is called No-AA-Patcher. I've also attached an image that shows the huge difference patching the video mode makes for Twilight Princess. View attachment 274606

Script doesn't work for me. First I got the messages that two ddl files are missing: vcruntime140d and vcruntime140d. I download the files and placed in the correct folder. the error messages are gone but I get 1KB patched.dol file.
 

EnterpriseFreak

Active Member
Newcomer
Joined
Sep 2, 2021
Messages
29
Trophies
0
Age
19
XP
74
Country
Germany
Script doesn't work for me. First I got the messages that two ddl files are missing: vcruntime140d and vcruntime140d. I download the files and placed in the correct folder. the error messages are gone but I get 1KB patched.dol file.

Never download random dlls from the internet! Delete them and install the latest Visual C++ runtime from Microsoft instead! (https://support.microsoft.com/en-us...ownloads-2647da03-1eea-4433-9aff-95f26a218cc0)

Try patching the DOL again after you have installed the runtime. Program usage has changed since the initial release, you no longer drag and drop a main.dol on the patcher but run ``No-AA-Patcher.exe --noaa <path to your input main.dol> patched.dol>`` instead.
 
  • Like
Reactions: ChibiMofo

WobblingPixels

Member
Newcomer
Joined
Jun 29, 2021
Messages
8
Trophies
0
Age
32
XP
52
Country
Germany
No worries I got the dll files from a trusted place with checksums. Anyways I deleted the files, reinstalled Visual C++ runtime, run the script. The error message about missing ucrtbased.dll stil occurs, the other error message about vcruntime140d is gone. So I placed ucrtbased.dll file in the correct folder and same result patched.dol is 1KB
 

Maeson

Well-Known Member
Member
Joined
Apr 3, 2013
Messages
815
Trophies
0
Age
32
XP
1,977
Country
Why not simply use a Hex Editor? You take little time in doing the one change you need, and any of them will work for something as simple.
 

WobblingPixels

Member
Newcomer
Joined
Jun 29, 2021
Messages
8
Trophies
0
Age
32
XP
52
Country
Germany
I am already using the hex editor but with the script its less time consuming.

@NoobletCheese
Would be possible to create gecko codes from the hex values to disable the vfilter and dithering? So at the end you just have to place the gtc file into the loader folder and run the game (on original hardware) without patching one by one.

UPDATE: Seems like disabling the deflicker in 30 FPS games isn't as noticeable like 60 FPS ones, I guess it's because I'm not using component cables, but the improvements aren't as huge compared to these, and there's noticeable tearing in Pikmin 1 or Super Paper Mario, for example. I'm sure this is due to using 480i so I don't see it as an issue.

Here's another upload of the cheats with some typos fixed in certain games.

How do I apply thse patches in GX or WiiFlow loader? Just like Gecko codes? Do you have patch for Zelda Skyward US Ver 1.02? The hex edit replacement does not work. Looks like Zelda Skyward uses unique vfilter string
 
Last edited by WobblingPixels,

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
357
Trophies
0
Age
22
XP
597
Country
United States
@NoobletCheese
Would be possible to create gecko codes from the hex values to disable the vfilter and dithering?

It's possible, but only those who understand dol loader code (like authors of ULGX and Dolphin) know how to get the mapping between the dol binary and memory address at runtime. If you have Dolphin on PC you can follow the procedure here to get the memory address and create the cheat code yourself.


How do I apply thse patches in GX or WiiFlow loader? Just like Gecko codes? Do you have patch for Zelda Skyward US Ver 1.02? The hex edit replacement does not work. Looks like Zelda Skyward uses unique vfilter string

They are gecko codes, yes. I believe Skyward Sword has the vfilter disabled by default for 480p mode.
 
Last edited by NoobletCheese,
  • Like
Reactions: WobblingPixels

EnterpriseFreak

Active Member
Newcomer
Joined
Sep 2, 2021
Messages
29
Trophies
0
Age
19
XP
74
Country
Germany
Are there any benefits to disabling the de-flicker filter in a 480i Wii game? I can't force Tenchu to 480p.
You'll still get a good improvement in visuals on a flatscreen when using component cables or on a HDMI modded wii. I'm playing the PAL release of Super Mario 64 (runs at 576i and forcing it to run on anything but that makes it unplayable) using the deflicker filter makes look much better.

@blackb0x Would it be possible to add a force 576p option to ULGX's patch options for games that just really can't handle non-50Hz modes due to difference in speed and resolution? Afaik swiss can do on a Wii in GC Mode so the hardware should be capable of that?
 
  • Like
Reactions: KungBore

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
388
Trophies
0
XP
1,486
Country
United Kingdom
@blackb0x Would it be possible to add a force 576p option to ULGX's patch options for games that just really can't handle non-50Hz modes due to difference in speed and resolution? Afaik swiss can do on a Wii in GC Mode so the hardware should be capable of that?
I've been avoiding it since compatibility is awful for Wii games.

Compatibility might be improved by patching a certain function like Swiss does, but the function is different for Wii games. So ideally you'd need to be good with assembly and own a USB gecko to make the required changes.
 
Last edited by blackb0x,

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
357
Trophies
0
Age
22
XP
597
Country
United States
The official Nintendo SDK doesn't seem to mention a 576p mode, the highest resolution PAL mode it mentions is 528i (GXPal528Int).

GXFrameBuffer.h has this note:
Code:
Revision 1.3  2006/05/18 09:40:10  urata
  Added the rendermode of progressive for PAL and MPAL.


But I think it's referring to 480p 60hz PAL:
Code:
extern GXRenderModeObj GXMpal480Prog;
extern GXRenderModeObj GXEurgb60Hz480Prog;


There is no official GXPal528Prog or GXPal576Prog mode as far as I can see.

I presume blackb0x is referring to manually creating our own 576p mode by modifying the first member of GXRenderModeObj to make it VI_TVMODE(VI_PAL, VI_PROGRESSIVE) and seeing what happens, where:
Code:
#define VI_TVMODE(FMT, INT)   ( ((FMT) << 2) + (INT) )

//FMT
#define VI_NTSC                     0
#define VI_PAL                      1
#define VI_MPAL                     2
#define VI_DEBUG                    3
#define VI_DEBUG_PAL                4
#define VI_EURGB60                  5

//INT
#define VI_INTERLACE                0
#define VI_NON_INTERLACE            1
#define VI_PROGRESSIVE              2


i.e VI_TVMODE(VI_PAL, VI_PROGRESSIVE) = 0x06

i.e patch GXRenderModeObj->viTVMode = 0x06

Might also need to patch:

GXRenderModeObj->xFBmode (00000000=single field, 00000001=double field)
GXRenderModeObj->field_rendering (0000=off, 0001=on)

My guess is this will most likely result in a black screen or crash on game start.

@EnterpriseFreak you could try it out by patching these inside Super Mario 64 PAL's main.dol in a hex editor. I highly doubt you will get a working 576p output though, but would love to be proven wrong!

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

Are there any benefits to disabling the de-flicker filter in a 480i Wii game? I can't force Tenchu to 480p.

If ULGX fails to force it to 480p, it probably means we need to patch VI_Configure instead of GXRenderModeObj. I will try to do that but I'm not hopeful it won't just result in a black screen or something else, otherwise the game dev's would have just done that in the first place.
 
Last edited by NoobletCheese,
  • Like
Reactions: KungBore
General chit-chat
Help Users
    Sonic Angel Knight @ Sonic Angel Knight: Hey, where the admins at? Come in the chat. I got a idea. How bout a Sound notification or...