Revert "Interrupt Hack setting w/ less stigma"

This reverts commits e5c0f0e, eebf3fc, 14fc7d9
This commit is contained in:
Ender's Games 2018-09-20 11:24:26 -04:00
parent 6077857190
commit ee3a474ee4
18 changed files with 67 additions and 213 deletions

View File

@ -178,28 +178,6 @@ void aica_Term()
}
s32 aica_pending_dma = 0;
void aica_periodical(u32 cycl)
{
if (aica_pending_dma > 0)
{
verify(SB_ADST==1);
cycl = (aica_pending_dma <= 0) ? 0 : cycl;
aica_pending_dma-=cycl;
if (aica_pending_dma <= 0)
{
//log("%u %d\n",cycl,(s32)aica_pending_dma);
asic_RaiseInterrupt(holly_SPU_DMA);
aica_pending_dma = 0;
SB_ADST=0;
}
}
}
void Write_SB_ADST(u32 addr, u32 data)
{
//0x005F7800 SB_ADSTAG RW AICA:G2-DMA G2 start address
@ -219,8 +197,6 @@ void Write_SB_ADST(u32 addr, u32 data)
u32 dst=SB_ADSTAG;
u32 len=SB_ADLEN & 0x7FFFFFFF;
u32 total_bytes=0;
if ((SB_ADDIR&1)==1)
{
//swap direction
@ -245,14 +221,11 @@ void Write_SB_ADST(u32 addr, u32 data)
SB_ADSTAR+=len;
SB_ADSTAG+=len;
total_bytes+=len;
SB_ADST = settings.aica.DelayInterrupt ? 1 : 0x00000000;//dma done
SB_ADLEN = 0x00000000;
SB_ADST = 0x00000000;//dma done
SB_ADLEN = 0x00000000;
aica_pending_dma = ((total_bytes * 200000000) / 65536) + 1;
if (!settings.aica.DelayInterrupt)
asic_RaiseInterruptWait(holly_SPU_DMA);
asic_RaiseInterrupt(holly_SPU_DMA);
}
}
}
@ -306,7 +279,7 @@ void Write_SB_E1ST(u32 addr, u32 data)
SB_E1LEN = 0x00000000;
asic_RaiseInterruptWait(holly_EXT_DMA1);
asic_RaiseInterrupt(holly_EXT_DMA1);
}
}
}

View File

