// GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Carwin Jones (BeOS)
// Cleanups and endian wrongness amelioration by James L. Hammons
// Note: Endian wrongness probably stems from the MAME origins of this emu and
-// the braindead way in which MAME handles memory. :-)
+// the braindead way in which MAME handled memory when this was written. :-)
//
// JLH = James L. Hammons
//
#include "eeprom.h"
#include "event.h"
#include "gpu.h"
-//#include "gui.h"
#include "jerry.h"
#include "joystick.h"
#include "log.h"
#include "mmu.h"
#include "settings.h"
#include "tom.h"
-#include "video.h"
#define CPU_DEBUG
//Do this in makefile??? Yes! Could, but it's easier to define here...
#define ABORT_ON_ILLEGAL_INSTRUCTIONS
//#define ABORT_ON_OFFICIAL_ILLEGAL_INSTRUCTION
#define CPU_DEBUG_MEMORY
+//#define LOG_CD_BIOS_CALLS
// Private function prototypes
bool BIOSLoaded = false;
bool CDBIOSLoaded = false;
+uint32 * backbuffer;
+
#ifdef CPU_DEBUG_MEMORY
uint8 writeMemMax[0x400000], writeMemMin[0x400000];
uint8 readMem[0x400000];
WriteLog("--> [Calling BusWrite2] D2: %08X\n", m68k_get_reg(NULL, M68K_REG_D2));
// m68k_set_reg(M68K_REG_D2, 0x12345678);
}//*/
+
+#ifdef LOG_CD_BIOS_CALLS
/*
CD_init:: -> $3000
BIOS_VER:: -> $3004
WriteLog("\t\tA0=%08X, A1=%08X, D0=%08X, D1=%08X, D2=%08X\n",
m68k_get_reg(NULL, M68K_REG_A0), m68k_get_reg(NULL, M68K_REG_A1),
m68k_get_reg(NULL, M68K_REG_D0), m68k_get_reg(NULL, M68K_REG_D1), m68k_get_reg(NULL, M68K_REG_D2));
-//*/
+#endif
+
#ifdef ABORT_ON_ILLEGAL_INSTRUCTIONS
if (!m68k_is_valid_instruction(m68k_read_memory_16(m68kPC), M68K_CPU_TYPE_68000))
{
//extern uint32 * backbuffer;
void JaguarReset(void)
{
-//NOTE: This causes a (virtual) crash if this is set in the config but not found... !!! FIX !!!
- if (vjs.useJaguarBIOS)
+ // Only use the system BIOS if it's available...!
+ if (vjs.useJaguarBIOS && (biosAvailable & (BIOS_NORMAL | BIOS_STUB1 | BIOS_STUB2)))
memcpy(jaguarMainRAM, jaguarBootROM, 8);
else
SET32(jaguarMainRAM, 4, jaguarRunAddress);
// if (vc == vbb)
{
JoystickExec();
- RenderBackbuffer();
+//We comment this out so that the GUI can manage this instead. Which is how it should be anyway.
+// RenderBackbuffer();
TOMResetBackbuffer(backbuffer);
frameDone = true;
}//*/
// This isn't currently used, but maybe it should be...
void RenderCallback(void)
{
- RenderBackbuffer();
+// RenderBackbuffer();
TOMResetBackbuffer(backbuffer);
// SetCallbackTime(RenderCallback, 33303.082); // # Scanlines * scanline time
SetCallbackTime(RenderCallback, 16651.541); // # Scanlines * scanline time