+ uint16 opcode = GPUReadWord(gpu_pc, GPU);
+ uint32 index = opcode >> 10;
+ gpu_instruction = opcode; // Added for GPU #3...
+ gpu_opcode_first_parameter = (opcode >> 5) & 0x1F;
+ gpu_opcode_second_parameter = opcode & 0x1F;
+/*if (gpu_pc == 0xF03BE8)
+WriteLog("Start of OP frame write...\n");
+if (gpu_pc == 0xF03EEE)
+WriteLog("--> Writing BRANCH object ---\n");
+if (gpu_pc == 0xF03F62)
+WriteLog("--> Writing BITMAP object ***\n");//*/
+/*if (gpu_pc == 0xF03546)
+{
+ WriteLog("\n--> GPU PC: F03546\n");
+ GPUDumpRegisters();
+ GPUDumpDisassembly();
+}//*/
+/*if (gpu_pc == 0xF033F6)
+{
+ WriteLog("\n--> GPU PC: F033F6\n");
+ GPUDumpRegisters();
+ GPUDumpDisassembly();
+}//*/
+/*if (gpu_pc == 0xF033CC)
+{
+ WriteLog("\n--> GPU PC: F033CC\n");
+ GPUDumpRegisters();
+ GPUDumpDisassembly();
+}//*/
+/*if (gpu_pc == 0xF033D6)
+{
+ WriteLog("\n--> GPU PC: F033D6 (#%d)\n", testCount++);
+ GPUDumpRegisters();
+ GPUDumpMemory();
+}//*/
+/*if (gpu_pc == 0xF033D8)
+{
+ WriteLog("\n--> GPU PC: F033D8 (#%d)\n", testCount++);
+ GPUDumpRegisters();
+ GPUDumpMemory();
+}//*/
+/*if (gpu_pc == 0xF0358E)
+{
+ WriteLog("\n--> GPU PC: F0358E (#%d)\n", testCount++);
+ GPUDumpRegisters();
+ GPUDumpMemory();
+}//*/
+/*if (gpu_pc == 0xF034CA)
+{
+ WriteLog("\n--> GPU PC: F034CA (#%d)\n", testCount++);
+ GPUDumpRegisters();
+}//*/
+/*if (gpu_pc == 0xF034CA)
+{
+ len = gpu_reg[1] + 4;//, r9save = gpu_reg[9];
+ WriteLog("\nAbout to subtract [#%d] (R14=%08X, R15=%08X, R9=%08X):\n ", testCount++, gpu_reg[14], gpu_reg[15], gpu_reg[9]);
+ for(int i=0; i<len; i+=4)
+ WriteLog(" %08X", GPUReadLong(gpu_reg[15]+i));
+ WriteLog("\n ");
+ for(int i=0; i<len; i+=4)
+ WriteLog(" %08X", GPUReadLong(gpu_reg[14]+i));
+ WriteLog("\n\n");
+}
+if (gpu_pc == 0xF034DE)
+{
+ WriteLog("\nSubtracted! (R14=%08X, R15=%08X):\n ", gpu_reg[14], gpu_reg[15]);
+ for(int i=0; i<len; i+=4)
+ WriteLog(" %08X", GPUReadLong(gpu_reg[15]+i));
+ WriteLog("\n ");
+ for(int i=0; i<len; i+=4)
+ WriteLog(" %08X", GPUReadLong(gpu_reg[14]+i));
+ WriteLog("\n ");
+ for(int i=0; i<len; i+=4)
+ WriteLog(" --------");
+ WriteLog("\n ");
+ for(int i=0; i<len; i+=4)
+ WriteLog(" %08X", GPUReadLong(gpu_reg[9]+4+i));
+ WriteLog("\n\n");
+}//*/
+/*if (gpu_pc == 0xF035C8)
+{
+ WriteLog("\n--> GPU PC: F035C8 (#%d)\n", testCount++);
+ GPUDumpRegisters();
+ GPUDumpDisassembly();
+}//*/
+
+if (gpu_start_log)
+{
+// gpu_reset_stats();
+static char buffer[512];
+dasmjag(JAGUAR_GPU, buffer, gpu_pc);
+WriteLog("GPU: [%08X] %s (RM=%08X, RN=%08X) -> ", gpu_pc, buffer, RM, RN);
+}//*/
+//$E400 -> 1110 01 -> $39 -> 57
+//GPU #1