diff --git a/PatchTools/Patcher.bat b/PatchTools/Patcher.bat new file mode 100644 index 00000000..2001316e --- /dev/null +++ b/PatchTools/Patcher.bat @@ -0,0 +1,38 @@ +@echo off +if not exist .\prod.keys ( +echo prod.key NOT FOUND! +pause +EXIT +) +if not exist .\pcv-backup ( +echo pcv-backup NOT FOUND! +pause +EXIT +) +if not exist .\pcv-bspatch ( +echo pcv-bspatch NOT FOUND! +pause +EXIT +) +if exist .\pcv-module ( +echo You have generated patched pcv module, do you want to delete and regenerate it? +pause +del .\pcv-module +) +rd /S /Q .\temp\ +rd /S /Q .\hacpack_backup\ +del .\*.nca +mkdir .\temp +mkdir .\temp\pcv_exefs +hactool -k prod.keys --disablekeywarns -t -nca .\pcv-backup --exefsdir .\temp +nx2elf .\temp\main +bspatch .\temp\main.elf .\temp\main-mod.elf .\pcv-bspatch +elf2nso .\temp\main-mod.elf .\temp\pcv_exefs\main +copy .\temp\main.npdm .\temp\pcv_exefs\ +hacpack -k prod.keys -o .\ --type nca --ncatype program --titleid 010000000000001A --exefsdir .\temp\pcv_exefs\ +ren *.nca pcv-module +echo Press any key to remove temp files +pause +rd /S /Q .\temp\ +rd /S /Q .\hacpack_backup\ +exit diff --git a/PatchTools/nx2elf.exe b/PatchTools/nx2elf.exe index 3b0a8e4e..2422018b 100644 Binary files a/PatchTools/nx2elf.exe and b/PatchTools/nx2elf.exe differ diff --git a/README.md b/README.md index 7d4c83d4..d90b7f6f 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,12 @@ Overclocking suite for Switch **(Mariko Only)** running on Atmosphere CFW. -For Horizon OS 11.0.x ~ 12.1.0. (AIO Package only supports the latest OS version for easier maintenance.) +Support latest Horizon OS (12.1.0) and Atmosphere (0.20.0). ## Notice -- Except for 1600 MHz, RAM OC has been broken since Atmosphere 0.20.0 introduces DRAM training for Mariko. **Currently under investigation.** - ### Disclaimer **Proceed with caution!** @@ -33,7 +31,8 @@ For Horizon OS 11.0.x ~ 12.1.0. (AIO Package only supports the latest OS version - **Overclock** - **Recommended CPU/GPU clock is 2295.0/1305.6 MHz**, since max clock(2397.0/1344.0 MHz) may not work on some SoCs. - - **Recommended RAM clock is 1862.4 MHz** for most DRAM chips, **except Hynix ones. RAM clock is set** permanently via **ptm-patch**, rather than sys-clk, considering the ability to select other clocks than the max one is lost if RAM OC takes into effect, and the impact of added power consumption is negligible. + - **Recommended RAM clock is 1862.4 MHz** for most DRAM chips, **except Hynix ones** (1795.2/1728.0 MHz). + - **RAM clock is set permanently** via **ptm-patch**, rather than sys-clk, considering the ability to select other clocks than the max one is lost if RAM OC takes into effect, and the impact of added power consumption is negligible. - Use Hekate to check out the brand of your RAM chips. - Choose RAM clock with care, or your eMMC filesystem will be **corrupted**. - Once RAM overvolting is available on Mariko, we may gain more stability and reach higher clock. @@ -92,6 +91,7 @@ For Horizon OS 11.0.x ~ 12.1.0. (AIO Package only supports the latest OS version **Notice**: - **Patching SysNAND is NOT recommended**. Since system files are directly altered, you could **NOT** boot to stock(OFW) until you revert the patch, and ban risks exist (?). - **Restoring pcv backup is required before updating** Horizon OS and booting OFW. Launch the `patcher.te` script to restore your backup. +- **Do NOT forget to reapply ptm-patch** after changing RAM OC clock. **Steps:** 1. Make sure you are running targeted HOS (12.1.0), and have `prod.keys` *with latest master key (0b)* dumped by [Lockpick_RCM](https://github.com/shchmue/Lockpick_RCM). @@ -110,23 +110,7 @@ For Horizon OS 11.0.x ~ 12.1.0. (AIO Package only supports the latest OS version 6. Select RAM frequency and prepare the patches: - Copy the `/atmosphere/oc_patches/xx-xxxx.x/ptm-patch` folder ->`/atmosphere/exefs_patches/` on your SD card. - Copy `/atmosphere/oc_patches/xx-xxxx.x/pcv-bspatch` -> `PatchTools` on your PC. -7. Open `cmd.exe`, change working directory to the `PatchTools` folder and type in the following commands. - Assuming that you put the folder on your Desktop: - ```cmd - cd %USERPROFILE%\Desktop\PatchTools - mkdir .\temp - mkdir .\temp\pcv_exefs - hactool -k prod.keys --disablekeywarns -t -nca .\pcv-backup --exefsdir .\temp - nx2elf .\temp\main - bspatch .\temp\main.elf .\temp\main-mod.elf .\pcv-bspatch - elf2nso .\temp\main-mod.elf .\temp\pcv_exefs\main - copy .\temp\main.npdm .\temp\pcv_exefs\ - hacpack -k prod.keys -o .\ --type nca --ncatype program --titleid 010000000000001A --exefsdir .\temp\pcv_exefs\ - ren *.nca pcv-module - rd /S /Q .\temp\ - rd /S /Q .\hacpack_backup\ - - ``` +7. Run `Patcher.bat` in PatchTools (Do NOT use admin privileges). 8. Move the patched `pcv-module` to `/atmosphere/oc_patches/`. 9. In TegraExplorer, `Browse SD` -> `patcher.te` -> `Launch Script` and then `Apply Patched PCV Module`. 10. Wait for `Done!` and then reboot to enjoy. diff --git a/SdOut/atmosphere/oc_patches/12-1728.0/pcv-bspatch b/SdOut/atmosphere/oc_patches/12-1728.0/pcv-bspatch new file mode 100644 index 00000000..4a018434 Binary files /dev/null and b/SdOut/atmosphere/oc_patches/12-1728.0/pcv-bspatch differ diff --git a/SdOut/atmosphere/oc_patches/12-1728.0/ptm-patch/A79706954C6C45568B0FFE610627E2E89D8FB0D4.ips b/SdOut/atmosphere/oc_patches/12-1728.0/ptm-patch/A79706954C6C45568B0FFE610627E2E89D8FB0D4.ips new file mode 100644 index 00000000..e9718b87 Binary files /dev/null and b/SdOut/atmosphere/oc_patches/12-1728.0/ptm-patch/A79706954C6C45568B0FFE610627E2E89D8FB0D4.ips differ diff --git a/SdOut/atmosphere/oc_patches/12-1795.2/pcv-bspatch b/SdOut/atmosphere/oc_patches/12-1795.2/pcv-bspatch new file mode 100644 index 00000000..9f66f7a7 Binary files /dev/null and b/SdOut/atmosphere/oc_patches/12-1795.2/pcv-bspatch differ diff --git a/SdOut/atmosphere/oc_patches/12-1795.2/ptm-patch/A79706954C6C45568B0FFE610627E2E89D8FB0D4.ips b/SdOut/atmosphere/oc_patches/12-1795.2/ptm-patch/A79706954C6C45568B0FFE610627E2E89D8FB0D4.ips new file mode 100644 index 00000000..e3a3b923 Binary files /dev/null and b/SdOut/atmosphere/oc_patches/12-1795.2/ptm-patch/A79706954C6C45568B0FFE610627E2E89D8FB0D4.ips differ diff --git a/Source/Atmosphere/ldr_pcv_patch.cpp b/Source/Atmosphere/ldr_pcv_patch.cpp index bf60450e..9cd3cd0f 100644 --- a/Source/Atmosphere/ldr_pcv_patch.cpp +++ b/Source/Atmosphere/ldr_pcv_patch.cpp @@ -24,7 +24,7 @@ namespace ams::ldr { { 0xD7C60, 0xD7C68, 0xD7C70, 0xD7C78, 0xD7C80, 0xD7C88, 0xD7C90, 0xD7C98, 0xD7CA0, 0xD7CA8, 0xE1800, 0xEEFA0, 0xF2478, 0xFE284, 0x10A304, 0x10D7DC, 0x110A40, 0x113CA4, 0x116F08, 0x11A16C, 0x11D3D0, 0x120634, 0x123898, 0x126AFC, 0x129D60, 0x12CFC4, 0x130228, 0x13BFE0, 0x140D00, 0x140D50, }, { 0xE1810, 0xE6530, 0xE6580, 0xE6AB0, 0xE6AB8, 0xE6AC0, 0xE6AC8, 0xE6AD0, 0xE6AD8, 0xE6AE0, 0xE6AE8, 0xE6AF0, 0xE6AF8, 0xF0650, 0xFDDF0, 0x1012C8, 0x10D0D4, 0x119154, 0x11C62C, 0x11F890, 0x122AF4, 0x125D58, 0x128FBC, 0x12C220, 0x12F484, 0x1326E8, 0x13594C, 0x138BB0, 0x13BE14, 0x13F078, } }; - // RAM freqs to choose: 1731200, 1862400, 1996800, 2131200 + // RAM freqs to choose: 1600000, 1728000, 1795200, 1862400, 1894400, 1932800, 1996800, 2064000, 2099200, 2131200 constexpr u32 NewEmcFreq = 1862400; // RAM overclock could be UNSTABLE on some RAM without bumping up voltage, // and therefore show graphical glitches, hang randomly or even worse, corrupt your NAND diff --git a/Source/Patch/12-ptm.pchtxt b/Source/Patch/12-ptm.pchtxt index 18733974..c446f9f1 100644 --- a/Source/Patch/12-ptm.pchtxt +++ b/Source/Patch/12-ptm.pchtxt @@ -1,7 +1,7 @@ @nsobid-A79706954C6C45568B0FFE610627E2E89D8FB0D4 @flag offset_shift 0x100 -// PTM PerformanceConfiguration Patch for 12.0.x +// PTM PerformanceConfiguration Patch for 12.0.x-12.1.0 // Change all RAM freqs to 1862.4 MHz and Boost CPU freqs to 1963.5 MHz by default // RAM // 1600.0 MHz - 00105E5F