mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-05-19 01:22:40 +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
|
||||
Source/Core/Common/scmrev.h
|
||||
# Ignore files output by build
|
||||
/cmake-build-debug
|
||||
/cmake-build-release
|
||||
/[Bb]uild*/
|
||||
/[Bb]inary*/
|
||||
/AppDir*/
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
include(RemoveCompileFlag)
|
||||
|
||||
macro(dolphin_disable_warnings_msvc _target)
|
||||
if (MSVC)
|
||||
macro(dolphin_disable_warnings _target)
|
||||
get_target_property(_target_cxx_flags ${_target} COMPILE_OPTIONS)
|
||||
if (_target_cxx_flags)
|
||||
set(new_flags "")
|
||||
|
@ -13,6 +12,9 @@ macro(dolphin_disable_warnings_msvc _target)
|
|||
endforeach()
|
||||
set_target_properties(${_target} PROPERTIES COMPILE_OPTIONS "${new_flags}")
|
||||
endif()
|
||||
if (MSVC)
|
||||
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()
|
||||
endmacro()
|
||||
|
|
|
@ -18,6 +18,10 @@ if(GIT_FOUND)
|
|||
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
||||
OUTPUT_VARIABLE DOLPHIN_WC_BRANCH
|
||||
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()
|
||||
|
||||
# version number
|
||||
|
@ -35,12 +39,7 @@ if(NOT DOLPHIN_WC_REVISION)
|
|||
set(DOLPHIN_WC_DESCRIBE "${DOLPHIN_VERSION_MAJOR}.${DOLPHIN_VERSION_MINOR}")
|
||||
set(DOLPHIN_WC_REVISION "${DOLPHIN_WC_DESCRIBE} (no further info)")
|
||||
set(DOLPHIN_WC_BRANCH "master")
|
||||
endif()
|
||||
|
||||
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")
|
||||
set(DOLPHIN_WC_COMMITS_AHEAD_MASTER 0)
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
|
|
|
@ -402,7 +402,7 @@ endif()
|
|||
# All commands and submodule commands also need to see these
|
||||
# changes, so just setting them in the project scope via
|
||||
# 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_REQUIRED_INCLUDES "/usr/local/include")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
|
||||
|
@ -504,14 +504,14 @@ if (OPENGL_GL)
|
|||
endif()
|
||||
|
||||
if(ENABLE_X11)
|
||||
find_package(X11)
|
||||
pkg_check_modules(X11 x11 IMPORTED_TARGET)
|
||||
if(X11_FOUND)
|
||||
add_definitions(-DHAVE_X11=1)
|
||||
check_lib(XRANDR xrandr Xrandr)
|
||||
pkg_check_modules(XRANDR xrandr IMPORTED_TARGET)
|
||||
if(XRANDR_FOUND)
|
||||
add_definitions(-DHAVE_XRANDR=1)
|
||||
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")
|
||||
else()
|
||||
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)
|
||||
|
||||
# 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(LZO Externals/LZO)
|
||||
|
@ -800,15 +802,16 @@ include_directories("${PROJECT_BINARY_DIR}/Source/Core")
|
|||
# Unit testing.
|
||||
#
|
||||
if(ENABLE_TESTS)
|
||||
find_package(GTest)
|
||||
if (GTEST_FOUND)
|
||||
message(STATUS "Using the system gtest")
|
||||
include_directories(${GTEST_INCLUDE_DIRS})
|
||||
else()
|
||||
message(STATUS "Using static gtest from Externals")
|
||||
add_subdirectory(Externals/gtest EXCLUDE_FROM_ALL)
|
||||
dolphin_find_optional_system_library_pkgconfig(GTEST
|
||||
gtest gtest::gtest Externals/gtest
|
||||
)
|
||||
# dolphin_find_optional_system_library_pkgconfig() doesn't add an alias if it
|
||||
# uses the bundled libraries, so we add one ourselves.
|
||||
if (NOT TARGET gtest::gtest)
|
||||
add_library(gtest::gtest ALIAS gtest)
|
||||
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)
|
||||
else()
|
||||
message(STATUS "Unit tests are disabled")
|
||||
|
|
|
@ -17,3 +17,7 @@
|
|||
# for the "Pitfall!" and "Lost Cavern" Atari 2600 games to render correctly.
|
||||
# Otherwise the retro games appear to be stuttering.
|
||||
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]
|
||||
# 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/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/Down = `Accel Down`
|
||||
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
|
||||
syntax.cc
|
||||
)
|
||||
dolphin_disable_warnings_msvc(bdisasm)
|
||||
dolphin_disable_warnings(bdisasm)
|
||||
|
||||
if (WIN32)
|
||||
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})
|
||||
dolphin_disable_warnings_msvc(FreeSurround)
|
||||
dolphin_disable_warnings(FreeSurround)
|
||||
target_include_directories(FreeSurround PUBLIC include)
|
||||
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
|
||||
minilzo.c
|
||||
)
|
||||
dolphin_disable_warnings_msvc(lzo2)
|
||||
dolphin_disable_warnings(lzo2)
|
||||
|
||||
target_include_directories(lzo2
|
||||
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)
|
||||
add_subdirectory(SDL)
|
||||
if (TARGET SDL2)
|
||||
dolphin_disable_warnings_msvc(SDL2)
|
||||
dolphin_disable_warnings(SDL2)
|
||||
endif()
|
||||
if (TARGET SDL2-static)
|
||||
dolphin_disable_warnings_msvc(SDL2-static)
|
||||
dolphin_disable_warnings(SDL2-static)
|
||||
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-network PUBLIC include PRIVATE src)
|
||||
target_link_libraries(sfml-network PUBLIC sfml-system)
|
||||
dolphin_disable_warnings_msvc(sfml-network)
|
||||
dolphin_disable_warnings_msvc(sfml-system)
|
||||
dolphin_disable_warnings(sfml-network)
|
||||
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::BZip2 ALIAS bzip2)
|
||||
dolphin_disable_warnings_msvc(bzip2)
|
||||
dolphin_disable_warnings(bzip2)
|
||||
|
||||
target_include_directories(bzip2
|
||||
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)
|
||||
|
||||
add_library(cpp-optparse STATIC ${SRCS})
|
||||
dolphin_disable_warnings_msvc(cpp-optparse)
|
||||
dolphin_disable_warnings(cpp-optparse)
|
||||
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_utils.cpp
|
||||
)
|
||||
dolphin_disable_warnings_msvc(cubeb)
|
||||
dolphin_disable_warnings(cubeb)
|
||||
target_include_directories(cubeb
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cubeb/include> $<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
@ -127,7 +127,7 @@ endif()
|
|||
|
||||
if(NOT TARGET speex)
|
||||
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)
|
||||
target_include_directories(speex INTERFACE cubeb/subprojects)
|
||||
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()
|
||||
|
||||
dolphin_disable_warnings_msvc(curl)
|
||||
dolphin_disable_warnings(curl)
|
||||
target_link_libraries(curl ${CURL_LIBS})
|
||||
target_include_directories(curl PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/curl/include")
|
||||
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)
|
||||
set(BASE_RPC_SRC ${BASE_RPC_SRC} connection_win.cpp discord_register_win.cpp)
|
||||
add_library(discord-rpc ${BASE_RPC_SRC})
|
||||
dolphin_disable_warnings_msvc(discord-rpc)
|
||||
dolphin_disable_warnings(discord-rpc)
|
||||
if (MSVC)
|
||||
if(USE_STATIC_CRT)
|
||||
foreach(CompilerFlag
|
||||
|
|
2
Externals/ed25519/CMakeLists.txt
vendored
2
Externals/ed25519/CMakeLists.txt
vendored
|
@ -11,4 +11,4 @@ add_library(ed25519
|
|||
sc.c
|
||||
sha512.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)
|
||||
|
||||
dolphin_disable_warnings_msvc(enet)
|
||||
dolphin_disable_warnings(enet)
|
||||
add_library(enet::enet ALIAS enet)
|
||||
|
||||
if (MINGW)
|
||||
|
|
2
Externals/fmt/CMakeLists.txt
vendored
2
Externals/fmt/CMakeLists.txt
vendored
|
@ -1,2 +1,2 @@
|
|||
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()
|
||||
|
||||
add_library(glslang STATIC ${SRCS})
|
||||
dolphin_disable_warnings_msvc(glslang)
|
||||
dolphin_disable_warnings(glslang)
|
||||
|
||||
target_include_directories(glslang
|
||||
PRIVATE
|
||||
|
|
2
Externals/hidapi/CMakeLists.txt
vendored
2
Externals/hidapi/CMakeLists.txt
vendored
|
@ -1,7 +1,7 @@
|
|||
project(hidapi)
|
||||
|
||||
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)
|
||||
|
||||
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})
|
||||
dolphin_disable_warnings_msvc(imgui)
|
||||
dolphin_disable_warnings(imgui)
|
||||
target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
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})
|
||||
dolphin_disable_warnings_msvc(implot)
|
||||
dolphin_disable_warnings(implot)
|
||||
target_include_directories(implot
|
||||
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/implot"
|
||||
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
|
||||
libcharset/include
|
||||
)
|
||||
dolphin_disable_warnings_msvc(iconv)
|
||||
dolphin_disable_warnings(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(LibLZMA::LibLZMA ALIAS lzma)
|
||||
dolphin_disable_warnings_msvc(lzma)
|
||||
dolphin_disable_warnings(lzma)
|
||||
|
||||
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_link_libraries(spng PUBLIC ZLIB::ZLIB)
|
||||
target_include_directories(spng PUBLIC libspng/spng)
|
||||
dolphin_disable_warnings_msvc(spng)
|
||||
dolphin_disable_warnings(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/sync.c
|
||||
)
|
||||
dolphin_disable_warnings_msvc(usb)
|
||||
dolphin_disable_warnings(usb)
|
||||
|
||||
set_target_properties(usb PROPERTIES VERSION 1.0.26)
|
||||
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)
|
||||
|
||||
dolphin_disable_warnings_msvc(lz4_static)
|
||||
dolphin_disable_warnings(lz4_static)
|
||||
add_library(LZ4::LZ4 ALIAS lz4_static)
|
||||
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(USE_LZMA ON)
|
||||
add_subdirectory(mgba EXCLUDE_FROM_ALL)
|
||||
dolphin_disable_warnings_msvc(mgba)
|
||||
dolphin_disable_warnings(mgba)
|
||||
|
||||
target_compile_definitions(mgba PUBLIC HAVE_CRC32)
|
||||
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)
|
||||
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)
|
||||
target_link_libraries(${mbedcrypto_static_target} PUBLIC ${libs})
|
||||
|
||||
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)
|
||||
target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target})
|
||||
|
||||
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)
|
||||
target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target})
|
||||
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
||||
|
||||
if(USE_SHARED_MBEDTLS_LIBRARY)
|
||||
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)
|
||||
target_link_libraries(${mbedcrypto_target} PUBLIC ${libs})
|
||||
|
||||
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)
|
||||
target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
|
||||
|
||||
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)
|
||||
target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
|
||||
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)
|
||||
|
||||
add_library(miniupnpc STATIC ${SRCS})
|
||||
dolphin_disable_warnings_msvc(miniupnpc)
|
||||
dolphin_disable_warnings(miniupnpc)
|
||||
target_include_directories(miniupnpc PUBLIC src)
|
||||
|
||||
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
|
||||
zip.h
|
||||
)
|
||||
dolphin_disable_warnings_msvc(minizip)
|
||||
dolphin_disable_warnings(minizip)
|
||||
|
||||
if (UNIX)
|
||||
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()
|
||||
add_library(pugixml STATIC ${SOURCES})
|
||||
endif()
|
||||
dolphin_disable_warnings_msvc(pugixml)
|
||||
dolphin_disable_warnings(pugixml)
|
||||
|
||||
set_target_properties(pugixml PROPERTIES VERSION 1.8 SOVERSION 1)
|
||||
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_runtime.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_error.h
|
||||
rcheevos/include/rc_export.h
|
||||
rcheevos/include/rc_hash.h
|
||||
rcheevos/include/rcheevos.h
|
||||
rcheevos/include/rc_runtime.h
|
||||
rcheevos/include/rc_runtime_types.h
|
||||
rcheevos/include/rc_url.h
|
||||
rcheevos/include/rc_util.h
|
||||
rcheevos/src/rapi/rc_api_common.c
|
||||
rcheevos/src/rapi/rc_api_common.h
|
||||
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_user.c
|
||||
rcheevos/src/rcheevos/alloc.c
|
||||
rcheevos/src/rcheevos/compat.c
|
||||
rcheevos/src/rcheevos/condition.c
|
||||
rcheevos/src/rcheevos/condset.c
|
||||
rcheevos/src/rcheevos/consoleinfo.c
|
||||
|
@ -26,7 +29,6 @@ add_library(rcheevos
|
|||
rcheevos/src/rcheevos/lboard.c
|
||||
rcheevos/src/rcheevos/memref.c
|
||||
rcheevos/src/rcheevos/operand.c
|
||||
rcheevos/src/rcheevos/rc_compat.h
|
||||
rcheevos/src/rcheevos/rc_internal.h
|
||||
rcheevos/src/rcheevos/rc_validate.c
|
||||
rcheevos/src/rcheevos/rc_validate.h
|
||||
|
@ -35,15 +37,30 @@ add_library(rcheevos
|
|||
rcheevos/src/rcheevos/runtime_progress.c
|
||||
rcheevos/src/rcheevos/trigger.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/md5.c
|
||||
rcheevos/src/rhash/md5.h
|
||||
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 INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
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")
|
||||
target_compile_definitions(rcheevos PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||
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_user.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\condset.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\trigger.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\md5.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>
|
||||
<ClInclude Include="rcheevos\include\rcheevos.h" />
|
||||
|
@ -48,21 +54,30 @@
|
|||
<ClInclude Include="rcheevos\include\rc_api_request.h" />
|
||||
<ClInclude Include="rcheevos\include\rc_api_runtime.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_error.h" />
|
||||
<ClInclude Include="rcheevos\include\rc_export.h" />
|
||||
<ClInclude Include="rcheevos\include\rc_hash.h" />
|
||||
<ClInclude Include="rcheevos\include\rc_runtime.h" />
|
||||
<ClInclude Include="rcheevos\include\rc_runtime_types.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\rcheevos\rc_compat.h" />
|
||||
<ClInclude Include="rcheevos\src\rcheevos\rc_internal.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\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>
|
||||
<ItemDefinitionGroup>
|
||||
<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>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
|
2
Externals/soundtouch/CMakeLists.txt
vendored
2
Externals/soundtouch/CMakeLists.txt
vendored
|
@ -19,4 +19,4 @@ set(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()
|
||||
|
||||
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_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
|
||||
tinygltf/tiny_gltf.cc)
|
||||
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)
|
||||
|
||||
add_library(xxhash STATIC xxHash/xxhash.c)
|
||||
dolphin_disable_warnings_msvc(xxhash)
|
||||
dolphin_disable_warnings(xxhash)
|
||||
target_include_directories(xxhash
|
||||
PUBLIC
|
||||
${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
|
||||
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})
|
||||
dolphin_disable_warnings_msvc(zstd)
|
||||
dolphin_disable_warnings(zstd)
|
||||
add_library(zstd::zstd ALIAS zstd)
|
||||
|
||||
target_include_directories(zstd
|
||||
|
|
3708
Languages/po/ar.po
3708
Languages/po/ar.po
File diff suppressed because it is too large
Load diff
3722
Languages/po/ca.po
3722
Languages/po/ca.po
File diff suppressed because it is too large
Load diff
3714
Languages/po/cs.po
3714
Languages/po/cs.po
File diff suppressed because it is too large
Load diff
3714
Languages/po/da.po
3714
Languages/po/da.po
File diff suppressed because it is too large
Load diff
4186
Languages/po/de.po
4186
Languages/po/de.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
3714
Languages/po/el.po
3714
Languages/po/el.po
File diff suppressed because it is too large
Load diff
3722
Languages/po/en.po
3722
Languages/po/en.po
File diff suppressed because it is too large
Load diff
3820
Languages/po/es.po
3820
Languages/po/es.po
File diff suppressed because it is too large
Load diff
3722
Languages/po/fa.po
3722
Languages/po/fa.po
File diff suppressed because it is too large
Load diff
3859
Languages/po/fi.po
3859
Languages/po/fi.po
File diff suppressed because it is too large
Load diff
3881
Languages/po/fr.po
3881
Languages/po/fr.po
File diff suppressed because it is too large
Load diff
3722
Languages/po/hr.po
3722
Languages/po/hr.po
File diff suppressed because it is too large
Load diff
3914
Languages/po/hu.po
3914
Languages/po/hu.po
File diff suppressed because it is too large
Load diff
3872
Languages/po/it.po
3872
Languages/po/it.po
File diff suppressed because it is too large
Load diff
3807
Languages/po/ja.po
3807
Languages/po/ja.po
File diff suppressed because it is too large
Load diff
3769
Languages/po/ko.po
3769
Languages/po/ko.po
File diff suppressed because it is too large
Load diff
3712
Languages/po/ms.po
3712
Languages/po/ms.po
File diff suppressed because it is too large
Load diff
3714
Languages/po/nb.po
3714
Languages/po/nb.po
File diff suppressed because it is too large
Load diff
4215
Languages/po/nl.po
4215
Languages/po/nl.po
File diff suppressed because it is too large
Load diff
3714
Languages/po/pl.po
3714
Languages/po/pl.po
File diff suppressed because it is too large
Load diff
3722
Languages/po/pt.po
3722
Languages/po/pt.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
3722
Languages/po/ro.po
3722
Languages/po/ro.po
File diff suppressed because it is too large
Load diff
5114
Languages/po/ru.po
5114
Languages/po/ru.po
File diff suppressed because it is too large
Load diff
3722
Languages/po/sr.po
3722
Languages/po/sr.po
File diff suppressed because it is too large
Load diff
3740
Languages/po/sv.po
3740
Languages/po/sv.po
File diff suppressed because it is too large
Load diff
5455
Languages/po/tr.po
5455
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
|
||||
|
||||
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
|
||||
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"))
|
||||
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.exifinterface:exifinterface:1.3.6")
|
||||
implementation("androidx.exifinterface:exifinterface:1.3.7")
|
||||
implementation("androidx.cardview:cardview:1.0.0")
|
||||
implementation("androidx.recyclerview:recyclerview:1.3.2")
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
|
||||
implementation("androidx.fragment:fragment-ktx:1.6.2")
|
||||
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.preference:preference-ktx:1.2.1")
|
||||
implementation("androidx.profileinstaller:profileinstaller:1.3.1")
|
||||
|
||||
// Kotlin extensions for lifecycle components
|
||||
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
|
||||
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.2")
|
||||
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
|
||||
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0")
|
||||
|
||||
// Android TV UI libraries.
|
||||
implementation("androidx.leanback:leanback:1.0.0")
|
||||
|
@ -145,10 +145,10 @@ dependencies {
|
|||
implementation("com.android.volley:volley:1.2.1")
|
||||
|
||||
// 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
|
||||
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")
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.dolphinemu.dolphinemu.utils.Log;
|
|||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.concurrent.Semaphore;
|
||||
|
||||
/**
|
||||
* Class which contains methods that interact
|
||||
|
@ -28,7 +29,7 @@ import java.util.LinkedHashMap;
|
|||
*/
|
||||
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 WeakReference<EmulationActivity> sEmulationActivity = new WeakReference<>(null);
|
||||
|
@ -385,16 +386,9 @@ public final class NativeLibrary
|
|||
public static native boolean IsRunningAndUnpaused();
|
||||
|
||||
/**
|
||||
* Enables or disables CPU block profiling
|
||||
*
|
||||
* @param enable
|
||||
* Writes out the JitBlock Cache log dump
|
||||
*/
|
||||
public static native void SetProfiling(boolean enable);
|
||||
|
||||
/**
|
||||
* Writes out the block profile results
|
||||
*/
|
||||
public static native void WriteProfileResults();
|
||||
public static native void WriteJitBlockLogDump();
|
||||
|
||||
/**
|
||||
* Native EGL functions not exposed by Java bindings
|
||||
|
@ -454,6 +448,14 @@ public final class NativeLibrary
|
|||
|
||||
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
|
||||
public static boolean displayAlertMsg(final String caption, final String text,
|
||||
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.
|
||||
if (emulationActivity == null || nonBlocking)
|
||||
{
|
||||
new Handler(Looper.getMainLooper()).post(
|
||||
() -> Toast.makeText(DolphinApplication.getAppContext(), text, Toast.LENGTH_LONG)
|
||||
.show());
|
||||
displayToastMsg(text, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -492,16 +492,13 @@ public final class NativeLibrary
|
|||
});
|
||||
|
||||
// Wait for the lock to notify that it is complete.
|
||||
synchronized (sAlertMessageLock)
|
||||
{
|
||||
try
|
||||
{
|
||||
sAlertMessageLock.wait();
|
||||
sAlertMessageSemaphore.acquire();
|
||||
}
|
||||
catch (Exception ignored)
|
||||
catch (InterruptedException ignored)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
if (yesNo)
|
||||
{
|
||||
|
@ -520,10 +517,7 @@ public final class NativeLibrary
|
|||
|
||||
public static void NotifyAlertMessageLock()
|
||||
{
|
||||
synchronized (sAlertMessageLock)
|
||||
{
|
||||
sAlertMessageLock.notify();
|
||||
}
|
||||
sAlertMessageSemaphore.release();
|
||||
}
|
||||
|
||||
public static void setEmulationActivity(EmulationActivity emulationActivity)
|
||||
|
|
|
@ -102,10 +102,7 @@ class UserDataActivity : AppCompatActivity() {
|
|||
dialog.show(supportFragmentManager, UserDataImportWarningDialog.TAG)
|
||||
} else if (requestCode == REQUEST_CODE_EXPORT && resultCode == RESULT_OK) {
|
||||
taskViewModel.clear()
|
||||
taskViewModel.task = {
|
||||
val resultResource = exportUserData(data!!.data!!)
|
||||
taskViewModel.setResult(resultResource)
|
||||
}
|
||||
taskViewModel.task = { exportUserData(data!!.data!!) }
|
||||
|
||||
val arguments = Bundle()
|
||||
arguments.putInt(TaskDialog.KEY_TITLE, R.string.export_in_progress)
|
||||
|
|
|
@ -34,14 +34,11 @@ class TaskDialog : DialogFragment() {
|
|||
val progressMessage = requireArguments().getInt(KEY_MESSAGE)
|
||||
if (progressMessage != 0) dialog.setMessage(resources.getString(progressMessage))
|
||||
|
||||
viewModel.isComplete.observe(this) { complete: Boolean ->
|
||||
if (complete && viewModel.result.value != null) {
|
||||
viewModel.result.observe(this) { result: Int? ->
|
||||
if (result != null) {
|
||||
dialog.dismiss()
|
||||
val notificationArguments = Bundle()
|
||||
notificationArguments.putInt(
|
||||
TaskCompleteDialog.KEY_MESSAGE,
|
||||
viewModel.result.value!!
|
||||
)
|
||||
notificationArguments.putInt(TaskCompleteDialog.KEY_MESSAGE, result)
|
||||
|
||||
val taskCompleteDialog = TaskCompleteDialog()
|
||||
taskCompleteDialog.arguments = notificationArguments
|
||||
|
|
|
@ -32,11 +32,9 @@ class UserDataImportWarningDialog : DialogFragment() {
|
|||
taskArguments.putBoolean(TaskDialog.KEY_CANCELLABLE, false)
|
||||
|
||||
taskViewModel.task = {
|
||||
taskViewModel.setResult(
|
||||
(requireActivity() as UserDataActivity).importUserData(
|
||||
requireArguments().getString(KEY_URI_RESULT)!!.toUri()
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
taskViewModel.onResultDismiss = {
|
||||
|
|
|
@ -214,6 +214,12 @@ enum class BooleanSetting(
|
|||
"JitRegisterCacheOff",
|
||||
false
|
||||
),
|
||||
MAIN_DEBUG_JIT_ENABLE_PROFILING(
|
||||
Settings.FILE_DOLPHIN,
|
||||
Settings.SECTION_DEBUG,
|
||||
"JitEnableProfiling",
|
||||
false
|
||||
),
|
||||
MAIN_EMULATE_SKYLANDER_PORTAL(
|
||||
Settings.FILE_DOLPHIN,
|
||||
Settings.SECTION_EMULATED_USB_DEVICES,
|
||||
|
|
|
@ -23,6 +23,18 @@ enum class StringSetting(
|
|||
"BBA_BUILTIN_DNS",
|
||||
"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(
|
||||
Settings.FILE_DOLPHIN,
|
||||
Settings.SECTION_INI_CORE,
|
||||
|
|
|
@ -1101,6 +1101,16 @@ class SettingsFragmentPresenter(
|
|||
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) {
|
||||
// Broadband Adapter (Built In)
|
||||
sl.add(
|
||||
|
@ -1111,6 +1121,16 @@ class SettingsFragmentPresenter(
|
|||
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(
|
||||
SwitchSetting(
|
||||
|
|
|
@ -28,9 +28,14 @@ abstract class SettingViewHolder(itemView: View, protected val adapter: Settings
|
|||
val overridden = settingsItem.isOverridden
|
||||
textView.setTypeface(null, if (overridden) Typeface.BOLD else Typeface.NORMAL)
|
||||
|
||||
if (!settingsItem.isEditable) textView.paintFlags =
|
||||
if (settingsItem.isEditable) {
|
||||
textView.paintFlags =
|
||||
textView.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
|
||||
} else {
|
||||
textView.paintFlags =
|
||||
textView.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by the adapter to set this ViewHolder's child views to display the list item
|
||||
|
|
|
@ -5,23 +5,49 @@ package org.dolphinemu.dolphinemu.model
|
|||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.map
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import kotlinx.coroutines.*
|
||||
|
||||
/**
|
||||
* A [ViewModel] associated with a task that runs on [Dispatchers.IO] and yields an integer result.
|
||||
*/
|
||||
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 mustRestartApp = false
|
||||
|
||||
private val _result = MutableLiveData<Int>()
|
||||
val result: LiveData<Int> get() = _result
|
||||
private val state = MutableLiveData<State>(NotStartedState())
|
||||
|
||||
private val _isComplete = MutableLiveData<Boolean>()
|
||||
val isComplete: LiveData<Boolean> get() = _isComplete
|
||||
/** Yields the result of [task] if it has completed or null otherwise. */
|
||||
val result: LiveData<Int?> get() = state.map {
|
||||
state -> state.result()
|
||||
}
|
||||
|
||||
private val _isRunning = MutableLiveData<Boolean>()
|
||||
val isRunning: LiveData<Boolean> get() = _isRunning
|
||||
|
||||
lateinit var task: () -> Unit
|
||||
lateinit var task: () -> Int
|
||||
var onResultDismiss: (() -> Unit)? = null
|
||||
|
||||
init {
|
||||
|
@ -29,28 +55,23 @@ class TaskViewModel : ViewModel() {
|
|||
}
|
||||
|
||||
fun clear() {
|
||||
_result.value = 0
|
||||
_isComplete.value = false
|
||||
state.value = NotStartedState()
|
||||
cancelled = false
|
||||
mustRestartApp = false
|
||||
onResultDismiss = null
|
||||
_isRunning.value = false
|
||||
}
|
||||
|
||||
fun runTask() {
|
||||
if (isRunning.value == true) return
|
||||
_isRunning.value = true
|
||||
if (state.value!!.hasStarted()) {
|
||||
return
|
||||
}
|
||||
state.value = RunningState()
|
||||
|
||||
viewModelScope.launch {
|
||||
withContext(Dispatchers.IO) {
|
||||
task.invoke()
|
||||
_isRunning.postValue(false)
|
||||
_isComplete.postValue(true)
|
||||
val result = task.invoke()
|
||||
state.postValue(CompletedState(result))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun setResult(result: Int) {
|
||||
_result.postValue(result)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,12 +103,16 @@
|
|||
<item>@string/device_dummy</item>
|
||||
<item>@string/broadband_adapter_xlink</item>
|
||||
<item>@string/broadband_adapter_hle</item>
|
||||
<item>@string/broadband_adapter_tapserver</item>
|
||||
<item>@string/modem_adapter_tapserver</item>
|
||||
</string-array>
|
||||
<integer-array name="serialPort1DeviceValues">
|
||||
<item>255</item>
|
||||
<item>0</item>
|
||||
<item>10</item>
|
||||
<item>12</item>
|
||||
<item>11</item>
|
||||
<item>13</item>
|
||||
</integer-array>
|
||||
|
||||
<!-- 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_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="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_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_arena">Disable Fastmem Arena</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_jitoff">Jit 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 -->
|
||||
<string name="broadband_adapter_xlink">Broadband Adapter (XLink Kai)</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 -->
|
||||
<string name="sound_mode_mono">Mono</string>
|
||||
|
|
|
@ -47,6 +47,6 @@ baselineProfile {
|
|||
dependencies {
|
||||
implementation("androidx.test.ext:junit:1.1.5")
|
||||
implementation("androidx.test.espresso:espresso-core:3.5.1")
|
||||
implementation("androidx.test.uiautomator:uiautomator:2.2.0")
|
||||
implementation("androidx.benchmark:benchmark-macro-junit4:1.2.2")
|
||||
implementation("androidx.test.uiautomator:uiautomator:2.3.0")
|
||||
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_native_library_class;
|
||||
static jmethodID s_display_toast_msg;
|
||||
static jmethodID s_display_alert_msg;
|
||||
static jmethodID s_update_touch_pointer;
|
||||
static jmethodID s_on_title_changed;
|
||||
|
@ -146,6 +147,11 @@ jclass GetNativeLibraryClass()
|
|||
return s_native_library_class;
|
||||
}
|
||||
|
||||
jmethodID GetDisplayToastMsg()
|
||||
{
|
||||
return s_display_toast_msg;
|
||||
}
|
||||
|
||||
jmethodID GetDisplayAlertMsg()
|
||||
{
|
||||
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");
|
||||
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",
|
||||
"(Ljava/lang/String;Ljava/lang/String;ZZZ)Z");
|
||||
s_update_touch_pointer =
|
||||
|
|
|
@ -12,6 +12,7 @@ JNIEnv* GetEnvForThread();
|
|||
jclass GetStringClass();
|
||||
|
||||
jclass GetNativeLibraryClass();
|
||||
jmethodID GetDisplayToastMsg();
|
||||
jmethodID GetDisplayAlertMsg();
|
||||
jmethodID GetUpdateTouchPointer();
|
||||
jmethodID GetOnTitleChanged();
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <android/native_window_jni.h>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <fmt/format.h>
|
||||
#include <jni.h>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
|
@ -22,6 +23,7 @@
|
|||
#include "Common/Event.h"
|
||||
#include "Common/FileUtil.h"
|
||||
#include "Common/Flag.h"
|
||||
#include "Common/IOFile.h"
|
||||
#include "Common/IniFile.h"
|
||||
#include "Common/Logging/LogManager.h"
|
||||
#include "Common/MsgHandler.h"
|
||||
|
@ -42,7 +44,6 @@
|
|||
#include "Core/Host.h"
|
||||
#include "Core/PowerPC/JitInterface.h"
|
||||
#include "Core/PowerPC/PowerPC.h"
|
||||
#include "Core/PowerPC/Profiler.h"
|
||||
#include "Core/State.h"
|
||||
#include "Core/System.h"
|
||||
|
||||
|
@ -96,7 +97,7 @@ std::vector<std::string> Host_GetPreferredLocales()
|
|||
return {};
|
||||
}
|
||||
|
||||
void Host_NotifyMapLoaded()
|
||||
void Host_PPCSymbolsChanged()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -117,7 +118,7 @@ void Host_Message(HostMessageID id)
|
|||
}
|
||||
else if (id == HostMessageID::WMUserStop)
|
||||
{
|
||||
if (Core::IsRunning())
|
||||
if (Core::IsRunning(Core::System::GetInstance()))
|
||||
Core::QueueHostJob(&Core::Stop);
|
||||
}
|
||||
}
|
||||
|
@ -246,19 +247,19 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_UnPauseEmula
|
|||
jclass)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
HostThreadLock guard;
|
||||
Core::Stop();
|
||||
Core::Stop(Core::System::GetInstance());
|
||||
|
||||
// Kick the waiting event
|
||||
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)
|
||||
{
|
||||
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*,
|
||||
|
@ -283,7 +285,7 @@ JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunnin
|
|||
JNIEXPORT jboolean JNICALL
|
||||
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,
|
||||
|
@ -315,7 +317,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SaveState(JN
|
|||
jboolean wait)
|
||||
{
|
||||
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,
|
||||
|
@ -323,21 +325,21 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SaveStateAs(
|
|||
jboolean wait)
|
||||
{
|
||||
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,
|
||||
jint slot)
|
||||
{
|
||||
HostThreadLock guard;
|
||||
State::Load(slot);
|
||||
State::Load(Core::System::GetInstance(), slot);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_LoadStateAs(JNIEnv* env, jclass,
|
||||
jstring path)
|
||||
{
|
||||
HostThreadLock guard;
|
||||
State::LoadAs(GetJString(env, path));
|
||||
State::LoadAs(Core::System::GetInstance(), GetJString(env, path));
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
|
@ -404,26 +406,34 @@ JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetMaxLogLev
|
|||
return static_cast<jint>(Common::Log::MAX_LOGLEVEL);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetProfiling(JNIEnv*, jclass,
|
||||
jboolean enable)
|
||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_WriteJitBlockLogDump(
|
||||
JNIEnv* env, jclass native_library_class)
|
||||
{
|
||||
HostThreadLock guard;
|
||||
Core::SetState(Core::State::Paused);
|
||||
auto& jit_interface = Core::System::GetInstance().GetJitInterface();
|
||||
jit_interface.ClearCache();
|
||||
jit_interface.SetProfilingState(enable ? JitInterface::ProfilingState::Enabled :
|
||||
JitInterface::ProfilingState::Disabled);
|
||||
Core::SetState(Core::State::Running);
|
||||
auto& system = Core::System::GetInstance();
|
||||
auto& jit_interface = system.GetJitInterface();
|
||||
if (jit_interface.GetCore() == nullptr)
|
||||
{
|
||||
env->CallStaticVoidMethod(native_library_class, IDCache::GetDisplayToastMsg(),
|
||||
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());
|
||||
File::IOFile f(filename, "w");
|
||||
if (!f)
|
||||
{
|
||||
HostThreadLock guard;
|
||||
std::string filename = File::GetUserPath(D_DUMP_IDX) + "Debug/profiler.txt";
|
||||
File::CreateFullPath(filename);
|
||||
auto& jit_interface = Core::System::GetInstance().GetJitInterface();
|
||||
jit_interface.WriteProfileResults(filename);
|
||||
env->CallStaticVoidMethod(
|
||||
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
|
||||
|
@ -458,8 +468,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SurfaceDestr
|
|||
host_identity_guard.Lock();
|
||||
}
|
||||
|
||||
if (Core::GetState() == Core::State::Running)
|
||||
Core::SetState(Core::State::Paused);
|
||||
if (Core::GetState(Core::System::GetInstance()) == Core::State::Running)
|
||||
Core::SetState(Core::System::GetInstance(), Core::State::Paused);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
// InitControllers ends up calling config code, and some config callbacks use RunAsCPUThread
|
||||
HostThreadLock guard;
|
||||
|
||||
UICommon::CreateDirectories();
|
||||
|
@ -570,10 +579,10 @@ static void Run(JNIEnv* env, std::unique_ptr<BootParameters>&& boot, bool riivol
|
|||
s_need_nonblocking_alert_msg = true;
|
||||
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;
|
||||
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));
|
||||
}
|
||||
|
||||
|
@ -581,16 +590,16 @@ static void Run(JNIEnv* env, std::unique_ptr<BootParameters>&& boot, bool riivol
|
|||
s_need_nonblocking_alert_msg = false;
|
||||
surface_guard.unlock();
|
||||
|
||||
while (Core::IsRunning())
|
||||
while (Core::IsRunning(Core::System::GetInstance()))
|
||||
{
|
||||
host_identity_guard.Unlock();
|
||||
s_update_main_frame_event.Wait();
|
||||
host_identity_guard.Lock();
|
||||
Core::HostDispatchJobs();
|
||||
Core::HostDispatchJobs(Core::System::GetInstance());
|
||||
}
|
||||
|
||||
s_game_metadata_is_valid = false;
|
||||
Core::Shutdown();
|
||||
Core::Shutdown(Core::System::GetInstance());
|
||||
host_identity_guard.Unlock();
|
||||
|
||||
env->CallStaticVoidMethod(IDCache::GetNativeLibraryClass(),
|
||||
|
@ -635,7 +644,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_ChangeDisc(J
|
|||
HostThreadLock guard;
|
||||
const std::string path = GetJString(env, jFile);
|
||||
__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,
|
||||
|
|
|
@ -41,6 +41,8 @@ else()
|
|||
check_and_add_flag(UNINITIALIZED -Wuninitialized)
|
||||
check_and_add_flag(LOGICAL_OP -Wlogical-op)
|
||||
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(MISSING_DECLARATIONS -Wmissing-declarations)
|
||||
check_and_add_flag(MISSING_VARIABLE_DECLARATIONS -Wmissing-variable-declarations)
|
||||
|
|
|
@ -100,7 +100,9 @@ std::string GetDefaultSoundBackend()
|
|||
#elif defined __linux__
|
||||
if (AlsaSound::IsValid())
|
||||
backend = BACKEND_ALSA;
|
||||
#elif defined(__APPLE__) || defined(_WIN32)
|
||||
else
|
||||
backend = BACKEND_CUBEB;
|
||||
#elif defined(__APPLE__) || defined(_WIN32) || defined(__OpenBSD__)
|
||||
backend = BACKEND_CUBEB;
|
||||
#endif
|
||||
return backend;
|
||||
|
|
|
@ -25,7 +25,8 @@ static void LogCallback(const char* format, ...)
|
|||
return;
|
||||
|
||||
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;
|
||||
|
||||
va_list args;
|
||||
|
@ -36,8 +37,7 @@ static void LogCallback(const char* format, ...)
|
|||
const std::string message = StringFromFormatV(adapted_format.c_str(), args);
|
||||
va_end(args);
|
||||
|
||||
instance->LogWithFullPath(Common::Log::LogLevel::LNOTICE, log_type, filename, lineno,
|
||||
message.c_str());
|
||||
instance->LogWithFullPath(log_level, log_type, filename, lineno, message.c_str());
|
||||
}
|
||||
|
||||
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