diff --git a/README.md b/README.md index 3bfb3f1..885e4d1 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ With GUI and cookies. Works on Windows, macOS and Linux. Sometimes I add new posts about this project [on my blog page](https://developersu.blogspot.com/search/label/NS-USBloader). -![Application screenshot](screenshots/1.png) -screenshot screenshot -screenshot screenshot +screenshot screenshot +screenshot screenshot +screenshot #### License diff --git a/src/main/java/nsusbloader/Utilities/patches/es/BinToAsmPrinter.java b/src/main/java/nsusbloader/Utilities/patches/es/BinToAsmPrinter.java index d3e2024..65a8fed 100644 --- a/src/main/java/nsusbloader/Utilities/patches/es/BinToAsmPrinter.java +++ b/src/main/java/nsusbloader/Utilities/patches/es/BinToAsmPrinter.java @@ -102,21 +102,21 @@ public class BinToAsmPrinter { } if ((instructionExpression >> 21 & 0x7FF) == 0x1C2) - return printLDURBSimplified(instructionExpression, offset); + return printImTooLazy("LDURB", instructionExpression, offset); // same to (afterJumpExpression >> 23 & 0x1F9) != 0xA1 switch (instructionExpression >> 22 & 0x1FF){ case 0xA3: // 0b10100011 case 0xA7: // 0b10100111 case 0xA5: // 0b10100101 - return printLDPSimplified(instructionExpression, offset); + return printImTooLazy("LDP", instructionExpression, offset); } switch ((instructionExpression >> 23 & 0xff)){ case 0xA5: return printMOVSimplified(instructionExpression, offset); case 0x22: - return printADDSimplified(instructionExpression, offset); + return printImTooLazy("ADD", instructionExpression, offset); case 0x62: if (((instructionExpression & 0x1f) == 0x1f)){ return printCMNSimplified(instructionExpression, offset); @@ -416,22 +416,12 @@ public class BinToAsmPrinter { getBConditionalMarker(instructionExpression & 0xf), conditionalJumpLocation, (conditionalJumpLocation + 0x100)); } + private static String printImTooLazy(String name, int instructionExpression, int offset){ + return String.format( + "%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " "+name+" . . . \n"+ ANSI_RESET, + offset, Integer.reverseBytes(instructionExpression), instructionExpression); + } - private static String printADDSimplified(int instructionExpression, int offset){ //ADD (immediate) - return String.format( - "%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " ADD . . . \n"+ ANSI_RESET, - offset, Integer.reverseBytes(instructionExpression), instructionExpression); - } - private static String printLDPSimplified(int instructionExpression, int offset){ - return String.format( - "%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDP . . . \n"+ ANSI_RESET, - offset, Integer.reverseBytes(instructionExpression), instructionExpression); - } - private static String printLDURBSimplified(int instructionExpression, int offset){ - return String.format( - "%05x "+ANSI_CYAN+"%08x (%08x)"+ANSI_YELLOW + " LDURB . . . \n"+ ANSI_RESET, - offset, Integer.reverseBytes(instructionExpression), instructionExpression); - } private static String printSUBSimplified(int instructionExpression, int offset){ String wx = (instructionExpression >> 31 == 0) ? "W" : "X"; int Rt = instructionExpression & 0x1f; diff --git a/src/main/java/nsusbloader/Utilities/patches/es/EsPatch.java b/src/main/java/nsusbloader/Utilities/patches/es/EsPatch.java index 5ef3173..e0b2003 100644 --- a/src/main/java/nsusbloader/Utilities/patches/es/EsPatch.java +++ b/src/main/java/nsusbloader/Utilities/patches/es/EsPatch.java @@ -67,6 +67,8 @@ public class EsPatch { fwVersion = Long.parseLong(""+ncaProvider.getSdkVersion()[3]+ncaProvider.getSdkVersion()[2] +ncaProvider.getSdkVersion()[1] +ncaProvider.getSdkVersion()[0]); logPrinter.print("Internal firmware version: "+ncaProvider.getSdkVersion()[3] +"."+ncaProvider.getSdkVersion()[2] +"."+ncaProvider.getSdkVersion()[1] +"."+ncaProvider.getSdkVersion()[0], EMsgType.INFO); + if (fwVersion < 9300) + logPrinter.print("WARNING! FIRMWARES VERSIONS BEFORE 9.0.0 ARE NOT SUPPORTED! USING PRODUCED ES PATCHES (IF ANY) COULD BREAK SOMETHING! IT'S NEVER BEEN TESTED!", EMsgType.WARNING); } private void getBuildId(NSO0Provider nso0Provider) throws Exception{ NSO0Header nso0DecompressedHeader = nso0Provider.getAsDecompressedNSO0().getHeader(); diff --git a/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs1.java b/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs1.java index d063b39..cfd1974 100644 --- a/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs1.java +++ b/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs1.java @@ -101,9 +101,4 @@ class HeuristicEs1 implements IHeuristicEs { return builder.toString(); } - - @Override - public int getId(){ - return 1; - } } diff --git a/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs2.java b/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs2.java index e139558..b3fd297 100644 --- a/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs2.java +++ b/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs2.java @@ -160,9 +160,4 @@ class HeuristicEs2 implements IHeuristicEs { return builder.toString(); } - - @Override - public int getId(){ - return 2; - } } diff --git a/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs3.java b/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs3.java index fc4591f..8d7d5fd 100644 --- a/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs3.java +++ b/src/main/java/nsusbloader/Utilities/patches/es/finders/HeuristicEs3.java @@ -143,9 +143,4 @@ class HeuristicEs3 implements IHeuristicEs { } return builder.toString(); } - - @Override - public int getId(){ - return 3; - } } diff --git a/src/main/java/nsusbloader/Utilities/patches/es/finders/IHeuristicEs.java b/src/main/java/nsusbloader/Utilities/patches/es/finders/IHeuristicEs.java index ade0733..944b474 100644 --- a/src/main/java/nsusbloader/Utilities/patches/es/finders/IHeuristicEs.java +++ b/src/main/java/nsusbloader/Utilities/patches/es/finders/IHeuristicEs.java @@ -42,6 +42,4 @@ interface IHeuristicEs { * @return isFound(); * */ boolean setOffsetsNearby(int offsetNearby); - - int getId(); }