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

  • Thread starter Thread starter Razor83
  • Start date Start date
  • Views Views 200,481
  • Replies Replies 754
  • Likes Likes 2
Oh, I see.

I know of wii/gc games with dithering like RE4; it's just that I don't remember any VC title with those but I guess it's for general use then.
 
hey all,

if i make the changes to a main.dol manually, do i have to edit the DATA and UPDATE files, or just the main.dol from DATA
 
Update is usually to update the Wii system menu and should be left alone, so it's the one from data, which is the folder for the files of the game itself.

Edit:removed. Sorry.
 
Last edited by Maeson,
  • Like
Reactions: grandosegood
hey all, is there a patch/automatic method for removing deflicker and dithering on a dol, rather than have to hex edit the dol manually? Thanks.
Post automatically merged:

Code:
2C050000  cmpwi    r5,0x0000
...
8001E9E0: 41820040  beq      *+64                    ; 0x8001EA20

^ appears to be branching ahead 64 bytes if reg5 is 0 (i.e if vf = GX_FALSE).

So we can change it to always branch:
Code:
48000040  b        *+64

i.e in main.dol change:

2C 03 00 00 41 82 00 F8 89 04 00 00 38 00 00 00 89 44 00 01 38 60 00 00 51 00 07 3E 88 E4 00 06 51 40 26 36 89 04 00 0C 50 E3 07 3E 38 E0 00 00 51 07 07 3E 89 44 00 0D 89 64 00 07 39 00 00 00 51 47 26 36 89 44 00 02 89 24 00 12 51 63 26 36 51 40 45 2E 89 44 00 0E 51 28 07 3E 89 24 00 13 51 47 45 2E 89 44 00 03 51 28 26 36 89 24 00 14 51 40 64 26 89 44 00 0F 51 28 45 2E 89 24 00 15 51 47 64 26 89 44 00 04 89 64 00 08 51 28 64 26 51 40 83 1E 89 44 00 10 89 24 00 16 51 63 45 2E 89 64 00 09 51 47 83 1E 89 44 00 05 51 28 83 1E 89 24 00 11 51 63 64 26 89 64 00 0A 51 40 A2 16 89 44 00 0B 51 27 A2 16 88 84 00 17 39 20 00 01 51 63 83 1E 51 43 A2 16 50 88 A2 16 51 20 C0 0E 39 40 00 02 39 20 00 03 38 80 00 04 51 43 C0 0E 51 27 C0 0E 50 88 C0 0E 48 00 00 24 3D 00 01 66 3C 60 02 66 3C E0 03 66 3C 80 04 66 38 08 66 66 38 63 66 66 38 E7 66 66 39 04 66 66 3D 20 CC 01 39 40 00 61 99 49 80 00 2C 05 00 00 38 80 00 53 39 60 00 00 90 09 80 00 38 00 00 54 39 80 00 00 50 8B C0 0E 99 49 80 00 50 0C C0 0E 90 69 80 00 99 49 80 00 90 E9 80 00 99 49 80 00 91 09 80 00 41 82 00 40

to

2C 03 00 00 41 82 00 F8 89 04 00 00 38 00 00 00 89 44 00 01 38 60 00 00 51 00 07 3E 88 E4 00 06 51 40 26 36 89 04 00 0C 50 E3 07 3E 38 E0 00 00 51 07 07 3E 89 44 00 0D 89 64 00 07 39 00 00 00 51 47 26 36 89 44 00 02 89 24 00 12 51 63 26 36 51 40 45 2E 89 44 00 0E 51 28 07 3E 89 24 00 13 51 47 45 2E 89 44 00 03 51 28 26 36 89 24 00 14 51 40 64 26 89 44 00 0F 51 28 45 2E 89 24 00 15 51 47 64 26 89 44 00 04 89 64 00 08 51 28 64 26 51 40 83 1E 89 44 00 10 89 24 00 16 51 63 45 2E 89 64 00 09 51 47 83 1E 89 44 00 05 51 28 83 1E 89 24 00 11 51 63 64 26 89 64 00 0A 51 40 A2 16 89 44 00 0B 51 27 A2 16 88 84 00 17 39 20 00 01 51 63 83 1E 51 43 A2 16 50 88 A2 16 51 20 C0 0E 39 40 00 02 39 20 00 03 38 80 00 04 51 43 C0 0E 51 27 C0 0E 50 88 C0 0E 48 00 00 24 3D 00 01 66 3C 60 02 66 3C E0 03 66 3C 80 04 66 38 08 66 66 38 63 66 66 38 E7 66 66 39 04 66 66 3D 20 CC 01 39 40 00 61 99 49 80 00 2C 05 00 00 38 80 00 53 39 60 00 00 90 09 80 00 38 00 00 54 39 80 00 00 50 8B C0 0E 99 49 80 00 50 0C C0 0E 90 69 80 00 99 49 80 00 90 E9 80 00 99 49 80 00 91 09 80 00 48 00 00 40

