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

  • Thread starter Thread starter Razor83
  • Start date Start date
  • Views Views 199,882
  • Replies Replies 754
  • Likes Likes 2

Have you tried the following:

- unpack the wad using Wadmii or ShowMiiWads to folder x
- uncompress 00000001.app using wwcxtool.exe
- open the uncompressed 00000001.app in hex editor and find and replace the string in post 119
- compress 00000001.app using wwcxtool.exe
- copy 00000001.app to folder x and repack the folder to wad using Wadmii or ShowMiiWads

If the the string isn't found in 00000001.app, try searching the other .app files in the wad.
 
  • Like
Reactions: iGom
Bomberman '94 (Japan) (PCE) (Virtual Console)

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

It seems that only the jpn version has this problem.
 
Bomberman '94 (Japan) (PCE) (Virtual Console)

It seems that only the jpn version has this problem.

My observations:

1. The game's raster does appear quite soft and filtered, very similar to the look of vfilter.
2. None of the .app files in Bomberman '94 (Japan) (PCE) (Virtual Console).wad are compressed according to wwcxtool.exe
3. 00000001.app is the only file which contains GXSetCopyFilter and GXRenderModeObj's
4. vfilters for progressive modes are already disabled
5. antialiasing is disabled in all modes
6. Wii sysmenus during the game appear crystal clear and free of vfiltering (Wii set to 480p)
7. Patching GXSetCopyFilter and GXRenderModeObj's has no effect

I would infer from (4), (5) and (6) that vfilter is not causing the blur, but some other rendering feature of the game.

Interesting that the non-jpn version doesn't have the issue, but I don't have a copy to test.
 
Last edited by NoobletCheese,
Thank you I will then use a non-jpn version.
I didn't know that there was a difference between the us and jpn versions.
 
Just tried the USA version now. Indeed it is free of the filter by default and doesn't require patching (when Wii set to 480p).

However it does something very strange that I haven't observed in any game so far: it enables the vfilter as soon as you open the Wii sysmenu, and then disables it when closing the Wii sysmenu (observe the game's raster in the background of the Wii sysmenu change).

This makes me suspicious that maybe the jpn version might be doing the opposite and disabling the vfilter when opening the Wii sysmenu, and re-enabling it when closing the Wii sysmenu.

I'll have to look into this further...
 
  • Like
Reactions: oldmario1974
I can confirm the GXSetCopyFilter patch is effective at entirely disabling vfilter for Bomberman 94 USA version.

Also JPN version on Dolphin shows no visual difference when toggling 'disable copy filter', which pretty much confirms the JPN version isn't using vfilter either. It is using some kind of filter, but it's not vfilter.

The USA version also has some random PAL vfilters in 0000007.app (not that we need to modify them).
 
Last edited by NoobletCheese,
  • Like
Reactions: Webardo
It seems that the European version has no filter

Thanks, this was another good case study.

From this one and the previous few, we've learned that:
  • All apps/dols in the iso/wbfs/wad need to be extracted, decompressed and patched.
  • Some games don't use vfilter, but still look soft due to using their own bespoke filters like depth of field (Xenoblade) bloom (Disaster: Day of Crisis) and some mystery filter (Bomberman94 JPN).
I anticipate that eventually we'll find a game which uses vfilter and won't respond to patching.
 
Last edited by NoobletCheese,
  • Like
Reactions: oldmario1974
Now with a progessive signal (480p) the flicker filter should always be disabled, since there are no interlaced lines to flicker. However Nintendo did something odd - they instead created a new video mode that deliberately 'softens' the picture when in progressive scan mode.

Code:
  Project:  Dolphin GX library
  File:     GXFrameBuffer.h
  2002/02/12 14:29 Hirose
  Added GXNtsc480ProgSoft mode.

Damn you Hirose! :D
 
  • Like
Reactions: Razor83
Great news, @blackb0x has implemented the GXSetCopyFilter patch into his fork of USB Loader GX.

I have tested it with SSB:Brawl, Battalion Wars 2, Super Swing Golf, and Cubello (WiiWare WAD). If patching is successful for all four, then it should work for pretty much any game since these four games cover all the variations found so far.

I am happy to report it is working for all except Cubello, however decompressing its 00000001.app and repacking the WAD makes it compatible with ULGX patching. Currently in pm's with blackb0x to see if ULGX/libogc includes any useful decompression functions to automate this. If not, then we can probably write a script to batch decompress all our WADs with WadMii and wwcxtool, although large collections may no longer fit on sysnand. [edit: this is now solved, however games with multiple dols will still lose patches when the game itself loads a new dol].

I don't believe blackb0x has released it publicly yet as we're still testing it, so you'll have to wait a bit longer.
 
Last edited by NoobletCheese,
Absolutely stunning news!

It's great that all this research and blackb0x' work have paved the way to easily disable the filters with just a toggle setting!

There's no need to rush to release, of course, testing all first is the way to go. The news by themselves are more than enough to celebrate, though!
 
I was just doing some more testing of Super Swing Golf. It seems patching can cause the game to bug out sometimes, causing polygon vertices to go flying all over the screen. This also happens after patching the dol manually in hex editor, so it doesn't appear related to blackb0x's ULGX implementation. Seems to happen on the first cutscene in story mode (previously I only tested other single player mode which is fine).

