Update to 20180731 release.
byuu says:
I've completed moving all the class objects from `unique_pointer<T>` to
just T. The one exception is the Emulator::Interface instance. I can
absolutely make that a global object, but only in bsnes where there's
just the one emulation core.
I also moved all the SettingsWindow and ToolsWindow panels out to their
own global objects, and fixed a very difficult bug with GTK TabFrame
controls.
The configuration settings panel is now the emulator settings panel. And
I added some spacing between bold label sections on both the emulator
and driver settings panels.
I gave fixing ComboButtonItem my best shot, given I can't reproduce the
crash. Probably won't work, though.
Also made a very slight consistency improvement to ruby and renamed
driverName() to driver().
...
An important change ... as a result of moving bsnes to global objects,
this means that the constructors for all windows run before the
presentation window is displayed. Before this change, only the
presentation window was constructed first berore displaying it, followed
by the construction of the rest of the GUI windows.
The upside to this is that as soon as you see the main window, the GUI
is ready to go without a period where it's unresponsive.
The downside to this is it takes about 1.5 seconds to show the main
window, compared to around 0.75 seconds before.
I've no intention of changing that back. So if the startup time becomes
a problem, then we'll just have to work on optimizing hiro, so that it
can construct all the global Window objects quicker. The main way to do
that would be to not do calls to the Layout::setGeometry functions for
every widget added, and instead wait until the window is displayed. But
I don't have an easy way to do that, because you want the widget
geometry values to be sane even before the window is visible to help
size certain things.
2018-07-31 10:56:45 +00:00
auto EmulatorSettings : : create ( ) - > void {
Update to 20180729 release.
byuu wrote:
Sigh ...
asio.hpp needs #include <nall/windows/registry.hpp>
[Since the last WIP, byuu also posted the following message. -Ed.]
ruby drivers have all been updated (but not tested outside of BSD), and
I redesigned the settings window. The driver functionality all exists on
a new "Drivers" panel, the emulator/hack settings go to a
"Configuration" panel, and the video/audio panels lose driver settings.
As does the settings menu and its synchronize options.
I want to start pushing toward a v107 release. Critically, I will need
DirectSound and ALSA to support dynamic rate control. I'd also like to
eliminate the other system manifest.bml files. I need to update the
cheat code database format, and bundle at least a few quark shaders --
although I still need to default to Direct3D on Windows.
Turbo keys would be nice, if it's not too much effort. Aside from
netplay, it's the last significant feature I'm missing.
I think for v107, higan is going to be a bit rough around the edges
compared to bsnes. And I don't think it's practical to finish the bsnes
localization support.
I'm thinking we probably want another WIP to iron out any critical
issues, but this time there should be a feature freeze with the next
WIP.
2018-07-29 13:24:38 +00:00
setIcon ( Icon : : Action : : Settings ) ;
Update to 20180731 release.
byuu says:
I've completed moving all the class objects from `unique_pointer<T>` to
just T. The one exception is the Emulator::Interface instance. I can
absolutely make that a global object, but only in bsnes where there's
just the one emulation core.
I also moved all the SettingsWindow and ToolsWindow panels out to their
own global objects, and fixed a very difficult bug with GTK TabFrame
controls.
The configuration settings panel is now the emulator settings panel. And
I added some spacing between bold label sections on both the emulator
and driver settings panels.
I gave fixing ComboButtonItem my best shot, given I can't reproduce the
crash. Probably won't work, though.
Also made a very slight consistency improvement to ruby and renamed
driverName() to driver().
...
An important change ... as a result of moving bsnes to global objects,
this means that the constructors for all windows run before the
presentation window is displayed. Before this change, only the
presentation window was constructed first berore displaying it, followed
by the construction of the rest of the GUI windows.
The upside to this is that as soon as you see the main window, the GUI
is ready to go without a period where it's unresponsive.
The downside to this is it takes about 1.5 seconds to show the main
window, compared to around 0.75 seconds before.
I've no intention of changing that back. So if the startup time becomes
a problem, then we'll just have to work on optimizing hiro, so that it
can construct all the global Window objects quicker. The main way to do
that would be to not do calls to the Layout::setGeometry functions for
every widget added, and instead wait until the window is displayed. But
I don't have an easy way to do that, because you want the widget
geometry values to be sane even before the window is visible to help
size certain things.
2018-07-31 10:56:45 +00:00
setText ( " Emulator " ) ;
Update to 20180729 release.
byuu wrote:
Sigh ...
asio.hpp needs #include <nall/windows/registry.hpp>
[Since the last WIP, byuu also posted the following message. -Ed.]
ruby drivers have all been updated (but not tested outside of BSD), and
I redesigned the settings window. The driver functionality all exists on
a new "Drivers" panel, the emulator/hack settings go to a
"Configuration" panel, and the video/audio panels lose driver settings.
As does the settings menu and its synchronize options.
I want to start pushing toward a v107 release. Critically, I will need
DirectSound and ALSA to support dynamic rate control. I'd also like to
eliminate the other system manifest.bml files. I need to update the
cheat code database format, and bundle at least a few quark shaders --
although I still need to default to Direct3D on Windows.
Turbo keys would be nice, if it's not too much effort. Aside from
netplay, it's the last significant feature I'm missing.
I think for v107, higan is going to be a bit rough around the edges
compared to bsnes. And I don't think it's practical to finish the bsnes
localization support.
I'm thinking we probably want another WIP to iron out any critical
issues, but this time there should be a feature freeze with the next
WIP.
2018-07-29 13:24:38 +00:00
layout . setPadding ( 5 ) ;
optionsLabel . setText ( " Options " ) . setFont ( Font ( ) . setBold ( ) ) ;
inputFocusLabel . setText ( " When focus is lost: " ) ;
pauseEmulation . setText ( " Pause emulation " ) . onActivate ( [ & ] {
settings [ " Input/Defocus " ] . setValue ( " Pause " ) ;
} ) ;
blockInput . setText ( " Block input " ) . onActivate ( [ & ] {
settings [ " Input/Defocus " ] . setValue ( " Block " ) ;
} ) ;
allowInput . setText ( " Allow input " ) . onActivate ( [ & ] {
settings [ " Input/Defocus " ] . setValue ( " Allow " ) ;
} ) ;
if ( settings [ " Input/Defocus " ] . text ( ) = = " Pause " ) pauseEmulation . setChecked ( ) ;
if ( settings [ " Input/Defocus " ] . text ( ) = = " Block " ) blockInput . setChecked ( ) ;
if ( settings [ " Input/Defocus " ] . text ( ) = = " Allow " ) allowInput . setChecked ( ) ;
warnOnUnverifiedGames . setText ( " Warn when loading games that have not been verified " ) . setChecked ( settings [ " Emulator/WarnOnUnverifiedGames " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/WarnOnUnverifiedGames " ] . setValue ( warnOnUnverifiedGames . checked ( ) ) ;
} ) ;
autoSaveMemory . setText ( " Auto-save memory periodically " ) . setChecked ( settings [ " Emulator/AutoSaveMemory/Enable " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/AutoSaveMemory/Enable " ] . setValue ( autoSaveMemory . checked ( ) ) ;
} ) ;
autoSaveStateOnUnload . setText ( " Auto-save undo state when unloading games " ) . setChecked ( settings [ " Emulator/AutoSaveStateOnUnload " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/AutoSaveStateOnUnload " ] . setValue ( autoSaveStateOnUnload . checked ( ) ) ;
if ( ! autoSaveStateOnUnload . checked ( ) ) {
autoLoadStateOnLoad . setEnabled ( false ) . setChecked ( false ) . doToggle ( ) ;
} else {
autoLoadStateOnLoad . setEnabled ( true ) ;
}
} ) . doToggle ( ) ;
autoLoadStateOnLoad . setText ( " Auto-resume on load " ) . setChecked ( settings [ " Emulator/AutoLoadStateOnLoad " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/AutoLoadStateOnLoad " ] . setValue ( autoLoadStateOnLoad . checked ( ) ) ;
} ) ;
suppressScreenSaver . setText ( " Suppress screen saver " ) . setChecked ( settings [ " UserInterface/SuppressScreenSaver " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " UserInterface/SuppressScreenSaver " ] . setValue ( suppressScreenSaver . checked ( ) ) ;
Application : : setScreenSaver ( ! suppressScreenSaver . checked ( ) ) ;
} ) ;
Update to 20180731 release.
byuu says:
I've completed moving all the class objects from `unique_pointer<T>` to
just T. The one exception is the Emulator::Interface instance. I can
absolutely make that a global object, but only in bsnes where there's
just the one emulation core.
I also moved all the SettingsWindow and ToolsWindow panels out to their
own global objects, and fixed a very difficult bug with GTK TabFrame
controls.
The configuration settings panel is now the emulator settings panel. And
I added some spacing between bold label sections on both the emulator
and driver settings panels.
I gave fixing ComboButtonItem my best shot, given I can't reproduce the
crash. Probably won't work, though.
Also made a very slight consistency improvement to ruby and renamed
driverName() to driver().
...
An important change ... as a result of moving bsnes to global objects,
this means that the constructors for all windows run before the
presentation window is displayed. Before this change, only the
presentation window was constructed first berore displaying it, followed
by the construction of the rest of the GUI windows.
The upside to this is that as soon as you see the main window, the GUI
is ready to go without a period where it's unresponsive.
The downside to this is it takes about 1.5 seconds to show the main
window, compared to around 0.75 seconds before.
I've no intention of changing that back. So if the startup time becomes
a problem, then we'll just have to work on optimizing hiro, so that it
can construct all the global Window objects quicker. The main way to do
that would be to not do calls to the Layout::setGeometry functions for
every widget added, and instead wait until the window is displayed. But
I don't have an easy way to do that, because you want the widget
geometry values to be sane even before the window is visible to help
size certain things.
2018-07-31 10:56:45 +00:00
hacksLabel . setText ( " Hacks " ) . setFont ( Font ( ) . setBold ( ) ) ;
Update to 20180729 release.
byuu wrote:
Sigh ...
asio.hpp needs #include <nall/windows/registry.hpp>
[Since the last WIP, byuu also posted the following message. -Ed.]
ruby drivers have all been updated (but not tested outside of BSD), and
I redesigned the settings window. The driver functionality all exists on
a new "Drivers" panel, the emulator/hack settings go to a
"Configuration" panel, and the video/audio panels lose driver settings.
As does the settings menu and its synchronize options.
I want to start pushing toward a v107 release. Critically, I will need
DirectSound and ALSA to support dynamic rate control. I'd also like to
eliminate the other system manifest.bml files. I need to update the
cheat code database format, and bundle at least a few quark shaders --
although I still need to default to Direct3D on Windows.
Turbo keys would be nice, if it's not too much effort. Aside from
netplay, it's the last significant feature I'm missing.
I think for v107, higan is going to be a bit rough around the edges
compared to bsnes. And I don't think it's practical to finish the bsnes
localization support.
I'm thinking we probably want another WIP to iron out any critical
issues, but this time there should be a feature freeze with the next
WIP.
2018-07-29 13:24:38 +00:00
fastPPUOption . setText ( " Fast PPU " ) . setChecked ( settings [ " Emulator/Hack/FastPPU " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/Hack/FastPPU " ] . setValue ( fastPPUOption . checked ( ) ) ;
if ( ! fastPPUOption . checked ( ) ) {
noSpriteLimit . setEnabled ( false ) . setChecked ( false ) . doToggle ( ) ;
hiresMode7 . setEnabled ( false ) . setChecked ( false ) . doToggle ( ) ;
} else {
noSpriteLimit . setEnabled ( true ) ;
hiresMode7 . setEnabled ( true ) ;
}
} ) . doToggle ( ) ;
noSpriteLimit . setText ( " No sprite limit " ) . setChecked ( settings [ " Emulator/Hack/FastPPU/NoSpriteLimit " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/Hack/FastPPU/NoSpriteLimit " ] . setValue ( noSpriteLimit . checked ( ) ) ;
} ) ;
hiresMode7 . setText ( " Hires mode 7 " ) . setChecked ( settings [ " Emulator/Hack/FastPPU/HiresMode7 " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/Hack/FastPPU/HiresMode7 " ] . setValue ( hiresMode7 . checked ( ) ) ;
} ) ;
fastDSPOption . setText ( " Fast DSP " ) . setChecked ( settings [ " Emulator/Hack/FastDSP " ] . boolean ( ) ) . onToggle ( [ & ] {
settings [ " Emulator/Hack/FastDSP " ] . setValue ( fastDSPOption . checked ( ) ) ;
} ) ;
superFXLabel . setText ( " SuperFX clock speed: " ) ;
superFXValue . setAlignment ( 0.5 ) ;
superFXClock . setLength ( 71 ) . setPosition ( ( settings [ " Emulator/Hack/FastSuperFX " ] . natural ( ) - 100 ) / 10 ) . onChange ( [ & ] {
settings [ " Emulator/Hack/FastSuperFX " ] . setValue ( { superFXClock . position ( ) * 10 + 100 , " % " } ) ;
superFXValue . setText ( settings [ " Emulator/Hack/FastSuperFX " ] . text ( ) ) ;
} ) . doChange ( ) ;
hacksNote . setForegroundColor ( { 224 , 0 , 0 } ) . setText ( " Note: some hack setting changes do not take effect until after reloading games. " ) ;
}
Update to 20180731 release.
byuu says:
I've completed moving all the class objects from `unique_pointer<T>` to
just T. The one exception is the Emulator::Interface instance. I can
absolutely make that a global object, but only in bsnes where there's
just the one emulation core.
I also moved all the SettingsWindow and ToolsWindow panels out to their
own global objects, and fixed a very difficult bug with GTK TabFrame
controls.
The configuration settings panel is now the emulator settings panel. And
I added some spacing between bold label sections on both the emulator
and driver settings panels.
I gave fixing ComboButtonItem my best shot, given I can't reproduce the
crash. Probably won't work, though.
Also made a very slight consistency improvement to ruby and renamed
driverName() to driver().
...
An important change ... as a result of moving bsnes to global objects,
this means that the constructors for all windows run before the
presentation window is displayed. Before this change, only the
presentation window was constructed first berore displaying it, followed
by the construction of the rest of the GUI windows.
The upside to this is that as soon as you see the main window, the GUI
is ready to go without a period where it's unresponsive.
The downside to this is it takes about 1.5 seconds to show the main
window, compared to around 0.75 seconds before.
I've no intention of changing that back. So if the startup time becomes
a problem, then we'll just have to work on optimizing hiro, so that it
can construct all the global Window objects quicker. The main way to do
that would be to not do calls to the Layout::setGeometry functions for
every widget added, and instead wait until the window is displayed. But
I don't have an easy way to do that, because you want the widget
geometry values to be sane even before the window is visible to help
size certain things.
2018-07-31 10:56:45 +00:00
auto EmulatorSettings : : updateConfiguration ( ) - > void {
Update to 20180729 release.
byuu wrote:
Sigh ...
asio.hpp needs #include <nall/windows/registry.hpp>
[Since the last WIP, byuu also posted the following message. -Ed.]
ruby drivers have all been updated (but not tested outside of BSD), and
I redesigned the settings window. The driver functionality all exists on
a new "Drivers" panel, the emulator/hack settings go to a
"Configuration" panel, and the video/audio panels lose driver settings.
As does the settings menu and its synchronize options.
I want to start pushing toward a v107 release. Critically, I will need
DirectSound and ALSA to support dynamic rate control. I'd also like to
eliminate the other system manifest.bml files. I need to update the
cheat code database format, and bundle at least a few quark shaders --
although I still need to default to Direct3D on Windows.
Turbo keys would be nice, if it's not too much effort. Aside from
netplay, it's the last significant feature I'm missing.
I think for v107, higan is going to be a bit rough around the edges
compared to bsnes. And I don't think it's practical to finish the bsnes
localization support.
I'm thinking we probably want another WIP to iron out any critical
issues, but this time there should be a feature freeze with the next
WIP.
2018-07-29 13:24:38 +00:00
emulator - > configure ( " hacks/ppuFast/enable " , fastPPUOption . checked ( ) ) ;
emulator - > configure ( " hacks/ppuFast/noSpriteLimit " , noSpriteLimit . checked ( ) ) ;
emulator - > configure ( " hacks/ppuFast/hiresMode7 " , hiresMode7 . checked ( ) ) ;
emulator - > configure ( " hacks/dspFast/enable " , fastDSPOption . checked ( ) ) ;
}