diff --git a/BUILD.md b/BUILD.md index 51bc4cac..e7cbdbe8 100644 --- a/BUILD.md +++ b/BUILD.md @@ -12,7 +12,7 @@ * 22.04: `sudo apt install qtbase6-dev qtbase6-private-dev qtmultimedia6-dev libqt6svg6-dev` * Older versions: `sudo apt install qtbase5-dev qtbase5-private-dev qtmultimedia5-dev libqt5svg5-dev` Also add `-DUSE_QT6=OFF` to the first CMake command below. - * Fedora: `sudo dnf install gcc-c++ cmake extra-cmake-modules SDL2-devel libarchive-devel enet-devel libzstd-devel qt6-{qtbase,qtmultimedia,qtsvg}-devel wayland-devel` + * Fedora: `sudo dnf install gcc-c++ cmake extra-cmake-modules SDL2-devel libarchive-devel enet-devel libzstd-devel qt6-{qtbase,qtbase-private,qtmultimedia,qtsvg}-devel wayland-devel` * Arch Linux: `sudo pacman -S base-devel cmake extra-cmake-modules git libpcap sdl2 qt6-{base,multimedia,svg} libarchive enet zstd` 2. Download the melonDS repository and prepare: ```bash @@ -40,14 +40,14 @@ 5. Install dependencies: Replace `` below with `mingw-w64-ucrt-x86_64` on x64 systems, or `mingw-w64-clang-aarch64` on ARM64 systems. ```bash - pacman -S -{toolchain,cmake,SDL2,libarchive,enet,zstd}` + pacman -S -{toolchain,cmake,SDL2,libarchive,enet,zstd} ``` 6. Install Qt and configure the build directory * Dynamic builds (with DLLs) 1. Install Qt: `pacman -S -{qt6-base,qt6-svg,qt6-multimedia,qt6-svg,qt6-tools}` 2. Set up the build directory with `cmake -B build` * Static builds (without DLLs, standalone executable) - 1. Install Qt: `pacman -S -qt5-static` + 1. Install Qt: `pacman -S -qt5-static` (Note: As of writing, the `qt6-static` package does not work.) 2. Set up the build directory with `cmake -B build -DBUILD_STATIC=ON -DUSE_QT6=OFF -DCMAKE_PREFIX_PATH=$MSYSTEM_PREFIX/qt5-static` 7. Compile: `cmake --build build` @@ -78,4 +78,4 @@ If you want an app bundle that can be distributed to other computers without nee melonDS provides a Nix flake with support for both macOS and Linux. The [Nix package manager](https://nixos.org) needs to be installed to use it. * To run melonDS, just type `nix run github:melonDS-emu/melonDS`. -* To get a shell for development, clone the melonDS repository and type `nix develop` in its directory. \ No newline at end of file +* To get a shell for development, clone the melonDS repository and type `nix develop` in its directory. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1f947d11..a4cb6f1e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -127,6 +127,8 @@ if (ENABLE_JIT) endif() endif() +target_include_directories(core INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") + set(MELONDS_VERSION_SUFFIX "$ENV{MELONDS_VERSION_SUFFIX}" CACHE STRING "Suffix to add to displayed melonDS version") option(MELONDS_EMBED_BUILD_INFO "Embed detailed build info into the binary" OFF) set(MELONDS_GIT_BRANCH "$ENV{MELONDS_GIT_BRANCH}" CACHE STRING "The Git branch used for this build") @@ -178,13 +180,14 @@ endif() if (WIN32) target_link_libraries(core PRIVATE ole32 comctl32 wsock32 ws2_32) + target_compile_definitions(core PUBLIC WIN32_LEAN_AND_MEAN NOMINMAX) elseif(NOT APPLE AND NOT HAIKU) check_library_exists(rt shm_open "" NEED_LIBRT) if (NEED_LIBRT) target_link_libraries(core PRIVATE rt) endif() elseif(HAIKU) - target_link_libraries(core PRIVATE network) + target_link_libraries(core PRIVATE network) endif() if (ENABLE_JIT_PROFILING) diff --git a/src/GPU3D_OpenGL_shaders.h b/src/GPU3D_OpenGL_shaders.h index 03bd43f9..1bd8296a 100644 --- a/src/GPU3D_OpenGL_shaders.h +++ b/src/GPU3D_OpenGL_shaders.h @@ -681,6 +681,7 @@ void main() vec4 fpos; fpos.xy = (((vec2(vPosition.xy) ) * 2.0) / uScreenSize) - 1.0; + fpos.z = 0.0; fZ = float(vPosition.z << zshift) / 16777216.0; fpos.w = float(vPosition.w) / 65536.0f; fpos.xy *= fpos.w; diff --git a/src/debug/GdbProto.cpp b/src/debug/GdbProto.cpp index a69538db..33f11dd9 100644 --- a/src/debug/GdbProto.cpp +++ b/src/debug/GdbProto.cpp @@ -113,7 +113,7 @@ Gdb::ReadResult GdbStub::ParseAndSetupPacket() ReadResult result, prevResult; while (true) { - ReadResult result = TryParsePacket(i, packetStart, packetSize, packetContentSize); + result = TryParsePacket(i, packetStart, packetSize, packetContentSize); if (result == ReadResult::NoPacket) break; if (result != ReadResult::CmdRecvd && result != ReadResult::Break) diff --git a/src/frontend/qt_sdl/AboutDialog.ui b/src/frontend/qt_sdl/AboutDialog.ui index 89ca7a36..a4a21594 100644 --- a/src/frontend/qt_sdl/AboutDialog.ui +++ b/src/frontend/qt_sdl/AboutDialog.ui @@ -133,6 +133,9 @@ By Arisotura, the melonDS team <a href="https://github.com/melonDS-emu/melonDS/graphs/contributors">and contributors</a>. + + true + diff --git a/src/frontend/qt_sdl/CMakeLists.txt b/src/frontend/qt_sdl/CMakeLists.txt index a462dc9b..a14fb1c9 100644 --- a/src/frontend/qt_sdl/CMakeLists.txt +++ b/src/frontend/qt_sdl/CMakeLists.txt @@ -95,8 +95,7 @@ add_compile_definitions(ARCHIVE_SUPPORT_ENABLED) add_executable(melonDS ${SOURCES_QT_SDL}) add_subdirectory("../../net" - "${CMAKE_BINARY_DIR}/net" -) + ${CMAKE_BINARY_DIR}/net) target_link_libraries(melonDS PRIVATE net-utils) @@ -175,11 +174,11 @@ if (BUILD_STATIC) endif() endif() -target_include_directories(melonDS PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -target_include_directories(melonDS PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") -target_include_directories(melonDS PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../..") -target_include_directories(melonDS PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../../net") +target_include_directories(melonDS PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/..") target_include_directories(melonDS PRIVATE ${LUA_INCLUDE_DIR}) + if (USE_QT6) target_include_directories(melonDS PUBLIC ${Qt6Gui_PRIVATE_INCLUDE_DIRS}) else() diff --git a/src/net/CMakeLists.txt b/src/net/CMakeLists.txt index 6ca24de6..657aa9fd 100644 --- a/src/net/CMakeLists.txt +++ b/src/net/CMakeLists.txt @@ -11,9 +11,9 @@ add_library(net-utils STATIC MPInterface.cpp ) -target_include_directories(net-utils PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -target_include_directories(net-utils PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") - +target_include_directories(net-utils PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/..") option(USE_SYSTEM_LIBSLIRP "Use system libslirp instead of the bundled version" OFF) if (USE_SYSTEM_LIBSLIRP)