Tried rebuilding the whole iso/wbfs with the patched dol, but then it won't launch at all (just exits out of ULGX).

Tried various ULGX settings to do with IOS reload and patch all DOLs since the game uses multiple dols.

Tried an alternative patching method where line 1 of GXSetCopyFilter is replaced with jump straight to end of function.

edit: also tried patching GXRenderModeObjs instead of GXSetCopyFilter.

It seems the only thing that works is launching the game, then exiting out to ULGX menu and relaunching the game. I suspect something about the way the game uses multiple dols is confusing ULGX somewhere.

I think when you launch story mode the first time it loads a different dol or IOS maybe. Default IOS for the game according to Wii Backup Manager is IOS9.
 
Last edited by NoobletCheese,
So it only happens once when starting the story mode? Sounds very peculiar, but not an enormous issue at least.

For the game to change dols there should be a noticeable loading screen, just like on Metroid Prime Tilogy, on Metal Slug Anthology, ot even when trying to watch the Motion Plus instructions when included in games.

I'll try to get the game and check it when I get some time for it.

Was this the game that didn't have the usual filters? You disabled the GXSetFilter then?
 
Last edited by Maeson,
Was this the game that didn't have the usual filters? You disabled the GXSetFilter then?


It has GXSetCopyFilter inside files/PangyaRev.dol instead of sys/main.dol.

It seems ULGX automatically launches files/PangyaRev.dol anyway for some reason, so it turns out to be a bad test subject for testing games with multiple dols.

Metroid Prime Trilogy is a better test subject, because when you launch the game, ULGX launches rs5fe_p.dol. This appears to be the main menu program of the game where you select which game to play.

Then if you select Metroid Prime 1, the menu program launches rs5mp1_p.dol. It's at this point you lose ULGX dol patches, for the same reason you lose them when pressing HOME > Reset.

It seems ULGX can only patch a single dol and then launch it. If that dol happens to launch other dols, ULGX doesn't have some background thread waiting to intercept and patch them.

So ULGX deflicker paching for Metroid Prime Trilogy is not going to work -- we'd still have to manually patch all four dols in the game and rebuild the iso/wbfs with them:

rs5fe_p.dol (game's menu program)
rs5mp1_p.dol (metroid prime 1)
rs5mp2_p.dol (metroid prime 2)
rs5mp3_p.dol (metroid prime 3)

What you can do is tell ULGX to launch, say, rs5mp1_p.dol to launch Metroid Prime 1 directly, and patching will work, but then there doesn't seem to be a way to make it load your save game since that is handled from within rs5fe_p.dol.
 
Last edited by NoobletCheese,
Well... I kinda expected it when you said that resetting a game that does a full reset lost the edited dol, and my tests with Metroid Prime Trilogy pointed me as much, as I wrote some days ago. I remember there were some tools to make individual games out of the Prime Trilogy, but I never tried; even if I think patching those dols and inserting back into the game is just a simpler and better solution.

Nonetheless, these are but a handful of games with this particular "issue", compared with the hundreds that can take advantage of it without any tinkering, don't fret.

That said, if you need to modify PangyaRev.dol, can you load it from USBLoaderGX as if it was main.dol? A compromise could be made to just have that one be loaded as we've been doing, and boot the game without the edited dol if one wants to start a new Story playthrough and activate it on a second boot.
 
  • Like
Reactions: NoobletCheese
That said, if you need to modify PangyaRev.dol, can you load it from USBLoaderGX as if it was main.dol?

ULGX automatically does that without any user intervention, for some reason.

I would have expected it to load sys/main.dol.

I presume sys/main.dol is some little entry point program which does a few initialisation things and then launches PangyaRev.dol.

In game's loader settings you can choose alternate DOL 'select on game launch' and it will display a list asking which one to load.
 
Last edited by NoobletCheese,
I am happy to report it is working for all except Cubello, however decompressing its 00000001.app and repacking the WAD makes it compatible with ULGX patching. Currently in pm's with blackb0x to see if ULGX/libogc includes any useful decompression functions to automate this. If not, then we can probably write a script to batch decompress all our WADs with WadMii and wwcxtool, although large collections may no longer fit on sysnand.

blackb0x appears to have solved this by patching the WAD in memory -- Cubello is now successfully patched without requiring decompression.
 
  • Like
Reactions: Maeson
Just to note that Metroid Prime Trilogy at 480p appears to be using the half strength vfilter (04 04 10 10 10 04 04 -- same as Donkey Kong Returns) which can be difficult to identify without a reference image, especially in the opening area of the game which is quite dark.

This can be confirmed by replacing it with 00 00 06 06 06 00 00 (a vfilter which just reduces brightness) and noting the darker picture.

Also if you force ULGX to load, say, Metroid Prime 1 by loading rs5mp1_p.dol, it seems the video mode defaults back to 480i. ULGX's video patches are capable of forcing 480p. The only problem then is seemingly no way to load a save file.
 
Last edited by NoobletCheese,
  • Like
Reactions: iGom

Site & Scene News

Popular threads in this forum