aboutsummaryrefslogtreecommitdiff
path: root/src/libui_sdl
diff options
context:
space:
mode:
authorRSDuck <rsduck@users.noreply.github.com>2019-06-22 01:28:32 +0200
committerRSDuck <rsduck@users.noreply.github.com>2020-04-26 13:02:53 +0200
commitc5c342c0091d9bf36500950a21585c5c98dd7d9d (patch)
tree79abf542c763cce60ffe650e300bfee31194ba8a /src/libui_sdl
parentd2f05cd30fcd530655649549452c34dea1969281 (diff)
JIT: base
all instructions are interpreted
Diffstat (limited to 'src/libui_sdl')
-rw-r--r--src/libui_sdl/DlgEmuSettings.cpp45
1 files changed, 43 insertions, 2 deletions
diff --git a/src/libui_sdl/DlgEmuSettings.cpp b/src/libui_sdl/DlgEmuSettings.cpp
index c50f216..0ccaed7 100644
--- a/src/libui_sdl/DlgEmuSettings.cpp
+++ b/src/libui_sdl/DlgEmuSettings.cpp
@@ -38,6 +38,8 @@ uiWindow* win;
uiCheckbox* cbDirectBoot;
+uiCheckbox* cbJITEnabled;
+uiEntry* enJITMaxBlockSize;
int OnCloseWindow(uiWindow* window, void* blarg)
{
@@ -61,6 +63,14 @@ void OnOk(uiButton* btn, void* blarg)
opened = false;
}
+void OnJITStateChanged(uiCheckbox* cb, void* blarg)
+{
+ if (uiCheckboxChecked(cb))
+ uiControlEnable(uiControl(enJITMaxBlockSize));
+ else
+ uiControlDisable(uiControl(enJITMaxBlockSize));
+}
+
void Open()
{
if (opened)
@@ -70,7 +80,7 @@ void Open()
}
opened = true;
- win = uiNewWindow("Emu settings - melonDS", 300, 200, 0, 0, 0);
+ win = uiNewWindow("Emu settings - melonDS", 300, 170, 0, 0, 0);
uiWindowSetMargined(win, 1);
uiWindowOnClosing(win, OnCloseWindow, NULL);
@@ -79,13 +89,42 @@ void Open()
{
uiBox* in_ctrl = uiNewVerticalBox();
- uiBoxAppend(top, uiControl(in_ctrl), 1);
+ uiBoxAppend(top, uiControl(in_ctrl), 0);
cbDirectBoot = uiNewCheckbox("Boot game directly");
uiBoxAppend(in_ctrl, uiControl(cbDirectBoot), 0);
}
{
+ uiLabel* dummy = uiNewLabel("");
+ uiBoxAppend(top, uiControl(dummy), 0);
+ }
+
+ {
+ uiGroup* grp = uiNewGroup("JIT");
+ uiBoxAppend(top, uiControl(grp), 1);
+
+ uiBox* in_ctrl = uiNewVerticalBox();
+ uiGroupSetChild(grp, uiControl(in_ctrl));
+
+ cbJITEnabled = uiNewCheckbox("Enable JIT recompiler");
+ uiBoxAppend(in_ctrl, uiControl(cbJITEnabled), 0);
+
+ uiCheckboxOnToggled(cbJITEnabled, OnJITStateChanged, NULL);
+
+ {
+ uiBox* row = uiNewHorizontalBox();
+ uiBoxAppend(in_ctrl, uiControl(row), 0);
+
+ uiLabel* lbl = uiNewLabel("Maximum block size (1-32): ");
+ uiBoxAppend(row, uiControl(lbl), 0);
+
+ enJITMaxBlockSize = uiNewEntry();
+ uiBoxAppend(row, uiControl(enJITMaxBlockSize), 0);
+ }
+ }
+
+ {
uiBox* in_ctrl = uiNewHorizontalBox();
uiBoxSetPadded(in_ctrl, 1);
uiBoxAppend(top, uiControl(in_ctrl), 0);
@@ -104,6 +143,8 @@ void Open()
uiCheckboxSetChecked(cbDirectBoot, Config::DirectBoot);
+ OnJITStateChanged(cbJITEnabled, NULL);
+
uiControlShow(uiControl(win));
}