bsnes/qt/config.cpp

148 lines
7.3 KiB
C++
Executable File

Configuration &config() {
static Configuration configuration;
return configuration;
}
bool Configuration::load(const char *filename) {
if(configuration::load(filename) == false) return false;
SNES::config.superfx.speed = max(0, min(2, SNES::config.superfx.speed));
video.context = (video.isFullscreen == false) ? &video.windowed : &video.fullscreen;
return true;
}
Configuration::Configuration() {
//========
//external
//========
attach((unsigned&)(SNES::config.controller_port1 = SNES::Input::Device::Joypad), "snes.controllerPort1");
attach((unsigned&)(SNES::config.controller_port2 = SNES::Input::Device::Joypad), "snes.controllerPort2");
attach((unsigned&)(SNES::config.expansion_port = SNES::System::ExpansionPortDevice::BSX), "snes.expansionPort");
attach((unsigned&)(SNES::config.region = SNES::System::Region::Autodetect), "snes.region");
attach(SNES::config.cpu.version = 2, "cpu.version", "Valid version(s) are: 1, 2");
attach(SNES::config.cpu.ntsc_frequency = 21477272, "cpu.ntscFrequency");
attach(SNES::config.cpu.pal_frequency = 21281370, "cpu.palFrequency");
attach(SNES::config.cpu.wram_init_value = 0x55, "cpu.wramInitValue");
attach(SNES::config.smp.ntsc_frequency = 24607104, "smp.ntscFrequency");
attach(SNES::config.smp.pal_frequency = 24607104, "smp.palFrequency");
attach(SNES::config.ppu1.version = 1, "ppu1.version", "Valid version(s) are: 1");
attach(SNES::config.ppu2.version = 3, "ppu2.version", "Valid version(s) are: 1, 2, 3");
attach(SNES::config.superfx.speed = 0, "superfx.speed", "0 = Auto-select, 1 = Force 10.74MHz, 2 = Force 21.48MHz");
//========
//internal
//========
attach(system.profile = "", "system.profile");
attach(system.video = "", "system.video");
attach(system.audio = "", "system.audio");
attach(system.input = "", "system.input");
attach(system.crashedOnLastRun = false, "system.crashedOnLastRun");
attach(system.speed = 2, "system.speed");
attach(system.speedSlowest = 50, "system.speedSlowest");
attach(system.speedSlow = 75, "system.speedSlow");
attach(system.speedNormal = 100, "system.speedNormal");
attach(system.speedFast = 150, "system.speedFast");
attach(system.speedFastest = 200, "system.speedFastest");
attach(system.autoSaveMemory = false, "system.autoSaveMemory", "Automatically save cartridge back-up RAM once every minute");
attach(system.rewindEnabled = false, "system.rewindEnabled", "Automatically save states periodically to allow auto-rewind support");
attach(diskBrowser.showPanel = true, "diskBrowser.showPanel");
attach(file.applyPatches = true, "file.applyPatches");
attach(file.bypassPatchCrc32 = false, "file.bypassPatchCrc32");
attach(path.rom = "", "path.rom");
attach(path.save = "", "path.save");
attach(path.state = "", "path.state");
attach(path.patch = "", "path.patch");
attach(path.cheat = "", "path.cheat");
attach(path.data = "", "path.data");
attach(path.bsx = "", "path.bsx");
attach(path.st = "", "path.st");
attach(path.sgb = "", "path.sgb");
attach(path.fragmentShader = "", "path.fragmentShader");
attach(path.vertexShader = "", "path.vertexShader");
attach(path.current.folder = "", "path.current.folder");
attach(path.current.movie = "", "path.current.movie");
attach(path.current.shader = "", "path.current.shader");
attach(path.current.cartridge = "", "path.current.cartridge");
attach(path.current.filter = 0, "path.current.filter");
video.context = &video.windowed;
attach(video.isFullscreen = false, "video.isFullscreen");
attach(video.synchronize = false, "video.synchronize");
attach(video.autoHideFullscreenMenu = false, "video.autoHideFullscreenMenu");
attach(video.contrastAdjust = 0, "video.contrastAdjust");
attach(video.brightnessAdjust = 0, "video.brightnessAdjust");
attach(video.gammaAdjust = 0, "video.gammaAdjust");
attach(video.scanlineAdjust = 100, "video.scanlineAdjust");
attach(video.enableGammaRamp = true, "video.enableGammaRamp");
attach(video.ntscAspectRatio = 54.0 / 47.0, "video.ntscAspectRatio", "NTSC aspect ratio (x / y)");
attach(video.palAspectRatio = 32.0 / 23.0, "video.palAspectRatio", "PAL aspect ratio (x / y)");
attach(video.cropLeft = 0, "video.cropLeft");
attach(video.cropTop = 0, "video.cropTop");
attach(video.cropRight = 0, "video.cropRight");
attach(video.cropBottom = 0, "video.cropBottom");
attach(video.windowed.correctAspectRatio = true, "video.windowed.correctAspectRatio");
attach(video.windowed.multiplier = 2, "video.windowed.multiplier");
attach(video.windowed.region = 0, "video.windowed.region");
attach(video.windowed.hwFilter = 1, "video.windowed.hwFilter");
attach(video.windowed.swFilter = 0, "video.windowed.swFilter");
attach(video.fullscreen.correctAspectRatio = true, "video.fullscreen.correctAspectRatio");
attach(video.fullscreen.multiplier = 9, "video.fullscreen.multiplier");
attach(video.fullscreen.region = 0, "video.fullscreen.region");
attach(video.fullscreen.hwFilter = 1, "video.fullscreen.hwFilter");
attach(video.fullscreen.swFilter = 0, "video.fullscreen.swFilter");
attach(audio.synchronize = true, "audio.synchronize");
attach(audio.mute = false, "audio.mute");
attach(audio.volume = 100, "audio.volume");
attach(audio.latency = 80, "audio.latency");
attach(audio.outputFrequency = 48000, "audio.outputFrequency");
attach(audio.inputFrequency = 32000, "audio.inputFrequency");
attach(input.port1 = ControllerPort1::Gamepad, "input.port1");
attach(input.port2 = ControllerPort2::Gamepad, "input.port2");
attach(input.focusPolicy = Input::FocusPolicyIgnoreInput, "input.focusPolicy");
attach(input.allowInvalidInput = false, "input.allowInvalidInput", "Allow up+down / left+right combinations; may trigger bugs in some games");
attach(input.modifierEnable = true, "input.modifierEnable");
attach(debugger.cacheUsageToDisk = false, "debugger.cacheUsageToDisk");
attach(geometry.mainWindow = "", "geometry.mainWindow");
attach(geometry.loaderWindow = "", "geometry.loaderWindow");
attach(geometry.htmlViewerWindow = "", "geometry.htmlViewerWindow");
attach(geometry.aboutWindow = "", "geometry.aboutWindow");
attach(geometry.fileBrowser = "", "geometry.fileBrowser");
attach(geometry.folderCreator = "", "geometry.folderCreator");
attach(geometry.settingsWindow = "", "geometry.settingsWindow");
attach(geometry.toolsWindow = "", "geometry.toolsWindow");
attach(geometry.cheatImportWindow = "", "geometry.cheatImportWindow");
attach(geometry.debugger = "", "geometry.debugger");
attach(geometry.disassembler = "", "geometry.disassembler");
attach(geometry.breakpointEditor = "", "geometry.breakpointEditor");
attach(geometry.memoryEditor = "", "geometry.memoryEditor");
attach(geometry.propertiesViewer = "", "geometry.propertiesViewer");
attach(geometry.layerToggle = "", "geometry.layerToggle");
attach(geometry.vramViewer = "", "geometry.vramViewer");
attach(geometry.oamViewer = "", "geometry.oamViewer");
attach(geometry.cgramViewer = "", "geometry.cgramViewer");
attach(geometry.debuggerOptions = "", "geometry.debuggerOptions");
}