@ -274,7 +274,7 @@ void gd_set_state(gd_states state)
GDStatus.DRQ=1;
GDStatus.BSY=0;
//(4) INTRQ is set, and a host interrupt is issued.
asic_RaiseInterruptWait(holly_GDROM_CMD);
asic_RaiseInterrupt(holly_GDROM_CMD);
/*
The number of bytes normally is the byte number in the register at the time of receiving
the command, but it may also be the total of several devices handled by the buffer at that point.
@ -332,7 +332,7 @@ void gd_set_state(gd_states state)
GDStatus.DRQ=0;
GDStatus.BSY=0;
//Make INTRQ valid
asic_RaiseInterruptWait(holly_GDROM_CMD);
asic_RaiseInterrupt(holly_GDROM_CMD);
//command finished !
gd_set_state(gds_waitcmd);
@ -477,7 +477,7 @@ void gd_process_ata_cmd()
GDStatus.BSY=0;
GDStatus.CHECK=1;
asic_RaiseInterruptWait(holly_GDROM_CMD);
asic_RaiseInterrupt(holly_GDROM_CMD);
gd_set_state(gds_waitcmd);
break;
@ -516,7 +516,7 @@ void gd_process_ata_cmd()
GDStatus.DSC=0;
GDStatus.DF=0;
GDStatus.CHECK=0;
asic_RaiseInterruptWait(holly_GDROM_CMD); //???
asic_RaiseInterrupt(holly_GDROM_CMD); //???
gd_set_state(gds_waitcmd);
break;
@ -1155,7 +1155,7 @@ int GDRomschd(int i, int c, int j)
//printf("Streamed GDMA end - %d bytes transferred\n",SB_GDLEND);
SB_GDST=0;//done
// The DMA end interrupt flag
asic_RaiseInterruptWait(holly_GDROM_DMA);
asic_RaiseInterrupt(holly_GDROM_DMA);
}
//Read ALL sectors
if (read_params.remaining_sectors==0)

View File

@ -72,60 +72,21 @@ void RaiseAsicErr(HollyInterruptID inter)
asic_RL6Pending();
}
static void asic_RaiseInterruptInternal(HollyInterruptID inter)
{
u8 m=inter>>8;
switch(m)
{
case 0:
RaiseAsicNormal(inter);
break;
case 1:
RaiseAsicExt(inter);
break;
case 2:
RaiseAsicErr(inter);
break;
}
}
static HollyInterruptID dmatmp1;
static HollyInterruptID dmatmp2;
static HollyInterruptID OldDmaId;
void asic_RaiseInterrupt(HollyInterruptID inter)
{
asic_RaiseInterruptInternal(inter);
}
void asic_RaiseInterruptWait(HollyInterruptID inter)
{
#if 0
/* IRQ wait slots are here. This is a hack.
* Up until now, more than 3 and less than 2 wait slots
* break stuff.
*
* Currently using 2 wait slots. */
OldDmaId = dmatmp2;
dmatmp2 = dmatmp1;
dmatmp1 = inter;
switch (OldDmaId)
{
case holly_CH2_DMA:
case holly_EXT_DMA1:
case holly_GDROM_CMD:
case holly_MAPLE_DMA:
case holly_YUV_DMA:
case holly_PVR_DMA:
case holly_PVR_SortDMA:
case holly_SPU_DMA:
asic_RaiseInterruptInternal(OldDmaId);
break;
}
#else
asic_RaiseInterruptInternal(inter);
#endif
u8 m=inter>>8;
switch(m)
{
case 0:
RaiseAsicNormal(inter);
break;
case 1:
RaiseAsicExt(inter);
break;
case 2:
RaiseAsicErr(inter);
break;
}
}
u32 Read_SB_ISTNRM(u32 addr)

View File

@ -2,7 +2,6 @@
#include "types.h"
void asic_RaiseInterrupt(HollyInterruptID inter);
void asic_RaiseInterruptWait(HollyInterruptID inter);
void asic_CancelInterrupt(HollyInterruptID inter);
//Init/Res/Term for regs

View File

@ -187,7 +187,7 @@ int maple_schd(int tag, int c, int j)
if (SB_MDEN&1)
{
SB_MDST=0;
asic_RaiseInterruptWait(holly_MAPLE_DMA);
asic_RaiseInterrupt(holly_MAPLE_DMA);
}
else
{

View File

@ -152,7 +152,7 @@ INLINE void YUV_ConvertMacroBlock(u8* datap)
{
YUV_init();
asic_RaiseInterruptWait(holly_YUV_DMA);
asic_RaiseInterrupt(holly_YUV_DMA);
}
}
void YUV_data(u32* data , u32 count)

View File

@ -68,7 +68,7 @@ void do_pvr_dma()
SB_PDST = 0x00000000;
//TODO : *CHECKME* is that ok here ? the docs don't say here it's used [PVR-DMA , bit 11]
asic_RaiseInterruptWait(holly_PVR_DMA);
asic_RaiseInterrupt(holly_PVR_DMA);
}
void RegWrite_SB_PDST(u32 addr, u32 data)
{
@ -122,7 +122,7 @@ void pvr_do_sort_dma()
// End of DMA :)
SB_SDST=0;
asic_RaiseInterruptWait(holly_PVR_SortDMA);
asic_RaiseInterrupt(holly_PVR_SortDMA);
}
// Auto sort DMA :|
void RegWrite_SB_SDST(u32 addr, u32 data)

View File

@ -210,9 +210,6 @@ int AicaUpdate(int tag, int c, int j)
//aica_sample_cycles-=AICA_SAMPLE_CYCLES;
}
if (settings.aica.DelayInterrupt)
aica_periodical(3584);
return AICA_TICK;
}

View File

@ -135,7 +135,7 @@ void DMAC_Ch2St()
// The DMA end interrupt flag (SB_ISTNRM - bit 19: DTDE2INT) is set to "1."
//-> fixed , holly_PVR_DMA is for different use now (fixed the interrupts enum too)
asic_RaiseInterruptWait(holly_CH2_DMA);
asic_RaiseInterrupt(holly_CH2_DMA);
}
//on demand data transfer

