2018-05-19 02:51:34 +00:00
|
|
|
struct Settings : Markup::Node {
|
|
|
|
Settings();
|
|
|
|
auto save() -> void;
|
|
|
|
};
|
|
|
|
|
2018-06-10 08:07:19 +00:00
|
|
|
struct VideoSettings : TabFrameItem {
|
|
|
|
VideoSettings(TabFrame*);
|
2018-06-27 01:56:27 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
VerticalLayout layout{this};
|
|
|
|
Label colorAdjustmentLabel{&layout, Size{~0, 0}, 2};
|
|
|
|
HorizontalLayout luminanceLayout{&layout, Size{~0, 0}};
|
|
|
|
Label luminanceLabel{&luminanceLayout, Size{65, 0}};
|
|
|
|
Label luminanceValue{&luminanceLayout, Size{50, 0}};
|
|
|
|
HorizontalSlider luminanceSlider{&luminanceLayout, Size{~0, 0}};
|
|
|
|
HorizontalLayout saturationLayout{&layout, Size{~0, 0}};
|
|
|
|
Label saturationLabel{&saturationLayout, Size{65, 0}};
|
|
|
|
Label saturationValue{&saturationLayout, Size{50, 0}};
|
|
|
|
HorizontalSlider saturationSlider{&saturationLayout, Size{~0, 0}};
|
|
|
|
HorizontalLayout gammaLayout{&layout, Size{~0, 0}};
|
|
|
|
Label gammaLabel{&gammaLayout, Size{65, 0}};
|
|
|
|
Label gammaValue{&gammaLayout, Size{50, 0}};
|
|
|
|
HorizontalSlider gammaSlider{&gammaLayout, Size{~0, 0}};
|
|
|
|
Label fullscreenLabel{&layout, Size{~0, 0}, 2};
|
|
|
|
CheckLabel exclusiveMode{&layout, Size{~0, 0}};
|
2018-06-10 08:07:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct AudioSettings : TabFrameItem {
|
|
|
|
AudioSettings(TabFrame*);
|
2018-06-27 01:56:27 +00:00
|
|
|
auto updateDevice() -> void;
|
|
|
|
auto updateFrequency() -> void;
|
|
|
|
auto updateLatency() -> void;
|
|
|
|
|
|
|
|
public:
|
|
|
|
VerticalLayout layout{this};
|
|
|
|
Label driverLabel{&layout, Size{~0, 0}, 2};
|
|
|
|
HorizontalLayout driverLayout{&layout, Size{~0, 0}};
|
|
|
|
Label deviceLabel{&driverLayout, Size{0, 0}};
|
|
|
|
ComboButton deviceList{&driverLayout, Size{~0, 0}};
|
|
|
|
Label frequencyLabel{&driverLayout, Size{0, 0}};
|
|
|
|
ComboButton frequencyList{&driverLayout, Size{80, 0}};
|
|
|
|
Label latencyLabel{&driverLayout, Size{0, 0}};
|
|
|
|
ComboButton latencyList{&driverLayout, Size{80, 0}};
|
|
|
|
CheckLabel exclusiveMode{&layout, Size{~0, 0}};
|
|
|
|
Label effectsLabel{&layout, Size{~0, 0}, 2};
|
|
|
|
HorizontalLayout skewLayout{&layout, Size{~0, 0}};
|
|
|
|
Label skewLabel{&skewLayout, Size{65, 0}};
|
|
|
|
Label skewValue{&skewLayout, Size{50, 0}};
|
|
|
|
HorizontalSlider skewSlider{&skewLayout, Size{~0, 0}};
|
|
|
|
HorizontalLayout volumeLayout{&layout, Size{~0, 0}};
|
|
|
|
Label volumeLabel{&volumeLayout, Size{65, 0}};
|
|
|
|
Label volumeValue{&volumeLayout, Size{50, 0}};
|
|
|
|
HorizontalSlider volumeSlider{&volumeLayout, Size{~0, 0}};
|
|
|
|
HorizontalLayout balanceLayout{&layout, Size{~0, 0}};
|
|
|
|
Label balanceLabel{&balanceLayout, Size{65, 0}};
|
|
|
|
Label balanceValue{&balanceLayout, Size{50, 0}};
|
|
|
|
HorizontalSlider balanceSlider{&balanceLayout, Size{~0, 0}};
|
|
|
|
CheckLabel reverb{&layout, Size{~0, 0}};
|
2018-06-10 08:07:19 +00:00
|
|
|
};
|
|
|
|
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
struct InputSettings : TabFrameItem {
|
|
|
|
InputSettings(TabFrame*);
|
|
|
|
auto updateControls() -> void;
|
|
|
|
auto activePort() -> InputPort&;
|
|
|
|
auto activeDevice() -> InputDevice&;
|
|
|
|
auto reloadPorts() -> void;
|
|
|
|
auto reloadDevices() -> void;
|
|
|
|
auto reloadMappings() -> void;
|
|
|
|
auto refreshMappings() -> void;
|
|
|
|
auto assignMapping() -> void;
|
|
|
|
auto assignMouseInput(uint id) -> void;
|
|
|
|
auto inputEvent(shared_pointer<HID::Device> device, uint group, uint input, int16 oldValue, int16 newValue, bool allowMouseInput = false) -> void;
|
|
|
|
|
|
|
|
public:
|
|
|
|
maybe<InputMapping&> activeMapping;
|
|
|
|
Timer timer;
|
|
|
|
|
|
|
|
VerticalLayout layout{this};
|
|
|
|
HorizontalLayout defocusLayout{&layout, Size{~0, 0}};
|
|
|
|
Label defocusLabel{&defocusLayout, Size{0, 0}};
|
|
|
|
RadioLabel pauseEmulation{&defocusLayout, Size{0, 0}};
|
|
|
|
RadioLabel blockInput{&defocusLayout, Size{0, 0}};
|
|
|
|
RadioLabel allowInput{&defocusLayout, Size{0, 0}};
|
|
|
|
Group defocusGroup{&pauseEmulation, &blockInput, &allowInput};
|
|
|
|
HorizontalLayout selectionLayout{&layout, Size{~0, 0}};
|
|
|
|
Label portLabel{&selectionLayout, Size{0, 0}};
|
|
|
|
ComboButton portList{&selectionLayout, Size{~0, 0}};
|
|
|
|
Label deviceLabel{&selectionLayout, Size{0, 0}};
|
|
|
|
ComboButton deviceList{&selectionLayout, Size{~0, 0}};
|
|
|
|
TableView mappingList{&layout, Size{~0, ~0}};
|
|
|
|
HorizontalLayout controlLayout{&layout, Size{~0, 0}};
|
|
|
|
Button assignMouse1{&controlLayout, Size{100, 0}};
|
|
|
|
Button assignMouse2{&controlLayout, Size{100, 0}};
|
|
|
|
Button assignMouse3{&controlLayout, Size{100, 0}};
|
|
|
|
Widget controlSpacer{&controlLayout, Size{~0, 0}};
|
Update to v106r37 release.
byuu says:
Changelog:
- bsnes: cheat code “enabled” option changed to “enable”
- bsnes: connected “Cancel” action on add/edit cheat code window
- hiro: improved BrowserDialog::selectFolder() behavior
- can choose “Select” inside of a target folder when no items are
selected
- bsnes: implemented state manager
- bsnes: save a recovery state before loading a state, quitting, or
changing drivers
- bsnes: input settings, hotkey settings, cheat editor, state manager
entries are now batchable
- this allows bulk clearing/deleting of entries
- bsnes: cheat code list now auto-sorts alphabetically instead of
using up/down move arrows
I know most people will probably prefer to order cheat codes the way
they want, but the issue is that the state manager can't really work
this way. Each state is a file on disk. So yes, we could store a
states-manifest.bml to track the order of the states, or try to insert
numbers into the filenames and do bulk filesystem rename operations on
sorting, but then we would run into oddities when users delete state
files manually. And really, manual sorting is just clumsy. If you really
want a specific ordering, you can prefix cheats/states with numeric
indices instead.
2018-06-07 11:48:41 +00:00
|
|
|
Button assignButton{&controlLayout, Size{80, 0}};
|
|
|
|
Button clearButton{&controlLayout, Size{80, 0}};
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct HotkeySettings : TabFrameItem {
|
|
|
|
HotkeySettings(TabFrame*);
|
|
|
|
auto reloadMappings() -> void;
|
|
|
|
auto refreshMappings() -> void;
|
|
|
|
auto assignMapping() -> void;
|
|
|
|
auto inputEvent(shared_pointer<HID::Device> device, uint group, uint input, int16 oldValue, int16 newValue) -> void;
|
|
|
|
|
|
|
|
public:
|
|
|
|
maybe<InputMapping&> activeMapping;
|
|
|
|
Timer timer;
|
|
|
|
|
|
|
|
VerticalLayout layout{this};
|
|
|
|
TableView mappingList{&layout, Size{~0, ~0}};
|
|
|
|
HorizontalLayout controlLayout{&layout, Size{~0, 0}};
|
|
|
|
Widget controlSpacer{&controlLayout, Size{~0, 0}};
|
Update to v106r37 release.
byuu says:
Changelog:
- bsnes: cheat code “enabled” option changed to “enable”
- bsnes: connected “Cancel” action on add/edit cheat code window
- hiro: improved BrowserDialog::selectFolder() behavior
- can choose “Select” inside of a target folder when no items are
selected
- bsnes: implemented state manager
- bsnes: save a recovery state before loading a state, quitting, or
changing drivers
- bsnes: input settings, hotkey settings, cheat editor, state manager
entries are now batchable
- this allows bulk clearing/deleting of entries
- bsnes: cheat code list now auto-sorts alphabetically instead of
using up/down move arrows
I know most people will probably prefer to order cheat codes the way
they want, but the issue is that the state manager can't really work
this way. Each state is a file on disk. So yes, we could store a
states-manifest.bml to track the order of the states, or try to insert
numbers into the filenames and do bulk filesystem rename operations on
sorting, but then we would run into oddities when users delete state
files manually. And really, manual sorting is just clumsy. If you really
want a specific ordering, you can prefix cheats/states with numeric
indices instead.
2018-06-07 11:48:41 +00:00
|
|
|
Button assignButton{&controlLayout, Size{80, 0}};
|
|
|
|
Button clearButton{&controlLayout, Size{80, 0}};
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct PathSettings : TabFrameItem {
|
|
|
|
PathSettings(TabFrame*);
|
|
|
|
auto refreshPaths() -> void;
|
|
|
|
|
|
|
|
public:
|
|
|
|
VerticalLayout layout{this};
|
|
|
|
HorizontalLayout gamesLayout{&layout, Size{~0, 0}};
|
|
|
|
Label gamesLabel{&gamesLayout, Size{55, 0}};
|
|
|
|
LineEdit gamesPath{&gamesLayout, Size{~0, 0}};
|
|
|
|
Button gamesAssign{&gamesLayout, Size{80, 0}};
|
|
|
|
Button gamesReset{&gamesLayout, Size{80, 0}};
|
|
|
|
HorizontalLayout patchesLayout{&layout, Size{~0, 0}};
|
|
|
|
Label patchesLabel{&patchesLayout, Size{55, 0}};
|
|
|
|
LineEdit patchesPath{&patchesLayout, Size{~0, 0}};
|
|
|
|
Button patchesAssign{&patchesLayout, Size{80, 0}};
|
|
|
|
Button patchesReset{&patchesLayout, Size{80, 0}};
|
|
|
|
HorizontalLayout savesLayout{&layout, Size{~0, 0}};
|
|
|
|
Label savesLabel{&savesLayout, Size{55, 0}};
|
|
|
|
LineEdit savesPath{&savesLayout, Size{~0, 0}};
|
|
|
|
Button savesAssign{&savesLayout, Size{80, 0}};
|
|
|
|
Button savesReset{&savesLayout, Size{80, 0}};
|
|
|
|
HorizontalLayout cheatsLayout{&layout, Size{~0, 0}};
|
|
|
|
Label cheatsLabel{&cheatsLayout, Size{55, 0}};
|
|
|
|
LineEdit cheatsPath{&cheatsLayout, Size{~0, 0}};
|
|
|
|
Button cheatsAssign{&cheatsLayout, Size{80, 0}};
|
|
|
|
Button cheatsReset{&cheatsLayout, Size{80, 0}};
|
2018-06-11 04:50:18 +00:00
|
|
|
HorizontalLayout statesLayout{&layout, Size{~0, 0}};
|
|
|
|
Label statesLabel{&statesLayout, Size{55, 0}};
|
|
|
|
LineEdit statesPath{&statesLayout, Size{~0, 0}};
|
|
|
|
Button statesAssign{&statesLayout, Size{80, 0}};
|
|
|
|
Button statesReset{&statesLayout, Size{80, 0}};
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
};
|
|
|
|
|
Update to v106r27 release.
byuu says:
Changelog:
- nall: merged Path::config() and Path::local() to Path::userData()
- ~/.local/share or %appdata or ~/Library/ApplicationSupport
- higan, bsnes: render main window icon onto viewport instead of
canvas
- should hopefully fix a brief flickering glitch that appears on
Windows
- icarus: improved Super Famicom heuristics for Starfox / Starwing RAM
- ruby/Direct3D: handle viewport size changes in lock() instead of
output()
- fixes icon disappearing when resizing main window
- hiro/Windows: remove WS_DISABLED from StatusBar to fix window
resize grip
- this is experimental: I initially used WS_DISABLED to work
around a focus bug
- yet trying things now, said bug seems(?) to have gone away at
some point ...
- bsnes: added advanced settings panel with real-time driver change
support
I'd like feedback on the real-time driver change, for possible
consideration into adding this to higan as well.
Some drivers just crash, it's a fact of life. The ASIO driver in
particular likes to crash inside the driver itself, without any error
messages ever returned to try and catch.
When you try to change a driver with a game loaded, it gives you a scary
warning, asking if you want to proceed.
When you change a driver, it sets a crash flag, and if the driver
crashes while initializing, then restarting bsnes will disable the
errant driver. If it fails in a recoverable way, then it sets the driver
to “None” and warns you that the driver cannot be used.
What I'm thinking of further adding is to call emulator→save() to
write out the save RAM contents beforehand (although the periodic
auto-saving RAM will handle this anyway when it's enabled), and possibly
it might be wise to capture an emulator save state, although those can't
be taken without advancing the emulator to the next frame, so that might
not be a good idea.
I'm also thinking we should show some kind of message somewhere when a
driver is set to “None”. The status bar can be hidden, so perhaps on the
title bar? Or maybe just a warning on startup that a driver is set to
“None”.
2018-05-25 08:02:38 +00:00
|
|
|
struct AdvancedSettings : TabFrameItem {
|
|
|
|
AdvancedSettings(TabFrame*);
|
2018-06-27 01:56:27 +00:00
|
|
|
auto updateVideoDriver() -> void;
|
|
|
|
auto updateAudioDriver() -> void;
|
|
|
|
auto updateInputDriver() -> void;
|
Update to v106r27 release.
byuu says:
Changelog:
- nall: merged Path::config() and Path::local() to Path::userData()
- ~/.local/share or %appdata or ~/Library/ApplicationSupport
- higan, bsnes: render main window icon onto viewport instead of
canvas
- should hopefully fix a brief flickering glitch that appears on
Windows
- icarus: improved Super Famicom heuristics for Starfox / Starwing RAM
- ruby/Direct3D: handle viewport size changes in lock() instead of
output()
- fixes icon disappearing when resizing main window
- hiro/Windows: remove WS_DISABLED from StatusBar to fix window
resize grip
- this is experimental: I initially used WS_DISABLED to work
around a focus bug
- yet trying things now, said bug seems(?) to have gone away at
some point ...
- bsnes: added advanced settings panel with real-time driver change
support
I'd like feedback on the real-time driver change, for possible
consideration into adding this to higan as well.
Some drivers just crash, it's a fact of life. The ASIO driver in
particular likes to crash inside the driver itself, without any error
messages ever returned to try and catch.
When you try to change a driver with a game loaded, it gives you a scary
warning, asking if you want to proceed.
When you change a driver, it sets a crash flag, and if the driver
crashes while initializing, then restarting bsnes will disable the
errant driver. If it fails in a recoverable way, then it sets the driver
to “None” and warns you that the driver cannot be used.
What I'm thinking of further adding is to call emulator→save() to
write out the save RAM contents beforehand (although the periodic
auto-saving RAM will handle this anyway when it's enabled), and possibly
it might be wise to capture an emulator save state, although those can't
be taken without advancing the emulator to the next frame, so that might
not be a good idea.
I'm also thinking we should show some kind of message somewhere when a
driver is set to “None”. The status bar can be hidden, so perhaps on the
title bar? Or maybe just a warning on startup that a driver is set to
“None”.
2018-05-25 08:02:38 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
VerticalLayout layout{this};
|
2018-06-10 08:07:19 +00:00
|
|
|
Label driversLabel{&layout, Size{~0, 0}, 2};
|
|
|
|
HorizontalLayout driverLayout{&layout, Size{~0, 0}};
|
|
|
|
Label videoDriverLabel{&driverLayout, Size{0, 0}};
|
|
|
|
ComboButton videoDriverOption{&driverLayout, Size{~0, 0}};
|
|
|
|
Label audioDriverLabel{&driverLayout, Size{0, 0}};
|
|
|
|
ComboButton audioDriverOption{&driverLayout, Size{~0, 0}};
|
|
|
|
Label inputDriverLabel{&driverLayout, Size{0, 0}};
|
|
|
|
ComboButton inputDriverOption{&driverLayout, Size{~0, 0}};
|
Update to v106r42 release.
byuu says:
Changelog:
- emulator: added `Thread::setHandle(cothread_t)`
- icarus: added special heuristics support for the Tengai Maykou Zero
fan translation
- board identifier is: EXSPC7110-RAM-EPSONRTC (match on SPC7110 +
ROM size=56mbit)
- board ROM contents are: 8mbit program, 40mbit data, 8mbit
expansion (sizes are fixed)
- bsnes: show messages on game load, unload, and reset
- bsnes: added support for BS Memory and Sufami Turbo games
- bsnes: added support for region selection (Auto [default], NTSC,
PAL)
- bsnes: correct presentation window size from 223/239 to 224/240
- bsnes: add SA-1 internal RAM on cartridges with BS Memory slot
- bsnes: fixed recovery state to store inside .bsz archive
- bsnes: added support for custom manifests in both game pak and game
ROM modes
- bsnes: added icarus game database support (manifest → database →
heuristics)
- bsnes: added flexible SuperFX overclocking
- bsnes: added IPS and BPS soft-patching support to all ROM types
(sfc,smc,gb,gbc,bs,st)
- can load patches inside of ZIP archives (matches first “.ips” or
“.bps” file)
- bsnes/ppu: cache interlace/overscan/vdisp (277 → 291fps with fast
PPU)
- hiro/Windows: faster painting of Label widget on expose
- hiro/Windows: immediately apply LineEdit::setBackgroundColor changes
- hiro/Qt: inherit Window backgroundColor when one is not assigned to
Label
Errata:
- sfc/ppu-fast: remove `renderMode7Hires()` function (the body isn't in
the codebase)
- bsnes: advanced note label should probably use a lighter text color
and/or smaller font size instead of italics
I didn't test the soft-patching at all, as I don't have any patches on
my dev box. If anyone wants to test, that'd be great. The Tengai Makyou
Zero fan translation would be a great test case.
2018-06-26 03:17:26 +00:00
|
|
|
Label hacksLabel{&layout, Size{~0, 0}, 2};
|
2018-06-11 04:50:18 +00:00
|
|
|
CheckLabel fastPPUOption{&layout, Size{~0, 0}};
|
|
|
|
CheckLabel fastDSPOption{&layout, Size{~0, 0}};
|
Update to v106r42 release.
byuu says:
Changelog:
- emulator: added `Thread::setHandle(cothread_t)`
- icarus: added special heuristics support for the Tengai Maykou Zero
fan translation
- board identifier is: EXSPC7110-RAM-EPSONRTC (match on SPC7110 +
ROM size=56mbit)
- board ROM contents are: 8mbit program, 40mbit data, 8mbit
expansion (sizes are fixed)
- bsnes: show messages on game load, unload, and reset
- bsnes: added support for BS Memory and Sufami Turbo games
- bsnes: added support for region selection (Auto [default], NTSC,
PAL)
- bsnes: correct presentation window size from 223/239 to 224/240
- bsnes: add SA-1 internal RAM on cartridges with BS Memory slot
- bsnes: fixed recovery state to store inside .bsz archive
- bsnes: added support for custom manifests in both game pak and game
ROM modes
- bsnes: added icarus game database support (manifest → database →
heuristics)
- bsnes: added flexible SuperFX overclocking
- bsnes: added IPS and BPS soft-patching support to all ROM types
(sfc,smc,gb,gbc,bs,st)
- can load patches inside of ZIP archives (matches first “.ips” or
“.bps” file)
- bsnes/ppu: cache interlace/overscan/vdisp (277 → 291fps with fast
PPU)
- hiro/Windows: faster painting of Label widget on expose
- hiro/Windows: immediately apply LineEdit::setBackgroundColor changes
- hiro/Qt: inherit Window backgroundColor when one is not assigned to
Label
Errata:
- sfc/ppu-fast: remove `renderMode7Hires()` function (the body isn't in
the codebase)
- bsnes: advanced note label should probably use a lighter text color
and/or smaller font size instead of italics
I didn't test the soft-patching at all, as I don't have any patches on
my dev box. If anyone wants to test, that'd be great. The Tengai Makyou
Zero fan translation would be a great test case.
2018-06-26 03:17:26 +00:00
|
|
|
HorizontalLayout superFXLayout{&layout, Size{~0, 0}};
|
|
|
|
Label superFXLabel{&superFXLayout, Size{0, 0}};
|
|
|
|
Label superFXValue{&superFXLayout, Size{50, 0}};
|
|
|
|
HorizontalSlider superFXClock{&superFXLayout, Size{~0, 0}};
|
|
|
|
Label hacksNote{&layout, Size{~0, 0}};
|
Update to v106r27 release.
byuu says:
Changelog:
- nall: merged Path::config() and Path::local() to Path::userData()
- ~/.local/share or %appdata or ~/Library/ApplicationSupport
- higan, bsnes: render main window icon onto viewport instead of
canvas
- should hopefully fix a brief flickering glitch that appears on
Windows
- icarus: improved Super Famicom heuristics for Starfox / Starwing RAM
- ruby/Direct3D: handle viewport size changes in lock() instead of
output()
- fixes icon disappearing when resizing main window
- hiro/Windows: remove WS_DISABLED from StatusBar to fix window
resize grip
- this is experimental: I initially used WS_DISABLED to work
around a focus bug
- yet trying things now, said bug seems(?) to have gone away at
some point ...
- bsnes: added advanced settings panel with real-time driver change
support
I'd like feedback on the real-time driver change, for possible
consideration into adding this to higan as well.
Some drivers just crash, it's a fact of life. The ASIO driver in
particular likes to crash inside the driver itself, without any error
messages ever returned to try and catch.
When you try to change a driver with a game loaded, it gives you a scary
warning, asking if you want to proceed.
When you change a driver, it sets a crash flag, and if the driver
crashes while initializing, then restarting bsnes will disable the
errant driver. If it fails in a recoverable way, then it sets the driver
to “None” and warns you that the driver cannot be used.
What I'm thinking of further adding is to call emulator→save() to
write out the save RAM contents beforehand (although the periodic
auto-saving RAM will handle this anyway when it's enabled), and possibly
it might be wise to capture an emulator save state, although those can't
be taken without advancing the emulator to the next frame, so that might
not be a good idea.
I'm also thinking we should show some kind of message somewhere when a
driver is set to “None”. The status bar can be hidden, so perhaps on the
title bar? Or maybe just a warning on startup that a driver is set to
“None”.
2018-05-25 08:02:38 +00:00
|
|
|
};
|
|
|
|
|
2018-05-19 02:51:34 +00:00
|
|
|
struct SettingsWindow : Window {
|
|
|
|
SettingsWindow();
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
auto setVisible(bool visible = true) -> SettingsWindow&;
|
|
|
|
auto show(uint index) -> void;
|
2018-05-19 02:51:34 +00:00
|
|
|
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
public:
|
2018-05-19 02:51:34 +00:00
|
|
|
VerticalLayout layout{this};
|
|
|
|
TabFrame panel{&layout, Size{~0, ~0}};
|
2018-06-10 08:07:19 +00:00
|
|
|
VideoSettings video{&panel};
|
|
|
|
AudioSettings audio{&panel};
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
InputSettings input{&panel};
|
|
|
|
HotkeySettings hotkeys{&panel};
|
|
|
|
PathSettings paths{&panel};
|
Update to v106r27 release.
byuu says:
Changelog:
- nall: merged Path::config() and Path::local() to Path::userData()
- ~/.local/share or %appdata or ~/Library/ApplicationSupport
- higan, bsnes: render main window icon onto viewport instead of
canvas
- should hopefully fix a brief flickering glitch that appears on
Windows
- icarus: improved Super Famicom heuristics for Starfox / Starwing RAM
- ruby/Direct3D: handle viewport size changes in lock() instead of
output()
- fixes icon disappearing when resizing main window
- hiro/Windows: remove WS_DISABLED from StatusBar to fix window
resize grip
- this is experimental: I initially used WS_DISABLED to work
around a focus bug
- yet trying things now, said bug seems(?) to have gone away at
some point ...
- bsnes: added advanced settings panel with real-time driver change
support
I'd like feedback on the real-time driver change, for possible
consideration into adding this to higan as well.
Some drivers just crash, it's a fact of life. The ASIO driver in
particular likes to crash inside the driver itself, without any error
messages ever returned to try and catch.
When you try to change a driver with a game loaded, it gives you a scary
warning, asking if you want to proceed.
When you change a driver, it sets a crash flag, and if the driver
crashes while initializing, then restarting bsnes will disable the
errant driver. If it fails in a recoverable way, then it sets the driver
to “None” and warns you that the driver cannot be used.
What I'm thinking of further adding is to call emulator→save() to
write out the save RAM contents beforehand (although the periodic
auto-saving RAM will handle this anyway when it's enabled), and possibly
it might be wise to capture an emulator save state, although those can't
be taken without advancing the emulator to the next frame, so that might
not be a good idea.
I'm also thinking we should show some kind of message somewhere when a
driver is set to “None”. The status bar can be hidden, so perhaps on the
title bar? Or maybe just a warning on startup that a driver is set to
“None”.
2018-05-25 08:02:38 +00:00
|
|
|
AdvancedSettings advanced{&panel};
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
StatusBar statusBar{this};
|
2018-05-19 02:51:34 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
extern Settings settings;
|
|
|
|
extern unique_pointer<SettingsWindow> settingsWindow;
|