diff --git a/src/m64py/core/core.py b/src/m64py/core/core.py index 0a7ea3d..41f5320 100644 --- a/src/m64py/core/core.py +++ b/src/m64py/core/core.py @@ -469,10 +469,10 @@ class Core: log.warn(self.error_message(rval)) return rval - def reset(self): + def reset(self, soft=False): """Reset the emulated machine.""" rval = self.m64p.CoreDoCommand( - M64CMD_RESET, C.c_int(1)) + M64CMD_RESET, C.c_int(int(soft))) if rval != M64ERR_SUCCESS: log.debug("reset()") log.warn(self.error_message(rval)) diff --git a/src/m64py/frontend/mainwindow.py b/src/m64py/frontend/mainwindow.py index 1a08f21..6899957 100644 --- a/src/m64py/frontend/mainwindow.py +++ b/src/m64py/frontend/mainwindow.py @@ -275,6 +275,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.actionMute.setEnabled(action) self.actionStop.setEnabled(action) self.actionReset.setEnabled(action) + self.actionSoftReset.setEnabled(action) self.actionLimitFPS.setEnabled(action) self.actionSlowDown.setEnabled(action) self.actionSpeedUp.setEnabled(action) @@ -395,6 +396,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): """Resets emulator.""" self.worker.reset() + @pyqtSignature("") + def on_actionSoftReset_triggered(self): + """Resets emulator.""" + self.worker.reset(True) + @pyqtSignature("") def on_actionLimitFPS_triggered(self): """Toggles speed limit.""" diff --git a/src/m64py/frontend/worker.py b/src/m64py/frontend/worker.py index 97844c2..330ad60 100644 --- a/src/m64py/frontend/worker.py +++ b/src/m64py/frontend/worker.py @@ -219,9 +219,9 @@ class Worker(QThread): """Sends key up event.""" self.m64p.send_sdl_keyup(key) - def reset(self): + def reset(self, soft=False): """Resets emulator.""" - self.m64p.reset() + self.m64p.reset(soft) def speed_up(self): """Speeds up emulator.""" diff --git a/src/m64py/ui/mainwindow.ui b/src/m64py/ui/mainwindow.ui index 5d77221..0c3781f 100644 --- a/src/m64py/ui/mainwindow.ui +++ b/src/m64py/ui/mainwindow.ui @@ -118,6 +118,7 @@ + @@ -563,7 +564,7 @@ QStatusBar { margin:0px; } :/icons/action_state_load.png:/icons/action_state_load.png - Load From... + Load State... @@ -575,7 +576,7 @@ QStatusBar { margin:0px; } :/icons/action_state_save.png:/icons/action_state_save.png - Save As... + Save State As... @@ -592,6 +593,21 @@ QStatusBar { margin:0px; } Limit FPS + + + false + + + + :/icons/action_reset.png:/icons/action_reset.png + + + Sof&t Reset + + + F8 + + diff --git a/src/m64py/ui/mainwindow_ui.py b/src/m64py/ui/mainwindow_ui.py index d1072e2..15c7c92 100644 --- a/src/m64py/ui/mainwindow_ui.py +++ b/src/m64py/ui/mainwindow_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'mainwindow.ui' # -# Created: Fri Jun 7 16:09:00 2013 +# Created: Fri Jun 7 18:55:40 2013 # by: PyQt4 UI code generator 4.10.1 # # WARNING! All changes made in this file will be lost! @@ -253,6 +253,10 @@ class Ui_MainWindow(object): self.actionLimitFPS.setChecked(True) self.actionLimitFPS.setEnabled(False) self.actionLimitFPS.setObjectName(_fromUtf8("actionLimitFPS")) + self.actionSoftReset = QtGui.QAction(MainWindow) + self.actionSoftReset.setEnabled(False) + self.actionSoftReset.setIcon(icon15) + self.actionSoftReset.setObjectName(_fromUtf8("actionSoftReset")) self.menuLoad.addAction(self.actionManually) self.menuLoad.addAction(self.actionFromList) self.menuFile.addAction(self.menuLoad.menuAction()) @@ -280,6 +284,7 @@ class Ui_MainWindow(object): self.menuEmulation.addSeparator() self.menuEmulation.addAction(self.actionStop) self.menuEmulation.addAction(self.actionReset) + self.menuEmulation.addAction(self.actionSoftReset) self.menuEmulation.addSeparator() self.menuEmulation.addAction(self.actionLimitFPS) self.menuEmulation.addSeparator() @@ -361,9 +366,11 @@ class Ui_MainWindow(object): self.actionSpeedUp.setShortcut(_translate("MainWindow", "F11", None)) self.actionCheats.setText(_translate("MainWindow", "Cheats...", None)) self.actionCheats.setShortcut(_translate("MainWindow", "F2", None)) - self.actionLoadFrom.setText(_translate("MainWindow", "Load From...", None)) - self.actionSaveAs.setText(_translate("MainWindow", "Save As...", None)) + self.actionLoadFrom.setText(_translate("MainWindow", "Load State...", None)) + self.actionSaveAs.setText(_translate("MainWindow", "Save State As...", None)) self.actionLimitFPS.setText(_translate("MainWindow", "Limit FPS", None)) + self.actionSoftReset.setText(_translate("MainWindow", "Sof&t Reset", None)) + self.actionSoftReset.setShortcut(_translate("MainWindow", "F8", None)) import images_rc import icons_rc