generalTab->edit4->setText(vjs.ROMPath);
generalTab->useBIOS->setChecked(vjs.useJaguarBIOS);
+ generalTab->useGPU->setChecked(vjs.GPUEnabled);
generalTab->useDSP->setChecked(vjs.DSPEnabled);
generalTab->useHostAudio->setChecked(vjs.audioEnabled);
strcpy(vjs.ROMPath, generalTab->edit4->text().toAscii().data());
vjs.useJaguarBIOS = generalTab->useBIOS->isChecked();
+ vjs.GPUEnabled = generalTab->useGPU->isChecked();
vjs.DSPEnabled = generalTab->useDSP->isChecked();
vjs.audioEnabled = generalTab->useHostAudio->isChecked();
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?",
"@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
- "[", "]", "\\", "^", "_", "`",
+ "[", "\\", "]", "^", "_", "`",
"$61", "$62", "$63", "$64", "$65", "$66", "$67", "$68", "$69", "$6A", "$6B", "$6C", "$6D",
"$6E", "$6F", "$70", "$71", "$72", "$73", "$74", "$75", "$76", "$77", "$78", "$79", "$7A",
"{", "|", "}", "~"
// Checkboxes...
useBIOS = new QCheckBox(tr("Enable Jaguar BIOS"));
+ useGPU = new QCheckBox(tr("Enable GPU"));
useDSP = new QCheckBox(tr("Enable DSP"));
useHostAudio = new QCheckBox(tr("Enable audio playback (requires DSP)"));
useUnknownSoftware = new QCheckBox(tr("Show all files in file chooser"));
layout4->addWidget(useBIOS);
+ layout4->addWidget(useGPU);
layout4->addWidget(useDSP);
layout4->addWidget(useHostAudio);
layout4->addWidget(useUnknownSoftware);
QLineEdit * edit4;
QCheckBox * useBIOS;
+ QCheckBox * useGPU;
QCheckBox * useDSP;
QCheckBox * useHostAudio;
QCheckBox * useUnknownSoftware;
mainLayout->addWidget(label);
setLayout(mainLayout);
setWindowTitle(tr("Grab"));
+
+ // Will this make Mac OSX work???
+ setFocusPolicy(Qt::StrongFocus);
}
KeyGrabber::~KeyGrabber()
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();
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);
BUTCHExec(RISCCyclesPerScanline);
//if (start_logging)
// WriteLog("About to execute GPU (%u)...\n", i);
- GPUExec(RISCCyclesPerScanline);
+ if (vjs.GPUEnabled)
+ GPUExec(RISCCyclesPerScanline);
if (vjs.DSPEnabled)
{
//WriteLog("JEN: Time to next event (%u) is %f usec (%u RISC cycles)...\n", nextEvent, timeToNextEvent, USEC_TO_RISC_CYCLES(timeToNextEvent));
m68k_execute(USEC_TO_M68K_CYCLES(timeToNextEvent));
- GPUExec(USEC_TO_RISC_CYCLES(timeToNextEvent));
+
+ if (vjs.GPUEnabled)
+ GPUExec(USEC_TO_RISC_CYCLES(timeToNextEvent));
if (vjs.DSPEnabled)
{
// anyway.
// This seems to be the case (at least according to the Midsummer docs)...!
+// This is to test using palette zeroes instead of bit zeroes...
+// And it seems that this is wrong, index == 0 is transparent apparently... :-/
+//#define OP_USES_PALETTE_ZERO
+
if (depth == 0) // 1 BPP
{
// The LSB of flags is OPFLAG_REFLECT, so sign extend it and or 2 into it.
while (i++ < 64)
{
uint8 bit = pixels >> 63;
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bit == 0)
+#else
+ if (flagTRANS && (paletteRAM16[index | bit] == 0))
+#endif
; // Do nothing...
else
{
// This only works for the palettized modes (1 - 8 BPP), since we actually have to
// copy data from memory in 16 BPP mode (or does it? Isn't this the same as the CLUT case?)
// No, it isn't because we read the memory in an endian safe way--this *won't* work...
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bits == 0)
+#else
+ if (flagTRANS && (paletteRAM16[index | bits] == 0))
+#endif
; // Do nothing...
else
{
// This only works for the palettized modes (1 - 8 BPP), since we actually have to
// copy data from memory in 16 BPP mode (or does it? Isn't this the same as the CLUT case?)
// No, it isn't because we read the memory in an endian safe way--this *won't* work...
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bits == 0)
+#else
+ if (flagTRANS && (paletteRAM16[index | bits] == 0))
+#endif
; // Do nothing...
else
{
// This only works for the palettized modes (1 - 8 BPP), since we actually have to
// copy data from memory in 16 BPP mode (or does it? Isn't this the same as the CLUT case?)
// No, it isn't because we read the memory in an endian safe way--this *won't* work...
+//This would seem to be problematic...
+//Because it's the palette entry being zero that makes the pixel transparent...
+//Let's try it and see.
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bits == 0)
+#else
+ if (flagTRANS && (paletteRAM16[bits] == 0))
+#endif
; // Do nothing...
else
{
// This only works for the palettized modes (1 - 8 BPP), since we actually have to
// copy data from memory in 16 BPP mode (or does it? Isn't this the same as the CLUT case?)
// No, it isn't because we read the memory in an endian safe way--it *won't* work...
- if (flagTRANS && (bitsLo | bitsHi) == 0)
+//This doesn't seem right... Let's try the encoded black value ($8800):
+//Apparently, CRY 0 maps to $8800...
+ if (flagTRANS && ((bitsLo | bitsHi) == 0))
+// if (flagTRANS && (bitsHi == 0x88) && (bitsLo == 0x00))
; // Do nothing...
else
{
{
uint8 bits = pixels >> 63;
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bits == 0)
+#else
+ if (flagTRANS && (paletteRAM16[index | bits] == 0))
+#endif
; // Do nothing...
else
{
{
uint8 bits = pixels >> 62;
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bits == 0)
+#else
+ if (flagTRANS && (paletteRAM16[index | bits] == 0))
+#endif
; // Do nothing...
else
{
{
uint8 bits = pixels >> 60;
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bits == 0)
+#else
+ if (flagTRANS && (paletteRAM16[index | bits] == 0))
+#endif
; // Do nothing...
else
{
{
uint8 bits = pixels >> 56;
+#ifndef OP_USES_PALETTE_ZERO
if (flagTRANS && bits == 0)
+#else
+ if (flagTRANS && (paletteRAM16[bits] == 0))
+#endif
; // Do nothing...
else
{
{
uint8 bitsHi = pixels >> 56, bitsLo = pixels >> 48;
- if (flagTRANS && (bitsLo | bitsHi) == 0)
+//This doesn't seem right... Let's try the encoded black value ($8800):
+//Apparently, CRY 0 maps to $8800...
+ if (flagTRANS && ((bitsLo | bitsHi) == 0))
+// if (flagTRANS && (bitsHi == 0x88) && (bitsLo == 0x00))
; // Do nothing...
else
{
int32 joyport; // Joystick port
bool hardwareTypeNTSC; // Set to false for PAL
bool useJaguarBIOS;
+ bool GPUEnabled;
bool DSPEnabled;
bool usePipelinedDSP;
bool fullscreen;