powerRed.addFile(":/res/power-off.png", QSize(), QIcon::Normal, QIcon::Off);
powerRed.addFile(":/res/power-on-red.png", QSize(), QIcon::Normal, QIcon::On);
-// powerAct = new QAction(QIcon(":/res/power.png"), tr("&Power"), this);
powerAct = new QAction(powerGreen, tr("&Power"), this);
powerAct->setStatusTip(tr("Powers Jaguar on/off"));
powerAct->setCheckable(true);
powerAct->setChecked(false);
-// powerAct->setDisabled(true);
connect(powerAct, SIGNAL(triggered()), this, SLOT(TogglePowerState()));
QIcon pauseIcon;
pauseIcon.addFile(":/res/pause-off", QSize(), QIcon::Normal, QIcon::Off);
pauseIcon.addFile(":/res/pause-on", QSize(), QIcon::Normal, QIcon::On);
-// pauseAct = new QAction(QIcon(":/res/pause.png"), tr("Pause"), this);
pauseAct = new QAction(pauseIcon, tr("Pause"), this);
pauseAct->setStatusTip(tr("Toggles the running state"));
pauseAct->setCheckable(true);
palAct->setCheckable(true);
connect(palAct, SIGNAL(triggered()), this, SLOT(SetPAL()));
- blurAct = new QAction(QIcon(":/res/blur.png"), tr("Blur"), this);
+ blur.addFile(":/res/blur-off.png", QSize(), QIcon::Normal, QIcon::Off);
+ blur.addFile(":/res/blur-on.png", QSize(), QIcon::Normal, QIcon::On);
+
+ blurAct = new QAction(blur, tr("Blur"), this);
blurAct->setStatusTip(tr("Sets OpenGL rendering to GL_NEAREST"));
blurAct->setCheckable(true);
connect(blurAct, SIGNAL(triggered()), this, SLOT(ToggleBlur()));
// Create status bar
statusBar()->showMessage(tr("Ready"));
-
ReadSettings();
-
- // Do this in case original size isn't correct (mostly for the first-run case)
+ // Do this in case original size isn't correct (mostly for the first-run
+ // case)
ResizeMainWindow();
// Create our test pattern bitmaps
void MainWin::keyPressEvent(QKeyEvent * e)
{
+#ifndef VJ_REMOVE_DEV_CODE
// From jaguar.cpp
extern bool startM68KTracing;
// From joystick.cpp
extern int blit_start_log;
// From blitter.cpp
extern bool startConciseBlitLogging;
-
+#endif
// We ignore the Alt key for now, since it causes problems with the GUI
if (e->key() == Qt::Key_Alt)
e->accept();
return;
}
+// Bar this shite from release versions kthxbai
+#ifndef VJ_REMOVE_DEV_CODE
else if (e->key() == Qt::Key_F11)
{
startM68KTracing = true;
e->accept();
return;
}
+#endif
else if (e->key() == Qt::Key_F8)
{
// ggn: For extra NYAN pleasure...
HandleGamepads();
JaguarExecuteNew();
videoWidget->HandleMouseHiding();
+
+static uint32_t refresh = 0;
+ // Do autorefresh on debug windows
+ // Have to be careful, too much causes the emulator to slow way down!
+ if (vjs.hardwareTypeAlpine)
+ {
+ if (refresh == 60)
+ {
+ memBrowseWin->RefreshContents();
+ cpuBrowseWin->RefreshContents();
+ refresh = 0;
+ }
+ else
+ refresh++;
+ }
}
videoWidget->updateGL();
running = false; // Prevent bad things(TM) from happening...
pauseForFileSelector = false; // Reset the file selector pause flag
- char * biosPointer = jaguarBootROM;
+ uint8_t * biosPointer = jaguarBootROM;
if (vjs.hardwareTypeAlpine)
biosPointer = jaguarDevBootROM2;
powerButtonOn = false;
TogglePowerState();
// We have to load our software *after* the Jaguar RESET
- cartridgeLoaded = JaguarLoadFile(file.toAscii().data());
+ cartridgeLoaded = JaguarLoadFile(file.toUtf8().data());
SET32(jaguarMainRAM, 0, 0x00200000); // Set top of stack...
// This is icky because we've already done it
if (debugbar)
debugbar->hide();
- showFullScreen();
// This is needed because the fullscreen may happen on a different
// screen than screen 0:
int screenNum = QApplication::desktop()->screenNumber(videoWidget);
-// QRect r = QApplication::desktop()->availableGeometry(screenNum);
QRect r = QApplication::desktop()->screenGeometry(screenNum);
double targetWidth = (double)VIRTUAL_SCREEN_WIDTH,
targetHeight = (double)(vjs.hardwareTypeNTSC ? VIRTUAL_SCREEN_HEIGHT_NTSC : VIRTUAL_SCREEN_HEIGHT_PAL);
}
else
{
+ // Seems Qt is fussy about this: showNormal() has to go first, or it
+ // will keep the window stuck in a psuedo-fullscreen mode with no way
+ // to get out of it (except closing the app).
+ showNormal();
+
// Reset the video widget to windowed mode
videoWidget->offset = 0;
videoWidget->fullscreen = false;
if (debugbar)
debugbar->show();
- showNormal();
ResizeMainWindow();
move(mainWinPosition);
}
}
}
- show();
-
- for(int i=0; i<2; i++)
- {
- resize(0, 0);
- usleep(2000);
- QApplication::processEvents();
- }
+ adjustSize();
}
vjs.allowWritesToROM = settings.value("writeROM", false).toBool();
vjs.biosType = settings.value("biosType", BT_M_SERIES).toInt();
vjs.useFastBlitter = settings.value("useFastBlitter", false).toBool();
- strcpy(vjs.EEPROMPath, settings.value("EEPROMs", QDesktopServices::storageLocation(QDesktopServices::DataLocation).append("/eeproms/")).toString().toAscii().data());
- strcpy(vjs.ROMPath, settings.value("ROMs", QDesktopServices::storageLocation(QDesktopServices::DataLocation).append("/software/")).toString().toAscii().data());
- strcpy(vjs.alpineROMPath, settings.value("DefaultROM", "").toString().toAscii().data());
- strcpy(vjs.absROMPath, settings.value("DefaultABS", "").toString().toAscii().data());
+ strcpy(vjs.EEPROMPath, settings.value("EEPROMs", QStandardPaths::writableLocation(QStandardPaths::DataLocation).append("/eeproms/")).toString().toUtf8().data());
+ strcpy(vjs.ROMPath, settings.value("ROMs", QStandardPaths::writableLocation(QStandardPaths::DataLocation).append("/software/")).toString().toUtf8().data());
+ strcpy(vjs.alpineROMPath, settings.value("DefaultROM", "").toString().toUtf8().data());
+ strcpy(vjs.absROMPath, settings.value("DefaultABS", "").toString().toUtf8().data());
WriteLog("MainWin: Paths\n");
WriteLog(" EEPROMPath = \"%s\"\n", vjs.EEPROMPath);
WriteLog(" absROMPath = \"%s\"\n", vjs.absROMPath);
WriteLog("Pipelined DSP = %s\n", (vjs.usePipelinedDSP ? "ON" : "off"));
+#if 0
// Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *
vjs.p1KeyBindings[BUTTON_U] = settings.value("p1k_up", Qt::Key_S).toInt();
vjs.p1KeyBindings[BUTTON_D] = settings.value("p1k_down", Qt::Key_X).toInt();
vjs.p2KeyBindings[BUTTON_9] = settings.value("p2k_9", Qt::Key_9).toInt();
vjs.p2KeyBindings[BUTTON_d] = settings.value("p2k_pound", Qt::Key_Slash).toInt();
vjs.p2KeyBindings[BUTTON_s] = settings.value("p2k_star", Qt::Key_Asterisk).toInt();
+#endif
ReadProfiles(&settings);
}
settings.setValue("DefaultROM", vjs.alpineROMPath);
settings.setValue("DefaultABS", vjs.absROMPath);
+#if 0
settings.setValue("p1k_up", vjs.p1KeyBindings[BUTTON_U]);
settings.setValue("p1k_down", vjs.p1KeyBindings[BUTTON_D]);
settings.setValue("p1k_left", vjs.p1KeyBindings[BUTTON_L]);
settings.setValue("p2k_9", vjs.p2KeyBindings[BUTTON_9]);
settings.setValue("p2k_pound", vjs.p2KeyBindings[BUTTON_d]);
settings.setValue("p2k_star", vjs.p2KeyBindings[BUTTON_s]);
+#endif
WriteProfiles(&settings);
}