diff --git a/src/MaaCore/Controller/AdbController.cpp b/src/MaaCore/Controller/AdbController.cpp index dcbd9b236d..df130c0633 100644 --- a/src/MaaCore/Controller/AdbController.cpp +++ b/src/MaaCore/Controller/AdbController.cpp @@ -211,7 +211,12 @@ int asst::AdbController::get_mumu_index(const std::string& address) return 0; } int port = std::stoi(port_str); - int mumu_index = (port - 16384) / 32; // must be int + int mumu_index = 0; + if (port >= 16384) { + mumu_index = (port - 16384) / 32; + } else if (port >= 5555) { + mumu_index = (port - 5555) / 2; + } LogInfo << VAR(port_str) << VAR(port) << VAR(mumu_index); return mumu_index; } diff --git a/src/MaaWpfGui/Helper/EmulatorHelper.cs b/src/MaaWpfGui/Helper/EmulatorHelper.cs index 0ed7593e31..db534b88d6 100644 --- a/src/MaaWpfGui/Helper/EmulatorHelper.cs +++ b/src/MaaWpfGui/Helper/EmulatorHelper.cs @@ -81,7 +81,18 @@ public class EmulatorHelper string portStr = address.Split(':')[1]; if (int.TryParse(portStr, out int port)) { - emuIndex = (port - 16384) / 32; + switch (port) + { + case >= 16384: + emuIndex = (port - 16384) / 32; + break; + case >= 5555: + emuIndex = (port - 5555) / 2; + break; + default: + _logger.Error("Port {Port} is not valid for MuMuEmulator12", port); + return false; + } } else {