diff --git a/source/main.cpp b/source/main.cpp index 23025db..8b2e7b5 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -9,6 +9,10 @@ #include #include +#include <3ds.h> +#include <3ds/services/cfgnor.h> +#include "ropdata.h" + #include #include @@ -33,6 +37,7 @@ int main(int argc, char **argv) { Mode mode = INSTALL_CIA; bool exit = false; bool netInstall = false; + int ropinstalled = 0; u64 freeSpace = fsGetFreeSpace(destination); auto onLoop = [&]() { if(ninjhax && inputIsPressed(BUTTON_START)) { @@ -73,6 +78,21 @@ int main(int argc, char **argv) { netInstall = true; breakLoop = true; } + + if(inputIsPressed(BUTTON_SELECT) && ropinstalled==0){ + Result result=0; + + CFGNOR_Initialize( (u8)1 ); + result=CFGNOR_WriteData(0x1FE00, (u32*)mset4x, 0x200); + CFGNOR_Shutdown(); + + if(result){ // 1 is fail install 2 is success install + ropinstalled=1; + } + else{ + ropinstalled=2; + } + } std::stringstream stream; stream << "Free Space: " << freeSpace << " bytes (" << std::fixed << std::setprecision(2) << freeSpace / 1024.0f / 1024.0f << "MB)" << "\n"; @@ -88,6 +108,7 @@ int main(int argc, char **argv) { if(ninjhax) { stream << "START - Exit to launcher" << "\n"; } + stream << (ropinstalled == 0 ? "SELECT - Install rxTools mset: NOT INSTALLED\n" : ropinstalled == 2 ? "SELECT - Install rxTools mset: INSTALLED\n" : "SELECT - Install rxTools mset: FAILED\n"); std::string str = stream.str(); const std::string title = "FBI v1.3.8"; diff --git a/source/ropdata.h b/source/ropdata.h new file mode 100644 index 0000000..b71b5f3 --- /dev/null +++ b/source/ropdata.h @@ -0,0 +1,48 @@ +/* + StartOffset: 00000000, EndOffset: 000001FF, Length: 00000200 */ +int mset4x_len=0x200; +unsigned char mset4x[512] = { + 0xB9, 0xF2, 0x10, 0x00, 0xAE, 0x2B, 0x27, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, + 0x9C, 0xF1, 0x18, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xB9, 0xF2, 0x10, 0x00, 0x00, 0x90, 0x27, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xE1, 0x49, 0x15, 0x00, 0x0C, 0x5E, 0x29, 0x00, + 0xAC, 0x82, 0x1B, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xB9, 0xF2, 0x10, 0x00, 0x00, 0x90, 0x27, 0x00, 0x00, 0x00, 0x2B, 0x00, + 0xE1, 0x49, 0x15, 0x00, 0x20, 0x90, 0x27, 0x00, 0x8C, 0x53, 0x10, 0x00, + 0x00, 0x90, 0x00, 0x00, 0x58, 0x39, 0x1B, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0x1A, 0x83, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0x91, 0xFE, 0x16, 0x00, + 0xAC, 0xEF, 0x22, 0x00, 0xBC, 0x4C, 0x14, 0x00, 0x00, 0x00, 0x2B, 0x00, + 0x00, 0x90, 0x00, 0x00, 0xE1, 0x49, 0x15, 0x00, 0xAC, 0xEF, 0x22, 0x00, + 0xAC, 0xEF, 0x22, 0x00, 0x8C, 0x53, 0x10, 0x00, 0x60, 0x14, 0x00, 0x00, + 0x60, 0x3D, 0x14, 0x00, 0x00, 0x90, 0x00, 0x00, 0xF9, 0x02, 0x10, 0x00, + 0x8C, 0x53, 0x10, 0x00, 0x40, 0x6B, 0x03, 0x00, 0x60, 0x3D, 0x14, 0x00, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xF1, 0x8B, 0x05, 0x00, 0x0F, 0x05, 0x1D, 0x00, 0x72, 0x00, + 0x78, 0x00, 0x54, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x73, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x59, 0x00, 0x53, 0x00, + 0x3A, 0x00, 0x2F, 0x00, 0x72, 0x00, 0x78, 0x00, 0x54, 0x00, 0x6F, 0x00, + 0x6F, 0x00, 0x6C, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x64, 0x00, 0x61, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x65, 0x02, + 0x19, 0x13, 0xE0, 0x0D, 0x11, 0x0E, 0xE6, 0xAC, 0x00, 0xFE, 0x00, 0x01, + 0xA5, 0x4F, 0x4A, 0x12, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x6B, 0xC1, + 0x01, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xB9, 0xF2, 0x10, 0x00, 0x00, 0xFE, 0x01, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xE1, 0x49, 0x15, 0x00, 0x00, 0x94, 0x27, 0x00, + 0xFC, 0x34, 0x13, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, 0x8C, 0x53, 0x10, 0x00, + 0x9C, 0x94, 0x27, 0xF0, 0x60, 0x3D, 0x14, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, + 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xE1, 0x37 +};