mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +00:00 
			
		
		
		
	Merge branch 'master' into feature/savestates-2
This commit is contained in:
		
						commit
						da3ab3d56e
					
				
					 80 changed files with 7297 additions and 2608 deletions
				
			
		| 
						 | 
				
			
			@ -72,8 +72,7 @@ private:
 | 
			
		|||
class DynarmicUserCallbacks final : public Dynarmic::A32::UserCallbacks {
 | 
			
		||||
public:
 | 
			
		||||
    explicit DynarmicUserCallbacks(ARM_Dynarmic& parent)
 | 
			
		||||
        : parent(parent), timing(parent.system.CoreTiming()), svc_context(parent.system),
 | 
			
		||||
          memory(parent.memory) {}
 | 
			
		||||
        : parent(parent), svc_context(parent.system), memory(parent.memory) {}
 | 
			
		||||
    ~DynarmicUserCallbacks() = default;
 | 
			
		||||
 | 
			
		||||
    std::uint8_t MemoryRead8(VAddr vaddr) override {
 | 
			
		||||
| 
						 | 
				
			
			@ -137,7 +136,7 @@ public:
 | 
			
		|||
                parent.jit->HaltExecution();
 | 
			
		||||
                parent.SetPC(pc);
 | 
			
		||||
                Kernel::Thread* thread =
 | 
			
		||||
                    parent.system.Kernel().GetThreadManager().GetCurrentThread();
 | 
			
		||||
                    parent.system.Kernel().GetCurrentThreadManager().GetCurrentThread();
 | 
			
		||||
                parent.SaveContext(thread->context);
 | 
			
		||||
                GDBStub::Break();
 | 
			
		||||
                GDBStub::SendTrap(thread, 5);
 | 
			
		||||
| 
						 | 
				
			
			@ -150,22 +149,23 @@ public:
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    void AddTicks(std::uint64_t ticks) override {
 | 
			
		||||
        timing.AddTicks(ticks);
 | 
			
		||||
        parent.GetTimer()->AddTicks(ticks);
 | 
			
		||||
    }
 | 
			
		||||
    std::uint64_t GetTicksRemaining() override {
 | 
			
		||||
        s64 ticks = timing.GetDowncount();
 | 
			
		||||
        s64 ticks = parent.GetTimer()->GetDowncount();
 | 
			
		||||
        return static_cast<u64>(ticks <= 0 ? 0 : ticks);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ARM_Dynarmic& parent;
 | 
			
		||||
    Core::Timing& timing;
 | 
			
		||||
    Kernel::SVCContext svc_context;
 | 
			
		||||
    Memory::MemorySystem& memory;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ARM_Dynarmic::ARM_Dynarmic(Core::System* system, Memory::MemorySystem& memory,
 | 
			
		||||
                           PrivilegeMode initial_mode)
 | 
			
		||||
    : system(*system), memory(memory), cb(std::make_unique<DynarmicUserCallbacks>(*this)) {
 | 
			
		||||
                           PrivilegeMode initial_mode, u32 id,
 | 
			
		||||
                           std::shared_ptr<Core::Timing::Timer> timer)
 | 
			
		||||
    : ARM_Interface(id, timer), system(*system), memory(memory),
 | 
			
		||||
      cb(std::make_unique<DynarmicUserCallbacks>(*this)) {
 | 
			
		||||
    interpreter_state = std::make_shared<ARMul_State>(system, memory, initial_mode);
 | 
			
		||||
    SetPageTable(memory.GetCurrentPageTable());
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,8 @@ class DynarmicUserCallbacks;
 | 
			
		|||
 | 
			
		||||
class ARM_Dynarmic final : public ARM_Interface {
 | 
			
		||||
public:
 | 
			
		||||
    ARM_Dynarmic(Core::System* system, Memory::MemorySystem& memory, PrivilegeMode initial_mode);
 | 
			
		||||
    ARM_Dynarmic(Core::System* system, Memory::MemorySystem& memory, PrivilegeMode initial_mode,
 | 
			
		||||
                 u32 id, std::shared_ptr<Core::Timing::Timer> timer);
 | 
			
		||||
    ~ARM_Dynarmic() override;
 | 
			
		||||
 | 
			
		||||
    void Run() override;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue