early-access version 2728

This commit is contained in:
pineappleEA 2022-05-17 10:14:37 +02:00
parent b6d4502249
commit dab6a0fe35
8 changed files with 23 additions and 43 deletions

View file

@ -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

View file

@ -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
add_subdirectory(externals/SPIRV-Headers EXCLUDE_FROM_ALL) if (SIRIT_USE_SYSTEM_SPIRV_HEADERS)
find_package(SPIRV-Headers REQUIRED)
else()
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)

View file

@ -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)

View file

@ -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));
} }
}; };

View file

@ -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)) {

View file

@ -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

View file

@ -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));
} }
}; };

View file

@ -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));
} }
}; };