early-access version 2728
This commit is contained in:
parent
b6d4502249
commit
dab6a0fe35
8 changed files with 23 additions and 43 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 2725.
|
This is the source code for early-access 2728.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
9
externals/sirit/CMakeLists.txt
vendored
9
externals/sirit/CMakeLists.txt
vendored
|
@ -10,6 +10,10 @@ if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||||
set(MASTER_PROJECT ON)
|
set(MASTER_PROJECT ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Sirit project options
|
||||||
|
option(SIRIT_TESTS "Build tests" OFF)
|
||||||
|
option(SIRIT_USE_SYSTEM_SPIRV_HEADERS "Use system SPIR-V headers" OFF)
|
||||||
|
|
||||||
# Default to a Release build
|
# Default to a Release build
|
||||||
if (NOT CMAKE_BUILD_TYPE)
|
if (NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
||||||
|
@ -81,7 +85,12 @@ endif()
|
||||||
enable_testing(true)
|
enable_testing(true)
|
||||||
|
|
||||||
# SPIR-V headers
|
# SPIR-V headers
|
||||||
|
if (SIRIT_USE_SYSTEM_SPIRV_HEADERS)
|
||||||
|
find_package(SPIRV-Headers REQUIRED)
|
||||||
|
else()
|
||||||
add_subdirectory(externals/SPIRV-Headers EXCLUDE_FROM_ALL)
|
add_subdirectory(externals/SPIRV-Headers EXCLUDE_FROM_ALL)
|
||||||
|
add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Sirit project files
|
# Sirit project files
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
5
externals/sirit/src/CMakeLists.txt
vendored
5
externals/sirit/src/CMakeLists.txt
vendored
|
@ -27,5 +27,6 @@ target_compile_options(sirit PRIVATE ${SIRIT_CXX_FLAGS})
|
||||||
|
|
||||||
target_include_directories(sirit
|
target_include_directories(sirit
|
||||||
PUBLIC ../include
|
PUBLIC ../include
|
||||||
PRIVATE . ${SPIRV-Headers_SOURCE_DIR}/include
|
PRIVATE .)
|
||||||
INTERFACE ${SPIRV-Headers_SOURCE_DIR}/include)
|
|
||||||
|
target_link_libraries(sirit PUBLIC SPIRV-Headers::SPIRV-Headers)
|
||||||
|
|
|
@ -20,7 +20,7 @@ struct fmt::formatter<Dynarmic::A32::CoprocReg> {
|
||||||
}
|
}
|
||||||
template <typename FormatContext>
|
template <typename FormatContext>
|
||||||
auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) {
|
auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) {
|
||||||
return format_to(ctx.out(), "cp{}", static_cast<size_t>(reg));
|
return fmt::format_to(ctx.out(), "cp{}", static_cast<size_t>(reg));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -631,11 +631,14 @@ void EmulatedController::SetButton(const Common::Input::CallbackStatus& callback
|
||||||
|
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
|
||||||
// Reconnect controller if input is detected
|
|
||||||
if (!is_connected) {
|
if (!is_connected) {
|
||||||
TryReconnectController(index);
|
if (npad_id_type == NpadIdType::Player1 && npad_type != NpadStyleIndex::Handheld) {
|
||||||
|
Connect();
|
||||||
|
}
|
||||||
|
if (npad_id_type == NpadIdType::Handheld && npad_type == NpadStyleIndex::Handheld) {
|
||||||
|
Connect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TriggerOnChange(ControllerTriggerType::Button, true);
|
TriggerOnChange(ControllerTriggerType::Button, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -987,33 +990,6 @@ bool EmulatedController::IsControllerSupported(bool use_temporary_value) const {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void EmulatedController::TryReconnectController(std::size_t button_index) {
|
|
||||||
if (button_index >= button_params.size()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const auto engine = button_params[button_index].Get("engine", "");
|
|
||||||
bool reconnect_controller = false;
|
|
||||||
|
|
||||||
// TAS is not allowed to turn on controllers
|
|
||||||
if (engine == "tas") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Only connect the controller if button config is custom
|
|
||||||
if (engine != "keyboard") {
|
|
||||||
reconnect_controller = true;
|
|
||||||
}
|
|
||||||
if (npad_id_type == NpadIdType::Player1 && npad_type != NpadStyleIndex::Handheld) {
|
|
||||||
reconnect_controller = true;
|
|
||||||
}
|
|
||||||
if (npad_id_type == NpadIdType::Handheld && npad_type == NpadStyleIndex::Handheld) {
|
|
||||||
reconnect_controller = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (reconnect_controller) {
|
|
||||||
Connect();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void EmulatedController::Connect(bool use_temporary_value) {
|
void EmulatedController::Connect(bool use_temporary_value) {
|
||||||
if (!IsControllerSupported(use_temporary_value)) {
|
if (!IsControllerSupported(use_temporary_value)) {
|
||||||
|
|
|
@ -166,12 +166,6 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetSupportedNpadStyleTag(NpadStyleTag supported_styles);
|
void SetSupportedNpadStyleTag(NpadStyleTag supported_styles);
|
||||||
|
|
||||||
/**
|
|
||||||
* Tries to turn on the controller if a button is pressed
|
|
||||||
* @param button_index index to verify if controller should be connected
|
|
||||||
*/
|
|
||||||
void TryReconnectController(std::size_t button_index);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the connected status to true
|
* Sets the connected status to true
|
||||||
* @param use_temporary_value If true tmp_npad_type will be used
|
* @param use_temporary_value If true tmp_npad_type will be used
|
||||||
|
|
|
@ -103,6 +103,6 @@ struct fmt::formatter<Shader::IR::Opcode> {
|
||||||
}
|
}
|
||||||
template <typename FormatContext>
|
template <typename FormatContext>
|
||||||
auto format(const Shader::IR::Opcode& op, FormatContext& ctx) {
|
auto format(const Shader::IR::Opcode& op, FormatContext& ctx) {
|
||||||
return format_to(ctx.out(), "{}", Shader::IR::NameOf(op));
|
return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(op));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,6 +24,6 @@ struct fmt::formatter<Shader::Maxwell::Opcode> {
|
||||||
}
|
}
|
||||||
template <typename FormatContext>
|
template <typename FormatContext>
|
||||||
auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) {
|
auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) {
|
||||||
return format_to(ctx.out(), "{}", NameOf(opcode));
|
return fmt::format_to(ctx.out(), "{}", NameOf(opcode));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue