From ec16678a09d94f27a771b9004fc7d6cee28abe22 Mon Sep 17 00:00:00 2001 From: dreamsyntax Date: Mon, 20 Jan 2025 15:44:01 -0700 Subject: [PATCH] Cleanup: Remove MSBuild / SLN Resolve https://github.com/aldelaro5/dolphin-memory-engine/issues/89 Update README and gitignore --- .gitignore | 6 +- README.md | 22 +-- Source/dolphin-memory-engine.default.props | 25 ---- Source/dolphin-memory-engine.sln | 25 ---- Source/dolphin-memory-engine.vcxproj | 155 --------------------- 5 files changed, 17 insertions(+), 216 deletions(-) delete mode 100644 Source/dolphin-memory-engine.default.props delete mode 100644 Source/dolphin-memory-engine.sln delete mode 100755 Source/dolphin-memory-engine.vcxproj diff --git a/.gitignore b/.gitignore index 5a1c561a..8a8e27bf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,11 @@ Source/[Bb]uild*/ Source/[Bb]inary/ Source/bin/ +Source/CMakeSettings.json Source/obj/ Source/GeneratedFiles/ Source/cmake-build-debug/* +Source/out/ Source/*.ipch Source/*.opensdf Source/*.sdf @@ -17,4 +19,6 @@ Source/.vs/ Source/.vscode/ .vscode/ .idea/* -.DS_Store \ No newline at end of file +.DS_Store +.vs/ +.vscode/ diff --git a/README.md b/README.md index a620ec34..b2027292 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ The GUI is aimed for convenience, without disrupting the performance of the emul For binary releases of this program, refer to [the "releases" page](https://github.com/aldelaro5/dolphin-memory-engine/releases) on [the Github repository](https://github.com/aldelaro5/dolphin-memory-engine). ## Build Status + ### Linux: [![Build](https://github.com/aldelaro5/dolphin-memory-engine/actions/workflows/build.yml/badge.svg)](https://github.com/aldelaro5/dolphin-memory-engine/actions/workflows/build.yml) @@ -22,6 +23,8 @@ For binary releases of this program, refer to [the "releases" page](https://gith ## System requirements Any x86_64 based system should work. +This repository uses CMake for all platforms. + At least 250 MB of free memory is required. You need to have Dolphin running ***and*** _have the emulation started_ for this program to be useful. As such, the system must meet Dolphin's [system requirements](https://github.com/dolphin-emu/dolphin#system-requirements). @@ -38,16 +41,15 @@ Linux/macOS: `~/.config/dolphin-memory-engine` Create a empty file `portable.txt` in the same directory as Dolphin Memory Engine and the configuration will instead be saved in the same folder as the program. ## How to Build -### Microsoft Windows -This repository provides a solution file for Visual Studio 2022 and later. The Windows SDK Version 10.0.22621.0 is required*. -Before proceeding, ensure the Qt submodule is initialized by running `git submodule update --init` at the repository's root. The files should appear at the `Externals\Qt` directory. +### Microsoft Windows +Visual Studio 2022 and later is recommended. The Windows SDK Version 10.0.22621.0 is required. -Once complete, open the solution file `dolphin-memory-engine.sln` located in the `Source` directory with Visual Studio. Select the build configuration and build it. +The Windows SDK version 10.0.22621.0 comes with the C++ Desktop Development Workload of Visual Studio 2022 — other versions may work but are untested. -#### Windows SDK -The Windows SDK version 10.0.22621.0 comes with the C++ Desktop Development Workload of Visual Studio 2022 — other versions may work but are untested. To use a different Windows SDK you'll need to select it in the project properties window. Please note that this will change the `vcxproj` file, so if you plan to submit a Pull Request, make sure to not stage this change. +Before proceeding, ensure the Qt submodule is initialized by running `git submodule update --init` at the repository's root. The files should appear at the `Externals\Qt` directory. +Once complete, open the `Source` directory with Visual Studio's `Open a local folder` option. ### Linux > _CMake and Qt 6 are required. Please refer to your distribution's documentation for specific instructions on how to install them._ @@ -117,15 +119,15 @@ Options: ## Troubleshooting -On Linux, the program may require additional kernel permissions to be able to read and write memory to external processes (which is required to read and write the memory of Dolphin). If nothing happens to Dolphin, but the program frequently unhooks itself, the program is missing the required permissions. Grant these permissions by running the following command as root: +On Linux, the program may require additional kernel permissions to be able to read and write memory to external processes (which is required to read and write the memory of Dolphin). If nothing happens to Dolphin, but the program frequently unhooks itself, the program is missing the required permissions. Grant these permissions by running the following command as root: - setcap cap_sys_ptrace=eip DME + setcap cap_sys_ptrace=eip dolphin-memory-engine -Where `DME` is the path of the Dolphin Memory Engine executable. This should fix the permission problem for future executions. +Where `dolphin-memory-engine` is the path of the Dolphin Memory Engine executable. This sets the permission for future executions. If it doesn't work, verify that you do not have the `nosuid` mount flag on your `/etc/fstab` as it can cause this command to silently fail. On macOS, Dolphin (upon install or after an update) must be signed with specific entitlements to permit memory access. Follow the instructions [above](#macos-code-signing). ## License -This program is licensed under the MIT license which grants you the permission to do anything you wish to with the software, as long as you preserve all copyright notices. (See the file LICENSE for the legal text.) +This program is licensed under the MIT license which grants you the permission to do anything you wish to with the software, as long as you preserve all copyright notices. See the file LICENSE for the legal text. diff --git a/Source/dolphin-memory-engine.default.props b/Source/dolphin-memory-engine.default.props deleted file mode 100644 index a00db86c..00000000 --- a/Source/dolphin-memory-engine.default.props +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - $(DefaultPlatformToolset) - - $(SolutionDir)..\ - - $(ProjectRoot)Externals\Qt\Qt6.5.3\x64\ - - -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB - -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB - - PATH=$(QTDIR)bin;$(PATH) - WindowsLocalDebugger - - true - - diff --git a/Source/dolphin-memory-engine.sln b/Source/dolphin-memory-engine.sln deleted file mode 100644 index 800c48ba..00000000 --- a/Source/dolphin-memory-engine.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2010 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dolphin-memory-engine", "dolphin-memory-engine.vcxproj", "{FB0FF455-327C-4FCF-B234-A60D8AA9FDDD}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FB0FF455-327C-4FCF-B234-A60D8AA9FDDD}.Debug|x64.ActiveCfg = Debug|x64 - {FB0FF455-327C-4FCF-B234-A60D8AA9FDDD}.Debug|x64.Build.0 = Debug|x64 - {FB0FF455-327C-4FCF-B234-A60D8AA9FDDD}.Release|x64.ActiveCfg = Release|x64 - {FB0FF455-327C-4FCF-B234-A60D8AA9FDDD}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {59830C09-48B9-4C55-87C8-E8202905D079} - EndGlobalSection -EndGlobal diff --git a/Source/dolphin-memory-engine.vcxproj b/Source/dolphin-memory-engine.vcxproj deleted file mode 100755 index 47b59ef7..00000000 --- a/Source/dolphin-memory-engine.vcxproj +++ /dev/null @@ -1,155 +0,0 @@ - - - - - Debug - x64 - - - Release - x64 - - - - 15.0 - {FB0FF455-327C-4FCF-B234-A60D8AA9FDDD} - dolphinmemoryengine - 10.0.22621.0 - - - - - Application - true - MultiByte - - - Application - false - true - MultiByte - - - v143 - - - v143 - - - - - - - - - - - - $(ProjectDir)bin\$(Configuration)\ - $(ProjectDir)obj\$(Configuration)\ - - - - Level3 - Disabled - true - true - $(QTDIR)include;$(QTDIR)include\QtCore;$(QTDIR)include\QtGui;$(QTDIR)include\QtWidgets - $(IntDir)%(RelativeDir) - WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) - stdcpp20 - stdc17 - /Zc:__cplusplus - - - $(QTDIR)lib;%(AdditionalLibraryDirectories) - Qt6Widgetsd.lib;Qt6Cored.lib;Qt6Guid.lib;%(AdditionalDependencies) - Console - - - - - Level3 - MaxSpeed - true - true - true - true - $(QTDIR)include;$(QTDIR)include\QtCore;$(QTDIR)include\QtGui;$(QTDIR)include\QtWidgets - $(IntDir)%(RelativeDir) - WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) - stdcpp20 - stdc17 - /Zc:__cplusplus - - - true - true - $(QTDIR)lib;%(AdditionalLibraryDirectories) - Qt6Widgets.lib;Qt6Core.lib;Qt6Gui.lib;%(AdditionalDependencies) - Windows - mainCRTStartup - - - - - - d - - - - - - - platforms\ - - - styles\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Moc'ing %(Filename)%(Extension)... - "$(QTDIR)bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(Configuration)\moc_%(Filename).cpp" $(QtMocFlags) "-I." "-I$(QTDIR)include" "-I$(OutDir)GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)include\QtCore" "-I$(QTDIR)include\QtGui" "-I$(QTDIR)include\QtWidgets" - .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - $(QTDIR)bin\moc.exe;%(FullPath) - - - - - - \ No newline at end of file