aboutsummaryrefslogtreecommitdiff
path: root/src/libui_sdl
diff options
context:
space:
mode:
authorRSDuck <RSDuck@users.noreply.github.com>2019-07-14 04:33:36 +0200
committerRSDuck <rsduck@users.noreply.github.com>2020-04-26 13:03:03 +0200
commit9d76d63af5d496e232018d6ddf8ee1e55ad440ad (patch)
treeba8948dd796d7d119543dc83cd3a4ce0db608d5a /src/libui_sdl
parentdcf6e1cad2b38dc4fe0dcbdb789f92e01f802a4a (diff)
jit: make everything configurable
Diffstat (limited to 'src/libui_sdl')
-rw-r--r--src/libui_sdl/DlgEmuSettings.cpp16
-rw-r--r--src/libui_sdl/PlatformConfig.cpp1
-rw-r--r--src/libui_sdl/main.cpp17
3 files changed, 22 insertions, 12 deletions
diff --git a/src/libui_sdl/DlgEmuSettings.cpp b/src/libui_sdl/DlgEmuSettings.cpp
index 0ccaed7..116d2da 100644
--- a/src/libui_sdl/DlgEmuSettings.cpp
+++ b/src/libui_sdl/DlgEmuSettings.cpp
@@ -57,10 +57,20 @@ void OnOk(uiButton* btn, void* blarg)
{
Config::DirectBoot = uiCheckboxChecked(cbDirectBoot);
+ Config::JIT_Enable = uiCheckboxChecked(cbJITEnabled);
+ long blockSize = strtol(uiEntryText(enJITMaxBlockSize), NULL, 10);
+ if (blockSize < 1)
+ blockSize = 1;
+ if (blockSize > 32)
+ blockSize = 32;
+ Config::JIT_MaxBlockSize = blockSize;
+
Config::Save();
uiControlDestroy(uiControl(win));
opened = false;
+
+ ApplyNewSettings(4);
}
void OnJITStateChanged(uiCheckbox* cb, void* blarg)
@@ -143,6 +153,12 @@ void Open()
uiCheckboxSetChecked(cbDirectBoot, Config::DirectBoot);
+ uiCheckboxSetChecked(cbJITEnabled, Config::JIT_Enable);
+ {
+ char maxBlockSizeStr[10];
+ sprintf(maxBlockSizeStr, "%d", Config::JIT_MaxBlockSize);
+ uiEntrySetText(enJITMaxBlockSize, maxBlockSizeStr);
+ }
OnJITStateChanged(cbJITEnabled, NULL);
uiControlShow(uiControl(win));
diff --git a/src/libui_sdl/PlatformConfig.cpp b/src/libui_sdl/PlatformConfig.cpp
index f78b195..b6d1e8d 100644
--- a/src/libui_sdl/PlatformConfig.cpp
+++ b/src/libui_sdl/PlatformConfig.cpp
@@ -64,6 +64,7 @@ char MicWavPath[512];
char LastROMFolder[512];
+bool EnableJIT;
ConfigEntry PlatformConfigFile[] =
{
diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp
index 8e8bf9e..d6809c3 100644
--- a/src/libui_sdl/main.cpp
+++ b/src/libui_sdl/main.cpp
@@ -48,6 +48,7 @@
#include "../Wifi.h"
#include "../Platform.h"
#include "../Config.h"
+#include "../ARMJIT.h"
#include "../Savestate.h"
@@ -2408,19 +2409,11 @@ void ApplyNewSettings(int type)
GPU3D::InitRenderer(Screen_UseGL);
if (Screen_UseGL) uiGLMakeContextCurrent(NULL);
}
- /*else if (type == 4) // vsync
+ else if (type == 4)
{
- if (Screen_UseGL)
- {
- uiGLMakeContextCurrent(GLContext);
- uiGLSetVSync(Config::ScreenVSync);
- uiGLMakeContextCurrent(NULL);
- }
- else
- {
- // TODO eventually: VSync for non-GL screen?
- }
- }*/
+ if (Config::JIT_Enable)
+ ARMJIT::InvalidateBlockCache();
+ }
EmuRunning = prevstatus;
}