// 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 bitmap
+ // Create our test pattern bitmaps
QImage tempImg(":/res/test-pattern.jpg");
QImage tempImgScaled = tempImg.scaled(VIRTUAL_SCREEN_WIDTH, VIRTUAL_SCREEN_HEIGHT_PAL, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
}
+ QImage tempImg2(":/res/test-pattern-pal");
+ QImage tempImgScaled2 = tempImg2.scaled(VIRTUAL_SCREEN_WIDTH, VIRTUAL_SCREEN_HEIGHT_PAL, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+
+ for(uint32_t y=0; y<VIRTUAL_SCREEN_HEIGHT_PAL; y++)
+ {
+ const QRgb * scanline = (QRgb *)tempImgScaled2.constScanLine(y);
+
+ for(uint32_t x=0; x<VIRTUAL_SCREEN_WIDTH; x++)
+ {
+ uint32_t pixel = (qRed(scanline[x]) << 24) | (qGreen(scanline[x]) << 16) | (qBlue(scanline[x]) << 8) | 0xFF;
+ testPattern2[(y * VIRTUAL_SCREEN_WIDTH) + x] = pixel;
+ }
+ }
+
// Set up timer based loop for animation...
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(Timer()));
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...
// the same as the picture buffer's pitch.
for(uint32_t y=0; y<videoWidget->rasterHeight; y++)
{
- memcpy(videoWidget->buffer + (y * videoWidget->textureWidth), testPattern + (y * VIRTUAL_SCREEN_WIDTH), VIRTUAL_SCREEN_WIDTH * sizeof(uint32_t));
+ if (vjs.hardwareTypeNTSC)
+ memcpy(videoWidget->buffer + (y * videoWidget->textureWidth), testPattern + (y * VIRTUAL_SCREEN_WIDTH), VIRTUAL_SCREEN_WIDTH * sizeof(uint32_t));
+ else
+ memcpy(videoWidget->buffer + (y * videoWidget->textureWidth), testPattern2 + (y * VIRTUAL_SCREEN_WIDTH), VIRTUAL_SCREEN_WIDTH * sizeof(uint32_t));
}
}
}
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);
}
{
for(uint32_t y=0; y<videoWidget->rasterHeight; y++)
{
- memcpy(videoWidget->buffer + (y * videoWidget->textureWidth), testPattern + (y * VIRTUAL_SCREEN_WIDTH), VIRTUAL_SCREEN_WIDTH * sizeof(uint32_t));
+ if (vjs.hardwareTypeNTSC)
+ memcpy(videoWidget->buffer + (y * videoWidget->textureWidth), testPattern + (y * VIRTUAL_SCREEN_WIDTH), VIRTUAL_SCREEN_WIDTH * sizeof(uint32_t));
+ else
+ memcpy(videoWidget->buffer + (y * videoWidget->textureWidth), testPattern2 + (y * VIRTUAL_SCREEN_WIDTH), VIRTUAL_SCREEN_WIDTH * sizeof(uint32_t));
}
}
- 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);
}
-
+
void MainWin::WriteSettings(void)
{
QSettings settings("Underground Software", "Virtual Jaguar");
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);
}