// Set up timer based loop for animation...
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(Timer()));
-//This is only correct for PAL. !!! FIX !!! [DONE]
-//Use timer->setInterval( int msec ) to fix this on the fly
-// timer->start(20);
+
// This isn't very accurate for NTSC: This is early by 40 msec per frame.
// This is because it's discarding the 0.6666... on the end of the fraction.
// Alas, 6 doesn't divide cleanly into 10. :-P
- timer->start(vjs.hardwareTypeNTSC ? 16 : 20);
+//Should we defer this until SyncUI? Probably.
+//No, it doesn't work, because it uses setInterval() instead of start()...
+// timer->start(vjs.hardwareTypeNTSC ? 16 : 20);
// We set this initially, to make VJ behave somewhat as it would if no
// cart were inserted and the BIOS was set as active...
fullScreen = vjs.fullscreen;
SetFullScreen(fullScreen);
+
+ // Reset the timer to be what was set in the command line (if any):
+// timer->setInterval(vjs.hardwareTypeNTSC ? 16 : 20);
+ timer->start(vjs.hardwareTypeNTSC ? 16 : 20);
}
{
if (state)
{
+ mainWinPosition = pos();
+// mainWinSize = size();
menuBar()->hide();
statusBar()->hide();
showFullScreen();
QRect r = QApplication::desktop()->availableGeometry();
- double targetWidth = 320.0, targetHeight = (vjs.hardwareTypeNTSC ? 240.0 : 256.0);
+// double targetWidth = 320.0, targetHeight = (vjs.hardwareTypeNTSC ? 240.0 : 256.0);
+ double targetWidth = (double)VIRTUAL_SCREEN_WIDTH,
+ targetHeight = (double)(vjs.hardwareTypeNTSC ? VIRTUAL_SCREEN_HEIGHT_NTSC : VIRTUAL_SCREEN_HEIGHT_PAL);
double aspectRatio = targetWidth / targetHeight;
// NOTE: Really should check here to see which dimension constrains the other.
// Right now, we assume that height is the constraint.
statusBar()->show();
showNormal();
ResizeMainWindow();
+ move(mainWinPosition);
}
// For some reason, this doesn't work: If the emu is paused, toggling from
void MainWin::ResizeMainWindow(void)
{
- videoWidget->setFixedSize(zoomLevel * 320, zoomLevel * (vjs.hardwareTypeNTSC ? 240 : 256));
+// videoWidget->setFixedSize(zoomLevel * 320, zoomLevel * (vjs.hardwareTypeNTSC ? 240 : 256));
+ videoWidget->setFixedSize(zoomLevel * VIRTUAL_SCREEN_WIDTH,
+ zoomLevel * (vjs.hardwareTypeNTSC ? VIRTUAL_SCREEN_HEIGHT_NTSC : VIRTUAL_SCREEN_HEIGHT_PAL));
show();
for(int i=0; i<2; i++)
void MainWin::ReadSettings(void)
{
QSettings settings("Underground Software", "Virtual Jaguar");
- QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
+ mainWinPosition = settings.value("pos", QPoint(200, 200)).toPoint();
QSize size = settings.value("size", QSize(400, 400)).toSize();
resize(size);
- move(pos);
- pos = settings.value("cartLoadPos", QPoint(200, 200)).toPoint();
+ move(mainWinPosition);
+ QPoint pos = settings.value("cartLoadPos", QPoint(200, 200)).toPoint();
filePickWin->move(pos);
zoomLevel = settings.value("zoom", 2).toInt();