mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-09-06 01:26:05 +00:00
Merge branch 'master' of https://github.com/MarioPartyNetplay/Dolphin-MPN-src
This commit is contained in:
commit
14d3c60d22
1071 changed files with 159471 additions and 31684 deletions
|
@ -1,11 +1,11 @@
|
|||
app-id: org.DolphinEmu.dolphin-mpn
|
||||
branch: master
|
||||
runtime: org.kde.Platform
|
||||
runtime-version: 5.15
|
||||
runtime-version: 6.4
|
||||
sdk: org.kde.Sdk
|
||||
command: dolphin-emu-wrapper
|
||||
rename-desktop-file: dolphin-emu.desktop
|
||||
rename-icon: dolphin-emu
|
||||
command: dolphin-mpn-wrapper
|
||||
rename-desktop-file: dolphin-mpn.desktop
|
||||
rename-icon: dolphin-mpn
|
||||
finish-args:
|
||||
- --device=all # need for controllers
|
||||
# the file picker uses portals but the set
|
||||
|
@ -106,11 +106,11 @@ modules:
|
|||
cleanup:
|
||||
- /share/man
|
||||
post-install:
|
||||
- install -D -t ${FLATPAK_DEST}/bin/ dolphin-emu-wrapper
|
||||
- desktop-file-edit --set-key=Exec --set-value='/app/bin/dolphin-emu-wrapper'
|
||||
/app/share/applications/dolphin-emu.desktop
|
||||
- install -D -t ${FLATPAK_DEST}/bin/ dolphin-mpn-wrapper
|
||||
- desktop-file-edit --set-key=Exec --set-value='/app/bin/dolphin-mpn-wrapper'
|
||||
/app/share/applications/dolphin-mpn.desktop
|
||||
- desktop-file-edit --set-key=Name --set-value='Dolphin MPN'
|
||||
/app/share/applications/dolphin-emu.desktop
|
||||
/app/share/applications/dolphin-mpn.desktop
|
||||
sources:
|
||||
- type: git
|
||||
url: https://github.com/MarioPartyNetplay/Dolphin-MPN-src.git
|
||||
|
@ -127,5 +127,5 @@ modules:
|
|||
test -S $XDG_RUNTIME_DIR/discord-ipc-$i ||
|
||||
ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
|
||||
done
|
||||
dolphin-emu "$@"
|
||||
dest-filename: dolphin-emu-wrapper
|
||||
dolphin-mpn "$@"
|
||||
dest-filename: dolphin-mpn-wrapper
|
||||
|
|
45
.github/workflows/linux.yml
vendored
Normal file
45
.github/workflows/linux.yml
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
name: Linux CI
|
||||
|
||||
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||
# events but only for the master branch
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v2
|
||||
# Submoudle
|
||||
- name: Checkout Submodles
|
||||
run: git submodule update --init --recursive
|
||||
# Setup CMake
|
||||
- name: Setup CMake
|
||||
uses: Symbitic/install-cmake@v0.1.1
|
||||
with:
|
||||
platform: linux
|
||||
# Setup Packages
|
||||
- name: Setup Packages
|
||||
run: sudo apt update && sudo apt upgrade && sudo apt install p7zip-full build-essential git cmake ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libevdev-dev libusb-1.0-0-dev libxrandr-dev libxi-dev libpangocairo-1.0-0 qt6-base-private-dev libbluetooth-dev libasound2-dev libpulse-dev libgl1-mesa-dev libudev-dev libsystemd-dev dpkg-dev
|
||||
# Run CMake
|
||||
- name: Run CMake
|
||||
run: mkdir build && cd build && cmake .. -G Ninja -DLINUX_LOCAL_DEV=true -DCPACK_PACKAGE_CONTACT="Mario Party Netplay" -DDISTRIBUTOR="Mario Party Netplay"
|
||||
# Build Project
|
||||
- name: Run Make
|
||||
run: cd build && ninja -j$(nproc)
|
||||
# Configure Dolphin
|
||||
- name: Configure Dolphin
|
||||
run: cd build && cp -r ../Data/Sys/ Binaries/ && cp -r ../Data/User/ Binaries/ && cp -r ../Data/dolphin-mpn.png Binaries/ && touch Binaries/portable.txt && mv Binaries/User Binaries/user
|
||||
# Upload Artifact
|
||||
- name: Upload Build Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: DolphinMPN-Linux
|
||||
path: /home/runner/work/Dolphin-MPN/Dolphin-MPN/build/Binaries/
|
45
.github/workflows/macOS.yml
vendored
Normal file
45
.github/workflows/macOS.yml
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
name: macOS CI
|
||||
|
||||
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||
# events but only for the master branch
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: macos-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v2
|
||||
# Submoudle
|
||||
- name: Checkout Submodles
|
||||
run: git submodule update --init --recursive
|
||||
# Setup Packages
|
||||
- name: Setup Packages
|
||||
run: brew install qt6 p7zip pkgconfig
|
||||
# Setup CMake
|
||||
- name: Setup CMake
|
||||
uses: Symbitic/install-cmake@v0.1.1
|
||||
with:
|
||||
platform: mac
|
||||
# Use Static ZSTD
|
||||
- name: Remove ZSTD
|
||||
run: brew uninstall zstd curl php --force --ignore-dependencies
|
||||
# Run CMake
|
||||
- name: Run CMake
|
||||
run: mkdir -p build && cd build && cmake .. -G Ninja -DCMAKE_CXX_FLAGS="-Xclang -fcolor-diagnostics" -DCMAKE_PREFIX_PATH=$(brew --prefix qt6) -DDISTRIBUTOR="Mario Party Netplay"
|
||||
# Build Project
|
||||
- name: Run Ninja
|
||||
run: cd build && ninja -j8
|
||||
# Upload Artifact
|
||||
- name: Upload Build Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: DolphinMPN-macOS
|
||||
path: /Users/runner/work/Dolphin-MPN/Dolphin-MPN/build/Binaries/
|
43
.github/workflows/nsis.yml
vendored
Normal file
43
.github/workflows/nsis.yml
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
name: Windows NSIS CI
|
||||
|
||||
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||
# events but only for the master branch
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: windows-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v2
|
||||
# Submoudle
|
||||
- name: Checkout Submodles
|
||||
run: git submodule update --init --recursive
|
||||
# Setup MSBuild For Later Usage
|
||||
- name: Setup MSBuild
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
with:
|
||||
vs-version: '16.6.2'
|
||||
# Run MSBuild
|
||||
- name: Build Solution
|
||||
run: msbuild "D:\a\Dolphin-MPN\Dolphin-MPN\Source\dolphin-emu.sln" /verbosity:minimal /property:Configuration=Release /property:Platform=x64
|
||||
# Package NSIS
|
||||
- name: Package NSIS
|
||||
uses: joncloud/makensis-action@v4
|
||||
with:
|
||||
script-file: "D:/a/Dolphin-MPN/Dolphin-MPN/Installer/Installer.nsi"
|
||||
arguments: "/DDOLPHIN_ARCH=x64 /PRODUCT_VERSION=MPN /V3"
|
||||
|
||||
# Upload Artifact
|
||||
- name: Upload Build Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: DolphinMPN-win32
|
||||
path: D:\a\Dolphin-MPN\Dolphin-MPN\Binary\x64
|
36
.github/workflows/win32.yml
vendored
Normal file
36
.github/workflows/win32.yml
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
name: Windows CI
|
||||
|
||||
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||
# events but only for the master branch
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: windows-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v2
|
||||
# Submoudle
|
||||
- name: Checkout Submodles
|
||||
run: git submodule update --init --recursive
|
||||
# Setup MSBuild For Later Usage
|
||||
- name: Setup MSBuild
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
with:
|
||||
vs-version: '16.6.2'
|
||||
# Run MSBuild
|
||||
- name: Build Solution
|
||||
run: msbuild "D:\a\Dolphin-MPN\Dolphin-MPN\Source\dolphin-emu.sln" /verbosity:minimal /property:Configuration=Release /property:Platform=x64
|
||||
# Upload Artifact
|
||||
- name: Upload Build Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: DolphinMPN-win32
|
||||
path: D:\a\Dolphin-MPN\Dolphin-MPN\Binary\x64
|
135
.github/workflows/windows-macOS-Linux.yml
vendored
135
.github/workflows/windows-macOS-Linux.yml
vendored
|
@ -1,135 +0,0 @@
|
|||
name: Win-macOS-Linux CI
|
||||
|
||||
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||
# events but only for the master branch
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
build:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-latest]
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v2
|
||||
# Submoudle
|
||||
- name: Checkout Submodles
|
||||
run: git submodule update --init --recursive
|
||||
# Install 7zip
|
||||
- name: Install 7zip
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: choco install 7zip
|
||||
# Setup Packages
|
||||
- name: Setup Packages
|
||||
if: matrix.os == 'macos-latest'
|
||||
run: brew install qt6 p7zip pkgconfig
|
||||
# Setup MSBuild For Later Usage
|
||||
- name: Setup MSBuild
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
with:
|
||||
vs-version: '16.6.2'
|
||||
# Setup CMake
|
||||
- name: Setup CMake
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: Symbitic/install-cmake@v0.1.1
|
||||
with:
|
||||
platform: mac
|
||||
# Setup CMake
|
||||
- name: Setup CMake
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: Symbitic/install-cmake@v0.1.1
|
||||
with:
|
||||
platform: linux
|
||||
# Use Static ZSTD
|
||||
- name: Remove ZSTD
|
||||
if: matrix.os == 'macos-latest'
|
||||
run: brew uninstall zstd curl php --force --ignore-dependencies
|
||||
# Run CMake
|
||||
- name: Run CMake
|
||||
if: matrix.os == 'macos-latest'
|
||||
run: mkdir -p build && cd build && cmake .. -G Ninja -DCMAKE_CXX_FLAGS="-Xclang -fcolor-diagnostics" -DCMAKE_PREFIX_PATH=$(brew --prefix qt6) -DDISTRIBUTOR="Mario Party Netplay"
|
||||
# Build Project
|
||||
- name: Run Ninja
|
||||
if: matrix.os == 'macos-latest'
|
||||
run: cd build && ninja -j4
|
||||
# Run MSBuild
|
||||
- name: Build Solution
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: msbuild "D:\a\Dolphin-MPN\Dolphin-MPN\Source\dolphin-emu.sln" /verbosity:minimal /property:Configuration=Release /property:Platform=x64
|
||||
# Setup Packages
|
||||
- name: Setup Packages
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: sudo apt update && sudo apt upgrade && sudo apt install p7zip-full build-essential git cmake ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libevdev-dev libusb-1.0-0-dev libxrandr-dev libxi-dev libpangocairo-1.0-0 qt6-base-private-dev libbluetooth-dev libasound2-dev libpulse-dev libgl1-mesa-dev libudev-dev libsystemd-dev dpkg-dev
|
||||
# Run CMake
|
||||
- name: Run CMake
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: mkdir build && cd build && cmake .. -G Ninja -DLINUX_LOCAL_DEV=true -DCPACK_PACKAGE_CONTACT="Mario Party Netplay" -DDISTRIBUTOR="Mario Party Netplay"
|
||||
# Build Project
|
||||
- name: Run Make
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: cd build && ninja -j$(nproc)
|
||||
# Configure Dolphin
|
||||
- name: Configure Dolphin
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: cd build && cp -r ../Data/Sys/ Binaries/ && cp -r ../Data/User/ Binaries/ && cp -r ../Data/dolphin-emu.png Binaries/ && touch Binaries/portable.txt
|
||||
# Upload Artifact
|
||||
- name: Upload Build Artifact
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: DolphinMPN-win32
|
||||
path: D:\a\Dolphin-MPN\Dolphin-MPN\Binary\x64
|
||||
# Upload Artifact
|
||||
- name: Upload Build Artifact
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: DolphinMPN-macOS
|
||||
path: /Users/runner/work/Dolphin-MPN/Dolphin-MPN/build/Binaries/
|
||||
# Upload Artifact
|
||||
- name: Upload Build Artifact
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: DolphinMPN-Linux
|
||||
path: /home/runner/work/Dolphin-MPN/Dolphin-MPN/build/Binaries/
|
||||
# Zip Artifact
|
||||
- name: Zip Artifact
|
||||
if: matrix.os == 'ubuntu-latest' && startsWith(github.ref, 'refs/tags/')
|
||||
run: 7z a -tzip /home/runner/DolphinMPN-linux /home/runner/work/Dolphin-MPN/Dolphin-MPN/build/Binaries/*
|
||||
# New Release
|
||||
- name: New Release
|
||||
if: matrix.os == 'ubuntu-latest' && startsWith(github.ref, 'refs/tags/')
|
||||
uses: ncipollo/release-action@v1.12.0
|
||||
with:
|
||||
artifacts: /home/runner/DolphinMPN-linux.7z
|
||||
# Zip Artifact
|
||||
- name: Zip Artifact
|
||||
if: matrix.os == 'macos-latest' && startsWith(github.ref, 'refs/tags/')
|
||||
run: 7z a -tzip /Users/runner/DolphinMPN-macOS-intel /Users/runner/work/Dolphin-MPN/Dolphin-MPN/build/Binaries/*
|
||||
# New Release
|
||||
- name: New Release
|
||||
if: matrix.os == 'macos-latest' && startsWith(github.ref, 'refs/tags/')
|
||||
uses: ncipollo/release-action@v1.12.0
|
||||
with:
|
||||
artifacts: /Users/runner/DolphinMPN-macOS-intel.7z
|
||||
# Zip Artifact
|
||||
- name: Zip Artifact
|
||||
if: matrix.os == 'windows-latest' && startsWith(github.ref, 'refs/tags/')
|
||||
run: 7z a -tzip D:/DolphinMPN-win32 D:/a/Dolphin-MPN/Dolphin-MPN/Binary/x64/*
|
||||
# New Release
|
||||
- name: New Release
|
||||
if: matrix.os == 'windows-latest' && startsWith(github.ref, 'refs/tags/')
|
||||
uses: ncipollo/release-action@v1.12.0
|
||||
with:
|
||||
artifacts: D:/DolphinMPN-win32.7z
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -8,6 +8,8 @@ Source/Core/Common/scmrev.h
|
|||
# Ignore files output by build
|
||||
/[Bb]uild*/
|
||||
/[Bb]inary*/
|
||||
/AppDir*/
|
||||
*.AppImage
|
||||
/obj/
|
||||
# Ignore files output by Android cmake build
|
||||
/Source/Android/app/.cxx/
|
||||
|
|
|
@ -3,6 +3,6 @@ host = https://www.transifex.com
|
|||
|
||||
[o:delroth:p:dolphin-emu:r:emulator]
|
||||
file_filter = Languages/po/<lang>.po
|
||||
source_file = Languages/po/dolphin-emu.pot
|
||||
source_file = Languages/po/dolphin-mpn.pot
|
||||
source_lang = en-US
|
||||
type = PO
|
||||
|
|
101
CMake/FindIconv.cmake
Normal file
101
CMake/FindIconv.cmake
Normal file
|
@ -0,0 +1,101 @@
|
|||
# Based on CMake's FindIconv.cmake
|
||||
# Modified to prefer non-built-in iconv over the built-in one
|
||||
# See https://gitlab.kitware.com/cmake/cmake/-/issues/24695 for details
|
||||
# This file can be deleted once that issue has been closed and the fix has
|
||||
# made it into a satisfactory number of cmake versions. FreeBSD is the only
|
||||
# system known to hit this so far, so "satisfactory" can probably be defined
|
||||
# as "enough that most FreeBSD users have a fixed cmake".
|
||||
|
||||
find_path(Iconv_INCLUDE_DIR
|
||||
NAMES "iconv.h"
|
||||
DOC "iconv include directory")
|
||||
mark_as_advanced(Iconv_INCLUDE_DIR)
|
||||
|
||||
find_library(Iconv_LIBRARY
|
||||
NAMES iconv libiconv
|
||||
NAMES_PER_DIR
|
||||
DOC "iconv library (if not in the C library)")
|
||||
mark_as_advanced(Iconv_LIBRARY)
|
||||
|
||||
# iconv can only be provided in libc on a POSIX system.
|
||||
if(UNIX AND (NOT Iconv_INCLUDE_DIR OR NOT Iconv_LIBRARY))
|
||||
include(CMakePushCheckState)
|
||||
include(CheckCXXSourceCompiles)
|
||||
cmake_push_check_state(RESET)
|
||||
# We always suppress the message here: Otherwise on supported systems
|
||||
# not having iconv in their C library (e.g. those using libiconv)
|
||||
# would always display a confusing "Looking for iconv - not found" message
|
||||
set(CMAKE_FIND_QUIETLY TRUE)
|
||||
# The following code will not work, but it's sufficient to see if it compiles.
|
||||
# Note: libiconv will define the iconv functions as macros, so CheckSymbolExists
|
||||
# will not yield correct results.
|
||||
set(Iconv_IMPLICIT_TEST_CODE
|
||||
"
|
||||
#include <stddef.h>
|
||||
#include <iconv.h>
|
||||
int main() {
|
||||
char *a, *b;
|
||||
size_t i, j;
|
||||
iconv_t ic;
|
||||
ic = iconv_open(\"to\", \"from\");
|
||||
iconv(ic, &a, &i, &b, &j);
|
||||
iconv_close(ic);
|
||||
}
|
||||
"
|
||||
)
|
||||
check_cxx_source_compiles("${Iconv_IMPLICIT_TEST_CODE}" Iconv_IS_BUILT_IN)
|
||||
cmake_pop_check_state()
|
||||
if(Iconv_IS_BUILT_IN)
|
||||
unset(Iconv_INCLUDE_DIR)
|
||||
unset(Iconv_LIBRARY)
|
||||
endif()
|
||||
else()
|
||||
set(Iconv_IS_BUILT_IN FALSE)
|
||||
endif()
|
||||
|
||||
set(_Iconv_REQUIRED_VARS)
|
||||
if(Iconv_IS_BUILT_IN)
|
||||
set(_Iconv_REQUIRED_VARS _Iconv_IS_BUILT_IN_MSG)
|
||||
set(_Iconv_IS_BUILT_IN_MSG "built in to C library")
|
||||
else()
|
||||
set(_Iconv_REQUIRED_VARS Iconv_LIBRARY Iconv_INCLUDE_DIR)
|
||||
endif()
|
||||
|
||||
# NOTE: glibc's iconv.h does not define _LIBICONV_VERSION
|
||||
if(Iconv_INCLUDE_DIR AND EXISTS "${Iconv_INCLUDE_DIR}/iconv.h")
|
||||
file(STRINGS ${Iconv_INCLUDE_DIR}/iconv.h Iconv_VERSION_DEFINE REGEX "_LIBICONV_VERSION (.*)")
|
||||
|
||||
if(Iconv_VERSION_DEFINE MATCHES "(0x[A-Fa-f0-9]+)")
|
||||
set(Iconv_VERSION_NUMBER "${CMAKE_MATCH_1}")
|
||||
# encoding -> version number: (major<<8) + minor
|
||||
math(EXPR Iconv_VERSION_MAJOR "${Iconv_VERSION_NUMBER} >> 8" OUTPUT_FORMAT HEXADECIMAL)
|
||||
math(EXPR Iconv_VERSION_MINOR "${Iconv_VERSION_NUMBER} - (${Iconv_VERSION_MAJOR} << 8)" OUTPUT_FORMAT HEXADECIMAL)
|
||||
|
||||
math(EXPR Iconv_VERSION_MAJOR "${Iconv_VERSION_MAJOR}" OUTPUT_FORMAT DECIMAL)
|
||||
math(EXPR Iconv_VERSION_MINOR "${Iconv_VERSION_MINOR}" OUTPUT_FORMAT DECIMAL)
|
||||
set(Iconv_VERSION "${Iconv_VERSION_MAJOR}.${Iconv_VERSION_MINOR}")
|
||||
endif()
|
||||
|
||||
unset(Iconv_VERSION_DEFINE)
|
||||
unset(Iconv_VERSION_NUMBER)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Iconv
|
||||
REQUIRED_VARS ${_Iconv_REQUIRED_VARS}
|
||||
VERSION_VAR Iconv_VERSION)
|
||||
|
||||
if(Iconv_FOUND)
|
||||
if(Iconv_IS_BUILT_IN)
|
||||
set(Iconv_INCLUDE_DIRS "")
|
||||
set(Iconv_LIBRARIES "")
|
||||
else()
|
||||
set(Iconv_INCLUDE_DIRS "${Iconv_INCLUDE_DIR}")
|
||||
set(Iconv_LIBRARIES "${Iconv_LIBRARY}")
|
||||
endif()
|
||||
if(NOT TARGET Iconv::Iconv)
|
||||
add_library(Iconv::Iconv INTERFACE IMPORTED)
|
||||
set_property(TARGET Iconv::Iconv PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${Iconv_INCLUDE_DIRS}")
|
||||
set_property(TARGET Iconv::Iconv PROPERTY INTERFACE_LINK_LIBRARIES "${Iconv_LIBRARIES}")
|
||||
endif()
|
||||
endif()
|
|
@ -28,7 +28,7 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15.0" CACHE STRING "")
|
|||
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE "CMake/FlagsOverride.cmake")
|
||||
|
||||
project(dolphin-emu)
|
||||
project(dolphin-mpn)
|
||||
|
||||
if (MSVC)
|
||||
if (POLICY CMP0117)
|
||||
|
@ -42,6 +42,31 @@ if (MSVC)
|
|||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
endif()
|
||||
|
||||
set(COMPILER ${CMAKE_CXX_COMPILER_ID})
|
||||
if (COMPILER STREQUAL "GNU")
|
||||
set(COMPILER "GCC") # perfer printing GCC instead of GNU
|
||||
endif()
|
||||
|
||||
# Enforce minimium compiler versions that support the c++20 features we use
|
||||
set (GCC_min_version 10)
|
||||
set (Clang_min_version 12)
|
||||
set (AppleClang_min_version 13.0.0)
|
||||
set (min_xcode_version "13.0") # corrosponding xcode version for AppleClang_min_version
|
||||
set (MSVC_min_version 14.32)
|
||||
set (min_vs_version "2022 17.2.3") # corrosponding Visual Studio version for MSVC_min_version
|
||||
|
||||
message(STATUS "Using ${COMPILER} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
|
||||
if ("-" STREQUAL "${${COMPILER}_min_version}-")
|
||||
message(WARNING "Unknown compiler ${COMPILER}, assuming it is new enough")
|
||||
else()
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${${COMPILER}_min_version})
|
||||
message(FATAL_ERROR "Requires GCC ${GCC_min_version}, Clang ${Clang_min_version},"
|
||||
" AppleClang ${AppleClang_min_version} (Xcode ${min_xcode_version}),"
|
||||
" or MSVC ${MSVC_min_version} (Visual Studio ${min_vs_version}) or higher")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Name of the Dolphin distributor. If you redistribute Dolphin builds (forks,
|
||||
# unofficial builds) please consider identifying your distribution with a
|
||||
# unique name here.
|
||||
|
@ -144,7 +169,7 @@ include(RemoveCompileFlag)
|
|||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
# Set up paths
|
||||
set(datadir ${CMAKE_INSTALL_FULL_DATADIR}/dolphin-emu CACHE PATH "datadir")
|
||||
set(datadir ${CMAKE_INSTALL_FULL_DATADIR}/dolphin-mpn CACHE PATH "datadir")
|
||||
add_definitions(-DDATA_DIR="${datadir}/")
|
||||
|
||||
if(CMAKE_SYSROOT)
|
||||
|
@ -260,12 +285,6 @@ else()
|
|||
" Enable generic build if you really want a JIT-less binary.")
|
||||
endif()
|
||||
|
||||
|
||||
# Enforce minimum GCC version
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
|
||||
message(FATAL_ERROR "Dolphin requires at least GCC 7.0 (found ${CMAKE_CXX_COMPILER_VERSION})")
|
||||
endif()
|
||||
|
||||
if(CMAKE_GENERATOR MATCHES "Ninja")
|
||||
check_and_add_flag(DIAGNOSTICS_COLOR -fdiagnostics-color)
|
||||
elseif(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
|
@ -919,18 +938,15 @@ else()
|
|||
endif()
|
||||
|
||||
if(NOT ANDROID)
|
||||
find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
|
||||
find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
|
||||
find_package(Iconv)
|
||||
endif()
|
||||
|
||||
if (NOT ANDROID AND ICONV_LIBRARIES AND ICONV_INCLUDE_DIR)
|
||||
mark_as_advanced(ICONV_INCLUDE_DIR ICONV_LIBRARIES)
|
||||
if(TARGET Iconv::Iconv)
|
||||
message(STATUS "Using shared iconv")
|
||||
else()
|
||||
check_vendoring_approved(iconv)
|
||||
message(STATUS "Using static iconv from Externals")
|
||||
include_directories(Externals/libiconv-1.14/include)
|
||||
add_subdirectory(Externals/libiconv-1.14)
|
||||
set(ICONV_LIBRARIES iconv)
|
||||
endif()
|
||||
|
||||
if(NOT ANDROID)
|
||||
|
@ -1035,19 +1051,19 @@ if(NOT CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD|Darwin")
|
|||
endif()
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD")
|
||||
# Install the application icon and menu item
|
||||
install(FILES Data/dolphin-emu.png
|
||||
install(FILES Data/dolphin-mpn.png
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/256x256/apps)
|
||||
install(FILES Data/dolphin-emu.desktop
|
||||
install(FILES Data/dolphin-mpn.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
|
||||
# Install manpages
|
||||
install(FILES Data/dolphin-emu.6
|
||||
install(FILES Data/dolphin-mpn.6
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man6)
|
||||
install(FILES Data/dolphin-emu-nogui.6
|
||||
install(FILES Data/dolphin-mpn-nogui.6
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man6)
|
||||
endif()
|
||||
|
||||
# packaging information
|
||||
set(CPACK_PACKAGE_NAME "dolphin-emu")
|
||||
set(CPACK_PACKAGE_NAME "dolphin-mpn")
|
||||
set(CPACK_PACKAGE_VENDOR "Dolphin Team")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${DOLPHIN_VERSION_MAJOR})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${DOLPHIN_VERSION_MINOR})
|
||||
|
|
|
@ -173,7 +173,8 @@ Summary:
|
|||
- [Classes and Structs](#cpp-code-classes-and-structs)
|
||||
|
||||
## <a name="cpp-code-general"></a>General
|
||||
- The codebase currently uses C++17.
|
||||
- The codebase currently uses C++20, though not all compilers support all C++20 features.
|
||||
- See CMakeLists.txt "Enforce minimium compiler versions" for the currently supported compilers.
|
||||
- Use the [nullptr](https://en.cppreference.com/w/cpp/language/nullptr) type over the macro `NULL`.
|
||||
- If a [range-based for loop](https://en.cppreference.com/w/cpp/language/range-for) can be used instead of container iterators, use it.
|
||||
- Obviously, try not to use `goto` unless you have a *really* good reason for it.
|
||||
|
|
Binary file not shown.
BIN
Data/Extras/.nkit.iso to .iso Converter/ConvertToISO.exe
Normal file
BIN
Data/Extras/.nkit.iso to .iso Converter/ConvertToISO.exe
Normal file
Binary file not shown.
BIN
Data/Extras/.nkit.iso to .iso Converter/ConvertToNKit.exe
Normal file
BIN
Data/Extras/.nkit.iso to .iso Converter/ConvertToNKit.exe
Normal file
Binary file not shown.
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE datafile PUBLIC "-//Logiqx//DTD ROM Management Datafile//EN" "http://www.logiqx.com/Dats/datafile.dtd"[]>
|
||||
<datafile>
|
||||
<header>
|
||||
|
||||
<name>Custom Dat</name>
|
||||
|
||||
<description>Created by NKit</description>
|
||||
<category>Games</category>
|
||||
<version>1</version>
|
||||
<date>20180614</date>
|
||||
<author>You</author>
|
||||
<email>-not specified-</email>
|
||||
<homepage>-not specified-</homepage>
|
||||
<url>-not specified-</url>
|
||||
<comment>-not specified-</comment>
|
||||
<clrmamepro />
|
||||
</header>
|
||||
</datafile>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE datafile PUBLIC "-//Logiqx//DTD ROM Management Datafile//EN" "http://www.logiqx.com/Dats/datafile.dtd"[]>
|
||||
<datafile>
|
||||
<header>
|
||||
|
||||
<name>Custom Dat</name>
|
||||
|
||||
<description>Created by NKit</description>
|
||||
<category>Games</category>
|
||||
<version>1</version>
|
||||
<date>20180614</date>
|
||||
<author>You</author>
|
||||
<email>-not specified-</email>
|
||||
<homepage>-not specified-</homepage>
|
||||
<url>-not specified-</url>
|
||||
<comment>-not specified-</comment>
|
||||
<clrmamepro />
|
||||
</header>
|
||||
</datafile>
|
|
@ -0,0 +1 @@
|
|||
https://www.gametdb.com/wiitdb.txt
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE datafile PUBLIC "-//Logiqx//DTD ROM Management Datafile//EN" "http://www.logiqx.com/Dats/datafile.dtd"[]>
|
||||
<datafile>
|
||||
<header>
|
||||
|
||||
<name> REPLACE THIS FILE WITH THE WII REDUMP.DAT </name>
|
||||
|
||||
<description>Created by NKit</description>
|
||||
<category>Games</category>
|
||||
<version>1</version>
|
||||
<date>20180614</date>
|
||||
<author>You</author>
|
||||
<email>-not specified-</email>
|
||||
<homepage>-not specified-</homepage>
|
||||
<url>-not specified-</url>
|
||||
<comment>-not specified-</comment>
|
||||
<clrmamepro />
|
||||
</header>
|
||||
</datafile>
|
BIN
Data/Extras/.nkit.iso to .iso Converter/NKit.dll
Normal file
BIN
Data/Extras/.nkit.iso to .iso Converter/NKit.dll
Normal file
Binary file not shown.
213
Data/Extras/.nkit.iso to .iso Converter/NKit.dll.config
Normal file
213
Data/Extras/.nkit.iso to .iso Converter/NKit.dll.config
Normal file
File diff suppressed because one or more lines are too long
BIN
Data/Extras/.nkit.iso to .iso Converter/NKitExtractionApp.exe
Normal file
BIN
Data/Extras/.nkit.iso to .iso Converter/NKitExtractionApp.exe
Normal file
Binary file not shown.
BIN
Data/Extras/.nkit.iso to .iso Converter/NKitProcessingApp.exe
Normal file
BIN
Data/Extras/.nkit.iso to .iso Converter/NKitProcessingApp.exe
Normal file
Binary file not shown.
84
Data/Extras/.nkit.iso to .iso Converter/Readme.txt
Normal file
84
Data/Extras/.nkit.iso to .iso Converter/Readme.txt
Normal file
|
@ -0,0 +1,84 @@
|
|||
- - - - - -__- - -.- - - -.- - -.- - -.- - \|/.- - -.- - -.-__- -.- - - -
|
||||
. . ___/ |__ . __ . . . . . --O--. __ . ___/ | _____ . .
|
||||
\__ + \ ___/ |__ __ . __ /|\___/ |__ \__ |/ + / .
|
||||
. . / | + \\__ \ ___/ |__.___/ |__ \__ \ ./ | / .
|
||||
. /+ | \/ _| \\__ \\__ \ / | \/ + + /_ .
|
||||
. / |+ \ \_ \/ | \/ | \/ | \ | \ . .
|
||||
. / + | + \_ | \_ | \_ | \_ | \_+ | + \ .
|
||||
. _/ + |_______/ |______/ |_____/ ______/ _______/ | \_ .
|
||||
.\ + |==\______|===\_____|==\_____|==\______|==\______|+ + /
|
||||
- - \_______| - - - - - - - Proudly Presents - - - - - - - |_______/ - -
|
||||
|
||||
NKit - Tools to Recover / Preserve Wii and GameCube Disc Images
|
||||
|
||||
|
||||
.
|
||||
. . .
|
||||
|
||||
Overview
|
||||
----------------------------------------------------------------------------
|
||||
NKit is a Nintendo ToolKit that can Recover and Preserve Wii and GameCube
|
||||
disc images
|
||||
|
||||
Recovery is the ability to rebuild source images to match the known good
|
||||
images verified by Redump
|
||||
|
||||
Preserve is the ability to shrink any image and convert it back to the
|
||||
source iso
|
||||
|
||||
NKit can convert to ISO and NKit format. The NKit format is designed to
|
||||
shrink an image to it's smallest while ensuring it can be restored back to
|
||||
the original source data. NKit images are also playable by Dolphin
|
||||
|
||||
Read the Docs :) - https://wiki.gbatemp.net/wiki/NKit
|
||||
|
||||
.
|
||||
. . .
|
||||
Features
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
- Recovery and Preservation of GameCube and Wii images
|
||||
- NKit Format (smallest format, Dolphin compatible, GC is h/w compatible)
|
||||
- GC NKit format aligns audio and tgc files to 32k for playability
|
||||
- Wii NKit format removes hashes and encryption (Dolphin Compatible)
|
||||
- Reusable library for use in other projects
|
||||
- Test Mode
|
||||
- Summary log of all conversions
|
||||
- Rename images that match Dat file entries to a configurable mask
|
||||
- Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)
|
||||
- Scrubbed and Hacked preservation support
|
||||
|
||||
Formats
|
||||
- GCZ support
|
||||
- ISO.DEC read support
|
||||
- WBFS read support
|
||||
- ISO support
|
||||
- RVT-R Wii ISO read support
|
||||
- NKit Format support (smallest format and Dolphin compatible)
|
||||
- Read the above images from Rar/Zip/7zip etc
|
||||
|
||||
Recovery Abilities
|
||||
- Insert missing Wii Update (inc rare extra data), Channel / VC partitions
|
||||
- Replace Brickblocked Update partitions
|
||||
- Auto fixes modified disc headers (where the Data header remains intact)
|
||||
- Fixes rare corrupt Wii partition table (caused by WBM)
|
||||
- Fixes scrubbed trailing file 0's
|
||||
- Fixes truncated Wii images (where the Data partition is intact)
|
||||
- Fixes slightly overdumped images (from descramble tools)
|
||||
- Fixes Wii Data partitions moved before 0xF800000 to save space
|
||||
- Fixes compacted GC images
|
||||
- Fixes moved and reordered GC files
|
||||
- Fixes modified GC headers (inc. title, region hacks)
|
||||
- Fixes mod chip modified GC apploaders
|
||||
- Fixes GC images with non conformant junk
|
||||
- Fixes modified Wii region and ratings
|
||||
- Support for GC images with junk not generated with the image ID
|
||||
|
||||
.
|
||||
. . .
|
||||
Requirements
|
||||
- Windows | Linux | Mac
|
||||
- .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)
|
||||
- Wine for Apps under Linux and Mac
|
||||
.
|
||||
. . .
|
BIN
Data/Extras/.nkit.iso to .iso Converter/RecoverToISO.exe
Normal file
BIN
Data/Extras/.nkit.iso to .iso Converter/RecoverToISO.exe
Normal file
Binary file not shown.
BIN
Data/Extras/.nkit.iso to .iso Converter/RecoverToNKit.exe
Normal file
BIN
Data/Extras/.nkit.iso to .iso Converter/RecoverToNKit.exe
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue