Homebrew TWPatcher - DS(i) mode screen filters and patches

  • Thread starter Sono
  • Start date
  • Views 751,967
  • Replies 2,428
  • Likes 101

Are you interested in a complete replacement of TwlBg which includes all patches?

  • Yes, I don't care how broken it will be!

    Votes: 188 79.3%
  • No, I don't want to use even more broken stuff

    Votes: 20 8.4%
  • Yes, but only in GBA mode, because I play DSi exclusives

    Votes: 12 5.1%
  • No, because I only use DS and DSi mode

    Votes: 17 7.2%

  • Total voters
    237
  • Poll closed .

PrincessLillie

(Future) VTuber
Member
Joined
Nov 28, 2013
Messages
2,921
Trophies
3
Age
21
Location
Virtual Earth
Website
lillie2523.carrd.co
XP
4,799
Country
United States
It seems like I must've worded it wrong, because everyone has misunderstood it so far :wacko:

Original TwlBg, no matter what you do, will always write to the WiFi flash on boot. Period. Anything you do, this write always happens, and it's not optional on an unpatched TwlBg. Holding or not holding START/SELECT has no effect either, because touch screen callibration data is also always written to the WiFi flash, no matter what. This wears out the WiFi flash unnecessarily, because it's not smart enough to filter out re-writes with the same data. If you wear out the WiFi flash enough so that the settings don't stay as you have written them, it'll permabrick* DS(i) mode.

This anti-wear patch remedies this by letting the user decide whether something doesn't work as they expect, and reboot into DS mode while holding X to fix the issues caused by not updating the WiFi flash.
Basically all the anti-wear patch does is make the WiFi flash writing optional. If you're not holding X on boot, it will not write to the WiFi flash, which is good, because this preserves its life, considering that more than 99.99% of the times the same data would've been rewritten there over and over again.
When you're in the less than 0.01% category (has recallibrated touchscreen, has changed system time, or using START/SELECT on a game which looks bad upscaled), you can just force a WiFi flash write by holding X at boot, correcting time and touchscreen callibration issues.

* A permabrick happens because the DS firmware or DS games can't read it properly, resulting in a permanent softlock. However, this is only a permabrick on 3DSes where WiFi is soldered onto the motherboard, although replacing the WiFi card is still a not-so-good idea. This also only affects DS(i) mode, because GBA mode completely bypasses DS mode, and homebrew replacements (like open_agb_firm) don't have this issue.
So what do I do about this if I use widescreen with TWLMenu++? Because to my knowledge an existing TwlBg.cxi in /luma/sysmodules will be overwritten by the one you give to TWLMenu++.
 

Rahkeesh

Well-Known Member
Member
Joined
Apr 3, 2018
Messages
2,178
Trophies
1
Age
42
XP
3,261
Country
United States
So just to be clear, does removing your anti-wear patch after it has been applied cause an insta-brick right now, or is it just making you vulnerable again to the default Nintendo wear that will brick you eventually?
 

ElitePowerGamer

Active Member
Newcomer
Joined
Jan 7, 2017
Messages
34
Trophies
0
XP
505
Country
Canada
I couldn't find it by searching the thread, but would it be possible to display GBA games on the bottom screen? It'd be more tolerable on pixel perfect mode compared to the top screen. Apparently you could do this with the original DS?
 

BenjaMV

Member
Newcomer
Joined
Aug 12, 2017
Messages
8
Trophies
0
Age
24
XP
205
Country
Chile
hello i speak spanish and my english is not very good
first of all. Thank you for your work
1) From what I understood, the touch screen can be damaged in previous versions (I have a new 3ds xl) with the latest version of TWpatcher This was resolved or the percentage of what happened was reduced
2) Do I have to press the X button when starting games?
3) What options should be enabled in TWpatcher to avoid these problems?
I used the translation to write this
 

Rahkeesh

Well-Known Member
Member
Joined
Apr 3, 2018
Messages
2,178
Trophies
1
Age
42
XP
3,261
Country
United States
I think I actually like the true GPU scaling on AGB now, especially with widescreen! It seems a bit sharper than the linear interpolation MTX, yet pixels remain even. Text is harder to read than stock but I rather like this setting for action games.

Edit: and wow is a properly scaled widescreen glorious for 3D DS games. This GPU stuff seems way more promising than playing with the matricies, if it can ever be extended a bit farther like perhaps with an 800px mode. Oh and fixing a fatal flaw in Nintendo's own code to boot, truly great work.
 
Last edited by Rahkeesh,

PrincessLillie

(Future) VTuber
Member
Joined
Nov 28, 2013
Messages
2,921
Trophies
3
Age
21
Location
Virtual Earth
Website
lillie2523.carrd.co
XP
4,799
Country
United States
Well, I have some news again!

1) I was partially wrong about the double resolution patch. It's still really broken, but I think it might be possible. And regarding my previous post about this, it uses a VRAM allocator, so if I can patch 400 to 800 then the size issue shouldn't be a problem at all.

2) The GBA upscale patch is sadly fake. It turns out I'm stupid, and forgot to disable MTX for GPU upscaling. This new patcher contains the bugfixed but awfully blurry upscaler. This time it also works with widescreen too!

3) Fixed widescreen GPU scaling! Now you can use MTX widescreen and GPU widescreen too.

4) This is really important! By default, the anti-wear patch will be applied from now on to every TwlBg.cxi TWPatcher generates. You can disable it like you can disable rtcom, but it is not recommended at all. It turns out that DS(i) mode bricks when the flash inside the DS WiFi dies. That flash stores settings like username, time, touch screen callibration, and other stuff you can set in the DS BIOS on a real DS. This has been a problem since before 1.0.0 was released, hasn't been fixed in 11.6, and it's probably still present in the latest firmware. There are no checks in the code to prevent rewriting the flash if the data written is the exact same which was already there. Because of this, each time you launch into DS(i) mode, it'll write to the flash, slowly wearing it out until it can no longer hold any of the settings. This problem is only present in TWL_FIRM, so both AGB_FIRM (GBA mode firmware) and homebrew replacements (like open_agb_firm) are unaffected.

Read before downloading!

There is a new enabled-by-default patch in TWPatcher which reduces the wear on the DS WiFi flash. If you change the screen scaling with START/SELECT, recallibrate your touch screen, or change the system time, you need to hold X next time you boot into DS(i) mode, otherwise your touchscreen will be messed up. If you turn off this feature, DS(i) mode will be permanently bricked until you replace the WiFi chip, which is not possible on newer 3DS models because it's soldered onto the motherboard.

https://puu.sh/G8sEO/87b4c649e3.cia
okay so uhm
I've enabled anti-wear and repatched my TwlBg
but now games and apps like TWLMenu++ aren't seeing my set username or color at all unless I start them while holding X
is this intended behavior?
 

Sookie69

Active Member
Newcomer
Joined
Jun 16, 2019
Messages
29
Trophies
0
XP
714
Country
Russia
I don't use TWLMenu++ but only flashcart, so I have a question about anti-wear patch.

Do I need to manually choose anti-wear patch, or it is enough to choose any filter from the list and apply/patch?
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,824
Trophies
2
Location
home
XP
9,338
Country
Hungary
I couldn't find it by searching the thread, but would it be possible to display GBA games on the bottom screen? It'd be more tolerable on pixel perfect mode compared to the top screen. Apparently you could do this with the original DS?

I once tried, but all I got were just crashes. Pretty sure this requires a lot of work, and might not even be possible because everything is so hard-coded.

I'd say give a try to open_agb_firm, I use it for playing Blast Arena Advance. Might include a bottom screen mode in the future.

hello i speak spanish and my english is not very good
first of all. Thank you for your work
1) From what I understood, the touch screen can be damaged in previous versions (I have a new 3ds xl) with the latest version of TWpatcher This was resolved or the percentage of what happened was reduced
2) Do I have to press the X button when starting games?
3) What options should be enabled in TWpatcher to avoid these problems?
I used the translation to write this

1) It can't be damaged. What I said is that if you don't hold X after recallibrating touch, it'll just keep using the old callibration until you reboot with X pressed.
2) No, don't do that >_> Unless you have changed touch callibration or has changed system time, you do NOT hold X while booting. The reason you have to hold X now is to correct issues when necessary, but holding X will do one wear on the WiFi flash, which is not good.

okay so uhm
I've enabled anti-wear and repatched my TwlBg
but now games and apps like TWLMenu++ aren't seeing my set username or color at all unless I start them while holding X
is this intended behavior?

Yeah, sadly it's a known issue for some people using latest firmware. I can't acquire a 11.13 TWL_FIRM, so I sadly can't look into why it doesn't work :(
 
Last edited by Sono,
  • Like
Reactions: RocketRobz

Searinox

"Dances" with Dragons
Member
Joined
Dec 16, 2007
Messages
2,073
Trophies
1
Age
36
Location
Bucharest
XP
2,203
Country
Romania
There exists a method to run the original DS firmware as an NDS file straight from the flashcart, and a patch someone on GBAtemp made to allow it to function on the 3DS. If you're using the anti-wear patch, consider giving this method a try for setting the user profile, calibration etc.. Since you are setting it from within the DS mode itself, it should be written to the WiFi chip where it will stick.
 
  • Like
Reactions: Sono

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    AncientBoi @ AncientBoi: :ohnoes: @NoiseCommander3DS Would you please turn down that noise. I haven't had my COFFEE yet... +1