mirror of
https://github.com/DerKoun/bsnes-hd.git
synced 2025-04-02 10:52:49 -04:00
469 lines
23 KiB
C++
469 lines
23 KiB
C++
auto EnhancementSettings::create() -> void {
|
|
setCollapsible();
|
|
setVisible(false);
|
|
|
|
runAheadLabel.setText("Run-Ahead").setFont(Font().setBold());
|
|
runAhead0.setText("Disabled").onActivate([&] {
|
|
settings.emulator.runAhead.frames = 0;
|
|
});
|
|
runAhead1.setText("One Frame").onActivate([&] {
|
|
settings.emulator.runAhead.frames = 1;
|
|
});
|
|
runAhead2.setText("Two Frames").onActivate([&] {
|
|
settings.emulator.runAhead.frames = 2;
|
|
});
|
|
runAhead3.setText("Three Frames").onActivate([&] {
|
|
settings.emulator.runAhead.frames = 3;
|
|
});
|
|
runAhead4.setText("Four Frames").onActivate([&] {
|
|
settings.emulator.runAhead.frames = 4;
|
|
});
|
|
if(settings.emulator.runAhead.frames == 0) runAhead0.setChecked();
|
|
if(settings.emulator.runAhead.frames == 1) runAhead1.setChecked();
|
|
if(settings.emulator.runAhead.frames == 2) runAhead2.setChecked();
|
|
if(settings.emulator.runAhead.frames == 3) runAhead3.setChecked();
|
|
if(settings.emulator.runAhead.frames == 4) runAhead4.setChecked();
|
|
runAheadSpacer.setColor({192, 192, 192});
|
|
|
|
overclockingLabel.setText("Overclocking").setFont(Font().setBold());
|
|
overclockingLayout.setSize({3, 3});
|
|
overclockingLayout.column(0).setAlignment(1.0);
|
|
overclockingLayout.column(1).setAlignment(0.5);
|
|
|
|
cpuLabel.setText("CPU:");
|
|
cpuClock.setLength(301).setPosition((settings.emulator.hack.cpu.overclock - 100)).onChange([&] {
|
|
settings.emulator.hack.cpu.overclock = cpuClock.position() + 100;
|
|
emulator->configure("Hacks/CPU/Overclock", settings.emulator.hack.cpu.overclock);
|
|
cpuValue.setText({settings.emulator.hack.cpu.overclock, "%"});
|
|
}).doChange();
|
|
|
|
sa1Label.setText("SA-1:");
|
|
sa1Clock.setLength(301).setPosition((settings.emulator.hack.sa1.overclock - 100)).onChange([&] {
|
|
settings.emulator.hack.sa1.overclock = sa1Clock.position() + 100;
|
|
emulator->configure("Hacks/SA1/Overclock", settings.emulator.hack.sa1.overclock);
|
|
sa1Value.setText({settings.emulator.hack.sa1.overclock, "%"});
|
|
}).doChange();
|
|
|
|
sfxLabel.setText("SuperFX:");
|
|
sfxClock.setLength(141).setPosition((settings.emulator.hack.superfx.overclock - 100) / 5).onChange([&] {
|
|
settings.emulator.hack.superfx.overclock = sfxClock.position() * 5 + 100;
|
|
emulator->configure("Hacks/SuperFX/Overclock", settings.emulator.hack.superfx.overclock);
|
|
sfxValue.setText({settings.emulator.hack.superfx.overclock, "%"});
|
|
}).doChange();
|
|
|
|
overclockingSpacer.setColor({192, 192, 192});
|
|
|
|
ppuLabel.setText("PPU (video)").setFont(Font().setBold());
|
|
fastPPU.setText("Fast mode").setChecked(settings.emulator.hack.ppu.fast).onToggle([&] {
|
|
settings.emulator.hack.ppu.fast = fastPPU.checked();
|
|
if(!fastPPU.checked()) {
|
|
noSpriteLimit.setEnabled(false);
|
|
deinterlace.setEnabled(false);
|
|
//mode7Layout.setEnabled(false);
|
|
} else {
|
|
noSpriteLimit.setEnabled(true);
|
|
deinterlace.setEnabled(true);
|
|
//mode7Layout.setEnabled(true);
|
|
}
|
|
}).doToggle();
|
|
deinterlace.setText("Deinterlace").setChecked(settings.emulator.hack.ppu.deinterlace).onToggle([&] {
|
|
settings.emulator.hack.ppu.deinterlace = deinterlace.checked();
|
|
emulator->configure("Hacks/PPU/Deinterlace", settings.emulator.hack.ppu.deinterlace);
|
|
});
|
|
noSpriteLimit.setText("No sprite limit").setChecked(settings.emulator.hack.ppu.noSpriteLimit).onToggle([&] {
|
|
settings.emulator.hack.ppu.noSpriteLimit = noSpriteLimit.checked();
|
|
});
|
|
|
|
|
|
mode7Label.setText("HD Mode 7 / bsnes-hd").setFont(Font().setBold());
|
|
mode7ScaleLabel.setText("Scale:");
|
|
mode7Scale.append(ComboButtonItem().setText("disable"));
|
|
mode7Scale.append(ComboButtonItem().setText("1x 224p"));
|
|
mode7Scale.append(ComboButtonItem().setText("2x 448p"));
|
|
mode7Scale.append(ComboButtonItem().setText("3x 672p"));
|
|
mode7Scale.append(ComboButtonItem().setText("4x 896p"));
|
|
mode7Scale.append(ComboButtonItem().setText("5x 1120p"));
|
|
mode7Scale.append(ComboButtonItem().setText("6x 1344p"));
|
|
mode7Scale.append(ComboButtonItem().setText("7x 1568p"));
|
|
mode7Scale.append(ComboButtonItem().setText("8x 1792p"));
|
|
mode7Scale.append(ComboButtonItem().setText("9x 2016p"));
|
|
mode7Scale.append(ComboButtonItem().setText("10x 2240p"));
|
|
for(uint n = 0; n <= 10; n++) {
|
|
if(settings.emulator.hack.ppu.mode7.scale == n) mode7Scale.item(n).setSelected();
|
|
}
|
|
mode7Scale.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.scale = mode7Scale.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Scale", settings.emulator.hack.ppu.mode7.scale);
|
|
//.resizeViewport();
|
|
});
|
|
mode7PerspectiveLabel.setText("Perspective correction:");
|
|
mode7Perspective.append(ComboButtonItem().setText("off"));
|
|
mode7Perspective.append(ComboButtonItem().setText("auto/wide"));
|
|
mode7Perspective.append(ComboButtonItem().setText("auto/medium"));
|
|
mode7Perspective.append(ComboButtonItem().setText("auto/narrow"));
|
|
mode7Perspective.append(ComboButtonItem().setText("on/wide"));
|
|
mode7Perspective.append(ComboButtonItem().setText("on/medium"));
|
|
mode7Perspective.append(ComboButtonItem().setText("on/narrow"));
|
|
for(uint n = 0; n < 7; n++) {
|
|
if(mode7Perspective.item(n).offset() == settings.emulator.hack.ppu.mode7.perspective)
|
|
mode7Perspective.item(n).setSelected();
|
|
}
|
|
mode7Perspective.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.perspective = mode7Perspective.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Perspective", settings.emulator.hack.ppu.mode7.perspective);
|
|
});
|
|
mode7SupersampleLabel.setText("Supersampling:");
|
|
mode7Supersample.append(ComboButtonItem().setText("none"));
|
|
mode7Supersample.append(ComboButtonItem().setText("2x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("3x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("4x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("5x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("6x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("7x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("8x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("9x"));
|
|
mode7Supersample.append(ComboButtonItem().setText("10x"));
|
|
for(uint n = 0; n < 10; n++) {
|
|
if(mode7Supersample.item(n).offset() + 1 == settings.emulator.hack.ppu.mode7.supersample)
|
|
mode7Supersample.item(n).setSelected();
|
|
}
|
|
mode7Supersample.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.supersample = mode7Supersample.selected().offset() + 1;
|
|
emulator->configure("Hacks/PPU/Mode7/Supersample", settings.emulator.hack.ppu.mode7.supersample);
|
|
});
|
|
mode7MosaicLabel.setText("Mosaic:");
|
|
mode7Mosaic.append(ComboButtonItem().setText("non-HD"));
|
|
mode7Mosaic.append(ComboButtonItem().setText("1x scale"));
|
|
mode7Mosaic.append(ComboButtonItem().setText("ignore"));
|
|
for(uint n = 0; n <= 2; n++) {
|
|
if(mode7Mosaic.item(n).offset() == settings.emulator.hack.ppu.mode7.mosaic)
|
|
mode7Mosaic.item(n).setSelected();
|
|
}
|
|
mode7Mosaic.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.mosaic = mode7Mosaic.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Mosaic", settings.emulator.hack.ppu.mode7.mosaic);
|
|
});
|
|
|
|
mode7WidescreenLabel.setText("Aspect ratio:");
|
|
mode7Widescreen.append(ComboButtonItem().setText("none"));
|
|
mode7Widescreen.append(ComboButtonItem().setText( "4:3"));
|
|
mode7Widescreen.append(ComboButtonItem().setText("16:10"));
|
|
mode7Widescreen.append(ComboButtonItem().setText("16:9"));
|
|
mode7Widescreen.append(ComboButtonItem().setText( "2:1"));
|
|
mode7Widescreen.append(ComboButtonItem().setText("21:9"));
|
|
if (8 > settings.emulator.hack.ppu.mode7.widescreen) mode7Widescreen.item(0).setSelected();
|
|
else if ( 28 > settings.emulator.hack.ppu.mode7.widescreen || 403 == settings.emulator.hack.ppu.mode7.widescreen) mode7Widescreen.item(1).setSelected();
|
|
else if ( 52 > settings.emulator.hack.ppu.mode7.widescreen || 1610 == settings.emulator.hack.ppu.mode7.widescreen) mode7Widescreen.item(2).setSelected();
|
|
else if ( 76 > settings.emulator.hack.ppu.mode7.widescreen || 1609 == settings.emulator.hack.ppu.mode7.widescreen) mode7Widescreen.item(3).setSelected();
|
|
else if (104 > settings.emulator.hack.ppu.mode7.widescreen || 201 == settings.emulator.hack.ppu.mode7.widescreen) mode7Widescreen.item(4).setSelected();
|
|
else if (160 > settings.emulator.hack.ppu.mode7.widescreen || 2109 == settings.emulator.hack.ppu.mode7.widescreen) mode7Widescreen.item(5).setSelected();
|
|
mode7Widescreen.onChange([&] {
|
|
if (0 == mode7Widescreen.selected().offset()) settings.emulator.hack.ppu.mode7.widescreen = 0;
|
|
else if (1 == mode7Widescreen.selected().offset()) settings.emulator.hack.ppu.mode7.widescreen = 403;
|
|
else if (2 == mode7Widescreen.selected().offset()) settings.emulator.hack.ppu.mode7.widescreen = 1610;
|
|
else if (3 == mode7Widescreen.selected().offset()) settings.emulator.hack.ppu.mode7.widescreen = 1609;
|
|
else if (4 == mode7Widescreen.selected().offset()) settings.emulator.hack.ppu.mode7.widescreen = 201;
|
|
else if (5 == mode7Widescreen.selected().offset()) settings.emulator.hack.ppu.mode7.widescreen = 2109;
|
|
emulator->configure("Hacks/PPU/Mode7/Widescreen", settings.emulator.hack.ppu.mode7.widescreen);
|
|
});
|
|
|
|
wsBG1Label.setText("BG1:");
|
|
wsBG1.append(ComboButtonItem().setText("off"));
|
|
wsBG1.append(ComboButtonItem().setText("on"));
|
|
wsBG1.append(ComboButtonItem().setText("< 40"));
|
|
wsBG1.append(ComboButtonItem().setText("> 40"));
|
|
wsBG1.append(ComboButtonItem().setText("< 80"));
|
|
wsBG1.append(ComboButtonItem().setText("> 80"));
|
|
wsBG1.append(ComboButtonItem().setText("<120"));
|
|
wsBG1.append(ComboButtonItem().setText(">120"));
|
|
wsBG1.append(ComboButtonItem().setText("<160"));
|
|
wsBG1.append(ComboButtonItem().setText(">160"));
|
|
wsBG1.append(ComboButtonItem().setText("<200"));
|
|
wsBG1.append(ComboButtonItem().setText(">200"));
|
|
wsBG1.append(ComboButtonItem().setText("crop"));
|
|
wsBG1.append(ComboButtonItem().setText("cropAuto"));
|
|
wsBG1.append(ComboButtonItem().setText("disable"));
|
|
wsBG1.append(ComboButtonItem().setText("autoHor"));
|
|
wsBG1.append(ComboButtonItem().setText("autoHor&Ver"));
|
|
for(uint n = 0; n <= 16; n++) {
|
|
if(wsBG1.item(n).offset() == settings.emulator.hack.ppu.mode7.wsbg1)
|
|
wsBG1.item(n).setSelected();
|
|
}
|
|
wsBG1.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsbg1 = wsBG1.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Wsbg1", settings.emulator.hack.ppu.mode7.wsbg1);
|
|
});
|
|
wsBG2Label.setText("BG2:");
|
|
wsBG2.append(ComboButtonItem().setText("off"));
|
|
wsBG2.append(ComboButtonItem().setText("on"));
|
|
wsBG2.append(ComboButtonItem().setText("< 40"));
|
|
wsBG2.append(ComboButtonItem().setText("> 40"));
|
|
wsBG2.append(ComboButtonItem().setText("< 80"));
|
|
wsBG2.append(ComboButtonItem().setText("> 80"));
|
|
wsBG2.append(ComboButtonItem().setText("<120"));
|
|
wsBG2.append(ComboButtonItem().setText(">120"));
|
|
wsBG2.append(ComboButtonItem().setText("<160"));
|
|
wsBG2.append(ComboButtonItem().setText(">160"));
|
|
wsBG2.append(ComboButtonItem().setText("<200"));
|
|
wsBG2.append(ComboButtonItem().setText(">200"));
|
|
wsBG2.append(ComboButtonItem().setText("crop"));
|
|
wsBG2.append(ComboButtonItem().setText("cropAuto"));
|
|
wsBG2.append(ComboButtonItem().setText("disable"));
|
|
wsBG2.append(ComboButtonItem().setText("autoHor"));
|
|
wsBG2.append(ComboButtonItem().setText("autoHor&Ver"));
|
|
for(uint n = 0; n <= 16; n++) {
|
|
if(wsBG2.item(n).offset() == settings.emulator.hack.ppu.mode7.wsbg2)
|
|
wsBG2.item(n).setSelected();
|
|
}
|
|
wsBG2.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsbg2 = wsBG2.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Wsbg2", settings.emulator.hack.ppu.mode7.wsbg2);
|
|
});
|
|
wsBG3Label.setText("BG3:");
|
|
wsBG3.append(ComboButtonItem().setText("off"));
|
|
wsBG3.append(ComboButtonItem().setText("on"));
|
|
wsBG3.append(ComboButtonItem().setText("< 40"));
|
|
wsBG3.append(ComboButtonItem().setText("> 40"));
|
|
wsBG3.append(ComboButtonItem().setText("< 80"));
|
|
wsBG3.append(ComboButtonItem().setText("> 80"));
|
|
wsBG3.append(ComboButtonItem().setText("<120"));
|
|
wsBG3.append(ComboButtonItem().setText(">120"));
|
|
wsBG3.append(ComboButtonItem().setText("<160"));
|
|
wsBG3.append(ComboButtonItem().setText(">160"));
|
|
wsBG3.append(ComboButtonItem().setText("<200"));
|
|
wsBG3.append(ComboButtonItem().setText(">200"));
|
|
wsBG3.append(ComboButtonItem().setText("crop"));
|
|
wsBG3.append(ComboButtonItem().setText("cropAuto"));
|
|
wsBG3.append(ComboButtonItem().setText("disable"));
|
|
wsBG3.append(ComboButtonItem().setText("autoHor"));
|
|
wsBG3.append(ComboButtonItem().setText("autoHor&Ver"));
|
|
for(uint n = 0; n <= 16; n++) {
|
|
if(wsBG3.item(n).offset() == settings.emulator.hack.ppu.mode7.wsbg3)
|
|
wsBG3.item(n).setSelected();
|
|
}
|
|
wsBG3.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsbg3 = wsBG3.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Wsbg3", settings.emulator.hack.ppu.mode7.wsbg3);
|
|
});
|
|
wsBG4Label.setText("BG4:");
|
|
wsBG4.append(ComboButtonItem().setText("off"));
|
|
wsBG4.append(ComboButtonItem().setText("on"));
|
|
wsBG4.append(ComboButtonItem().setText("< 40"));
|
|
wsBG4.append(ComboButtonItem().setText("> 40"));
|
|
wsBG4.append(ComboButtonItem().setText("< 80"));
|
|
wsBG4.append(ComboButtonItem().setText("> 80"));
|
|
wsBG4.append(ComboButtonItem().setText("<120"));
|
|
wsBG4.append(ComboButtonItem().setText(">120"));
|
|
wsBG4.append(ComboButtonItem().setText("<160"));
|
|
wsBG4.append(ComboButtonItem().setText(">160"));
|
|
wsBG4.append(ComboButtonItem().setText("<200"));
|
|
wsBG4.append(ComboButtonItem().setText(">200"));
|
|
wsBG4.append(ComboButtonItem().setText("crop"));
|
|
wsBG4.append(ComboButtonItem().setText("cropAuto"));
|
|
wsBG4.append(ComboButtonItem().setText("disable"));
|
|
wsBG4.append(ComboButtonItem().setText("autoHor"));
|
|
wsBG4.append(ComboButtonItem().setText("autoHor&Ver"));
|
|
for(uint n = 0; n <= 16; n++) {
|
|
if(wsBG4.item(n).offset() == settings.emulator.hack.ppu.mode7.wsbg4)
|
|
wsBG4.item(n).setSelected();
|
|
}
|
|
wsBG4.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsbg4 = wsBG4.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Wsbg4", settings.emulator.hack.ppu.mode7.wsbg4);
|
|
});
|
|
wsObjLabel.setText("Sprites:");
|
|
wsObj.append(ComboButtonItem().setText("safe"));
|
|
wsObj.append(ComboButtonItem().setText("unsafe"));
|
|
wsObj.append(ComboButtonItem().setText("disable"));
|
|
wsObj.append(ComboButtonItem().setText("clip"));
|
|
for(uint n = 0; n <= 3; n++) {
|
|
if(wsObj.item(n).offset() == settings.emulator.hack.ppu.mode7.wsobj)
|
|
wsObj.item(n).setSelected();
|
|
}
|
|
wsObj.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsobj = wsObj.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Wsobj", settings.emulator.hack.ppu.mode7.wsobj);
|
|
});
|
|
igwinLabel.setText("Ignore window:");
|
|
igwin.append(ComboButtonItem().setText("none"));
|
|
igwin.append(ComboButtonItem().setText("outside"));
|
|
igwin.append(ComboButtonItem().setText("outside&always"));
|
|
igwin.append(ComboButtonItem().setText("all"));
|
|
for(uint n = 0; n < 4; n++) {
|
|
if(igwin.item(n).offset() == settings.emulator.hack.ppu.mode7.igwin)
|
|
igwin.item(n).setSelected();
|
|
}
|
|
igwin.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.igwin = igwin.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/Igwin", settings.emulator.hack.ppu.mode7.igwin);
|
|
});
|
|
igwinxLabel.setText("IW fallback x-coordinate:");
|
|
igwinx.append(ComboButtonItem().setText(" 40"));//.setProperty("col", 40));
|
|
igwinx.append(ComboButtonItem().setText(" 88"));//.setProperty("col", 88));
|
|
igwinx.append(ComboButtonItem().setText("128"));//.setProperty("col", 128));
|
|
igwinx.append(ComboButtonItem().setText("168"));//.setProperty("col", 168));
|
|
igwinx.append(ComboButtonItem().setText("216"));//.setProperty("col", 216));
|
|
/*for(uint n = 0; n < 5; n++) {
|
|
if(igwinx.item(n).property("col").natural() == settings.emulator.hack.ppu.mode7.igwinx)
|
|
igwinx.item(n).setSelected();
|
|
}*/
|
|
if (40 == settings.emulator.hack.ppu.mode7.igwinx) {
|
|
igwinx.item(0).setSelected();
|
|
} else if (88 == settings.emulator.hack.ppu.mode7.igwinx) {
|
|
igwinx.item(1).setSelected();
|
|
} else if (128 == settings.emulator.hack.ppu.mode7.igwinx) {
|
|
igwinx.item(2).setSelected();
|
|
} else if (168 == settings.emulator.hack.ppu.mode7.igwinx) {
|
|
igwinx.item(3).setSelected();
|
|
} else if (216 == settings.emulator.hack.ppu.mode7.igwinx) {
|
|
igwinx.item(4).setSelected();
|
|
}
|
|
igwinx.onChange([&] {
|
|
//settings.emulator.hack.ppu.mode7.igwinx = igwinx.selected().offset();
|
|
if (0 == mode7Widescreen.selected().offset()) {
|
|
settings.emulator.hack.ppu.mode7.igwinx = 40;
|
|
} else if (1 == igwinx.selected().offset()) {
|
|
settings.emulator.hack.ppu.mode7.igwinx = 88;
|
|
} else if (2 == igwinx.selected().offset()) {
|
|
settings.emulator.hack.ppu.mode7.igwinx = 128;
|
|
} else if (3 == igwinx.selected().offset()) {
|
|
settings.emulator.hack.ppu.mode7.igwinx = 168;
|
|
} else if (4 == igwinx.selected().offset()) {
|
|
settings.emulator.hack.ppu.mode7.igwinx = 216;
|
|
}
|
|
emulator->configure("Hacks/PPU/Mode7/Igwinx", settings.emulator.hack.ppu.mode7.igwinx);
|
|
});
|
|
|
|
wsBgColLabel.setText("WS bg:");
|
|
wsBgCol.append(ComboButtonItem().setText("color"));
|
|
wsBgCol.append(ComboButtonItem().setText("auto"));
|
|
wsBgCol.append(ComboButtonItem().setText("black"));
|
|
for(uint n = 0; n <= 2; n++) {
|
|
if(wsBgCol.item(n).offset() == settings.emulator.hack.ppu.mode7.wsBgCol)
|
|
wsBgCol.item(n).setSelected();
|
|
}
|
|
wsBgCol.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsBgCol = wsBgCol.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/WsBgCol", settings.emulator.hack.ppu.mode7.wsBgCol);
|
|
});
|
|
|
|
wsModeLabel.setText("Widescreen:");
|
|
wsMode.append(ComboButtonItem().setText("none"));
|
|
wsMode.append(ComboButtonItem().setText("Mode 7"));
|
|
wsMode.append(ComboButtonItem().setText("all"));
|
|
for(uint n = 0; n < 3; n++) {
|
|
if(wsMode.item(n).offset() == settings.emulator.hack.ppu.mode7.wsMode)
|
|
wsMode.item(n).setSelected();
|
|
}
|
|
wsMode.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsMode = wsMode.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/WsMode", settings.emulator.hack.ppu.mode7.wsMode);
|
|
//presentation.resizeViewport();
|
|
});
|
|
|
|
|
|
wsMarkerLabel.setText("WS marker:");
|
|
wsMarker.append(ComboButtonItem().setText("none"));
|
|
wsMarker.append(ComboButtonItem().setText("lines"));
|
|
wsMarker.append(ComboButtonItem().setText("darken"));
|
|
for(uint n = 0; n <= 2; n++) {
|
|
if(wsMarker.item(n).offset() == settings.emulator.hack.ppu.mode7.wsMarker)
|
|
wsMarker.item(n).setSelected();
|
|
}
|
|
wsMarker.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsMarker = wsMarker.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/WsMarker", settings.emulator.hack.ppu.mode7.wsMarker);
|
|
});
|
|
|
|
|
|
wsMarkerAlphaLabel.setText("WSM alpha:");
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/1" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/2" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/3" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/4" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/5" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/6" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/7" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/8" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/9" ));
|
|
wsMarkerAlpha.append(ComboButtonItem().setText("1/10"));
|
|
for(uint n = 0; n < 10; n++) {
|
|
if(wsMarkerAlpha.item(n).offset() + 1 == settings.emulator.hack.ppu.mode7.wsMarkerAlpha)
|
|
wsMarkerAlpha.item(n).setSelected();
|
|
}
|
|
wsMarkerAlpha.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.wsMarkerAlpha = wsMarkerAlpha.selected().offset() + 1;
|
|
emulator->configure("Hacks/PPU/Mode7/WsMarkerAlpha", settings.emulator.hack.ppu.mode7.wsMarkerAlpha);
|
|
});
|
|
|
|
|
|
bgGradLabel.setText("Line color HD:");
|
|
bgGrad.append(ComboButtonItem().setText("0"));
|
|
bgGrad.append(ComboButtonItem().setText("1"));
|
|
bgGrad.append(ComboButtonItem().setText("2"));
|
|
bgGrad.append(ComboButtonItem().setText("3"));
|
|
bgGrad.append(ComboButtonItem().setText("4"));
|
|
bgGrad.append(ComboButtonItem().setText("5"));
|
|
bgGrad.append(ComboButtonItem().setText("6"));
|
|
bgGrad.append(ComboButtonItem().setText("7"));
|
|
bgGrad.append(ComboButtonItem().setText("8"));
|
|
for(uint n = 0; n <= 8; n++) {
|
|
if(bgGrad.item(n).offset() == settings.emulator.hack.ppu.mode7.bgGrad)
|
|
bgGrad.item(n).setSelected();
|
|
}
|
|
bgGrad.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.bgGrad = bgGrad.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/BgGrad", settings.emulator.hack.ppu.mode7.bgGrad);
|
|
});
|
|
|
|
windRadLabel.setText("Window HD:");
|
|
windRad.append(ComboButtonItem().setText("0"));
|
|
windRad.append(ComboButtonItem().setText("1"));
|
|
windRad.append(ComboButtonItem().setText("2"));
|
|
windRad.append(ComboButtonItem().setText("3"));
|
|
windRad.append(ComboButtonItem().setText("4"));
|
|
windRad.append(ComboButtonItem().setText("5"));
|
|
windRad.append(ComboButtonItem().setText("6"));
|
|
windRad.append(ComboButtonItem().setText("7"));
|
|
windRad.append(ComboButtonItem().setText("8"));
|
|
for(uint n = 0; n <= 8; n++) {
|
|
if(windRad.item(n).offset() == settings.emulator.hack.ppu.mode7.windRad)
|
|
windRad.item(n).setSelected();
|
|
}
|
|
windRad.onChange([&] {
|
|
settings.emulator.hack.ppu.mode7.windRad = windRad.selected().offset();
|
|
emulator->configure("Hacks/PPU/Mode7/WindRad", settings.emulator.hack.ppu.mode7.windRad);
|
|
});
|
|
|
|
|
|
dspLabel.setText("DSP (audio)").setFont(Font().setBold());
|
|
fastDSP.setText("Fast mode").setChecked(settings.emulator.hack.dsp.fast).onToggle([&] {
|
|
settings.emulator.hack.dsp.fast = fastDSP.checked();
|
|
emulator->configure("Hacks/DSP/Fast", settings.emulator.hack.dsp.fast);
|
|
});
|
|
cubicInterpolation.setText("Cubic interpolation").setChecked(settings.emulator.hack.dsp.cubic).onToggle([&] {
|
|
settings.emulator.hack.dsp.cubic = cubicInterpolation.checked();
|
|
emulator->configure("Hacks/DSP/Cubic", settings.emulator.hack.dsp.cubic);
|
|
});
|
|
|
|
coprocessorLabel.setText("Coprocessors").setFont(Font().setBold());
|
|
coprocessorDelayedSyncOption.setText("Fast mode").setChecked(settings.emulator.hack.coprocessor.delayedSync).onToggle([&] {
|
|
settings.emulator.hack.coprocessor.delayedSync = coprocessorDelayedSyncOption.checked();
|
|
});
|
|
coprocessorPreferHLEOption.setText("Prefer HLE").setChecked(settings.emulator.hack.coprocessor.preferHLE).setToolTip(
|
|
"When checked, less accurate HLE emulation will always be used when available.\n"
|
|
"When unchecked, HLE will only be used when LLE firmware is missing."
|
|
).onToggle([&] {
|
|
settings.emulator.hack.coprocessor.preferHLE = coprocessorPreferHLEOption.checked();
|
|
});
|
|
|
|
gameLabel.setText("Game Enhancements").setFont(Font().setBold());
|
|
hotfixes.setText("Hotfixes").setToolTip({
|
|
"Even commercially licensed and officially released software sometimes shipped with bugs.\n"
|
|
"This option will correct certain issues that occurred even on real hardware."
|
|
}).setChecked(settings.emulator.hack.hotfixes).onToggle([&] {
|
|
settings.emulator.hack.hotfixes = hotfixes.checked();
|
|
});
|
|
|
|
note.setText("Note: some settings do not take effect until after reloading games.");
|
|
}
|