Hardware N3DS XL IPS - HWCAL0.DAt and HWCAL1.DAt files

Lenks

Well-Known Member
OP
Member
Joined
Mar 8, 2020
Messages
104
Trophies
0
Age
37
XP
1,182
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,
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
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,

Lenks

Well-Known Member
OP
Member
Joined
Mar 8, 2020
Messages
104
Trophies
0
Age
37
XP
1,182
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,
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
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:)
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.
 
  • Like
Reactions: Shmeve and E1ite007

Lenks

Well-Known Member
OP
Member
Joined
Mar 8, 2020
Messages
104
Trophies
0
Age
37
XP
1,182
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,
  • Like
Reactions: Shmeve and peteruk
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
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. :)

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,

Lenks

Well-Known Member
OP
Member
Joined
Mar 8, 2020
Messages
104
Trophies
0
Age
37
XP
1,182
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,
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
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?
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,

Lenks

Well-Known Member
OP
Member
Joined
Mar 8, 2020
Messages
104
Trophies
0
Age
37
XP
1,182
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.
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
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.

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,

MasterofBiscuits

New Member
Newbie
Joined
Apr 22, 2020
Messages
4
Trophies
0
XP
73
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?
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
Can this be done without erasing my sd-card games?
No, I'm sorry. I'm afraid not. The instructions were explicit about performing black magic to swap your n3DSXL with one from another parallel universe that has the configsave.bin with the correct HWCAL0/1 settings. Sometimes, the alternative you from the other side has a completely different set of games and saves than what you have. It's just the luck of the draw when trading n3DSXL systems. Nah, J/K. I'm totally bullshitting you. Maybe read what's involved in those steps?'
 

RenEH01

New Member
Newbie
Joined
Sep 21, 2020
Messages
1
Trophies
0
Age
38
XP
45
Country
Canada
Would anyone be able to send a donor HWCAL0.dat, HWCAL1.dat? Should have just bough a dual IPS system from the beginning. Already bricked two of them :/ swapping screens.
 

Broomoperator

Well-Known Member
Newcomer
Joined
Apr 15, 2017
Messages
51
Trophies
0
XP
406
Country
India
Hi
I just bought an top IPS screen from eBay for new Nintendo 3DS regular size one. I have a dual IPS new Nintendo 3DS XL can I do the HWCAL0.dat, HWCAL1.dat swap from one to the other even though they are different systems and one has dual TN while other has dual IPS.
 

lone_wolf323

Well-Known Member
Member
Joined
May 27, 2011
Messages
5,485
Trophies
2
XP
4,926
Country
Canada
Hi
I just bought an top IPS screen from eBay for new Nintendo 3DS regular size one. I have a dual IPS new Nintendo 3DS XL can I do the HWCAL0.dat, HWCAL1.dat swap from one to the other even though they are different systems and one has dual TN while other has dual IPS.
I believe they would have to be the same. The screen calibrations from a 3ds to xl would likely produce distortion images.
 
  • Like
Reactions: Broomoperator

Broomoperator

Well-Known Member
Newcomer
Joined
Apr 15, 2017
Messages
51
Trophies
0
XP
406
Country
India
I believe they would have to be the same. The screen calibrations from a 3ds to xl would likely produce distortion images.
How likely am I to brick the system with a screen swap just on it's own. I read somewhere people bricked doing the screen swap in comments on YouTube tutorial.

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

How likely am I to brick the system with a screen swap just on it's own. I read somewhere people bricked doing the screen swap in comments on YouTube tutorial.
Can't find the YouTube tutorial anymore.
 

GhouIie

New Member
Newbie
Joined
Jul 16, 2021
Messages
3
Trophies
0
Age
29
XP
31
Country
United States
Hello, I followed your guide and restored my 3d settings.

Now I have a question, which I'm not sure if you can help with.

My maximum luminance in Luma is 117, when it used to be around 143. Do you know why its decreased?

I swapped a US motherboard from a Dual TN model into my IPS top and TN bottom model.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    cearp @ cearp: Welcome hazbeans