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

Maeson

Well-Known Member
Member
Joined
Apr 3, 2013
Messages
1,180
Trophies
1
XP
3,388
Country
Spain
Here's another batch:

Code:
Mini Ninjas 
RNJE4F    NTSC 
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    5D5D2E
                            5D6A22
                            5D6A5E
                            5D6A9A
                            5D6AD6
                            5D6B12
                            5D6B4E
    04 08 0C 10 0C 08 04    5D5D6A
   
Muramasa: The Demon Blade 
RSFP99    PAL 
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    41C186
                            4202EA
                            420362
                            4203DA
                            420416
    04 08 0C 10 0C 08 04    41C1C2
                WARNING:    The game, being 2D, might 
                            not suffer any visual changes 
                            as it might ignore VFilters 
                            in the first place. 
                           
Nights: Journey of Dreams
R7EP8P    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    54E562
                            57253A
                            5725EE
                            5726A2
                            5726DE
                           
Pandora's Tower
SX3P01    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    6D4592
                            7044B6
                            709EB2
                            709F2A
                            709FA2
                            709FDE
    04 08 0C 10 0C 08 04    7044F2
                WARNING:    The NTSC version has 
                            a really big, bad bug. 
                            PAL version is recommended. 
                           
Phantom Brave - We Meet Again
R46ENS    NTSC             (NO PAL VERSION)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    276B02
                            276B7A
                            276BB6
                            276BF2
                            286F6E
    04 08 0C 10 0C 08 04    286FAA
                WARNING:    The game, being 2D, might 
                            not suffer any visual changes 
                            as it might ignore VFilters 
                            in the first place. 
                           
Punch-Out!!
R7PP01    PAL                           
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    341422
                            347CA2
                            347CDE
                            347D1A
                            347D56
                            347D92
                            347DCE
                            35662E
    04 08 0C 10 0C 08 04    35666A
                WARNING:    There are several "20 00 20 00 00 00 00"
                            strings that coincide with some VFilters,
                            but might be game data. More testing needed.
                           
Sega Bass Fishing
RBTE8P    NTSC            (PAL IS ONLY 50Hz, AVOID!)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    363D5A
                            363DD2
                            363E4A
                            363EC2
                WARNING:    This game does not support 
                            Progressive Scan on its own,
                            but you can force it on USB 
                            Loader GX by setting Force NTSC 480p
                            and Patch Dol to ON or ALL. 
                           
Shiren The Wanderer
RFSEEB    NTSC            (NO PAL VERSION)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    42E276
                            4339AA
                            4339E6
                            433A22
                            433A5E
                            433A9A
    04 08 0C 10 0C 08 04    42E2B2
   
Sonic & The Black Knight
RENP8P    PAL 
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    708F0E
                            70F642
                            70F67E
                            70F6BA
                            70F6F6
                            70F732
                            70F76E
    04 08 0C 10 0C 08 04    708F4A
   
Sonic Riders: Zero Gravity
RS9P8P    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    323A22
                            3894A2
                            38951A
                            389592
                            3895CE
                           
Sonic Unleashed
RSVP8P    PAL 
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    7126A2
                            7126DE
                            71271A
                            712756
                            738BD6
                            73E4C2
                            73E4FE
                            73E53A
                            73E576
                            73E5B2
                            73E5EE
    04 08 0C 10 0C 08 04    738C12
   
Spectrobes: Origins
RXXP4Q    PAL 
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    631832
                            654A92
                            654ACE
                            654B0A
                            654B46
                            676D0E
                            67AF5A
                            67AFD2
                            67B00E
                            67B04A
    04 08 0C 10 0C 08 04    676D4A
   
Zack & Wiki 
RTZP08    PAL 
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    5345B2
                            5345EE
                            53462A
                            534666
                            5346A2
                            5346DE
                            53471A

With all the games I looked at, I haven't found any new VFilters.
 

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
@MaeseJesus

Remember we also need to know Rev# and Disc#, which can be discovered with
Code:
wit ID8 --source "C:\Games\game.wbfs"

Output is: [ID6] [Disc].[Rev]

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

Would anyone mind testing the GCR command line extraction of SystemData\start.dol.

GCR 1.1 is available here , and the command is something like

Code:
gcr "C:\Starfox\game.iso" "&&SystemData\start.dol" "e" "C:\Starfox"
gcr "C:\Starfox\game.iso" "SystemData\start.dol" "e" "C:\Starfox"
gcr "C:\Starfox\game.iso" "\SystemData\start.dol" "e" "C:\Starfox"

I really need to know if it works or it's just my system.
 
Last edited by NoobletCheese,

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
It seems the author of GCR has gone walkabout, so I guess the command line is not going to be fixed.

I looked at its source code and its main(String[] args) bit looks fine but it seems to not be initialising the node path object properly or something, I can't really tell.

Not to worry -- after patching start.dol, the user can be asked if they want to launch GCR's GUI, and the command line for doing that still accepts the ISO image as an arg. From there it's only 3 clicks for the user to insert the patched start.dol and no rebuilding required.

Plus not many GameCube games need patching, so it's not like hundreds of games are going to be run through this process, unlike Wii.

I'm burning the midnight oil to get the tool finished, but I keep getting bogged down in excruciating minutiae. Sometimes my brain just cannot get into gear either. 10 days to completion was a pipe dream, sorry about that.

The main.dol scanning process is quite CPU intensive. It has to look at every single 7-byte sequence in the ~5MB file, and to speed this up it needs multithreading, which AHK doesn't normally support. Someone made a .dll for it that can do true multithreading. I can also speed it up dramatically by scanning only sections around where GXRModeObj's are found. It seems that all said objects are in the last 25% of the file anyway, so you could even get away with scanning just the last 25% of the file (or the first occurrence of a GXRModeObj in the file minus ~250kB, whichever comes first, with an optional 'quick scan / full scan').
 
Last edited by NoobletCheese,
  • Like
Reactions: Draxikor

XFlak

Wiitired but still kicking
Member
Joined
Sep 12, 2009
Messages
13,812
Trophies
3
Age
38
Location
Cyprus, originally from Toronto
Website
modmii.github.io
XP
9,801
Country
Cyprus
3 extra clicks is still too many ;)

Having your script auto-click GCR's Gui to accomplish the same thing would be preferred IMHO, but as you said there are probably only a few cases where this would be applicable so I understand if you feel it's not worth the effort
 

Maeson

Well-Known Member
Member
Joined
Apr 3, 2013
Messages
1,180
Trophies
1
XP
3,388
Country
Spain
It is true that every hex strings are located at last quarter of main.dol, but each main.dol has a different size, they can go from less than 2mb to over 8mb, and there can be quite a difference in bytes from the end of the file to where the edits need to be done, so you might need to expand those 250kb, but yes, last quarter of the file is a sure bet with all the games I've looked at.

I wrote down the filters for more games, I have around 80 games. I also went and check them with WIT to have their disc/version data too. Most of them were 00.00 which I expected. I'll see how I share them later.

I did not point it out but looking on the previous page of this thread: Yes, some Wiiware games and VC games receive updates, but fortunately the are pointed out on the files names when you look for lists of Wiiware games. Like, I don't know, "Star Fox 64 Rev 3" or "Gradius ReBirth v257". There are not many of them, fortunately.

Edit:

Here's a drive link to a text file with all the games I looked at. But because the text viewer in it makes it look unorganised, I'll also put them here on a spoiler code like before, and I'll keep adding to this particular post if I get my hands on more games.

I also went ahead an listed them alphabetically.

Code:
A Shadow's Tale    (American Title: Lost in Shadow)
SDWP18    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    30CE32
                            3AAE9E
                            3ABEB6
                            3ABF6A
                            3ABFA6
                            3ABFE2
    04 08 0C 10 0C 08 04    3AAEDA
 
Arc Rise Fantasia
RPJE7U    00.00    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3FB6BA
                            40BDC6
                            4115FA
                            411636
                            411672
                            4116AE
                            4116EA
    04 08 0C 10 0C 08 04    40BE02

Bakugan: Battle Brawlers
RUHX52    00.00    NTSC - Toys R Us Version
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3DCA56
                            3E0D6A
                            3E0DE2
                            3E0E1E
                            3E0E96
                            3E0ED2
                            3E0F0E
                            3E0F86
    04 08 0C 10 0C 08 04    3DCA92

Battalion Wars 2
RWBP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4D71AA
                            4D7222
                            4D725E
                            4D729A
                            4D72D6
                            4D7312
                            4D734E
                            4E9772
                      
Boom Street (American Title: Fortune Street)
ST7P01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    488892
                            48890A
                            488946
                            488982
                            4997BE
                            4AB418 > No string before it.
    04 08 0C 10 08 04        4997FA
                      
Centipede Infestation
SCPE70    00.00    NTSC US        No PAL Release.
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4D885E
                            4D963A
                            4D96B2
                            4D96EE
                            4D972A
    04 08 0C 10 0C 08 04    4D889A
 
Donkey Kong Country Returns
SF8P01    00.00    PAL
    VFilter:                Offsets
    04 04 10 10 10 04 04    553D28    > No string before it.
    08 08 0A 0C 0A 08 08    57E782
                            57E7FA
                            57E836
                            57E872
                            58DA8E
    04 08 0C 10 0C 08 04    58DACA