This is working for Battalion Wars 2.

edit: I also tried the other option of changing:

2C050000 cmpwi r5,0x0000
to
2C050001 cmpwi r5,0x0001

i.e branch if vf = GX_TRUE, but the game crashes on boot.

Also it may be better better to branch regardless, otherwise games that don't set a vfilter would cause them to do the opposite and set the vfilter on.

hey all, just confirming if this is still the most current way to turn off deflicker in wii games, thanks.
 
Last edited by grandosegood,
hey all, uwuvci recently came out with a fork to disable deflicker and dithering on wii virtual console injects. should i re-inject and remove just deflicker, or both deflicker and dithering? thanks.
Wow, we talk about the stuff I made, and no @ or anything :(. So one thing, UWUCVI did not come out with a fork, I forked it myself. Yes, I have been the person who updated UWUVCI 3 for the last four years, but I'm done making official updates. In addition, most people thank Nico for the updates over the last few years when it's been me, and not him. Instead, my fork changes many things about UWUVCI 3 for things I want, and removes things. Since it's not an official release there is no support or anything, so please be careful with how it's stated.

Now, since I only removed deflicker to the games I cared about plus the ones I could easily find, a bunch of games do not work in my release. But, since this is for me, I have it working for all games that I own. If anyone wants more games added to the list then you'll need to send me the pattern to look for to change it, example:
Galaxy = { 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00 };
 
  • Like
Reactions: grandosegood
Wow, we talk about the stuff I made, and no @ or anything :(. So one thing, UWUCVI did not come out with a fork, I forked it myself. Yes, I have been the person who updated UWUVCI 3 for the last four years, but I'm done making official updates. In addition, most people thank Nico for the updates over the last few years when it's been me, and not him. Instead, my fork changes many things about UWUVCI 3 for things I want, and removes things. Since it's not an official release there is no support or anything, so please be careful with how it's stated.

Now, since I only removed deflicker to the games I cared about plus the ones I could easily find, a bunch of games do not work in my release. But, since this is for me, I have it working for all games that I own. If anyone wants more games added to the list then you'll need to send me the pattern to look for to change it, example:
Galaxy = { 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00 };
Hey there, my sincerest apologies for not giving the shout-out. @ZestyTS has contributed greatly on the wii u scene and has been an amazing source of knowledge on the UWUVCI scene and just Wii u in general. I already know that answering questions was like another job in discord, so i didn't want more people bombard you on top of the amazing help you already provide.

On a side note, I wanted to thank you for your help back in discord, especially earlier in the year when the smash remix team dropped a new update. My aim was to re-inject my wii games in sharpest quality, so it sent me on the mission to learn more. Again, thank you very much.
 
Hey there, my sincerest apologies for not giving the shout-out. @ZestyTS has contributed greatly on the wii u scene and has been an amazing source of knowledge on the UWUVCI scene and just Wii u in general. I already know that answering questions was like another job in discord, so i didn't want more people bombard you on top of the amazing help you already provide.

On a side note, I wanted to thank you for your help back in discord, especially earlier in the year when the smash remix team dropped a new update. My aim was to re-inject my wii games in sharpest quality, so it sent me on the mission to learn more. Again, thank you very much.
Hahahaha, I appreciate the call out and everything, I was really just trying to explain things so I can properly set up expectations.

So, I mentioned in my previous post about getting information so I can remove deflicking from more games, and all of this research and solving will go directly into UWUVCI Prime so it's good to figure that out now. Well, this post here has DK:CR, and Sonic Colors which I don't have part of my code. If there's more stuff out there with these numbers, please lmk, it will straight up take a couple of seconds to add it to the code.
Yes but different games can use different vfilter values, here are some examples

DonkeyKongCountryReturns,NTSC-U,SF8E01,04041010100404
MetroidOtherM,NTSC-U,R3OE01,08080A0C0A0808
MarioKartWii,NTSC-U,RMCE01,07070C0C0C0707
MarioKartWii,NTSC-U,RMCE01,05050F0E0F0505
SonicColours,NTSC-U,SNCE8P,04040F120F0404
SuperMarioGalaxy,NTSC-U,RMGE01,20002000000000
SuperMarioGalaxy2,NTSC-U,SB4E01,20002000000000

eg. Mario Galaxy you would replace 20002000000000 with 00001516150000

But it's easier and more reliable to just patch GXSetCopyFilter (the function which sets the vfilter) that way the game never gets a chance at setting it.

See also https://gbatemp.net/threads/possible-to-disable-the-wiis-de-flicker-filter.477163/post-9514246
Although, if someone could explain the GXSetCopyFilter to me, it could just be a better version that I could add to the code instead of this hacky solution I'm rolling with.
 
Removing GXSetCopyFilter is above, quoted on post 710. Look for the first big string, and replace the four bytes in red from the second. Infinitely more simple than how we did it at the beginning.
 
  • Like
Reactions: grandosegood
Removing GXSetCopyFilter is above, quoted on post 710. Look for the first big string, and replace the four bytes in red from the second. Infinitely more simple than how we did it at the beginning.
Ah, okay I wasn't sure if it was LITERALLY that easy because that seemed stupidly simple like too easy, ya know? Okay, this is something I can easily change, thank you! So two follow-up questions. Would that setting make it so I don't even need to bother with removing dithering as well? Lastly, I see that some GCN games don't have anything removed from Nintendont , is there any more information on that stuff, or is that all I should go off of?
 
I wasn't planning on sharing this publicly yet, but my next ModMii update will support enabling/disabling deflicker for both wii and GC games (wad, iso, ciso and wbfs). Just wanted to share given others are reportedly working on tools.

Anyone who wants early access can msg me about being a beta tester, thx.
 
I wasn't planning on sharing this publicly yet, but my next ModMii update will support enabling/disabling deflicker for both wii and GC games (wad, iso, ciso and wbfs). Just wanted to share given others are reportedly working on tools.

Anyone who wants early access can msg me about being a beta tester, thx.
Will this work for disc games too?
 
I wasn't planning on sharing this publicly yet, but my next ModMii update will support enabling/disabling deflicker for both wii and GC games (wad, iso, ciso and wbfs). Just wanted to share given others are reportedly working on tools.

Anyone who wants early access can msg me about being a beta tester, thx.
hey there, amazing work as usual. any chance of adding 'remove dithering' as well?
 
  • Like
Reactions: XFlak
hey there, amazing work as usual. any chance of adding 'remove dithering' as well?
I was thinking about it so a few days ago I asked Maeson about it in DMs and figured it wasn't worth the effort given his thoughts (@Maeson I hope you don't mind me quoting this DM snippet, I cut out the personal bits)

Dithering is a technique used in games (mostly relegated to pre-HD games) where either the sprites of a game are drawn a particular way, or the game renders on top of the picture a series of dots to pretend to give more depth to the picture, using the blurriness innate to CRTs or well, the Deflicker filter 6th gen systems have.

sometimes this dithering is lines, sometimes are intermitent dots to create some sort of overlay to mix with the graphics of the game and have the display (like the CRTs I mention) mix them to give that fake depth.

For example:

View attachment 453225

On 8 and 16 bits, the effect is drawn into the sprites themselves, for newer console generations like the PS1, it's something put on top of what the game renders. Sometimes, dithering is used to obscure another thing called banding, where the amount of colors is limited, and creates very noticeable separations between tones of colors, like this example:
View attachment 453226



On Wii, a few games do have dithering. I think one of the Prince of Persia games and RE4 are the only ones I remember. it's really not much of an issue.


It can be done and I already tried with RE4 which uses it to hide banding and... Honestly, it's a very nitpicky thing, It's the typical retro-gaming thing that either you love or you hate. Some people make it like it's such important part of the "retro experience TM" while others despise it.

Unlike the deflicker, which most people want it because they don't like to look at blurry screens, and pretty much every game had, the others are a lot more limited in use. If you happen to really dislike it, I guess editing out would be fine, but again; from memory I only remember two games, so if someone is stubborn enough to want to remove it, they should be able to find the info on the deflicker thread where it was talked about and do it themselves.
 
  • Like
Reactions: grandosegood

Site & Scene News

Popular threads in this forum