mirror of
https://github.com/SourMesen/Mesen.git
synced 2025-04-02 10:52:48 -04:00
Overclocking: Added settings to add extra scanlines in vblank before and after NMI + Moved a lot of emulation-related settings to a new "Emulation" menu item
This commit is contained in:
parent
b4e412a7d5
commit
57f24af64f
35 changed files with 1185 additions and 404 deletions
|
@ -64,10 +64,10 @@ class APU : public Snapshotable, public IMemoryHandler
|
|||
|
||||
__forceinline static void ExecStatic()
|
||||
{
|
||||
if(EmulationSettings::GetOverclockRate() == 100 || !EmulationSettings::GetOverclockAdjustApu()) {
|
||||
if(EmulationSettings::GetOverclockRate(true) == 100) {
|
||||
Instance->Exec();
|
||||
} else {
|
||||
Instance->_cyclesNeeded += 1.0 / ((double)EmulationSettings::GetOverclockRate() / 100.0);
|
||||
Instance->_cyclesNeeded += 1.0 / ((double)EmulationSettings::GetOverclockRate(true) / 100.0);
|
||||
while(Instance->_cyclesNeeded >= 1.0) {
|
||||
Instance->Exec();
|
||||
Instance->_cyclesNeeded--;
|
||||
|
|
|
@ -19,10 +19,10 @@ protected:
|
|||
public:
|
||||
void Clock()
|
||||
{
|
||||
if(EmulationSettings::GetOverclockRate() == 100 || !EmulationSettings::GetOverclockAdjustApu()) {
|
||||
if(EmulationSettings::GetOverclockRate(true) == 100) {
|
||||
ClockAudio();
|
||||
} else {
|
||||
_clocksNeeded += 1.0 / ((double)EmulationSettings::GetOverclockRate() / 100);
|
||||
_clocksNeeded += 1.0 / ((double)EmulationSettings::GetOverclockRate(true) / 100);
|
||||
while(_clocksNeeded >= 1.0) {
|
||||
ClockAudio();
|
||||
_clocksNeeded--;
|
||||
|
|
22
Core/CPU.cpp
22
Core/CPU.cpp
|
@ -209,31 +209,29 @@ void CPU::StartDmcTransfer()
|
|||
}
|
||||
}
|
||||
|
||||
uint32_t CPU::GetClockRate(NesModel model, bool includeOverclock)
|
||||
uint32_t CPU::GetClockRate(NesModel model)
|
||||
{
|
||||
uint32_t baseClock;
|
||||
switch(model) {
|
||||
default:
|
||||
case NesModel::NTSC: baseClock = CPU::ClockRateNtsc; break;
|
||||
case NesModel::PAL: baseClock = CPU::ClockRatePal; break;
|
||||
case NesModel::Dendy: baseClock = CPU::ClockRateDendy; break;
|
||||
}
|
||||
if(includeOverclock) {
|
||||
return baseClock * EmulationSettings::GetOverclockRate() / 100;
|
||||
} else {
|
||||
return baseClock;
|
||||
case NesModel::NTSC: return CPU::ClockRateNtsc; break;
|
||||
case NesModel::PAL: return CPU::ClockRatePal; break;
|
||||
case NesModel::Dendy: return CPU::ClockRateDendy; break;
|
||||
}
|
||||
}
|
||||
|
||||
void CPU::StreamState(bool saving)
|
||||
{
|
||||
uint32_t overclockRate = EmulationSettings::GetOverclockRate();
|
||||
uint32_t overclockRate = EmulationSettings::GetOverclockRateSetting();
|
||||
bool overclockAdjustApu = EmulationSettings::GetOverclockAdjustApu();
|
||||
uint32_t extraScanlinesBeforeNmi = EmulationSettings::GetPpuExtraScanlinesBeforeNmi();
|
||||
uint32_t extraScanlinesAfterNmi = EmulationSettings::GetPpuExtraScanlinesAfterNmi();
|
||||
|
||||
Stream(_state.PC, _state.SP, _state.PS, _state.A, _state.X, _state.Y, _cycleCount, _state.NMIFlag,
|
||||
_state.IRQFlag, _dmcCounter, _dmcDmaRunning, _spriteDmaCounter, _spriteDmaTransfer, overclockRate, overclockAdjustApu);
|
||||
_state.IRQFlag, _dmcCounter, _dmcDmaRunning, _spriteDmaCounter, _spriteDmaTransfer,
|
||||
overclockRate, overclockAdjustApu, extraScanlinesBeforeNmi, extraScanlinesBeforeNmi);
|
||||
|
||||
if(!saving) {
|
||||
EmulationSettings::SetOverclockRate(overclockRate, overclockAdjustApu);
|
||||
EmulationSettings::SetPpuNmiConfig(extraScanlinesBeforeNmi, extraScanlinesAfterNmi);
|
||||
}
|
||||
}
|
|
@ -878,7 +878,7 @@ public:
|
|||
static void ClearIRQSource(IRQSource source) { CPU::Instance->_state.IRQFlag &= ~(int)source; }
|
||||
static void RunDMATransfer(uint8_t* spriteRAM, uint8_t offsetValue);
|
||||
static void StartDmcTransfer();
|
||||
static uint32_t GetClockRate(NesModel model, bool includeOverclock = true);
|
||||
static uint32_t GetClockRate(NesModel model);
|
||||
|
||||
|
||||
//Used by debugger for "Set Next Statement"
|
||||
|
|
|
@ -14,7 +14,10 @@ DeltaModulationChannel::DeltaModulationChannel(AudioChannel channel, SoundMixer
|
|||
void DeltaModulationChannel::Reset(bool softReset)
|
||||
{
|
||||
BaseApuChannel::Reset(softReset);
|
||||
|
||||
|
||||
EmulationSettings::DisableOverclocking(false);
|
||||
_enableOverclockCounter = 0;
|
||||
|
||||
_sampleAddr = 0;
|
||||
_sampleLength = 0;
|
||||
_outputLevel = 0;
|
||||
|
@ -102,13 +105,21 @@ void DeltaModulationChannel::Clock()
|
|||
}
|
||||
}
|
||||
|
||||
if(_enableOverclockCounter > 0) {
|
||||
_enableOverclockCounter -= _period;
|
||||
if(_enableOverclockCounter <= 0) {
|
||||
//Reenable overclocking if no sample was written for over a full frame
|
||||
EmulationSettings::DisableOverclocking(false);
|
||||
}
|
||||
}
|
||||
|
||||
AddOutput(_outputLevel);
|
||||
}
|
||||
|
||||
void DeltaModulationChannel::StreamState(bool saving)
|
||||
{
|
||||
BaseApuChannel::StreamState(saving);
|
||||
Stream(_sampleAddr, _sampleLength, _outputLevel, _irqEnabled, _loopFlag, _currentAddr, _bytesRemaining, _readBuffer, _bufferEmpty, _shiftRegister, _bitsRemaining, _silenceFlag, _needToRun);
|
||||
Stream(_sampleAddr, _sampleLength, _outputLevel, _irqEnabled, _loopFlag, _currentAddr, _bytesRemaining, _readBuffer, _bufferEmpty, _shiftRegister, _bitsRemaining, _silenceFlag, _needToRun, _enableOverclockCounter);
|
||||
}
|
||||
|
||||
bool DeltaModulationChannel::IrqPending(uint32_t cyclesToRun)
|
||||
|
@ -154,6 +165,11 @@ void DeltaModulationChannel::WriteRAM(uint16_t addr, uint8_t value)
|
|||
|
||||
//4011 applies new output right away, not on the timer's reload. This fixes bad DMC sound when playing through 4011.
|
||||
AddOutput(_outputLevel);
|
||||
|
||||
if(value > 0) {
|
||||
_enableOverclockCounter = 30000;
|
||||
EmulationSettings::DisableOverclocking(true);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2: //4012
|
||||
|
|
|
@ -30,6 +30,8 @@ private:
|
|||
bool _silenceFlag = true;
|
||||
bool _needToRun = false;
|
||||
|
||||
int32_t _enableOverclockCounter;
|
||||
|
||||
void InitSample();
|
||||
void FillReadBuffer();
|
||||
|
||||
|
|
|
@ -26,7 +26,13 @@ PpuModel EmulationSettings::_ppuModel = PpuModel::Ppu2C03;
|
|||
|
||||
uint32_t EmulationSettings::_emulationSpeed = 100;
|
||||
uint32_t EmulationSettings::_overclockRate = 100;
|
||||
uint32_t EmulationSettings::_extraScanlinesBeforeNmi = 0;
|
||||
uint32_t EmulationSettings::_extraScanlinesAfterNmi = 0;
|
||||
uint32_t EmulationSettings::_ppuScanlineCount = 262;
|
||||
double EmulationSettings::_effectiveOverclockRate = 100;
|
||||
double EmulationSettings::_effectiveOverclockRateSound = 100;
|
||||
bool EmulationSettings::_overclockAdjustApu = true;
|
||||
bool EmulationSettings::_disableOverclocking = false;
|
||||
|
||||
OverscanDimensions EmulationSettings::_overscan;
|
||||
VideoFilterType EmulationSettings::_videoFilterType = VideoFilterType::None;
|
||||
|
|
|
@ -245,6 +245,12 @@ private:
|
|||
static uint32_t _emulationSpeed;
|
||||
static uint32_t _overclockRate;
|
||||
static bool _overclockAdjustApu;
|
||||
static bool _disableOverclocking;
|
||||
static uint32_t _extraScanlinesBeforeNmi;
|
||||
static uint32_t _extraScanlinesAfterNmi;
|
||||
static uint32_t _ppuScanlineCount;
|
||||
static double _effectiveOverclockRate;
|
||||
static double _effectiveOverclockRateSound;
|
||||
|
||||
static OverscanDimensions _overscan;
|
||||
static VideoFilterType _videoFilterType;
|
||||
|
@ -404,11 +410,45 @@ public:
|
|||
return _emulationSpeed;
|
||||
}
|
||||
|
||||
static uint32_t GetOverclockRate()
|
||||
static void UpdateEffectiveOverclockRate()
|
||||
{
|
||||
if(_disableOverclocking) {
|
||||
_effectiveOverclockRateSound = 100;
|
||||
_effectiveOverclockRate = 100;
|
||||
} else {
|
||||
_effectiveOverclockRateSound = _overclockRate * (double)(1 + (double)(_extraScanlinesBeforeNmi + _extraScanlinesAfterNmi) / _ppuScanlineCount);
|
||||
_effectiveOverclockRate = _overclockRate;
|
||||
}
|
||||
}
|
||||
|
||||
static void SetPpuScanlineCount(uint32_t scanlineCount)
|
||||
{
|
||||
_ppuScanlineCount = scanlineCount;
|
||||
UpdateEffectiveOverclockRate();
|
||||
}
|
||||
|
||||
static void DisableOverclocking(bool disabled)
|
||||
{
|
||||
_disableOverclocking = disabled;
|
||||
UpdateEffectiveOverclockRate();
|
||||
}
|
||||
|
||||
static uint32_t GetOverclockRateSetting()
|
||||
{
|
||||
return _overclockRate;
|
||||
}
|
||||
|
||||
static double GetOverclockRate(bool forApu = false, bool forSoundMixer = false)
|
||||
{
|
||||
if(forApu && _overclockAdjustApu || forSoundMixer) {
|
||||
return _effectiveOverclockRateSound;
|
||||
} else if(!forApu) {
|
||||
return _effectiveOverclockRate;
|
||||
} else {
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
|
||||
static bool GetOverclockAdjustApu()
|
||||
{
|
||||
return _overclockAdjustApu;
|
||||
|
@ -419,9 +459,36 @@ public:
|
|||
if(_overclockRate != overclockRate || _overclockAdjustApu != adjustApu) {
|
||||
_overclockRate = overclockRate;
|
||||
_overclockAdjustApu = adjustApu;
|
||||
|
||||
UpdateEffectiveOverclockRate();
|
||||
|
||||
MessageManager::SendNotification(ConsoleNotificationType::ConfigChanged);
|
||||
|
||||
MessageManager::DisplayMessage("ClockRate", std::to_string(EmulationSettings::GetOverclockRate()) + "%");
|
||||
MessageManager::DisplayMessage("ClockRate", std::to_string((uint32_t)EmulationSettings::GetOverclockRate()) + "%");
|
||||
}
|
||||
}
|
||||
|
||||
static uint32_t GetPpuExtraScanlinesBeforeNmi()
|
||||
{
|
||||
return _disableOverclocking ? 0 : _extraScanlinesBeforeNmi;
|
||||
}
|
||||
|
||||
static uint32_t GetPpuExtraScanlinesAfterNmi()
|
||||
{
|
||||
return _disableOverclocking ? 0 : _extraScanlinesAfterNmi;
|
||||
}
|
||||
|
||||
static void SetPpuNmiConfig(uint32_t extraScanlinesBeforeNmi, uint32_t extraScanlinesAfterNmi)
|
||||
{
|
||||
if(_extraScanlinesBeforeNmi != extraScanlinesBeforeNmi || _extraScanlinesAfterNmi != extraScanlinesAfterNmi) {
|
||||
if(extraScanlinesBeforeNmi > 0 || extraScanlinesAfterNmi > 0) {
|
||||
MessageManager::DisplayMessage("PPU", "ScanlineTimingWarning");
|
||||
}
|
||||
|
||||
_extraScanlinesBeforeNmi = extraScanlinesBeforeNmi;
|
||||
_extraScanlinesAfterNmi = extraScanlinesAfterNmi;
|
||||
|
||||
UpdateEffectiveOverclockRate();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ protected:
|
|||
_square2.Run();
|
||||
if(_audioCounter <= 0) {
|
||||
//~240hz envelope/length counter
|
||||
_audioCounter = CPU::GetClockRate(EmulationSettings::GetNesModel(), false) / 240;
|
||||
_audioCounter = CPU::GetClockRate(EmulationSettings::GetNesModel()) / 240;
|
||||
_square1.TickLengthCounter();
|
||||
_square1.TickEnvelope();
|
||||
_square2.TickLengthCounter();
|
||||
|
|
|
@ -26,7 +26,7 @@ std::unordered_map<string, string> MessageManager::_enResources = {
|
|||
{ "ConnectedAsSpectator", u8"Connected as spectator." },
|
||||
{ "ConnectionLost", u8"Connection to server lost." },
|
||||
{ "CouldNotConnect", u8"Could not connect to the server." },
|
||||
{ "CouldNotIniitalizeAudioSystem", u8"Could not initialize audio system" },
|
||||
{ "CouldNotIniitalizeAudioSystem", u8"Could not initialize audio system" },
|
||||
{ "CouldNotFindRom", u8"Could not find matching game ROM." },
|
||||
{ "CouldNotLoadFile", u8"Could not load file: %1" },
|
||||
{ "EmulationMaximumSpeed", u8"Maximum speed" },
|
||||
|
@ -49,6 +49,7 @@ std::unordered_map<string, string> MessageManager::_enResources = {
|
|||
{ "SaveStateLoaded", u8"State #%1 loaded." },
|
||||
{ "SaveStateNewerVersion", u8"Cannot load save states created by a more recent version of Mesen. Please download the latest version." },
|
||||
{ "SaveStateSaved", u8"State #%1 saved." },
|
||||
{ "ScanlineTimingWarning", u8"PPU timing has been changed." },
|
||||
{ "ServerStarted", u8"Server started (Port: %1)" },
|
||||
{ "ServerStopped", u8"Server stopped" },
|
||||
{ "SoundRecorderStarted", u8"Recording to: %1" },
|
||||
|
@ -107,6 +108,7 @@ std::unordered_map<string, string> MessageManager::_frResources = {
|
|||
{ "SaveStateLoaded", u8"Sauvegarde #%1 chargée." },
|
||||
{ "SaveStateNewerVersion", u8"Impossible de charger une sauvegarde qui a été créée avec une version plus récente de Mesen. Veuillez mettre à jour Mesen." },
|
||||
{ "SaveStateSaved", u8"Sauvegarde #%1 sauvegardée." },
|
||||
{ "ScanlineTimingWarning", u8"Le timing du PPU a été modifié." },
|
||||
{ "ServerStarted", u8"Le serveur a été démarré (Port : %1)" },
|
||||
{ "ServerStopped", u8"Le serveur a été arrêté" },
|
||||
{ "SoundRecorderStarted", u8"En cours d'enregistrement : %1" },
|
||||
|
@ -167,6 +169,7 @@ std::unordered_map<string, string> MessageManager::_jaResources = {
|
|||
{ "SaveStateSaved", u8"クイックセーブ%1をセーブしました。" },
|
||||
{ "ServerStarted", u8"サーバは起動しました (ポート: %1)" },
|
||||
{ "ServerStopped", u8"サーバは停止しました。" },
|
||||
{ "ScanlineTimingWarning", u8"PPUのタイミングは変更されました。" },
|
||||
{ "SoundRecorderStarted", u8"%1に録音しています。" },
|
||||
{ "SoundRecorderStopped", u8"録音を終了しました: %1" },
|
||||
{ "TestFileSavedTo", u8"Test file saved to: %1" },
|
||||
|
|
|
@ -213,6 +213,8 @@ struct MovieHeader
|
|||
uint32_t ExpansionDevice;
|
||||
uint32_t OverclockRate;
|
||||
bool OverclockAdjustApu;
|
||||
uint32_t ExtraScanlinesBeforeNmi;
|
||||
uint32_t ExtraScanlinesAfterNmi;
|
||||
uint32_t CheatCount;
|
||||
uint32_t FilenameLength;
|
||||
};
|
||||
|
@ -250,6 +252,8 @@ bool Movie::Save()
|
|||
_file.write((char*)&header.ExpansionDevice, sizeof(header.ExpansionDevice));
|
||||
_file.write((char*)&header.OverclockRate, sizeof(header.OverclockRate));
|
||||
_file.write((char*)&header.OverclockAdjustApu, sizeof(header.OverclockAdjustApu));
|
||||
_file.write((char*)&header.ExtraScanlinesBeforeNmi, sizeof(header.ExtraScanlinesBeforeNmi));
|
||||
_file.write((char*)&header.ExtraScanlinesAfterNmi, sizeof(header.ExtraScanlinesAfterNmi));
|
||||
_file.write((char*)&header.CheatCount, sizeof(header.CheatCount));
|
||||
_file.write((char*)&header.FilenameLength, sizeof(header.FilenameLength));
|
||||
|
||||
|
@ -324,6 +328,12 @@ bool Movie::Load(std::stringstream &file, bool autoLoadRom)
|
|||
file.read((char*)&header.OverclockRate, sizeof(header.OverclockRate));
|
||||
file.read((char*)&header.OverclockAdjustApu, sizeof(header.OverclockAdjustApu));
|
||||
EmulationSettings::SetOverclockRate(header.OverclockRate, header.OverclockAdjustApu);
|
||||
|
||||
if(header.MovieFormatVersion >= 4) {
|
||||
file.read((char*)&header.ExtraScanlinesBeforeNmi, sizeof(header.ExtraScanlinesBeforeNmi));
|
||||
file.read((char*)&header.ExtraScanlinesAfterNmi, sizeof(header.ExtraScanlinesAfterNmi));
|
||||
EmulationSettings::SetPpuNmiConfig(header.ExtraScanlinesBeforeNmi, header.ExtraScanlinesAfterNmi);
|
||||
}
|
||||
}
|
||||
file.read((char*)&header.CheatCount, sizeof(header.CheatCount));
|
||||
file.read((char*)&header.FilenameLength, sizeof(header.FilenameLength));
|
||||
|
|
|
@ -14,7 +14,7 @@ class Movie
|
|||
{
|
||||
private:
|
||||
static shared_ptr<Movie> _instance;
|
||||
const uint32_t MovieFormatVersion = 3;
|
||||
const uint32_t MovieFormatVersion = 4;
|
||||
bool _recording = false;
|
||||
bool _playing = false;
|
||||
uint8_t _counter[4];
|
||||
|
|
38
Core/PPU.cpp
38
Core/PPU.cpp
|
@ -59,11 +59,27 @@ void PPU::Reset()
|
|||
void PPU::SetNesModel(NesModel model)
|
||||
{
|
||||
_nesModel = model;
|
||||
switch(model) {
|
||||
case NesModel::NTSC: _vblankEnd = 260; break;
|
||||
|
||||
switch(_nesModel) {
|
||||
case NesModel::NTSC:
|
||||
_nmiScanline = 241;
|
||||
_vblankEnd = 260;
|
||||
EmulationSettings::SetPpuScanlineCount(262);
|
||||
break;
|
||||
case NesModel::PAL:
|
||||
case NesModel::Dendy: _vblankEnd = 310; break;
|
||||
_nmiScanline = 241;
|
||||
_vblankEnd = 310;
|
||||
EmulationSettings::SetPpuScanlineCount(312);
|
||||
break;
|
||||
case NesModel::Dendy:
|
||||
_nmiScanline = 291;
|
||||
_vblankEnd = 310;
|
||||
EmulationSettings::SetPpuScanlineCount(312);
|
||||
break;
|
||||
}
|
||||
|
||||
_nmiScanline += EmulationSettings::GetPpuExtraScanlinesBeforeNmi();
|
||||
_vblankEnd += EmulationSettings::GetPpuExtraScanlinesAfterNmi() + EmulationSettings::GetPpuExtraScanlinesBeforeNmi();
|
||||
}
|
||||
|
||||
PPUDebugState PPU::GetState()
|
||||
|
@ -829,10 +845,7 @@ void PPU::BeginVBlank()
|
|||
{
|
||||
if(_cycle == 0) {
|
||||
SendFrame();
|
||||
|
||||
if(_nesModel == NesModel::NTSC || _nesModel == NesModel::PAL) {
|
||||
TriggerNmi();
|
||||
}
|
||||
TriggerNmi();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -868,10 +881,8 @@ void PPU::Exec()
|
|||
ProcessVisibleScanline();
|
||||
} else if(_scanline == -1) {
|
||||
ProcessPrerenderScanline();
|
||||
} else if(_scanline == 241) {
|
||||
} else if(_scanline == _nmiScanline) {
|
||||
BeginVBlank();
|
||||
} else if(_scanline == 291 && _cycle == 0 && _nesModel == NesModel::Dendy) {
|
||||
TriggerNmi();
|
||||
} else if(_scanline == _vblankEnd) {
|
||||
EndVBlank();
|
||||
}
|
||||
|
@ -883,7 +894,8 @@ void PPU::Exec()
|
|||
|
||||
void PPU::ExecStatic()
|
||||
{
|
||||
if(EmulationSettings::GetOverclockRate() == 100) {
|
||||
double overclockRate = EmulationSettings::GetOverclockRate();
|
||||
if(overclockRate == 100) {
|
||||
PPU::Instance->Exec();
|
||||
PPU::Instance->Exec();
|
||||
PPU::Instance->Exec();
|
||||
|
@ -894,9 +906,9 @@ void PPU::ExecStatic()
|
|||
} else {
|
||||
if(PPU::Instance->_nesModel == NesModel::PAL) {
|
||||
//PAL PPU runs 3.2 clocks for every CPU clock, so we need to run an extra clock every 5 CPU clocks
|
||||
Instance->_cyclesNeeded += 3.2 / ((double)EmulationSettings::GetOverclockRate() / 100.0);
|
||||
Instance->_cyclesNeeded += 3.2 / (overclockRate / 100.0);
|
||||
} else {
|
||||
Instance->_cyclesNeeded += 3.0 / ((double)EmulationSettings::GetOverclockRate() / 100.0);
|
||||
Instance->_cyclesNeeded += 3.0 / (overclockRate / 100.0);
|
||||
}
|
||||
|
||||
while(Instance->_cyclesNeeded >= 1.0) {
|
||||
|
|
|
@ -111,6 +111,7 @@ class PPU : public IMemoryHandler, public Snapshotable
|
|||
|
||||
NesModel _nesModel;
|
||||
uint16_t _vblankEnd;
|
||||
uint16_t _nmiScanline;
|
||||
|
||||
PPUControlFlags _flags;
|
||||
PPUStatusFlags _statusFlags;
|
||||
|
|
|
@ -129,7 +129,11 @@ void SoundMixer::SetNesModel(NesModel model)
|
|||
|
||||
void SoundMixer::UpdateRates(bool forceUpdate)
|
||||
{
|
||||
uint32_t newRate = CPU::GetClockRate(_model, !EmulationSettings::GetOverclockAdjustApu());
|
||||
uint32_t newRate = CPU::GetClockRate(_model);
|
||||
if(!EmulationSettings::GetOverclockAdjustApu()) {
|
||||
newRate *= (double)EmulationSettings::GetOverclockRate(false, true) / 100;
|
||||
}
|
||||
|
||||
if(_clockRate != newRate || forceUpdate) {
|
||||
_clockRate = newRate;
|
||||
blip_set_rates(_blipBuf, _clockRate, _sampleRate);
|
||||
|
|
|
@ -17,6 +17,7 @@ namespace Mesen.GUI.Config
|
|||
public AudioInfo AudioInfo;
|
||||
public VideoInfo VideoInfo;
|
||||
public InputInfo InputInfo;
|
||||
public EmulationInfo EmulationInfo;
|
||||
public List<string> RecentFiles;
|
||||
public List<VsConfigInfo> VsConfig;
|
||||
public List<CheatInfo> Cheats;
|
||||
|
@ -35,6 +36,7 @@ namespace Mesen.GUI.Config
|
|||
AudioInfo = new AudioInfo();
|
||||
VideoInfo = new VideoInfo();
|
||||
PreferenceInfo = new PreferenceInfo();
|
||||
EmulationInfo = new EmulationInfo();
|
||||
RecentFiles = new List<string>();
|
||||
InputInfo = new InputInfo();
|
||||
Cheats = new List<CheatInfo>();
|
||||
|
@ -48,6 +50,7 @@ namespace Mesen.GUI.Config
|
|||
VideoInfo.ApplyConfig();
|
||||
AudioInfo.ApplyConfig();
|
||||
PreferenceInfo.ApplyConfig();
|
||||
EmulationInfo.ApplyConfig();
|
||||
|
||||
InteropEmu.SetNesModel(Region);
|
||||
}
|
||||
|
|
48
GUI.NET/Config/EmulationInfo.cs
Normal file
48
GUI.NET/Config/EmulationInfo.cs
Normal file
|
@ -0,0 +1,48 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Mesen.GUI.Forms;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Mesen.GUI.Config
|
||||
{
|
||||
public class EmulationInfo
|
||||
{
|
||||
public bool AllowInvalidInput = false;
|
||||
public bool RemoveSpriteLimit = false;
|
||||
|
||||
public bool UseAlternativeMmc3Irq = false;
|
||||
|
||||
public UInt32 OverclockRate = 100;
|
||||
public bool OverclockAdjustApu = true;
|
||||
|
||||
public UInt32 PpuExtraScanlinesBeforeNmi = 0;
|
||||
public UInt32 PpuExtraScanlinesAfterNmi = 0;
|
||||
|
||||
public UInt32 EmulationSpeed = 100;
|
||||
|
||||
public EmulationInfo()
|
||||
{
|
||||
}
|
||||
|
||||
static public void ApplyConfig()
|
||||
{
|
||||
EmulationInfo emulationInfo = ConfigManager.Config.EmulationInfo;
|
||||
|
||||
InteropEmu.SetEmulationSpeed(emulationInfo.EmulationSpeed);
|
||||
|
||||
InteropEmu.SetFlag(EmulationFlags.Mmc3IrqAltBehavior, emulationInfo.UseAlternativeMmc3Irq);
|
||||
InteropEmu.SetFlag(EmulationFlags.AllowInvalidInput, emulationInfo.AllowInvalidInput);
|
||||
InteropEmu.SetFlag(EmulationFlags.RemoveSpriteLimit, emulationInfo.RemoveSpriteLimit);
|
||||
|
||||
InteropEmu.SetOverclockRate(emulationInfo.OverclockRate, emulationInfo.OverclockAdjustApu);
|
||||
InteropEmu.SetPpuNmiConfig(emulationInfo.PpuExtraScanlinesBeforeNmi, emulationInfo.PpuExtraScanlinesAfterNmi);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -39,9 +39,6 @@ namespace Mesen.GUI.Config
|
|||
public bool CloudSaveIntegration = false;
|
||||
public DateTime CloudLastSync = DateTime.MinValue;
|
||||
|
||||
public UInt32 OverclockRate = 100;
|
||||
public bool OverclockAdjustApu = true;
|
||||
|
||||
public bool DisableGameDatabase = false;
|
||||
|
||||
public PreferenceInfo()
|
||||
|
@ -81,8 +78,6 @@ namespace Mesen.GUI.Config
|
|||
InteropEmu.SetFlag(EmulationFlags.AllowBackgroundInput, preferenceInfo.AllowBackgroundInput);
|
||||
InteropEmu.SetFlag(EmulationFlags.PauseWhenInBackground, preferenceInfo.PauseWhenInBackground);
|
||||
InteropEmu.SetFlag(EmulationFlags.DisableGameDatabase, preferenceInfo.DisableGameDatabase);
|
||||
|
||||
InteropEmu.SetOverclockRate(preferenceInfo.OverclockRate, preferenceInfo.OverclockAdjustApu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ namespace Mesen.GUI.Config
|
|||
{
|
||||
public class VideoInfo
|
||||
{
|
||||
public UInt32 EmulationSpeed = 100;
|
||||
public bool ShowFPS = false;
|
||||
public UInt32 OverscanLeft = 0;
|
||||
public UInt32 OverscanRight = 0;
|
||||
|
@ -49,8 +48,6 @@ namespace Mesen.GUI.Config
|
|||
{
|
||||
VideoInfo videoInfo = ConfigManager.Config.VideoInfo;
|
||||
|
||||
InteropEmu.SetEmulationSpeed(videoInfo.EmulationSpeed);
|
||||
|
||||
InteropEmu.SetFlag(EmulationFlags.ShowFPS, videoInfo.ShowFPS);
|
||||
InteropEmu.SetFlag(EmulationFlags.VerticalSync, videoInfo.VerticalSync);
|
||||
InteropEmu.SetFlag(EmulationFlags.UseHdPacks, videoInfo.UseHdPacks);
|
||||
|
|
Binary file not shown.
|
@ -48,6 +48,7 @@
|
|||
<Control ID="mnuRegionPal">PAL</Control>
|
||||
<Control ID="mnuRegionDendy">Dendy</Control>
|
||||
<Control ID="mnuVideoConfig">Vidéo</Control>
|
||||
<Control ID="mnuEmulationConfig">Émulation</Control>
|
||||
<Control ID="mnuPreferences">Préférences</Control>
|
||||
<Control ID="mnuTools">Outils</Control>
|
||||
<Control ID="mnuNetPlay">Jeu en ligne</Control>
|
||||
|
@ -162,8 +163,6 @@
|
|||
<Control ID="lblVideoFilter">Filtre :</Control>
|
||||
<Control ID="chkVerticalSync">Activer la synchronisation verticale</Control>
|
||||
<Control ID="lblDisplayRatio">Format d'image :</Control>
|
||||
<Control ID="lblEmuSpeedHint">(0 = Vitesse maximale)</Control>
|
||||
<Control ID="lblEmulationSpeed">Vitesse d'émulation :</Control>
|
||||
<Control ID="chkBilinearInterpolation">Utiliser l'interpolation bilinéaire</Control>
|
||||
<Control ID="chkShowFps">Afficher le FPS</Control>
|
||||
<Control ID="chkUseHdPacks">Utiliser les packs haute-définition de HDNes</Control>
|
||||
|
@ -203,6 +202,33 @@
|
|||
<Control ID="btnOK">OK</Control>
|
||||
<Control ID="btnCancel">Annuler</Control>
|
||||
</Form>
|
||||
<Form ID="frmEmulationConfig" Title="Paramètres de l'émulation">
|
||||
<Control ID="tpgGeneral">Général</Control>
|
||||
<Control ID="lblEmuSpeedHint">% (0 = Vitesse maximale)</Control>
|
||||
<Control ID="lblEmulationSpeed">Vitesse d'émulation :</Control>
|
||||
|
||||
<Control ID="tpgAdvanced">Avancé</Control>
|
||||
<Control ID="chkUseAlternativeMmc3Irq">Utiliser la version alternative du comportement des IRQs du MMC3</Control>
|
||||
<Control ID="chkAllowInvalidInput">Permettre les entrées invalides (Bas+Haut ou Gauche+Droite en même temps)</Control>
|
||||
<Control ID="chkRemoveSpriteLimit">Éliminer la limite de sprites (Réduit le clignotement dans certains jeux)</Control>
|
||||
|
||||
<Control ID="tpgOverclocking">Overclocking</Control>
|
||||
<Control ID="grpOverclocking">Overclocking du CPU</Control>
|
||||
<Control ID="lblOverclockWarning">ATTENTION: L'overclocking affecte la stabilité de l'émulation et peut faire planter certains jeux!</Control>
|
||||
<Control ID="lblClockRate">Multiplicateur de la fréquence d'horloge : </Control>
|
||||
<Control ID="lblClockRatePercent">% (Recommandé: 100%)</Control>
|
||||
|
||||
<Control ID="grpPpuTiming">Timing du PPU</Control>
|
||||
<Control ID="lblExtraScanlinesBeforeNmi">Nombre de lignes additionnelles avant le NMI : </Control>
|
||||
<Control ID="lblExtraScanlinesAfterNmi">Nombre de lignes additionnelles après le NMI : </Control>
|
||||
<Control ID="lblEffectiveClockRate">Fréquence d'horloge (NTSC) : </Control>
|
||||
<Control ID="lblEffectiveClockRatePal">Fréquence d'horloge (PAL) : </Control>
|
||||
|
||||
<Control ID="chkOverclockAdjustApu">Ne pas overclocker l'APU (Empêche le changement de tonalité causé par l'overclocking)</Control>
|
||||
|
||||
<Control ID="btnOK">OK</Control>
|
||||
<Control ID="btnCancel">Annuler</Control>
|
||||
</Form>
|
||||
<Form ID="frmPreferences" Title="Préférences">
|
||||
<Control ID="tpgGeneral">Général</Control>
|
||||
<Control ID="lblDisplayLanguage">Langue d'affichage :</Control>
|
||||
|
@ -221,9 +247,6 @@
|
|||
<Control ID="chkMmoFormat">.MMO (Films Mesen)</Control>
|
||||
<Control ID="chkMstFormat">.MST (Savestate Mesen)</Control>
|
||||
<Control ID="tpgAdvanced">Avancé</Control>
|
||||
<Control ID="chkUseAlternativeMmc3Irq">Utiliser la version alternative du comportement des IRQs du MMC3</Control>
|
||||
<Control ID="chkAllowInvalidInput">Permettre les entrées invalides (Bas+Haut ou Gauche+Droite en même temps)</Control>
|
||||
<Control ID="chkRemoveSpriteLimit">Éliminer la limite de sprites (Réduit le clignotement dans certains jeux)</Control>
|
||||
<Control ID="chkFdsAutoLoadDisk">Insérer le côté A du disque 1 lors du chargement d'un jeu de FDS</Control>
|
||||
<Control ID="chkFdsFastForwardOnLoad">Augmenter la vitesse d'émulation pendant le chargement des jeux FDS</Control>
|
||||
|
||||
|
@ -235,12 +258,6 @@
|
|||
<Control ID="lblLastSync">Dernière synchronisation : </Control>
|
||||
<Control ID="btnResync">Resynchroniser</Control>
|
||||
|
||||
<Control ID="grpOverclocking">Overclocking</Control>
|
||||
<Control ID="lblOverclockWarning">ATTENTION: L'overclocking affecte la stabilité de l'émulation et peut faire planter certains jeux!</Control>
|
||||
<Control ID="lblClockRate">Fréquence d'horloge : </Control>
|
||||
<Control ID="lblClockRatePercent">% (Recommandé: 100%)</Control>
|
||||
<Control ID="chkOverclockAdjustApu">Ne pas overclocker l'APU (Empêche le changement de tonalité causé par l'overclocking)</Control>
|
||||
|
||||
<Control ID="chkDisableGameDatabase">Désactiver la base de données des jeux</Control>
|
||||
|
||||
<Control ID="btnOK">OK</Control>
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
<Control ID="mnuRegionPal">PAL</Control>
|
||||
<Control ID="mnuRegionDendy">Dendy</Control>
|
||||
<Control ID="mnuVideoConfig">映像</Control>
|
||||
<Control ID="mnuEmulationConfig">エミュレーション</Control>
|
||||
<Control ID="mnuPreferences">設定</Control>
|
||||
<Control ID="mnuTools">ツール</Control>
|
||||
<Control ID="mnuNetPlay">ネットプレイ</Control>
|
||||
|
@ -163,8 +164,6 @@
|
|||
<Control ID="chkBilinearInterpolation">バイリニア補間を有効にする</Control>
|
||||
<Control ID="chkVerticalSync">垂直同期を有効にする</Control>
|
||||
<Control ID="lblDisplayRatio">画面アスペクト:</Control>
|
||||
<Control ID="lblEmuSpeedHint">(0 = 最高速度)</Control>
|
||||
<Control ID="lblEmulationSpeed">エミュレーションの速度:</Control>
|
||||
<Control ID="chkShowFps">フレームレート表示</Control>
|
||||
<Control ID="chkUseHdPacks">HDNesのHDパックを使う</Control>
|
||||
<Control ID="tpgOverscan">オーバースキャン</Control>
|
||||
|
@ -203,6 +202,32 @@
|
|||
<Control ID="btnOK">OK</Control>
|
||||
<Control ID="btnCancel">キャンセル</Control>
|
||||
</Form>
|
||||
<Form ID="frmEmulationConfig" Title="エミュレーション設定">
|
||||
<Control ID="tpgGeneral">全般</Control>
|
||||
<Control ID="lblEmuSpeedHint">% (0 = 最高速度)</Control>
|
||||
<Control ID="lblEmulationSpeed">エミュレーションの速度:</Control>
|
||||
|
||||
<Control ID="tpgAdvanced">詳細設定</Control>
|
||||
<Control ID="chkUseAlternativeMmc3Irq">MMC3AのIRQ仕様を使う</Control>
|
||||
<Control ID="chkAllowInvalidInput">コントローラでは不可能インプットを可能にする (同時に上と下や右と左)</Control>
|
||||
<Control ID="chkRemoveSpriteLimit">スプライトの制限を解除 (点滅を軽減する)</Control>
|
||||
|
||||
<Control ID="tpgOverclocking">オーバークロック</Control>
|
||||
<Control ID="grpOverclocking">オーバークロック</Control>
|
||||
<Control ID="lblOverclockWarning">警告: オーバークロックをすることでエミュレーションの精度は下がる。 ゲームがバグる可能性は高い。</Control>
|
||||
<Control ID="lblClockRate">クロックレートの倍率: </Control>
|
||||
<Control ID="lblClockRatePercent">% (デフォルト: 100%)</Control>
|
||||
<Control ID="chkOverclockAdjustApu">APUのオーバークロックを無効にする (オーバークロックによる音声のピッチ変化を中和)</Control>
|
||||
|
||||
<Control ID="grpPpuTiming">PPUタイミング</Control>
|
||||
<Control ID="lblExtraScanlinesBeforeNmi">NMIの前の追加走査線数: </Control>
|
||||
<Control ID="lblExtraScanlinesAfterNmi">NMIの後の追加走査線数: </Control>
|
||||
<Control ID="lblEffectiveClockRate">クロックレート (NTSC) : </Control>
|
||||
<Control ID="lblEffectiveClockRatePal">クロックレート (PAL) : </Control>
|
||||
|
||||
<Control ID="btnOK">OK</Control>
|
||||
<Control ID="btnCancel">キャンセル</Control>
|
||||
</Form>
|
||||
<Form ID="frmPreferences" Title="設定">
|
||||
<Control ID="tpgGeneral">全般</Control>
|
||||
<Control ID="lblDisplayLanguage">言語:</Control>
|
||||
|
@ -221,9 +246,6 @@
|
|||
<Control ID="chkMmoFormat">.MMO (Mesenの動画)</Control>
|
||||
<Control ID="chkMstFormat">.MST (Mesenのクイックセーブ)</Control>
|
||||
<Control ID="tpgAdvanced">詳細設定</Control>
|
||||
<Control ID="chkUseAlternativeMmc3Irq">MMC3AのIRQ仕様を使う</Control>
|
||||
<Control ID="chkAllowInvalidInput">コントローラでは不可能インプットを可能にする (同時に上と下や右と左)</Control>
|
||||
<Control ID="chkRemoveSpriteLimit">スプライトの制限を解除 (点滅を軽減する)</Control>
|
||||
<Control ID="chkFdsAutoLoadDisk">ファミコンディスクシステムのゲームをロードする時に自動的にディスク1のA面を入れる</Control>
|
||||
<Control ID="chkFdsFastForwardOnLoad">ファミコンディスクシステムのゲームをディスクからロードする時に自動的に最高速度にする</Control>
|
||||
|
||||
|
@ -235,12 +257,6 @@
|
|||
<Control ID="btnResync">同期</Control>
|
||||
<Control ID="lblLastSync">最終同期: </Control>
|
||||
|
||||
<Control ID="grpOverclocking">オーバークロック</Control>
|
||||
<Control ID="lblOverclockWarning">警告: オーバークロックをすることでエミュレーションの精度は下がる。 ゲームがバグる可能性は高い。</Control>
|
||||
<Control ID="lblClockRate">クロックレート: </Control>
|
||||
<Control ID="lblClockRatePercent">% (デフォルト: 100%)</Control>
|
||||
<Control ID="chkOverclockAdjustApu">APUのオーバークロックを無効にする (オーバークロックによる音声のピッチ変化を中和)</Control>
|
||||
|
||||
<Control ID="chkDisableGameDatabase">ゲームデータベースを無効にする</Control>
|
||||
|
||||
<Control ID="btnOK">OK</Control>
|
||||
|
|
612
GUI.NET/Forms/Config/frmEmulationConfig.Designer.cs
generated
Normal file
612
GUI.NET/Forms/Config/frmEmulationConfig.Designer.cs
generated
Normal file
|
@ -0,0 +1,612 @@
|
|||
namespace Mesen.GUI.Forms.Config
|
||||
{
|
||||
partial class frmEmulationConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if(disposing && (components != null)) {
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.tabMain = new System.Windows.Forms.TabControl();
|
||||
this.tpgGeneral = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.flowLayoutPanel6 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.nudEmulationSpeed = new System.Windows.Forms.NumericUpDown();
|
||||
this.lblEmuSpeedHint = new System.Windows.Forms.Label();
|
||||
this.lblEmulationSpeed = new System.Windows.Forms.Label();
|
||||
this.tpgAdvanced = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.chkUseAlternativeMmc3Irq = new System.Windows.Forms.CheckBox();
|
||||
this.chkAllowInvalidInput = new System.Windows.Forms.CheckBox();
|
||||
this.chkRemoveSpriteLimit = new System.Windows.Forms.CheckBox();
|
||||
this.tpgOverclocking = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.lblOverclockWarning = new System.Windows.Forms.Label();
|
||||
this.chkOverclockAdjustApu = new System.Windows.Forms.CheckBox();
|
||||
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.lblEffectiveClockRatePal = new System.Windows.Forms.Label();
|
||||
this.lblEffectiveClockRateValuePal = new System.Windows.Forms.Label();
|
||||
this.grpOverclocking = new System.Windows.Forms.GroupBox();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.lblClockRate = new System.Windows.Forms.Label();
|
||||
this.nudOverclockRate = new System.Windows.Forms.NumericUpDown();
|
||||
this.lblClockRatePercent = new System.Windows.Forms.Label();
|
||||
this.grpPpuTiming = new System.Windows.Forms.GroupBox();
|
||||
this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.nudExtraScanlinesAfterNmi = new System.Windows.Forms.NumericUpDown();
|
||||
this.nudExtraScanlinesBeforeNmi = new System.Windows.Forms.NumericUpDown();
|
||||
this.lblExtraScanlinesBeforeNmi = new System.Windows.Forms.Label();
|
||||
this.lblExtraScanlinesAfterNmi = new System.Windows.Forms.Label();
|
||||
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.lblEffectiveClockRate = new System.Windows.Forms.Label();
|
||||
this.lblEffectiveClockRateValue = new System.Windows.Forms.Label();
|
||||
this.tmrUpdateClockRate = new System.Windows.Forms.Timer(this.components);
|
||||
this.tabMain.SuspendLayout();
|
||||
this.tpgGeneral.SuspendLayout();
|
||||
this.tableLayoutPanel4.SuspendLayout();
|
||||
this.flowLayoutPanel6.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudEmulationSpeed)).BeginInit();
|
||||
this.tpgAdvanced.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.tpgOverclocking.SuspendLayout();
|
||||
this.tableLayoutPanel3.SuspendLayout();
|
||||
this.flowLayoutPanel3.SuspendLayout();
|
||||
this.grpOverclocking.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.flowLayoutPanel5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudOverclockRate)).BeginInit();
|
||||
this.grpPpuTiming.SuspendLayout();
|
||||
this.tableLayoutPanel5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudExtraScanlinesAfterNmi)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudExtraScanlinesBeforeNmi)).BeginInit();
|
||||
this.flowLayoutPanel2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// baseConfigPanel
|
||||
//
|
||||
this.baseConfigPanel.Location = new System.Drawing.Point(0, 264);
|
||||
this.baseConfigPanel.Size = new System.Drawing.Size(487, 29);
|
||||
//
|
||||
// tabMain
|
||||
//
|
||||
this.tabMain.Controls.Add(this.tpgGeneral);
|
||||
this.tabMain.Controls.Add(this.tpgAdvanced);
|
||||
this.tabMain.Controls.Add(this.tpgOverclocking);
|
||||
this.tabMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabMain.Location = new System.Drawing.Point(0, 0);
|
||||
this.tabMain.Name = "tabMain";
|
||||
this.tabMain.SelectedIndex = 0;
|
||||
this.tabMain.Size = new System.Drawing.Size(487, 264);
|
||||
this.tabMain.TabIndex = 2;
|
||||
//
|
||||
// tpgGeneral
|
||||
//
|
||||
this.tpgGeneral.Controls.Add(this.tableLayoutPanel4);
|
||||
this.tpgGeneral.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpgGeneral.Name = "tpgGeneral";
|
||||
this.tpgGeneral.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpgGeneral.Size = new System.Drawing.Size(479, 238);
|
||||
this.tpgGeneral.TabIndex = 0;
|
||||
this.tpgGeneral.Text = "General";
|
||||
this.tpgGeneral.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tableLayoutPanel4
|
||||
//
|
||||
this.tableLayoutPanel4.ColumnCount = 2;
|
||||
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel4.Controls.Add(this.flowLayoutPanel6, 1, 0);
|
||||
this.tableLayoutPanel4.Controls.Add(this.lblEmulationSpeed, 0, 0);
|
||||
this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
|
||||
this.tableLayoutPanel4.RowCount = 2;
|
||||
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.Size = new System.Drawing.Size(473, 232);
|
||||
this.tableLayoutPanel4.TabIndex = 0;
|
||||
//
|
||||
// flowLayoutPanel6
|
||||
//
|
||||
this.flowLayoutPanel6.AutoSize = true;
|
||||
this.flowLayoutPanel6.Controls.Add(this.nudEmulationSpeed);
|
||||
this.flowLayoutPanel6.Controls.Add(this.lblEmuSpeedHint);
|
||||
this.flowLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel6.Location = new System.Drawing.Point(96, 0);
|
||||
this.flowLayoutPanel6.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.flowLayoutPanel6.Name = "flowLayoutPanel6";
|
||||
this.flowLayoutPanel6.Size = new System.Drawing.Size(377, 26);
|
||||
this.flowLayoutPanel6.TabIndex = 11;
|
||||
//
|
||||
// nudEmulationSpeed
|
||||
//
|
||||
this.nudEmulationSpeed.Location = new System.Drawing.Point(3, 3);
|
||||
this.nudEmulationSpeed.Maximum = new decimal(new int[] {
|
||||
500,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudEmulationSpeed.Name = "nudEmulationSpeed";
|
||||
this.nudEmulationSpeed.Size = new System.Drawing.Size(48, 20);
|
||||
this.nudEmulationSpeed.TabIndex = 1;
|
||||
//
|
||||
// lblEmuSpeedHint
|
||||
//
|
||||
this.lblEmuSpeedHint.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblEmuSpeedHint.AutoSize = true;
|
||||
this.lblEmuSpeedHint.Location = new System.Drawing.Point(57, 6);
|
||||
this.lblEmuSpeedHint.Name = "lblEmuSpeedHint";
|
||||
this.lblEmuSpeedHint.Size = new System.Drawing.Size(121, 13);
|
||||
this.lblEmuSpeedHint.TabIndex = 2;
|
||||
this.lblEmuSpeedHint.Text = "% (0 = Maximum speed)";
|
||||
//
|
||||
// lblEmulationSpeed
|
||||
//
|
||||
this.lblEmulationSpeed.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblEmulationSpeed.AutoSize = true;
|
||||
this.lblEmulationSpeed.Location = new System.Drawing.Point(3, 6);
|
||||
this.lblEmulationSpeed.Name = "lblEmulationSpeed";
|
||||
this.lblEmulationSpeed.Size = new System.Drawing.Size(90, 13);
|
||||
this.lblEmulationSpeed.TabIndex = 12;
|
||||
this.lblEmulationSpeed.Text = "Emulation Speed:";
|
||||
//
|
||||
// tpgAdvanced
|
||||
//
|
||||
this.tpgAdvanced.Controls.Add(this.tableLayoutPanel1);
|
||||
this.tpgAdvanced.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpgAdvanced.Name = "tpgAdvanced";
|
||||
this.tpgAdvanced.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpgAdvanced.Size = new System.Drawing.Size(479, 238);
|
||||
this.tpgAdvanced.TabIndex = 1;
|
||||
this.tpgAdvanced.Text = "Advanced";
|
||||
this.tpgAdvanced.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkUseAlternativeMmc3Irq, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkAllowInvalidInput, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkRemoveSpriteLimit, 0, 2);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
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.Absolute, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(473, 232);
|
||||
this.tableLayoutPanel1.TabIndex = 0;
|
||||
//
|
||||
// chkUseAlternativeMmc3Irq
|
||||
//
|
||||
this.chkUseAlternativeMmc3Irq.AutoSize = true;
|
||||
this.chkUseAlternativeMmc3Irq.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkUseAlternativeMmc3Irq.Name = "chkUseAlternativeMmc3Irq";
|
||||
this.chkUseAlternativeMmc3Irq.Size = new System.Drawing.Size(197, 17);
|
||||
this.chkUseAlternativeMmc3Irq.TabIndex = 0;
|
||||
this.chkUseAlternativeMmc3Irq.Text = "Use alternative MMC3 IRQ behavior";
|
||||
this.chkUseAlternativeMmc3Irq.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkAllowInvalidInput
|
||||
//
|
||||
this.chkAllowInvalidInput.AutoSize = true;
|
||||
this.chkAllowInvalidInput.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkAllowInvalidInput.Name = "chkAllowInvalidInput";
|
||||
this.chkAllowInvalidInput.Size = new System.Drawing.Size(341, 17);
|
||||
this.chkAllowInvalidInput.TabIndex = 1;
|
||||
this.chkAllowInvalidInput.Text = "Allow invalid input (e.g Down + Up or Left + Right at the same time)";
|
||||
this.chkAllowInvalidInput.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkRemoveSpriteLimit
|
||||
//
|
||||
this.chkRemoveSpriteLimit.AutoSize = true;
|
||||
this.chkRemoveSpriteLimit.Location = new System.Drawing.Point(3, 49);
|
||||
this.chkRemoveSpriteLimit.Name = "chkRemoveSpriteLimit";
|
||||
this.chkRemoveSpriteLimit.Size = new System.Drawing.Size(205, 17);
|
||||
this.chkRemoveSpriteLimit.TabIndex = 2;
|
||||
this.chkRemoveSpriteLimit.Text = "Remove sprite limit (Reduces flashing)";
|
||||
this.chkRemoveSpriteLimit.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tpgOverclocking
|
||||
//
|
||||
this.tpgOverclocking.Controls.Add(this.tableLayoutPanel3);
|
||||
this.tpgOverclocking.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpgOverclocking.Name = "tpgOverclocking";
|
||||
this.tpgOverclocking.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpgOverclocking.Size = new System.Drawing.Size(479, 238);
|
||||
this.tpgOverclocking.TabIndex = 2;
|
||||
this.tpgOverclocking.Text = "Overclocking";
|
||||
this.tpgOverclocking.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tableLayoutPanel3
|
||||
//
|
||||
this.tableLayoutPanel3.ColumnCount = 1;
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel3.Controls.Add(this.lblOverclockWarning, 0, 0);
|
||||
this.tableLayoutPanel3.Controls.Add(this.chkOverclockAdjustApu, 0, 5);
|
||||
this.tableLayoutPanel3.Controls.Add(this.flowLayoutPanel3, 0, 4);
|
||||
this.tableLayoutPanel3.Controls.Add(this.grpOverclocking, 0, 1);
|
||||
this.tableLayoutPanel3.Controls.Add(this.grpPpuTiming, 0, 2);
|
||||
this.tableLayoutPanel3.Controls.Add(this.flowLayoutPanel2, 0, 3);
|
||||
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
||||
this.tableLayoutPanel3.RowCount = 7;
|
||||
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());
|
||||
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.Size = new System.Drawing.Size(473, 232);
|
||||
this.tableLayoutPanel3.TabIndex = 0;
|
||||
//
|
||||
// lblOverclockWarning
|
||||
//
|
||||
this.lblOverclockWarning.AutoSize = true;
|
||||
this.lblOverclockWarning.ForeColor = System.Drawing.Color.Red;
|
||||
this.lblOverclockWarning.Location = new System.Drawing.Point(3, 5);
|
||||
this.lblOverclockWarning.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
|
||||
this.lblOverclockWarning.Name = "lblOverclockWarning";
|
||||
this.lblOverclockWarning.Size = new System.Drawing.Size(384, 13);
|
||||
this.lblOverclockWarning.TabIndex = 2;
|
||||
this.lblOverclockWarning.Text = "WARNING: Overclocking will cause stability issues and may crash some games!";
|
||||
//
|
||||
// chkOverclockAdjustApu
|
||||
//
|
||||
this.chkOverclockAdjustApu.AutoSize = true;
|
||||
this.chkOverclockAdjustApu.Location = new System.Drawing.Point(3, 204);
|
||||
this.chkOverclockAdjustApu.Name = "chkOverclockAdjustApu";
|
||||
this.chkOverclockAdjustApu.Size = new System.Drawing.Size(401, 17);
|
||||
this.chkOverclockAdjustApu.TabIndex = 10;
|
||||
this.chkOverclockAdjustApu.Text = "Do not overclock APU (prevents sound pitch changes caused by overclocking)";
|
||||
this.chkOverclockAdjustApu.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// flowLayoutPanel3
|
||||
//
|
||||
this.flowLayoutPanel3.Controls.Add(this.lblEffectiveClockRatePal);
|
||||
this.flowLayoutPanel3.Controls.Add(this.lblEffectiveClockRateValuePal);
|
||||
this.flowLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel3.Location = new System.Drawing.Point(3, 181);
|
||||
this.flowLayoutPanel3.Name = "flowLayoutPanel3";
|
||||
this.flowLayoutPanel3.Size = new System.Drawing.Size(467, 17);
|
||||
this.flowLayoutPanel3.TabIndex = 9;
|
||||
//
|
||||
// lblEffectiveClockRatePal
|
||||
//
|
||||
this.lblEffectiveClockRatePal.AutoSize = true;
|
||||
this.lblEffectiveClockRatePal.Location = new System.Drawing.Point(3, 0);
|
||||
this.lblEffectiveClockRatePal.Name = "lblEffectiveClockRatePal";
|
||||
this.lblEffectiveClockRatePal.Size = new System.Drawing.Size(137, 13);
|
||||
this.lblEffectiveClockRatePal.TabIndex = 0;
|
||||
this.lblEffectiveClockRatePal.Text = "Effective Clock Rate (PAL):";
|
||||
//
|
||||
// lblEffectiveClockRateValuePal
|
||||
//
|
||||
this.lblEffectiveClockRateValuePal.AutoSize = true;
|
||||
this.lblEffectiveClockRateValuePal.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblEffectiveClockRateValuePal.Location = new System.Drawing.Point(146, 0);
|
||||
this.lblEffectiveClockRateValuePal.Name = "lblEffectiveClockRateValuePal";
|
||||
this.lblEffectiveClockRateValuePal.Size = new System.Drawing.Size(37, 13);
|
||||
this.lblEffectiveClockRateValuePal.TabIndex = 1;
|
||||
this.lblEffectiveClockRateValuePal.Text = "100%";
|
||||
//
|
||||
// grpOverclocking
|
||||
//
|
||||
this.grpOverclocking.Controls.Add(this.tableLayoutPanel2);
|
||||
this.grpOverclocking.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.grpOverclocking.Location = new System.Drawing.Point(3, 26);
|
||||
this.grpOverclocking.Name = "grpOverclocking";
|
||||
this.grpOverclocking.Size = new System.Drawing.Size(467, 45);
|
||||
this.grpOverclocking.TabIndex = 6;
|
||||
this.grpOverclocking.TabStop = false;
|
||||
this.grpOverclocking.Text = "Overclocking";
|
||||
//
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
this.tableLayoutPanel2.ColumnCount = 1;
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.Controls.Add(this.flowLayoutPanel5, 0, 0);
|
||||
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 16);
|
||||
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
this.tableLayoutPanel2.RowCount = 2;
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(461, 26);
|
||||
this.tableLayoutPanel2.TabIndex = 0;
|
||||
//
|
||||
// flowLayoutPanel5
|
||||
//
|
||||
this.flowLayoutPanel5.Controls.Add(this.lblClockRate);
|
||||
this.flowLayoutPanel5.Controls.Add(this.nudOverclockRate);
|
||||
this.flowLayoutPanel5.Controls.Add(this.lblClockRatePercent);
|
||||
this.flowLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel5.Location = new System.Drawing.Point(0, 0);
|
||||
this.flowLayoutPanel5.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.flowLayoutPanel5.Name = "flowLayoutPanel5";
|
||||
this.flowLayoutPanel5.Size = new System.Drawing.Size(461, 25);
|
||||
this.flowLayoutPanel5.TabIndex = 1;
|
||||
//
|
||||
// lblClockRate
|
||||
//
|
||||
this.lblClockRate.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblClockRate.AutoSize = true;
|
||||
this.lblClockRate.Location = new System.Drawing.Point(3, 6);
|
||||
this.lblClockRate.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
||||
this.lblClockRate.Name = "lblClockRate";
|
||||
this.lblClockRate.Size = new System.Drawing.Size(107, 13);
|
||||
this.lblClockRate.TabIndex = 1;
|
||||
this.lblClockRate.Text = "Clock Rate Multiplier:";
|
||||
//
|
||||
// nudOverclockRate
|
||||
//
|
||||
this.nudOverclockRate.Location = new System.Drawing.Point(110, 3);
|
||||
this.nudOverclockRate.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.nudOverclockRate.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudOverclockRate.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudOverclockRate.Name = "nudOverclockRate";
|
||||
this.nudOverclockRate.Size = new System.Drawing.Size(46, 20);
|
||||
this.nudOverclockRate.TabIndex = 1;
|
||||
this.nudOverclockRate.Value = new decimal(new int[] {
|
||||
100,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudOverclockRate.Validated += new System.EventHandler(this.OverclockConfig_Validated);
|
||||
//
|
||||
// lblClockRatePercent
|
||||
//
|
||||
this.lblClockRatePercent.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblClockRatePercent.AutoSize = true;
|
||||
this.lblClockRatePercent.Location = new System.Drawing.Point(156, 6);
|
||||
this.lblClockRatePercent.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
|
||||
this.lblClockRatePercent.Name = "lblClockRatePercent";
|
||||
this.lblClockRatePercent.Size = new System.Drawing.Size(90, 13);
|
||||
this.lblClockRatePercent.TabIndex = 1;
|
||||
this.lblClockRatePercent.Text = "% (Default: 100%)";
|
||||
//
|
||||
// grpPpuTiming
|
||||
//
|
||||
this.grpPpuTiming.Controls.Add(this.tableLayoutPanel5);
|
||||
this.grpPpuTiming.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.grpPpuTiming.Location = new System.Drawing.Point(3, 77);
|
||||
this.grpPpuTiming.Name = "grpPpuTiming";
|
||||
this.grpPpuTiming.Size = new System.Drawing.Size(467, 75);
|
||||
this.grpPpuTiming.TabIndex = 7;
|
||||
this.grpPpuTiming.TabStop = false;
|
||||
this.grpPpuTiming.Text = "PPU Vertical Blank Configuration";
|
||||
//
|
||||
// tableLayoutPanel5
|
||||
//
|
||||
this.tableLayoutPanel5.ColumnCount = 2;
|
||||
this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel5.Controls.Add(this.nudExtraScanlinesAfterNmi, 1, 1);
|
||||
this.tableLayoutPanel5.Controls.Add(this.nudExtraScanlinesBeforeNmi, 1, 0);
|
||||
this.tableLayoutPanel5.Controls.Add(this.lblExtraScanlinesBeforeNmi, 0, 0);
|
||||
this.tableLayoutPanel5.Controls.Add(this.lblExtraScanlinesAfterNmi, 0, 1);
|
||||
this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel5.Location = new System.Drawing.Point(3, 16);
|
||||
this.tableLayoutPanel5.Name = "tableLayoutPanel5";
|
||||
this.tableLayoutPanel5.RowCount = 3;
|
||||
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel5.Size = new System.Drawing.Size(461, 56);
|
||||
this.tableLayoutPanel5.TabIndex = 0;
|
||||
//
|
||||
// nudExtraScanlinesAfterNmi
|
||||
//
|
||||
this.nudExtraScanlinesAfterNmi.Location = new System.Drawing.Point(171, 29);
|
||||
this.nudExtraScanlinesAfterNmi.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.nudExtraScanlinesAfterNmi.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudExtraScanlinesAfterNmi.Name = "nudExtraScanlinesAfterNmi";
|
||||
this.nudExtraScanlinesAfterNmi.Size = new System.Drawing.Size(46, 20);
|
||||
this.nudExtraScanlinesAfterNmi.TabIndex = 3;
|
||||
this.nudExtraScanlinesAfterNmi.Value = new decimal(new int[] {
|
||||
100,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudExtraScanlinesAfterNmi.Validated += new System.EventHandler(this.OverclockConfig_Validated);
|
||||
//
|
||||
// nudExtraScanlinesBeforeNmi
|
||||
//
|
||||
this.nudExtraScanlinesBeforeNmi.Location = new System.Drawing.Point(171, 3);
|
||||
this.nudExtraScanlinesBeforeNmi.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.nudExtraScanlinesBeforeNmi.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudExtraScanlinesBeforeNmi.Name = "nudExtraScanlinesBeforeNmi";
|
||||
this.nudExtraScanlinesBeforeNmi.Size = new System.Drawing.Size(46, 20);
|
||||
this.nudExtraScanlinesBeforeNmi.TabIndex = 2;
|
||||
this.nudExtraScanlinesBeforeNmi.Value = new decimal(new int[] {
|
||||
100,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudExtraScanlinesBeforeNmi.Validated += new System.EventHandler(this.OverclockConfig_Validated);
|
||||
//
|
||||
// lblExtraScanlinesBeforeNmi
|
||||
//
|
||||
this.lblExtraScanlinesBeforeNmi.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblExtraScanlinesBeforeNmi.AutoSize = true;
|
||||
this.lblExtraScanlinesBeforeNmi.Location = new System.Drawing.Point(3, 6);
|
||||
this.lblExtraScanlinesBeforeNmi.Name = "lblExtraScanlinesBeforeNmi";
|
||||
this.lblExtraScanlinesBeforeNmi.Size = new System.Drawing.Size(165, 13);
|
||||
this.lblExtraScanlinesBeforeNmi.TabIndex = 0;
|
||||
this.lblExtraScanlinesBeforeNmi.Text = "Additionnal scanlines before NMI:";
|
||||
//
|
||||
// lblExtraScanlinesAfterNmi
|
||||
//
|
||||
this.lblExtraScanlinesAfterNmi.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblExtraScanlinesAfterNmi.AutoSize = true;
|
||||
this.lblExtraScanlinesAfterNmi.Location = new System.Drawing.Point(3, 32);
|
||||
this.lblExtraScanlinesAfterNmi.Name = "lblExtraScanlinesAfterNmi";
|
||||
this.lblExtraScanlinesAfterNmi.Size = new System.Drawing.Size(156, 13);
|
||||
this.lblExtraScanlinesAfterNmi.TabIndex = 1;
|
||||
this.lblExtraScanlinesAfterNmi.Text = "Additionnal scanlines after NMI:";
|
||||
//
|
||||
// flowLayoutPanel2
|
||||
//
|
||||
this.flowLayoutPanel2.Controls.Add(this.lblEffectiveClockRate);
|
||||
this.flowLayoutPanel2.Controls.Add(this.lblEffectiveClockRateValue);
|
||||
this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 158);
|
||||
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
|
||||
this.flowLayoutPanel2.Size = new System.Drawing.Size(467, 17);
|
||||
this.flowLayoutPanel2.TabIndex = 8;
|
||||
//
|
||||
// lblEffectiveClockRate
|
||||
//
|
||||
this.lblEffectiveClockRate.AutoSize = true;
|
||||
this.lblEffectiveClockRate.Location = new System.Drawing.Point(3, 0);
|
||||
this.lblEffectiveClockRate.Name = "lblEffectiveClockRate";
|
||||
this.lblEffectiveClockRate.Size = new System.Drawing.Size(146, 13);
|
||||
this.lblEffectiveClockRate.TabIndex = 0;
|
||||
this.lblEffectiveClockRate.Text = "Effective Clock Rate (NTSC):";
|
||||
//
|
||||
// lblEffectiveClockRateValue
|
||||
//
|
||||
this.lblEffectiveClockRateValue.AutoSize = true;
|
||||
this.lblEffectiveClockRateValue.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblEffectiveClockRateValue.Location = new System.Drawing.Point(155, 0);
|
||||
this.lblEffectiveClockRateValue.Name = "lblEffectiveClockRateValue";
|
||||
this.lblEffectiveClockRateValue.Size = new System.Drawing.Size(37, 13);
|
||||
this.lblEffectiveClockRateValue.TabIndex = 1;
|
||||
this.lblEffectiveClockRateValue.Text = "100%";
|
||||
//
|
||||
// tmrUpdateClockRate
|
||||
//
|
||||
this.tmrUpdateClockRate.Enabled = true;
|
||||
this.tmrUpdateClockRate.Tick += new System.EventHandler(this.tmrUpdateClockRate_Tick);
|
||||
//
|
||||
// frmEmulationConfig
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(487, 293);
|
||||
this.Controls.Add(this.tabMain);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.MinimumSize = new System.Drawing.Size(503, 322);
|
||||
this.Name = "frmEmulationConfig";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Emulation Settings";
|
||||
this.Controls.SetChildIndex(this.baseConfigPanel, 0);
|
||||
this.Controls.SetChildIndex(this.tabMain, 0);
|
||||
this.tabMain.ResumeLayout(false);
|
||||
this.tpgGeneral.ResumeLayout(false);
|
||||
this.tableLayoutPanel4.ResumeLayout(false);
|
||||
this.tableLayoutPanel4.PerformLayout();
|
||||
this.flowLayoutPanel6.ResumeLayout(false);
|
||||
this.flowLayoutPanel6.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudEmulationSpeed)).EndInit();
|
||||
this.tpgAdvanced.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.tpgOverclocking.ResumeLayout(false);
|
||||
this.tableLayoutPanel3.ResumeLayout(false);
|
||||
this.tableLayoutPanel3.PerformLayout();
|
||||
this.flowLayoutPanel3.ResumeLayout(false);
|
||||
this.flowLayoutPanel3.PerformLayout();
|
||||
this.grpOverclocking.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.flowLayoutPanel5.ResumeLayout(false);
|
||||
this.flowLayoutPanel5.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudOverclockRate)).EndInit();
|
||||
this.grpPpuTiming.ResumeLayout(false);
|
||||
this.tableLayoutPanel5.ResumeLayout(false);
|
||||
this.tableLayoutPanel5.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudExtraScanlinesAfterNmi)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudExtraScanlinesBeforeNmi)).EndInit();
|
||||
this.flowLayoutPanel2.ResumeLayout(false);
|
||||
this.flowLayoutPanel2.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.TabControl tabMain;
|
||||
private System.Windows.Forms.TabPage tpgGeneral;
|
||||
private System.Windows.Forms.TabPage tpgAdvanced;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.CheckBox chkUseAlternativeMmc3Irq;
|
||||
private System.Windows.Forms.CheckBox chkAllowInvalidInput;
|
||||
private System.Windows.Forms.CheckBox chkRemoveSpriteLimit;
|
||||
private System.Windows.Forms.TabPage tpgOverclocking;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
||||
private System.Windows.Forms.GroupBox grpOverclocking;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||
private System.Windows.Forms.Label lblOverclockWarning;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5;
|
||||
private System.Windows.Forms.Label lblClockRate;
|
||||
private System.Windows.Forms.NumericUpDown nudOverclockRate;
|
||||
private System.Windows.Forms.Label lblClockRatePercent;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel6;
|
||||
private System.Windows.Forms.NumericUpDown nudEmulationSpeed;
|
||||
private System.Windows.Forms.Label lblEmuSpeedHint;
|
||||
private System.Windows.Forms.Label lblEmulationSpeed;
|
||||
private System.Windows.Forms.GroupBox grpPpuTiming;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5;
|
||||
private System.Windows.Forms.NumericUpDown nudExtraScanlinesAfterNmi;
|
||||
private System.Windows.Forms.NumericUpDown nudExtraScanlinesBeforeNmi;
|
||||
private System.Windows.Forms.Label lblExtraScanlinesBeforeNmi;
|
||||
private System.Windows.Forms.Label lblExtraScanlinesAfterNmi;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
|
||||
private System.Windows.Forms.Label lblEffectiveClockRate;
|
||||
private System.Windows.Forms.Label lblEffectiveClockRateValue;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
|
||||
private System.Windows.Forms.Label lblEffectiveClockRatePal;
|
||||
private System.Windows.Forms.Label lblEffectiveClockRateValuePal;
|
||||
private System.Windows.Forms.Timer tmrUpdateClockRate;
|
||||
private System.Windows.Forms.CheckBox chkOverclockAdjustApu;
|
||||
}
|
||||
}
|
63
GUI.NET/Forms/Config/frmEmulationConfig.cs
Normal file
63
GUI.NET/Forms/Config/frmEmulationConfig.cs
Normal file
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Mesen.GUI.Config;
|
||||
using Mesen.GUI.GoogleDriveIntegration;
|
||||
|
||||
namespace Mesen.GUI.Forms.Config
|
||||
{
|
||||
public partial class frmEmulationConfig : BaseConfigForm
|
||||
{
|
||||
public frmEmulationConfig()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Entity = ConfigManager.Config.EmulationInfo;
|
||||
|
||||
AddBinding("EmulationSpeed", nudEmulationSpeed);
|
||||
|
||||
AddBinding("UseAlternativeMmc3Irq", chkUseAlternativeMmc3Irq);
|
||||
AddBinding("AllowInvalidInput", chkAllowInvalidInput);
|
||||
AddBinding("RemoveSpriteLimit", chkRemoveSpriteLimit);
|
||||
|
||||
AddBinding("OverclockRate", nudOverclockRate);
|
||||
AddBinding("OverclockAdjustApu", chkOverclockAdjustApu);
|
||||
|
||||
AddBinding("PpuExtraScanlinesBeforeNmi", nudExtraScanlinesBeforeNmi);
|
||||
AddBinding("PpuExtraScanlinesAfterNmi", nudExtraScanlinesAfterNmi);
|
||||
}
|
||||
|
||||
protected override void OnFormClosed(FormClosedEventArgs e)
|
||||
{
|
||||
base.OnFormClosed(e);
|
||||
EmulationInfo.ApplyConfig();
|
||||
}
|
||||
|
||||
private void tmrUpdateClockRate_Tick(object sender, EventArgs e)
|
||||
{
|
||||
decimal clockRateMultiplierNtsc = (nudOverclockRate.Value * (1 + (nudExtraScanlinesAfterNmi.Value + nudExtraScanlinesBeforeNmi.Value) / 262));
|
||||
decimal clockRateMultiplierPal = (nudOverclockRate.Value * (1 + (nudExtraScanlinesAfterNmi.Value + nudExtraScanlinesBeforeNmi.Value) / 312));
|
||||
lblEffectiveClockRateValue.Text = (1789773 * clockRateMultiplierNtsc / 100000000).ToString("#.####") + " mhz (" + ((int)clockRateMultiplierNtsc).ToString() + "%)";
|
||||
lblEffectiveClockRateValuePal.Text = (1662607 * clockRateMultiplierPal / 100000000).ToString("#.####") + " mhz (" + ((int)clockRateMultiplierPal).ToString() + "%)";
|
||||
}
|
||||
|
||||
private void OverclockConfig_Validated(object sender, EventArgs e)
|
||||
{
|
||||
if(string.IsNullOrWhiteSpace(nudExtraScanlinesAfterNmi.Text)) {
|
||||
nudExtraScanlinesAfterNmi.Value = 0;
|
||||
}
|
||||
if(string.IsNullOrWhiteSpace(nudExtraScanlinesBeforeNmi.Text)) {
|
||||
nudExtraScanlinesBeforeNmi.Value = 0;
|
||||
}
|
||||
if(string.IsNullOrWhiteSpace(nudOverclockRate.Text)) {
|
||||
nudOverclockRate.Value = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
126
GUI.NET/Forms/Config/frmEmulationConfig.resx
Normal file
126
GUI.NET/Forms/Config/frmEmulationConfig.resx
Normal file
|
@ -0,0 +1,126 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tmrUpdateClockRate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>107, 17</value>
|
||||
</metadata>
|
||||
</root>
|
251
GUI.NET/Forms/Config/frmPreferences.Designer.cs
generated
251
GUI.NET/Forms/Config/frmPreferences.Designer.cs
generated
|
@ -67,21 +67,10 @@
|
|||
this.chkMstFormat = new System.Windows.Forms.CheckBox();
|
||||
this.tpgAdvanced = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.chkUseAlternativeMmc3Irq = new System.Windows.Forms.CheckBox();
|
||||
this.chkAllowInvalidInput = new System.Windows.Forms.CheckBox();
|
||||
this.chkRemoveSpriteLimit = new System.Windows.Forms.CheckBox();
|
||||
this.chkDisableGameDatabase = new System.Windows.Forms.CheckBox();
|
||||
this.chkFdsAutoLoadDisk = new System.Windows.Forms.CheckBox();
|
||||
this.chkFdsFastForwardOnLoad = new System.Windows.Forms.CheckBox();
|
||||
this.grpOverclocking = new System.Windows.Forms.GroupBox();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.lblOverclockWarning = new System.Windows.Forms.Label();
|
||||
this.chkOverclockAdjustApu = new System.Windows.Forms.CheckBox();
|
||||
this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.lblClockRate = new System.Windows.Forms.Label();
|
||||
this.nudOverclockRate = new System.Windows.Forms.NumericUpDown();
|
||||
this.lblClockRatePercent = new System.Windows.Forms.Label();
|
||||
this.tmrSyncDateTime = new System.Windows.Forms.Timer(this.components);
|
||||
this.chkDisableGameDatabase = new System.Windows.Forms.CheckBox();
|
||||
this.tlpMain.SuspendLayout();
|
||||
this.flowLayoutPanel2.SuspendLayout();
|
||||
this.tabMain.SuspendLayout();
|
||||
|
@ -98,10 +87,6 @@
|
|||
this.tlpFileFormat.SuspendLayout();
|
||||
this.tpgAdvanced.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.grpOverclocking.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.flowLayoutPanel5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudOverclockRate)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// baseConfigPanel
|
||||
|
@ -293,7 +278,7 @@
|
|||
this.tpgCloudSave.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpgCloudSave.Name = "tpgCloudSave";
|
||||
this.tpgCloudSave.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpgCloudSave.Size = new System.Drawing.Size(479, 229);
|
||||
this.tpgCloudSave.Size = new System.Drawing.Size(479, 256);
|
||||
this.tpgCloudSave.TabIndex = 3;
|
||||
this.tpgCloudSave.Text = "Cloud Saves";
|
||||
this.tpgCloudSave.UseVisualStyleBackColor = true;
|
||||
|
@ -310,7 +295,7 @@
|
|||
this.tlpCloudSaves.RowCount = 2;
|
||||
this.tlpCloudSaves.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpCloudSaves.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpCloudSaves.Size = new System.Drawing.Size(473, 223);
|
||||
this.tlpCloudSaves.Size = new System.Drawing.Size(473, 250);
|
||||
this.tlpCloudSaves.TabIndex = 0;
|
||||
//
|
||||
// tlpCloudSaveDesc
|
||||
|
@ -365,7 +350,7 @@
|
|||
this.tlpCloudSaveEnabled.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpCloudSaveEnabled.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tlpCloudSaveEnabled.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tlpCloudSaveEnabled.Size = new System.Drawing.Size(473, 123);
|
||||
this.tlpCloudSaveEnabled.Size = new System.Drawing.Size(473, 150);
|
||||
this.tlpCloudSaveEnabled.TabIndex = 1;
|
||||
//
|
||||
// btnDisableIntegration
|
||||
|
@ -461,7 +446,7 @@
|
|||
this.tpgFileAssociations.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpgFileAssociations.Name = "tpgFileAssociations";
|
||||
this.tpgFileAssociations.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpgFileAssociations.Size = new System.Drawing.Size(479, 229);
|
||||
this.tpgFileAssociations.Size = new System.Drawing.Size(479, 256);
|
||||
this.tpgFileAssociations.TabIndex = 2;
|
||||
this.tpgFileAssociations.Text = "File Associations";
|
||||
this.tpgFileAssociations.UseVisualStyleBackColor = true;
|
||||
|
@ -472,7 +457,7 @@
|
|||
this.grpFileAssociations.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.grpFileAssociations.Location = new System.Drawing.Point(3, 3);
|
||||
this.grpFileAssociations.Name = "grpFileAssociations";
|
||||
this.grpFileAssociations.Size = new System.Drawing.Size(473, 223);
|
||||
this.grpFileAssociations.Size = new System.Drawing.Size(473, 250);
|
||||
this.grpFileAssociations.TabIndex = 12;
|
||||
this.grpFileAssociations.TabStop = false;
|
||||
this.grpFileAssociations.Text = "File Associations";
|
||||
|
@ -494,7 +479,7 @@
|
|||
this.tlpFileFormat.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpFileFormat.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tlpFileFormat.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tlpFileFormat.Size = new System.Drawing.Size(467, 204);
|
||||
this.tlpFileFormat.Size = new System.Drawing.Size(467, 231);
|
||||
this.tlpFileFormat.TabIndex = 0;
|
||||
//
|
||||
// chkNesFormat
|
||||
|
@ -554,190 +539,22 @@
|
|||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkDisableGameDatabase, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkUseAlternativeMmc3Irq, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkAllowInvalidInput, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkRemoveSpriteLimit, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkFdsAutoLoadDisk, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkFdsFastForwardOnLoad, 0, 5);
|
||||
this.tableLayoutPanel1.Controls.Add(this.grpOverclocking, 0, 6);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkFdsAutoLoadDisk, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkFdsFastForwardOnLoad, 0, 2);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 7;
|
||||
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.RowCount = 4;
|
||||
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.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(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(473, 250);
|
||||
this.tableLayoutPanel1.TabIndex = 0;
|
||||
//
|
||||
// chkUseAlternativeMmc3Irq
|
||||
//
|
||||
this.chkUseAlternativeMmc3Irq.AutoSize = true;
|
||||
this.chkUseAlternativeMmc3Irq.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkUseAlternativeMmc3Irq.Name = "chkUseAlternativeMmc3Irq";
|
||||
this.chkUseAlternativeMmc3Irq.Size = new System.Drawing.Size(197, 17);
|
||||
this.chkUseAlternativeMmc3Irq.TabIndex = 0;
|
||||
this.chkUseAlternativeMmc3Irq.Text = "Use alternative MMC3 IRQ behavior";
|
||||
this.chkUseAlternativeMmc3Irq.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkAllowInvalidInput
|
||||
//
|
||||
this.chkAllowInvalidInput.AutoSize = true;
|
||||
this.chkAllowInvalidInput.Location = new System.Drawing.Point(3, 49);
|
||||
this.chkAllowInvalidInput.Name = "chkAllowInvalidInput";
|
||||
this.chkAllowInvalidInput.Size = new System.Drawing.Size(341, 17);
|
||||
this.chkAllowInvalidInput.TabIndex = 1;
|
||||
this.chkAllowInvalidInput.Text = "Allow invalid input (e.g Down + Up or Left + Right at the same time)";
|
||||
this.chkAllowInvalidInput.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkRemoveSpriteLimit
|
||||
//
|
||||
this.chkRemoveSpriteLimit.AutoSize = true;
|
||||
this.chkRemoveSpriteLimit.Location = new System.Drawing.Point(3, 72);
|
||||
this.chkRemoveSpriteLimit.Name = "chkRemoveSpriteLimit";
|
||||
this.chkRemoveSpriteLimit.Size = new System.Drawing.Size(205, 17);
|
||||
this.chkRemoveSpriteLimit.TabIndex = 2;
|
||||
this.chkRemoveSpriteLimit.Text = "Remove sprite limit (Reduces flashing)";
|
||||
this.chkRemoveSpriteLimit.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkFdsAutoLoadDisk
|
||||
//
|
||||
this.chkFdsAutoLoadDisk.AutoSize = true;
|
||||
this.chkFdsAutoLoadDisk.Location = new System.Drawing.Point(3, 95);
|
||||
this.chkFdsAutoLoadDisk.Name = "chkFdsAutoLoadDisk";
|
||||
this.chkFdsAutoLoadDisk.Size = new System.Drawing.Size(303, 17);
|
||||
this.chkFdsAutoLoadDisk.TabIndex = 3;
|
||||
this.chkFdsAutoLoadDisk.Text = "Automatically insert disk 1 side A when starting FDS games";
|
||||
this.chkFdsAutoLoadDisk.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkFdsFastForwardOnLoad
|
||||
//
|
||||
this.chkFdsFastForwardOnLoad.AutoSize = true;
|
||||
this.chkFdsFastForwardOnLoad.Location = new System.Drawing.Point(3, 118);
|
||||
this.chkFdsFastForwardOnLoad.Name = "chkFdsFastForwardOnLoad";
|
||||
this.chkFdsFastForwardOnLoad.Size = new System.Drawing.Size(342, 17);
|
||||
this.chkFdsFastForwardOnLoad.TabIndex = 4;
|
||||
this.chkFdsFastForwardOnLoad.Text = "Automatically fast forward FDS games when disk or BIOS is loading";
|
||||
this.chkFdsFastForwardOnLoad.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// grpOverclocking
|
||||
//
|
||||
this.grpOverclocking.Controls.Add(this.tableLayoutPanel2);
|
||||
this.grpOverclocking.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.grpOverclocking.Location = new System.Drawing.Point(3, 141);
|
||||
this.grpOverclocking.Name = "grpOverclocking";
|
||||
this.grpOverclocking.Size = new System.Drawing.Size(467, 106);
|
||||
this.grpOverclocking.TabIndex = 5;
|
||||
this.grpOverclocking.TabStop = false;
|
||||
this.grpOverclocking.Text = "Overclocking";
|
||||
//
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
this.tableLayoutPanel2.ColumnCount = 1;
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.Controls.Add(this.lblOverclockWarning, 0, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkOverclockAdjustApu, 0, 2);
|
||||
this.tableLayoutPanel2.Controls.Add(this.flowLayoutPanel5, 0, 1);
|
||||
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 16);
|
||||
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
this.tableLayoutPanel2.RowCount = 4;
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(461, 87);
|
||||
this.tableLayoutPanel2.TabIndex = 0;
|
||||
//
|
||||
// lblOverclockWarning
|
||||
//
|
||||
this.lblOverclockWarning.AutoSize = true;
|
||||
this.lblOverclockWarning.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblOverclockWarning.ForeColor = System.Drawing.Color.Red;
|
||||
this.lblOverclockWarning.Location = new System.Drawing.Point(3, 5);
|
||||
this.lblOverclockWarning.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
|
||||
this.lblOverclockWarning.Name = "lblOverclockWarning";
|
||||
this.lblOverclockWarning.Size = new System.Drawing.Size(455, 13);
|
||||
this.lblOverclockWarning.TabIndex = 2;
|
||||
this.lblOverclockWarning.Text = "WARNING: Overclocking will cause stability issues and may crash some games!";
|
||||
//
|
||||
// chkOverclockAdjustApu
|
||||
//
|
||||
this.chkOverclockAdjustApu.AutoSize = true;
|
||||
this.chkOverclockAdjustApu.Location = new System.Drawing.Point(3, 51);
|
||||
this.chkOverclockAdjustApu.Name = "chkOverclockAdjustApu";
|
||||
this.chkOverclockAdjustApu.Size = new System.Drawing.Size(401, 17);
|
||||
this.chkOverclockAdjustApu.TabIndex = 1;
|
||||
this.chkOverclockAdjustApu.Text = "Do not overclock APU (prevents sound pitch changes caused by overclocking)";
|
||||
this.chkOverclockAdjustApu.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// flowLayoutPanel5
|
||||
//
|
||||
this.flowLayoutPanel5.Controls.Add(this.lblClockRate);
|
||||
this.flowLayoutPanel5.Controls.Add(this.nudOverclockRate);
|
||||
this.flowLayoutPanel5.Controls.Add(this.lblClockRatePercent);
|
||||
this.flowLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel5.Location = new System.Drawing.Point(0, 23);
|
||||
this.flowLayoutPanel5.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.flowLayoutPanel5.Name = "flowLayoutPanel5";
|
||||
this.flowLayoutPanel5.Size = new System.Drawing.Size(461, 25);
|
||||
this.flowLayoutPanel5.TabIndex = 1;
|
||||
//
|
||||
// lblClockRate
|
||||
//
|
||||
this.lblClockRate.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblClockRate.AutoSize = true;
|
||||
this.lblClockRate.Location = new System.Drawing.Point(3, 6);
|
||||
this.lblClockRate.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
|
||||
this.lblClockRate.Name = "lblClockRate";
|
||||
this.lblClockRate.Size = new System.Drawing.Size(63, 13);
|
||||
this.lblClockRate.TabIndex = 1;
|
||||
this.lblClockRate.Text = "Clock Rate:";
|
||||
//
|
||||
// nudOverclockRate
|
||||
//
|
||||
this.nudOverclockRate.Location = new System.Drawing.Point(66, 3);
|
||||
this.nudOverclockRate.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||
this.nudOverclockRate.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudOverclockRate.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudOverclockRate.Name = "nudOverclockRate";
|
||||
this.nudOverclockRate.Size = new System.Drawing.Size(46, 20);
|
||||
this.nudOverclockRate.TabIndex = 1;
|
||||
this.nudOverclockRate.Value = new decimal(new int[] {
|
||||
100,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// lblClockRatePercent
|
||||
//
|
||||
this.lblClockRatePercent.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblClockRatePercent.AutoSize = true;
|
||||
this.lblClockRatePercent.Location = new System.Drawing.Point(112, 6);
|
||||
this.lblClockRatePercent.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
|
||||
this.lblClockRatePercent.Name = "lblClockRatePercent";
|
||||
this.lblClockRatePercent.Size = new System.Drawing.Size(15, 13);
|
||||
this.lblClockRatePercent.TabIndex = 1;
|
||||
this.lblClockRatePercent.Text = "%";
|
||||
//
|
||||
// tmrSyncDateTime
|
||||
//
|
||||
this.tmrSyncDateTime.Enabled = true;
|
||||
this.tmrSyncDateTime.Tick += new System.EventHandler(this.tmrSyncDateTime_Tick);
|
||||
//
|
||||
// chkDisableGameDatabase
|
||||
//
|
||||
this.chkDisableGameDatabase.AutoSize = true;
|
||||
|
@ -748,6 +565,31 @@
|
|||
this.chkDisableGameDatabase.Text = "Disable built-in game database";
|
||||
this.chkDisableGameDatabase.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkFdsAutoLoadDisk
|
||||
//
|
||||
this.chkFdsAutoLoadDisk.AutoSize = true;
|
||||
this.chkFdsAutoLoadDisk.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkFdsAutoLoadDisk.Name = "chkFdsAutoLoadDisk";
|
||||
this.chkFdsAutoLoadDisk.Size = new System.Drawing.Size(303, 17);
|
||||
this.chkFdsAutoLoadDisk.TabIndex = 3;
|
||||
this.chkFdsAutoLoadDisk.Text = "Automatically insert disk 1 side A when starting FDS games";
|
||||
this.chkFdsAutoLoadDisk.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkFdsFastForwardOnLoad
|
||||
//
|
||||
this.chkFdsFastForwardOnLoad.AutoSize = true;
|
||||
this.chkFdsFastForwardOnLoad.Location = new System.Drawing.Point(3, 49);
|
||||
this.chkFdsFastForwardOnLoad.Name = "chkFdsFastForwardOnLoad";
|
||||
this.chkFdsFastForwardOnLoad.Size = new System.Drawing.Size(342, 17);
|
||||
this.chkFdsFastForwardOnLoad.TabIndex = 4;
|
||||
this.chkFdsFastForwardOnLoad.Text = "Automatically fast forward FDS games when disk or BIOS is loading";
|
||||
this.chkFdsFastForwardOnLoad.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tmrSyncDateTime
|
||||
//
|
||||
this.tmrSyncDateTime.Enabled = true;
|
||||
this.tmrSyncDateTime.Tick += new System.EventHandler(this.tmrSyncDateTime_Tick);
|
||||
//
|
||||
// frmPreferences
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
@ -786,12 +628,6 @@
|
|||
this.tpgAdvanced.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.grpOverclocking.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.PerformLayout();
|
||||
this.flowLayoutPanel5.ResumeLayout(false);
|
||||
this.flowLayoutPanel5.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudOverclockRate)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
@ -815,9 +651,6 @@
|
|||
private System.Windows.Forms.CheckBox chkMstFormat;
|
||||
private System.Windows.Forms.TabPage tpgAdvanced;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.CheckBox chkUseAlternativeMmc3Irq;
|
||||
private System.Windows.Forms.CheckBox chkAllowInvalidInput;
|
||||
private System.Windows.Forms.CheckBox chkRemoveSpriteLimit;
|
||||
private System.Windows.Forms.CheckBox chkFdsAutoLoadDisk;
|
||||
private System.Windows.Forms.CheckBox chkFdsFastForwardOnLoad;
|
||||
private System.Windows.Forms.CheckBox chkAllowBackgroundInput;
|
||||
|
@ -842,14 +675,6 @@
|
|||
private System.Windows.Forms.Label lblLastSyncDateTime;
|
||||
private System.Windows.Forms.Timer tmrSyncDateTime;
|
||||
private System.Windows.Forms.Button btnResync;
|
||||
private System.Windows.Forms.GroupBox grpOverclocking;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||
private System.Windows.Forms.Label lblOverclockWarning;
|
||||
private System.Windows.Forms.CheckBox chkOverclockAdjustApu;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5;
|
||||
private System.Windows.Forms.Label lblClockRate;
|
||||
private System.Windows.Forms.NumericUpDown nudOverclockRate;
|
||||
private System.Windows.Forms.Label lblClockRatePercent;
|
||||
private System.Windows.Forms.CheckBox chkDisableGameDatabase;
|
||||
}
|
||||
}
|
|
@ -30,10 +30,6 @@ namespace Mesen.GUI.Forms.Config
|
|||
AddBinding("AssociateMmoFiles", chkMmoFormat);
|
||||
AddBinding("AssociateMstFiles", chkMstFormat);
|
||||
|
||||
AddBinding("UseAlternativeMmc3Irq", chkUseAlternativeMmc3Irq);
|
||||
AddBinding("AllowInvalidInput", chkAllowInvalidInput);
|
||||
AddBinding("RemoveSpriteLimit", chkRemoveSpriteLimit);
|
||||
|
||||
AddBinding("FdsAutoLoadDisk", chkFdsAutoLoadDisk);
|
||||
AddBinding("FdsFastForwardOnLoad", chkFdsFastForwardOnLoad);
|
||||
|
||||
|
@ -42,9 +38,6 @@ namespace Mesen.GUI.Forms.Config
|
|||
|
||||
AddBinding("PauseOnMovieEnd", chkPauseOnMovieEnd);
|
||||
|
||||
AddBinding("OverclockRate", nudOverclockRate);
|
||||
AddBinding("OverclockAdjustApu", chkOverclockAdjustApu);
|
||||
|
||||
AddBinding("DisableGameDatabase", chkDisableGameDatabase);
|
||||
|
||||
UpdateCloudDisplay();
|
||||
|
|
72
GUI.NET/Forms/Config/frmVideoConfig.Designer.cs
generated
72
GUI.NET/Forms/Config/frmVideoConfig.Designer.cs
generated
|
@ -34,10 +34,6 @@
|
|||
this.chkVerticalSync = new System.Windows.Forms.CheckBox();
|
||||
this.cboAspectRatio = new System.Windows.Forms.ComboBox();
|
||||
this.lblDisplayRatio = new System.Windows.Forms.Label();
|
||||
this.flowLayoutPanel6 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.nudEmulationSpeed = new System.Windows.Forms.NumericUpDown();
|
||||
this.lblEmuSpeedHint = new System.Windows.Forms.Label();
|
||||
this.lblEmulationSpeed = new System.Windows.Forms.Label();
|
||||
this.chkShowFps = new System.Windows.Forms.CheckBox();
|
||||
this.flowLayoutPanel7 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.chkUseHdPacks = new System.Windows.Forms.CheckBox();
|
||||
|
@ -107,8 +103,6 @@
|
|||
this.mnuPaletteYuv = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuPaletteNestopiaRgb = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tlpMain.SuspendLayout();
|
||||
this.flowLayoutPanel6.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudEmulationSpeed)).BeginInit();
|
||||
this.flowLayoutPanel7.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.picHdNesTooltip)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudScale)).BeginInit();
|
||||
|
@ -157,8 +151,6 @@
|
|||
this.tlpMain.Controls.Add(this.chkVerticalSync, 0, 3);
|
||||
this.tlpMain.Controls.Add(this.cboAspectRatio, 1, 1);
|
||||
this.tlpMain.Controls.Add(this.lblDisplayRatio, 0, 1);
|
||||
this.tlpMain.Controls.Add(this.flowLayoutPanel6, 1, 5);
|
||||
this.tlpMain.Controls.Add(this.lblEmulationSpeed, 0, 5);
|
||||
this.tlpMain.Controls.Add(this.chkShowFps, 0, 4);
|
||||
this.tlpMain.Controls.Add(this.flowLayoutPanel7, 0, 2);
|
||||
this.tlpMain.Controls.Add(this.nudScale, 1, 0);
|
||||
|
@ -166,8 +158,7 @@
|
|||
this.tlpMain.Location = new System.Drawing.Point(3, 3);
|
||||
this.tlpMain.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.tlpMain.Name = "tlpMain";
|
||||
this.tlpMain.RowCount = 7;
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpMain.RowCount = 6;
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
|
@ -210,7 +201,7 @@
|
|||
"PAL (18:13)",
|
||||
"Standard (4:3)",
|
||||
"Widescreen (16:9)"});
|
||||
this.cboAspectRatio.Location = new System.Drawing.Point(99, 29);
|
||||
this.cboAspectRatio.Location = new System.Drawing.Point(80, 29);
|
||||
this.cboAspectRatio.Name = "cboAspectRatio";
|
||||
this.cboAspectRatio.Size = new System.Drawing.Size(121, 21);
|
||||
this.cboAspectRatio.TabIndex = 16;
|
||||
|
@ -225,50 +216,6 @@
|
|||
this.lblDisplayRatio.TabIndex = 17;
|
||||
this.lblDisplayRatio.Text = "Aspect Ratio:";
|
||||
//
|
||||
// flowLayoutPanel6
|
||||
//
|
||||
this.flowLayoutPanel6.AutoSize = true;
|
||||
this.flowLayoutPanel6.Controls.Add(this.nudEmulationSpeed);
|
||||
this.flowLayoutPanel6.Controls.Add(this.lblEmuSpeedHint);
|
||||
this.flowLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel6.Location = new System.Drawing.Point(96, 122);
|
||||
this.flowLayoutPanel6.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.flowLayoutPanel6.Name = "flowLayoutPanel6";
|
||||
this.flowLayoutPanel6.Size = new System.Drawing.Size(425, 26);
|
||||
this.flowLayoutPanel6.TabIndex = 10;
|
||||
//
|
||||
// nudEmulationSpeed
|
||||
//
|
||||
this.nudEmulationSpeed.Location = new System.Drawing.Point(3, 3);
|
||||
this.nudEmulationSpeed.Maximum = new decimal(new int[] {
|
||||
500,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nudEmulationSpeed.Name = "nudEmulationSpeed";
|
||||
this.nudEmulationSpeed.Size = new System.Drawing.Size(48, 20);
|
||||
this.nudEmulationSpeed.TabIndex = 1;
|
||||
//
|
||||
// lblEmuSpeedHint
|
||||
//
|
||||
this.lblEmuSpeedHint.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblEmuSpeedHint.AutoSize = true;
|
||||
this.lblEmuSpeedHint.Location = new System.Drawing.Point(57, 6);
|
||||
this.lblEmuSpeedHint.Name = "lblEmuSpeedHint";
|
||||
this.lblEmuSpeedHint.Size = new System.Drawing.Size(107, 13);
|
||||
this.lblEmuSpeedHint.TabIndex = 2;
|
||||
this.lblEmuSpeedHint.Text = "(0 = Maximum speed)";
|
||||
//
|
||||
// lblEmulationSpeed
|
||||
//
|
||||
this.lblEmulationSpeed.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblEmulationSpeed.AutoSize = true;
|
||||
this.lblEmulationSpeed.Location = new System.Drawing.Point(3, 128);
|
||||
this.lblEmulationSpeed.Name = "lblEmulationSpeed";
|
||||
this.lblEmulationSpeed.Size = new System.Drawing.Size(90, 13);
|
||||
this.lblEmulationSpeed.TabIndex = 0;
|
||||
this.lblEmulationSpeed.Text = "Emulation Speed:";
|
||||
//
|
||||
// chkShowFps
|
||||
//
|
||||
this.chkShowFps.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
|
@ -316,7 +263,7 @@
|
|||
// nudScale
|
||||
//
|
||||
this.nudScale.DecimalPlaces = 2;
|
||||
this.nudScale.Location = new System.Drawing.Point(99, 3);
|
||||
this.nudScale.Location = new System.Drawing.Point(80, 3);
|
||||
this.nudScale.Maximum = new decimal(new int[] {
|
||||
10,
|
||||
0,
|
||||
|
@ -1023,14 +970,14 @@
|
|||
// mnuPresetComposite
|
||||
//
|
||||
this.mnuPresetComposite.Name = "mnuPresetComposite";
|
||||
this.mnuPresetComposite.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuPresetComposite.Size = new System.Drawing.Size(147, 22);
|
||||
this.mnuPresetComposite.Text = "Composite";
|
||||
this.mnuPresetComposite.Click += new System.EventHandler(this.mnuPresetComposite_Click);
|
||||
//
|
||||
// mnuPresetSVideo
|
||||
//
|
||||
this.mnuPresetSVideo.Name = "mnuPresetSVideo";
|
||||
this.mnuPresetSVideo.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuPresetSVideo.Size = new System.Drawing.Size(147, 22);
|
||||
this.mnuPresetSVideo.Text = "S-Video";
|
||||
this.mnuPresetSVideo.Click += new System.EventHandler(this.mnuPresetSVideo_Click);
|
||||
//
|
||||
|
@ -1044,7 +991,7 @@
|
|||
// mnuPresetMonochrome
|
||||
//
|
||||
this.mnuPresetMonochrome.Name = "mnuPresetMonochrome";
|
||||
this.mnuPresetMonochrome.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuPresetMonochrome.Size = new System.Drawing.Size(147, 22);
|
||||
this.mnuPresetMonochrome.Text = "Monochrome";
|
||||
this.mnuPresetMonochrome.Click += new System.EventHandler(this.mnuPresetMonochrome_Click);
|
||||
//
|
||||
|
@ -1109,9 +1056,6 @@
|
|||
this.Controls.SetChildIndex(this.tabMain, 0);
|
||||
this.tlpMain.ResumeLayout(false);
|
||||
this.tlpMain.PerformLayout();
|
||||
this.flowLayoutPanel6.ResumeLayout(false);
|
||||
this.flowLayoutPanel6.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudEmulationSpeed)).EndInit();
|
||||
this.flowLayoutPanel7.ResumeLayout(false);
|
||||
this.flowLayoutPanel7.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.picHdNesTooltip)).EndInit();
|
||||
|
@ -1162,10 +1106,6 @@
|
|||
|
||||
private System.Windows.Forms.TableLayoutPanel tlpMain;
|
||||
private System.Windows.Forms.CheckBox chkShowFps;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel6;
|
||||
private System.Windows.Forms.Label lblEmulationSpeed;
|
||||
private System.Windows.Forms.NumericUpDown nudEmulationSpeed;
|
||||
private System.Windows.Forms.Label lblEmuSpeedHint;
|
||||
private System.Windows.Forms.Label lblVideoScale;
|
||||
private System.Windows.Forms.CheckBox chkVerticalSync;
|
||||
private System.Windows.Forms.ComboBox cboAspectRatio;
|
||||
|
|
|
@ -23,7 +23,6 @@ namespace Mesen.GUI.Forms.Config
|
|||
|
||||
Entity = ConfigManager.Config.VideoInfo;
|
||||
|
||||
AddBinding("EmulationSpeed", nudEmulationSpeed);
|
||||
AddBinding("ShowFPS", chkShowFps);
|
||||
AddBinding("UseBilinearInterpolation", chkBilinearInterpolation);
|
||||
AddBinding("VerticalSync", chkVerticalSync);
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
<data name="btnSelectPalette.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAcAAAAGCAYAAAAPDoR2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUA
|
||||
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUA
|
||||
AAArSURBVBhXY/j//z9OjFUQhkEARGLHUBUYEmBxJCNQJFAkwRwkif///zMAAD5AXaOzoq98AAAAAElF
|
||||
TkSuQmCC
|
||||
</value>
|
||||
|
|
77
GUI.NET/Forms/frmMain.Designer.cs
generated
77
GUI.NET/Forms/frmMain.Designer.cs
generated
|
@ -103,15 +103,16 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuSuperEagleFilter = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem19 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.mnuBilinearInterpolation = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.mnuAudioConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuInput = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuRegion = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuRegionAuto = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuRegionNtsc = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuRegionPal = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuRegionDendy = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.mnuAudioConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuInput = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuVideoConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuEmulationConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.mnuPreferences = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuTools = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -149,13 +150,13 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuTestStopRecording = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuRunAllTests = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuDebugger = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuLogWindow = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.mnuTakeScreenshot = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuHelp = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuCheckForUpdates = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.mnuAbout = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuLogWindow = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.panelRenderer.SuspendLayout();
|
||||
this.menuStrip.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
|
@ -385,11 +386,12 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuEmulationSpeed,
|
||||
this.mnuVideoScale,
|
||||
this.mnuVideoFilter,
|
||||
this.mnuRegion,
|
||||
this.toolStripMenuItem10,
|
||||
this.mnuAudioConfig,
|
||||
this.mnuInput,
|
||||
this.mnuRegion,
|
||||
this.mnuVideoConfig,
|
||||
this.mnuEmulationConfig,
|
||||
this.toolStripMenuItem11,
|
||||
this.mnuPreferences});
|
||||
this.mnuOptions.Name = "mnuOptions";
|
||||
|
@ -766,27 +768,6 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuBilinearInterpolation.Text = "Use Bilinear Interpolation";
|
||||
this.mnuBilinearInterpolation.Click += new System.EventHandler(this.mnuBilinearInterpolation_Click);
|
||||
//
|
||||
// toolStripMenuItem10
|
||||
//
|
||||
this.toolStripMenuItem10.Name = "toolStripMenuItem10";
|
||||
this.toolStripMenuItem10.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// mnuAudioConfig
|
||||
//
|
||||
this.mnuAudioConfig.Image = global::Mesen.GUI.Properties.Resources.Audio;
|
||||
this.mnuAudioConfig.Name = "mnuAudioConfig";
|
||||
this.mnuAudioConfig.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuAudioConfig.Text = "Audio";
|
||||
this.mnuAudioConfig.Click += new System.EventHandler(this.mnuAudioConfig_Click);
|
||||
//
|
||||
// mnuInput
|
||||
//
|
||||
this.mnuInput.Image = global::Mesen.GUI.Properties.Resources.Controller;
|
||||
this.mnuInput.Name = "mnuInput";
|
||||
this.mnuInput.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuInput.Text = "Input";
|
||||
this.mnuInput.Click += new System.EventHandler(this.mnuInput_Click);
|
||||
//
|
||||
// mnuRegion
|
||||
//
|
||||
this.mnuRegion.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
|
@ -827,6 +808,27 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuRegionDendy.Text = "Dendy";
|
||||
this.mnuRegionDendy.Click += new System.EventHandler(this.mnuRegion_Click);
|
||||
//
|
||||
// toolStripMenuItem10
|
||||
//
|
||||
this.toolStripMenuItem10.Name = "toolStripMenuItem10";
|
||||
this.toolStripMenuItem10.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// mnuAudioConfig
|
||||
//
|
||||
this.mnuAudioConfig.Image = global::Mesen.GUI.Properties.Resources.Audio;
|
||||
this.mnuAudioConfig.Name = "mnuAudioConfig";
|
||||
this.mnuAudioConfig.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuAudioConfig.Text = "Audio";
|
||||
this.mnuAudioConfig.Click += new System.EventHandler(this.mnuAudioConfig_Click);
|
||||
//
|
||||
// mnuInput
|
||||
//
|
||||
this.mnuInput.Image = global::Mesen.GUI.Properties.Resources.Controller;
|
||||
this.mnuInput.Name = "mnuInput";
|
||||
this.mnuInput.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuInput.Text = "Input";
|
||||
this.mnuInput.Click += new System.EventHandler(this.mnuInput_Click);
|
||||
//
|
||||
// mnuVideoConfig
|
||||
//
|
||||
this.mnuVideoConfig.Image = global::Mesen.GUI.Properties.Resources.Video;
|
||||
|
@ -835,6 +837,14 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuVideoConfig.Text = "Video";
|
||||
this.mnuVideoConfig.Click += new System.EventHandler(this.mnuVideoConfig_Click);
|
||||
//
|
||||
// mnuEmulationConfig
|
||||
//
|
||||
this.mnuEmulationConfig.Image = global::Mesen.GUI.Properties.Resources.DipSwitches;
|
||||
this.mnuEmulationConfig.Name = "mnuEmulationConfig";
|
||||
this.mnuEmulationConfig.Size = new System.Drawing.Size(152, 22);
|
||||
this.mnuEmulationConfig.Text = "Emulation";
|
||||
this.mnuEmulationConfig.Click += new System.EventHandler(this.mnuEmulationConfig_Click);
|
||||
//
|
||||
// toolStripMenuItem11
|
||||
//
|
||||
this.toolStripMenuItem11.Name = "toolStripMenuItem11";
|
||||
|
@ -1135,6 +1145,13 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuDebugger.Text = "Debugger";
|
||||
this.mnuDebugger.Click += new System.EventHandler(this.mnuDebugger_Click);
|
||||
//
|
||||
// mnuLogWindow
|
||||
//
|
||||
this.mnuLogWindow.Name = "mnuLogWindow";
|
||||
this.mnuLogWindow.Size = new System.Drawing.Size(185, 22);
|
||||
this.mnuLogWindow.Text = "Log Window";
|
||||
this.mnuLogWindow.Click += new System.EventHandler(this.mnuLogWindow_Click);
|
||||
//
|
||||
// toolStripMenuItem1
|
||||
//
|
||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||
|
@ -1180,13 +1197,6 @@ namespace Mesen.GUI.Forms
|
|||
this.mnuAbout.Text = "About";
|
||||
this.mnuAbout.Click += new System.EventHandler(this.mnuAbout_Click);
|
||||
//
|
||||
// mnuLogWindow
|
||||
//
|
||||
this.mnuLogWindow.Name = "mnuLogWindow";
|
||||
this.mnuLogWindow.Size = new System.Drawing.Size(185, 22);
|
||||
this.mnuLogWindow.Text = "Log Window";
|
||||
this.mnuLogWindow.Click += new System.EventHandler(this.mnuLogWindow_Click);
|
||||
//
|
||||
// frmMain
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
|
@ -1338,6 +1348,7 @@ namespace Mesen.GUI.Forms
|
|||
private System.Windows.Forms.ToolStripMenuItem mnuScale5x;
|
||||
private System.Windows.Forms.ToolStripMenuItem mnuScale6x;
|
||||
private System.Windows.Forms.ToolStripMenuItem mnuLogWindow;
|
||||
private System.Windows.Forms.ToolStripMenuItem mnuEmulationConfig;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -164,7 +164,7 @@ namespace Mesen.GUI.Forms
|
|||
private void UpdateEmulationSpeedMenu()
|
||||
{
|
||||
foreach(ToolStripMenuItem item in new ToolStripMenuItem[] { mnuEmuSpeedDouble, mnuEmuSpeedHalf, mnuEmuSpeedNormal, mnuEmuSpeedQuarter, mnuEmuSpeedTriple, mnuEmuSpeedMaximumSpeed }) {
|
||||
item.Checked = ((int)item.Tag == ConfigManager.Config.VideoInfo.EmulationSpeed);
|
||||
item.Checked = ((int)item.Tag == ConfigManager.Config.EmulationInfo.EmulationSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -175,19 +175,19 @@ namespace Mesen.GUI.Forms
|
|||
} else {
|
||||
InteropEmu.DisplayMessage("EmulationSpeed", "EmulationSpeedPercent", emulationSpeed.ToString());
|
||||
}
|
||||
ConfigManager.Config.VideoInfo.EmulationSpeed = emulationSpeed;
|
||||
ConfigManager.Config.EmulationInfo.EmulationSpeed = emulationSpeed;
|
||||
ConfigManager.ApplyChanges();
|
||||
UpdateEmulationSpeedMenu();
|
||||
VideoInfo.ApplyConfig();
|
||||
EmulationInfo.ApplyConfig();
|
||||
}
|
||||
|
||||
private void mnuIncreaseSpeed_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(ConfigManager.Config.VideoInfo.EmulationSpeed > 0) {
|
||||
if(ConfigManager.Config.VideoInfo.EmulationSpeed < 100) {
|
||||
SetEmulationSpeed(ConfigManager.Config.VideoInfo.EmulationSpeed + 25);
|
||||
} else if(ConfigManager.Config.VideoInfo.EmulationSpeed < 450) {
|
||||
SetEmulationSpeed(ConfigManager.Config.VideoInfo.EmulationSpeed + 50);
|
||||
if(ConfigManager.Config.EmulationInfo.EmulationSpeed > 0) {
|
||||
if(ConfigManager.Config.EmulationInfo.EmulationSpeed < 100) {
|
||||
SetEmulationSpeed(ConfigManager.Config.EmulationInfo.EmulationSpeed + 25);
|
||||
} else if(ConfigManager.Config.EmulationInfo.EmulationSpeed < 450) {
|
||||
SetEmulationSpeed(ConfigManager.Config.EmulationInfo.EmulationSpeed + 50);
|
||||
} else {
|
||||
SetEmulationSpeed(0);
|
||||
}
|
||||
|
@ -196,20 +196,20 @@ namespace Mesen.GUI.Forms
|
|||
|
||||
private void mnuDecreaseSpeed_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(ConfigManager.Config.VideoInfo.EmulationSpeed == 0) {
|
||||
if(ConfigManager.Config.EmulationInfo.EmulationSpeed == 0) {
|
||||
SetEmulationSpeed(450);
|
||||
} else if(ConfigManager.Config.VideoInfo.EmulationSpeed <= 100) {
|
||||
if(ConfigManager.Config.VideoInfo.EmulationSpeed > 25) {
|
||||
SetEmulationSpeed(ConfigManager.Config.VideoInfo.EmulationSpeed - 25);
|
||||
} else if(ConfigManager.Config.EmulationInfo.EmulationSpeed <= 100) {
|
||||
if(ConfigManager.Config.EmulationInfo.EmulationSpeed > 25) {
|
||||
SetEmulationSpeed(ConfigManager.Config.EmulationInfo.EmulationSpeed - 25);
|
||||
}
|
||||
} else {
|
||||
SetEmulationSpeed(ConfigManager.Config.VideoInfo.EmulationSpeed - 50);
|
||||
SetEmulationSpeed(ConfigManager.Config.EmulationInfo.EmulationSpeed - 50);
|
||||
}
|
||||
}
|
||||
|
||||
private void mnuEmuSpeedMaximumSpeed_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(ConfigManager.Config.VideoInfo.EmulationSpeed == 0) {
|
||||
if(ConfigManager.Config.EmulationInfo.EmulationSpeed == 0) {
|
||||
SetEmulationSpeed(100);
|
||||
} else {
|
||||
SetEmulationSpeed(0);
|
||||
|
@ -243,7 +243,6 @@ namespace Mesen.GUI.Forms
|
|||
|
||||
mnuShowFPS.Checked = ConfigManager.Config.VideoInfo.ShowFPS;
|
||||
mnuBilinearInterpolation.Checked = ConfigManager.Config.VideoInfo.UseBilinearInterpolation;
|
||||
UpdateEmulationSpeedMenu();
|
||||
UpdateScaleMenu(ConfigManager.Config.VideoInfo.VideoScale);
|
||||
UpdateFilterMenu(ConfigManager.Config.VideoInfo.VideoFilter);
|
||||
|
||||
|
@ -1347,5 +1346,11 @@ namespace Mesen.GUI.Forms
|
|||
_logWindow.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
private void mnuEmulationConfig_Click(object sender, EventArgs e)
|
||||
{
|
||||
new frmEmulationConfig().ShowDialog(sender);
|
||||
UpdateEmulationSpeedMenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -208,6 +208,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Config\DebugInfo.cs" />
|
||||
<Compile Include="Config\EmulationInfo.cs" />
|
||||
<Compile Include="Config\PreferenceInfo.cs" />
|
||||
<Compile Include="Config\VideoInfo.cs" />
|
||||
<Compile Include="Config\CheatInfo.cs" />
|
||||
|
@ -409,6 +410,12 @@
|
|||
<Compile Include="Forms\Config\frmAudioConfig.Designer.cs">
|
||||
<DependentUpon>frmAudioConfig.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Config\frmEmulationConfig.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Config\frmEmulationConfig.Designer.cs">
|
||||
<DependentUpon>frmEmulationConfig.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Config\frmPreferences.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
@ -579,6 +586,9 @@
|
|||
<EmbeddedResource Include="Forms\Config\frmControllerConfig.resx">
|
||||
<DependentUpon>frmControllerConfig.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Config\frmEmulationConfig.resx">
|
||||
<DependentUpon>frmEmulationConfig.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Config\frmGetKey.resx">
|
||||
<DependentUpon>frmGetKey.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
|
@ -123,6 +123,7 @@ namespace Mesen.GUI
|
|||
[DllImport(DLLPath)] public static extern void SetNesModel(NesModel model);
|
||||
[DllImport(DLLPath)] public static extern void SetEmulationSpeed(UInt32 emulationSpeed);
|
||||
[DllImport(DLLPath)] public static extern void SetOverclockRate(UInt32 overclockRate, [MarshalAs(UnmanagedType.I1)]bool adjustApu);
|
||||
[DllImport(DLLPath)] public static extern void SetPpuNmiConfig(UInt32 extraScanlinesBeforeNmi, UInt32 extraScanlineAfterNmi);
|
||||
[DllImport(DLLPath)] public static extern void SetOverscanDimensions(UInt32 left, UInt32 right, UInt32 top, UInt32 bottom);
|
||||
[DllImport(DLLPath)] public static extern void SetVideoScale(double scale);
|
||||
[DllImport(DLLPath)] public static extern void SetVideoAspectRatio(VideoAspectRatio aspectRatio);
|
||||
|
|
|
@ -305,6 +305,7 @@ namespace InteropEmu {
|
|||
DllExport void __stdcall SetOverscanDimensions(uint32_t left, uint32_t right, uint32_t top, uint32_t bottom) { EmulationSettings::SetOverscanDimensions(left, right, top, bottom); }
|
||||
DllExport void __stdcall SetEmulationSpeed(uint32_t emulationSpeed) { EmulationSettings::SetEmulationSpeed(emulationSpeed); }
|
||||
DllExport void __stdcall SetOverclockRate(uint32_t overclockRate, bool adjustApu) { EmulationSettings::SetOverclockRate(overclockRate, adjustApu); }
|
||||
DllExport void __stdcall SetPpuNmiConfig(uint32_t extraScanlinesBeforeNmi, uint32_t extraScanlinesAfterNmi) { EmulationSettings::SetPpuNmiConfig(extraScanlinesBeforeNmi, extraScanlinesAfterNmi); }
|
||||
DllExport void __stdcall SetVideoScale(double scale) { EmulationSettings::SetVideoScale(scale); }
|
||||
DllExport void __stdcall SetVideoAspectRatio(VideoAspectRatio aspectRatio) { EmulationSettings::SetVideoAspectRatio(aspectRatio); }
|
||||
DllExport void __stdcall SetVideoFilter(VideoFilterType filter) { EmulationSettings::SetVideoFilterType(filter); }
|
||||
|
|
Loading…
Add table
Reference in a new issue