PPU: Added option to emulate OAM row corruption when disabling rendering at certain points during rendering
This commit is contained in:
parent
bf6d161e1a
commit
59fddb7008
17 changed files with 1008 additions and 904 deletions
|
@ -23,6 +23,8 @@ enum EmulationFlags : uint64_t
|
||||||
|
|
||||||
PauseOnMovieEnd = 0x0100,
|
PauseOnMovieEnd = 0x0100,
|
||||||
|
|
||||||
|
EnablePpuOamRowCorruption = 0x0200,
|
||||||
|
|
||||||
AllowBackgroundInput = 0x0400,
|
AllowBackgroundInput = 0x0400,
|
||||||
ReduceSoundInBackground = 0x0800,
|
ReduceSoundInBackground = 0x0800,
|
||||||
MuteSoundInBackground = 0x1000,
|
MuteSoundInBackground = 0x1000,
|
||||||
|
|
60
Core/PPU.cpp
60
Core/PPU.cpp
|
@ -30,6 +30,9 @@ PPU::PPU(shared_ptr<Console> console)
|
||||||
0x09, 0x01, 0x34, 0x03, 0x00, 0x04, 0x00, 0x14, 0x08, 0x3A, 0x00, 0x02, 0x00, 0x20, 0x2C, 0x08 };
|
0x09, 0x01, 0x34, 0x03, 0x00, 0x04, 0x00, 0x14, 0x08, 0x3A, 0x00, 0x02, 0x00, 0x20, 0x2C, 0x08 };
|
||||||
memcpy(_paletteRAM, paletteRamBootValues, sizeof(_paletteRAM));
|
memcpy(_paletteRAM, paletteRamBootValues, sizeof(_paletteRAM));
|
||||||
|
|
||||||
|
//This should (presumably) persist across resets
|
||||||
|
memset(_corruptOamRow, 0, sizeof(_corruptOamRow));
|
||||||
|
|
||||||
_console->InitializeRam(_spriteRAM, 0x100);
|
_console->InitializeRam(_spriteRAM, 0x100);
|
||||||
_console->InitializeRam(_secondarySpriteRAM, 0x20);
|
_console->InitializeRam(_secondarySpriteRAM, 0x20);
|
||||||
|
|
||||||
|
@ -546,6 +549,11 @@ void PPU::SetMaskRegister(uint8_t value)
|
||||||
|
|
||||||
if(_renderingEnabled != (_flags.BackgroundEnabled | _flags.SpritesEnabled)) {
|
if(_renderingEnabled != (_flags.BackgroundEnabled | _flags.SpritesEnabled)) {
|
||||||
_needStateUpdate = true;
|
_needStateUpdate = true;
|
||||||
|
|
||||||
|
if(_renderingEnabled && _scanline < 240) {
|
||||||
|
//Rendering was just disabled by the write
|
||||||
|
SetOamCorruptionFlags();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateMinimumDrawCycles();
|
UpdateMinimumDrawCycles();
|
||||||
|
@ -1222,6 +1230,49 @@ void PPU::DebugUpdateFrameBuffer(bool toGrayscale)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PPU::SetOamCorruptionFlags()
|
||||||
|
{
|
||||||
|
if(!_settings->CheckFlag(EmulationFlags::EnablePpuOamRowCorruption)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Note: Still pending more research, but this currently matches a portion of the issues that have been observed
|
||||||
|
//When rendering is disabled in some sections of the screen, either:
|
||||||
|
// A- During Secondary OAM clear (first ~64 cycles)
|
||||||
|
// B- During OAM tile fetching (cycle ~256 to cycle ~320)
|
||||||
|
//then OAM memory gets corrupted the next time the PPU starts rendering again (usually at the start of the next frame)
|
||||||
|
//This usually causes the first "row" of OAM (the first 8 bytes) to get copied over another, causing some sprites to be missing
|
||||||
|
//and causing an extra set of the first 2 sprites to appear on the screen (not possible to see them except via any overflow they may cause)
|
||||||
|
|
||||||
|
if(_cycle >= 1 && _cycle < 65) {
|
||||||
|
//Every 2 dots causes the corruption to shift down 1 OAM row (8 bytes)
|
||||||
|
_corruptOamRow[(_cycle - 1) >> 1] = true;
|
||||||
|
} else if(_cycle >= 257 && _cycle < 321) {
|
||||||
|
//This section is in 8-dot segments.
|
||||||
|
//The first 3 dot increment the corrupted row by 1, and then the last 5 dots corrupt the next row for 5 dots.
|
||||||
|
uint8_t base = (_cycle - 257) >> 3;
|
||||||
|
uint8_t offset = std::min<uint8_t>(3, (_cycle - 257) & 0x07);
|
||||||
|
_corruptOamRow[base * 4 + offset] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PPU::ProcessOamCorruption()
|
||||||
|
{
|
||||||
|
if(!_settings->CheckFlag(EmulationFlags::EnablePpuOamRowCorruption)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Copy first OAM row over another row, as needed by corruption flags (can be over itself, which causes no actual harm)
|
||||||
|
for(int i = 0; i < 32; i++) {
|
||||||
|
if(_corruptOamRow[i]) {
|
||||||
|
if(i > 0) {
|
||||||
|
memcpy(_spriteRAM + i * 8, _spriteRAM, 8);
|
||||||
|
}
|
||||||
|
_corruptOamRow[i] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PPU::Exec()
|
void PPU::Exec()
|
||||||
{
|
{
|
||||||
if(_cycle > 339) {
|
if(_cycle > 339) {
|
||||||
|
@ -1233,6 +1284,10 @@ void PPU::Exec()
|
||||||
//Force prerender scanline sprite fetches to load the dummy $FF tiles (fixes shaking in Ninja Gaiden 3 stage 1 after beating boss)
|
//Force prerender scanline sprite fetches to load the dummy $FF tiles (fixes shaking in Ninja Gaiden 3 stage 1 after beating boss)
|
||||||
_spriteCount = 0;
|
_spriteCount = 0;
|
||||||
|
|
||||||
|
if(_renderingEnabled) {
|
||||||
|
ProcessOamCorruption();
|
||||||
|
}
|
||||||
|
|
||||||
UpdateMinimumDrawCycles();
|
UpdateMinimumDrawCycles();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1297,6 +1352,9 @@ void PPU::UpdateState()
|
||||||
_prevRenderingEnabled = _renderingEnabled;
|
_prevRenderingEnabled = _renderingEnabled;
|
||||||
if(_renderingEnabled != (_flags.BackgroundEnabled | _flags.SpritesEnabled)) {
|
if(_renderingEnabled != (_flags.BackgroundEnabled | _flags.SpritesEnabled)) {
|
||||||
_renderingEnabled = _flags.BackgroundEnabled | _flags.SpritesEnabled;
|
_renderingEnabled = _flags.BackgroundEnabled | _flags.SpritesEnabled;
|
||||||
|
if(_renderingEnabled) {
|
||||||
|
ProcessOamCorruption();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(_prevRenderingEnabled != _renderingEnabled) {
|
if(_prevRenderingEnabled != _renderingEnabled) {
|
||||||
_needStateUpdate = true;
|
_needStateUpdate = true;
|
||||||
|
@ -1436,6 +1494,8 @@ void PPU::StreamState(bool saving)
|
||||||
_oamDecayCycles[i] = _console->GetCpu()->GetCycleCount();
|
_oamDecayCycles[i] = _console->GetCpu()->GetCycleCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memset(_corruptOamRow, 0, sizeof(_corruptOamRow));
|
||||||
|
|
||||||
for(int i = 0; i < 257; i++) {
|
for(int i = 0; i < 257; i++) {
|
||||||
_hasSprite[i] = true;
|
_hasSprite[i] = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,6 +105,7 @@ class PPU : public IMemoryHandler, public Snapshotable
|
||||||
|
|
||||||
uint64_t _oamDecayCycles[0x40];
|
uint64_t _oamDecayCycles[0x40];
|
||||||
bool _enableOamDecay;
|
bool _enableOamDecay;
|
||||||
|
bool _corruptOamRow[32];
|
||||||
|
|
||||||
void UpdateStatusFlag();
|
void UpdateStatusFlag();
|
||||||
|
|
||||||
|
@ -141,6 +142,9 @@ class PPU : public IMemoryHandler, public Snapshotable
|
||||||
__forceinline uint8_t ReadSpriteRam(uint8_t addr);
|
__forceinline uint8_t ReadSpriteRam(uint8_t addr);
|
||||||
__forceinline void WriteSpriteRam(uint8_t addr, uint8_t value);
|
__forceinline void WriteSpriteRam(uint8_t addr, uint8_t value);
|
||||||
|
|
||||||
|
void SetOamCorruptionFlags();
|
||||||
|
void ProcessOamCorruption();
|
||||||
|
|
||||||
void UpdateMinimumDrawCycles();
|
void UpdateMinimumDrawCycles();
|
||||||
|
|
||||||
uint8_t GetPixelColor();
|
uint8_t GetPixelColor();
|
||||||
|
|
|
@ -25,6 +25,7 @@ namespace Mesen.GUI.Config
|
||||||
public bool RandomizeCpuPpuAlignment = false;
|
public bool RandomizeCpuPpuAlignment = false;
|
||||||
public bool EnablePpu2006ScrollGlitch = false;
|
public bool EnablePpu2006ScrollGlitch = false;
|
||||||
public bool EnablePpu2000ScrollGlitch = false;
|
public bool EnablePpu2000ScrollGlitch = false;
|
||||||
|
public bool EnablePpuOamRowCorruption = false;
|
||||||
|
|
||||||
public bool UseAlternativeMmc3Irq = false;
|
public bool UseAlternativeMmc3Irq = false;
|
||||||
|
|
||||||
|
@ -65,6 +66,7 @@ namespace Mesen.GUI.Config
|
||||||
InteropEmu.SetFlag(EmulationFlags.RandomizeCpuPpuAlignment, emulationInfo.RandomizeCpuPpuAlignment);
|
InteropEmu.SetFlag(EmulationFlags.RandomizeCpuPpuAlignment, emulationInfo.RandomizeCpuPpuAlignment);
|
||||||
InteropEmu.SetFlag(EmulationFlags.EnablePpu2000ScrollGlitch, emulationInfo.EnablePpu2000ScrollGlitch);
|
InteropEmu.SetFlag(EmulationFlags.EnablePpu2000ScrollGlitch, emulationInfo.EnablePpu2000ScrollGlitch);
|
||||||
InteropEmu.SetFlag(EmulationFlags.EnablePpu2006ScrollGlitch, emulationInfo.EnablePpu2006ScrollGlitch);
|
InteropEmu.SetFlag(EmulationFlags.EnablePpu2006ScrollGlitch, emulationInfo.EnablePpu2006ScrollGlitch);
|
||||||
|
InteropEmu.SetFlag(EmulationFlags.EnablePpuOamRowCorruption, emulationInfo.EnablePpuOamRowCorruption);
|
||||||
|
|
||||||
InteropEmu.SetPpuNmiConfig(emulationInfo.PpuExtraScanlinesBeforeNmi, emulationInfo.PpuExtraScanlinesAfterNmi);
|
InteropEmu.SetPpuNmiConfig(emulationInfo.PpuExtraScanlinesBeforeNmi, emulationInfo.PpuExtraScanlinesAfterNmi);
|
||||||
|
|
||||||
|
|
|
@ -328,6 +328,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="tpgOverclocking">Forçament</Control>
|
<Control ID="tpgOverclocking">Forçament</Control>
|
||||||
<Control ID="grpOverclocking">Forçament de CPU</Control>
|
<Control ID="grpOverclocking">Forçament de CPU</Control>
|
||||||
|
|
|
@ -317,7 +317,7 @@
|
||||||
<Control ID="lblMiscSettings">Miscellaneous Settings</Control>
|
<Control ID="lblMiscSettings">Miscellaneous Settings</Control>
|
||||||
<Control ID="chkUseAlternativeMmc3Irq">Use alternative MMC3 IRQ behavior</Control>
|
<Control ID="chkUseAlternativeMmc3Irq">Use alternative MMC3 IRQ behavior</Control>
|
||||||
<Control ID="chkAllowInvalidInput">Allow invalid input (e.g Down + Up or Left + Right at the same time)</Control>
|
<Control ID="chkAllowInvalidInput">Allow invalid input (e.g Down + Up or Left + Right at the same time)</Control>
|
||||||
<Control ID="chkEnableOamDecay">Enable OAM RAM decay</Control>
|
<Control ID="chkEnableOamDecay">Enable PPU OAM decay</Control>
|
||||||
<Control ID="chkDisablePpu2004Reads">Disable PPU $2004 reads (Famicom behavior)</Control>
|
<Control ID="chkDisablePpu2004Reads">Disable PPU $2004 reads (Famicom behavior)</Control>
|
||||||
<Control ID="chkDisableOamAddrBug">Disable PPU OAMADDR bug emulation</Control>
|
<Control ID="chkDisableOamAddrBug">Disable PPU OAMADDR bug emulation</Control>
|
||||||
<Control ID="chkDisablePaletteRead">Disable PPU palette reads</Control>
|
<Control ID="chkDisablePaletteRead">Disable PPU palette reads</Control>
|
||||||
|
@ -327,6 +327,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="lblRamPowerOnState">Default power on state for RAM:</Control>
|
<Control ID="lblRamPowerOnState">Default power on state for RAM:</Control>
|
||||||
|
|
||||||
|
|
|
@ -327,6 +327,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Aleatorizar el encendido/reinicio de la alineación CPU/PPU</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Aleatorizar el encendido/reinicio de la alineación CPU/PPU</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Habilitar el fallo de emulación de scroll PPU $2006</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Habilitar el fallo de emulación de scroll PPU $2006</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Habilitar el fallo de emulación de scroll de primera escritura PPU $2000/$2005/$2006</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Habilitar el fallo de emulación de scroll de primera escritura PPU $2000/$2005/$2006</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="tpgOverclocking">Overclocking</Control>
|
<Control ID="tpgOverclocking">Overclocking</Control>
|
||||||
<Control ID="grpOverclocking">Overclocking de CPU</Control>
|
<Control ID="grpOverclocking">Overclocking de CPU</Control>
|
||||||
|
|
|
@ -327,6 +327,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Démarrer le jeu avec un alignement CPU/PPU aléatoire</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Démarrer le jeu avec un alignement CPU/PPU aléatoire</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Simuler le bug de scrolling lors de l'écriture à $2006</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Simuler le bug de scrolling lors de l'écriture à $2006</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Simuler le bug de scrolling lors de l'écriture à $2000/$2005/$2006</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Simuler le bug de scrolling lors de l'écriture à $2000/$2005/$2006</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Simuler le bug de corruption de la rangée OAM</Control>
|
||||||
|
|
||||||
<Control ID="lblRamPowerOnState">État initial de la mémoire au démarrage : </Control>
|
<Control ID="lblRamPowerOnState">État initial de la mémoire au démarrage : </Control>
|
||||||
|
|
||||||
|
|
|
@ -327,6 +327,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="lblRamPowerOnState">Stato di accensione predefinito per la RAM:</Control>
|
<Control ID="lblRamPowerOnState">Stato di accensione predefinito per la RAM:</Control>
|
||||||
|
|
||||||
|
|
|
@ -326,6 +326,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">ランダムなCPU/PPUアラインメントでゲームを起動する</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">ランダムなCPU/PPUアラインメントでゲームを起動する</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">$2006に書き込む時に発生するスクロールバグを再現する</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">$2006に書き込む時に発生するスクロールバグを再現する</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">$2000・$2005・$2006に書き込む時に発生するスクロールバグを再現する</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">$2000・$2005・$2006に書き込む時に発生するスクロールバグを再現する</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">OAM行のデータの汚染を再現する</Control>
|
||||||
|
|
||||||
<Control ID="lblRamPowerOnState">起動時のメモリの状態 : </Control>
|
<Control ID="lblRamPowerOnState">起動時のメモリの状態 : </Control>
|
||||||
|
|
||||||
|
|
|
@ -327,6 +327,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Aleatorizar o ligar/reiniciar do alinhamento da CPU/PPU</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Aleatorizar o ligar/reiniciar do alinhamento da CPU/PPU</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Ativar emulação do erro gráfico PPU $2006 na rolagem</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Ativar emulação do erro gráfico PPU $2006 na rolagem</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Ativar emulação do erro gráfico PPU $2000/$2005/$2006 na rolagem na primeira escrita</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Ativar emulação do erro gráfico PPU $2000/$2005/$2006 na rolagem na primeira escrita</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="lblRamPowerOnState">Estado inicial da RAM durante o início:</Control>
|
<Control ID="lblRamPowerOnState">Estado inicial da RAM durante o início:</Control>
|
||||||
|
|
||||||
|
|
|
@ -327,6 +327,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Рандомизировать включение/перезагрузку выравнивания CPU/PPU</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Рандомизировать включение/перезагрузку выравнивания CPU/PPU</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Включить PPU $2006 scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Включить PPU $2006 scroll glitch emulation</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Включить PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Включить PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="tpgOverclocking">Разгон</Control>
|
<Control ID="tpgOverclocking">Разгон</Control>
|
||||||
<Control ID="grpOverclocking">Разгон CPU</Control>
|
<Control ID="grpOverclocking">Разгон CPU</Control>
|
||||||
|
|
|
@ -327,6 +327,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">Randomize power-on/reset CPU/PPU alignment</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">Enable PPU $2006 scroll glitch emulation</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">Enable PPU $2000/$2005/$2006 first-write scroll glitch emulation</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="tpgOverclocking">Розгін</Control>
|
<Control ID="tpgOverclocking">Розгін</Control>
|
||||||
<Control ID="grpOverclocking">Розгін CPU</Control>
|
<Control ID="grpOverclocking">Розгін CPU</Control>
|
||||||
|
|
|
@ -353,6 +353,7 @@
|
||||||
<Control ID="chkRandomizeCpuPpuAlignment">随机 CPU/PPU 开机对齐</Control>
|
<Control ID="chkRandomizeCpuPpuAlignment">随机 CPU/PPU 开机对齐</Control>
|
||||||
<Control ID="chkEnablePpu2006ScrollGlitch">模拟 PPU $2006 卷轴故障</Control>
|
<Control ID="chkEnablePpu2006ScrollGlitch">模拟 PPU $2006 卷轴故障</Control>
|
||||||
<Control ID="chkEnablePpu2000ScrollGlitch">模拟首次写入 PPU $2000/$2005/$2006 卷轴故障</Control>
|
<Control ID="chkEnablePpu2000ScrollGlitch">模拟首次写入 PPU $2000/$2005/$2006 卷轴故障</Control>
|
||||||
|
<Control ID="chkEnablePpuOamRowCorruption">Enable PPU OAM row corruption emulation</Control>
|
||||||
|
|
||||||
<Control ID="lblRamPowerOnState">默认开机 RAM 状态:</Control>
|
<Control ID="lblRamPowerOnState">默认开机 RAM 状态:</Control>
|
||||||
<Control ID="tpgOverclocking">超频</Control>
|
<Control ID="tpgOverclocking">超频</Control>
|
||||||
|
|
157
GUI.NET/Forms/Config/frmEmulationConfig.Designer.cs
generated
157
GUI.NET/Forms/Config/frmEmulationConfig.Designer.cs
generated
|
@ -52,14 +52,16 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.lblRewindSpeedHint = new System.Windows.Forms.Label();
|
this.lblRewindSpeedHint = new System.Windows.Forms.Label();
|
||||||
this.tpgAdvanced = new System.Windows.Forms.TabPage();
|
this.tpgAdvanced = new System.Windows.Forms.TabPage();
|
||||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.chkEnablePpuOamRowCorruption = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.chkEnablePpu2000ScrollGlitch = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkEnablePpu2000ScrollGlitch = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.chkEnablePpu2006ScrollGlitch = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkEnablePpu2006ScrollGlitch = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.chkRandomizeCpuPpuAlignment = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkRandomizeCpuPpuAlignment = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.lblMiscSettings = new System.Windows.Forms.Label();
|
this.lblMiscSettings = new System.Windows.Forms.Label();
|
||||||
this.chkMapperRandomPowerOnState = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkMapperRandomPowerOnState = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.chkEnableOamDecay = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkEnableOamDecay = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.lblRamPowerOnState = new System.Windows.Forms.Label();
|
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
this.cboRamPowerOnState = new System.Windows.Forms.ComboBox();
|
this.cboRamPowerOnState = new System.Windows.Forms.ComboBox();
|
||||||
|
this.lblRamPowerOnState = new System.Windows.Forms.Label();
|
||||||
this.chkDisablePaletteRead = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkDisablePaletteRead = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.chkDisableOamAddrBug = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkDisableOamAddrBug = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
this.chkDisablePpuReset = new Mesen.GUI.Controls.ctrlRiskyOption();
|
this.chkDisablePpuReset = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||||
|
@ -91,7 +93,6 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.chkShowLagCounter = new System.Windows.Forms.CheckBox();
|
this.chkShowLagCounter = new System.Windows.Forms.CheckBox();
|
||||||
this.btnResetLagCounter = new System.Windows.Forms.Button();
|
this.btnResetLagCounter = new System.Windows.Forms.Button();
|
||||||
this.tmrUpdateClockRate = new System.Windows.Forms.Timer(this.components);
|
this.tmrUpdateClockRate = new System.Windows.Forms.Timer(this.components);
|
||||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.tabMain.SuspendLayout();
|
this.tabMain.SuspendLayout();
|
||||||
this.tpgGeneral.SuspendLayout();
|
this.tpgGeneral.SuspendLayout();
|
||||||
this.tableLayoutPanel4.SuspendLayout();
|
this.tableLayoutPanel4.SuspendLayout();
|
||||||
|
@ -101,6 +102,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.flowLayoutPanel10.SuspendLayout();
|
this.flowLayoutPanel10.SuspendLayout();
|
||||||
this.tpgAdvanced.SuspendLayout();
|
this.tpgAdvanced.SuspendLayout();
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
|
this.tableLayoutPanel2.SuspendLayout();
|
||||||
this.tpgOverclocking.SuspendLayout();
|
this.tpgOverclocking.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.picHint)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.picHint)).BeginInit();
|
||||||
this.tableLayoutPanel3.SuspendLayout();
|
this.tableLayoutPanel3.SuspendLayout();
|
||||||
|
@ -110,12 +112,11 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tableLayoutPanel5.SuspendLayout();
|
this.tableLayoutPanel5.SuspendLayout();
|
||||||
this.flowLayoutPanel2.SuspendLayout();
|
this.flowLayoutPanel2.SuspendLayout();
|
||||||
this.flowLayoutPanel7.SuspendLayout();
|
this.flowLayoutPanel7.SuspendLayout();
|
||||||
this.tableLayoutPanel2.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// baseConfigPanel
|
// baseConfigPanel
|
||||||
//
|
//
|
||||||
this.baseConfigPanel.Location = new System.Drawing.Point(0, 386);
|
this.baseConfigPanel.Location = new System.Drawing.Point(0, 408);
|
||||||
this.baseConfigPanel.Size = new System.Drawing.Size(533, 29);
|
this.baseConfigPanel.Size = new System.Drawing.Size(533, 29);
|
||||||
//
|
//
|
||||||
// tabMain
|
// tabMain
|
||||||
|
@ -127,7 +128,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tabMain.Location = new System.Drawing.Point(0, 0);
|
this.tabMain.Location = new System.Drawing.Point(0, 0);
|
||||||
this.tabMain.Name = "tabMain";
|
this.tabMain.Name = "tabMain";
|
||||||
this.tabMain.SelectedIndex = 0;
|
this.tabMain.SelectedIndex = 0;
|
||||||
this.tabMain.Size = new System.Drawing.Size(533, 386);
|
this.tabMain.Size = new System.Drawing.Size(533, 408);
|
||||||
this.tabMain.TabIndex = 2;
|
this.tabMain.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// tpgGeneral
|
// tpgGeneral
|
||||||
|
@ -136,7 +137,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tpgGeneral.Location = new System.Drawing.Point(4, 22);
|
this.tpgGeneral.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tpgGeneral.Name = "tpgGeneral";
|
this.tpgGeneral.Name = "tpgGeneral";
|
||||||
this.tpgGeneral.Padding = new System.Windows.Forms.Padding(3);
|
this.tpgGeneral.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tpgGeneral.Size = new System.Drawing.Size(525, 360);
|
this.tpgGeneral.Size = new System.Drawing.Size(525, 382);
|
||||||
this.tpgGeneral.TabIndex = 0;
|
this.tpgGeneral.TabIndex = 0;
|
||||||
this.tpgGeneral.Text = "General";
|
this.tpgGeneral.Text = "General";
|
||||||
this.tpgGeneral.UseVisualStyleBackColor = true;
|
this.tpgGeneral.UseVisualStyleBackColor = true;
|
||||||
|
@ -164,7 +165,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
this.tableLayoutPanel4.Size = new System.Drawing.Size(519, 354);
|
this.tableLayoutPanel4.Size = new System.Drawing.Size(519, 376);
|
||||||
this.tableLayoutPanel4.TabIndex = 0;
|
this.tableLayoutPanel4.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// flowLayoutPanel5
|
// flowLayoutPanel5
|
||||||
|
@ -187,6 +188,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
this.nudRunAheadFrames.IsHex = false;
|
||||||
this.nudRunAheadFrames.Location = new System.Drawing.Point(3, 3);
|
this.nudRunAheadFrames.Location = new System.Drawing.Point(3, 3);
|
||||||
this.nudRunAheadFrames.Maximum = new decimal(new int[] {
|
this.nudRunAheadFrames.Maximum = new decimal(new int[] {
|
||||||
10,
|
10,
|
||||||
|
@ -249,6 +251,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
this.nudTurboSpeed.IsHex = false;
|
||||||
this.nudTurboSpeed.Location = new System.Drawing.Point(3, 3);
|
this.nudTurboSpeed.Location = new System.Drawing.Point(3, 3);
|
||||||
this.nudTurboSpeed.Maximum = new decimal(new int[] {
|
this.nudTurboSpeed.Maximum = new decimal(new int[] {
|
||||||
5000,
|
5000,
|
||||||
|
@ -311,6 +314,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
this.nudEmulationSpeed.IsHex = false;
|
||||||
this.nudEmulationSpeed.Location = new System.Drawing.Point(3, 3);
|
this.nudEmulationSpeed.Location = new System.Drawing.Point(3, 3);
|
||||||
this.nudEmulationSpeed.Maximum = new decimal(new int[] {
|
this.nudEmulationSpeed.Maximum = new decimal(new int[] {
|
||||||
5000,
|
5000,
|
||||||
|
@ -383,6 +387,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
this.nudRewindSpeed.IsHex = false;
|
||||||
this.nudRewindSpeed.Location = new System.Drawing.Point(3, 3);
|
this.nudRewindSpeed.Location = new System.Drawing.Point(3, 3);
|
||||||
this.nudRewindSpeed.Maximum = new decimal(new int[] {
|
this.nudRewindSpeed.Maximum = new decimal(new int[] {
|
||||||
5000,
|
5000,
|
||||||
|
@ -421,7 +426,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tpgAdvanced.Location = new System.Drawing.Point(4, 22);
|
this.tpgAdvanced.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tpgAdvanced.Name = "tpgAdvanced";
|
this.tpgAdvanced.Name = "tpgAdvanced";
|
||||||
this.tpgAdvanced.Padding = new System.Windows.Forms.Padding(3);
|
this.tpgAdvanced.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tpgAdvanced.Size = new System.Drawing.Size(525, 360);
|
this.tpgAdvanced.Size = new System.Drawing.Size(525, 382);
|
||||||
this.tpgAdvanced.TabIndex = 1;
|
this.tpgAdvanced.TabIndex = 1;
|
||||||
this.tpgAdvanced.Text = "Advanced";
|
this.tpgAdvanced.Text = "Advanced";
|
||||||
this.tpgAdvanced.UseVisualStyleBackColor = true;
|
this.tpgAdvanced.UseVisualStyleBackColor = true;
|
||||||
|
@ -430,25 +435,26 @@ namespace Mesen.GUI.Forms.Config
|
||||||
//
|
//
|
||||||
this.tableLayoutPanel1.ColumnCount = 1;
|
this.tableLayoutPanel1.ColumnCount = 1;
|
||||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkEnablePpu2000ScrollGlitch, 0, 5);
|
this.tableLayoutPanel1.Controls.Add(this.chkEnablePpuOamRowCorruption, 0, 6);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkEnablePpu2006ScrollGlitch, 0, 4);
|
this.tableLayoutPanel1.Controls.Add(this.chkEnablePpu2000ScrollGlitch, 0, 4);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkRandomizeCpuPpuAlignment, 0, 3);
|
this.tableLayoutPanel1.Controls.Add(this.chkEnablePpu2006ScrollGlitch, 0, 3);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.lblMiscSettings, 0, 7);
|
this.tableLayoutPanel1.Controls.Add(this.chkRandomizeCpuPpuAlignment, 0, 2);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkMapperRandomPowerOnState, 0, 2);
|
this.tableLayoutPanel1.Controls.Add(this.lblMiscSettings, 0, 8);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkEnableOamDecay, 0, 1);
|
this.tableLayoutPanel1.Controls.Add(this.chkMapperRandomPowerOnState, 0, 1);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 6);
|
this.tableLayoutPanel1.Controls.Add(this.chkEnableOamDecay, 0, 5);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkDisablePaletteRead, 0, 13);
|
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 7);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkDisableOamAddrBug, 0, 11);
|
this.tableLayoutPanel1.Controls.Add(this.chkDisablePaletteRead, 0, 14);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkDisablePpuReset, 0, 10);
|
this.tableLayoutPanel1.Controls.Add(this.chkDisableOamAddrBug, 0, 12);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkDisablePpu2004Reads, 0, 12);
|
this.tableLayoutPanel1.Controls.Add(this.chkDisablePpuReset, 0, 11);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkUseNes101Hvc101Behavior, 0, 9);
|
this.tableLayoutPanel1.Controls.Add(this.chkDisablePpu2004Reads, 0, 13);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkAllowInvalidInput, 0, 14);
|
this.tableLayoutPanel1.Controls.Add(this.chkUseNes101Hvc101Behavior, 0, 10);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.chkUseAlternativeMmc3Irq, 0, 8);
|
this.tableLayoutPanel1.Controls.Add(this.chkAllowInvalidInput, 0, 15);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.chkUseAlternativeMmc3Irq, 0, 9);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.lblDeveloperSettings, 0, 0);
|
this.tableLayoutPanel1.Controls.Add(this.lblDeveloperSettings, 0, 0);
|
||||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
|
||||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
this.tableLayoutPanel1.RowCount = 16;
|
this.tableLayoutPanel1.RowCount = 17;
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
|
@ -456,6 +462,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
|
@ -465,15 +472,28 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(519, 354);
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(519, 376);
|
||||||
this.tableLayoutPanel1.TabIndex = 0;
|
this.tableLayoutPanel1.TabIndex = 0;
|
||||||
//
|
//
|
||||||
|
// chkEnablePpuOamRowCorruption
|
||||||
|
//
|
||||||
|
this.chkEnablePpuOamRowCorruption.AutoSize = true;
|
||||||
|
this.chkEnablePpuOamRowCorruption.Checked = false;
|
||||||
|
this.chkEnablePpuOamRowCorruption.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.chkEnablePpuOamRowCorruption.Location = new System.Drawing.Point(10, 135);
|
||||||
|
this.chkEnablePpuOamRowCorruption.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
|
this.chkEnablePpuOamRowCorruption.MinimumSize = new System.Drawing.Size(0, 23);
|
||||||
|
this.chkEnablePpuOamRowCorruption.Name = "chkEnablePpuOamRowCorruption";
|
||||||
|
this.chkEnablePpuOamRowCorruption.Size = new System.Drawing.Size(509, 23);
|
||||||
|
this.chkEnablePpuOamRowCorruption.TabIndex = 39;
|
||||||
|
this.chkEnablePpuOamRowCorruption.Text = "Enable PPU OAM row corruption emulation";
|
||||||
|
//
|
||||||
// chkEnablePpu2000ScrollGlitch
|
// chkEnablePpu2000ScrollGlitch
|
||||||
//
|
//
|
||||||
this.chkEnablePpu2000ScrollGlitch.AutoSize = true;
|
this.chkEnablePpu2000ScrollGlitch.AutoSize = true;
|
||||||
this.chkEnablePpu2000ScrollGlitch.Checked = false;
|
this.chkEnablePpu2000ScrollGlitch.Checked = false;
|
||||||
this.chkEnablePpu2000ScrollGlitch.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkEnablePpu2000ScrollGlitch.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkEnablePpu2000ScrollGlitch.Location = new System.Drawing.Point(10, 112);
|
this.chkEnablePpu2000ScrollGlitch.Location = new System.Drawing.Point(10, 89);
|
||||||
this.chkEnablePpu2000ScrollGlitch.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkEnablePpu2000ScrollGlitch.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkEnablePpu2000ScrollGlitch.MinimumSize = new System.Drawing.Size(0, 23);
|
this.chkEnablePpu2000ScrollGlitch.MinimumSize = new System.Drawing.Size(0, 23);
|
||||||
this.chkEnablePpu2000ScrollGlitch.Name = "chkEnablePpu2000ScrollGlitch";
|
this.chkEnablePpu2000ScrollGlitch.Name = "chkEnablePpu2000ScrollGlitch";
|
||||||
|
@ -486,7 +506,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.chkEnablePpu2006ScrollGlitch.AutoSize = true;
|
this.chkEnablePpu2006ScrollGlitch.AutoSize = true;
|
||||||
this.chkEnablePpu2006ScrollGlitch.Checked = false;
|
this.chkEnablePpu2006ScrollGlitch.Checked = false;
|
||||||
this.chkEnablePpu2006ScrollGlitch.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkEnablePpu2006ScrollGlitch.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkEnablePpu2006ScrollGlitch.Location = new System.Drawing.Point(10, 89);
|
this.chkEnablePpu2006ScrollGlitch.Location = new System.Drawing.Point(10, 66);
|
||||||
this.chkEnablePpu2006ScrollGlitch.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkEnablePpu2006ScrollGlitch.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkEnablePpu2006ScrollGlitch.MinimumSize = new System.Drawing.Size(0, 23);
|
this.chkEnablePpu2006ScrollGlitch.MinimumSize = new System.Drawing.Size(0, 23);
|
||||||
this.chkEnablePpu2006ScrollGlitch.Name = "chkEnablePpu2006ScrollGlitch";
|
this.chkEnablePpu2006ScrollGlitch.Name = "chkEnablePpu2006ScrollGlitch";
|
||||||
|
@ -499,7 +519,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.chkRandomizeCpuPpuAlignment.AutoSize = true;
|
this.chkRandomizeCpuPpuAlignment.AutoSize = true;
|
||||||
this.chkRandomizeCpuPpuAlignment.Checked = false;
|
this.chkRandomizeCpuPpuAlignment.Checked = false;
|
||||||
this.chkRandomizeCpuPpuAlignment.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkRandomizeCpuPpuAlignment.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkRandomizeCpuPpuAlignment.Location = new System.Drawing.Point(10, 66);
|
this.chkRandomizeCpuPpuAlignment.Location = new System.Drawing.Point(10, 43);
|
||||||
this.chkRandomizeCpuPpuAlignment.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkRandomizeCpuPpuAlignment.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkRandomizeCpuPpuAlignment.MinimumSize = new System.Drawing.Size(0, 23);
|
this.chkRandomizeCpuPpuAlignment.MinimumSize = new System.Drawing.Size(0, 23);
|
||||||
this.chkRandomizeCpuPpuAlignment.Name = "chkRandomizeCpuPpuAlignment";
|
this.chkRandomizeCpuPpuAlignment.Name = "chkRandomizeCpuPpuAlignment";
|
||||||
|
@ -512,7 +532,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.lblMiscSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
this.lblMiscSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
this.lblMiscSettings.AutoSize = true;
|
this.lblMiscSettings.AutoSize = true;
|
||||||
this.lblMiscSettings.ForeColor = System.Drawing.SystemColors.GrayText;
|
this.lblMiscSettings.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||||
this.lblMiscSettings.Location = new System.Drawing.Point(0, 166);
|
this.lblMiscSettings.Location = new System.Drawing.Point(0, 189);
|
||||||
this.lblMiscSettings.Margin = new System.Windows.Forms.Padding(0, 0, 3, 2);
|
this.lblMiscSettings.Margin = new System.Windows.Forms.Padding(0, 0, 3, 2);
|
||||||
this.lblMiscSettings.Name = "lblMiscSettings";
|
this.lblMiscSettings.Name = "lblMiscSettings";
|
||||||
this.lblMiscSettings.Size = new System.Drawing.Size(115, 13);
|
this.lblMiscSettings.Size = new System.Drawing.Size(115, 13);
|
||||||
|
@ -524,7 +544,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.chkMapperRandomPowerOnState.AutoSize = true;
|
this.chkMapperRandomPowerOnState.AutoSize = true;
|
||||||
this.chkMapperRandomPowerOnState.Checked = false;
|
this.chkMapperRandomPowerOnState.Checked = false;
|
||||||
this.chkMapperRandomPowerOnState.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkMapperRandomPowerOnState.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkMapperRandomPowerOnState.Location = new System.Drawing.Point(10, 43);
|
this.chkMapperRandomPowerOnState.Location = new System.Drawing.Point(10, 20);
|
||||||
this.chkMapperRandomPowerOnState.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkMapperRandomPowerOnState.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkMapperRandomPowerOnState.MinimumSize = new System.Drawing.Size(0, 23);
|
this.chkMapperRandomPowerOnState.MinimumSize = new System.Drawing.Size(0, 23);
|
||||||
this.chkMapperRandomPowerOnState.Name = "chkMapperRandomPowerOnState";
|
this.chkMapperRandomPowerOnState.Name = "chkMapperRandomPowerOnState";
|
||||||
|
@ -536,7 +556,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
//
|
//
|
||||||
this.chkEnableOamDecay.Checked = false;
|
this.chkEnableOamDecay.Checked = false;
|
||||||
this.chkEnableOamDecay.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkEnableOamDecay.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkEnableOamDecay.Location = new System.Drawing.Point(10, 20);
|
this.chkEnableOamDecay.Location = new System.Drawing.Point(10, 112);
|
||||||
this.chkEnableOamDecay.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkEnableOamDecay.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkEnableOamDecay.MinimumSize = new System.Drawing.Size(0, 21);
|
this.chkEnableOamDecay.MinimumSize = new System.Drawing.Size(0, 21);
|
||||||
this.chkEnableOamDecay.Name = "chkEnableOamDecay";
|
this.chkEnableOamDecay.Name = "chkEnableOamDecay";
|
||||||
|
@ -544,15 +564,21 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.chkEnableOamDecay.TabIndex = 9;
|
this.chkEnableOamDecay.TabIndex = 9;
|
||||||
this.chkEnableOamDecay.Text = "Enable OAM RAM decay";
|
this.chkEnableOamDecay.Text = "Enable OAM RAM decay";
|
||||||
//
|
//
|
||||||
// lblRamPowerOnState
|
// tableLayoutPanel2
|
||||||
//
|
//
|
||||||
this.lblRamPowerOnState.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
this.tableLayoutPanel2.ColumnCount = 2;
|
||||||
this.lblRamPowerOnState.AutoSize = true;
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||||
this.lblRamPowerOnState.Location = new System.Drawing.Point(3, 6);
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
this.lblRamPowerOnState.Name = "lblRamPowerOnState";
|
this.tableLayoutPanel2.Controls.Add(this.cboRamPowerOnState, 1, 0);
|
||||||
this.lblRamPowerOnState.Size = new System.Drawing.Size(159, 13);
|
this.tableLayoutPanel2.Controls.Add(this.lblRamPowerOnState, 0, 0);
|
||||||
this.lblRamPowerOnState.TabIndex = 0;
|
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.lblRamPowerOnState.Text = "Default power on state for RAM:";
|
this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 158);
|
||||||
|
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||||
|
this.tableLayoutPanel2.RowCount = 1;
|
||||||
|
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel2.Size = new System.Drawing.Size(519, 26);
|
||||||
|
this.tableLayoutPanel2.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// cboRamPowerOnState
|
// cboRamPowerOnState
|
||||||
//
|
//
|
||||||
|
@ -564,11 +590,21 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.cboRamPowerOnState.Size = new System.Drawing.Size(348, 21);
|
this.cboRamPowerOnState.Size = new System.Drawing.Size(348, 21);
|
||||||
this.cboRamPowerOnState.TabIndex = 1;
|
this.cboRamPowerOnState.TabIndex = 1;
|
||||||
//
|
//
|
||||||
|
// lblRamPowerOnState
|
||||||
|
//
|
||||||
|
this.lblRamPowerOnState.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||||
|
this.lblRamPowerOnState.AutoSize = true;
|
||||||
|
this.lblRamPowerOnState.Location = new System.Drawing.Point(3, 6);
|
||||||
|
this.lblRamPowerOnState.Name = "lblRamPowerOnState";
|
||||||
|
this.lblRamPowerOnState.Size = new System.Drawing.Size(159, 13);
|
||||||
|
this.lblRamPowerOnState.TabIndex = 0;
|
||||||
|
this.lblRamPowerOnState.Text = "Default power on state for RAM:";
|
||||||
|
//
|
||||||
// chkDisablePaletteRead
|
// chkDisablePaletteRead
|
||||||
//
|
//
|
||||||
this.chkDisablePaletteRead.Checked = false;
|
this.chkDisablePaletteRead.Checked = false;
|
||||||
this.chkDisablePaletteRead.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkDisablePaletteRead.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkDisablePaletteRead.Location = new System.Drawing.Point(10, 296);
|
this.chkDisablePaletteRead.Location = new System.Drawing.Point(10, 319);
|
||||||
this.chkDisablePaletteRead.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkDisablePaletteRead.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkDisablePaletteRead.MinimumSize = new System.Drawing.Size(0, 21);
|
this.chkDisablePaletteRead.MinimumSize = new System.Drawing.Size(0, 21);
|
||||||
this.chkDisablePaletteRead.Name = "chkDisablePaletteRead";
|
this.chkDisablePaletteRead.Name = "chkDisablePaletteRead";
|
||||||
|
@ -580,7 +616,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
//
|
//
|
||||||
this.chkDisableOamAddrBug.Checked = false;
|
this.chkDisableOamAddrBug.Checked = false;
|
||||||
this.chkDisableOamAddrBug.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkDisableOamAddrBug.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkDisableOamAddrBug.Location = new System.Drawing.Point(10, 250);
|
this.chkDisableOamAddrBug.Location = new System.Drawing.Point(10, 273);
|
||||||
this.chkDisableOamAddrBug.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkDisableOamAddrBug.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkDisableOamAddrBug.MinimumSize = new System.Drawing.Size(0, 21);
|
this.chkDisableOamAddrBug.MinimumSize = new System.Drawing.Size(0, 21);
|
||||||
this.chkDisableOamAddrBug.Name = "chkDisableOamAddrBug";
|
this.chkDisableOamAddrBug.Name = "chkDisableOamAddrBug";
|
||||||
|
@ -592,7 +628,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
//
|
//
|
||||||
this.chkDisablePpuReset.Checked = false;
|
this.chkDisablePpuReset.Checked = false;
|
||||||
this.chkDisablePpuReset.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkDisablePpuReset.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkDisablePpuReset.Location = new System.Drawing.Point(10, 227);
|
this.chkDisablePpuReset.Location = new System.Drawing.Point(10, 250);
|
||||||
this.chkDisablePpuReset.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkDisablePpuReset.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkDisablePpuReset.MinimumSize = new System.Drawing.Size(0, 21);
|
this.chkDisablePpuReset.MinimumSize = new System.Drawing.Size(0, 21);
|
||||||
this.chkDisablePpuReset.Name = "chkDisablePpuReset";
|
this.chkDisablePpuReset.Name = "chkDisablePpuReset";
|
||||||
|
@ -604,7 +640,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
//
|
//
|
||||||
this.chkDisablePpu2004Reads.Checked = false;
|
this.chkDisablePpu2004Reads.Checked = false;
|
||||||
this.chkDisablePpu2004Reads.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkDisablePpu2004Reads.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkDisablePpu2004Reads.Location = new System.Drawing.Point(10, 273);
|
this.chkDisablePpu2004Reads.Location = new System.Drawing.Point(10, 296);
|
||||||
this.chkDisablePpu2004Reads.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkDisablePpu2004Reads.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkDisablePpu2004Reads.MinimumSize = new System.Drawing.Size(0, 21);
|
this.chkDisablePpu2004Reads.MinimumSize = new System.Drawing.Size(0, 21);
|
||||||
this.chkDisablePpu2004Reads.Name = "chkDisablePpu2004Reads";
|
this.chkDisablePpu2004Reads.Name = "chkDisablePpu2004Reads";
|
||||||
|
@ -615,7 +651,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
// chkUseNes101Hvc101Behavior
|
// chkUseNes101Hvc101Behavior
|
||||||
//
|
//
|
||||||
this.chkUseNes101Hvc101Behavior.AutoSize = true;
|
this.chkUseNes101Hvc101Behavior.AutoSize = true;
|
||||||
this.chkUseNes101Hvc101Behavior.Location = new System.Drawing.Point(13, 207);
|
this.chkUseNes101Hvc101Behavior.Location = new System.Drawing.Point(13, 230);
|
||||||
this.chkUseNes101Hvc101Behavior.Margin = new System.Windows.Forms.Padding(13, 3, 3, 3);
|
this.chkUseNes101Hvc101Behavior.Margin = new System.Windows.Forms.Padding(13, 3, 3, 3);
|
||||||
this.chkUseNes101Hvc101Behavior.Name = "chkUseNes101Hvc101Behavior";
|
this.chkUseNes101Hvc101Behavior.Name = "chkUseNes101Hvc101Behavior";
|
||||||
this.chkUseNes101Hvc101Behavior.Size = new System.Drawing.Size(292, 17);
|
this.chkUseNes101Hvc101Behavior.Size = new System.Drawing.Size(292, 17);
|
||||||
|
@ -628,7 +664,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.chkAllowInvalidInput.AutoSize = true;
|
this.chkAllowInvalidInput.AutoSize = true;
|
||||||
this.chkAllowInvalidInput.Checked = false;
|
this.chkAllowInvalidInput.Checked = false;
|
||||||
this.chkAllowInvalidInput.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.chkAllowInvalidInput.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.chkAllowInvalidInput.Location = new System.Drawing.Point(10, 319);
|
this.chkAllowInvalidInput.Location = new System.Drawing.Point(10, 342);
|
||||||
this.chkAllowInvalidInput.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
this.chkAllowInvalidInput.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
|
||||||
this.chkAllowInvalidInput.MinimumSize = new System.Drawing.Size(0, 23);
|
this.chkAllowInvalidInput.MinimumSize = new System.Drawing.Size(0, 23);
|
||||||
this.chkAllowInvalidInput.Name = "chkAllowInvalidInput";
|
this.chkAllowInvalidInput.Name = "chkAllowInvalidInput";
|
||||||
|
@ -639,7 +675,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
// chkUseAlternativeMmc3Irq
|
// chkUseAlternativeMmc3Irq
|
||||||
//
|
//
|
||||||
this.chkUseAlternativeMmc3Irq.AutoSize = true;
|
this.chkUseAlternativeMmc3Irq.AutoSize = true;
|
||||||
this.chkUseAlternativeMmc3Irq.Location = new System.Drawing.Point(13, 184);
|
this.chkUseAlternativeMmc3Irq.Location = new System.Drawing.Point(13, 207);
|
||||||
this.chkUseAlternativeMmc3Irq.Margin = new System.Windows.Forms.Padding(13, 3, 3, 3);
|
this.chkUseAlternativeMmc3Irq.Margin = new System.Windows.Forms.Padding(13, 3, 3, 3);
|
||||||
this.chkUseAlternativeMmc3Irq.Name = "chkUseAlternativeMmc3Irq";
|
this.chkUseAlternativeMmc3Irq.Name = "chkUseAlternativeMmc3Irq";
|
||||||
this.chkUseAlternativeMmc3Irq.Size = new System.Drawing.Size(197, 17);
|
this.chkUseAlternativeMmc3Irq.Size = new System.Drawing.Size(197, 17);
|
||||||
|
@ -666,7 +702,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tpgOverclocking.Location = new System.Drawing.Point(4, 22);
|
this.tpgOverclocking.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tpgOverclocking.Name = "tpgOverclocking";
|
this.tpgOverclocking.Name = "tpgOverclocking";
|
||||||
this.tpgOverclocking.Padding = new System.Windows.Forms.Padding(3);
|
this.tpgOverclocking.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.tpgOverclocking.Size = new System.Drawing.Size(525, 360);
|
this.tpgOverclocking.Size = new System.Drawing.Size(525, 382);
|
||||||
this.tpgOverclocking.TabIndex = 2;
|
this.tpgOverclocking.TabIndex = 2;
|
||||||
this.tpgOverclocking.Text = "Overclocking";
|
this.tpgOverclocking.Text = "Overclocking";
|
||||||
this.tpgOverclocking.UseVisualStyleBackColor = true;
|
this.tpgOverclocking.UseVisualStyleBackColor = true;
|
||||||
|
@ -707,7 +743,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
this.tableLayoutPanel3.Size = new System.Drawing.Size(519, 354);
|
this.tableLayoutPanel3.Size = new System.Drawing.Size(519, 376);
|
||||||
this.tableLayoutPanel3.TabIndex = 0;
|
this.tableLayoutPanel3.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// lblOverclockHint
|
// lblOverclockHint
|
||||||
|
@ -819,6 +855,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
this.nudExtraScanlinesAfterNmi.IsHex = false;
|
||||||
this.nudExtraScanlinesAfterNmi.Location = new System.Drawing.Point(165, 30);
|
this.nudExtraScanlinesAfterNmi.Location = new System.Drawing.Point(165, 30);
|
||||||
this.nudExtraScanlinesAfterNmi.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
this.nudExtraScanlinesAfterNmi.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||||
this.nudExtraScanlinesAfterNmi.Maximum = new decimal(new int[] {
|
this.nudExtraScanlinesAfterNmi.Maximum = new decimal(new int[] {
|
||||||
|
@ -850,6 +887,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
this.nudExtraScanlinesBeforeNmi.IsHex = false;
|
||||||
this.nudExtraScanlinesBeforeNmi.Location = new System.Drawing.Point(165, 3);
|
this.nudExtraScanlinesBeforeNmi.Location = new System.Drawing.Point(165, 3);
|
||||||
this.nudExtraScanlinesBeforeNmi.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
this.nudExtraScanlinesBeforeNmi.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||||
this.nudExtraScanlinesBeforeNmi.Maximum = new decimal(new int[] {
|
this.nudExtraScanlinesBeforeNmi.Maximum = new decimal(new int[] {
|
||||||
|
@ -931,7 +969,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.flowLayoutPanel7.Location = new System.Drawing.Point(0, 172);
|
this.flowLayoutPanel7.Location = new System.Drawing.Point(0, 172);
|
||||||
this.flowLayoutPanel7.Margin = new System.Windows.Forms.Padding(0);
|
this.flowLayoutPanel7.Margin = new System.Windows.Forms.Padding(0);
|
||||||
this.flowLayoutPanel7.Name = "flowLayoutPanel7";
|
this.flowLayoutPanel7.Name = "flowLayoutPanel7";
|
||||||
this.flowLayoutPanel7.Size = new System.Drawing.Size(519, 182);
|
this.flowLayoutPanel7.Size = new System.Drawing.Size(519, 204);
|
||||||
this.flowLayoutPanel7.TabIndex = 12;
|
this.flowLayoutPanel7.TabIndex = 12;
|
||||||
//
|
//
|
||||||
// chkShowLagCounter
|
// chkShowLagCounter
|
||||||
|
@ -961,28 +999,12 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tmrUpdateClockRate.Enabled = true;
|
this.tmrUpdateClockRate.Enabled = true;
|
||||||
this.tmrUpdateClockRate.Tick += new System.EventHandler(this.tmrUpdateClockRate_Tick);
|
this.tmrUpdateClockRate.Tick += new System.EventHandler(this.tmrUpdateClockRate_Tick);
|
||||||
//
|
//
|
||||||
// tableLayoutPanel2
|
|
||||||
//
|
|
||||||
this.tableLayoutPanel2.ColumnCount = 2;
|
|
||||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
|
||||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.cboRamPowerOnState, 1, 0);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.lblRamPowerOnState, 0, 0);
|
|
||||||
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 135);
|
|
||||||
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0, 0, 0, 0);
|
|
||||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
|
||||||
this.tableLayoutPanel2.RowCount = 1;
|
|
||||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
|
||||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(519, 26);
|
|
||||||
this.tableLayoutPanel2.TabIndex = 2;
|
|
||||||
//
|
|
||||||
// frmEmulationConfig
|
// frmEmulationConfig
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.AutoSize = true;
|
this.AutoSize = true;
|
||||||
this.ClientSize = new System.Drawing.Size(533, 415);
|
this.ClientSize = new System.Drawing.Size(533, 437);
|
||||||
this.Controls.Add(this.tabMain);
|
this.Controls.Add(this.tabMain);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
|
@ -1009,6 +1031,8 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.tpgAdvanced.ResumeLayout(false);
|
this.tpgAdvanced.ResumeLayout(false);
|
||||||
this.tableLayoutPanel1.ResumeLayout(false);
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
this.tableLayoutPanel1.PerformLayout();
|
this.tableLayoutPanel1.PerformLayout();
|
||||||
|
this.tableLayoutPanel2.ResumeLayout(false);
|
||||||
|
this.tableLayoutPanel2.PerformLayout();
|
||||||
this.tpgOverclocking.ResumeLayout(false);
|
this.tpgOverclocking.ResumeLayout(false);
|
||||||
this.tpgOverclocking.PerformLayout();
|
this.tpgOverclocking.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.picHint)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.picHint)).EndInit();
|
||||||
|
@ -1024,8 +1048,6 @@ namespace Mesen.GUI.Forms.Config
|
||||||
this.flowLayoutPanel2.PerformLayout();
|
this.flowLayoutPanel2.PerformLayout();
|
||||||
this.flowLayoutPanel7.ResumeLayout(false);
|
this.flowLayoutPanel7.ResumeLayout(false);
|
||||||
this.flowLayoutPanel7.PerformLayout();
|
this.flowLayoutPanel7.PerformLayout();
|
||||||
this.tableLayoutPanel2.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel2.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1092,5 +1114,6 @@ namespace Mesen.GUI.Forms.Config
|
||||||
private System.Windows.Forms.Label lblRunAheadFrames;
|
private System.Windows.Forms.Label lblRunAheadFrames;
|
||||||
private System.Windows.Forms.Label lblRunAhead;
|
private System.Windows.Forms.Label lblRunAhead;
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||||
|
private ctrlRiskyOption chkEnablePpuOamRowCorruption;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -42,6 +42,7 @@ namespace Mesen.GUI.Forms.Config
|
||||||
AddBinding("RandomizeCpuPpuAlignment", chkRandomizeCpuPpuAlignment);
|
AddBinding("RandomizeCpuPpuAlignment", chkRandomizeCpuPpuAlignment);
|
||||||
AddBinding("EnablePpu2006ScrollGlitch", chkEnablePpu2006ScrollGlitch);
|
AddBinding("EnablePpu2006ScrollGlitch", chkEnablePpu2006ScrollGlitch);
|
||||||
AddBinding("EnablePpu2000ScrollGlitch", chkEnablePpu2000ScrollGlitch);
|
AddBinding("EnablePpu2000ScrollGlitch", chkEnablePpu2000ScrollGlitch);
|
||||||
|
AddBinding("EnablePpuOamRowCorruption", chkEnablePpuOamRowCorruption);
|
||||||
|
|
||||||
AddBinding("PpuExtraScanlinesBeforeNmi", nudExtraScanlinesBeforeNmi);
|
AddBinding("PpuExtraScanlinesBeforeNmi", nudExtraScanlinesBeforeNmi);
|
||||||
AddBinding("PpuExtraScanlinesAfterNmi", nudExtraScanlinesAfterNmi);
|
AddBinding("PpuExtraScanlinesAfterNmi", nudExtraScanlinesAfterNmi);
|
||||||
|
|
|
@ -1619,6 +1619,8 @@ namespace Mesen.GUI
|
||||||
|
|
||||||
PauseOnMovieEnd = 0x0100,
|
PauseOnMovieEnd = 0x0100,
|
||||||
|
|
||||||
|
EnablePpuOamRowCorruption = 0x0200,
|
||||||
|
|
||||||
AllowBackgroundInput = 0x0400,
|
AllowBackgroundInput = 0x0400,
|
||||||
ReduceSoundInBackground = 0x0800,
|
ReduceSoundInBackground = 0x0800,
|
||||||
MuteSoundInBackground = 0x1000,
|
MuteSoundInBackground = 0x1000,
|
||||||
|
|
Loading…
Add table
Reference in a new issue