2018-05-19 02:51:34 +00:00
|
|
|
struct Settings : Markup::Node {
|
|
|
|
Settings();
|
|
|
|
auto save() -> void;
|
|
|
|
};
|
|
|
|
|
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}};
|
|
|
|
Button resetButton{&controlLayout, Size{80, 0}};
|
|
|
|
Button eraseButton{&controlLayout, Size{80, 0}};
|
|
|
|
};
|
|
|
|
|
|
|
|
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}};
|
|
|
|
Button resetButton{&controlLayout, Size{80, 0}};
|
|
|
|
Button eraseButton{&controlLayout, Size{80, 0}};
|
|
|
|
};
|
|
|
|
|
|
|
|
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 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}};
|
|
|
|
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-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}};
|
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};
|
|
|
|
StatusBar statusBar{this};
|
2018-05-19 02:51:34 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
extern Settings settings;
|
|
|
|
extern unique_pointer<SettingsWindow> settingsWindow;
|