mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	
						commit
						52fe15278b
					
				| @ -2,3 +2,4 @@ | |||||||
| 
 | 
 | ||||||
| brew update | brew update | ||||||
| brew install dylibbundler p7zip qt5 sdl2 | brew install dylibbundler p7zip qt5 sdl2 | ||||||
|  | brew outdated cmake || brew upgrade cmake | ||||||
|  | |||||||
| @ -39,7 +39,8 @@ public: | |||||||
|         Run(1); |         Run(1); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     virtual void MapBackingMemory(VAddr address, size_t size, u8* memory, Kernel::VMAPermission perms) {} |     virtual void MapBackingMemory(VAddr address, size_t size, u8* memory, | ||||||
|  |                                   Kernel::VMAPermission perms) {} | ||||||
| 
 | 
 | ||||||
|     /// Clear all instruction cache
 |     /// Clear all instruction cache
 | ||||||
|     virtual void ClearInstructionCache() = 0; |     virtual void ClearInstructionCache() = 0; | ||||||
|  | |||||||
| @ -19,7 +19,6 @@ constexpr size_t COMMAND_BUFFER_LENGTH = 0x100 / sizeof(u32); | |||||||
| // TODO(yuriks): These will probably go away once translation is implemented inside the kernel.
 | // TODO(yuriks): These will probably go away once translation is implemented inside the kernel.
 | ||||||
| constexpr auto ERR_INVALID_HANDLE = Kernel::ERR_INVALID_HANDLE_OS; | constexpr auto ERR_INVALID_HANDLE = Kernel::ERR_INVALID_HANDLE_OS; | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| enum class ControlCommand : u32 { | enum class ControlCommand : u32 { | ||||||
|     ConvertSessionToDomain = 0, |     ConvertSessionToDomain = 0, | ||||||
|     ConvertDomainToSession = 1, |     ConvertDomainToSession = 1, | ||||||
| @ -81,13 +80,13 @@ struct BufferDescriptorX { | |||||||
|     u32_le address_bits_0_31; |     u32_le address_bits_0_31; | ||||||
| 
 | 
 | ||||||
|     u32_le Counter() const { |     u32_le Counter() const { | ||||||
|         u32_le counter{ counter_bits_0_5 }; |         u32_le counter{counter_bits_0_5}; | ||||||
|         counter |= counter_bits_9_11 << 9; |         counter |= counter_bits_9_11 << 9; | ||||||
|         return counter; |         return counter; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     VAddr Address() const { |     VAddr Address() const { | ||||||
|         VAddr address{ address_bits_0_31 }; |         VAddr address{address_bits_0_31}; | ||||||
|         address |= static_cast<VAddr>(address_bits_32_35) << 32; |         address |= static_cast<VAddr>(address_bits_32_35) << 32; | ||||||
|         address |= static_cast<VAddr>(address_bits_36_38) << 36; |         address |= static_cast<VAddr>(address_bits_36_38) << 36; | ||||||
|         return address; |         return address; | ||||||
| @ -107,14 +106,14 @@ struct BufferDescriptorABW { | |||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     VAddr Address() const { |     VAddr Address() const { | ||||||
|         VAddr address{ address_bits_0_31 }; |         VAddr address{address_bits_0_31}; | ||||||
|         address |= static_cast<VAddr>(address_bits_32_35) << 32; |         address |= static_cast<VAddr>(address_bits_32_35) << 32; | ||||||
|         address |= static_cast<VAddr>(address_bits_36_38) << 36; |         address |= static_cast<VAddr>(address_bits_36_38) << 36; | ||||||
|         return address; |         return address; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     u64 Size() const { |     u64 Size() const { | ||||||
|         u64 size{ size_bits_0_31 }; |         u64 size{size_bits_0_31}; | ||||||
|         size |= static_cast<u64>(size_bits_32_35) << 32; |         size |= static_cast<u64>(size_bits_32_35) << 32; | ||||||
|         return size; |         return size; | ||||||
|     } |     } | ||||||
| @ -130,7 +129,7 @@ struct BufferDescriptorC { | |||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     VAddr Address() const { |     VAddr Address() const { | ||||||
|         VAddr address{ address_bits_0_31 }; |         VAddr address{address_bits_0_31}; | ||||||
|         address |= static_cast<VAddr>(address_bits_32_47) << 32; |         address |= static_cast<VAddr>(address_bits_32_47) << 32; | ||||||
|         return address; |         return address; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -151,13 +151,13 @@ public: | |||||||
|         return domain != nullptr; |         return domain != nullptr; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     template<typename T> |     template <typename T> | ||||||
|     SharedPtr<T> GetCopyObject(size_t index) { |     SharedPtr<T> GetCopyObject(size_t index) { | ||||||
|         ASSERT(index < copy_objects.size()); |         ASSERT(index < copy_objects.size()); | ||||||
|         return DynamicObjectCast<T>(copy_objects[index]); |         return DynamicObjectCast<T>(copy_objects[index]); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     template<typename T> |     template <typename T> | ||||||
|     SharedPtr<T> GetMoveObject(size_t index) { |     SharedPtr<T> GetMoveObject(size_t index) { | ||||||
|         ASSERT(index < move_objects.size()); |         ASSERT(index < move_objects.size()); | ||||||
|         return DynamicObjectCast<T>(move_objects[index]); |         return DynamicObjectCast<T>(move_objects[index]); | ||||||
|  | |||||||
| @ -105,7 +105,6 @@ public: | |||||||
|         UNREACHABLE(); |         UNREACHABLE(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| public: | public: | ||||||
|     static unsigned int next_object_id; |     static unsigned int next_object_id; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -95,10 +95,8 @@ MemoryRegionInfo* GetMemoryRegion(MemoryRegion region) { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void HandleSpecialMapping(VMManager& address_space, const AddressMapping& mapping) { | void HandleSpecialMapping(VMManager& address_space, const AddressMapping& mapping) {} | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| void MapSharedPages(VMManager& address_space) { | void MapSharedPages(VMManager& address_space) {} | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| } // namespace Kernel
 | } // namespace Kernel
 | ||||||
|  | |||||||
| @ -41,9 +41,9 @@ public: | |||||||
|         return HANDLE_TYPE; |         return HANDLE_TYPE; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     u32 priority;                     ///< The priority of the mutex, used for priority inheritance.
 |     u32 priority;     ///< The priority of the mutex, used for priority inheritance.
 | ||||||
|     std::string name;                 ///< Name of mutex (optional)
 |     std::string name; ///< Name of mutex (optional)
 | ||||||
|     VAddr guest_addr;                 ///< Address of the guest mutex value
 |     VAddr guest_addr; ///< Address of the guest mutex value
 | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * Elevate the mutex priority to the best priority |      * Elevate the mutex priority to the best priority | ||||||
|  | |||||||
| @ -255,9 +255,8 @@ static ResultCode CancelSynchronization(Handle thread_handle) { | |||||||
| /// Attempts to locks a mutex, creating it if it does not already exist
 | /// Attempts to locks a mutex, creating it if it does not already exist
 | ||||||
| static ResultCode LockMutex(Handle holding_thread_handle, VAddr mutex_addr, | static ResultCode LockMutex(Handle holding_thread_handle, VAddr mutex_addr, | ||||||
|                             Handle requesting_thread_handle) { |                             Handle requesting_thread_handle) { | ||||||
|     LOG_TRACE(Kernel_SVC, |     LOG_TRACE(Kernel_SVC, "called holding_thread_handle=0x%08X, mutex_addr=0x%llx, " | ||||||
|               "called holding_thread_handle=0x%08X, mutex_addr=0x%llx, " |                           "requesting_current_thread_handle=0x%08X", | ||||||
|               "requesting_current_thread_handle=0x%08X", |  | ||||||
|               holding_thread_handle, mutex_addr, requesting_thread_handle); |               holding_thread_handle, mutex_addr, requesting_thread_handle); | ||||||
| 
 | 
 | ||||||
|     SharedPtr<Thread> holding_thread = g_handle_table.Get<Thread>(holding_thread_handle); |     SharedPtr<Thread> holding_thread = g_handle_table.Get<Thread>(holding_thread_handle); | ||||||
| @ -522,9 +521,8 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V | |||||||
| 
 | 
 | ||||||
|     Core::System::GetInstance().PrepareReschedule(); |     Core::System::GetInstance().PrepareReschedule(); | ||||||
| 
 | 
 | ||||||
|     LOG_TRACE(Kernel_SVC, |     LOG_TRACE(Kernel_SVC, "called entrypoint=0x%08X (%s), arg=0x%08X, stacktop=0x%08X, " | ||||||
|               "called entrypoint=0x%08X (%s), arg=0x%08X, stacktop=0x%08X, " |                           "threadpriority=0x%08X, processorid=0x%08X : created handle=0x%08X", | ||||||
|               "threadpriority=0x%08X, processorid=0x%08X : created handle=0x%08X", |  | ||||||
|               entry_point, name.c_str(), arg, stack_top, priority, processor_id, *out_handle); |               entry_point, name.c_str(), arg, stack_top, priority, processor_id, *out_handle); | ||||||
| 
 | 
 | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
|  | |||||||
| @ -6,9 +6,9 @@ | |||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "core/arm/arm_interface.h" | #include "core/arm/arm_interface.h" | ||||||
|  | #include "core/core.h" | ||||||
| #include "core/hle/kernel/errors.h" | #include "core/hle/kernel/errors.h" | ||||||
| #include "core/hle/kernel/vm_manager.h" | #include "core/hle/kernel/vm_manager.h" | ||||||
| #include "core/core.h" |  | ||||||
| #include "core/memory.h" | #include "core/memory.h" | ||||||
| #include "core/memory_setup.h" | #include "core/memory_setup.h" | ||||||
| #include "core/mmio.h" | #include "core/mmio.h" | ||||||
| @ -86,7 +86,8 @@ ResultVal<VMManager::VMAHandle> VMManager::MapMemoryBlock(VAddr target, | |||||||
|     VirtualMemoryArea& final_vma = vma_handle->second; |     VirtualMemoryArea& final_vma = vma_handle->second; | ||||||
|     ASSERT(final_vma.size == size); |     ASSERT(final_vma.size == size); | ||||||
| 
 | 
 | ||||||
|     Core::CPU().MapBackingMemory(target, size, block->data() + offset, VMAPermission::ReadWriteExecute); |     Core::CPU().MapBackingMemory(target, size, block->data() + offset, | ||||||
|  |                                  VMAPermission::ReadWriteExecute); | ||||||
| 
 | 
 | ||||||
|     final_vma.type = VMAType::AllocatedMemoryBlock; |     final_vma.type = VMAType::AllocatedMemoryBlock; | ||||||
|     final_vma.permissions = VMAPermission::ReadWrite; |     final_vma.permissions = VMAPermission::ReadWrite; | ||||||
|  | |||||||
| @ -15,8 +15,7 @@ void InstallInterfaces(SM::ServiceManager& service_manager) { | |||||||
| 
 | 
 | ||||||
| APM::APM() : ServiceFramework("apm") { | APM::APM() : ServiceFramework("apm") { | ||||||
|     static const FunctionInfo functions[] = { |     static const FunctionInfo functions[] = { | ||||||
|         {0x00000000, nullptr, "OpenSession"}, |         {0x00000000, nullptr, "OpenSession"}, {0x00000001, nullptr, "GetPerformanceMode"}, | ||||||
|         {0x00000001, nullptr, "GetPerformanceMode"}, |  | ||||||
|     }; |     }; | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
| } | } | ||||||
|  | |||||||
| @ -26,6 +26,7 @@ public: | |||||||
|     VAddr GetObjectAddress(u32 handle) const; |     VAddr GetObjectAddress(u32 handle) const; | ||||||
| 
 | 
 | ||||||
|     u32 ioctl(u32 command, const std::vector<u8>& input, std::vector<u8>& output) override; |     u32 ioctl(u32 command, const std::vector<u8>& input, std::vector<u8>& output) override; | ||||||
|  | 
 | ||||||
| private: | private: | ||||||
|     // Represents an nvmap object.
 |     // Represents an nvmap object.
 | ||||||
|     struct Object { |     struct Object { | ||||||
|  | |||||||
| @ -48,9 +48,9 @@ struct Elf64_Sym { | |||||||
| }; | }; | ||||||
| static_assert(sizeof(Elf64_Sym) == 0x18, "Elf64_Sym has incorrect size."); | static_assert(sizeof(Elf64_Sym) == 0x18, "Elf64_Sym has incorrect size."); | ||||||
| 
 | 
 | ||||||
| void Linker::WriteRelocations(std::vector<u8>& program_image, | void Linker::WriteRelocations(std::vector<u8>& program_image, const std::vector<Symbol>& symbols, | ||||||
|                                   const std::vector<Symbol>& symbols, u64 relocation_offset, |                               u64 relocation_offset, u64 size, bool is_jump_relocation, | ||||||
|                                   u64 size, bool is_jump_relocation, VAddr load_base) { |                               VAddr load_base) { | ||||||
|     for (u64 i = 0; i < size; i += sizeof(Elf64_Rela)) { |     for (u64 i = 0; i < size; i += sizeof(Elf64_Rela)) { | ||||||
|         Elf64_Rela rela; |         Elf64_Rela rela; | ||||||
|         std::memcpy(&rela, &program_image[relocation_offset + i], sizeof(Elf64_Rela)); |         std::memcpy(&rela, &program_image[relocation_offset + i], sizeof(Elf64_Rela)); | ||||||
| @ -90,8 +90,7 @@ void Linker::WriteRelocations(std::vector<u8>& program_image, | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Linker::Relocate(std::vector<u8>& program_image, u32 dynamic_section_offset, | void Linker::Relocate(std::vector<u8>& program_image, u32 dynamic_section_offset, VAddr load_base) { | ||||||
|                           VAddr load_base) { |  | ||||||
|     std::map<u64, u64> dynamic; |     std::map<u64, u64> dynamic; | ||||||
|     while (dynamic_section_offset < program_image.size()) { |     while (dynamic_section_offset < program_image.size()) { | ||||||
|         Elf64_Dyn dyn; |         Elf64_Dyn dyn; | ||||||
| @ -141,8 +140,7 @@ void Linker::ResolveImports() { | |||||||
|         const auto& search = exports.find(import.first); |         const auto& search = exports.find(import.first); | ||||||
|         if (search != exports.end()) { |         if (search != exports.end()) { | ||||||
|             Memory::Write64(import.second.ea, search->second + import.second.addend); |             Memory::Write64(import.second.ea, search->second + import.second.addend); | ||||||
|         } |         } else { | ||||||
|         else { |  | ||||||
|             LOG_ERROR(Loader, "Unresolved import: %s", import.first.c_str()); |             LOG_ERROR(Loader, "Unresolved import: %s", import.first.c_str()); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -157,7 +157,8 @@ ResultStatus AppLoader_NSO::Load(Kernel::SharedPtr<Kernel::Process>& process) { | |||||||
| 
 | 
 | ||||||
|     // Load NSO modules
 |     // Load NSO modules
 | ||||||
|     VAddr next_load_addr{Memory::PROCESS_IMAGE_VADDR}; |     VAddr next_load_addr{Memory::PROCESS_IMAGE_VADDR}; | ||||||
|     for (const auto& module : {"rtld", "sdk", "subsdk0", "subsdk1", "subsdk2", "subsdk3", "subsdk4"}) { |     for (const auto& module : | ||||||
|  |          {"rtld", "sdk", "subsdk0", "subsdk1", "subsdk2", "subsdk3", "subsdk4"}) { | ||||||
|         const std::string path = filepath.substr(0, filepath.find_last_of("/\\")) + "/" + module; |         const std::string path = filepath.substr(0, filepath.find_last_of("/\\")) + "/" + module; | ||||||
|         const VAddr load_addr = next_load_addr; |         const VAddr load_addr = next_load_addr; | ||||||
|         next_load_addr = LoadNso(path, load_addr); |         next_load_addr = LoadNso(path, load_addr); | ||||||
|  | |||||||
| @ -18,8 +18,7 @@ namespace Loader { | |||||||
| class AppLoader_NSO final : public AppLoader, Linker { | class AppLoader_NSO final : public AppLoader, Linker { | ||||||
| public: | public: | ||||||
|     AppLoader_NSO(FileUtil::IOFile&& file, std::string filepath) |     AppLoader_NSO(FileUtil::IOFile&& file, std::string filepath) | ||||||
|         : AppLoader(std::move(file)), filepath(std::move(filepath)) { |         : AppLoader(std::move(file)), filepath(std::move(filepath)) {} | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * Returns the type of the file |      * Returns the type of the file | ||||||
|  | |||||||
| @ -61,7 +61,8 @@ private: | |||||||
|     // Loads framebuffer from emulated memory into the display information structure
 |     // Loads framebuffer from emulated memory into the display information structure
 | ||||||
|     void LoadFBToScreenInfo(const FramebufferInfo& framebuffer_info, ScreenInfo& screen_info); |     void LoadFBToScreenInfo(const FramebufferInfo& framebuffer_info, ScreenInfo& screen_info); | ||||||
|     // Fills active OpenGL texture with the given RGBA color.
 |     // Fills active OpenGL texture with the given RGBA color.
 | ||||||
|     void LoadColorToActiveGLTexture(u8 color_r, u8 color_g, u8 color_b, u8 color_a, const TextureInfo& texture); |     void LoadColorToActiveGLTexture(u8 color_r, u8 color_g, u8 color_b, u8 color_a, | ||||||
|  |                                     const TextureInfo& texture); | ||||||
| 
 | 
 | ||||||
|     EmuWindow* render_window; ///< Handle to render window
 |     EmuWindow* render_window; ///< Handle to render window
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ | |||||||
| AboutDialog::AboutDialog(QWidget* parent) : QDialog(parent), ui(new Ui::AboutDialog) { | AboutDialog::AboutDialog(QWidget* parent) : QDialog(parent), ui(new Ui::AboutDialog) { | ||||||
|     ui->setupUi(this); |     ui->setupUi(this); | ||||||
|     ui->labelBuildInfo->setText(ui->labelBuildInfo->text().arg( |     ui->labelBuildInfo->setText(ui->labelBuildInfo->text().arg( | ||||||
| Common::g_build_name, Common::g_scm_branch, Common::g_scm_desc)); |         Common::g_build_name, Common::g_scm_branch, Common::g_scm_desc)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| AboutDialog::~AboutDialog() {} | AboutDialog::~AboutDialog() {} | ||||||
|  | |||||||
| @ -18,10 +18,10 @@ Config::Config() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { | const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { | ||||||
|     Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_3, Qt::Key_4, Qt::Key_Q, Qt::Key_W, |     Qt::Key_A, Qt::Key_S, Qt::Key_Z,    Qt::Key_X,  Qt::Key_3,     Qt::Key_4,    Qt::Key_Q, | ||||||
|     Qt::Key_1, Qt::Key_2, Qt::Key_N, Qt::Key_M, Qt::Key_F, Qt::Key_T, Qt::Key_H, Qt::Key_G, |     Qt::Key_W, Qt::Key_1, Qt::Key_2,    Qt::Key_N,  Qt::Key_M,     Qt::Key_F,    Qt::Key_T, | ||||||
|     Qt::Key_Left, Qt::Key_Up, Qt::Key_Right, Qt::Key_Down, Qt::Key_J, Qt::Key_I, Qt::Key_L, |     Qt::Key_H, Qt::Key_G, Qt::Key_Left, Qt::Key_Up, Qt::Key_Right, Qt::Key_Down, Qt::Key_J, | ||||||
|     Qt::Key_K, Qt::Key_D, Qt::Key_C, Qt::Key_B, Qt::Key_V, |     Qt::Key_I, Qt::Key_L, Qt::Key_K,    Qt::Key_D,  Qt::Key_C,     Qt::Key_B,    Qt::Key_V, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ | const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ | ||||||
|  | |||||||
| @ -6,7 +6,6 @@ | |||||||
| #include "ui_configure_debug.h" | #include "ui_configure_debug.h" | ||||||
| #include "yuzu/configuration/configure_debug.h" | #include "yuzu/configuration/configure_debug.h" | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| ConfigureDebug::ConfigureDebug(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureDebug) { | ConfigureDebug::ConfigureDebug(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureDebug) { | ||||||
|     ui->setupUi(this); |     ui->setupUi(this); | ||||||
|     this->setConfiguration(); |     this->setConfiguration(); | ||||||
|  | |||||||
| @ -7,7 +7,6 @@ | |||||||
| #include "yuzu/configuration/config.h" | #include "yuzu/configuration/config.h" | ||||||
| #include "yuzu/configuration/configure_dialog.h" | #include "yuzu/configuration/configure_dialog.h" | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| ConfigureDialog::ConfigureDialog(QWidget* parent) : QDialog(parent), ui(new Ui::ConfigureDialog) { | ConfigureDialog::ConfigureDialog(QWidget* parent) : QDialog(parent), ui(new Ui::ConfigureDialog) { | ||||||
|     ui->setupUi(this); |     ui->setupUi(this); | ||||||
|     this->setConfiguration(); |     this->setConfiguration(); | ||||||
|  | |||||||
| @ -50,13 +50,13 @@ ConfigureInput::ConfigureInput(QWidget* parent) | |||||||
|     setFocusPolicy(Qt::ClickFocus); |     setFocusPolicy(Qt::ClickFocus); | ||||||
| 
 | 
 | ||||||
|     button_map = { |     button_map = { | ||||||
|         ui->buttonA,          ui->buttonB,         ui->buttonX,           ui->buttonY, |         ui->buttonA,          ui->buttonB,        ui->buttonX,           ui->buttonY, | ||||||
|         ui->buttonLStick,     ui->buttonRStick,    ui->buttonL,           ui->buttonR, |         ui->buttonLStick,     ui->buttonRStick,   ui->buttonL,           ui->buttonR, | ||||||
|         ui->buttonZL,         ui->buttonZR,        ui->buttonPlus,        ui->buttonMinus, |         ui->buttonZL,         ui->buttonZR,       ui->buttonPlus,        ui->buttonMinus, | ||||||
|         ui->buttonDpadLeft,   ui->buttonDpadUp,    ui->buttonDpadRight,   ui->buttonDpadDown, |         ui->buttonDpadLeft,   ui->buttonDpadUp,   ui->buttonDpadRight,   ui->buttonDpadDown, | ||||||
|         ui->buttonLStickLeft, ui->buttonLStickUp,  ui->buttonLStickRight, ui->buttonLStickDown, |         ui->buttonLStickLeft, ui->buttonLStickUp, ui->buttonLStickRight, ui->buttonLStickDown, | ||||||
|         ui->buttonRStickLeft, ui->buttonRStickUp,  ui->buttonRStickRight, ui->buttonRStickDown, |         ui->buttonRStickLeft, ui->buttonRStickUp, ui->buttonRStickRight, ui->buttonRStickDown, | ||||||
|         ui->buttonSL,         ui->buttonSR,        ui->buttonHome,        ui->buttonScreenshot, |         ui->buttonSL,         ui->buttonSR,       ui->buttonHome,        ui->buttonScreenshot, | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     analog_map_buttons = {{ |     analog_map_buttons = {{ | ||||||
|  | |||||||
| @ -8,7 +8,6 @@ | |||||||
| #include "yuzu/configuration/configure_system.h" | #include "yuzu/configuration/configure_system.h" | ||||||
| #include "yuzu/ui_settings.h" | #include "yuzu/ui_settings.h" | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| static const std::array<int, 12> days_in_month = {{ | static const std::array<int, 12> days_in_month = {{ | ||||||
|     31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, |     31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, | ||||||
| }}; | }}; | ||||||
|  | |||||||
| @ -8,7 +8,6 @@ | |||||||
| #include "yuzu/debugger/registers.h" | #include "yuzu/debugger/registers.h" | ||||||
| #include "yuzu/util/util.h" | #include "yuzu/util/util.h" | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) { | RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) { | ||||||
|     cpu_regs_ui.setupUi(this); |     cpu_regs_ui.setupUi(this); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -9,8 +9,8 @@ | |||||||
| #include <QRunnable> | #include <QRunnable> | ||||||
| #include <QStandardItem> | #include <QStandardItem> | ||||||
| #include <QString> | #include <QString> | ||||||
| #include "yuzu/util/util.h" |  | ||||||
| #include "common/string_util.h" | #include "common/string_util.h" | ||||||
|  | #include "yuzu/util/util.h" | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * Gets the default icon (for games without valid SMDH) |  * Gets the default icon (for games without valid SMDH) | ||||||
|  | |||||||
| @ -122,8 +122,9 @@ void GMainWindow::InitializeWidgets() { | |||||||
|     statusBar()->addPermanentWidget(message_label, 1); |     statusBar()->addPermanentWidget(message_label, 1); | ||||||
| 
 | 
 | ||||||
|     emu_speed_label = new QLabel(); |     emu_speed_label = new QLabel(); | ||||||
|     emu_speed_label->setToolTip(tr("Current emulation speed. Values higher or lower than 100% " |     emu_speed_label->setToolTip( | ||||||
|                                    "indicate emulation is running faster or slower than a Switch.")); |         tr("Current emulation speed. Values higher or lower than 100% " | ||||||
|  |            "indicate emulation is running faster or slower than a Switch.")); | ||||||
|     game_fps_label = new QLabel(); |     game_fps_label = new QLabel(); | ||||||
|     game_fps_label->setToolTip(tr("How many frames per second the game is currently displaying. " |     game_fps_label->setToolTip(tr("How many frames per second the game is currently displaying. " | ||||||
|                                   "This will vary from game to game and scene to scene.")); |                                   "This will vary from game to game and scene to scene.")); | ||||||
| @ -185,8 +186,8 @@ void GMainWindow::InitializeRecentFileMenuActions() { | |||||||
| void GMainWindow::InitializeHotkeys() { | void GMainWindow::InitializeHotkeys() { | ||||||
|     RegisterHotkey("Main Window", "Load File", QKeySequence::Open); |     RegisterHotkey("Main Window", "Load File", QKeySequence::Open); | ||||||
|     RegisterHotkey("Main Window", "Start Emulation"); |     RegisterHotkey("Main Window", "Start Emulation"); | ||||||
|     RegisterHotkey( "Main Window", "Fullscreen", QKeySequence::FullScreen ); |     RegisterHotkey("Main Window", "Fullscreen", QKeySequence::FullScreen); | ||||||
|     RegisterHotkey( "Main Window", "Exit Fullscreen", QKeySequence::Cancel, Qt::ApplicationShortcut ); |     RegisterHotkey("Main Window", "Exit Fullscreen", QKeySequence::Cancel, Qt::ApplicationShortcut); | ||||||
|     LoadHotkeys(); |     LoadHotkeys(); | ||||||
| 
 | 
 | ||||||
|     connect(GetHotkey("Main Window", "Load File", this), SIGNAL(activated()), this, |     connect(GetHotkey("Main Window", "Load File", this), SIGNAL(activated()), this, | ||||||
| @ -194,9 +195,9 @@ void GMainWindow::InitializeHotkeys() { | |||||||
|     connect(GetHotkey("Main Window", "Start Emulation", this), SIGNAL(activated()), this, |     connect(GetHotkey("Main Window", "Start Emulation", this), SIGNAL(activated()), this, | ||||||
|             SLOT(OnStartGame())); |             SLOT(OnStartGame())); | ||||||
|     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activated, |     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activated, | ||||||
|              ui.action_Fullscreen, &QAction::trigger); |             ui.action_Fullscreen, &QAction::trigger); | ||||||
|     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activatedAmbiguously, |     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activatedAmbiguously, | ||||||
|              ui.action_Fullscreen, &QAction::trigger); |             ui.action_Fullscreen, &QAction::trigger); | ||||||
|     connect(GetHotkey("Main Window", "Exit Fullscreen", this), &QShortcut::activated, this, [&] { |     connect(GetHotkey("Main Window", "Exit Fullscreen", this), &QShortcut::activated, this, [&] { | ||||||
|         if (emulation_running) { |         if (emulation_running) { | ||||||
|             ui.action_Fullscreen->setChecked(false); |             ui.action_Fullscreen->setChecked(false); | ||||||
|  | |||||||
| @ -31,8 +31,8 @@ | |||||||
| #include <cstdlib> | #include <cstdlib> | ||||||
| #include <QLineEdit> | #include <QLineEdit> | ||||||
| #include <QRegExpValidator> | #include <QRegExpValidator> | ||||||
| #include "yuzu/util/spinbox.h" |  | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
|  | #include "yuzu/util/spinbox.h" | ||||||
| 
 | 
 | ||||||
| CSpinBox::CSpinBox(QWidget* parent) | CSpinBox::CSpinBox(QWidget* parent) | ||||||
|     : QAbstractSpinBox(parent), min_value(-100), max_value(100), value(0), base(10), num_digits(0) { |     : QAbstractSpinBox(parent), min_value(-100), max_value(100), value(0), base(10), num_digits(0) { | ||||||
|  | |||||||
| @ -37,7 +37,6 @@ | |||||||
| #include "yuzu_cmd/config.h" | #include "yuzu_cmd/config.h" | ||||||
| #include "yuzu_cmd/emu_window/emu_window_sdl2.h" | #include "yuzu_cmd/emu_window/emu_window_sdl2.h" | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| static void PrintHelp(const char* argv0) { | static void PrintHelp(const char* argv0) { | ||||||
|     std::cout << "Usage: " << argv0 |     std::cout << "Usage: " << argv0 | ||||||
|               << " [options] <filename>\n" |               << " [options] <filename>\n" | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei