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

  • Thread starter Thread starter Sono
  • Start date Start date
  • Views Views 984,399
  • Replies Replies 2,626
  • Likes Likes 107

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 .
I included the "1.25x scale patch"

Can someone confirm it works as expected?

I really can't read your Python code, but I'll try to word the patching section differently, because it seems like my words are not understandable (probably due to the wording).


When you CTRL-F for the pattern, HxD selects the entire find. You have to click at the END of the selection, and then press CTRL-B to paste overwrite (CTRL-V will append data, which changes the file size, which is very wrong).

So basically, you have to overwrite the patch data AFTER the search pattern I provided.
 
Last edited by Sono, , Reason: fixed typo
The thing is, this is pretty cool and all but the 1.5x scaling is unusable and the unfiltered 1.25x looks really gross.
 
I am working on an automatic patcher, please be patient, I'm very busy.

No problem, just wasn't clear if you were interested in adjusting GBA eventually, since this started as a DS project. I look forward to the patcher!
 
I included the "1.25x scale patch"

Can someone confirm it works as expected?

By the way I recommand to use decrypt9 and not godmode9 to dump the twl_firm

i got cp: cannot stat 'firm/firm_3_08006000.bin': No such file or directory what am i doing wrong?
 
You don't need that. You only need section0, because that contains TwlBg.
ok, im just trying the script now im trying to do it Manual, if i want the upscaling i do Manual 1.25x scale patch step right?
 
ok, im just trying the script now im trying to do it Manual, if i want the upscaling i do Manual 1.25x scale patch step right?

I guess you don't want the image to stretch outside of the screen with weird touch, so yeah, do the 1.25x patch for a sharper image.
 
Since the 3DS is 400x240 and the DS is 256x192, is it possible to patch TWL_FIRM to increase the internal resolution of DS games?

It's not possible to modify the DS GPU, so sadly it's not possible to force a higher resolution. Besides, it would break some games which heavily rely on hardware quirks.

Also, the bottom screen is 240x320 (yes, because they are actually rotated).
 
Here's a dumb question, could a 1x "filter" be applied to basically force the native resolution mode to be applied without holding down the button? I personally wouldn't make use of this, but I know several other people have asked about this in the past in bootstrap's discord.
 
I wanted to release the patcher already, but I broke the repacker code, and I'm too tired to figure it out, so y'all have to wait until I wake up. Sorry for the inconvenience :(

Here's a dumb question, could a 1x "filter" be applied to basically force the native resolution mode to be applied without holding down the button? I personally wouldn't make use of this, but I know several other people have asked about this in the past in bootstrap's discord.

And several people have also asked it here. Yes, the START+SELECT combo can be inverted, and it can be done by patching only a few bytes of code, so it'll be definitely present in the patcher. So far there are only a few 1.25x presets, but I always forget to include this one :wacko:
 
I appreciate the effort, OP, but your guide is kind of a mess...

So I tried making a script to automize the extracting and rebuilding process as much as possible.

Script: https://mega.nz/#!1mYgHYRL!7YZZy_MabrmLq2hZw4IP2GKFshuk8jfMe1hUPfh3lLM
Filename: Run.bat
MD5: a064ebbb78cf22fc327b5dbb660a6e89

If you're (understandably) wary of running random scripts off of a tech forum, you're more than free to open the script in a text editor and judge its legitimacy for yourself. I've tried making using it as foolproof as possible.


Prerequisites (you will need the following):

  • Access to GodMode9
  • A PC and a way of moving files between it and the SD card (eg. directly or via FTP)
  • A hex-editor for PC (HxD is a good one), and basic knowledge on how to use the program
  • FirmTool (must be installed via Python)
  • 3DSTool (must either be in script directory or system PATH)
  1. Boot into GodMode9 on your system.
  2. Once loaded, go through [SYSNAND CTRNAND > title > 00040138 > *0000102 > content > ********.app] and mount the .app file.
    • The "*" is a wildcard, it can fit any alphanumerical sign.
    • Select the .app file with the highest number.
  3. Once you're inside the mounted .app, enter the [exefs] folder, select the .firm file there, and copy it to [0:/gm9/out].
  4. Turn off your system, remove the SD card from it and connect it to your PC (or use FTP to wirelessly transfer files, it's up to you).
  5. Travel to [SD:\gm9\out\] on your PC, and copy the .firm file somewhere onto your PC (preferably in own folder).
  6. Move the 'Run.bat' script (download at the top of my post) into the same directory as the .firm.
  7. Rename the .firm file to "TWL.firm" and run the script.
    • If you encounter this message while trying to run the script, please make sure you have both FirmTool and 3DSTool installed and findable by the script.
    • rqfb2Pd.png
  8. Please read the script output, follow it carefully, and press the Y key to continue after doing so:
    • W2XzEdu.png
  9. Wait until you get this wall of text:
    • XJI9VFt.png
  10. Open the code.bin that appeared in the script directory in your hex-editor, apply and save the patches of your choice (as stated above), and press the number key stated to continue with the script.
  11. Wait until you receive this message:
    • l2nEY8D.png
  12. Check your script's directory. There should now be a "TwlBg.cxi" inside it. Copy TwiBg.cxi onto your SD (again, either directly or via FTP) under [SD:\luma\sysmodules\].
  13. Reinsert the SD card into the system (or reboot it if you used FTP) and power it on while holding SELECT to enter Luma's configuration menu.
  14. Ensure that these two options are ticked:
    • "Enable game patching"
    • "Enable loading external FIRMs and modules"
  15. Press START to save your settings.
And that should be it.
 

Site & Scene News

Popular threads in this forum