View File

@ -286,48 +286,47 @@ void dc_stop()
void LoadSettings()
{
#ifndef _ANDROID
settings.dynarec.Enable = cfgLoadInt("config", "Dynarec.Enabled", 1) != 0;
settings.dynarec.idleskip = cfgLoadInt("config", "Dynarec.idleskip", 1) != 0;
settings.dynarec.Enable = cfgLoadInt("config", "Dynarec.Enabled", 1) != 0;
settings.dynarec.idleskip = cfgLoadInt("config", "Dynarec.idleskip", 1) != 0;
settings.dynarec.unstable_opt = cfgLoadInt("config", "Dynarec.unstable-opt", 0);
//disable_nvmem can't be loaded, because nvmem init is before cfg load
settings.dreamcast.cable = cfgLoadInt("config", "Dreamcast.Cable", 3);
settings.dreamcast.RTC = cfgLoadInt("config", "Dreamcast.RTC", GetRTC_now());
settings.dreamcast.region = cfgLoadInt("config", "Dreamcast.Region", 3);
settings.dreamcast.cable = cfgLoadInt("config", "Dreamcast.Cable", 3);
settings.dreamcast.RTC = cfgLoadInt("config", "Dreamcast.RTC", GetRTC_now());
settings.dreamcast.region = cfgLoadInt("config", "Dreamcast.Region", 3);
settings.dreamcast.broadcast = cfgLoadInt("config", "Dreamcast.Broadcast", 4);
settings.aica.LimitFPS = cfgLoadInt("config", "aica.LimitFPS", 1);
settings.aica.NoBatch = cfgLoadInt("config", "aica.NoBatch", 0);
settings.aica.NoSound = cfgLoadInt("config", "aica.NoSound", 0);
settings.rend.UseMipmaps = cfgLoadInt("config", "rend.UseMipmaps", 1);
settings.rend.WideScreen = cfgLoadInt("config", "rend.WideScreen", 0);
settings.rend.Clipping = cfgLoadInt("config", "rend.Clipping", 1);
settings.aica.LimitFPS = cfgLoadInt("config", "aica.LimitFPS", 1);
settings.aica.NoBatch = cfgLoadInt("config", "aica.NoBatch", 0);
settings.aica.NoSound = cfgLoadInt("config", "aica.NoSound", 0);
settings.rend.UseMipmaps = cfgLoadInt("config", "rend.UseMipmaps", 1);
settings.rend.WideScreen = cfgLoadInt("config", "rend.WideScreen", 0);
settings.rend.Clipping = cfgLoadInt("config", "rend.Clipping", 1);
settings.pvr.subdivide_transp = cfgLoadInt("config", "pvr.Subdivide", 0);
settings.pvr.ta_skip = cfgLoadInt("config", "ta.skip", 0);
settings.pvr.rend = cfgLoadInt("config", "pvr.rend", 0);
settings.pvr.ta_skip = cfgLoadInt("config", "ta.skip", 0);
settings.pvr.rend = cfgLoadInt("config", "pvr.rend", 0);
settings.pvr.MaxThreads = cfgLoadInt("config", "pvr.MaxThreads", 3);
settings.pvr.MaxThreads = cfgLoadInt("config", "pvr.MaxThreads", 3);
settings.pvr.SynchronousRender = cfgLoadInt("config", "pvr.SynchronousRendering", 0);
settings.debug.SerialConsole = cfgLoadInt("config", "Debug.SerialConsoleEnabled", 0) != 0;
settings.bios.UseReios = cfgLoadInt("config", "bios.UseReios", 0);
settings.reios.ElfFile = cfgLoadStr("reios", "ElfFile", "");
settings.bios.UseReios = cfgLoadInt("config", "bios.UseReios", 0);
settings.reios.ElfFile = cfgLoadStr("reios", "ElfFile", "");
settings.validate.OpenGlChecks = cfgLoadInt("validate", "OpenGlChecks", 0) != 0;
// Configured on a per-game basis
settings.dynarec.safemode = 0;
settings.aica.DelayInterrupt = 0;
settings.dynarec.safemode = 0;
settings.rend.ModifierVolumes = 1;
#endif
settings.pvr.HashLogFile = cfgLoadStr("testing", "ta.HashLogFile", "");
settings.pvr.HashCheckFile = cfgLoadStr("testing", "ta.HashCheckFile", "");
settings.pvr.HashLogFile = cfgLoadStr("testing", "ta.HashLogFile", "");
settings.pvr.HashCheckFile = cfgLoadStr("testing", "ta.HashCheckFile", "");
#if SUPPORT_DISPMANX
settings.dispmanx.Width = cfgLoadInt("dispmanx","width",640);
settings.dispmanx.Height = cfgLoadInt("dispmanx","height",480);
settings.dispmanx.Width = cfgLoadInt("dispmanx","width",640);
settings.dispmanx.Height = cfgLoadInt("dispmanx","height",480);
settings.dispmanx.Keep_Aspect = cfgLoadBool("dispmanx","maintain_aspect",true);
#endif
@ -338,15 +337,15 @@ void LoadSettings()
#endif
#if USE_OMX
settings.omx.Audio_Latency = cfgLoadInt("omx","audio_latency",100);
settings.omx.Audio_HDMI = cfgLoadBool("omx","audio_hdmi",true);
settings.omx.Audio_Latency = cfgLoadInt("omx","audio_latency",100);
settings.omx.Audio_HDMI = cfgLoadBool("omx","audio_hdmi",true);
#endif
/*
//make sure values are valid
settings.dreamcast.cable = min(max(settings.dreamcast.cable, 0),3);
settings.dreamcast.region = min(max(settings.dreamcast.region, 0),3);
settings.dreamcast.broadcast= min(max(settings.dreamcast.broadcast,0),4);
settings.dreamcast.cable = min(max(settings.dreamcast.cable, 0),3);
settings.dreamcast.region = min(max(settings.dreamcast.region, 0),3);
settings.dreamcast.broadcast = min(max(settings.dreamcast.broadcast,0),4);
*/
}
@ -355,20 +354,19 @@ void LoadCustom()
char *reios_id = reios_disk_id();
cfgSaveStr(reios_id, "software.name", reios_software_name);
settings.dynarec.Enable = cfgLoadInt(reios_id,"Dynarec.Enabled", settings.dynarec.Enable ? 1 : 0) != 0;
settings.dynarec.idleskip = cfgGameInt(reios_id,"Dynarec.idleskip", settings.dynarec.idleskip ? 1 : 0) != 0;
settings.dynarec.Enable = cfgLoadInt(reios_id,"Dynarec.Enabled", settings.dynarec.Enable ? 1 : 0) != 0;
settings.dynarec.idleskip = cfgGameInt(reios_id,"Dynarec.idleskip", settings.dynarec.idleskip ? 1 : 0) != 0;
settings.dynarec.unstable_opt = cfgGameInt(reios_id,"Dynarec.unstable-opt", settings.dynarec.unstable_opt);
settings.dynarec.safemode = cfgGameInt(reios_id,"Dynarec.safemode", settings.dynarec.safemode);
settings.aica.DelayInterrupt = cfgLoadInt(reios_id,"aica.DelayInterrupt", settings.aica.DelayInterrupt);
settings.dynarec.safemode = cfgGameInt(reios_id,"Dynarec.safemode", settings.dynarec.safemode);
settings.rend.ModifierVolumes = cfgGameInt(reios_id,"rend.ModifierVolumes", settings.rend.ModifierVolumes);
settings.rend.Clipping = cfgGameInt(reios_id,"rend.Clipping", settings.rend.Clipping);
settings.rend.Clipping = cfgGameInt(reios_id,"rend.Clipping", settings.rend.Clipping);
settings.pvr.subdivide_transp = cfgGameInt(reios_id,"pvr.Subdivide", settings.pvr.subdivide_transp);
settings.pvr.ta_skip = cfgGameInt(reios_id,"ta.skip", settings.pvr.ta_skip);
settings.pvr.rend = cfgGameInt(reios_id,"pvr.rend", settings.pvr.rend);
settings.pvr.ta_skip = cfgGameInt(reios_id,"ta.skip", settings.pvr.ta_skip);
settings.pvr.rend = cfgGameInt(reios_id,"pvr.rend", settings.pvr.rend);
settings.pvr.MaxThreads = cfgGameInt(reios_id, "pvr.MaxThreads", settings.pvr.MaxThreads);
settings.pvr.MaxThreads = cfgGameInt(reios_id, "pvr.MaxThreads", settings.pvr.MaxThreads);
settings.pvr.SynchronousRender = cfgGameInt(reios_id, "pvr.SynchronousRendering", settings.pvr.SynchronousRender);
}

View File

@ -654,7 +654,6 @@ struct settings_t
u32 DSPEnabled; //0 -> no, 1 -> yes
u32 NoBatch;
u32 NoSound; //0 ->sound, 1 -> no sound
u32 DelayInterrupt;
} aica;
#if USE_OMX

View File

@ -19,7 +19,6 @@ public class Emulator extends Application {
public static final String pref_broadcast = "dc_broadcast";
public static final String pref_limitfps = "limit_fps";
public static final String pref_nosound = "sound_disabled";
public static final String pref_interrupt = "delay_interrupt";
public static final String pref_mipmaps = "use_mipmaps";
public static final String pref_widescreen = "stretch_view";
public static final String pref_frameskip = "frame_skip";
@ -39,7 +38,6 @@ public class Emulator extends Application {
public static boolean limitfps = true;
public static boolean nobatch = false;
public static boolean nosound = false;
public static boolean interrupt = false;
public static boolean mipmaps = true;
public static boolean widescreen = false;
public static boolean subdivide = false;
@ -88,7 +86,6 @@ public class Emulator extends Application {
JNIdc.limitfps(Emulator.limitfps ? 1 : 0);
JNIdc.nobatch(Emulator.nobatch ? 1 : 0);
JNIdc.nosound(Emulator.nosound ? 1 : 0);
JNIdc.delayinterrupt(Emulator.interrupt ? 1 : 0);
JNIdc.mipmaps(Emulator.mipmaps ? 1 : 0);
JNIdc.widescreen(Emulator.widescreen ? 1 : 0);
JNIdc.subdivide(Emulator.subdivide ? 1 : 0);
@ -106,7 +103,6 @@ public class Emulator extends Application {
JNIdc.dynarec(mPrefs.getBoolean(pref_dynarecopt, dynarecopt) ? 1 : 0);
JNIdc.unstable(mPrefs.getBoolean(pref_unstable, unstableopt) ? 1 : 0);
JNIdc.safemode(mPrefs.getBoolean(pref_dynsafemode, dynsafemode) ? 1 : 0);
JNIdc.delayinterrupt(mPrefs.getBoolean(pref_interrupt, interrupt) ? 1 : 0);
JNIdc.frameskip(mPrefs.getInt(pref_frameskip, frameskip));
JNIdc.pvrrender(mPrefs.getBoolean(pref_pvrrender, pvrrender) ? 1 : 0);
JNIdc.syncedrender(mPrefs.getBoolean(pref_syncedrender, syncedrender) ? 1 : 0);

View File

@ -62,7 +62,6 @@ public class PGConfigFragment extends Fragment {
private CompoundButton pvr_render;
private CompoundButton synced_render;
private CompoundButton modifier_volumes;
private CompoundButton interrupt_opt;
private EditText bootdiskEdit;
@Override
@ -102,7 +101,6 @@ public class PGConfigFragment extends Fragment {
pvr_render = (CompoundButton) getView().findViewById(R.id.render_option);
synced_render = (CompoundButton) getView().findViewById(R.id.syncrender_option);
modifier_volumes = (CompoundButton) getView().findViewById(R.id.modvols_option);
interrupt_opt = (CompoundButton) getView().findViewById(R.id.interrupt_option);
bootdiskEdit = (EditText) getView().findViewById(R.id.boot_disk);
}
@ -115,8 +113,7 @@ public class PGConfigFragment extends Fragment {
.putInt(Emulator.pref_frameskip, frameSeek.getProgress())
.putBoolean(Emulator.pref_pvrrender, pvr_render.isChecked())
.putBoolean(Emulator.pref_syncedrender, synced_render.isChecked())
.putBoolean(Emulator.pref_modvols, modifier_volumes.isChecked())
.putBoolean(Emulator.pref_interrupt, interrupt_opt.isChecked()).apply();
.putBoolean(Emulator.pref_modvols, modifier_volumes.isChecked()).apply();
if (bootdiskEdit.getText() != null)
mPrefs.edit().putString(Emulator.pref_bootdisk,
bootdiskEdit.getText().toString()).apply();
@ -135,7 +132,6 @@ public class PGConfigFragment extends Fragment {
.remove(Emulator.pref_pvrrender)
.remove(Emulator.pref_syncedrender)
.remove(Emulator.pref_modvols)
.remove(Emulator.pref_interrupt)
.remove(Emulator.pref_bootdisk).apply();
showToastMessage(getActivity().getString(R.string.pgconfig_cleared), Snackbar.LENGTH_SHORT);
configureViewByGame(gameId);
@ -191,7 +187,6 @@ public class PGConfigFragment extends Fragment {
pvr_render.setChecked(mPrefs.getBoolean(Emulator.pref_pvrrender, Emulator.pvrrender));
synced_render.setChecked(mPrefs.getBoolean(Emulator.pref_syncedrender, Emulator.syncedrender));
modifier_volumes.setChecked(mPrefs.getBoolean(Emulator.pref_modvols, Emulator.modvols));
interrupt_opt.setChecked(mPrefs.getBoolean(Emulator.pref_interrupt, Emulator.interrupt));
bootdiskEdit.setText(mPrefs.getString(Emulator.pref_bootdisk, Emulator.bootdisk));
bootdiskEdit.setOnEditorActionListener(new EditText.OnEditorActionListener() {

View File

@ -39,7 +39,6 @@ public final class JNIdc
public static native void limitfps(int limiter);
public static native void nobatch(int nobatch);
public static native void nosound(int noaudio);
public static native void delayinterrupt(int delayed);
public static native void mipmaps(int mipmaps);
public static native void widescreen(int stretch);
public static native void subdivide(int subdivide);

View File

@ -55,7 +55,6 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_broadcast(JNIEnv *env
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_nobatch(JNIEnv *env,jobject obj, jint nobatch) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_nosound(JNIEnv *env,jobject obj, jint noaudio) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_delayinterrupt(JNIEnv *env,jobject obj, jint delayed) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_mipmaps(JNIEnv *env,jobject obj, jint mipmaps) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_widescreen(JNIEnv *env,jobject obj, jint stretch) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_subdivide(JNIEnv *env,jobject obj, jint subdivide) __attribute__((visibility("default")));
@ -118,11 +117,6 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_nosound(JNIEnv *env,j
settings.aica.NoSound = noaudio;
}
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_delayinterrupt(JNIEnv *env,jobject obj, jint delayed)
{
settings.aica.DelayInterrupt = delayed;
}
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_mipmaps(JNIEnv *env,jobject obj, jint mipmaps)
{
settings.rend.UseMipmaps = mipmaps;

View File

@ -310,34 +310,6 @@
</LinearLayout>
</TableRow>
<TableRow
android:layout_marginTop="10dp"
android:gravity="center_vertical" >
<TextView
android:id="@+id/interrupt_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:ems="10"
android:gravity="center_vertical|left"
android:text="@string/select_interrupt" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical" >
<Switch
android:id="@+id/interrupt_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true" />
</LinearLayout>
</TableRow>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -310,34 +310,6 @@
</LinearLayout>
</TableRow>
<TableRow
android:layout_marginTop="10dp"
android:gravity="center_vertical" >
<TextView
android:id="@+id/interrupt_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:ems="10"
android:gravity="center_vertical|left"
android:text="@string/select_interrupt" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical" >
<Checkbox
android:id="@+id/interrupt_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true" />
</LinearLayout>
</TableRow>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -48,8 +48,7 @@
<string name="set_frameskip">Frameskip Value</string>
<string name="select_render">PVR Rendering (does nothing for now)</string>
<string name="select_syncrender">Synchronous Rendering</string>
<string name="select_modvols">Modifier Volumes</string>
<string name="select_interrupt">Delayed Interrupt</string>
<string name="select_modvols">Enable Modifier Volumes</string>
<string name="select_fps">Show On-Screen FPS</string>
<string name="select_software">Use Software Layer</string>
<string name="select_sound">Disable Emulator Sound</string>