mirror of https://github.com/mgba-emu/mgba.git
Qt: Fix some config regressions
This commit is contained in:
parent
fae8ef7f42
commit
9ec62368bc
|
@ -106,7 +106,7 @@ GameController::GameController(QObject* parent)
|
||||||
if (mCoreLoadState(context->core, 0, controller->m_loadStateFlags)) {
|
if (mCoreLoadState(context->core, 0, controller->m_loadStateFlags)) {
|
||||||
mCoreDeleteState(context->core, 0);
|
mCoreDeleteState(context->core, 0);
|
||||||
}
|
}
|
||||||
QMetaObject::invokeMethod(controller, "gameStarted", Q_ARG(mCoreThread*, context));
|
QMetaObject::invokeMethod(controller, "gameStarted", Q_ARG(mCoreThread*, context), Q_ARG(const QString&, controller->m_fname));
|
||||||
};
|
};
|
||||||
|
|
||||||
m_threadContext.cleanCallback = [](mCoreThread* context) {
|
m_threadContext.cleanCallback = [](mCoreThread* context) {
|
||||||
|
@ -235,12 +235,12 @@ void GameController::setOverride(const GBACartridgeOverride& override) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameController::setConfig(const mCoreConfig* config) {
|
void GameController::setConfig(const mCoreConfig* config) {
|
||||||
if (!m_gameOpen) {
|
m_config = config;
|
||||||
return;
|
if (isLoaded()) {
|
||||||
|
threadInterrupt();
|
||||||
|
mCoreLoadForeignConfig(m_threadContext.core, config);
|
||||||
|
threadContinue();
|
||||||
}
|
}
|
||||||
threadInterrupt();
|
|
||||||
mCoreLoadForeignConfig(m_threadContext.core, config);
|
|
||||||
threadContinue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_GDB_STUB
|
#ifdef USE_GDB_STUB
|
||||||
|
@ -333,6 +333,10 @@ void GameController::openGame(bool biosOnly) {
|
||||||
|
|
||||||
m_threadContext.core->setAVStream(m_threadContext.core, m_stream);
|
m_threadContext.core->setAVStream(m_threadContext.core, m_stream);
|
||||||
|
|
||||||
|
if (m_config) {
|
||||||
|
mCoreLoadForeignConfig(m_threadContext.core, m_config);
|
||||||
|
}
|
||||||
|
|
||||||
if (!mCoreThreadStart(&m_threadContext)) {
|
if (!mCoreThreadStart(&m_threadContext)) {
|
||||||
m_gameOpen = false;
|
m_gameOpen = false;
|
||||||
emit gameFailed();
|
emit gameFailed();
|
||||||
|
|
|
@ -82,7 +82,7 @@ public:
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void frameAvailable(const uint32_t*);
|
void frameAvailable(const uint32_t*);
|
||||||
void gameStarted(mCoreThread*);
|
void gameStarted(mCoreThread*, const QString& fname);
|
||||||
void gameStopped(mCoreThread*);
|
void gameStopped(mCoreThread*);
|
||||||
void gamePaused(mCoreThread*);
|
void gamePaused(mCoreThread*);
|
||||||
void gameUnpaused(mCoreThread*);
|
void gameUnpaused(mCoreThread*);
|
||||||
|
@ -171,6 +171,7 @@ private:
|
||||||
uint32_t* m_drawContext;
|
uint32_t* m_drawContext;
|
||||||
uint32_t* m_frontBuffer;
|
uint32_t* m_frontBuffer;
|
||||||
mCoreThread m_threadContext;
|
mCoreThread m_threadContext;
|
||||||
|
const mCoreConfig* m_config;
|
||||||
GBACheatDevice m_cheatDevice;
|
GBACheatDevice m_cheatDevice;
|
||||||
int m_activeKeys;
|
int m_activeKeys;
|
||||||
int m_activeButtons;
|
int m_activeButtons;
|
||||||
|
|
|
@ -21,7 +21,7 @@ OverrideView::OverrideView(GameController* controller, ConfigController* config,
|
||||||
{
|
{
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
|
|
||||||
connect(controller, SIGNAL(gameStarted(mCoreThread*)), this, SLOT(gameStarted(mCoreThread*)));
|
connect(controller, SIGNAL(gameStarted(mCoreThread*, const QString&)), this, SLOT(gameStarted(mCoreThread*)));
|
||||||
connect(controller, SIGNAL(gameStopped(mCoreThread*)), this, SLOT(gameStopped()));
|
connect(controller, SIGNAL(gameStopped(mCoreThread*)), this, SLOT(gameStopped()));
|
||||||
|
|
||||||
connect(m_ui.hwAutodetect, &QAbstractButton::toggled, [this] (bool enabled) {
|
connect(m_ui.hwAutodetect, &QAbstractButton::toggled, [this] (bool enabled) {
|
||||||
|
|
|
@ -94,8 +94,8 @@ Window::Window(ConfigController* config, int playerId, QWidget* parent)
|
||||||
m_screenWidget->setLockAspectRatio(m_logo.width(), m_logo.height());
|
m_screenWidget->setLockAspectRatio(m_logo.width(), m_logo.height());
|
||||||
setCentralWidget(m_screenWidget);
|
setCentralWidget(m_screenWidget);
|
||||||
|
|
||||||
connect(m_controller, SIGNAL(gameStarted(mCoreThread*)), this, SLOT(gameStarted(mCoreThread*)));
|
connect(m_controller, SIGNAL(gameStarted(mCoreThread*, const QString&)), this, SLOT(gameStarted(mCoreThread*, const QString&)));
|
||||||
connect(m_controller, SIGNAL(gameStarted(mCoreThread*)), &m_inputController, SLOT(suspendScreensaver()));
|
connect(m_controller, SIGNAL(gameStarted(mCoreThread*, const QString&)), &m_inputController, SLOT(suspendScreensaver()));
|
||||||
connect(m_controller, SIGNAL(gameStopped(mCoreThread*)), m_display, SLOT(stopDrawing()));
|
connect(m_controller, SIGNAL(gameStopped(mCoreThread*)), m_display, SLOT(stopDrawing()));
|
||||||
connect(m_controller, SIGNAL(gameStopped(mCoreThread*)), this, SLOT(gameStopped()));
|
connect(m_controller, SIGNAL(gameStopped(mCoreThread*)), this, SLOT(gameStopped()));
|
||||||
connect(m_controller, SIGNAL(gameStopped(mCoreThread*)), &m_inputController, SLOT(resumeScreensaver()));
|
connect(m_controller, SIGNAL(gameStopped(mCoreThread*)), &m_inputController, SLOT(resumeScreensaver()));
|
||||||
|
@ -597,8 +597,7 @@ void Window::toggleFullScreen() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::gameStarted(mCoreThread* context) {
|
void Window::gameStarted(mCoreThread* context, const QString& fname) {
|
||||||
char title[13] = { '\0' };
|
|
||||||
MutexLock(&context->stateMutex);
|
MutexLock(&context->stateMutex);
|
||||||
if (context->state < THREAD_EXITING) {
|
if (context->state < THREAD_EXITING) {
|
||||||
emit startDrawing(context);
|
emit startDrawing(context);
|
||||||
|
@ -611,10 +610,10 @@ void Window::gameStarted(mCoreThread* context) {
|
||||||
action->setDisabled(false);
|
action->setDisabled(false);
|
||||||
}
|
}
|
||||||
multiplayerChanged();
|
multiplayerChanged();
|
||||||
/*if (context->fname) {
|
if (!fname.isEmpty()) {
|
||||||
setWindowFilePath(context->fname);
|
setWindowFilePath(fname);
|
||||||
appendMRU(context->fname);
|
appendMRU(fname);
|
||||||
}*/
|
}
|
||||||
updateTitle();
|
updateTitle();
|
||||||
attachWidget(m_display);
|
attachWidget(m_display);
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,7 @@ protected:
|
||||||
virtual void mouseDoubleClickEvent(QMouseEvent*) override;
|
virtual void mouseDoubleClickEvent(QMouseEvent*) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void gameStarted(mCoreThread*);
|
void gameStarted(mCoreThread*, const QString&);
|
||||||
void gameStopped();
|
void gameStopped();
|
||||||
void gameCrashed(const QString&);
|
void gameCrashed(const QString&);
|
||||||
void gameFailed();
|
void gameFailed();
|
||||||
|
|
Loading…
Reference in New Issue