early-access version 1707

This commit is contained in:
pineappleEA 2021-05-25 10:18:44 +02:00
parent 341610ae6f
commit 3f35accecf
5 changed files with 13 additions and 3 deletions

View file

@ -1,7 +1,7 @@
yuzu emulator early access yuzu emulator early access
============= =============
This is the source code for early-access 1706. This is the source code for early-access 1707.
## Legal Notice ## Legal Notice

View file

@ -22,6 +22,7 @@ enum : u32 {
CapabilityOffset_Syscall = 4, CapabilityOffset_Syscall = 4,
CapabilityOffset_MapPhysical = 6, CapabilityOffset_MapPhysical = 6,
CapabilityOffset_MapIO = 7, CapabilityOffset_MapIO = 7,
CapabilityOffset_MapRegion = 10,
CapabilityOffset_Interrupt = 11, CapabilityOffset_Interrupt = 11,
CapabilityOffset_ProgramType = 13, CapabilityOffset_ProgramType = 13,
CapabilityOffset_KernelVersion = 14, CapabilityOffset_KernelVersion = 14,
@ -46,6 +47,7 @@ enum class CapabilityType : u32 {
Syscall = (1U << CapabilityOffset_Syscall) - 1, Syscall = (1U << CapabilityOffset_Syscall) - 1,
MapPhysical = (1U << CapabilityOffset_MapPhysical) - 1, MapPhysical = (1U << CapabilityOffset_MapPhysical) - 1,
MapIO = (1U << CapabilityOffset_MapIO) - 1, MapIO = (1U << CapabilityOffset_MapIO) - 1,
MapRegion = (1U << CapabilityOffset_MapRegion) - 1,
Interrupt = (1U << CapabilityOffset_Interrupt) - 1, Interrupt = (1U << CapabilityOffset_Interrupt) - 1,
ProgramType = (1U << CapabilityOffset_ProgramType) - 1, ProgramType = (1U << CapabilityOffset_ProgramType) - 1,
KernelVersion = (1U << CapabilityOffset_KernelVersion) - 1, KernelVersion = (1U << CapabilityOffset_KernelVersion) - 1,
@ -187,6 +189,8 @@ ResultCode ProcessCapabilities::ParseSingleFlagCapability(u32& set_flags, u32& s
return HandleSyscallFlags(set_svc_bits, flag); return HandleSyscallFlags(set_svc_bits, flag);
case CapabilityType::MapIO: case CapabilityType::MapIO:
return HandleMapIOFlags(flag, page_table); return HandleMapIOFlags(flag, page_table);
case CapabilityType::MapRegion:
return HandleMapRegionFlags(flag, page_table);
case CapabilityType::Interrupt: case CapabilityType::Interrupt:
return HandleInterruptFlags(flag); return HandleInterruptFlags(flag);
case CapabilityType::ProgramType: case CapabilityType::ProgramType:
@ -298,6 +302,11 @@ ResultCode ProcessCapabilities::HandleMapIOFlags(u32 flags, KPageTable& page_tab
return RESULT_SUCCESS; return RESULT_SUCCESS;
} }
ResultCode ProcessCapabilities::HandleMapRegionFlags(u32 flags, KPageTable& page_table) {
// TODO(Lioncache): Implement once the memory manager can handle this.
return RESULT_SUCCESS;
}
ResultCode ProcessCapabilities::HandleInterruptFlags(u32 flags) { ResultCode ProcessCapabilities::HandleInterruptFlags(u32 flags) {
constexpr u32 interrupt_ignore_value = 0x3FF; constexpr u32 interrupt_ignore_value = 0x3FF;
const u32 interrupt0 = (flags >> 12) & 0x3FF; const u32 interrupt0 = (flags >> 12) & 0x3FF;

View file

@ -231,6 +231,9 @@ private:
/// Handles flags related to mapping IO pages. /// Handles flags related to mapping IO pages.
ResultCode HandleMapIOFlags(u32 flags, KPageTable& page_table); ResultCode HandleMapIOFlags(u32 flags, KPageTable& page_table);
/// Handles flags related to mapping physical memory regions.
ResultCode HandleMapRegionFlags(u32 flags, KPageTable& page_table);
/// Handles flags related to the interrupt capability flags. /// Handles flags related to the interrupt capability flags.
ResultCode HandleInterruptFlags(u32 flags); ResultCode HandleInterruptFlags(u32 flags);

View file

@ -5,7 +5,6 @@
#pragma once #pragma once
#include <memory> #include <memory>
#include <QAbstractButton>
#include <QDialog> #include <QDialog>
class HotkeyRegistry; class HotkeyRegistry;

View file

@ -7,7 +7,6 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include <QAbstractButton>
#include <QDialog> #include <QDialog>
#include <QList> #include <QList>