1. Lenks

    OP Lenks Advanced Member
    Newcomer

    Joined:
    Mar 8, 2020
    Messages:
    64
    Country:
    Bulgaria
    Hi, i'm messing up with a N3DSXL that i swapped TN for IPS and 3D is working but it can't calibrate correctly and is going wrong. As i read i need a HWCAL0.DAt and HWCAL1.DAt files from IPS system to make it work. Can some one with IPS share his files? It's upper IPS and bottom TN.


    Thanks! :)


    Edit: I have a essential.exefs with the correct screens, but how to extract 2 files and replace them in this console?

    Edit 2: i get the files from essential.exefs but the console i get it from was having a little ghosting and mine also got it. Can someone without ghosting with upper IPS and lower TN share this file to see if it work: gm9\out\essential.exefs
     
    Last edited by Lenks, Jun 1, 2020
  2. TurdPooCharger

    Member

    Joined:
    Jan 1, 2018
    Messages:
    6,634
    Country:
    United States
    * HWCAL0.dat and HWCAL1.dat

    Sorry about the slight misspellings of those files.
    Found out way too late my mistake.

    ***

    I also later found out that swapping in those two (2) files and doing the battery trick might not be enough to have the new calibration settings kick in.

    The 3DS firmware does not directly read off the settings from HWCAL0/1.dat, but from a copy of those added to this nand file found at:


    (A) If you haven't made a user profile yet (ie, no NNID, Friend List, Miis, games, updates, dlcs, saves, extdata) on that n3DSXL, the replacement settings can be applied by:
    • System SettingsOther SettingsFormat System Memory
      • WARNING: A system reformat will permanently erase the Nintendo 3DS folder, DSiWare games & saves, and user profile.

    (B) If you already have an existing user profile, you can manually do a selective or partial system reformat.
    1. GodMode9[1:] SYSNAND CTRNAND → hold (R)-shoulder and press (A) on data folder → Copy to 0:/gm9/out. This backup is for data safety.
    2. Go into the 1:/data/<ID0>/sysdata/00010017 directory. Press (X) on 00000000 (configsave.bin) to delete.
    3. Press (START) to exit GodMode9. Recreate your user profile.

    There's a way to keep an existing configsave.bin and importing just the hwcal0/1 portion. It can't be done with hex editing alone due to hurdles with DISA/DIFF & CMAC encryptions. I can write a special purpose gm9 script with instructions that takes care of the pesky or ugly parts.
     
    Last edited by TurdPooCharger, May 31, 2020
    E1ite007 and peteruk like this.
  3. Lenks

    OP Lenks Advanced Member
    Newcomer

    Joined:
    Mar 8, 2020
    Messages:
    64
    Country:
    Bulgaria
    Hi, thanks! I was just writing that i found how to kick the calibration after you replace the files and do the battery trick (which i don't know if it necessary but it did it anyway) ->

    You just go into Settings -> Other Settings -> Super Stable 3D -> Super Stable 3D Calibration -> Revert to Default Settings
    This seems to read the info from these files as the result is 100% visible.

    I replace the files with one from IPS and it's much better but i think the ones i got are not perfectly calibrated as i get a little ghosting that the "donor console" also is having. Can someone without ghosting with upper IPS and lower TN share this file to see if it work: gm9\out\essential.exefs:)
     
    Last edited by Lenks, May 31, 2020
    TurdPooCharger likes this.
  4. TurdPooCharger

    Member

    Joined:
    Jan 1, 2018
    Messages:
    6,634
    Country:
    United States
    Can you check something for us? How do the screens look after a (simulated) Format System Memory?
    1. Copy and paste the hwcal0/1 files from the donor essential.exefs to the ctrnand directory.
      • [G:] EXEFS GAME IMAGE[1:] SYSNAND CTRNAND/ro/sys
      • hwcal0HWCAL0.dat
      • hwcal1HWCAL1.dat
    2. In the [1:] SYSNAND CTRNAND , hold (R)-shoulder and press (X) on data folder → rename this to data2.
    3. Press (START) to exit. Create a new user profiles setup.
    4. Observe for any improvements to image quality on this blank setup.
    5. Go back to GodMode91:/ drive. Press (X) on the (dummy) data folder to delete. Rename data2data.
     
    E1ite007 likes this.
  5. Lenks

    OP Lenks Advanced Member
    Newcomer

    Joined:
    Mar 8, 2020
    Messages:
    64
    Country:
    Bulgaria
    Shout out to @Alcahest from GM9 Discord channel for giving me files from his perfectly working IPS\TN Japanese N3DSXL. After applying them everything is almost perfect, calibration files sure does have effect. I also tested and found that battery trick does nothing... Basically just:

    1. Replace your current files(after backup them) with correct ones in [1:] SYSNAND CTRNAND/ro/sys
    2. Revert to default in Settings -> Other Settings -> Super Stable 3D -> Super Stable 3D Calibration -> Revert to Default Settings - this will force the console to read the new files
    3. Play some games for 30min in extreme 3d (slider way up) as this also improve 3D quality after recalibration (yes it's tested and it's effective)

    You can add extra step just to see that the system indeed read these files and move you current files on your SD as a backup. Then boot your console without files and go to Settings and Revert to Default Settings the Super Stable 3D.

    PS. If someone else is willing to give me his IPS files for me to test the results with them will be very interesting to see if there are different calibration options. :)
     
    Last edited by Lenks, Jun 1, 2020
    peteruk likes this.
  6. TurdPooCharger

    Member

    Joined:
    Jan 1, 2018
    Messages:
    6,634
    Country:
    United States
    I just tried your idea on my n3DSXL using my n3DS HWCAL0.dat and HWCAL1.dat for A/B cross comparisons. It's not reverting all of the HWCAL0/1 portion on the configsave.bin back to the n3DSXL's original settings.

    Here's what I did.
    1. Dump the n3DS HWCAL0.dat and HWCAL1.dat and place these on the n3DSXL's microSD card.
    2. On my n3DSXL with its original HWCAL0.dat and HWCAL1.dat in place, renamed the datadata2.
    3. Exit GodMode9. Start up the new user profile. Boot back to GodMode9.
    4. 1:/data/<ID0>/sysdata/00010017/0000000Mount as DISA imagepartitionA.binCopy to 0:/gm9/out.
      • The 'A' refers to 'active' partition. I'll refer to this dumped file as: configsave_(n3DSXL).bin
    5. Delete the data folder. Swap in the n3DS HWCAL0.dat and HWCAL1.dat to the 1:/ro/sys directory.
    6. Repeat steps 3–4. This dumped file will be known as: configsave_(n3DS).bin
    7. Exit GodMode9. Complete filling out the new user profile. Boot back to GodMode9.
    8. Swap back the n3DSXL's HWCAL0.dat and HWCAL1.dat to the 1:/ro/sys directory.
    9. Exit GodMode9. HOME Menu → System Settings → Other Settings → Super-Stable 3D → Super-Stable-3D Calibration → Revert to Default Settings → etc.
    10. Boot back to GodMode9. Dump that file again: configsave_(reverted).bin
    The portion of the configsave.bin that contains the HWCAL0/1 settings is located at block offsets 0xA9F0–AFFF (n3DS and n3DSXL specific). For [ o3DS | o3DSXL | o2DS ], this block is slightly different at 0xAB30-AFFF. No clue what's the exact block for n2DSXL.

    However, this block isn't a 1-to-1 copy of the hwcal0/1. These are the value similarities between HWCAL0/1 vs configsave.bin.
    Code:
    hwcal[0/1]   PartitionA.bin
    2E0-413       AB38-AC6B
    420-633       AC6C-AE7F
    640-65F       AEA8-AEE7
    670-68F       AE88-AEA7
    6A0-6D7       AEE8-AF1F
    710-72F       AEA8-AEC7
    740-747       AE80-AE87
    760-767       AB30-AB37
    778-87A       AA10-AB12
    

    Similarities specifically between HWCAL1 and PartitionA.
    Code:
    HWCAL1.dat    PartitionA.bin
    890-8A7        A9F0-AA07
    

    Hex comparisons between configsave_(n3DSXL), configsave_(n3DS), and configsave_(reverted)

    differences found at offsets

    • n3DSXL vs n3DS
      • A9F0–AA06
      • AB14–AB15
      • AB3C–AB3D
      • AB40
      • AB8A–AB8F
      • ABA8–ABAD
      • AE6C–AE86
      • AEE8–AEEE
      • AEF0–AF0A
      • AF20–AF32
      • AF40–AF4F
      • AF58–AF5D
      • AFD2–AFFA
    • n3DS vs reverted
      • A9F0–AA07
    Similarities found at offsets
    • n3DSXL vs reverted
      • A9F0-AA0A ← (see the above n3DS vs reverted)


    While the Revert to Default Settings does help (n3DS/n3DSXL vs reverted), I think the rest of the fine tune settings are still left out (n3DSXL vs n3DS).
     
    Last edited by TurdPooCharger, Jun 1, 2020
    E1ite007 and peteruk like this.
  7. Lenks

    OP Lenks Advanced Member
    Newcomer

    Joined:
    Mar 8, 2020
    Messages:
    64
    Country:
    Bulgaria
    Interesting. In other words to ask Alcahest for his partitionA.bin to swap with mine and see if it will be better? Can this brick my console?
     
    Last edited by Lenks, Jun 1, 2020
  8. TurdPooCharger

    Member

    Joined:
    Jan 1, 2018
    Messages:
    6,634
    Country:
    United States
    It won't brick your and his n3DSXL systems, but there's a chance it can cause them to be banned if they're using online services at the same time. Also, you should not ask for Alcahest's configsave.bin's partitionA.bin because this file contains personal data like credit card info, WiFi passwords, NNID, 3DS username, LocalFriendCodeSeed (related to Friend Code stuff & eShop access), e-mail address.

    There's a way to import just the donor's hwcal0/1 block to the configsave.bin while keeping everything else in place, but it's a little tedious to pull off. Editing the configsave.bin wrong without taking into account DIFF/DISA & CMAC corrections will cause the 3DS firmware to automatically erase that file.
     
    Last edited by TurdPooCharger, Jun 1, 2020
    E1ite007 and peteruk like this.
  9. Lenks

    OP Lenks Advanced Member
    Newcomer

    Joined:
    Mar 8, 2020
    Messages:
    64
    Country:
    Bulgaria
    So i think it won't happen. :)
    Firstly will be too much i think to ask from a stranger and second the console now is working perfectly fine and i don't see what difference this will make if any. I did play a lot of MK7 stages and they look normal with extreme 3d.
     
  10. TurdPooCharger

    Member

    Joined:
    Jan 1, 2018
    Messages:
    6,634
    Country:
    United States

    How to inject the donor HWCAL0/1 block settings to the original configsave.bin.


    After replacing the HWCAL0.dat and HWCAL1.dat in the 1:/ro/sys directory with copies from the donor n3DSXL,

    0. GodMode9 (v1.9.1 or newer) → [1:] SYSNAND CTRNAND/data/<ID0>/sysdata/00010017/00000000 Copy to 0:/gm9/out.
    • This backup is a safety step in case of mistakes. Rename this 0:/gm9/out/00000000configsave_(original).bin.
    1. 1:/data/<ID0>/sysdata/00010017/00000000 → Mount as DISA image.
    2. [D:] DISA/DIFF IMAGE/partitionA.binCopy to 0:/gm9/out.
    3. [0:] SD CARD ()/gm9/out → hold (R)-shoulder and press (X) on partitionA.bin → rename this to partitionA_(original).bin.
    4. [1:] SYSNAND CTRNAND → hold (R)-shoulder and press (X) on data folder → rename this to data2.
    5. Press (START) to exit. Once you see the 'Select a language.' screen in new user setup, turn off the 3DS system.
      • This will create a fresh configsave.bin with the donor's IPS HWCAL0/1 settings.
    6. Repeat steps 1–3, but this time rename the partitionA.binpartitionA_(donor).bin.
    7. Turn off the 3DS, remove its SD card, and mount the card to a computer.
    8. Download and install the HxD hex editor program. Open the the two (2) files side-by-side.
    9. On the partitionA_(donor).bin, highlight and copy the portion containing HWCAL0/1.
      • [ New 3DS | New 3DS XL | New 2DS XL ?? ]
        • Offset(h): A9F0
        • Block(h): A9F0-AFFF
        • Length(h): 610
      • [ Old 3DS | Old 3DS XL | Old 2DS ]
        • Offset(h): AB30
        • Block(h): AB30-AFFF
        • Length(h): 4D0
    10. Switch over the view tab to partitionA_(original).bin, and paste this portion at that exact location / area.
    11. FileSave as...sdmc:/gm9/outpartitionA_(edited).binSave.
    12. Exit HxD program, unmount the SD card, reinsert the card back to the 3DS, and return to GodMode9.
    13. [1:] SYSNAND CTRNAND → press (X) to delete the (dummy) data folder.
    14. Hold (R)-shoulder and press (X) on data2 rename back to data.
    15. 1:/data/<ID0>/sysdata/00010017/00000000 → Mount as DISA image.
    16. You should now see D:/partitionA.bin. Back out with (B) button.
    17. [0:] SD CARD ()/gm9/out → press (Y) on partitionA_(edited).bin to add this to [CLIPBOARD].
      • If a selection mistake has occurred, press (SELECT) to reset.
    18. Back out with (B) button. Go back into [D:] DISA/DIFF IMAGE.
    19. Press (A) on partitionA.bin → Inject data @offset|00000000| → <A> yes button combo → <A> yes.
    20. Back out with (B) button. While under [root], hold (R)-shoulder and press (X) to unmount the configsave.bin.
      • [D:] DISA/DIFF IMAGE should no longer be visible.
    21. 1:/data/<ID0>/sysdata/00010017/00000000 → Calculate CMAC <A>yes<A> yes → button combo → <A> yes.
      • If you try to boot HOME Menu before correcting the CMAC, the 3DS firmware will erase the configsave.bin.
     
    Last edited by TurdPooCharger, Jun 2, 2020
    E1ite007 likes this.
  11. MasterofBiscuits

    Newcomer

    Joined:
    Apr 22, 2020
    Messages:
    4
    Country:
    United Kingdom
    I would like to try this to see if the alternative HWCAL files can fix the messed up 3d from my 3ds XL screen swap. I suspect it may just be a calibration issue as the 3D slider does something just not what it is supposed to do. Could someone please share the different versions?
     
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - HWCAL0, HWCAL1, files