From 67a95fc0511260daf0a92709e8a835a090b467d8 Mon Sep 17 00:00:00 2001 From: Shamus Hammons Date: Tue, 28 Jun 2011 04:30:29 +0000 Subject: [PATCH] Added proper versioning to build system, to avoid release confusion. :-) --- Makefile | 11 +++++- res/ntsc.png | Bin 0 -> 728 bytes res/pal.png | Bin 0 -> 756 bytes src/gui/about.cpp | 9 +++-- src/gui/mainwin.cpp | 79 ++++++++++++-------------------------- src/gui/virtualjaguar.pro | 34 ---------------- src/gui/virtualjaguar.qrc | 2 + 7 files changed, 42 insertions(+), 93 deletions(-) create mode 100644 res/ntsc.png create mode 100644 res/pal.png delete mode 100644 src/gui/virtualjaguar.pro diff --git a/Makefile b/Makefile index d408ad1..63dec1c 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,10 @@ # # by James Hammons # (C) 2011 Underground Software +# +# Note that we control the version information here--uncomment only one set of +# echo's from the "prepare" recipe. :-) +# FIND = find @@ -10,6 +14,10 @@ all: prepare virtualjaguar prepare: @echo -e "\033[01;33m***\033[00;32m Preparing to compile Virtual Jaguar...\033[00m" +# @echo "#define VJ_RELEASE_VERSION \"v2.0.0\"" > src/version.h +# @echo "#define VJ_RELEASE_SUBVERSION \"Final\"" >> src/version.h + @echo "#define VJ_RELEASE_VERSION \"SVN `svn info | grep -i revision`\"" > src/version.h + @echo "#define VJ_RELEASE_SUBVERSION \"2.0.0 Prerelease\"" >> src/version.h virtualjaguar: sources libs makefile-qt @echo -e "\033[01;33m***\033[00;32m Making Virtual Jaguar...\033[00m" @@ -20,7 +28,7 @@ makefile-qt: virtualjaguar.pro qmake virtualjaguar.pro -o makefile-qt libs: obj/libmusashi.a - @echo -e "\033[01;33m***\033[00;32m Make libs here (if any)...\033[00m" + @echo -e "\033[01;33m***\033[00;32m Libraries successfully made.\033[00m" obj/libmusashi.a: @echo -e "\033[01;33m***\033[00;32m Making Musashi...\033[00m" @@ -30,7 +38,6 @@ sources: src/*.h src/*.cpp src/*.c clean: @echo -ne "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m" -# @-$(MAKE) -f makefile-qt clean @-rm -rf ./obj @-rm makefile-qt @-rm virtualjaguar diff --git a/res/ntsc.png b/res/ntsc.png new file mode 100644 index 0000000000000000000000000000000000000000..e13f41e14978bfe04be8161d9fc9d2f96f81b9d8 GIT binary patch literal 728 zcmV;}0w?{6P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipc5 z1Q87j!>qah0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~0006n zNkl!nZ+ipTau%jRUZK-irvMeF5e(>?APr zpJ$os6J{ne6R;U#Gte}%R$CDs)`5*EP{(S(T)=+`yJh@sJ7~) z_A(OJv+vY^7r-KL7Z@$Hw>ybHfxxRQ_C3UY0TYD}7{GGaWZAJh-sCJNpdyA+Nj2ay zumD^H?j?bm*@&bcVZhl1mb|(?D(b1{Lh)(j9n$fHJ&eB{D!8-{yC-V~JlW$i#_}oP zL%9C!gKlckTOoG3@Ji_2^BQm!I0w8jv-tz2to;LSS>tx5k*`4m?|^C<&8VF%h4mF+ zRnnTIdcQJI%ZgC)Mqe`EdbsKH=3WTBR=?kly>(yk%a0oL>-k?eUROLv?wpnY0000< KMNUMnLSTYT2ROq3 literal 0 HcmV?d00001 diff --git a/res/pal.png b/res/pal.png new file mode 100644 index 0000000000000000000000000000000000000000..e025a2e2850626e9db89a2406b27d60776573437 GIT binary patch literal 756 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipc5 z1QHZPg;%)%0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~0006@ zNkl) z9KiZyK|~^8KQIIg1EYWfw}6|f+A0-+X<#cb4%`4f*#pzYTOd|d${GQ{ZlDSL&Uknj z*UJPDwqQFDIbyy8i@-AQ8rTPH?u!VFfy2NLTj2*_IrwPCI>cf_uA(O3&Ho^Z$m5vgUlz>Dxzmz77rL)U-T>W@7muK%;u z=F^x73_Jp^ng1_$A>aaV!15Jf+VV}VXV~T81vhA?Y$pS&77Wx9d%a{Uo3$+n_4{tl zdsjc(vj#-u5OBqno*TV`z#h9lg!t(47cL(yawCd?EtW3=M}YH|XT=wnZz}>|)+znA zsJV!o6sSw`FejsrV@Cr(2RpdlisT<^Qm0jTOX;9f?{Rp5*{X)4!g*w0}$ z4KA22(F&;I~c>(@eR^C;y20000setPixmap(QPixmap(":/res/vj_title_small.png")); layout->addWidget(image); -// QString s = QString(tr("(Last full build was on %1 %2)
")).arg(__DATE__).arg(__TIME__); - QString s = QString(tr("SVN %1
")).arg(__DATE__); +// QString s = QString(tr("SVN %1
")).arg(__DATE__); + QString s;// = QString(""); s.append(tr( "" - "" + "" "" "" "" diff --git a/src/gui/mainwin.cpp b/src/gui/mainwin.cpp index 60e7fbd..66faffc 100644 --- a/src/gui/mainwin.cpp +++ b/src/gui/mainwin.cpp @@ -31,6 +31,7 @@ #include "settings.h" #include "filepicker.h" #include "configdialog.h" +#include "version.h" #include "jaguar.h" #include "tom.h" @@ -42,10 +43,6 @@ // You'll need a copy of jagboot.h & jagcd.h for this to work...! //#define USE_BUILT_IN_BIOS -// Uncomment this for an official Virtual Jaguar release -//#define VJ_RELEASE_VERSION "2.0.0" -#warning !!! FIX !!! Figure out how to use this in GUI.CPP as well! - #ifdef USE_BUILT_IN_BIOS #include "jagboot.h" #include "jagcd.h" @@ -69,18 +66,18 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit videoWidget = new GLWidget(this); setCentralWidget(videoWidget); setWindowIcon(QIcon(":/res/vj-icon.png")); - setWindowTitle("Virtual Jaguar v2.0.0"); - - ReadSettings(); - setUnifiedTitleAndToolBarOnMac(true); +// setWindowTitle("Virtual Jaguar v2.0.0"); + setWindowTitle("Virtual Jaguar " VJ_RELEASE_VERSION ); -#warning "!!! Save/Restore window location for FilePickerWindow !!!" aboutWin = new AboutWindow(this); filePickWin = new FilePickerWindow(this); videoWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + ReadSettings(); + setUnifiedTitleAndToolBarOnMac(true); + // Create actions quitAppAct = new QAction(tr("E&xit"), this); @@ -99,6 +96,7 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit pauseAct->setStatusTip(tr("Toggles the running state")); pauseAct->setCheckable(true); pauseAct->setDisabled(true); + pauseAct->setShortcut(QKeySequence(tr("Esc"))); connect(pauseAct, SIGNAL(triggered()), this, SLOT(ToggleRunState())); zoomActs = new QActionGroup(this); @@ -120,12 +118,12 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit tvTypeActs = new QActionGroup(this); - ntscAct = new QAction(QIcon(":/res/generic.png"), tr("NTSC"), tvTypeActs); + ntscAct = new QAction(QIcon(":/res/ntsc.png"), tr("NTSC"), tvTypeActs); ntscAct->setStatusTip(tr("Sets Jaguar to NTSC mode")); ntscAct->setCheckable(true); connect(ntscAct, SIGNAL(triggered()), this, SLOT(SetNTSC())); - palAct = new QAction(QIcon(":/res/generic.png"), tr("PAL"), tvTypeActs); + palAct = new QAction(QIcon(":/res/pal.png"), tr("PAL"), tvTypeActs); palAct->setStatusTip(tr("Sets Jaguar to PAL mode")); palAct->setCheckable(true); connect(palAct, SIGNAL(triggered()), this, SLOT(SetPAL())); @@ -135,17 +133,18 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit blurAct->setCheckable(true); connect(blurAct, SIGNAL(triggered()), this, SLOT(ToggleBlur())); - aboutAct = new QAction(QIcon(":/res/generic.png"), tr("&About..."), this); + aboutAct = new QAction(QIcon(":/res/vj-icon.png"), tr("&About..."), this); aboutAct->setStatusTip(tr("Blatant self-promotion")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(ShowAboutWin())); -#warning "!!! Set up a decent keyboard shortcut for Insert Cartridge !!!" filePickAct = new QAction(QIcon(":/res/software.png"), tr("&Insert Cartridge..."), this); filePickAct->setStatusTip(tr("Insert a cartridge into Virtual Jaguar")); + filePickAct->setShortcut(QKeySequence(tr("Ctrl+i"))); connect(filePickAct, SIGNAL(triggered()), this, SLOT(InsertCart())); configAct = new QAction(QIcon(":/res/generic.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())); // Misc. connections... @@ -197,16 +196,8 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit connect(timer, SIGNAL(timeout()), this, SLOT(Timer())); timer->start(20); - // NOTE: Keyboards/joysticks will *not* work until SDL is brought back in, or - // the key handling is improved in Qt... - // Wait a minute... it seems they already are... So why no keyboard love? - -#ifdef VJ_RELEASE_VERSION WriteLog("Virtual Jaguar %s (Last full build was on %s %s)\n", VJ_RELEASE_VERSION, __DATE__, __TIME__); -#else - WriteLog("Virtual Jaguar SVN %s (Last full build was on %s %s)\n", __DATE__, __DATE__, __TIME__); -#endif - WriteLog("Initializing jaguar subsystem...\n"); + WriteLog("VJ: Initializing jaguar subsystem...\n"); JaguarInit(); // Get the BIOS ROM @@ -218,32 +209,14 @@ MainWin::MainWin(): running(false), powerButtonOn(false), showUntunedTankCircuit #else // What would be nice here would be a way to check if the BIOS was loaded so that we // could disable the pushbutton on the Misc Options menu... !!! FIX !!! [DONE here, but needs to be fixed in GUI as well!] -WriteLog("About to attempt to load BIOSes...\n"); -#if 1 + WriteLog("VJ: About to attempt to load BIOSes...\n"); //This is short-circuiting the file finding thread... ??? WHY ??? +//Not anymore. Was related to a QImage object creation/corruption bug elsewhere. BIOSLoaded = (JaguarLoadROM(jaguarBootROM, vjs.jagBootPath) == 0x20000 ? true : false); -#else - BIOSLoaded = false; -#endif WriteLog("VJ: BIOS is %savailable...\n", (BIOSLoaded ? "" : "not ")); CDBIOSLoaded = (JaguarLoadROM(jaguarCDBootROM, vjs.CDBootPath) == 0x40000 ? true : false); WriteLog("VJ: CD BIOS is %savailable...\n", (CDBIOSLoaded ? "" : "not ")); #endif - - SET32(jaguarMainRAM, 0, 0x00200000); // Set top of stack... - -//Let's try this... -// JaguarLoadFile("./software/Rayman (World).j64"); -// JaguarLoadFile("./software/I-War (World).j64"); -// JaguarLoadFile("./software/Alien vs Predator (World).j64"); -//no JaguarLoadFile("./software/battlesphere.bin"); -// JaguarLoadFile("./software/Battle Sphere Gold (World).j64"); -// JaguarLoadFile("./software/Rayman (USA, Europe).zip"); -//This is crappy!!! !!! FIX !!! -//Is this even needed any more? Hmm. Maybe. Dunno. -//Seems like it is... But then again, maybe not. Have to test it to see. -//WriteLog("GUI: Resetting Jaguar...\n"); -// JaguarReset(); } void MainWin::closeEvent(QCloseEvent * event) @@ -464,7 +437,10 @@ void MainWin::TogglePowerState(void) else { showUntunedTankCircuit = (cartridgeLoaded ? false : true); + pauseAct->setChecked(false); pauseAct->setDisabled(!cartridgeLoaded); + +//(Err, what's so crappy about this? It seems to do what it's supposed to...) //This is crappy!!! !!! FIX !!! //Is this even needed any more? Hmm. Maybe. Dunno. //Seems like it is... But then again, maybe not. Have to test it to see. @@ -552,25 +528,17 @@ void MainWin::InsertCart(void) void MainWin::LoadSoftware(QString file) { running = false; // Prevent bad things(TM) from happening... - SET32(jaguarMainRAM, 0, 0x00200000); // Set top of stack... + SET32(jaguarMainRAM, 0, 0x00200000); // Set top of stack... cartridgeLoaded = (JaguarLoadFile(file.toAscii().data()) ? true : false); -#if 0 - showUntunedTankCircuit = !cartridgeLoaded; -//This is crappy!!! !!! FIX !!! -//Is this even needed any more? Hmm. Maybe. Dunno. -//Seems like it is... But then again, maybe not. Have to test it to see. - WriteLog("GUI: Resetting Jaguar...\n"); - JaguarReset(); - running = true; -#else powerAct->setDisabled(false); powerAct->setChecked(true); powerButtonOn = false; TogglePowerState(); -#endif - QString newTitle = QString("Virtual Jaguar 2.0.0 - Now playing: %1") +// QString newTitle = QString("Virtual Jaguar v2.0.0 - Now playing: %1") + QString newTitle = QString("Virtual Jaguar " VJ_RELEASE_VERSION + " - Now playing: %1") .arg(filePickWin->GetSelectedPrettyName()); setWindowTitle(newTitle); } @@ -595,6 +563,8 @@ void MainWin::ReadSettings(void) QSize size = settings.value("size", QSize(400, 400)).toSize(); resize(size); move(pos); + pos = settings.value("cartLoadPos", QPoint(200, 200)).toPoint(); + filePickWin->move(pos); zoomLevel = settings.value("zoom", 1).toInt(); @@ -670,6 +640,7 @@ void MainWin::WriteSettings(void) QSettings settings("Underground Software", "Virtual Jaguar"); settings.setValue("pos", pos()); settings.setValue("size", size()); + settings.setValue("cartLoadPos", filePickWin->pos()); settings.setValue("zoom", zoomLevel); diff --git a/src/gui/virtualjaguar.pro b/src/gui/virtualjaguar.pro deleted file mode 100644 index 8d937af..0000000 --- a/src/gui/virtualjaguar.pro +++ /dev/null @@ -1,34 +0,0 @@ -# Use 'qmake -o Makefile ttedit.pro' - -CONFIG += qt -#debug doesn't do shit -#CONFIG += qt debug - -QT += opengl - -HEADERS += app.h -HEADERS += mainwin.h -HEADERS += glwidget.h -HEADERS += about.h -HEADERS += filepicker.h -HEADERS += filethread.h -HEADERS += configdialog.h -HEADERS += generaltab.h - -SOURCES += app.cpp -SOURCES += mainwin.cpp -SOURCES += glwidget.cpp -SOURCES += about.cpp -SOURCES += filepicker.cpp -SOURCES += filethread.cpp -SOURCES += configdialog.cpp -SOURCES += generaltab.cpp - -RESOURCES += virtualjaguar.qrc - -OBJECTS_DIR = ../../obj -MOC_DIR = ../../obj -RCC_DIR = ../../obj -UI_DIR = ../../obj -#Nope, don't do dookey -#INCLUDES_DIR = .. diff --git a/src/gui/virtualjaguar.qrc b/src/gui/virtualjaguar.qrc index a29ef87..0f45398 100644 --- a/src/gui/virtualjaguar.qrc +++ b/src/gui/virtualjaguar.qrc @@ -13,6 +13,8 @@ ../../res/controller.png../../res/insert.png../../res/software.png + ../../res/ntsc.png + ../../res/pal.png../../res/upper-left.png../../res/upper-right.png -- 2.37.2
Version: 2.0.0
Version: " + VJ_RELEASE_VERSION " (" VJ_RELEASE_SUBVERSION ")" + "
Coders: James L. Hammons (shamus)
Niels Wagenaar (nwagenaar)
Carwin Jones (Caz)
Adam Green
Testers: Guruma
Homepage: http://icculus.org/virtualjaguar/