Donkey Kong: Jungle Beat NPC
R49P01    00.00    PAL
    VFilter:                Offsets
    20 00 20 00 00 00 00    3A39EA
                            3A3A26
                            3A3A62
                            3A3A9E
                            3A3ADA
                            3A3B16
                            3A3B52
                            3A3B8E
                            3A3BCA
                            3A3C06
    08 08 0A 0C 0A 08 08    477006
                            477CE2
                            477D5A
                            477D96
                            477DD2
    04 08 0C 10 0C 08 04    477042
 
Dragon Ball Z: Budokai Tenkaichi 2
RDBE70    00.00    NTSC US     PAL Does not have 60Hz modes.
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3A76E2
                            3A775A
                            3A7796
                            3A77D2
                            3A780E

Dragon Ball Z: Budokai Tenkaichi 3
RDSE70    00.00    NTSC US        PAL Does not have 60Hz modes.
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    38C362
                            38C39E
                            38C3DA
                            38C416
                            38C452
 
Dragon Quest Swords
RDQPGD    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    32CDDA
                            32CE16
                            32CE52
                            32CE8E
                      
Endless Ocean 1
RFBP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    470882
                            470936
                            4709EA
                            470A9E
                            470B52
                            470C42
                            470CF6
                      
Endless Ocean 2
R4EP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    5F485E
                            5F95FA
                            5F96AE
                            5F9762
                            5F9816
                            5F98CA
                            5F99BA
                            5F9A6E
    04 08 0C 10 0C 08 04    5F489A
 
Excite Truck
REXP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3044EA
                            304562
                            30459E
                            3045DA
 
Excitebots: Trick Racing
RX3E01    00.00    NTSC        (NO PAL RELEASE)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4A2F4A
                            4A2F86
                            4A2FC2
                            4A2FFE
                            4A303A
                            4A3076
                            4A30B2
                            4B187E
    04 08 0C 10 0C 08 04    4B18BA
 
Final Fantasy Fables: Chocobo Dungeon
R7FPGD    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4A0512
                            4A058A
                            4A0602
                            4A063E

Fishing Resort
SFVEXJ    00.00    NTSC         (NO PAL RELEASE)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    54133A
                            541376
                            5413B2
                            5413EE
                            54142A
                            55634E
    04 08 0C 10 0C 08 04    55638A
                CAUTION:     On the Main.Dol file there is the string
                            "20 00 20 00 00 00 00". These exact same
                            values can be find on some Nintendo-made
                            games, and are VFilters. Here though, it
                            seems to be other data. Do not modify!

Fishing Master
RTRE18    00.00    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    35F382
                            35F3FA
                            35F472
                            35F4AE

Fishing Master: World Tour
RTLE18    00.00    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3AB362
                            3AB39E
                            3BD686
                            3C1722
                            3C179A
                            3C1812
                            3C184E
    04 08 0C 10 0C 08 04    3BD6C2

Geometry War: Galaxies
RGLP7D    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    1FE44A
                            1FE486
                            1FE4C2
                            217D42
                            217D7E
                            217DBA
                            217DF6
                  
Ghost Squad
RGSP8P    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4D2662
                            4D269E
                            4D26DA
                            4D2716
                            4D2752
                            4D278E
                            4D27CA

Go Vacation
SGVPAF    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    14819A
                            16BA9E
                            16C87A
                            16C8B6
                            16C8F2
                            16C92E
    04 08 0C 10 0C 08 04    16BADA
 
Gunblade NY & LA Machineguns
SODP8P    00.00
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    31AF5E
                            3209B2
                            320A2A
                            320A66
                            320AA2
    04 08 0C 10 0C 08 04    31AF9A

Kirby's Adventure Wii
SUKP01    00.00    PAL
    VFilter:                Offsets
    07 07 0C 0C 0C 07 07    7149EA
                            714AFA
                            714B82
                            714C92
                            714DA2
                            714E2A
    08 08 0A 0C 0A 08 08    73D7BE
                            73E532
                            73E56E
                            73E5AA
                            73E5E6
    04 08 0C 10 0C 08 04    714A2E
 
Kirby's 20th Anniversary Collection
S72E01    00.00    NTSC US
    VFilter:                Offsets
    07 07 0C 0C 0C 07 07    4106EA
                            4107FA
                            41083E
                            4108C6
                            4109D6
                            410A1A
    08 08 0A 0C 0A 08 08    42C01E
                            42CD92
                            42CDCE
                            42CE0A
                            42CE46
    04 08 0C 10 0C 08 10    41072E
 
Klonoa: Door to Phantomile
R96PAF    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    43A4B6
                            43E812
                            43E88A
                            43E8C6
                            43E902
    04 08 0C 10 0C 08 04    43AF42
                CAUTION:     On the Main.Dol file there is the string
                            "20 00 20 00 00 00 00". These exact same
                            values can be find on some Nintendo-made
                            games, and are VFilters. Here though, it
                            seems to be other data. Do not modify!
                      
Kororinpa: Ball-rolling Maze Game (American Title: Kororinpa: Marble Mania)
RCPP18    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    2620D6
                            26218A
                            2621C6
                            262202
 
Link's Crossbow Training
RZPP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    2A55A2
                            2A55DE
                            2A461A
                            2D88AA
                            2D8922
                            2D895E
                            2D899A
                      
Little King's Story
RO3EXJ    00.00    NTSC (PAL IS ONLY 50HZ)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4BDE96
                            4C3872
                            4C3962
                            4C39DA
                            4C3A16
                            4C3A52
    04 08 0C 10 0C 08 04    4BDED2
                      
Marbles! Balance Challenge (American Title: Marble Saga: Kororinpa)
RK6P18    00.00    PAL         This game is basically Kororinpa 2.
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    391652
                            41ECBE
                            41FCF6
                            41FDAA
                            41FDE6
                            41FE22
    04 08 0C 10 0C 08 04    41ECFA

Mario Kart Wii
RMCP01    00.00    PAL
    VFilter:                Offsets
    07 07 0C 0C 0C 07 07    2417EA
                            241862
                            24189E
                            241916
                            24198E
                            2419CA
                            254412
                            25448A
                            2544C6
                            25453E
                            2545B6
                            2545F2
    05 05 0F 0E 0F 05 05    241826
                            2418DA
                            241952
                            241A06
 
Mario Sports Mix
RMKP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    49C5AE
                            4A1312
                            4A134E
                            4A138A
                            4A13C6
                            4A1402
                            4A143E
    04 08 0C 10 0C 08 04    49C5EA
 
Metroid Prime Trilogy
R3MP01    00.00    PAL
    VFilter:                Offsets
    08 08 0C 0A 0C 08 08    558AAA
                            558B22
                            558B5E
                            558B9A
                            5897DE
    04 08 0C 10 0C 08 04    56881A
 
Minicopter: Adventure Flight
RGCEXS    00.00    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    1DBF52
                            1DBFCA
                            1DC042
                            1DC07E
                            1E7282
 
Mini Ninjas
RNJE4F    00.00    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    5D5D2E
                            5D6A22
                            5D6A5E
                            5D6A9A
                            5D6AD6
                            5D6B12
                            5D6B4E
    04 08 0C 10 0C 08 04    5D5D6A
 
Minon: Everyday Hero
RDMPHZ    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    2572D2
                            28DAD6
                            28E8EA
                            28E962
                            28E99E
    04 08 0C 10 0C 08 04    28DB12
 
Monster Hunter Tri
RMHP08    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    6173B2
                            6173EE
                            61742A
                            617466
                            6174A2
                            628016
    04 08 0C 10 0C 08 04    628052
 
Muramasa: The Demon Blade
RSFP99    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    41C186
                            4202EA
                            420362
                            4203DA
                            420416
    04 08 0C 10 0C 08 04    41C1C2
                WARNING:    The game, being 2D, might
                            not suffer any visual changes
                            as it might ignore VFilters
                            in the first place.
 
New Super Mario Bros. Wii
SMNP01    00.01    PAL     This disc came with the 25th Anniversary Wii.
    VFilter:                Offsets
    07 07 0C 0C 0C 07 07    2F9122
                            2F919A
                            2F91D6
                            2F924E
                            2F92C6
                            2F9302
    08 08 0A 0C 0A 08 08    33C736
                            33D51A
                            33D592
                            33D5CE
                            33D60A
    04 08 0C 10 0C 08 04    33C772
 
Nights: Journey of Dreams
R7EP8P    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    54E562
                            57253A
                            5725EE
                            5726A2
                            5726DE
      
One Piece: Unlimited Adventure
RIPEAF    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3879AA
                            387A22
                            387A5E
                            387A9A
                      
Opoona
RPOPC8    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    21C732
                            24617E
                            246E92
                            246F0A
                            246F46
                            245F82
    04 08 0C 10 0C 08 04    2461BA
      
Pandora's Tower
SX3P01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    6D4592
                            7044B6
                            709EB2
                            709F2A
                            709FA2
                            709FDE
    04 08 0C 10 0C 08 04    7044F2
                WARNING:    The NTSC version has
                            a really big, bad bug.
                            PAL version is recommended.
                      
Phantom Brave - We Meet Again
R46ENS    00.00    NTSC             (NO PAL VERSION)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    276B02
                            276B7A
                            276BB6
                            276BF2
                            286F6E
    04 08 0C 10 0C 08 04    286FAA
                WARNING:    The game, being 2D, might
                            not suffer any visual changes
                            as it might ignore VFilters
                            in the first place.
                      
Punch-Out!!
R7PP01    00.00    PAL                      
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    341422
                            347CA2
                            347CDE
                            347D1A
                            347D56
                            347D92
                            347DCE
                            35662E
    04 08 0C 10 0C 08 04    35666A
                WARNING:    There are several "20 00 20 00 00 00 00"
                            strings that coincide with some VFilters,
                            but might be game data. More testing needed.
 
Red Steel 2
RD2X41    00.00    Region Free? Bought in Spain.
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4291D6
                            47D50E
                            48C49A
                            48C4D6
                            48C512
                            48C54E
                            48C58A
                            48C5C6
    04 08 0C 10 0C 08 04    47D54A
 
Resident Evil 4: Wii Edition
RBP08   PAL    00.00
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    2D3A9A
                            2D3B12
                            2F2742
                            2F277E
                            2F27BA
                            2F27F6
                            30EC78
               Warning:    Picture clears up, but this game
                                 uses Dithering, so depending on the
                                 lighting it might be more noticeable.
                      
Resident Evil Archives: Remake
RE4P08    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    33FF9A
                            3B8FBE
                            3BD162
                            3BD19E
                            3BD1DA
                            3BD216
                            3D6F70 > No string before it.
    04 08 0C 10 0C 08 04    3B8FFA
                      
Resident Evil Archives: Zero
RBHP08    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3C8036
                            3CC142
                            3CC1BA
                            3CC1F6
                            3CC26E
    04 08 0C 10 0C 08 04    3C8072                  
 
Resident Evil: Umbrella Chronicles
RBUP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    423B22
                            423D3E
                            423F5A
                            4240FE
                            436A70 > No string before it.
    04 08 0C 10 0C 08 04    4241EE

Rune Factory Frontier
RUFP99    00.00    PAL
    08 08 0A 0C 0A 08 08    3423DE
                            347C32
                            347C6E
                            347CAA
                            347CE6
                            347D22
                            347D5E
    04 08 0C 10 0C 08 04    34241A
 
Samurai Warriors 3
S59E01    00.00    NTSC US (PAL IS ONLY 50HZ)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    618F76
                            61D2AA
                            61D39A
                            61D412
                            61D48A
    04 08 0C 10 0C 08 04    618FB2
 
Sega Bass Fishing
RBTE8P    00.00    NTSC        (PAL IS ONLY 50Hz, AVOID!)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    363D5A
                            363DD2
                            363E4A
                            363EC2
                WARNING:    This game does not support
                            Progressive Scan on its own,
                            but you can force it on USB
                            Loader GX by setting Force NTSC 480p
                            and Patch Dol to ON or ALL.
              
Sengoku Basara: Samurai Heroes
SB3P08    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    80F832
                            80F8E6
                            80F922
                            80F95E
                            80F9D6
                            80FA8A
                            8204D6
    04 08 0C 10 0C 08 04    820512
              
Shiren The Wanderer
RFSEEB    00.00    NTSC        (NO PAL VERSION)
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    42E276
                            4339AA
                            4339E6
                            433A22
                            433A5E
                            433A9A
    04 08 0C 10 0C 08 04    42E2B2
 
Sin & Punishment 2: Successor of the Skies
R2VP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    32EB4E
                            3329D2
                            332A86
                            332AC2
                            332B3A
    04 08 0C 10 0C 08 04    32EB8A
 

Sonic & The Black Knight
RENP8P    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    708F0E
                            70F642
                            70F67E
                            70F6BA
                            70F6F6
                            70F732
                            70F76E
    04 08 0C 10 0C 08 04    708F4A
 
Sonic Riders: Zero Gravity
RS9P8P    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    323A22
                            3894A2
                            38951A
                            389592
                            3895CE
                      
Sonic Unleashed
RSVP8P    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    7126A2
                            7126DE
                            71271A
                            712756
                            738BD6
                            73E4C2
                            73E4FE
                            73E53A
                            73E576
                            73E5B2
                            73E5EE
    04 08 0C 10 0C 08 04    738C12
 
Spectrobes: Origins
RXXP4Q    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    631832
                            654A92
                            654ACE
                            654B0A
                            654B46
                            676D0E
                            67AF5A
                            67AFD2
                            67B00E
                            67B04A
    04 08 0C 10 0C 08 04    676D4A
 
Super Mario Galaxy 1
RMGP01    00.00    PAL
    VFilter:                Offsets
    20 00 20 00 00 00 00    53641A
                            536456
                            536492
                            5364CE
                            53650A
                            536546
                            536582
                            5365BE
                            5365FA
                            536636
    08 08 0A 0C 0A 08 08    5E4BB6
                            5E5822
                            5E589A
                            5E58D6
                            5E5912
    04 08 0C 10 0C 08 04    5E4BF2
 
Super Mario Galaxy 2
SB4P01    00.00    PAL
    VFilter:                Offsets
    20 00 20 00 00 00 00    6490F2
                            64912E
                            64916A
                            6491A6
                            6491E2
                            64921E
                            64925A
                            649296
                            6492D2
                            64930E
    08 08 0A 0C 0A 08 08    71C0E6
                            71CDAA
                            71CE22
                            71CE5E
                            71CE9A
    04 08 0C 10 0C 08 04    71C122
 
Super Mario Sluggers
RMBE01    00.00    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    6F4A76
                            6F8D12
                            6F8D8A
                            6F8DC6
                            6F8E02
                            6F8E3E
                            6F8EB6
    04 08 0C 10 0C 08 04    6F4AB2
 
Super Mario Strikers Charged      
R4QE01 00.01    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    5313FA
                            537D42
                            537DBA
                            537DF6
                            537E32
                            537E6E
                            537EE6              

        For some reason I cannot fathom, the
        PAL release has worse frame rate than
        the NTSC US one, and it has nothing to
        do with 50Hz/60Hz by the way, the European
        release just drops frames much more.
  
        Maybe that's why the NTSC US is Rev 1?

Super Monkey Ball: Banana Blitz
RSMP8P    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    297A5A
                            297AD2
                            297B4A
                            297B86
                      
Super Monkey Ball: Step & Roll
SMBP8P    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4574AE
                            4678B2
                            46792A
                            4679A2
                            4679DE
    04 08 0C 10 0C 08 04    4574EA
 
Super Paper Mario
R8PP01    00.01    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    426682
                            4266BE
                            4266FA
                            426736
                            426772
                            4267AE
                            4267EA
                            426826
                            426862
                            42689E
                            4268DA
                            426916
                            426952
                            42698E
                            4F8F3A
                            4F8F76
                            4F8FB2
                            4F8FEE
              I know that the first release, 00.00 had a
              glitch and this version fixed it up, that's the
              difference.
          
Super Smash Bros Brawl
RSBP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    423C3A
                            423C76
                            4713D6
                            47213A
                            4721EE
                            47222A
                            4722DE
                            47231A
                            472356
                            47240A
    04 08 0C 10 0C 08 04    471412
          
Tetris Party Deluxe
STEPTR    00.00    PAL

The Legend of Zelda: Twilight Princess
RZDE01    00.02    NTSC US
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    3DD232
                            4218EA
                            421962
                            42199E
                            4219DA
                            4219E0

Wario Land: The Shake Dimension
RWLP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    476D9A
                            4EB952
                            4EB9CA
                            4EBA06
                            4EBA42
                WARNING:    The game uses 2D visuals.
                            It make no difference.
                      

 
Wario Ware: Smooth Movies
RODP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    52AAFA
                            52AB36
                            52AB72
                            52ABAE
                            53CDFE
                            53CE3A
                            53CE76

Wii Play
RHAP01    00.01    PAL
    VFilter:                Offsets
    07 07 0C 0C 0C 07 07    325A1A
                            325A92
                            325ACE
                            325B46
                            325BBE
                            325BFA
                            36566A
                            36C6E2
                            36571E
    08 08 0A 0C 0A 08 08    34741A
                            347456
                            347492
                            3474CE
      
      
Wii Play: Motion
SC8P01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    237C3E
                            238A1A
                            238A92
                            238ACE
                            238B0A
    04 08 0C 10 0C 08 04    237C7A
 
WiiSports
RSPP01    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    36EADA
                            36EB52
                            36EB8E
                            36EBCA
    07 07 0C 0C 0C 07 07    38C292
                            38C30A
                            38C346

Wii Fit Plus
RFPP01    00.00    PAL
    VFilter:                Offsets
    07 07 0C 0C 0C 07 07    68CCE2
                            68CD5A
                            68CD96
                            68CE0E
                            68CE86
                            68CEC2
                            73C88A
                            73C902
                            73C93E
    08 08 0A 0C 0A 08 08    7168DA
                            716952
                            71698E
                            7169CA
                            726086
    04 08 0C 10 0C 08 04    7260C2
 
Yu-Gi-Oh! 5D's - Master of the Cards
RD8PA4    00.00    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    4D6C9A
                            4D6CD6
                            4D6D12
                            4D6D4E
                            4D6D8A
                            4D6DC6
                            54AFAE
                            54FD12
                            54FD8A
                            54FDC6
                            54FE02
    04 08 0C 10 0C 08 04    54AFEA
 
 
Zack & Wiki
RTZP08    00.01    PAL
    VFilter:                Offsets
    08 08 0A 0C 0A 08 08    5345B2
                            5345EE
                            53462A
                            534666
                            5346A2
                            5346DE
                            53471A

[/spoiler]

