#echo "Cross compiling for Win32..."
echo "Cross compiling for Win64..."
export PATH=/opt/mxe/usr/bin:$PATH
-rm makefile-qt
+#rm makefile-qt
#make CROSS=i686-pc-mingw32.static-
make CROSS=x86_64-w64-mingw32.static-
#rel=`svn info | grep Revision | cut -f 2 -d ' '`
o zlib v1.2.5
o libcdio v0.90 or higher (optional, for Jaguar CD support)
o OpenGL libraries
- o Qt 4.7.3 or higher (but not Qt 5!)
+ o Qt 5.3.2 or higher
o supported OS (BeOS, Linux, FreeBSD and WIN32 through mingw, MacOS); other
OSs may work to but you may need to change some items in the Makefile.
config for the new controller without destroying the old one. This also means
that if you have *no* controllers, you can still play VJ with the keyboard.
[Shamus]
-* Fixed a few problems with the DSP a timing; as a result, the sound in Rayman
+* Fixed a few problems with the DSP timing; as a result, the sound in Rayman
and the FACTS demo is correct now. [Shamus]
* Removed toolbar from full screen mode. [Shamus]
* Added analog inputs to gamepad support. [Shamus]
// JLH = James Hammons <jlhamm@acm.org>
//
// Who When What
-// --- ---------- -------------------------------------------------------------
+// --- ---------- -----------------------------------------------------------
// JLH 01/16/2010 Created this log ;-)
//
// Various conditional compilation goodies...
-//#define LOG_BLITS
+#define LOG_BLITS
#define USE_ORIGINAL_BLITTER
//#define USE_MIDSUMMER_BLITTER
// JLH = James Hammons <jlhamm@acm.org>
//
// Who When What
-// --- ---------- -------------------------------------------------------------
+// --- ---------- -----------------------------------------------------------
// JLH 08/14/2012 Created this file
//
hbox1->addWidget(bpm);
hbox1->addWidget(bpmAddress);
-// QFont fixedFont("Lucida Console", 8, QFont::Normal);
- QFont fixedFont("", 8, QFont::Normal);
+ QFont fixedFont("Lucida Console", 8, QFont::Normal);
+// QFont fixedFont("", 8, QFont::Normal);
fixedFont.setStyleHint(QFont::TypeWriter);
text->setFont(fixedFont);
//// layout->setSizeConstraint(QLayout::SetFixedSize);
// Need to set the size as well...
// resize(560, 480);
-// QFont fixedFont("Lucida Console", 8, QFont::Normal);
- QFont fixedFont("", 8, QFont::Normal);
+ QFont fixedFont("Lucida Console", 8, QFont::Normal);
+// QFont fixedFont("", 8, QFont::Normal);
fixedFont.setStyleHint(QFont::TypeWriter);
text->setFont(fixedFont);
//// layout->setSizeConstraint(QLayout::SetFixedSize);
// JLH = James Hammons <jlhamm@acm.org>
//
// Who When What
-// --- ---------- -------------------------------------------------------------
+// --- ---------- -----------------------------------------------------------
// JLH 08/14/2012 Created this file
//
// Need to set the size as well...
// resize(560, 480);
-// QFont fixedFont("Lucida Console", 8, QFont::Normal);
- QFont fixedFont("", 8, QFont::Normal);
+ QFont fixedFont("Lucida Console", 8, QFont::Normal);
+// QFont fixedFont("", 8, QFont::Normal);
fixedFont.setStyleHint(QFont::TypeWriter);
text->setFont(fixedFont);
//// layout->setSizeConstraint(QLayout::SetFixedSize);
// Need to set the size as well...
// resize(560, 480);
-// QFont fixedFont("Lucida Console", 8, QFont::Normal);
- QFont fixedFont("", 8, QFont::Normal);
+ QFont fixedFont("Lucida Console", 8, QFont::Normal);
+// QFont fixedFont("", 8, QFont::Normal);
fixedFont.setStyleHint(QFont::TypeWriter);
text->setFont(fixedFont);
//// layout->setSizeConstraint(QLayout::SetFixedSize);
if (objectType == 3)
{
- // Recursion needed to follow all links! This does depth-first recursion
- // on the not-taken objects
- DiscoverObjects(address + 8);
+ // Branch if YPOS < 2047 can be treated as a GOTO, so don't do any
+ // discovery in that case. Otherwise, have at it:
+ if ((lo & 0xFFFF) != 0x7FFB)
+ // Recursion needed to follow all links! This does depth-first
+ // recursion on the not-taken objects (N.B.: The object following
+ // the branch object is at +16, not +8!)
+ DiscoverObjects(address + 16);
}
// Get the next object...
list += "<br>";
if (objectType == 0)
- DumpFixedObject(list, OPLoadPhrase(address + 0), OPLoadPhrase(address + 8));
+ DumpFixedObject(list, OPLoadPhrase(address + 0),
+ OPLoadPhrase(address + 8));
if (objectType == 1)
- DumpScaledObject(list, OPLoadPhrase(address + 0), OPLoadPhrase(address + 8),
- OPLoadPhrase(address + 16));
+ DumpScaledObject(list, OPLoadPhrase(address + 0),
+ OPLoadPhrase(address + 8), OPLoadPhrase(address + 16));
if (address == link) // Ruh roh...
{
// Need to set the size as well...
// resize(560, 480);
-// QFont fixedFont("Lucida Console", 8, QFont::Normal);
- QFont fixedFont("", 8, QFont::Normal);
+ QFont fixedFont("Lucida Console", 8, QFont::Normal);
+// QFont fixedFont("", 8, QFont::Normal);
fixedFont.setStyleHint(QFont::TypeWriter);
text->setFont(fixedFont);
//// layout->setSizeConstraint(QLayout::SetFixedSize);
// 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
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);
}
// add it in.
if (Gamepad::numJoysticks == 0)
{
- ConnectProfileToDevice(0);
+#ifdef DEBUG_PROFILES
+printf("AutoConnect: Setting up keyboard...\n");
+#endif
+//NO! ConnectProfileToDevice(0);
+#warning "!!! Need to set up scanning for multiple keyboard profiles !!!"
+ ConnectProfileToController(0, 0);
return;
}
{
int deviceNum = FindDeviceNumberForName(Gamepad::GetJoystickName(i));
// bool p1Overwriteable =
+#ifdef DEBUG_PROFILES
+printf("AutoConnect: Attempting to set up profile for device '%s' (%i)\n", Gamepad::GetJoystickName(i), deviceNum);
+#endif
for(int j=0; j<numberOfProfiles; j++)
{
// N.B.: The keyboard is always mapped to profile #0, so we can locate it
// easily. :-)
int slot = profile[0].preferredSlot;
+#ifdef DEBUG_PROFILES
+printf("AutoConnect: Attempting to connect keyboard... (gamepadIDSlot1/2 = %i/%i)\n", gamepadIDSlot1, gamepadIDSlot2);
+#endif
if ((slot == CONTROLLER1) && (gamepadIDSlot1 == -1))
controller1Profile = 0;
controller2Profile = 0;
}
+#ifdef DEBUG_PROFILES
+printf("AutoConnect: Profiles found: [%i, %i]\n", controller1Profile, controller2Profile);
+#endif
// Finally, attempt to connect profiles to controllers
ConnectProfileToController(controller1Profile, 0);
ConnectProfileToController(controller2Profile, 1);
}
+//unused...
int ConnectProfileToDevice(int deviceNum, int gamepadID/*= -1*/)
{
// bool found1 = false;
uint8_t cc = (p0 >> 14) & 0x03;
uint32_t link = (p0 >> 21) & 0x3FFFF8;
+ // If no branch is taken, we need to ensure that it goes to the
+ // next object (it doesn't go +8, but +16 to following object)
+ op_pointer += 8;
+
// if ((ypos!=507)&&(ypos!=25))
// WriteLog("\t%i%s%i link=0x%.8x\n",halfline,condition_to_str[cc],ypos>>1,link);
switch (cc)
//if (offset == OBF)
// WriteLog("TOM: Object Processor Flag written by %s: %u\n", whoName[who], data);
if (offset == VMODE)
- WriteLog("TOM: Video Mode written by %s: %04X. PWIDTH = %u, MODE = %s, flags:%s%s (VC = %u)\n", whoName[who], data, ((data >> 9) & 0x07) + 1, videoMode_to_str[(data & MODE) >> 1], (data & BGEN ? " BGEN" : ""), (data & VARMOD ? " VARMOD" : ""), GET16(tomRam8, VC));
+ WriteLog("TOM: Video Mode written by %s: %04X. PWIDTH = %u, MODE = %s, flags:%s%s (VC = %u) (M68K PC = %06X)\n", whoName[who], data, ((data >> 9) & 0x07) + 1, videoMode_to_str[(data & MODE) >> 1], (data & BGEN ? " BGEN" : ""), (data & VARMOD ? " VARMOD" : ""), GET16(tomRam8, VC), m68k_get_reg(NULL, M68K_REG_PC));
if (offset == BORD1)
WriteLog("TOM: Border 1 written by %s: $%04X\n", whoName[who], data);
if (offset == BORD2)