mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-05-18 17:12:39 +00:00
Merge branch 'master' of https://github.com/dolphin-emu/dolphin into dolphin-emu-master
This commit is contained in:
commit
0a2d2c624b
511 changed files with 74722 additions and 58925 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -6,6 +6,8 @@ Thumbs.db
|
||||||
Externals/mGBA/version.c
|
Externals/mGBA/version.c
|
||||||
Source/Core/Common/scmrev.h
|
Source/Core/Common/scmrev.h
|
||||||
# Ignore files output by build
|
# Ignore files output by build
|
||||||
|
/cmake-build-debug
|
||||||
|
/cmake-build-release
|
||||||
/[Bb]uild*/
|
/[Bb]uild*/
|
||||||
/[Bb]inary*/
|
/[Bb]inary*/
|
||||||
/AppDir*/
|
/AppDir*/
|
||||||
|
|
|
@ -1,18 +1,20 @@
|
||||||
include(RemoveCompileFlag)
|
include(RemoveCompileFlag)
|
||||||
|
|
||||||
macro(dolphin_disable_warnings_msvc _target)
|
macro(dolphin_disable_warnings _target)
|
||||||
|
get_target_property(_target_cxx_flags ${_target} COMPILE_OPTIONS)
|
||||||
|
if (_target_cxx_flags)
|
||||||
|
set(new_flags "")
|
||||||
|
foreach(flag IN LISTS _target_cxx_flags)
|
||||||
|
# all warning flags start with "/W" or "/w" or "-W" or "-w"
|
||||||
|
if (NOT "${flag}" MATCHES "^[-/][Ww]")
|
||||||
|
list(APPEND new_flags "${flag}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
set_target_properties(${_target} PROPERTIES COMPILE_OPTIONS "${new_flags}")
|
||||||
|
endif()
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
get_target_property(_target_cxx_flags ${_target} COMPILE_OPTIONS)
|
|
||||||
if (_target_cxx_flags)
|
|
||||||
set(new_flags "")
|
|
||||||
foreach(flag IN LISTS _target_cxx_flags)
|
|
||||||
# all warning flags start with "/W" or "/w" or "-W" or "-w"
|
|
||||||
if (NOT "${flag}" MATCHES "^[-/][Ww]")
|
|
||||||
list(APPEND new_flags "${flag}")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
set_target_properties(${_target} PROPERTIES COMPILE_OPTIONS "${new_flags}")
|
|
||||||
endif()
|
|
||||||
target_compile_options(${_target} PRIVATE "/W0")
|
target_compile_options(${_target} PRIVATE "/W0")
|
||||||
|
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||||
|
target_compile_options(${_target} PRIVATE "-w")
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
|
@ -18,6 +18,10 @@ if(GIT_FOUND)
|
||||||
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
||||||
OUTPUT_VARIABLE DOLPHIN_WC_BRANCH
|
OUTPUT_VARIABLE DOLPHIN_WC_BRANCH
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
# defines DOLPHIN_WC_COMMITS_AHEAD_MASTER
|
||||||
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD ^master
|
||||||
|
OUTPUT_VARIABLE DOLPHIN_WC_COMMITS_AHEAD_MASTER
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# version number
|
# version number
|
||||||
|
@ -35,12 +39,7 @@ if(NOT DOLPHIN_WC_REVISION)
|
||||||
set(DOLPHIN_WC_DESCRIBE "${DOLPHIN_VERSION_MAJOR}.${DOLPHIN_VERSION_MINOR}")
|
set(DOLPHIN_WC_DESCRIBE "${DOLPHIN_VERSION_MAJOR}.${DOLPHIN_VERSION_MINOR}")
|
||||||
set(DOLPHIN_WC_REVISION "${DOLPHIN_WC_DESCRIBE} (no further info)")
|
set(DOLPHIN_WC_REVISION "${DOLPHIN_WC_DESCRIBE} (no further info)")
|
||||||
set(DOLPHIN_WC_BRANCH "master")
|
set(DOLPHIN_WC_BRANCH "master")
|
||||||
endif()
|
set(DOLPHIN_WC_COMMITS_AHEAD_MASTER 0)
|
||||||
|
|
||||||
if(DOLPHIN_WC_BRANCH STREQUAL "master" OR DOLPHIN_WC_BRANCH STREQUAL "stable")
|
|
||||||
set(DOLPHIN_WC_IS_STABLE "1")
|
|
||||||
else()
|
|
||||||
set(DOLPHIN_WC_IS_STABLE "0")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
|
|
|
@ -402,7 +402,7 @@ endif()
|
||||||
# All commands and submodule commands also need to see these
|
# All commands and submodule commands also need to see these
|
||||||
# changes, so just setting them in the project scope via
|
# changes, so just setting them in the project scope via
|
||||||
# include_directories and link_directories is not sufficient
|
# include_directories and link_directories is not sufficient
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|NetBSD")
|
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||||
set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};/usr/local")
|
set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};/usr/local")
|
||||||
set(CMAKE_REQUIRED_INCLUDES "/usr/local/include")
|
set(CMAKE_REQUIRED_INCLUDES "/usr/local/include")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
|
||||||
|
@ -504,14 +504,14 @@ if (OPENGL_GL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_X11)
|
if(ENABLE_X11)
|
||||||
find_package(X11)
|
pkg_check_modules(X11 x11 IMPORTED_TARGET)
|
||||||
if(X11_FOUND)
|
if(X11_FOUND)
|
||||||
add_definitions(-DHAVE_X11=1)
|
add_definitions(-DHAVE_X11=1)
|
||||||
check_lib(XRANDR xrandr Xrandr)
|
pkg_check_modules(XRANDR xrandr IMPORTED_TARGET)
|
||||||
if(XRANDR_FOUND)
|
if(XRANDR_FOUND)
|
||||||
add_definitions(-DHAVE_XRANDR=1)
|
add_definitions(-DHAVE_XRANDR=1)
|
||||||
endif()
|
endif()
|
||||||
pkg_check_modules(X11_INPUT REQUIRED xi>=1.5.0)
|
pkg_check_modules(X11_INPUT REQUIRED xi>=1.5.0 IMPORTED_TARGET)
|
||||||
message(STATUS "X11 support enabled")
|
message(STATUS "X11 support enabled")
|
||||||
else()
|
else()
|
||||||
message(WARNING "X11 support enabled but not found. This build will not support X11.")
|
message(WARNING "X11 support enabled but not found. This build will not support X11.")
|
||||||
|
@ -674,6 +674,8 @@ dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Ex
|
||||||
|
|
||||||
dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals/zlib-ng)
|
dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals/zlib-ng)
|
||||||
|
|
||||||
|
# https://github.com/zlib-ng/minizip-ng/commit/6c5f265a55f1a12a7a016cd2962feff91cff5d2e
|
||||||
|
add_definitions(-DMZ_COMPAT_VERSION=110) # This macro is for forwards compatibility with 4.0.4+
|
||||||
dolphin_find_optional_system_library_pkgconfig(MINIZIP minizip>=3.0.0 minizip::minizip Externals/minizip)
|
dolphin_find_optional_system_library_pkgconfig(MINIZIP minizip>=3.0.0 minizip::minizip Externals/minizip)
|
||||||
|
|
||||||
dolphin_find_optional_system_library(LZO Externals/LZO)
|
dolphin_find_optional_system_library(LZO Externals/LZO)
|
||||||
|
@ -800,15 +802,16 @@ include_directories("${PROJECT_BINARY_DIR}/Source/Core")
|
||||||
# Unit testing.
|
# Unit testing.
|
||||||
#
|
#
|
||||||
if(ENABLE_TESTS)
|
if(ENABLE_TESTS)
|
||||||
find_package(GTest)
|
dolphin_find_optional_system_library_pkgconfig(GTEST
|
||||||
if (GTEST_FOUND)
|
gtest gtest::gtest Externals/gtest
|
||||||
message(STATUS "Using the system gtest")
|
)
|
||||||
include_directories(${GTEST_INCLUDE_DIRS})
|
# dolphin_find_optional_system_library_pkgconfig() doesn't add an alias if it
|
||||||
else()
|
# uses the bundled libraries, so we add one ourselves.
|
||||||
message(STATUS "Using static gtest from Externals")
|
if (NOT TARGET gtest::gtest)
|
||||||
add_subdirectory(Externals/gtest EXCLUDE_FROM_ALL)
|
add_library(gtest::gtest ALIAS gtest)
|
||||||
endif()
|
endif()
|
||||||
# Force gtest to link the C runtime dynamically on Windows in order to avoid runtime mismatches.
|
# Force gtest to link the C runtime dynamically on Windows in order to avoid
|
||||||
|
# runtime mismatches.
|
||||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||||
else()
|
else()
|
||||||
message(STATUS "Unit tests are disabled")
|
message(STATUS "Unit tests are disabled")
|
||||||
|
|
|
@ -17,3 +17,7 @@
|
||||||
# for the "Pitfall!" and "Lost Cavern" Atari 2600 games to render correctly.
|
# for the "Pitfall!" and "Lost Cavern" Atari 2600 games to render correctly.
|
||||||
# Otherwise the retro games appear to be stuttering.
|
# Otherwise the retro games appear to be stuttering.
|
||||||
SafeTextureCacheColorSamples = 2048
|
SafeTextureCacheColorSamples = 2048
|
||||||
|
|
||||||
|
# Fixes cutscenes playing in a different aspect ratio and gameplay flipping back and forth between 4:3 and 16:9.
|
||||||
|
WidescreenHeuristicStandardRatio = 1.17
|
||||||
|
WidescreenHeuristicWidescreenRatio = 1.56
|
||||||
|
|
|
@ -12,6 +12,3 @@ CPUThread = False
|
||||||
|
|
||||||
[ActionReplay]
|
[ActionReplay]
|
||||||
# Add action replay cheats here.
|
# Add action replay cheats here.
|
||||||
|
|
||||||
[Video_Hacks]
|
|
||||||
BBoxEnable = True
|
|
||||||
|
|
4
Data/Sys/GameSettings/REG.ini
Normal file
4
Data/Sys/GameSettings/REG.ini
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# REGE36, REGP36 - Emergency Mayhem
|
||||||
|
[Core]
|
||||||
|
# Dual core causes hang on loading
|
||||||
|
CPUThread = False
|
0
Data/Sys/Load/GraphicMods/Skylanders Giants/SKY.txt
Normal file
0
Data/Sys/Load/GraphicMods/Skylanders Giants/SKY.txt
Normal file
19
Data/Sys/Load/GraphicMods/Skylanders Giants/metadata.json
Normal file
19
Data/Sys/Load/GraphicMods/Skylanders Giants/metadata.json
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"meta":
|
||||||
|
{
|
||||||
|
"title": "Bloom Texture Definitions",
|
||||||
|
"author": "SuperSamus"
|
||||||
|
},
|
||||||
|
"groups":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Bloom",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"type": "efb",
|
||||||
|
"texture_filename": "efb1_n000007_80x57_6"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
0
Data/Sys/Load/GraphicMods/Skylanders Trap Team/SK8.txt
Normal file
0
Data/Sys/Load/GraphicMods/Skylanders Trap Team/SK8.txt
Normal file
19
Data/Sys/Load/GraphicMods/Skylanders Trap Team/metadata.json
Normal file
19
Data/Sys/Load/GraphicMods/Skylanders Trap Team/metadata.json
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"meta":
|
||||||
|
{
|
||||||
|
"title": "Bloom Texture Definitions",
|
||||||
|
"author": "SuperSamus"
|
||||||
|
},
|
||||||
|
"groups":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Bloom",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"type": "efb",
|
||||||
|
"texture_filename": "efb1_n000005_320x228_6"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -7,6 +7,19 @@ Buttons/2 = `2`
|
||||||
Buttons/- = `-`
|
Buttons/- = `-`
|
||||||
Buttons/+ = `+`
|
Buttons/+ = `+`
|
||||||
Buttons/Home = `HOME`
|
Buttons/Home = `HOME`
|
||||||
|
IRPassthrough/Enabled = False
|
||||||
|
IRPassthrough/Object 1 X = `IR Object 1 X`
|
||||||
|
IRPassthrough/Object 1 Y = `IR Object 1 Y`
|
||||||
|
IRPassthrough/Object 1 Size = `IR Object 1 Size`
|
||||||
|
IRPassthrough/Object 2 X = `IR Object 2 X`
|
||||||
|
IRPassthrough/Object 2 Y = `IR Object 2 Y`
|
||||||
|
IRPassthrough/Object 2 Size = `IR Object 2 Size`
|
||||||
|
IRPassthrough/Object 3 X = `IR Object 3 X`
|
||||||
|
IRPassthrough/Object 3 Y = `IR Object 3 Y`
|
||||||
|
IRPassthrough/Object 3 Size = `IR Object 3 Size`
|
||||||
|
IRPassthrough/Object 4 X = `IR Object 4 X`
|
||||||
|
IRPassthrough/Object 4 Y = `IR Object 4 Y`
|
||||||
|
IRPassthrough/Object 4 Size = `IR Object 4 Size`
|
||||||
IMUAccelerometer/Up = `Accel Up`
|
IMUAccelerometer/Up = `Accel Up`
|
||||||
IMUAccelerometer/Down = `Accel Down`
|
IMUAccelerometer/Down = `Accel Down`
|
||||||
IMUAccelerometer/Left = `Accel Left`
|
IMUAccelerometer/Left = `Accel Left`
|
||||||
|
|
129
Data/Sys/Shaders/PerceptualHDR.glsl
Normal file
129
Data/Sys/Shaders/PerceptualHDR.glsl
Normal file
|
@ -0,0 +1,129 @@
|
||||||
|
/*
|
||||||
|
[configuration]
|
||||||
|
|
||||||
|
[OptionRangeFloat]
|
||||||
|
GUIName = Amplificiation
|
||||||
|
OptionName = AMPLIFICATION
|
||||||
|
MinValue = 1.0
|
||||||
|
MaxValue = 6.0
|
||||||
|
StepAmount = 0.25
|
||||||
|
DefaultValue = 2.5
|
||||||
|
|
||||||
|
[/configuration]
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ICtCP Colorspace as defined by Dolby here:
|
||||||
|
// https://professional.dolby.com/siteassets/pdfs/ictcp_dolbywhitepaper_v071.pdf
|
||||||
|
|
||||||
|
/***** Transfer Function *****/
|
||||||
|
|
||||||
|
const float a = 0.17883277;
|
||||||
|
const float b = 1.0 - 4.0 * a;
|
||||||
|
const float c = 0.5 - a * log(4.0 * a);
|
||||||
|
|
||||||
|
float HLG_f(float x)
|
||||||
|
{
|
||||||
|
if (x < 0.0) {
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (x < 1.0 / 12.0) {
|
||||||
|
return sqrt(3.0 * x);
|
||||||
|
}
|
||||||
|
|
||||||
|
return a * log(12.0 * x - b) + c;
|
||||||
|
}
|
||||||
|
|
||||||
|
float HLG_inv_f(float x)
|
||||||
|
{
|
||||||
|
if (x < 0.0) {
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (x < 1.0 / 2.0) {
|
||||||
|
return x * x / 3.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (exp((x - c) / a) + b) / 12.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 HLG(float4 lms)
|
||||||
|
{
|
||||||
|
return float4(HLG_f(lms.x), HLG_f(lms.y), HLG_f(lms.z), lms.w);
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 HLG_inv(float4 lms)
|
||||||
|
{
|
||||||
|
return float4(HLG_inv_f(lms.x), HLG_inv_f(lms.y), HLG_inv_f(lms.z), lms.w);
|
||||||
|
}
|
||||||
|
|
||||||
|
/***** Linear <--> ICtCp *****/
|
||||||
|
|
||||||
|
const mat4 RGBtoLMS = mat4(
|
||||||
|
1688.0, 683.0, 99.0, 0.0,
|
||||||
|
2146.0, 2951.0, 309.0, 0.0,
|
||||||
|
262.0, 462.0, 3688.0, 0.0,
|
||||||
|
0.0, 0.0, 0.0, 4096.0)
|
||||||
|
/ 4096.0;
|
||||||
|
|
||||||
|
const mat4 LMStoICtCp = mat4(
|
||||||
|
+2048.0, +3625.0, +9500.0, 0.0,
|
||||||
|
+2048.0, -7465.0, -9212.0, 0.0,
|
||||||
|
+0.0, +3840.0, -288.0, 0.0,
|
||||||
|
+0.0, +0.0, +0.0, 4096.0)
|
||||||
|
/ 4096.0;
|
||||||
|
|
||||||
|
float4 LinearRGBToICtCP(float4 c)
|
||||||
|
{
|
||||||
|
return LMStoICtCp * HLG(RGBtoLMS * c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/***** ICtCp <--> Linear *****/
|
||||||
|
|
||||||
|
mat4 ICtCptoLMS = inverse(LMStoICtCp);
|
||||||
|
mat4 LMStoRGB = inverse(RGBtoLMS);
|
||||||
|
|
||||||
|
float4 ICtCpToLinearRGB(float4 c)
|
||||||
|
{
|
||||||
|
return LMStoRGB * HLG_inv(ICtCptoLMS * c);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
float4 color = Sample();
|
||||||
|
|
||||||
|
// Nothing to do here, we are in SDR
|
||||||
|
if (!OptionEnabled(hdr_output) || !OptionEnabled(linear_space_output)) {
|
||||||
|
SetOutput(color);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Renormalize Color to be in [0.0 - 1.0] SDR Space. We will revert this later.
|
||||||
|
const float hdr_paper_white = hdr_paper_white_nits / hdr_sdr_white_nits;
|
||||||
|
color.rgb /= hdr_paper_white;
|
||||||
|
|
||||||
|
// Convert Color to Perceptual Color Space. This will allow us to do perceptual
|
||||||
|
// scaling while also being able to use the luminance channel.
|
||||||
|
float4 ictcp_color = LinearRGBToICtCP(color);
|
||||||
|
|
||||||
|
// Scale the color in perceptual space depending on the percieved luminance.
|
||||||
|
//
|
||||||
|
// At low luminances, ~0.0, pow(AMPLIFICATION, ~0.0) ~= 1.0, so the
|
||||||
|
// color will appear to be unchanged. This is important as we don't want to
|
||||||
|
// over expose dark colors which would not have otherwise been seen.
|
||||||
|
//
|
||||||
|
// At high luminances, ~1.0, pow(AMPLIFICATION, ~1.0) ~= AMPLIFICATION,
|
||||||
|
// which is equivilant to scaling the color by AMPLIFICATION. This is
|
||||||
|
// important as we want to get the most out of the display, and we want to
|
||||||
|
// get bright colors to hit their target brightness.
|
||||||
|
//
|
||||||
|
// For more information, see this desmos demonstrating this scaling process:
|
||||||
|
// https://www.desmos.com/calculator/syjyrjsj5c
|
||||||
|
float exposure = length(ictcp_color.xyz);
|
||||||
|
ictcp_color *= pow(HLG_f(AMPLIFICATION), exposure);
|
||||||
|
|
||||||
|
// Convert back to Linear RGB and output the color to the display.
|
||||||
|
// We use hdr_paper_white to renormalize the color to the comfortable
|
||||||
|
// SDR viewing range.
|
||||||
|
SetOutput(hdr_paper_white * ICtCpToLinearRGB(ictcp_color));
|
||||||
|
}
|
File diff suppressed because it is too large
Load diff
2
Externals/Bochs_disasm/CMakeLists.txt
vendored
2
Externals/Bochs_disasm/CMakeLists.txt
vendored
|
@ -4,7 +4,7 @@ add_library(bdisasm STATIC
|
||||||
resolve.cc
|
resolve.cc
|
||||||
syntax.cc
|
syntax.cc
|
||||||
)
|
)
|
||||||
dolphin_disable_warnings_msvc(bdisasm)
|
dolphin_disable_warnings(bdisasm)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
target_sources(bdisasm
|
target_sources(bdisasm
|
||||||
|
|
2
Externals/FreeSurround/CMakeLists.txt
vendored
2
Externals/FreeSurround/CMakeLists.txt
vendored
|
@ -12,6 +12,6 @@ set(SRCS
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(FreeSurround STATIC ${SRCS})
|
add_library(FreeSurround STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(FreeSurround)
|
dolphin_disable_warnings(FreeSurround)
|
||||||
target_include_directories(FreeSurround PUBLIC include)
|
target_include_directories(FreeSurround PUBLIC include)
|
||||||
target_compile_options(FreeSurround PRIVATE -w)
|
target_compile_options(FreeSurround PRIVATE -w)
|
||||||
|
|
2
Externals/LZO/CMakeLists.txt
vendored
2
Externals/LZO/CMakeLists.txt
vendored
|
@ -1,7 +1,7 @@
|
||||||
add_library(lzo2 STATIC
|
add_library(lzo2 STATIC
|
||||||
minilzo.c
|
minilzo.c
|
||||||
)
|
)
|
||||||
dolphin_disable_warnings_msvc(lzo2)
|
dolphin_disable_warnings(lzo2)
|
||||||
|
|
||||||
target_include_directories(lzo2
|
target_include_directories(lzo2
|
||||||
PUBLIC
|
PUBLIC
|
||||||
|
|
4
Externals/SDL/CMakeLists.txt
vendored
4
Externals/SDL/CMakeLists.txt
vendored
|
@ -10,8 +10,8 @@ set(SDL_TEST_ENABLED_BY_DEFAULT OFF)
|
||||||
set(OPT_DEF_LIBC ON)
|
set(OPT_DEF_LIBC ON)
|
||||||
add_subdirectory(SDL)
|
add_subdirectory(SDL)
|
||||||
if (TARGET SDL2)
|
if (TARGET SDL2)
|
||||||
dolphin_disable_warnings_msvc(SDL2)
|
dolphin_disable_warnings(SDL2)
|
||||||
endif()
|
endif()
|
||||||
if (TARGET SDL2-static)
|
if (TARGET SDL2-static)
|
||||||
dolphin_disable_warnings_msvc(SDL2-static)
|
dolphin_disable_warnings(SDL2-static)
|
||||||
endif()
|
endif()
|
||||||
|
|
4
Externals/SFML/CMakeLists.txt
vendored
4
Externals/SFML/CMakeLists.txt
vendored
|
@ -27,5 +27,5 @@ target_compile_definitions(sfml-system PUBLIC SFML_STATIC)
|
||||||
target_include_directories(sfml-system PUBLIC include PRIVATE src)
|
target_include_directories(sfml-system PUBLIC include PRIVATE src)
|
||||||
target_include_directories(sfml-network PUBLIC include PRIVATE src)
|
target_include_directories(sfml-network PUBLIC include PRIVATE src)
|
||||||
target_link_libraries(sfml-network PUBLIC sfml-system)
|
target_link_libraries(sfml-network PUBLIC sfml-system)
|
||||||
dolphin_disable_warnings_msvc(sfml-network)
|
dolphin_disable_warnings(sfml-network)
|
||||||
dolphin_disable_warnings_msvc(sfml-system)
|
dolphin_disable_warnings(sfml-system)
|
||||||
|
|
2
Externals/bzip2/CMakeLists.txt
vendored
2
Externals/bzip2/CMakeLists.txt
vendored
|
@ -70,7 +70,7 @@ set(BZIP2_SRCS
|
||||||
|
|
||||||
add_library(bzip2 STATIC ${BZIP2_SRCS} ${BZIP2_PUBLIC_HDRS} ${BZIP2_PRIVATE_HDRS})
|
add_library(bzip2 STATIC ${BZIP2_SRCS} ${BZIP2_PUBLIC_HDRS} ${BZIP2_PRIVATE_HDRS})
|
||||||
add_library(BZip2::BZip2 ALIAS bzip2)
|
add_library(BZip2::BZip2 ALIAS bzip2)
|
||||||
dolphin_disable_warnings_msvc(bzip2)
|
dolphin_disable_warnings(bzip2)
|
||||||
|
|
||||||
target_include_directories(bzip2
|
target_include_directories(bzip2
|
||||||
PUBLIC
|
PUBLIC
|
||||||
|
|
2
Externals/cpp-optparse/CMakeLists.txt
vendored
2
Externals/cpp-optparse/CMakeLists.txt
vendored
|
@ -3,5 +3,5 @@ check_and_add_flag(CXX11 -std=c++11)
|
||||||
set(SRCS OptionParser.cpp OptionParser.h)
|
set(SRCS OptionParser.cpp OptionParser.h)
|
||||||
|
|
||||||
add_library(cpp-optparse STATIC ${SRCS})
|
add_library(cpp-optparse STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(cpp-optparse)
|
dolphin_disable_warnings(cpp-optparse)
|
||||||
target_include_directories(cpp-optparse PUBLIC .)
|
target_include_directories(cpp-optparse PUBLIC .)
|
||||||
|
|
4
Externals/cubeb/CMakeLists.txt
vendored
4
Externals/cubeb/CMakeLists.txt
vendored
|
@ -69,7 +69,7 @@ add_library(cubeb
|
||||||
cubeb/src/cubeb_strings.c
|
cubeb/src/cubeb_strings.c
|
||||||
cubeb/src/cubeb_utils.cpp
|
cubeb/src/cubeb_utils.cpp
|
||||||
)
|
)
|
||||||
dolphin_disable_warnings_msvc(cubeb)
|
dolphin_disable_warnings(cubeb)
|
||||||
target_include_directories(cubeb
|
target_include_directories(cubeb
|
||||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cubeb/include> $<INSTALL_INTERFACE:include>
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cubeb/include> $<INSTALL_INTERFACE:include>
|
||||||
)
|
)
|
||||||
|
@ -127,7 +127,7 @@ endif()
|
||||||
|
|
||||||
if(NOT TARGET speex)
|
if(NOT TARGET speex)
|
||||||
add_library(speex OBJECT cubeb/subprojects/speex/resample.c)
|
add_library(speex OBJECT cubeb/subprojects/speex/resample.c)
|
||||||
dolphin_disable_warnings_msvc(speex)
|
dolphin_disable_warnings(speex)
|
||||||
set_target_properties(speex PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
|
set_target_properties(speex PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
|
||||||
target_include_directories(speex INTERFACE cubeb/subprojects)
|
target_include_directories(speex INTERFACE cubeb/subprojects)
|
||||||
target_compile_definitions(speex PUBLIC
|
target_compile_definitions(speex PUBLIC
|
||||||
|
|
2
Externals/curl/CMakeLists.txt
vendored
2
Externals/curl/CMakeLists.txt
vendored
|
@ -45,7 +45,7 @@ if(NOT CURL_CA_PATH_SET)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
dolphin_disable_warnings_msvc(curl)
|
dolphin_disable_warnings(curl)
|
||||||
target_link_libraries(curl ${CURL_LIBS})
|
target_link_libraries(curl ${CURL_LIBS})
|
||||||
target_include_directories(curl PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/curl/include")
|
target_include_directories(curl PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/curl/include")
|
||||||
target_compile_definitions(curl PRIVATE "BUILDING_LIBCURL=1")
|
target_compile_definitions(curl PRIVATE "BUILDING_LIBCURL=1")
|
||||||
|
|
2
Externals/discord-rpc/src/CMakeLists.txt
vendored
2
Externals/discord-rpc/src/CMakeLists.txt
vendored
|
@ -31,7 +31,7 @@ if(WIN32)
|
||||||
add_definitions(-DDISCORD_WINDOWS)
|
add_definitions(-DDISCORD_WINDOWS)
|
||||||
set(BASE_RPC_SRC ${BASE_RPC_SRC} connection_win.cpp discord_register_win.cpp)
|
set(BASE_RPC_SRC ${BASE_RPC_SRC} connection_win.cpp discord_register_win.cpp)
|
||||||
add_library(discord-rpc ${BASE_RPC_SRC})
|
add_library(discord-rpc ${BASE_RPC_SRC})
|
||||||
dolphin_disable_warnings_msvc(discord-rpc)
|
dolphin_disable_warnings(discord-rpc)
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
if(USE_STATIC_CRT)
|
if(USE_STATIC_CRT)
|
||||||
foreach(CompilerFlag
|
foreach(CompilerFlag
|
||||||
|
|
2
Externals/ed25519/CMakeLists.txt
vendored
2
Externals/ed25519/CMakeLists.txt
vendored
|
@ -11,4 +11,4 @@ add_library(ed25519
|
||||||
sc.c
|
sc.c
|
||||||
sha512.c
|
sha512.c
|
||||||
verify.c)
|
verify.c)
|
||||||
dolphin_disable_warnings_msvc(ed25519)
|
dolphin_disable_warnings(ed25519)
|
||||||
|
|
2
Externals/enet/CMakeLists.txt
vendored
2
Externals/enet/CMakeLists.txt
vendored
|
@ -92,7 +92,7 @@ add_library(enet STATIC
|
||||||
)
|
)
|
||||||
target_include_directories(enet PUBLIC enet/include)
|
target_include_directories(enet PUBLIC enet/include)
|
||||||
|
|
||||||
dolphin_disable_warnings_msvc(enet)
|
dolphin_disable_warnings(enet)
|
||||||
add_library(enet::enet ALIAS enet)
|
add_library(enet::enet ALIAS enet)
|
||||||
|
|
||||||
if (MINGW)
|
if (MINGW)
|
||||||
|
|
2
Externals/fmt/CMakeLists.txt
vendored
2
Externals/fmt/CMakeLists.txt
vendored
|
@ -1,2 +1,2 @@
|
||||||
add_subdirectory(fmt)
|
add_subdirectory(fmt)
|
||||||
dolphin_disable_warnings_msvc(fmt)
|
dolphin_disable_warnings(fmt)
|
||||||
|
|
2
Externals/glslang/CMakeLists.txt
vendored
2
Externals/glslang/CMakeLists.txt
vendored
|
@ -73,7 +73,7 @@ endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(glslang STATIC ${SRCS})
|
add_library(glslang STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(glslang)
|
dolphin_disable_warnings(glslang)
|
||||||
|
|
||||||
target_include_directories(glslang
|
target_include_directories(glslang
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
|
2
Externals/hidapi/CMakeLists.txt
vendored
2
Externals/hidapi/CMakeLists.txt
vendored
|
@ -1,7 +1,7 @@
|
||||||
project(hidapi)
|
project(hidapi)
|
||||||
|
|
||||||
add_library(hidapi STATIC hidapi-src/hidapi/hidapi.h)
|
add_library(hidapi STATIC hidapi-src/hidapi/hidapi.h)
|
||||||
dolphin_disable_warnings_msvc(hidapi)
|
dolphin_disable_warnings(hidapi)
|
||||||
target_include_directories(hidapi PUBLIC hidapi-src/hidapi)
|
target_include_directories(hidapi PUBLIC hidapi-src/hidapi)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
|
2
Externals/imgui/CMakeLists.txt
vendored
2
Externals/imgui/CMakeLists.txt
vendored
|
@ -13,7 +13,7 @@ set(SRCS
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(imgui STATIC ${SRCS})
|
add_library(imgui STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(imgui)
|
dolphin_disable_warnings(imgui)
|
||||||
target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
|
||||||
target_link_libraries(imgui
|
target_link_libraries(imgui
|
||||||
|
|
2
Externals/implot/CMakeLists.txt
vendored
2
Externals/implot/CMakeLists.txt
vendored
|
@ -10,7 +10,7 @@ set(SRCS
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(implot STATIC ${SRCS})
|
add_library(implot STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(implot)
|
dolphin_disable_warnings(implot)
|
||||||
target_include_directories(implot
|
target_include_directories(implot
|
||||||
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/implot"
|
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/implot"
|
||||||
PRIVATE imgui
|
PRIVATE imgui
|
||||||
|
|
2
Externals/libiconv-1.14/CMakeLists.txt
vendored
2
Externals/libiconv-1.14/CMakeLists.txt
vendored
|
@ -9,5 +9,5 @@ target_include_directories(iconv
|
||||||
PRIVATE
|
PRIVATE
|
||||||
libcharset/include
|
libcharset/include
|
||||||
)
|
)
|
||||||
dolphin_disable_warnings_msvc(iconv)
|
dolphin_disable_warnings(iconv)
|
||||||
add_library(Iconv::Iconv ALIAS iconv)
|
add_library(Iconv::Iconv ALIAS iconv)
|
||||||
|
|
2
Externals/liblzma/CMakeLists.txt
vendored
2
Externals/liblzma/CMakeLists.txt
vendored
|
@ -207,7 +207,7 @@ set(LZMA_SRCS
|
||||||
|
|
||||||
add_library(lzma STATIC ${LZMA_SRCS} ${LZMA_PUBLIC_HDRS})
|
add_library(lzma STATIC ${LZMA_SRCS} ${LZMA_PUBLIC_HDRS})
|
||||||
add_library(LibLZMA::LibLZMA ALIAS lzma)
|
add_library(LibLZMA::LibLZMA ALIAS lzma)
|
||||||
dolphin_disable_warnings_msvc(lzma)
|
dolphin_disable_warnings(lzma)
|
||||||
|
|
||||||
target_compile_definitions(lzma PUBLIC LZMA_API_STATIC)
|
target_compile_definitions(lzma PUBLIC LZMA_API_STATIC)
|
||||||
|
|
||||||
|
|
2
Externals/libspng/CMakeLists.txt
vendored
2
Externals/libspng/CMakeLists.txt
vendored
|
@ -6,5 +6,5 @@ add_library(spng STATIC libspng/spng/spng.c)
|
||||||
target_compile_definitions(spng PUBLIC SPNG_STATIC)
|
target_compile_definitions(spng PUBLIC SPNG_STATIC)
|
||||||
target_link_libraries(spng PUBLIC ZLIB::ZLIB)
|
target_link_libraries(spng PUBLIC ZLIB::ZLIB)
|
||||||
target_include_directories(spng PUBLIC libspng/spng)
|
target_include_directories(spng PUBLIC libspng/spng)
|
||||||
dolphin_disable_warnings_msvc(spng)
|
dolphin_disable_warnings(spng)
|
||||||
add_library(spng::spng ALIAS spng)
|
add_library(spng::spng ALIAS spng)
|
||||||
|
|
2
Externals/libusb/CMakeLists.txt
vendored
2
Externals/libusb/CMakeLists.txt
vendored
|
@ -6,7 +6,7 @@ add_library(usb STATIC EXCLUDE_FROM_ALL
|
||||||
libusb/libusb/strerror.c
|
libusb/libusb/strerror.c
|
||||||
libusb/libusb/sync.c
|
libusb/libusb/sync.c
|
||||||
)
|
)
|
||||||
dolphin_disable_warnings_msvc(usb)
|
dolphin_disable_warnings(usb)
|
||||||
|
|
||||||
set_target_properties(usb PROPERTIES VERSION 1.0.26)
|
set_target_properties(usb PROPERTIES VERSION 1.0.26)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|
2
Externals/lz4/CMakeLists.txt
vendored
2
Externals/lz4/CMakeLists.txt
vendored
|
@ -8,6 +8,6 @@ set(LZ4_BUNDLED_MODE ON)
|
||||||
|
|
||||||
add_subdirectory(lz4/build/cmake)
|
add_subdirectory(lz4/build/cmake)
|
||||||
|
|
||||||
dolphin_disable_warnings_msvc(lz4_static)
|
dolphin_disable_warnings(lz4_static)
|
||||||
add_library(LZ4::LZ4 ALIAS lz4_static)
|
add_library(LZ4::LZ4 ALIAS lz4_static)
|
||||||
target_compile_definitions(lz4_static PRIVATE XXH_NAMESPACE=LZ4_)
|
target_compile_definitions(lz4_static PRIVATE XXH_NAMESPACE=LZ4_)
|
||||||
|
|
2
Externals/mGBA/CMakeLists.txt
vendored
2
Externals/mGBA/CMakeLists.txt
vendored
|
@ -1,7 +1,7 @@
|
||||||
set(LIBMGBA_ONLY ON)
|
set(LIBMGBA_ONLY ON)
|
||||||
set(USE_LZMA ON)
|
set(USE_LZMA ON)
|
||||||
add_subdirectory(mgba EXCLUDE_FROM_ALL)
|
add_subdirectory(mgba EXCLUDE_FROM_ALL)
|
||||||
dolphin_disable_warnings_msvc(mgba)
|
dolphin_disable_warnings(mgba)
|
||||||
|
|
||||||
target_compile_definitions(mgba PUBLIC HAVE_CRC32)
|
target_compile_definitions(mgba PUBLIC HAVE_CRC32)
|
||||||
target_link_libraries(mgba ZLIB::ZLIB)
|
target_link_libraries(mgba ZLIB::ZLIB)
|
||||||
|
|
12
Externals/mbedtls/library/CMakeLists.txt
vendored
12
Externals/mbedtls/library/CMakeLists.txt
vendored
|
@ -189,34 +189,34 @@ endif()
|
||||||
|
|
||||||
if(USE_STATIC_MBEDTLS_LIBRARY)
|
if(USE_STATIC_MBEDTLS_LIBRARY)
|
||||||
add_library(${mbedcrypto_static_target} STATIC ${src_crypto})
|
add_library(${mbedcrypto_static_target} STATIC ${src_crypto})
|
||||||
dolphin_disable_warnings_msvc(${mbedcrypto_static_target})
|
dolphin_disable_warnings(${mbedcrypto_static_target})
|
||||||
set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto)
|
set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto)
|
||||||
target_link_libraries(${mbedcrypto_static_target} PUBLIC ${libs})
|
target_link_libraries(${mbedcrypto_static_target} PUBLIC ${libs})
|
||||||
|
|
||||||
add_library(${mbedx509_static_target} STATIC ${src_x509})
|
add_library(${mbedx509_static_target} STATIC ${src_x509})
|
||||||
dolphin_disable_warnings_msvc(${mbedx509_static_target})
|
dolphin_disable_warnings(${mbedx509_static_target})
|
||||||
set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
|
set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
|
||||||
target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target})
|
target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target})
|
||||||
|
|
||||||
add_library(${mbedtls_static_target} STATIC ${src_tls})
|
add_library(${mbedtls_static_target} STATIC ${src_tls})
|
||||||
dolphin_disable_warnings_msvc(${mbedtls_static_target})
|
dolphin_disable_warnings(${mbedtls_static_target})
|
||||||
set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
|
set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
|
||||||
target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target})
|
target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target})
|
||||||
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
||||||
|
|
||||||
if(USE_SHARED_MBEDTLS_LIBRARY)
|
if(USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
add_library(${mbedcrypto_target} SHARED ${src_crypto})
|
add_library(${mbedcrypto_target} SHARED ${src_crypto})
|
||||||
dolphin_disable_warnings_msvc(${mbedcrypto_target})
|
dolphin_disable_warnings(${mbedcrypto_target})
|
||||||
set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 2.28.0 SOVERSION 7)
|
set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 2.28.0 SOVERSION 7)
|
||||||
target_link_libraries(${mbedcrypto_target} PUBLIC ${libs})
|
target_link_libraries(${mbedcrypto_target} PUBLIC ${libs})
|
||||||
|
|
||||||
add_library(${mbedx509_target} SHARED ${src_x509})
|
add_library(${mbedx509_target} SHARED ${src_x509})
|
||||||
dolphin_disable_warnings_msvc(${mbedx509_target})
|
dolphin_disable_warnings(${mbedx509_target})
|
||||||
set_target_properties(${mbedx509_target} PROPERTIES VERSION 2.28.0 SOVERSION 1)
|
set_target_properties(${mbedx509_target} PROPERTIES VERSION 2.28.0 SOVERSION 1)
|
||||||
target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
|
target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
|
||||||
|
|
||||||
add_library(${mbedtls_target} SHARED ${src_tls})
|
add_library(${mbedtls_target} SHARED ${src_tls})
|
||||||
dolphin_disable_warnings_msvc(${mbedtls_target})
|
dolphin_disable_warnings(${mbedtls_target})
|
||||||
set_target_properties(${mbedtls_target} PROPERTIES VERSION 2.28.0 SOVERSION 14)
|
set_target_properties(${mbedtls_target} PROPERTIES VERSION 2.28.0 SOVERSION 14)
|
||||||
target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
|
target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
|
||||||
endif(USE_SHARED_MBEDTLS_LIBRARY)
|
endif(USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
|
|
2
Externals/miniupnpc/CMakeLists.txt
vendored
2
Externals/miniupnpc/CMakeLists.txt
vendored
|
@ -33,7 +33,7 @@ set(SRCS src/igd_desc_parse.c
|
||||||
src/receivedata.c)
|
src/receivedata.c)
|
||||||
|
|
||||||
add_library(miniupnpc STATIC ${SRCS})
|
add_library(miniupnpc STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(miniupnpc)
|
dolphin_disable_warnings(miniupnpc)
|
||||||
target_include_directories(miniupnpc PUBLIC src)
|
target_include_directories(miniupnpc PUBLIC src)
|
||||||
|
|
||||||
add_library(Miniupnpc::miniupnpc ALIAS miniupnpc)
|
add_library(Miniupnpc::miniupnpc ALIAS miniupnpc)
|
||||||
|
|
2
Externals/minizip/CMakeLists.txt
vendored
2
Externals/minizip/CMakeLists.txt
vendored
|
@ -26,7 +26,7 @@ add_library(minizip STATIC
|
||||||
unzip.h
|
unzip.h
|
||||||
zip.h
|
zip.h
|
||||||
)
|
)
|
||||||
dolphin_disable_warnings_msvc(minizip)
|
dolphin_disable_warnings(minizip)
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
target_sources(minizip PRIVATE
|
target_sources(minizip PRIVATE
|
||||||
|
|
2
Externals/pugixml/CMakeLists.txt
vendored
2
Externals/pugixml/CMakeLists.txt
vendored
|
@ -35,7 +35,7 @@ if(BUILD_SHARED_LIBS)
|
||||||
else()
|
else()
|
||||||
add_library(pugixml STATIC ${SOURCES})
|
add_library(pugixml STATIC ${SOURCES})
|
||||||
endif()
|
endif()
|
||||||
dolphin_disable_warnings_msvc(pugixml)
|
dolphin_disable_warnings(pugixml)
|
||||||
|
|
||||||
set_target_properties(pugixml PROPERTIES VERSION 1.8 SOVERSION 1)
|
set_target_properties(pugixml PROPERTIES VERSION 1.8 SOVERSION 1)
|
||||||
get_target_property(PUGIXML_VERSION_STRING pugixml VERSION)
|
get_target_property(PUGIXML_VERSION_STRING pugixml VERSION)
|
||||||
|
|
21
Externals/rcheevos/CMakeLists.txt
vendored
21
Externals/rcheevos/CMakeLists.txt
vendored
|
@ -4,13 +4,17 @@ add_library(rcheevos
|
||||||
rcheevos/include/rc_api_request.h
|
rcheevos/include/rc_api_request.h
|
||||||
rcheevos/include/rc_api_runtime.h
|
rcheevos/include/rc_api_runtime.h
|
||||||
rcheevos/include/rc_api_user.h
|
rcheevos/include/rc_api_user.h
|
||||||
|
rcheevos/include/rc_client.h
|
||||||
|
rcheevos/include/rc_client_raintegration.h
|
||||||
rcheevos/include/rc_consoles.h
|
rcheevos/include/rc_consoles.h
|
||||||
rcheevos/include/rc_error.h
|
rcheevos/include/rc_error.h
|
||||||
|
rcheevos/include/rc_export.h
|
||||||
rcheevos/include/rc_hash.h
|
rcheevos/include/rc_hash.h
|
||||||
rcheevos/include/rcheevos.h
|
rcheevos/include/rcheevos.h
|
||||||
rcheevos/include/rc_runtime.h
|
rcheevos/include/rc_runtime.h
|
||||||
rcheevos/include/rc_runtime_types.h
|
rcheevos/include/rc_runtime_types.h
|
||||||
rcheevos/include/rc_url.h
|
rcheevos/include/rc_url.h
|
||||||
|
rcheevos/include/rc_util.h
|
||||||
rcheevos/src/rapi/rc_api_common.c
|
rcheevos/src/rapi/rc_api_common.c
|
||||||
rcheevos/src/rapi/rc_api_common.h
|
rcheevos/src/rapi/rc_api_common.h
|
||||||
rcheevos/src/rapi/rc_api_editor.c
|
rcheevos/src/rapi/rc_api_editor.c
|
||||||
|
@ -18,7 +22,6 @@ add_library(rcheevos
|
||||||
rcheevos/src/rapi/rc_api_runtime.c
|
rcheevos/src/rapi/rc_api_runtime.c
|
||||||
rcheevos/src/rapi/rc_api_user.c
|
rcheevos/src/rapi/rc_api_user.c
|
||||||
rcheevos/src/rcheevos/alloc.c
|
rcheevos/src/rcheevos/alloc.c
|
||||||
rcheevos/src/rcheevos/compat.c
|
|
||||||
rcheevos/src/rcheevos/condition.c
|
rcheevos/src/rcheevos/condition.c
|
||||||
rcheevos/src/rcheevos/condset.c
|
rcheevos/src/rcheevos/condset.c
|
||||||
rcheevos/src/rcheevos/consoleinfo.c
|
rcheevos/src/rcheevos/consoleinfo.c
|
||||||
|
@ -26,7 +29,6 @@ add_library(rcheevos
|
||||||
rcheevos/src/rcheevos/lboard.c
|
rcheevos/src/rcheevos/lboard.c
|
||||||
rcheevos/src/rcheevos/memref.c
|
rcheevos/src/rcheevos/memref.c
|
||||||
rcheevos/src/rcheevos/operand.c
|
rcheevos/src/rcheevos/operand.c
|
||||||
rcheevos/src/rcheevos/rc_compat.h
|
|
||||||
rcheevos/src/rcheevos/rc_internal.h
|
rcheevos/src/rcheevos/rc_internal.h
|
||||||
rcheevos/src/rcheevos/rc_validate.c
|
rcheevos/src/rcheevos/rc_validate.c
|
||||||
rcheevos/src/rcheevos/rc_validate.h
|
rcheevos/src/rcheevos/rc_validate.h
|
||||||
|
@ -35,15 +37,30 @@ add_library(rcheevos
|
||||||
rcheevos/src/rcheevos/runtime_progress.c
|
rcheevos/src/rcheevos/runtime_progress.c
|
||||||
rcheevos/src/rcheevos/trigger.c
|
rcheevos/src/rcheevos/trigger.c
|
||||||
rcheevos/src/rcheevos/value.c
|
rcheevos/src/rcheevos/value.c
|
||||||
|
rcheevos/src/rhash/aes.c
|
||||||
|
rcheevos/src/rhash/aes.h
|
||||||
|
rcheevos/src/rhash/cdreader.c
|
||||||
rcheevos/src/rhash/hash.c
|
rcheevos/src/rhash/hash.c
|
||||||
rcheevos/src/rhash/md5.c
|
rcheevos/src/rhash/md5.c
|
||||||
rcheevos/src/rhash/md5.h
|
rcheevos/src/rhash/md5.h
|
||||||
rcheevos/src/rurl/url.c
|
rcheevos/src/rurl/url.c
|
||||||
|
rcheevos/src/rc_client.c
|
||||||
|
rcheevos/src/rc_client_external.h
|
||||||
|
rcheevos/src/rc_client_internal.h
|
||||||
|
rcheevos/src/rc_client_raintegration.c
|
||||||
|
rcheevos/src/rc_client_raintegration_internal.h
|
||||||
|
rcheevos/src/rc_compat.c
|
||||||
|
rcheevos/src/rc_compat.h
|
||||||
|
rcheevos/src/rc_util.c
|
||||||
|
rcheevos/src/rc_version.c
|
||||||
|
rcheevos/src/rc_version.h
|
||||||
)
|
)
|
||||||
|
dolphin_disable_warnings(rcheevos)
|
||||||
|
|
||||||
target_include_directories(rcheevos PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rcheevos/include")
|
target_include_directories(rcheevos PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rcheevos/include")
|
||||||
target_include_directories(rcheevos INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
target_include_directories(rcheevos INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
target_compile_definitions(rcheevos PRIVATE "RC_DISABLE_LUA=1" "RCHEEVOS_URL_SSL")
|
target_compile_definitions(rcheevos PRIVATE "RC_DISABLE_LUA=1" "RCHEEVOS_URL_SSL")
|
||||||
|
target_compile_definitions(rcheevos PRIVATE "RC_CLIENT_SUPPORTS_HASH")
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
target_compile_definitions(rcheevos PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
target_compile_definitions(rcheevos PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
endif()
|
endif()
|
||||||
|
|
21
Externals/rcheevos/rcheevos.vcxproj
vendored
21
Externals/rcheevos/rcheevos.vcxproj
vendored
|
@ -23,7 +23,6 @@
|
||||||
<ClCompile Include="rcheevos\src\rapi\rc_api_runtime.c" />
|
<ClCompile Include="rcheevos\src\rapi\rc_api_runtime.c" />
|
||||||
<ClCompile Include="rcheevos\src\rapi\rc_api_user.c" />
|
<ClCompile Include="rcheevos\src\rapi\rc_api_user.c" />
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\alloc.c" />
|
<ClCompile Include="rcheevos\src\rcheevos\alloc.c" />
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\compat.c" />
|
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\condition.c" />
|
<ClCompile Include="rcheevos\src\rcheevos\condition.c" />
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\condset.c" />
|
<ClCompile Include="rcheevos\src\rcheevos\condset.c" />
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\consoleinfo.c" />
|
<ClCompile Include="rcheevos\src\rcheevos\consoleinfo.c" />
|
||||||
|
@ -37,9 +36,16 @@
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\runtime_progress.c" />
|
<ClCompile Include="rcheevos\src\rcheevos\runtime_progress.c" />
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\trigger.c" />
|
<ClCompile Include="rcheevos\src\rcheevos\trigger.c" />
|
||||||
<ClCompile Include="rcheevos\src\rcheevos\value.c" />
|
<ClCompile Include="rcheevos\src\rcheevos\value.c" />
|
||||||
|
<ClCompile Include="rcheevos\src\rhash\aes.c" />
|
||||||
|
<ClCompile Include="rcheevos\src\rhash\cdreader.c" />
|
||||||
<ClCompile Include="rcheevos\src\rhash\hash.c" />
|
<ClCompile Include="rcheevos\src\rhash\hash.c" />
|
||||||
<ClCompile Include="rcheevos\src\rhash\md5.c" />
|
<ClCompile Include="rcheevos\src\rhash\md5.c" />
|
||||||
<ClCompile Include="rcheevos\src\rurl\url.c" />
|
<ClCompile Include="rcheevos\src\rurl\url.c" />
|
||||||
|
<ClCompile Include="rcheevos\src\rc_client.c" />
|
||||||
|
<ClCompile Include="rcheevos\src\rc_client_raintegration.c" />
|
||||||
|
<ClCompile Include="rcheevos\src\rc_compat.c" />
|
||||||
|
<ClCompile Include="rcheevos\src\rc_util.c" />
|
||||||
|
<ClCompile Include="rcheevos\src\rc_version.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="rcheevos\include\rcheevos.h" />
|
<ClInclude Include="rcheevos\include\rcheevos.h" />
|
||||||
|
@ -48,21 +54,30 @@
|
||||||
<ClInclude Include="rcheevos\include\rc_api_request.h" />
|
<ClInclude Include="rcheevos\include\rc_api_request.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_api_runtime.h" />
|
<ClInclude Include="rcheevos\include\rc_api_runtime.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_api_user.h" />
|
<ClInclude Include="rcheevos\include\rc_api_user.h" />
|
||||||
|
<ClInclude Include="rcheevos\include\rc_client.h" />
|
||||||
|
<ClInclude Include="rcheevos\include\rc_client_raintegration.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_consoles.h" />
|
<ClInclude Include="rcheevos\include\rc_consoles.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_error.h" />
|
<ClInclude Include="rcheevos\include\rc_error.h" />
|
||||||
|
<ClInclude Include="rcheevos\include\rc_export.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_hash.h" />
|
<ClInclude Include="rcheevos\include\rc_hash.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_runtime.h" />
|
<ClInclude Include="rcheevos\include\rc_runtime.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_runtime_types.h" />
|
<ClInclude Include="rcheevos\include\rc_runtime_types.h" />
|
||||||
<ClInclude Include="rcheevos\include\rc_url.h" />
|
<ClInclude Include="rcheevos\include\rc_url.h" />
|
||||||
|
<ClInclude Include="rcheevos\include\rc_util.h" />
|
||||||
<ClInclude Include="rcheevos\src\rapi\rc_api_common.h" />
|
<ClInclude Include="rcheevos\src\rapi\rc_api_common.h" />
|
||||||
<ClInclude Include="rcheevos\src\rcheevos\rc_compat.h" />
|
|
||||||
<ClInclude Include="rcheevos\src\rcheevos\rc_internal.h" />
|
<ClInclude Include="rcheevos\src\rcheevos\rc_internal.h" />
|
||||||
<ClInclude Include="rcheevos\src\rcheevos\rc_validate.h" />
|
<ClInclude Include="rcheevos\src\rcheevos\rc_validate.h" />
|
||||||
|
<ClInclude Include="rcheevos\src\rhash\aes.h" />
|
||||||
<ClInclude Include="rcheevos\src\rhash\md5.h" />
|
<ClInclude Include="rcheevos\src\rhash\md5.h" />
|
||||||
|
<ClInclude Include="rcheevos\src\rc_client_external.h" />
|
||||||
|
<ClInclude Include="rcheevos\src\rc_client_internal.h" />
|
||||||
|
<ClInclude Include="rcheevos\src\rc_client_raintegration_internal.h" />
|
||||||
|
<ClInclude Include="rcheevos\src\rc_compat.h" />
|
||||||
|
<ClInclude Include="rcheevos\src\rc_version.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>RC_DISABLE_LUA;RCHEEVOS_URL_SSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>RC_DISABLE_LUA;RCHEEVOS_URL_SSL;RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)rcheevos\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)rcheevos\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
|
2
Externals/soundtouch/CMakeLists.txt
vendored
2
Externals/soundtouch/CMakeLists.txt
vendored
|
@ -19,4 +19,4 @@ set(SRCS
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(SoundTouch STATIC ${SRCS})
|
add_library(SoundTouch STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(SoundTouch)
|
dolphin_disable_warnings(SoundTouch)
|
||||||
|
|
2
Externals/spirv_cross/CMakeLists.txt
vendored
2
Externals/spirv_cross/CMakeLists.txt
vendored
|
@ -47,7 +47,7 @@ endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(spirv_cross STATIC ${SRCS})
|
add_library(spirv_cross STATIC ${SRCS})
|
||||||
dolphin_disable_warnings_msvc(spirv_cross)
|
dolphin_disable_warnings(spirv_cross)
|
||||||
|
|
||||||
target_compile_definitions(spirv_cross PUBLIC SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
|
target_compile_definitions(spirv_cross PUBLIC SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
|
||||||
target_include_directories(spirv_cross PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross/include ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross)
|
target_include_directories(spirv_cross PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross/include ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross)
|
||||||
|
|
2
Externals/spirv_cross/SPIRV-Cross
vendored
2
Externals/spirv_cross/SPIRV-Cross
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 50b4d5389b6a06f86fb63a2848e1a7da6d9755ca
|
Subproject commit 1ddd8b629c4a18994056a0df9095ccb108e84c9e
|
2
Externals/tinygltf/CMakeLists.txt
vendored
2
Externals/tinygltf/CMakeLists.txt
vendored
|
@ -8,4 +8,4 @@ endif()
|
||||||
target_sources(tinygltf PRIVATE
|
target_sources(tinygltf PRIVATE
|
||||||
tinygltf/tiny_gltf.cc)
|
tinygltf/tiny_gltf.cc)
|
||||||
target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
dolphin_disable_warnings_msvc(tinygltf)
|
dolphin_disable_warnings(tinygltf)
|
||||||
|
|
2
Externals/xxhash/CMakeLists.txt
vendored
2
Externals/xxhash/CMakeLists.txt
vendored
|
@ -1,7 +1,7 @@
|
||||||
project(xxhash C)
|
project(xxhash C)
|
||||||
|
|
||||||
add_library(xxhash STATIC xxHash/xxhash.c)
|
add_library(xxhash STATIC xxHash/xxhash.c)
|
||||||
dolphin_disable_warnings_msvc(xxhash)
|
dolphin_disable_warnings(xxhash)
|
||||||
target_include_directories(xxhash
|
target_include_directories(xxhash
|
||||||
PUBLIC
|
PUBLIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/xxHash
|
${CMAKE_CURRENT_SOURCE_DIR}/xxHash
|
||||||
|
|
2
Externals/zlib-ng/CMakeLists.txt
vendored
2
Externals/zlib-ng/CMakeLists.txt
vendored
|
@ -12,4 +12,4 @@ set(ZLIB_LIBRARY ZLIB::ZLIB CACHE STRING "Path to zlib library")
|
||||||
|
|
||||||
# Setup zlib alias project so FindZLIB doesn't recreate it
|
# Setup zlib alias project so FindZLIB doesn't recreate it
|
||||||
add_library(ZLIB::ZLIB ALIAS zlib)
|
add_library(ZLIB::ZLIB ALIAS zlib)
|
||||||
dolphin_disable_warnings_msvc(zlib)
|
dolphin_disable_warnings(zlib)
|
||||||
|
|
2
Externals/zstd/CMakeLists.txt
vendored
2
Externals/zstd/CMakeLists.txt
vendored
|
@ -115,7 +115,7 @@ set(ZSTD_SRCS
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(zstd STATIC ${ZSTD_SRCS} ${ZSTD_PUBLIC_HDRS} ${ZSTD_PRIVATE_HDRS})
|
add_library(zstd STATIC ${ZSTD_SRCS} ${ZSTD_PUBLIC_HDRS} ${ZSTD_PRIVATE_HDRS})
|
||||||
dolphin_disable_warnings_msvc(zstd)
|
dolphin_disable_warnings(zstd)
|
||||||
add_library(zstd::zstd ALIAS zstd)
|
add_library(zstd::zstd ALIAS zstd)
|
||||||
|
|
||||||
target_include_directories(zstd
|
target_include_directories(zstd
|
||||||
|
|
3710
Languages/po/ar.po
3710
Languages/po/ar.po
File diff suppressed because it is too large
Load diff
3724
Languages/po/ca.po
3724
Languages/po/ca.po
File diff suppressed because it is too large
Load diff
3716
Languages/po/cs.po
3716
Languages/po/cs.po
File diff suppressed because it is too large
Load diff
3716
Languages/po/da.po
3716
Languages/po/da.po
File diff suppressed because it is too large
Load diff
4188
Languages/po/de.po
4188
Languages/po/de.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
3716
Languages/po/el.po
3716
Languages/po/el.po
File diff suppressed because it is too large
Load diff
3724
Languages/po/en.po
3724
Languages/po/en.po
File diff suppressed because it is too large
Load diff
3822
Languages/po/es.po
3822
Languages/po/es.po
File diff suppressed because it is too large
Load diff
3724
Languages/po/fa.po
3724
Languages/po/fa.po
File diff suppressed because it is too large
Load diff
3861
Languages/po/fi.po
3861
Languages/po/fi.po
File diff suppressed because it is too large
Load diff
3883
Languages/po/fr.po
3883
Languages/po/fr.po
File diff suppressed because it is too large
Load diff
3724
Languages/po/hr.po
3724
Languages/po/hr.po
File diff suppressed because it is too large
Load diff
3916
Languages/po/hu.po
3916
Languages/po/hu.po
File diff suppressed because it is too large
Load diff
3874
Languages/po/it.po
3874
Languages/po/it.po
File diff suppressed because it is too large
Load diff
3809
Languages/po/ja.po
3809
Languages/po/ja.po
File diff suppressed because it is too large
Load diff
3771
Languages/po/ko.po
3771
Languages/po/ko.po
File diff suppressed because it is too large
Load diff
3714
Languages/po/ms.po
3714
Languages/po/ms.po
File diff suppressed because it is too large
Load diff
3716
Languages/po/nb.po
3716
Languages/po/nb.po
File diff suppressed because it is too large
Load diff
4217
Languages/po/nl.po
4217
Languages/po/nl.po
File diff suppressed because it is too large
Load diff
3716
Languages/po/pl.po
3716
Languages/po/pl.po
File diff suppressed because it is too large
Load diff
3724
Languages/po/pt.po
3724
Languages/po/pt.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
3724
Languages/po/ro.po
3724
Languages/po/ro.po
File diff suppressed because it is too large
Load diff
5116
Languages/po/ru.po
5116
Languages/po/ru.po
File diff suppressed because it is too large
Load diff
3724
Languages/po/sr.po
3724
Languages/po/sr.po
File diff suppressed because it is too large
Load diff
3742
Languages/po/sv.po
3742
Languages/po/sv.po
File diff suppressed because it is too large
Load diff
5459
Languages/po/tr.po
5459
Languages/po/tr.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
21
Readme.md
21
Readme.md
|
@ -193,7 +193,7 @@ is intended for debugging purposes only.
|
||||||
```
|
```
|
||||||
usage: dolphin-tool COMMAND -h
|
usage: dolphin-tool COMMAND -h
|
||||||
|
|
||||||
commands supported: [convert, verify, header]
|
commands supported: [convert, verify, header, extract]
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -252,3 +252,22 @@ then exit.
|
||||||
Optional. Print the level of compression for WIA/RVZ
|
Optional. Print the level of compression for WIA/RVZ
|
||||||
formats, then exit.
|
formats, then exit.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
Usage: extract [options]...
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-i FILE, --input=FILE
|
||||||
|
Path to disc image FILE.
|
||||||
|
-o FOLDER, --output=FOLDER
|
||||||
|
Path to the destination FOLDER.
|
||||||
|
-p PARTITION, --partition=PARTITION
|
||||||
|
Which specific partition you want to extract.
|
||||||
|
-s SINGLE, --single=SINGLE
|
||||||
|
Which specific file/directory you want to extract.
|
||||||
|
-l, --list List all files in volume/partition. Will print the
|
||||||
|
directory/file specified with --single if defined.
|
||||||
|
-q, --quiet Mute all messages except for errors.
|
||||||
|
-g, --gameonly Only extracts the DATA partition.
|
||||||
|
```
|
||||||
|
|
|
@ -119,23 +119,23 @@ dependencies {
|
||||||
"baselineProfile"(project(":benchmark"))
|
"baselineProfile"(project(":benchmark"))
|
||||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
|
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
|
||||||
|
|
||||||
implementation("androidx.core:core-ktx:1.12.0")
|
implementation("androidx.core:core-ktx:1.13.0")
|
||||||
implementation("androidx.appcompat:appcompat:1.6.1")
|
implementation("androidx.appcompat:appcompat:1.6.1")
|
||||||
implementation("androidx.exifinterface:exifinterface:1.3.6")
|
implementation("androidx.exifinterface:exifinterface:1.3.7")
|
||||||
implementation("androidx.cardview:cardview:1.0.0")
|
implementation("androidx.cardview:cardview:1.0.0")
|
||||||
implementation("androidx.recyclerview:recyclerview:1.3.2")
|
implementation("androidx.recyclerview:recyclerview:1.3.2")
|
||||||
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
|
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
|
||||||
implementation("androidx.fragment:fragment-ktx:1.6.2")
|
implementation("androidx.fragment:fragment-ktx:1.6.2")
|
||||||
implementation("androidx.slidingpanelayout:slidingpanelayout:1.2.0")
|
implementation("androidx.slidingpanelayout:slidingpanelayout:1.2.0")
|
||||||
implementation("com.google.android.material:material:1.10.0")
|
implementation("com.google.android.material:material:1.11.0")
|
||||||
implementation("androidx.core:core-splashscreen:1.0.1")
|
implementation("androidx.core:core-splashscreen:1.0.1")
|
||||||
implementation("androidx.preference:preference-ktx:1.2.1")
|
implementation("androidx.preference:preference-ktx:1.2.1")
|
||||||
implementation("androidx.profileinstaller:profileinstaller:1.3.1")
|
implementation("androidx.profileinstaller:profileinstaller:1.3.1")
|
||||||
|
|
||||||
// Kotlin extensions for lifecycle components
|
// Kotlin extensions for lifecycle components
|
||||||
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
|
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0")
|
||||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
|
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
|
||||||
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.2")
|
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0")
|
||||||
|
|
||||||
// Android TV UI libraries.
|
// Android TV UI libraries.
|
||||||
implementation("androidx.leanback:leanback:1.0.0")
|
implementation("androidx.leanback:leanback:1.0.0")
|
||||||
|
@ -145,10 +145,10 @@ dependencies {
|
||||||
implementation("com.android.volley:volley:1.2.1")
|
implementation("com.android.volley:volley:1.2.1")
|
||||||
|
|
||||||
// For loading game covers from disk and GameTDB
|
// For loading game covers from disk and GameTDB
|
||||||
implementation("io.coil-kt:coil:2.5.0")
|
implementation("io.coil-kt:coil:2.6.0")
|
||||||
|
|
||||||
// For loading custom GPU drivers
|
// For loading custom GPU drivers
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1")
|
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
|
||||||
|
|
||||||
implementation("com.nononsenseapps:filepicker:4.2.1")
|
implementation("com.nononsenseapps:filepicker:4.2.1")
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.dolphinemu.dolphinemu.utils.Log;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.concurrent.Semaphore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class which contains methods that interact
|
* Class which contains methods that interact
|
||||||
|
@ -28,7 +29,7 @@ import java.util.LinkedHashMap;
|
||||||
*/
|
*/
|
||||||
public final class NativeLibrary
|
public final class NativeLibrary
|
||||||
{
|
{
|
||||||
private static final Object sAlertMessageLock = new Object();
|
private static final Semaphore sAlertMessageSemaphore = new Semaphore(0);
|
||||||
private static boolean sIsShowingAlertMessage = false;
|
private static boolean sIsShowingAlertMessage = false;
|
||||||
|
|
||||||
private static WeakReference<EmulationActivity> sEmulationActivity = new WeakReference<>(null);
|
private static WeakReference<EmulationActivity> sEmulationActivity = new WeakReference<>(null);
|
||||||
|
@ -385,16 +386,9 @@ public final class NativeLibrary
|
||||||
public static native boolean IsRunningAndUnpaused();
|
public static native boolean IsRunningAndUnpaused();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enables or disables CPU block profiling
|
* Writes out the JitBlock Cache log dump
|
||||||
*
|
|
||||||
* @param enable
|
|
||||||
*/
|
*/
|
||||||
public static native void SetProfiling(boolean enable);
|
public static native void WriteJitBlockLogDump();
|
||||||
|
|
||||||
/**
|
|
||||||
* Writes out the block profile results
|
|
||||||
*/
|
|
||||||
public static native void WriteProfileResults();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Native EGL functions not exposed by Java bindings
|
* Native EGL functions not exposed by Java bindings
|
||||||
|
@ -454,6 +448,14 @@ public final class NativeLibrary
|
||||||
|
|
||||||
private static native String GetCurrentTitleDescriptionUnchecked();
|
private static native String GetCurrentTitleDescriptionUnchecked();
|
||||||
|
|
||||||
|
@Keep
|
||||||
|
public static void displayToastMsg(final String text, final boolean long_length)
|
||||||
|
{
|
||||||
|
final int length = long_length ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT;
|
||||||
|
new Handler(Looper.getMainLooper())
|
||||||
|
.post(() -> Toast.makeText(DolphinApplication.getAppContext(), text, length).show());
|
||||||
|
}
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
public static boolean displayAlertMsg(final String caption, final String text,
|
public static boolean displayAlertMsg(final String caption, final String text,
|
||||||
final boolean yesNo, final boolean isWarning, final boolean nonBlocking)
|
final boolean yesNo, final boolean isWarning, final boolean nonBlocking)
|
||||||
|
@ -466,9 +468,7 @@ public final class NativeLibrary
|
||||||
// and are allowed to block. As a fallback, we can use toasts.
|
// and are allowed to block. As a fallback, we can use toasts.
|
||||||
if (emulationActivity == null || nonBlocking)
|
if (emulationActivity == null || nonBlocking)
|
||||||
{
|
{
|
||||||
new Handler(Looper.getMainLooper()).post(
|
displayToastMsg(text, true);
|
||||||
() -> Toast.makeText(DolphinApplication.getAppContext(), text, Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -492,15 +492,12 @@ public final class NativeLibrary
|
||||||
});
|
});
|
||||||
|
|
||||||
// Wait for the lock to notify that it is complete.
|
// Wait for the lock to notify that it is complete.
|
||||||
synchronized (sAlertMessageLock)
|
try
|
||||||
|
{
|
||||||
|
sAlertMessageSemaphore.acquire();
|
||||||
|
}
|
||||||
|
catch (InterruptedException ignored)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
{
|
|
||||||
sAlertMessageLock.wait();
|
|
||||||
}
|
|
||||||
catch (Exception ignored)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (yesNo)
|
if (yesNo)
|
||||||
|
@ -520,10 +517,7 @@ public final class NativeLibrary
|
||||||
|
|
||||||
public static void NotifyAlertMessageLock()
|
public static void NotifyAlertMessageLock()
|
||||||
{
|
{
|
||||||
synchronized (sAlertMessageLock)
|
sAlertMessageSemaphore.release();
|
||||||
{
|
|
||||||
sAlertMessageLock.notify();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setEmulationActivity(EmulationActivity emulationActivity)
|
public static void setEmulationActivity(EmulationActivity emulationActivity)
|
||||||
|
|
|
@ -102,10 +102,7 @@ class UserDataActivity : AppCompatActivity() {
|
||||||
dialog.show(supportFragmentManager, UserDataImportWarningDialog.TAG)
|
dialog.show(supportFragmentManager, UserDataImportWarningDialog.TAG)
|
||||||
} else if (requestCode == REQUEST_CODE_EXPORT && resultCode == RESULT_OK) {
|
} else if (requestCode == REQUEST_CODE_EXPORT && resultCode == RESULT_OK) {
|
||||||
taskViewModel.clear()
|
taskViewModel.clear()
|
||||||
taskViewModel.task = {
|
taskViewModel.task = { exportUserData(data!!.data!!) }
|
||||||
val resultResource = exportUserData(data!!.data!!)
|
|
||||||
taskViewModel.setResult(resultResource)
|
|
||||||
}
|
|
||||||
|
|
||||||
val arguments = Bundle()
|
val arguments = Bundle()
|
||||||
arguments.putInt(TaskDialog.KEY_TITLE, R.string.export_in_progress)
|
arguments.putInt(TaskDialog.KEY_TITLE, R.string.export_in_progress)
|
||||||
|
|
|
@ -34,14 +34,11 @@ class TaskDialog : DialogFragment() {
|
||||||
val progressMessage = requireArguments().getInt(KEY_MESSAGE)
|
val progressMessage = requireArguments().getInt(KEY_MESSAGE)
|
||||||
if (progressMessage != 0) dialog.setMessage(resources.getString(progressMessage))
|
if (progressMessage != 0) dialog.setMessage(resources.getString(progressMessage))
|
||||||
|
|
||||||
viewModel.isComplete.observe(this) { complete: Boolean ->
|
viewModel.result.observe(this) { result: Int? ->
|
||||||
if (complete && viewModel.result.value != null) {
|
if (result != null) {
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
val notificationArguments = Bundle()
|
val notificationArguments = Bundle()
|
||||||
notificationArguments.putInt(
|
notificationArguments.putInt(TaskCompleteDialog.KEY_MESSAGE, result)
|
||||||
TaskCompleteDialog.KEY_MESSAGE,
|
|
||||||
viewModel.result.value!!
|
|
||||||
)
|
|
||||||
|
|
||||||
val taskCompleteDialog = TaskCompleteDialog()
|
val taskCompleteDialog = TaskCompleteDialog()
|
||||||
taskCompleteDialog.arguments = notificationArguments
|
taskCompleteDialog.arguments = notificationArguments
|
||||||
|
|
|
@ -32,10 +32,8 @@ class UserDataImportWarningDialog : DialogFragment() {
|
||||||
taskArguments.putBoolean(TaskDialog.KEY_CANCELLABLE, false)
|
taskArguments.putBoolean(TaskDialog.KEY_CANCELLABLE, false)
|
||||||
|
|
||||||
taskViewModel.task = {
|
taskViewModel.task = {
|
||||||
taskViewModel.setResult(
|
(requireActivity() as UserDataActivity).importUserData(
|
||||||
(requireActivity() as UserDataActivity).importUserData(
|
requireArguments().getString(KEY_URI_RESULT)!!.toUri()
|
||||||
requireArguments().getString(KEY_URI_RESULT)!!.toUri()
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -214,6 +214,12 @@ enum class BooleanSetting(
|
||||||
"JitRegisterCacheOff",
|
"JitRegisterCacheOff",
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
|
MAIN_DEBUG_JIT_ENABLE_PROFILING(
|
||||||
|
Settings.FILE_DOLPHIN,
|
||||||
|
Settings.SECTION_DEBUG,
|
||||||
|
"JitEnableProfiling",
|
||||||
|
false
|
||||||
|
),
|
||||||
MAIN_EMULATE_SKYLANDER_PORTAL(
|
MAIN_EMULATE_SKYLANDER_PORTAL(
|
||||||
Settings.FILE_DOLPHIN,
|
Settings.FILE_DOLPHIN,
|
||||||
Settings.SECTION_EMULATED_USB_DEVICES,
|
Settings.SECTION_EMULATED_USB_DEVICES,
|
||||||
|
|
|
@ -23,6 +23,18 @@ enum class StringSetting(
|
||||||
"BBA_BUILTIN_DNS",
|
"BBA_BUILTIN_DNS",
|
||||||
"3.18.217.27"
|
"3.18.217.27"
|
||||||
),
|
),
|
||||||
|
MAIN_BBA_TAPSERVER_DESTINATION(
|
||||||
|
Settings.FILE_DOLPHIN,
|
||||||
|
Settings.SECTION_INI_CORE,
|
||||||
|
"BBA_TAPSERVER_DESTINATION",
|
||||||
|
"/tmp/dolphin-tap"
|
||||||
|
),
|
||||||
|
MAIN_MODEM_TAPSERVER_DESTINATION(
|
||||||
|
Settings.FILE_DOLPHIN,
|
||||||
|
Settings.SECTION_INI_CORE,
|
||||||
|
"MODEM_TAPSERVER_DESTINATION",
|
||||||
|
"/tmp/dolphin-modem-tap"
|
||||||
|
),
|
||||||
MAIN_CUSTOM_RTC_VALUE(
|
MAIN_CUSTOM_RTC_VALUE(
|
||||||
Settings.FILE_DOLPHIN,
|
Settings.FILE_DOLPHIN,
|
||||||
Settings.SECTION_INI_CORE,
|
Settings.SECTION_INI_CORE,
|
||||||
|
|
|
@ -1101,6 +1101,16 @@ class SettingsFragmentPresenter(
|
||||||
R.string.xlink_kai_bba_ip_description
|
R.string.xlink_kai_bba_ip_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
} else if (serialPort1Type == 11) {
|
||||||
|
// Broadband Adapter (tapserver)
|
||||||
|
sl.add(
|
||||||
|
InputStringSetting(
|
||||||
|
context,
|
||||||
|
StringSetting.MAIN_BBA_TAPSERVER_DESTINATION,
|
||||||
|
R.string.bba_tapserver_destination,
|
||||||
|
R.string.bba_tapserver_destination_description
|
||||||
|
)
|
||||||
|
)
|
||||||
} else if (serialPort1Type == 12) {
|
} else if (serialPort1Type == 12) {
|
||||||
// Broadband Adapter (Built In)
|
// Broadband Adapter (Built In)
|
||||||
sl.add(
|
sl.add(
|
||||||
|
@ -1111,6 +1121,16 @@ class SettingsFragmentPresenter(
|
||||||
R.string.bba_builtin_dns_description
|
R.string.bba_builtin_dns_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
} else if (serialPort1Type == 13) {
|
||||||
|
// Modem Adapter (tapserver)
|
||||||
|
sl.add(
|
||||||
|
InputStringSetting(
|
||||||
|
context,
|
||||||
|
StringSetting.MAIN_MODEM_TAPSERVER_DESTINATION,
|
||||||
|
R.string.modem_tapserver_destination,
|
||||||
|
R.string.modem_tapserver_destination_description
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1958,6 +1978,26 @@ class SettingsFragmentPresenter(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
sl.add(HeaderSetting(context, R.string.debug_jit_profiling_header, 0))
|
||||||
|
sl.add(
|
||||||
|
SwitchSetting(
|
||||||
|
context,
|
||||||
|
BooleanSetting.MAIN_DEBUG_JIT_ENABLE_PROFILING,
|
||||||
|
R.string.debug_jit_enable_block_profiling,
|
||||||
|
0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
sl.add(
|
||||||
|
RunRunnable(
|
||||||
|
context,
|
||||||
|
R.string.debug_jit_write_block_log_dump,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
true
|
||||||
|
) { NativeLibrary.WriteJitBlockLogDump() }
|
||||||
|
)
|
||||||
|
|
||||||
sl.add(HeaderSetting(context, R.string.debug_jit_header, 0))
|
sl.add(HeaderSetting(context, R.string.debug_jit_header, 0))
|
||||||
sl.add(
|
sl.add(
|
||||||
SwitchSetting(
|
SwitchSetting(
|
||||||
|
|
|
@ -28,8 +28,13 @@ abstract class SettingViewHolder(itemView: View, protected val adapter: Settings
|
||||||
val overridden = settingsItem.isOverridden
|
val overridden = settingsItem.isOverridden
|
||||||
textView.setTypeface(null, if (overridden) Typeface.BOLD else Typeface.NORMAL)
|
textView.setTypeface(null, if (overridden) Typeface.BOLD else Typeface.NORMAL)
|
||||||
|
|
||||||
if (!settingsItem.isEditable) textView.paintFlags =
|
if (settingsItem.isEditable) {
|
||||||
textView.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
textView.paintFlags =
|
||||||
|
textView.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
|
||||||
|
} else {
|
||||||
|
textView.paintFlags =
|
||||||
|
textView.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,23 +5,49 @@ package org.dolphinemu.dolphinemu.model
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
|
import androidx.lifecycle.map
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A [ViewModel] associated with a task that runs on [Dispatchers.IO] and yields an integer result.
|
||||||
|
*/
|
||||||
class TaskViewModel : ViewModel() {
|
class TaskViewModel : ViewModel() {
|
||||||
|
/** Represents the execution state of the task associated with this [TaskViewModel]. */
|
||||||
|
private interface State {
|
||||||
|
/** Returns true if the task has started running and false otherwise. */
|
||||||
|
fun hasStarted() : Boolean
|
||||||
|
|
||||||
|
/** Returns the task's result if it has completed or null otherwise. */
|
||||||
|
fun result() : Int?
|
||||||
|
}
|
||||||
|
|
||||||
|
private class NotStartedState : State {
|
||||||
|
override fun hasStarted() : Boolean { return false; }
|
||||||
|
override fun result() : Int? { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RunningState : State {
|
||||||
|
override fun hasStarted() : Boolean { return true; }
|
||||||
|
override fun result() : Int? { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private class CompletedState(private val result: Int) : State {
|
||||||
|
override fun hasStarted() : Boolean { return true; }
|
||||||
|
override fun result() : Int { return result; }
|
||||||
|
}
|
||||||
|
|
||||||
var cancelled = false
|
var cancelled = false
|
||||||
var mustRestartApp = false
|
var mustRestartApp = false
|
||||||
|
|
||||||
private val _result = MutableLiveData<Int>()
|
private val state = MutableLiveData<State>(NotStartedState())
|
||||||
val result: LiveData<Int> get() = _result
|
|
||||||
|
|
||||||
private val _isComplete = MutableLiveData<Boolean>()
|
/** Yields the result of [task] if it has completed or null otherwise. */
|
||||||
val isComplete: LiveData<Boolean> get() = _isComplete
|
val result: LiveData<Int?> get() = state.map {
|
||||||
|
state -> state.result()
|
||||||
|
}
|
||||||
|
|
||||||
private val _isRunning = MutableLiveData<Boolean>()
|
lateinit var task: () -> Int
|
||||||
val isRunning: LiveData<Boolean> get() = _isRunning
|
|
||||||
|
|
||||||
lateinit var task: () -> Unit
|
|
||||||
var onResultDismiss: (() -> Unit)? = null
|
var onResultDismiss: (() -> Unit)? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
@ -29,28 +55,23 @@ class TaskViewModel : ViewModel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clear() {
|
fun clear() {
|
||||||
_result.value = 0
|
state.value = NotStartedState()
|
||||||
_isComplete.value = false
|
|
||||||
cancelled = false
|
cancelled = false
|
||||||
mustRestartApp = false
|
mustRestartApp = false
|
||||||
onResultDismiss = null
|
onResultDismiss = null
|
||||||
_isRunning.value = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun runTask() {
|
fun runTask() {
|
||||||
if (isRunning.value == true) return
|
if (state.value!!.hasStarted()) {
|
||||||
_isRunning.value = true
|
return
|
||||||
|
}
|
||||||
|
state.value = RunningState()
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
task.invoke()
|
val result = task.invoke()
|
||||||
_isRunning.postValue(false)
|
state.postValue(CompletedState(result))
|
||||||
_isComplete.postValue(true)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setResult(result: Int) {
|
|
||||||
_result.postValue(result)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,12 +103,16 @@
|
||||||
<item>@string/device_dummy</item>
|
<item>@string/device_dummy</item>
|
||||||
<item>@string/broadband_adapter_xlink</item>
|
<item>@string/broadband_adapter_xlink</item>
|
||||||
<item>@string/broadband_adapter_hle</item>
|
<item>@string/broadband_adapter_hle</item>
|
||||||
|
<item>@string/broadband_adapter_tapserver</item>
|
||||||
|
<item>@string/modem_adapter_tapserver</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<integer-array name="serialPort1DeviceValues">
|
<integer-array name="serialPort1DeviceValues">
|
||||||
<item>255</item>
|
<item>255</item>
|
||||||
<item>0</item>
|
<item>0</item>
|
||||||
<item>10</item>
|
<item>10</item>
|
||||||
<item>12</item>
|
<item>12</item>
|
||||||
|
<item>11</item>
|
||||||
|
<item>13</item>
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
<!-- Wii System Languages -->
|
<!-- Wii System Languages -->
|
||||||
|
|
|
@ -133,6 +133,10 @@
|
||||||
<string name="xlink_kai_guide_header">For setup instructions, <a href="https://www.teamxlink.co.uk/wiki/Dolphin">refer to this page.</a></string>
|
<string name="xlink_kai_guide_header">For setup instructions, <a href="https://www.teamxlink.co.uk/wiki/Dolphin">refer to this page.</a></string>
|
||||||
<string name="xlink_kai_bba_ip">XLink Kai IP Address/hostname</string>
|
<string name="xlink_kai_bba_ip">XLink Kai IP Address/hostname</string>
|
||||||
<string name="xlink_kai_bba_ip_description">IP address or hostname of device running the XLink Kai client</string>
|
<string name="xlink_kai_bba_ip_description">IP address or hostname of device running the XLink Kai client</string>
|
||||||
|
<string name="bba_tapserver_destination">Tapserver destination</string>
|
||||||
|
<string name="bba_tapserver_destination_description">Enter the socket path or netloc (address:port) of the tapserver instance</string>
|
||||||
|
<string name="modem_tapserver_destination">Tapserver destination</string>
|
||||||
|
<string name="modem_tapserver_destination_description">Enter the socket path or netloc (address:port) of the tapserver instance</string>
|
||||||
<string name="bba_builtin_dns">DNS Server</string>
|
<string name="bba_builtin_dns">DNS Server</string>
|
||||||
<string name="bba_builtin_dns_description">Use 8.8.8.8 for normal DNS, else enter your custom one</string>
|
<string name="bba_builtin_dns_description">Use 8.8.8.8 for normal DNS, else enter your custom one</string>
|
||||||
|
|
||||||
|
@ -402,6 +406,9 @@
|
||||||
<string name="debug_fastmem">Disable Fastmem</string>
|
<string name="debug_fastmem">Disable Fastmem</string>
|
||||||
<string name="debug_fastmem_arena">Disable Fastmem Arena</string>
|
<string name="debug_fastmem_arena">Disable Fastmem Arena</string>
|
||||||
<string name="debug_large_entry_points_map">Disable Large Entry Points Map</string>
|
<string name="debug_large_entry_points_map">Disable Large Entry Points Map</string>
|
||||||
|
<string name="debug_jit_profiling_header">Jit Profiling</string>
|
||||||
|
<string name="debug_jit_enable_block_profiling">Enable Jit Block Profiling</string>
|
||||||
|
<string name="debug_jit_write_block_log_dump">Write Jit Block Log Dump</string>
|
||||||
<string name="debug_jit_header">Jit</string>
|
<string name="debug_jit_header">Jit</string>
|
||||||
<string name="debug_jitoff">Jit Disabled</string>
|
<string name="debug_jitoff">Jit Disabled</string>
|
||||||
<string name="debug_jitloadstoreoff">Jit Load Store Disabled</string>
|
<string name="debug_jitloadstoreoff">Jit Load Store Disabled</string>
|
||||||
|
@ -677,6 +684,8 @@ It can efficiently compress both junk data and encrypted Wii data.
|
||||||
<!-- Slot SP1 Device selection -->
|
<!-- Slot SP1 Device selection -->
|
||||||
<string name="broadband_adapter_xlink">Broadband Adapter (XLink Kai)</string>
|
<string name="broadband_adapter_xlink">Broadband Adapter (XLink Kai)</string>
|
||||||
<string name="broadband_adapter_hle">Broadband Adapter (HLE)</string>
|
<string name="broadband_adapter_hle">Broadband Adapter (HLE)</string>
|
||||||
|
<string name="broadband_adapter_tapserver">Broadband Adapter (tapserver)</string>
|
||||||
|
<string name="modem_adapter_tapserver">Modem Adapter (tapserver)</string>
|
||||||
|
|
||||||
<!-- Sound Mode -->
|
<!-- Sound Mode -->
|
||||||
<string name="sound_mode_mono">Mono</string>
|
<string name="sound_mode_mono">Mono</string>
|
||||||
|
|
|
@ -47,6 +47,6 @@ baselineProfile {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("androidx.test.ext:junit:1.1.5")
|
implementation("androidx.test.ext:junit:1.1.5")
|
||||||
implementation("androidx.test.espresso:espresso-core:3.5.1")
|
implementation("androidx.test.espresso:espresso-core:3.5.1")
|
||||||
implementation("androidx.test.uiautomator:uiautomator:2.2.0")
|
implementation("androidx.test.uiautomator:uiautomator:2.3.0")
|
||||||
implementation("androidx.benchmark:benchmark-macro-junit4:1.2.2")
|
implementation("androidx.benchmark:benchmark-macro-junit4:1.2.4")
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ static JavaVM* s_java_vm;
|
||||||
static jclass s_string_class;
|
static jclass s_string_class;
|
||||||
|
|
||||||
static jclass s_native_library_class;
|
static jclass s_native_library_class;
|
||||||
|
static jmethodID s_display_toast_msg;
|
||||||
static jmethodID s_display_alert_msg;
|
static jmethodID s_display_alert_msg;
|
||||||
static jmethodID s_update_touch_pointer;
|
static jmethodID s_update_touch_pointer;
|
||||||
static jmethodID s_on_title_changed;
|
static jmethodID s_on_title_changed;
|
||||||
|
@ -146,6 +147,11 @@ jclass GetNativeLibraryClass()
|
||||||
return s_native_library_class;
|
return s_native_library_class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jmethodID GetDisplayToastMsg()
|
||||||
|
{
|
||||||
|
return s_display_toast_msg;
|
||||||
|
}
|
||||||
|
|
||||||
jmethodID GetDisplayAlertMsg()
|
jmethodID GetDisplayAlertMsg()
|
||||||
{
|
{
|
||||||
return s_display_alert_msg;
|
return s_display_alert_msg;
|
||||||
|
@ -528,6 +534,8 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
|
||||||
|
|
||||||
const jclass native_library_class = env->FindClass("org/dolphinemu/dolphinemu/NativeLibrary");
|
const jclass native_library_class = env->FindClass("org/dolphinemu/dolphinemu/NativeLibrary");
|
||||||
s_native_library_class = reinterpret_cast<jclass>(env->NewGlobalRef(native_library_class));
|
s_native_library_class = reinterpret_cast<jclass>(env->NewGlobalRef(native_library_class));
|
||||||
|
s_display_toast_msg =
|
||||||
|
env->GetStaticMethodID(s_native_library_class, "displayToastMsg", "(Ljava/lang/String;Z)V");
|
||||||
s_display_alert_msg = env->GetStaticMethodID(s_native_library_class, "displayAlertMsg",
|
s_display_alert_msg = env->GetStaticMethodID(s_native_library_class, "displayAlertMsg",
|
||||||
"(Ljava/lang/String;Ljava/lang/String;ZZZ)Z");
|
"(Ljava/lang/String;Ljava/lang/String;ZZZ)Z");
|
||||||
s_update_touch_pointer =
|
s_update_touch_pointer =
|
||||||
|
|
|
@ -12,6 +12,7 @@ JNIEnv* GetEnvForThread();
|
||||||
jclass GetStringClass();
|
jclass GetStringClass();
|
||||||
|
|
||||||
jclass GetNativeLibraryClass();
|
jclass GetNativeLibraryClass();
|
||||||
|
jmethodID GetDisplayToastMsg();
|
||||||
jmethodID GetDisplayAlertMsg();
|
jmethodID GetDisplayAlertMsg();
|
||||||
jmethodID GetUpdateTouchPointer();
|
jmethodID GetUpdateTouchPointer();
|
||||||
jmethodID GetOnTitleChanged();
|
jmethodID GetOnTitleChanged();
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <android/native_window_jni.h>
|
#include <android/native_window_jni.h>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
#include <fmt/format.h>
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
#include "Common/Event.h"
|
#include "Common/Event.h"
|
||||||
#include "Common/FileUtil.h"
|
#include "Common/FileUtil.h"
|
||||||
#include "Common/Flag.h"
|
#include "Common/Flag.h"
|
||||||
|
#include "Common/IOFile.h"
|
||||||
#include "Common/IniFile.h"
|
#include "Common/IniFile.h"
|
||||||
#include "Common/Logging/LogManager.h"
|
#include "Common/Logging/LogManager.h"
|
||||||
#include "Common/MsgHandler.h"
|
#include "Common/MsgHandler.h"
|
||||||
|
@ -42,7 +44,6 @@
|
||||||
#include "Core/Host.h"
|
#include "Core/Host.h"
|
||||||
#include "Core/PowerPC/JitInterface.h"
|
#include "Core/PowerPC/JitInterface.h"
|
||||||
#include "Core/PowerPC/PowerPC.h"
|
#include "Core/PowerPC/PowerPC.h"
|
||||||
#include "Core/PowerPC/Profiler.h"
|
|
||||||
#include "Core/State.h"
|
#include "Core/State.h"
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
|
|
||||||
|
@ -96,7 +97,7 @@ std::vector<std::string> Host_GetPreferredLocales()
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void Host_NotifyMapLoaded()
|
void Host_PPCSymbolsChanged()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +118,7 @@ void Host_Message(HostMessageID id)
|
||||||
}
|
}
|
||||||
else if (id == HostMessageID::WMUserStop)
|
else if (id == HostMessageID::WMUserStop)
|
||||||
{
|
{
|
||||||
if (Core::IsRunning())
|
if (Core::IsRunning(Core::System::GetInstance()))
|
||||||
Core::QueueHostJob(&Core::Stop);
|
Core::QueueHostJob(&Core::Stop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -246,19 +247,19 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_UnPauseEmula
|
||||||
jclass)
|
jclass)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
Core::SetState(Core::State::Running);
|
Core::SetState(Core::System::GetInstance(), Core::State::Running);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_PauseEmulation(JNIEnv*, jclass)
|
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_PauseEmulation(JNIEnv*, jclass)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
Core::SetState(Core::State::Paused);
|
Core::SetState(Core::System::GetInstance(), Core::State::Paused);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_StopEmulation(JNIEnv*, jclass)
|
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_StopEmulation(JNIEnv*, jclass)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
Core::Stop();
|
Core::Stop(Core::System::GetInstance());
|
||||||
|
|
||||||
// Kick the waiting event
|
// Kick the waiting event
|
||||||
s_update_main_frame_event.Set();
|
s_update_main_frame_event.Set();
|
||||||
|
@ -271,7 +272,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetIsBooting
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunning(JNIEnv*, jclass)
|
JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunning(JNIEnv*, jclass)
|
||||||
{
|
{
|
||||||
return s_is_booting.IsSet() || static_cast<jboolean>(Core::IsRunning());
|
return s_is_booting.IsSet() ||
|
||||||
|
static_cast<jboolean>(Core::IsRunning(Core::System::GetInstance()));
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunningAndStarted(JNIEnv*,
|
JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunningAndStarted(JNIEnv*,
|
||||||
|
@ -283,7 +285,7 @@ JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunnin
|
||||||
JNIEXPORT jboolean JNICALL
|
JNIEXPORT jboolean JNICALL
|
||||||
Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunningAndUnpaused(JNIEnv*, jclass)
|
Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunningAndUnpaused(JNIEnv*, jclass)
|
||||||
{
|
{
|
||||||
return static_cast<jboolean>(Core::GetState() == Core::State::Running);
|
return static_cast<jboolean>(Core::GetState(Core::System::GetInstance()) == Core::State::Running);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetVersionString(JNIEnv* env,
|
JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetVersionString(JNIEnv* env,
|
||||||
|
@ -315,7 +317,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SaveState(JN
|
||||||
jboolean wait)
|
jboolean wait)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
State::Save(slot, wait);
|
State::Save(Core::System::GetInstance(), slot, wait);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SaveStateAs(JNIEnv* env, jclass,
|
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SaveStateAs(JNIEnv* env, jclass,
|
||||||
|
@ -323,21 +325,21 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SaveStateAs(
|
||||||
jboolean wait)
|
jboolean wait)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
State::SaveAs(GetJString(env, path), wait);
|
State::SaveAs(Core::System::GetInstance(), GetJString(env, path), wait);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_LoadState(JNIEnv*, jclass,
|
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_LoadState(JNIEnv*, jclass,
|
||||||
jint slot)
|
jint slot)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
State::Load(slot);
|
State::Load(Core::System::GetInstance(), slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_LoadStateAs(JNIEnv* env, jclass,
|
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_LoadStateAs(JNIEnv* env, jclass,
|
||||||
jstring path)
|
jstring path)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
State::LoadAs(GetJString(env, path));
|
State::LoadAs(Core::System::GetInstance(), GetJString(env, path));
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jlong JNICALL
|
JNIEXPORT jlong JNICALL
|
||||||
|
@ -404,26 +406,34 @@ JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetMaxLogLev
|
||||||
return static_cast<jint>(Common::Log::MAX_LOGLEVEL);
|
return static_cast<jint>(Common::Log::MAX_LOGLEVEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetProfiling(JNIEnv*, jclass,
|
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_WriteJitBlockLogDump(
|
||||||
jboolean enable)
|
JNIEnv* env, jclass native_library_class)
|
||||||
{
|
{
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
Core::SetState(Core::State::Paused);
|
auto& system = Core::System::GetInstance();
|
||||||
auto& jit_interface = Core::System::GetInstance().GetJitInterface();
|
auto& jit_interface = system.GetJitInterface();
|
||||||
jit_interface.ClearCache();
|
if (jit_interface.GetCore() == nullptr)
|
||||||
jit_interface.SetProfilingState(enable ? JitInterface::ProfilingState::Enabled :
|
{
|
||||||
JitInterface::ProfilingState::Disabled);
|
env->CallStaticVoidMethod(native_library_class, IDCache::GetDisplayToastMsg(),
|
||||||
Core::SetState(Core::State::Running);
|
ToJString(env, Common::GetStringT("JIT is not active")),
|
||||||
}
|
static_cast<jboolean>(false));
|
||||||
|
return;
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_WriteProfileResults(JNIEnv*,
|
}
|
||||||
jclass)
|
const std::string filename = fmt::format("{}{}.txt", File::GetUserPath(D_DUMPDEBUG_JITBLOCKS_IDX),
|
||||||
{
|
SConfig::GetInstance().GetGameID());
|
||||||
HostThreadLock guard;
|
File::IOFile f(filename, "w");
|
||||||
std::string filename = File::GetUserPath(D_DUMP_IDX) + "Debug/profiler.txt";
|
if (!f)
|
||||||
File::CreateFullPath(filename);
|
{
|
||||||
auto& jit_interface = Core::System::GetInstance().GetJitInterface();
|
env->CallStaticVoidMethod(
|
||||||
jit_interface.WriteProfileResults(filename);
|
native_library_class, IDCache::GetDisplayToastMsg(),
|
||||||
|
ToJString(env, Common::FmtFormatT("Failed to open \"{0}\" for writing.", filename)),
|
||||||
|
static_cast<jboolean>(false));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
jit_interface.JitBlockLogDump(Core::CPUThreadGuard{system}, f.GetHandle());
|
||||||
|
env->CallStaticVoidMethod(native_library_class, IDCache::GetDisplayToastMsg(),
|
||||||
|
ToJString(env, Common::FmtFormatT("Wrote to \"{0}\".", filename)),
|
||||||
|
static_cast<jboolean>(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Surface Handling
|
// Surface Handling
|
||||||
|
@ -458,8 +468,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SurfaceDestr
|
||||||
host_identity_guard.Lock();
|
host_identity_guard.Lock();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Core::GetState() == Core::State::Running)
|
if (Core::GetState(Core::System::GetInstance()) == Core::State::Running)
|
||||||
Core::SetState(Core::State::Paused);
|
Core::SetState(Core::System::GetInstance(), Core::State::Paused);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::lock_guard surface_guard(s_surface_lock);
|
std::lock_guard surface_guard(s_surface_lock);
|
||||||
|
@ -515,7 +525,6 @@ Java_org_dolphinemu_dolphinemu_NativeLibrary_UpdateGCAdapterScanThread(JNIEnv*,
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Initialize(JNIEnv*, jclass)
|
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Initialize(JNIEnv*, jclass)
|
||||||
{
|
{
|
||||||
// InitControllers ends up calling config code, and some config callbacks use RunAsCPUThread
|
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
|
|
||||||
UICommon::CreateDirectories();
|
UICommon::CreateDirectories();
|
||||||
|
@ -570,10 +579,10 @@ static void Run(JNIEnv* env, std::unique_ptr<BootParameters>&& boot, bool riivol
|
||||||
s_need_nonblocking_alert_msg = true;
|
s_need_nonblocking_alert_msg = true;
|
||||||
std::unique_lock<std::mutex> surface_guard(s_surface_lock);
|
std::unique_lock<std::mutex> surface_guard(s_surface_lock);
|
||||||
|
|
||||||
if (BootManager::BootCore(std::move(boot), wsi))
|
if (BootManager::BootCore(Core::System::GetInstance(), std::move(boot), wsi))
|
||||||
{
|
{
|
||||||
static constexpr int WAIT_STEP = 25;
|
static constexpr int WAIT_STEP = 25;
|
||||||
while (Core::GetState() == Core::State::Starting)
|
while (Core::GetState(Core::System::GetInstance()) == Core::State::Starting)
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(WAIT_STEP));
|
std::this_thread::sleep_for(std::chrono::milliseconds(WAIT_STEP));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -581,16 +590,16 @@ static void Run(JNIEnv* env, std::unique_ptr<BootParameters>&& boot, bool riivol
|
||||||
s_need_nonblocking_alert_msg = false;
|
s_need_nonblocking_alert_msg = false;
|
||||||
surface_guard.unlock();
|
surface_guard.unlock();
|
||||||
|
|
||||||
while (Core::IsRunning())
|
while (Core::IsRunning(Core::System::GetInstance()))
|
||||||
{
|
{
|
||||||
host_identity_guard.Unlock();
|
host_identity_guard.Unlock();
|
||||||
s_update_main_frame_event.Wait();
|
s_update_main_frame_event.Wait();
|
||||||
host_identity_guard.Lock();
|
host_identity_guard.Lock();
|
||||||
Core::HostDispatchJobs();
|
Core::HostDispatchJobs(Core::System::GetInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
s_game_metadata_is_valid = false;
|
s_game_metadata_is_valid = false;
|
||||||
Core::Shutdown();
|
Core::Shutdown(Core::System::GetInstance());
|
||||||
host_identity_guard.Unlock();
|
host_identity_guard.Unlock();
|
||||||
|
|
||||||
env->CallStaticVoidMethod(IDCache::GetNativeLibraryClass(),
|
env->CallStaticVoidMethod(IDCache::GetNativeLibraryClass(),
|
||||||
|
@ -635,7 +644,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_ChangeDisc(J
|
||||||
HostThreadLock guard;
|
HostThreadLock guard;
|
||||||
const std::string path = GetJString(env, jFile);
|
const std::string path = GetJString(env, jFile);
|
||||||
__android_log_print(ANDROID_LOG_INFO, DOLPHIN_TAG, "Change Disc: %s", path.c_str());
|
__android_log_print(ANDROID_LOG_INFO, DOLPHIN_TAG, "Change Disc: %s", path.c_str());
|
||||||
Core::RunAsCPUThread([&path] { Core::System::GetInstance().GetDVDInterface().ChangeDisc(path); });
|
auto& system = Core::System::GetInstance();
|
||||||
|
system.GetDVDInterface().ChangeDisc(Core::CPUThreadGuard{system}, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jobject JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetLogTypeNames(JNIEnv* env,
|
JNIEXPORT jobject JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetLogTypeNames(JNIEnv* env,
|
||||||
|
|
|
@ -41,6 +41,8 @@ else()
|
||||||
check_and_add_flag(UNINITIALIZED -Wuninitialized)
|
check_and_add_flag(UNINITIALIZED -Wuninitialized)
|
||||||
check_and_add_flag(LOGICAL_OP -Wlogical-op)
|
check_and_add_flag(LOGICAL_OP -Wlogical-op)
|
||||||
check_and_add_flag(SHADOW -Wshadow)
|
check_and_add_flag(SHADOW -Wshadow)
|
||||||
|
check_and_add_flag(SHADOW_FIELD_IN_CONSTRUCTOR -Wshadow-field-in-constructor)
|
||||||
|
check_and_add_flag(SHADOW_UNCAPTURED_LOCAL -Wshadow-uncaptured-local)
|
||||||
check_and_add_flag(INIT_SELF -Winit-self)
|
check_and_add_flag(INIT_SELF -Winit-self)
|
||||||
check_and_add_flag(MISSING_DECLARATIONS -Wmissing-declarations)
|
check_and_add_flag(MISSING_DECLARATIONS -Wmissing-declarations)
|
||||||
check_and_add_flag(MISSING_VARIABLE_DECLARATIONS -Wmissing-variable-declarations)
|
check_and_add_flag(MISSING_VARIABLE_DECLARATIONS -Wmissing-variable-declarations)
|
||||||
|
|
|
@ -100,7 +100,9 @@ std::string GetDefaultSoundBackend()
|
||||||
#elif defined __linux__
|
#elif defined __linux__
|
||||||
if (AlsaSound::IsValid())
|
if (AlsaSound::IsValid())
|
||||||
backend = BACKEND_ALSA;
|
backend = BACKEND_ALSA;
|
||||||
#elif defined(__APPLE__) || defined(_WIN32)
|
else
|
||||||
|
backend = BACKEND_CUBEB;
|
||||||
|
#elif defined(__APPLE__) || defined(_WIN32) || defined(__OpenBSD__)
|
||||||
backend = BACKEND_CUBEB;
|
backend = BACKEND_CUBEB;
|
||||||
#endif
|
#endif
|
||||||
return backend;
|
return backend;
|
||||||
|
|
|
@ -25,7 +25,8 @@ static void LogCallback(const char* format, ...)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
constexpr auto log_type = Common::Log::LogType::AUDIO;
|
constexpr auto log_type = Common::Log::LogType::AUDIO;
|
||||||
if (!instance->IsEnabled(log_type))
|
constexpr auto log_level = Common::Log::LogLevel::LINFO;
|
||||||
|
if (!instance->IsEnabled(log_type, log_level))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
va_list args;
|
va_list args;
|
||||||
|
@ -36,8 +37,7 @@ static void LogCallback(const char* format, ...)
|
||||||
const std::string message = StringFromFormatV(adapted_format.c_str(), args);
|
const std::string message = StringFromFormatV(adapted_format.c_str(), args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
instance->LogWithFullPath(Common::Log::LogLevel::LNOTICE, log_type, filename, lineno,
|
instance->LogWithFullPath(log_level, log_type, filename, lineno, message.c_str());
|
||||||
message.c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DestroyContext(cubeb* ctx)
|
static void DestroyContext(cubeb* ctx)
|
||||||
|
|
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