X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Fmainwin.cpp;h=3ff3ded3283fe0dab0fc07f9640773ccac40aee1;hb=2136446c0d38d00a651d3eb665ee564b18f94b28;hp=3cebc8ac1541904a707e847f91a01e71fe6cb934;hpb=0c9f3744f0129a95e60bb886073b65144ba31a22;p=virtualjaguar diff --git a/src/gui/mainwin.cpp b/src/gui/mainwin.cpp index 3cebc8a..3ff3ded 100644 --- a/src/gui/mainwin.cpp +++ b/src/gui/mainwin.cpp @@ -166,7 +166,7 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit filePickAct->setShortcut(QKeySequence(tr("Ctrl+i"))); connect(filePickAct, SIGNAL(triggered()), this, SLOT(InsertCart())); - configAct = new QAction(QIcon(":/res/generic.png"), tr("&Configure"), this); + configAct = new QAction(QIcon(":/res/wrench.png"), tr("&Configure"), this); configAct->setStatusTip(tr("Configure options for Virtual Jaguar")); configAct->setShortcut(QKeySequence(tr("Ctrl+c"))); connect(configAct, SIGNAL(triggered()), this, SLOT(Configure())); @@ -183,11 +183,11 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit // Create menus & toolbars - fileMenu = menuBar()->addMenu(tr("&File")); - fileMenu->addAction(filePickAct); - fileMenu->addAction(useCDAct); + fileMenu = menuBar()->addMenu(tr("&Jaguar")); fileMenu->addAction(powerAct); fileMenu->addAction(pauseAct); + fileMenu->addAction(filePickAct); + fileMenu->addAction(useCDAct); fileMenu->addAction(configAct); fileMenu->addAction(quitAppAct); @@ -274,6 +274,8 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit // Attempt to load/run the ABS file... LoadSoftware(vjs.absROMPath); } + else + memcpy(jagMemSpace + 0xE00000, jaguarBootROM, 0x20000); // Otherwise, use the stock BIOS } void MainWin::closeEvent(QCloseEvent * event) @@ -314,6 +316,15 @@ void MainWin::HandleKeys(QKeyEvent * e, bool state) joypad_0_buttons[BUTTON_D] = 0; if (e->key() == (int)vjs.p1KeyBindings[BUTTON_D] && joypad_0_buttons[BUTTON_U]) joypad_0_buttons[BUTTON_U] = 0; + + if (e->key() == (int)vjs.p2KeyBindings[BUTTON_L] && joypad_1_buttons[BUTTON_R]) + joypad_0_buttons[BUTTON_R] = 0; + if (e->key() == (int)vjs.p2KeyBindings[BUTTON_R] && joypad_1_buttons[BUTTON_L]) + joypad_0_buttons[BUTTON_L] = 0; + if (e->key() == (int)vjs.p2KeyBindings[BUTTON_U] && joypad_1_buttons[BUTTON_D]) + joypad_0_buttons[BUTTON_D] = 0; + if (e->key() == (int)vjs.p2KeyBindings[BUTTON_D] && joypad_1_buttons[BUTTON_U]) + joypad_0_buttons[BUTTON_U] = 0; #endif // No bad combos exist, let's stuff the emulator key buffers...! @@ -321,6 +332,9 @@ void MainWin::HandleKeys(QKeyEvent * e, bool state) { if (e->key() == (int)vjs.p1KeyBindings[i]) joypad_0_buttons[i] = (uint8)state; + + if (e->key() == (int)vjs.p2KeyBindings[i]) + joypad_1_buttons[i] = (uint8)state; } } @@ -536,6 +550,8 @@ void MainWin::ShowAboutWin(void) void MainWin::InsertCart(void) { + // If the emulator is running, we pause it here and unpause it later + // if we dismiss the file selector without choosing anything if (running) { ToggleRunState(); @@ -560,7 +576,7 @@ void MainWin::LoadSoftware(QString file) running = false; // Prevent bad things(TM) from happening... pauseForFileSelector = false; // Reset the file selector pause flag SET32(jaguarMainRAM, 0, 0x00200000); // Set top of stack... - cartridgeLoaded = (JaguarLoadFile(file.toAscii().data()) ? true : false); + cartridgeLoaded = JaguarLoadFile(file.toAscii().data()); char * biosPointer = jaguarBootROM; @@ -619,7 +635,7 @@ void MainWin::ReadSettings(void) pos = settings.value("cartLoadPos", QPoint(200, 200)).toPoint(); filePickWin->move(pos); - zoomLevel = settings.value("zoom", 1).toInt(); + zoomLevel = settings.value("zoom", 2).toInt(); allowUnknownSoftware = settings.value("showUnknownSoftware", false).toBool(); vjs.useJoystick = settings.value("useJoystick", false).toBool(); @@ -627,12 +643,13 @@ void MainWin::ReadSettings(void) vjs.hardwareTypeNTSC = settings.value("hardwareTypeNTSC", true).toBool(); vjs.frameSkip = settings.value("frameSkip", 0).toInt(); vjs.useJaguarBIOS = settings.value("useJaguarBIOS", false).toBool(); + vjs.GPUEnabled = settings.value("GPUEnabled", true).toBool(); vjs.DSPEnabled = settings.value("DSPEnabled", false).toBool(); vjs.audioEnabled = settings.value("audioEnabled", true).toBool(); vjs.usePipelinedDSP = settings.value("usePipelinedDSP", false).toBool(); vjs.fullscreen = settings.value("fullscreen", false).toBool(); vjs.useOpenGL = settings.value("useOpenGL", true).toBool(); - vjs.glFilter = settings.value("glFilterType", 0).toInt(); + vjs.glFilter = settings.value("glFilterType", 1).toInt(); vjs.renderType = settings.value("renderType", 0).toInt(); vjs.allowWritesToROM = settings.value("writeROM", false).toBool(); // strcpy(vjs.jagBootPath, settings.value("JagBootROM", "./bios/[BIOS] Atari Jaguar (USA, Europe).zip").toString().toAscii().data()); @@ -650,15 +667,15 @@ WriteLog("AlpineROMPath = \"%s\"\n", vjs.alpineROMPath); WriteLog(" absROMPath = \"%s\"\n", vjs.absROMPath); // 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_Up).toInt(); - vjs.p1KeyBindings[BUTTON_D] = settings.value("p1k_down", Qt::Key_Down).toInt(); - vjs.p1KeyBindings[BUTTON_L] = settings.value("p1k_left", Qt::Key_Left).toInt(); - vjs.p1KeyBindings[BUTTON_R] = settings.value("p1k_right", Qt::Key_Right).toInt(); - vjs.p1KeyBindings[BUTTON_C] = settings.value("p1k_c", Qt::Key_Z).toInt(); - vjs.p1KeyBindings[BUTTON_B] = settings.value("p1k_b", Qt::Key_X).toInt(); - vjs.p1KeyBindings[BUTTON_A] = settings.value("p1k_a", Qt::Key_C).toInt(); - vjs.p1KeyBindings[BUTTON_OPTION] = settings.value("p1k_option", Qt::Key_Apostrophe).toInt(); - vjs.p1KeyBindings[BUTTON_PAUSE] = settings.value("p1k_pause", Qt::Key_Return).toInt(); + 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.p1KeyBindings[BUTTON_L] = settings.value("p1k_left", Qt::Key_A).toInt(); + vjs.p1KeyBindings[BUTTON_R] = settings.value("p1k_right", Qt::Key_D).toInt(); + vjs.p1KeyBindings[BUTTON_C] = settings.value("p1k_c", Qt::Key_J).toInt(); + vjs.p1KeyBindings[BUTTON_B] = settings.value("p1k_b", Qt::Key_K).toInt(); + vjs.p1KeyBindings[BUTTON_A] = settings.value("p1k_a", Qt::Key_L).toInt(); + vjs.p1KeyBindings[BUTTON_OPTION] = settings.value("p1k_option", Qt::Key_O).toInt(); + vjs.p1KeyBindings[BUTTON_PAUSE] = settings.value("p1k_pause", Qt::Key_P).toInt(); vjs.p1KeyBindings[BUTTON_0] = settings.value("p1k_0", Qt::Key_0).toInt(); vjs.p1KeyBindings[BUTTON_1] = settings.value("p1k_1", Qt::Key_1).toInt(); vjs.p1KeyBindings[BUTTON_2] = settings.value("p1k_2", Qt::Key_2).toInt(); @@ -669,8 +686,8 @@ WriteLog(" absROMPath = \"%s\"\n", vjs.absROMPath); vjs.p1KeyBindings[BUTTON_7] = settings.value("p1k_7", Qt::Key_7).toInt(); vjs.p1KeyBindings[BUTTON_8] = settings.value("p1k_8", Qt::Key_8).toInt(); vjs.p1KeyBindings[BUTTON_9] = settings.value("p1k_9", Qt::Key_9).toInt(); - vjs.p1KeyBindings[BUTTON_d] = settings.value("p1k_pound", Qt::Key_Slash).toInt(); - vjs.p1KeyBindings[BUTTON_s] = settings.value("p1k_star", Qt::Key_Asterisk).toInt(); + vjs.p1KeyBindings[BUTTON_d] = settings.value("p1k_pound", Qt::Key_Minus).toInt(); + vjs.p1KeyBindings[BUTTON_s] = settings.value("p1k_star", Qt::Key_Equal).toInt(); vjs.p2KeyBindings[BUTTON_U] = settings.value("p2k_up", Qt::Key_Up).toInt(); vjs.p2KeyBindings[BUTTON_D] = settings.value("p2k_down", Qt::Key_Down).toInt(); @@ -710,6 +727,7 @@ void MainWin::WriteSettings(void) settings.setValue("hardwareTypeNTSC", vjs.hardwareTypeNTSC); settings.setValue("frameSkip", vjs.frameSkip); settings.setValue("useJaguarBIOS", vjs.useJaguarBIOS); + settings.setValue("GPUEnabled", vjs.GPUEnabled); settings.setValue("DSPEnabled", vjs.DSPEnabled); settings.setValue("audioEnabled", vjs.audioEnabled); settings.setValue("usePipelinedDSP", vjs.usePipelinedDSP);