mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-26 07:39:56 -06:00
Multiinstance jit (#2201)
* works on Linux x64 still needs to be fixed for everything else * use lots of PROT_NONE memory to reliably reserve virtual address space * multi instance fastmem on Linux * Windows * blarg * disable fastmem if the page size is not 4kb * fix fast mem dialog option * make aarch64 work as well * fastmem 16kb pages support
This commit is contained in:
@ -74,7 +74,7 @@ const s32 kIterationCycleMargin = 8;
|
||||
//
|
||||
// timings for GBA slot and wifi are set up at runtime
|
||||
|
||||
NDS* NDS::Current = nullptr;
|
||||
thread_local NDS* NDS::Current = nullptr;
|
||||
|
||||
NDS::NDS() noexcept :
|
||||
NDS(
|
||||
@ -128,6 +128,7 @@ NDS::NDS(NDSArgs&& args, int type, void* userdata) noexcept :
|
||||
MainRAM = JIT.Memory.GetMainRAM();
|
||||
SharedWRAM = JIT.Memory.GetSharedWRAM();
|
||||
ARM7WRAM = JIT.Memory.GetARM7WRAM();
|
||||
|
||||
}
|
||||
|
||||
NDS::~NDS() noexcept
|
||||
@ -894,6 +895,8 @@ void NDS::RunSystemSleep(u64 timestamp)
|
||||
template <CPUExecuteMode cpuMode>
|
||||
u32 NDS::RunFrame()
|
||||
{
|
||||
Current = this;
|
||||
|
||||
FrameStartTimestamp = SysTimestamp;
|
||||
|
||||
GPU.TotalScanlines = 0;
|
||||
|
Reference in New Issue
Block a user