I wanted to add, that while Resident Evil 4 has noticeable dithering when removing the filters, it still looks better to me, and specially on 16:9, as what the game does on that setting is to zoom in into the original 4:3 viewable area, which made it look HORRIBLE, with huge pixels and extreme blurriness. With filters removed it looks much more acceptable to me.
 
Last edited by Maeson,
  • Like
Reactions: NoobletCheese

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
Yes, some Wiiware games and VC games receive updates, but fortunately the are pointed out on the files names when you look for lists of Wiiware games. Like, I don't know, "Star Fox 64 Rev 3" or "Gradius ReBirth v257". There are not many of them, fortunately.

It seems WadDataInfo.exe (included with wwpacker) can extract the version from a wad:

Code:
Path: '00010001\57523945'
Type: Channel Title
TitleID: 'WR9E'    Version: 1    ManufacturerID: 08
IOS Flag: IOS37    Region Flag: USA
Data files: 11
Size: 8536331 - 15840913 byte (66 - 121 blocks)

If you could confirm your wads are populating the above value as expected, that would be helpful.

edit: have confirmed Gradius Rebirth v257 and Cave Story v258 are being detected correctly.

Here's a drive link to a text file with all the games I looked at.

Is this correct:
Super Mario Strikers Charged
R4QE01 00.001 NTSC US

I was expecting it to be 1-byte (2 hex digits) i.e 01.


I wanted to add, that while Resident Evil 4 has noticeable dithering when removing the filters, it still looks better to me, and specially on 16:9, as what the game does on that setting is to zoom in into the original 4:3 viewable area, which made it look HORRIBLE, with huge pixels and extreme blurriness. With filters removed it looks much more acceptable to me.

Turning off dithering may not necessarily achieve a better result anyway, as the SDK says dithering can only be enabled when the game's pixel format is 5-bit or 6-bit per subpixel. i.e if you turned off dithering, you may then have very unsmooth gradients (banding). GameCube version should be better.
 
Last edited by NoobletCheese,
  • Like
Reactions: Draxikor

Maeson

Well-Known Member
Member
Joined
Apr 3, 2013
Messages
1,180
Trophies
1
XP
3,388
Country
Spain
Sorry, there's one zero more there, it is 00.01, I will correct it once I get to my computer.

I haven't played the GC version of RE4 in over a decade, maybe I should try if it looks the same out of curiosity, but I can't imagine being different (6th gen games that wanted to look more detailed used quite a bit of dithering, ps2 did it often). In any case the Wii version has a number of things over that release so I don't mind it much.

I checked my WADs with wwpacker and everything seems correct regardless of what the version is.

Code:
Gradius Rebirth - v257

Path: "0001001\5747450"
Type: Channel Title
TitleID: WGDP  Version: 257  ManufacturerID: A4
IOS Flag: IOS55  Region Flag: Europe
Size: 26905765  -  30190447  byte (206 - 231 blocks)

It also easily recognises between the different releases of Star Fox 64.

I'll try to find the games that got updates if it's important. I know that a number of "apps" such as Amazon Instant Video or BBC iPlayer did get many updates throughout the years, but I think they won't work anymore, and who knows if they even used filters.
 
Last edited by Maeson,
  • Like
Reactions: NoobletCheese

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
It seems pastebin will not be sufficient for keeping the master list of vfilters, as it has a file size limit of 500kB. I considered keeping each game in its own file, but pastebin doesn't disclose the maximum number of files per user, and I think there's a limit. There is also a limit of 20 uploads per day.

Google Drive's API seems to be unsuitable as it requires each user to manually verify their device at google.com/device before they can remotely upload to the account using something like curl at the command line.

GitHub Gists have a max file size of 1MB and max file count of 300 according to their docs -- still not enough for our needs.

Regular GitHub repo files have a max size of 100MB and GB's of total storage, so they will be sufficient, however there doesn't appear to be a reliable API for pushing files remotely from any computer. The problem is not the git command line but rather getting authentication for the git command to work, which seems to require tokens now according to a recent change in Github policy. This may be possible with curl, but I'm not confident after reading some anecdotes.

The best I can currently do is have a button that copies to clipboard the selected vfilters, and then the user has to manually log in to the github repo and paste them in. I will try to automate this but I'm not hopeful.

If anyone knows of any other large enough cloud storage that can be accessed with curl, please let me know.
 
Last edited by NoobletCheese,

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
U can upload to github manually if u really wanted, through your browser or non-cmd line tools. And you can download with a script easily without credentials using wget or curl

For uploading I've decided to go with Google sheets as it allows automating things like validating the pasted data, highlighting potential bad data, keeping track of which pastes have been validated, restricting data ranges to admins, and exporting to csv/tsv for upload to github for easy download as raw.txt by game loaders.

Such a shame as Pastebin was looking like the perfect solution. But I think one day they would just decide to change their API and then my tool is broken, just like GitHub is about to break many apps with their upcoming update.
 
