#include "base/main.moc" #include "base/loader.moc" #include "base/htmlviewer.moc" #include "base/about.moc" #include "settings/settings.moc" #include "base/main.cpp" #include "base/loader.cpp" #include "base/htmlviewer.cpp" #include "base/about.cpp" #include "settings/settings.cpp" void Application::init() { if(config.system.crashedOnLastRun == true) { //emulator crashed on last run, disable all drivers QMessageBox::warning(0, "bsnes Crash Notification", utf8() << "
Warning:
bsnes crashed while attempting to initialize device "
"drivers the last time it was run.
To prevent this from occurring again, all drivers have been disabled. Please " "go to Settings->Configuration->Advanced and choose new driver settings, and then " "restart the emulator for the changes to take effect. Video, audio and input " "will not work until you do this!
" "Settings that caused failure on last run:
"
<< "Video driver: " << config.system.video << "
"
<< "Audio driver: " << config.system.audio << "
"
<< "Input driver: " << config.system.input << "
Warning: " << config.system.video << " video driver failed to initialize. " "Video driver has been disabled.
" "Please go to Settings->Configuration->Advanced and choose a different driver, and " "then restart the emulator for the changes to take effect.
" ); video.driver("None"); video.init(); } audio.driver(config.system.audio); audio.set(Audio::Handle, (uintptr_t)winMain->canvas->winId()); audio.set(Audio::Frequency, config.audio.outputFrequency); audio.set(Audio::Latency, config.audio.latency); audio.set(Audio::Volume, config.audio.volume); if(audio.init() == false) { QMessageBox::warning(0, "bsnes", utf8() << "Warning: " << config.system.audio << " audio driver failed to initialize. " "Audio driver has been disabled.
" "Please go to Settings->Configuration->Advanced and choose a different driver, and " "then restart the emulator for the changes to take effect.
" ); audio.driver("None"); audio.init(); } input.driver(config.system.input); input.set(Input::Handle, (uintptr_t)winMain->canvas->winId()); if(input.init() == false) { QMessageBox::warning(0, "bsnes", utf8() << "Warning: " << config.system.input << " input driver failed to initialize. " "Input driver has been disabled.
" "Please go to Settings->Configuration->Advanced and choose a different driver, and " "then restart the emulator for the changes to take effect.
" ); input.driver("None"); input.init(); } //didn't crash, note this in the config file now in case a different kind of crash occurs later config.system.crashedOnLastRun = false; config.save(configFilename); inputManager.bind(); inputManager.refresh(); inputManager.refresh(); inputManager.onInput = bind(&Utility::inputEvent, &utility); utility.updateAvSync(); utility.updateVideoMode(); utility.updateColorFilter(); utility.updateHardwareFilter(); utility.updateSoftwareFilter(); utility.updateEmulationSpeed(); utility.updateControllers(); }