diff --git a/README.md b/README.md index a279d70e..45cbc55e 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,6 @@ Overclocking suite for Switch **(Mariko Only)** running on Atmosphere CFW. Suppo - Disable background services, less heat and power consumption in standby mode - Game recording and SysDVR streaming @ 60fps with high video bitrate - Option to change the threshold for chargers providing enough power -- Remove copyright watermark in screenshots/recordings, courtesy of [HookedBehemoth](https://github.com/HookedBehemoth/exefs_patches) - **TinyMemBenchNX**: DRAM throughput and latency test based on [tinymembench](https://github.com/ssvb/tinymembench) - **MemTesterNX**: A userspace utility for testing memory faults and stability based on [memtester](https://pyropus.ca/software/memtester/) @@ -72,7 +71,7 @@ Overclocking suite for Switch **(Mariko Only)** running on Atmosphere CFW. Suppo - Disable background services, less heat and power consumption in standby mode - **Remove** the "Disable Background service" part in `/atmosphere/config/system_settings.ini` if you **use Nintendo Online services**. - Game recording and SysDVR streaming @ 60fps with high video bitrate (7.5Mbps) - - (Recommended)[dvr-patches](https://github.com/exelix11/dvr-patches): Allow recording in any games. + - (Recommended)[dvr-patches](https://github.com/exelix11/dvr-patches): Allow screenshot/recording in any games and remove overlay image (copyright notice or logo). - For optimal streaming experience, SysDVR via USB interface is recommended. - Known Issues (won't fix) - Game recordings may be less than 30 seconds if higher bitrate is used. @@ -115,10 +114,8 @@ Grab necessary patches from the repo, then compile sys-clk, ReverseNX-RT and Atm - CTCaer for [Hekate-ipl](https://github.com/CTCaer/hekate) bootloader, RE and hardware research - [devkitPro](https://devkitpro.org/) for All-In-One homebrew toolchains -- HookedBehemoth for am_no_copyright [patch](https://github.com/HookedBehemoth/exefs_patches) - masagrator for [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) and [BatteryChargeInfoNX](https://github.com/masagrator/BatteryChargeInfoNX) - RetroNX team for [sys-clk](https://github.com/retronx-team/sys-clk) - SciresM and Reswitched Team for the state-of-the-art [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere) CFW of Switch -- suchmememanyskill for [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) and [TegraScript](https://github.com/suchmememanyskill/TegraScript) - Switchbrew [wiki](http://switchbrew.org/wiki/) for Switch in-depth info - ZatchyCatGames for RE and original OC loader patches for Atmosphere diff --git a/Source/Atmosphere/ldr_oc_patch.hpp b/Source/Atmosphere/ldr_oc_patch.hpp index 48e7f452..aec03966 100644 --- a/Source/Atmosphere/ldr_oc_patch.hpp +++ b/Source/Atmosphere/ldr_oc_patch.hpp @@ -10,22 +10,6 @@ constexpr ro::ModuleId PtmModuleId[] = { ParseModuleId("2CA78D4066C1C11317CC2705EBADA9A51D3AC981"), //13.0.0-13.1.0 }; -constexpr ro::ModuleId AmModuleId[] = { - ParseModuleId("5E5F1CC24D374591AFC2A2336C9453CCFA3961C1"), //12.x - ParseModuleId("2C1AD224328D2AF8B2C1A240D0175A108916AC8C"), //13.0.0 - ParseModuleId("75A273B296056EAC7A453C4C5B38C257EA9F4A6E"), //13.1.0 -}; - -namespace am { - constexpr u32 CopyrightOffset[] = { - 0xCA314, - 0xCB80C, - 0xCBA8C, - }; - - constexpr u8 CopyrightPatch[] = { 0xE0, 0x03, 0x1F, 0xAA, 0xC0, 0x03, 0x5F, 0xD6 }; -} - namespace pcv { typedef struct { u32 freq = 0; @@ -159,6 +143,13 @@ namespace pcv { // { 1600000, { 675, 650, 637, } }, // }; + // constexpr u32 EmcVoltOffsets[][] = + // { + // {}, + // {}, + // { 0x143AB8, 0x143ABC, 0x144EF8, 0x144EFC }, + // }; + // Sourced from 13.x pcv module // 1st regulator table, 0x142778 - 0x143BB4, if mask = 0b0110101 // 2nd regulator table, 0x143BB8 - 0x144FF4, if mask = 0b1010011 diff --git a/Source/Atmosphere/ldr_patcher.cpp b/Source/Atmosphere/ldr_patcher.cpp index 1029e084..7ba1f191 100644 --- a/Source/Atmosphere/ldr_patcher.cpp +++ b/Source/Atmosphere/ldr_patcher.cpp @@ -175,14 +175,21 @@ namespace ams::ldr { std::memcpy(reinterpret_cast(mapped_nso + pcv::CpuVoltageOldTableCoeff[i][j]), &pcv::NewCpuVoltageCoeff, sizeof(pcv::NewCpuVoltageCoeff)); } + /* Patch RAM DVB table */ + //if (i == 2) + // std::memcpy(reinterpret_cast(mapped_nso + pcv::EmcDvbTableOffsets[2]), pcv::EmcDvbTable, sizeof(pcv::EmcDvbTable)); + + /* Patch RAM volt */ + //u32 EmcVolt = 650'000; + //if (i == 2) + // for (u32 j = 0; j < sizeof(pcv::EmcVoltOffsets[i])/sizeof(u32); j++) { + // std::memcpy(reinterpret_cast(mapped_nso + pcv::EmcVoltOffsets[i][j]), &EmcVolt, sizeof(EmcVolt)); + // } + /* Patch RAM Clock */ for (u32 j = 0; j < sizeof(pcv::EmcFreqOffsets[i])/sizeof(u32); j++) { std::memcpy(reinterpret_cast(mapped_nso + pcv::EmcFreqOffsets[i][j]), &EmcClock, sizeof(EmcClock)); } - - /* Patch RAM DVB table */ - //if (i == 2) - // std::memcpy(reinterpret_cast(mapped_nso + pcv::EmcDvbTableOffsets[2]), pcv::EmcDvbTable, sizeof(pcv::EmcDvbTable)); } } @@ -204,11 +211,6 @@ namespace ams::ldr { } } - for (u32 i = 0; i < sizeof(AmModuleId)/sizeof(ro::ModuleId); i++) { - if(std::memcmp(std::addressof(AmModuleId[i]), std::addressof(module_id), sizeof(module_id)) == 0) { - std::memcpy(reinterpret_cast(mapped_nso + am::CopyrightOffset[i]), am::CopyrightPatch, sizeof(am::CopyrightPatch)); - } - } } } \ No newline at end of file