TWPatch lets you use custom DS(i) mode scaling filters on your 3DS

twl_bricc_banner.png

Backward compatibility is always appreciated, there's no doubt about it. However, sometimes a console's implementation can be lacklustre, either due to technical difficulties or laziness on the manufacturer's part. Depending on who you ask, the 3DS' DS/DSi mode can be said to fit in either: your only options are to either play games upscaled to the 3DS' screen resolution, which includes a blurry filter that cannot be turned off, or in native res mode, which is hardly ideal as it doesn't make use of the entire screens - thus introducing big black bars all around. Due to it, some people preferred playing DS(i) titles on past consoles as it made a number of games look significantly better without any compromises.

But things are finally starting to change with the release of TWPatch made by @Sono. After lots of research and reverse engineering, he made a patcher that is able to change how TWL_FIRM's image upscaling behaves. A total of nine different scaling filters are available (not counting Nintendo's default one), several of which are able to make your games look much sharper than before! In order to give you an idea of what to expect, here is a comparison taken from the thread (made by @youny43 - left: default / right: patched) :

platsmooth.jpg platsharp.jpg

For the curious, here's a list of the included filters:
Filter list said:
  • Nintendo default
  • Sono's crisp (original patch)
  • Sono's crisp (tweaked)
  • Zero interpolation (double pixel)
  • Linear interpolation 1
  • Linear interpolation 2
  • Sharpen test 1
  • Linear sharpen 1
  • Darken crisp
  • Darken Nintendo

The patcher works on both Old and New 3DS models as long as they are running Luma CFW. You need to have enabled loading external FIRMs and modules in Luma's configuration menu, otherwise, the custom filters won't be applied. The process can take several minutes, so be sure to have enough battery charge (and patience) before proceeding. If you're unsure on which one to apply, you can preview how they'll look inside the homebrew app and compare it to Nintendo's default one.

If you want to try this yourself, make sure to read the instructions & remarks in @Sono's post before downloading (linked below).

:arrow:
Source
 

morrissey2k7

Well-Known Member
Newcomer
Joined
Mar 13, 2008
Messages
45
Trophies
0
XP
385
Country
United States
I tried it and it's an interesting proof of concept, but I decided to go back to the official filter. I re-patched it to Default filter, deleted the application and turned off external FIRM in my Luma settings. So, it's gone off my system completely now, right?
 
  • Like
Reactions: Sono

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,352
Country
Hungary
I tried it and it's an interesting proof of concept, but I decided to go back to the official filter. I re-patched it to Default filter, deleted the application and turned off external FIRM in my Luma settings. So, it's gone off my system completely now, right?

Lol, that was completely unnecessary. Just delete /luma/sysmodules/TwlBg.cxi from your SDCard, and nothing really happened.
 
  • Like
Reactions: Raylight and DSoryu

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,352
Country
Hungary
Oh, that's interesting. I hope texture filtering is a possibility in the future.

TEXTURE filtering is not possible, because I don't get any GPU data from the DS GPU, I only get pixels outputted by the DS GPU, so I don't have any data to reconstruct a higher resolution image.
 

MushGuy

Well-Known Member
Member
Joined
Feb 11, 2010
Messages
1,280
Trophies
1
XP
2,601
Country
United States
TEXTURE filtering is not possible, because I don't get any GPU data from the DS GPU, I only get pixels outputted by the DS GPU, so I don't have any data to reconstruct a higher resolution image.
OK, I see now. Thanks for the explanation.
 
  • Like
Reactions: Sono

Quietlyawesome94

Well-Known Member
Member
Joined
Dec 4, 2010
Messages
1,150
Trophies
1
Location
The Internet
XP
726
Country
United States
I'm really only interested in custom scaling to full screen whenever that's available, but fantastic work nonetheless!

Thanks for taking the time to work on this. People like to hop on these forums and shit on other people's work when they themselves probably couldn't write a line of Python. Keep it up!
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,352
Country
Hungary
Can an actual DSi firmware be patched as well? These look amazing.

The DSi firmware has been already patched by DSi hackers, but I'm only patching the 3DS side (ARM11 only, the 3DS-side ARM9 only runs until control is given to the DS hardware).
 
  • Like
Reactions: Jayro

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
13,002
Trophies
4
Location
WA State
Website
ko-fi.com
XP
17,107
Country
United States
The DSi firmware has been already patched by DSi hackers, but I'm only patching the 3DS side (ARM11 only, the 3DS-side ARM9 only runs until control is given to the DS hardware).
Awesome. And good job on this mate.
 
  • Like
Reactions: Sono

hch12907

New Member
Newbie
Joined
Nov 13, 2014
Messages
2
Trophies
0
Age
35
XP
53
Country
Malaysia
My two cents for the "default vs patched" discussion:
You people need to take the games into account when deciding on what filter to use.

For 2D (or pixel-art oriented) games, I prefer Sharpen Test 1 over everything else - especially the default filter, because they make the 2D sprites a blurry mess (and zero interpolation is just... uh...). I just enjoy the pixel art glory, I guess. For 3D games, Linear Sharp seems to be the best of both worlds (blur vs aliasing).
 
Last edited by hch12907,

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,352
Country
Hungary
Will it work for GBA VC games installed through Ultimate GBA VC Injector?

I don't know how GBA VC injector adds games to your system, but unless it patches AgbBg (/luma/sysmodules/AgbBg.cxi) then it should work.

should have called it TWATch
missed opportunity right there :creep:

I see what you did there.

It's actually supposed to be "TWLPatcher", but everyone seems to be settled on the filename for some reason :/
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: You woke sob +2