Last edited by NoobletCheese,
  • Like
Reactions: Draxikor

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
It's a replacement for the entire function. The executable is patched ahead of time in Swiss.

Ok, so that's basically the holy grail that we've been seeking :)

But how the heck does Swiss find the offsets for the function inside the executable? The offset might change depending on where the compiler happened to import it. Is there some byte signature that Swiss looks for? Or is this running on a custom OS where the whole system library is replaced with our own version of it?

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

Is this relevant:

https://raw.githubusercontent.com/emukidid/swiss-gc/master/cube/swiss/source/patcher.c
Code:
FuncPattern GXSetCopyFilterSigs[5] = {
       { 567, 183, 44, 32, 36, 38, GXSetCopyFilterPatch, GXSetCopyFilterPatch_length, "GXSetCopyFilterD" },
       { 138,  15,  7,  0,  4,  5, GXSetCopyFilterPatch, GXSetCopyFilterPatch_length, "GXSetCopyFilter" },
       { 163,  19, 23,  0,  3, 14, GXSetCopyFilterPatch, GXSetCopyFilterPatch_length, "GXSetCopyFilter" },   // SN Systems ProDG
       { 163,  19, 23,  0,  3, 14, GXSetCopyFilterPatch, GXSetCopyFilterPatch_length, "GXSetCopyFilter" },   // SN Systems ProDG
       { 130,  25,  7,  0,  4,  0, GXSetCopyFilterPatch, GXSetCopyFilterPatch_length, "GXSetCopyFilter" }
   };
 

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
Structure of GXSetCopyFilterSigs[]:

Code:
typedef struct FuncPattern
{
   u32 Length;
   u32 Loads;
   u32 Stores;
   u32 FCalls;
   u32 Branch;
   u32 Moves;
   u8 *Patch;
   u32 PatchLength;
   char *Name;
   u32 offsetFoundAt;
}

It looks like the first 6 elements are the ones we're interested in, but I have no idea how they translate to raw bytes inside main.dol.

I'm guessing Length is the length of the byte pattern.

Loads, Stores, FCalls, Branch and Moves are unfamiliar to me -- do these correspond to assembly instructions?

If true, does that mean the patcher isn't actually looking for a discrete byte pattern, but rather a pattern which contains a certain number of assembly instructions?
 
Last edited by NoobletCheese,
  • Like
Reactions: Draxikor

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
Assuming what I wrote is true, I would need to know the raw bytes that correspond to each assembly instruction, especially the ones that correspond to a function prologue/epilogue so I know where to patch the new replacement GXSetCopyFilter. I suspect this is defined somewhere in Swiss source code, but I haven't found it so far. If it's defined programmatically then I probably won't understand it :)

Being able to identify a function prologue in the raw bytes would also seem to speed up the patching massively, as the main patching loop could just ignore bytes until a prologue is encountered before searching for the signature. I'm guessing this is how game loaders like Swiss/Nintendont/ULGX etc. are patching the DOL in mere seconds, whereas my tool takes about 30 seconds just to scan the last 25% of the file for the vfilter signature. Perhaps I can speed it up by ignoring byte patterns that don't correspond to whatever the assembly code is for storing a u8 vfilter[7].

Honestly though, this would be a huge amount of work for me to learn assembly, and there could be a number of Nintendo-specific caveats I'm not aware of that could break my attempt and I could get stuck. I think I'll leave it to the experts who already have years of experience with this to decide if they want to implement Swiss's GXSetCopyFilter patching into a Wii game loader. If this happens, then we don't need a cloud database. As there is no harm in also having the database, I'll not abandon it just yet.
 
Last edited by NoobletCheese,
  • Like
Reactions: Draxikor

NoobletCheese

Well-Known Member
Member
Joined
Aug 12, 2018
Messages
533
Trophies
0
Age
25
XP
1,084
Country
United States
It just occurred to me, we wouldn't have to store in the database any entries which use the standard Nintendo vfilters (08080A0C0A0808 and 04080C100C0804) as those strings are unique enough for the game loader to simply 'find and replace'.

Although there might be some edge cases where such byte patterns exist which happen to be other game data, the game loader can choose to only patch them if they have an adjoining GXRenderModeObj, i.e preceded by 060606... or 030209...

If there are some rare edge cases where the game sets a standard vfilter without referencing a GXRenderModeObj, then it can be added to the database.

The upside is that the database is probably going to be around 95% smaller, which is great as Google Sheets bogs down with very large sheets, and pastebin might be feasible again.

Apologies to @MaeseJesus for all the hard work you put in which probably won't get added to the database :blush:
 
Last edited by NoobletCheese,
  • Like
Reactions: Draxikor

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    The Real Jdbye @ The Real Jdbye: they don't really taste like cotton candy but i guess they don't need to