naomi: use new logging
This commit is contained in:
parent
c60e2d29e8
commit
74186d2518
|
@ -190,7 +190,7 @@ u32 AWCartridge::ReadMem(u32 address, u32 size) {
|
|||
if (roffset >= (mpr_offset / 2))
|
||||
roffset += mpr_bank * 0x4000000;
|
||||
u16 retval = (RomSize > (roffset * 2)) ? ((u16 *)RomPtr)[roffset] : 0; // not endian-safe?
|
||||
//printf("AWCART ReadMem %08x: %x\n", address, retval);
|
||||
DEBUG_LOG(NAOMI, "AWCART ReadMem %08x: %x", address, retval);
|
||||
return retval;
|
||||
}
|
||||
default:
|
||||
|
@ -240,7 +240,7 @@ void AWCartridge::WriteMem(u32 address, u32 data, u32 size)
|
|||
break;
|
||||
|
||||
default:
|
||||
EMUERROR("%X: %d sz %d", address, data, size);
|
||||
INFO_LOG(NAOMI, "%X: %d sz %d", address, data, size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -336,7 +336,7 @@ u16 AWCartridge::decrypt(u16 cipherText, u32 address, const u32 key)
|
|||
void AWCartridge::Init()
|
||||
{
|
||||
mpr_offset = decrypt16(0x58/2) | (decrypt16(0x5a/2) << 16);
|
||||
printf("AWCartridge::SetKey rombd_key %08x mpr_offset %08x\n", rombd_key, mpr_offset);
|
||||
INFO_LOG(NAOMI, "AWCartridge::SetKey rombd_key %08x mpr_offset %08x", rombd_key, mpr_offset);
|
||||
device_reset();
|
||||
}
|
||||
|
||||
|
|
|
@ -409,7 +409,7 @@ void GDCartridge::find_file(const char *name, const u8 *dir_sector, u32 &file_st
|
|||
{
|
||||
file_start = 0;
|
||||
file_size = 0;
|
||||
printf("Looking for file [%s]\n", name);
|
||||
DEBUG_LOG(NAOMI, "Looking for file [%s]", name);
|
||||
for(u32 pos = 0; pos < 2048; pos += dir_sector[pos]) {
|
||||
int fnlen = 0;
|
||||
if(!(dir_sector[pos+25] & 2)) {
|
||||
|
@ -441,7 +441,7 @@ void GDCartridge::find_file(const char *name, const u8 *dir_sector, u32 &file_st
|
|||
(dir_sector[pos+12] << 16) |
|
||||
(dir_sector[pos+13] << 24));
|
||||
|
||||
printf("start %08x size %08x\n", file_start, file_size);
|
||||
DEBUG_LOG(NAOMI, "start %08x size %08x", file_start, file_size);
|
||||
break;
|
||||
}
|
||||
if (dir_sector[pos] == 0)
|
||||
|
@ -470,7 +470,7 @@ void GDCartridge::device_start()
|
|||
if (RomSize > 0 && gdrom_name != NULL)
|
||||
{
|
||||
if (RomSize >= 0x4000) {
|
||||
printf("Real PIC binary found\n");
|
||||
DEBUG_LOG(NAOMI, "Real PIC binary found");
|
||||
for(int i=0;i<7;i++)
|
||||
name[i] = picdata[0x7c0+i*2];
|
||||
for(int i=0;i<7;i++)
|
||||
|
@ -499,7 +499,7 @@ void GDCartridge::device_start()
|
|||
(u64(picdata[0x29]) << 0));
|
||||
}
|
||||
|
||||
printf("key is %08x%08x\n", (u32)((key & 0xffffffff00000000ULL)>>32), (u32)(key & 0x00000000ffffffffULL));
|
||||
DEBUG_LOG(NAOMI, "key is %08x%08x\n", (u32)((key & 0xffffffff00000000ULL)>>32), (u32)(key & 0x00000000ffffffffULL));
|
||||
|
||||
u8 buffer[2048];
|
||||
std::string gdrom_path = get_game_basename() + "/" + gdrom_name;
|
||||
|
|
|
@ -347,13 +347,13 @@ u32 _ReadMem_naomi(u32 Addr, u32 sz)
|
|||
{
|
||||
verify(sz!=1);
|
||||
|
||||
EMUERROR("naomi?WTF? ReadMem: %X, %d", Addr, sz);
|
||||
DEBUG_LOG(NAOMI, "naomi?WTF? ReadMem: %X, %d", Addr, sz);
|
||||
return 1;
|
||||
|
||||
}
|
||||
void _WriteMem_naomi(u32 Addr, u32 data, u32 sz)
|
||||
{
|
||||
EMUERROR("naomi?WTF? WriteMem: %X <= %X, %d", Addr, data, sz);
|
||||
DEBUG_LOG(NAOMI, "naomi?WTF? WriteMem: %X <= %X, %d", Addr, data, sz);
|
||||
}
|
||||
|
||||
|
||||
|
@ -394,23 +394,23 @@ static bool aw_ram_test_skipped = false;
|
|||
|
||||
void naomi_process(u32 r3c,u32 r40,u32 r44, u32 r48)
|
||||
{
|
||||
printf("Naomi process 0x%04X 0x%04X 0x%04X 0x%04X\n",r3c,r40,r44,r48);
|
||||
printf("Possible format 0 %d 0x%02X 0x%04X\n",r3c>>15,(r3c&0x7e00)>>9,r3c&0x1FF);
|
||||
printf("Possible format 1 0x%02X 0x%02X\n",(r3c&0xFF00)>>8,r3c&0xFF);
|
||||
DEBUG_LOG(NAOMI, "Naomi process 0x%04X 0x%04X 0x%04X 0x%04X", r3c, r40, r44, r48);
|
||||
DEBUG_LOG(NAOMI, "Possible format 0 %d 0x%02X 0x%04X",r3c >> 15,(r3c & 0x7e00) >> 9, r3c & 0x1FF);
|
||||
DEBUG_LOG(NAOMI, "Possible format 1 0x%02X 0x%02X", (r3c & 0xFF00) >> 8,r3c & 0xFF);
|
||||
|
||||
u32 param=(r3c&0xFF);
|
||||
if (param==0xFF)
|
||||
{
|
||||
printf("invalid opcode or smth ?");
|
||||
DEBUG_LOG(NAOMI, "invalid opcode or smth ?");
|
||||
}
|
||||
static int opcd=0;
|
||||
//else if (param!=3)
|
||||
if (opcd<255)
|
||||
{
|
||||
reg_dimm_3c=0x8000 | (opcd%12<<9) | (0x0);
|
||||
printf("new reg is 0x%X\n",reg_dimm_3c);
|
||||
DEBUG_LOG(NAOMI, "new reg is 0x%X", reg_dimm_3c);
|
||||
asic_RaiseInterrupt(holly_EXP_PCI);
|
||||
printf("Interrupt raised\n");
|
||||
DEBUG_LOG(NAOMI, "Interrupt raised");
|
||||
opcd++;
|
||||
}
|
||||
}
|
||||
|
@ -420,7 +420,7 @@ u32 ReadMem_naomi(u32 Addr, u32 sz)
|
|||
verify(sz!=1);
|
||||
if (unlikely(CurrentCartridge == NULL))
|
||||
{
|
||||
EMUERROR("called without cartridge\n");
|
||||
INFO_LOG(NAOMI, "called without cartridge");
|
||||
return 0xFFFF;
|
||||
}
|
||||
return CurrentCartridge->ReadMem(Addr, sz);
|
||||
|
@ -430,7 +430,7 @@ void WriteMem_naomi(u32 Addr, u32 data, u32 sz)
|
|||
{
|
||||
if (unlikely(CurrentCartridge == NULL))
|
||||
{
|
||||
EMUERROR("called without cartridge\n");
|
||||
INFO_LOG(NAOMI, "called without cartridge");
|
||||
return;
|
||||
}
|
||||
CurrentCartridge->WriteMem(Addr, data, sz);
|
||||
|
@ -441,7 +441,7 @@ void Naomi_DmaStart(u32 addr, u32 data)
|
|||
{
|
||||
if (SB_GDEN==0)
|
||||
{
|
||||
printf("Invalid (NAOMI)GD-DMA start, SB_GDEN=0.Ingoring it.\n");
|
||||
INFO_LOG(NAOMI, "Invalid (NAOMI)GD-DMA start, SB_GDEN=0. Ignoring it.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -482,7 +482,7 @@ void Naomi_DmaEnable(u32 addr, u32 data)
|
|||
SB_GDEN=data&1;
|
||||
if (SB_GDEN==0 && SB_GDST==1)
|
||||
{
|
||||
printf("(NAOMI)GD-DMA aborted\n");
|
||||
INFO_LOG(NAOMI, "(NAOMI)GD-DMA aborted");
|
||||
SB_GDST=0;
|
||||
}
|
||||
}
|
||||
|
@ -602,17 +602,17 @@ void Update_naomi()
|
|||
//len=min(len,(u32)32);
|
||||
// do we need to do this for gdrom dma ?
|
||||
if(0x8201 != (dmaor &DMAOR_MASK)) {
|
||||
printf("\n!\tGDROM: DMAOR has invalid settings (%X) !\n", dmaor);
|
||||
INFO_LOG(NAOMI, "GDROM: DMAOR has invalid settings (%X) !", dmaor);
|
||||
//return;
|
||||
}
|
||||
if(len & 0x1F) {
|
||||
printf("\n!\tGDROM: SB_GDLEN has invalid size (%X) !\n", len);
|
||||
INFO_LOG(NAOMI, "GDROM: SB_GDLEN has invalid size (%X) !", len);
|
||||
return;
|
||||
}
|
||||
|
||||
if(0 == len)
|
||||
{
|
||||
printf("\n!\tGDROM: Len: %X, Abnormal Termination !\n", len);
|
||||
INFO_LOG(NAOMI, "GDROM: Len: %X, Abnormal Termination !", len);
|
||||
}
|
||||
u32 len_backup=len;
|
||||
if( 1 == SB_GDDIR )
|
||||
|
@ -622,7 +622,7 @@ void Update_naomi()
|
|||
DmaCount=0xffff;
|
||||
}
|
||||
else
|
||||
msgboxf(L"GDROM: SB_GDDIR %X (TO AICA WAVE MEM?)",MBX_ICONERROR, SB_GDDIR);
|
||||
INFO_LOG(NAOMI, "GDROM: SB_GDDIR %X (TO AICA WAVE MEM?)");
|
||||
|
||||
//SB_GDLEN = 0x00000000; //13/5/2k7 -> acording to docs these regs are not updated by hardware
|
||||
//SB_GDSTAR = (src + len_backup);
|
||||
|
@ -707,7 +707,7 @@ u32 libExtDevice_ReadMem_A0_006(u32 addr,u32 size) {
|
|||
return 0;
|
||||
|
||||
}
|
||||
EMUERROR("Unhandled read @ %x sz %d", addr, size);
|
||||
INFO_LOG(NAOMI, "Unhandled read @ %x sz %d", addr, size);
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
|
@ -717,7 +717,7 @@ void libExtDevice_WriteMem_A0_006(u32 addr,u32 data,u32 size) {
|
|||
switch (addr)
|
||||
{
|
||||
case 0x284: // Atomiswave maple devices
|
||||
printf("NAOMI 600284 write %x\n", data);
|
||||
DEBUG_LOG(NAOMI, "NAOMI 600284 write %x", data);
|
||||
aw_maple_devs = data & 0xF0;
|
||||
return;
|
||||
case 0x288:
|
||||
|
@ -727,5 +727,5 @@ void libExtDevice_WriteMem_A0_006(u32 addr,u32 data,u32 size) {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
EMUERROR("Unhandled write @ %x (%d): %x", addr, size, data);
|
||||
INFO_LOG(NAOMI, "Unhandled write @ %x (%d): %x", addr, size, data);
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ static bool naomi_LoadBios(const char *filename, Archive *child_archive, Archive
|
|||
break;
|
||||
if (BIOS[biosid].name == NULL)
|
||||
{
|
||||
printf("Unknown BIOS %s\n", filename);
|
||||
WARN_LOG(NAOMI, "Unknown BIOS %s", filename);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ static bool naomi_LoadBios(const char *filename, Archive *child_archive, Archive
|
|||
verify(bios->blobs[romid].offset + bios->blobs[romid].length <= BIOS_SIZE);
|
||||
verify(bios->blobs[romid].src_offset + bios->blobs[romid].length <= BIOS_SIZE);
|
||||
memcpy(sys_rom.data + bios->blobs[romid].offset, sys_rom.data + bios->blobs[romid].src_offset, bios->blobs[romid].length);
|
||||
printf("Copied: %x bytes from %07x to %07x\n", bios->blobs[romid].length, bios->blobs[romid].src_offset, bios->blobs[romid].offset);
|
||||
DEBUG_LOG(NAOMI, "Copied: %x bytes from %07x to %07x", bios->blobs[romid].length, bios->blobs[romid].src_offset, bios->blobs[romid].offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -86,21 +86,21 @@ static bool naomi_LoadBios(const char *filename, Archive *child_archive, Archive
|
|||
if (file == NULL && bios_archive != NULL)
|
||||
file = bios_archive->OpenFile(bios->blobs[romid].filename);
|
||||
if (!file) {
|
||||
printf("%s: Cannot open %s\n", filename, bios->blobs[romid].filename);
|
||||
ERROR_LOG(NAOMI, "%s: Cannot open %s", filename, bios->blobs[romid].filename);
|
||||
goto error;
|
||||
}
|
||||
if (bios->blobs[romid].blob_type == Normal)
|
||||
{
|
||||
verify(bios->blobs[romid].offset + bios->blobs[romid].length <= BIOS_SIZE);
|
||||
u32 read = file->Read(sys_rom.data + bios->blobs[romid].offset, bios->blobs[romid].length);
|
||||
printf("Mapped %s: %x bytes at %07x\n", bios->blobs[romid].filename, read, bios->blobs[romid].offset);
|
||||
DEBUG_LOG(NAOMI, "Mapped %s: %x bytes at %07x", bios->blobs[romid].filename, read, bios->blobs[romid].offset);
|
||||
}
|
||||
else if (bios->blobs[romid].blob_type == InterleavedWord)
|
||||
{
|
||||
u8 *buf = (u8 *)malloc(bios->blobs[romid].length);
|
||||
if (buf == NULL)
|
||||
{
|
||||
printf("malloc failed\n");
|
||||
ERROR_LOG(NAOMI, "malloc failed");
|
||||
delete file;
|
||||
goto error;
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ static bool naomi_LoadBios(const char *filename, Archive *child_archive, Archive
|
|||
for (int i = bios->blobs[romid].length / 2; --i >= 0; to++)
|
||||
*to++ = *from++;
|
||||
free(buf);
|
||||
printf("Mapped %s: %x bytes (interleaved word) at %07x\n", bios->blobs[romid].filename, read, bios->blobs[romid].offset);
|
||||
DEBUG_LOG(NAOMI, "Mapped %s: %x bytes (interleaved word) at %07x", bios->blobs[romid].filename, read, bios->blobs[romid].offset);
|
||||
}
|
||||
else
|
||||
die("Unknown blob type\n");
|
||||
|
@ -158,7 +158,7 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
break;
|
||||
if (Games[gameid].name == NULL)
|
||||
{
|
||||
printf("Unknown game %s\n", filename);
|
||||
ERROR_LOG(NAOMI, "Unknown game %s", filename);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -166,34 +166,36 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
#if DC_PLATFORM == DC_PLATFORM_NAOMI
|
||||
if (game->cart_type == AW)
|
||||
{
|
||||
ERROR_LOG(NAOMI, "Atomiswave cartridges are not supported by NAOMI");
|
||||
msgboxf("Atomiswave cartridges are not supported by NAOMI", 0);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
if (game->cart_type != AW)
|
||||
{
|
||||
ERROR_LOG(NAOMI, "NAOMI cartridges are not supported by Atomiswave");
|
||||
msgboxf("NAOMI cartridges are not supported by Atomiswave", 0);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
Archive *archive = OpenArchive(filename);
|
||||
if (archive != NULL)
|
||||
printf("Opened %s\n", filename);
|
||||
INFO_LOG(NAOMI, "Opened %s", filename);
|
||||
|
||||
Archive *parent_archive = NULL;
|
||||
if (game->parent_name != NULL)
|
||||
{
|
||||
parent_archive = OpenArchive((get_game_dir() + game->parent_name).c_str());
|
||||
if (parent_archive != NULL)
|
||||
printf("Opened %s\n", game->parent_name);
|
||||
INFO_LOG(NAOMI, "Opened %s", game->parent_name);
|
||||
}
|
||||
|
||||
if (archive == NULL && parent_archive == NULL)
|
||||
{
|
||||
if (game->parent_name != NULL)
|
||||
printf("Cannot open %s or %s\n", filename, game->parent_name);
|
||||
ERROR_LOG(NAOMI, "Cannot open %s or %s", filename, game->parent_name);
|
||||
else
|
||||
printf("Cannot open %s\n", filename);
|
||||
ERROR_LOG(NAOMI, "Cannot open %s", filename);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -205,13 +207,13 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
region_flag = game->region_flag;
|
||||
if (!naomi_LoadBios(bios, archive, parent_archive, region_flag))
|
||||
{
|
||||
printf("Warning: Region %d bios not found in %s\n", region_flag, bios);
|
||||
WARN_LOG(NAOMI, "Warning: Region %d bios not found in %s", region_flag, bios);
|
||||
if (!naomi_LoadBios(bios, archive, parent_archive, -1))
|
||||
{
|
||||
// If a specific BIOS is needed for this game, fail.
|
||||
if (game->bios != NULL || !bios_loaded)
|
||||
{
|
||||
printf("Error: cannot load BIOS. Exiting\n");
|
||||
ERROR_LOG(NAOMI, "Error: cannot load BIOS. Exiting");
|
||||
return false;
|
||||
}
|
||||
// otherwise use the default BIOS
|
||||
|
@ -256,7 +258,7 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
u8 *dst = (u8 *)CurrentCartridge->GetPtr(game->blobs[romid].offset, len);
|
||||
u8 *src = (u8 *)CurrentCartridge->GetPtr(game->blobs[romid].src_offset, len);
|
||||
memcpy(dst, src, game->blobs[romid].length);
|
||||
printf("Copied: %x bytes from %07x to %07x\n", game->blobs[romid].length, game->blobs[romid].src_offset, game->blobs[romid].offset);
|
||||
DEBUG_LOG(NAOMI, "Copied: %x bytes from %07x to %07x", game->blobs[romid].length, game->blobs[romid].src_offset, game->blobs[romid].offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -266,7 +268,7 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
if (file == NULL && parent_archive != NULL)
|
||||
file = parent_archive->OpenFile(game->blobs[romid].filename);
|
||||
if (!file) {
|
||||
printf("%s: Cannot open %s\n", filename, game->blobs[romid].filename);
|
||||
WARN_LOG(NAOMI, "%s: Cannot open %s", filename, game->blobs[romid].filename);
|
||||
if (game->blobs[romid].blob_type != Eeprom)
|
||||
// Default eeprom file is optional
|
||||
goto error;
|
||||
|
@ -277,14 +279,14 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
{
|
||||
u8 *dst = (u8 *)CurrentCartridge->GetPtr(game->blobs[romid].offset, len);
|
||||
u32 read = file->Read(dst, game->blobs[romid].length);
|
||||
printf("Mapped %s: %x bytes at %07x\n", game->blobs[romid].filename, read, game->blobs[romid].offset);
|
||||
DEBUG_LOG(NAOMI, "Mapped %s: %x bytes at %07x", game->blobs[romid].filename, read, game->blobs[romid].offset);
|
||||
}
|
||||
else if (game->blobs[romid].blob_type == InterleavedWord)
|
||||
{
|
||||
u8 *buf = (u8 *)malloc(game->blobs[romid].length);
|
||||
if (buf == NULL)
|
||||
{
|
||||
printf("malloc failed\n");
|
||||
ERROR_LOG(NAOMI, "malloc failed");
|
||||
delete file;
|
||||
goto error;
|
||||
}
|
||||
|
@ -294,32 +296,32 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
for (int i = game->blobs[romid].length / 2; --i >= 0; to++)
|
||||
*to++ = *from++;
|
||||
free(buf);
|
||||
printf("Mapped %s: %x bytes (interleaved word) at %07x\n", game->blobs[romid].filename, read, game->blobs[romid].offset);
|
||||
DEBUG_LOG(NAOMI, "Mapped %s: %x bytes (interleaved word) at %07x", game->blobs[romid].filename, read, game->blobs[romid].offset);
|
||||
}
|
||||
else if (game->blobs[romid].blob_type == Key)
|
||||
{
|
||||
u8 *buf = (u8 *)malloc(game->blobs[romid].length);
|
||||
if (buf == NULL)
|
||||
{
|
||||
printf("malloc failed\n");
|
||||
ERROR_LOG(NAOMI, "malloc failed");
|
||||
delete file;
|
||||
goto error;
|
||||
}
|
||||
u32 read = file->Read(buf, game->blobs[romid].length);
|
||||
CurrentCartridge->SetKeyData(buf);
|
||||
printf("Loaded %s: %x bytes cart key\n", game->blobs[romid].filename, read);
|
||||
DEBUG_LOG(NAOMI, "Loaded %s: %x bytes cart key", game->blobs[romid].filename, read);
|
||||
}
|
||||
else if (game->blobs[romid].blob_type == Eeprom)
|
||||
{
|
||||
naomi_default_eeprom = (u8 *)malloc(game->blobs[romid].length);
|
||||
if (naomi_default_eeprom == NULL)
|
||||
{
|
||||
printf("malloc failed\n");
|
||||
ERROR_LOG(NAOMI, "malloc failed");
|
||||
delete file;
|
||||
goto error;
|
||||
}
|
||||
u32 read = file->Read(naomi_default_eeprom, game->blobs[romid].length);
|
||||
printf("Loaded %s: %x bytes default eeprom\n", game->blobs[romid].filename, read);
|
||||
DEBUG_LOG(NAOMI, "Loaded %s: %x bytes default eeprom", game->blobs[romid].filename, read);
|
||||
}
|
||||
else
|
||||
die("Unknown blob type\n");
|
||||
|
@ -334,12 +336,12 @@ static bool naomi_cart_LoadZip(char *filename)
|
|||
try {
|
||||
CurrentCartridge->Init();
|
||||
} catch (NaomiCartException& e) {
|
||||
printf("%s\n", e.reason.c_str());
|
||||
ERROR_LOG(NAOMI, "%s", e.reason.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
strcpy(naomi_game_id, CurrentCartridge->GetGameId().c_str());
|
||||
printf("NAOMI GAME ID [%s]\n", naomi_game_id);
|
||||
NOTICE_LOG(NAOMI, "NAOMI GAME ID [%s]", naomi_game_id);
|
||||
|
||||
return true;
|
||||
|
||||
|
@ -361,7 +363,7 @@ error:
|
|||
|
||||
bool naomi_cart_LoadRom(char* file)
|
||||
{
|
||||
printf("\nnullDC-Naomi rom loader v1.2\n");
|
||||
INFO_LOG(NAOMI, "nullDC-Naomi rom loader v1.2");
|
||||
|
||||
naomi_cart_Close();
|
||||
|
||||
|
@ -392,15 +394,15 @@ bool naomi_cart_LoadRom(char* file)
|
|||
// Try to load BIOS from naomi.zip
|
||||
if (!naomi_LoadBios("naomi", NULL, NULL, settings.dreamcast.region))
|
||||
{
|
||||
printf("Warning: Region %d bios not found in naomi.zip\n", settings.dreamcast.region);
|
||||
if (!naomi_LoadBios("naomi", NULL, NULL, -1))
|
||||
{
|
||||
if (!bios_loaded)
|
||||
{
|
||||
printf("Error: cannot load BIOS. Exiting\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
WARN_LOG(NAOMI, "Warning: Region %d bios not found in naomi.zip", settings.dreamcast.region);
|
||||
if (!naomi_LoadBios("naomi", NULL, NULL, -1))
|
||||
{
|
||||
if (!bios_loaded)
|
||||
{
|
||||
ERROR_LOG(NAOMI, "Error: cannot load BIOS. Exiting");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8* RomPtr;
|
||||
|
@ -423,11 +425,11 @@ bool naomi_cart_LoadRom(char* file)
|
|||
|
||||
char* eon = strstr(line, "\n");
|
||||
if (!eon)
|
||||
printf("+Loading naomi rom that has no name\n");
|
||||
DEBUG_LOG(NAOMI, "+Loading naomi rom that has no name");
|
||||
else
|
||||
*eon = 0;
|
||||
|
||||
printf("+Loading naomi rom : %s\n", line);
|
||||
DEBUG_LOG(NAOMI, "+Loading naomi rom : %s", line);
|
||||
|
||||
line = fgets(t, 512, fl);
|
||||
if (!line)
|
||||
|
@ -451,7 +453,7 @@ bool naomi_cart_LoadRom(char* file)
|
|||
RomSize = max(RomSize, (addr + sz));
|
||||
}
|
||||
else if (line[0] != 0 && line[0] != '\n' && line[0] != '\r')
|
||||
printf("Warning: invalid line in .lst file: %s\n", line);
|
||||
WARN_LOG(NAOMI, "Warning: invalid line in .lst file: %s", line);
|
||||
|
||||
line = fgets(t, 512, fl);
|
||||
}
|
||||
|
@ -475,7 +477,7 @@ bool naomi_cart_LoadRom(char* file)
|
|||
raw_bin_file = true;
|
||||
}
|
||||
|
||||
printf("+%ld romfiles, %.2f MB set size, %.2f MB set address space\n", files.size(), setsize / 1024.f / 1024.f, RomSize / 1024.f / 1024.f);
|
||||
INFO_LOG(NAOMI, "+%ld romfiles, %.2f MB set size, %.2f MB set address space", files.size(), setsize / 1024.f / 1024.f, RomSize / 1024.f / 1024.f);
|
||||
|
||||
if (RomCacheMap)
|
||||
{
|
||||
|
@ -525,7 +527,7 @@ bool naomi_cart_LoadRom(char* file)
|
|||
#endif
|
||||
if (RomCache == INVALID_FD)
|
||||
{
|
||||
printf("-Unable to read file %s: error %d\n", t, errno);
|
||||
ERROR_LOG(NAOMI, "-Unable to read file %s: error %d", t, errno);
|
||||
RomCacheMap[i] = INVALID_FD;
|
||||
load_error = true;
|
||||
break;
|
||||
|
@ -577,18 +579,18 @@ bool naomi_cart_LoadRom(char* file)
|
|||
bool mapped = RomDest == (u8 *)mem_region_map_file((void *)(uintptr_t)RomCacheMap[i], RomDest, fsize[i], 0, false);
|
||||
if (!mapped)
|
||||
{
|
||||
printf("-Mapping ROM FAILED: %s @ %08x size %x\n", files[i].c_str(), fstart[i], fsize[i]);
|
||||
ERROR_LOG(NAOMI, "-Mapping ROM FAILED: %s @ %08x size %x", files[i].c_str(), fstart[i], fsize[i]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//done :)
|
||||
printf("\nMapped ROM Successfully !\n\n");
|
||||
INFO_LOG(NAOMI, "Mapped ROM Successfully !");
|
||||
|
||||
CurrentCartridge = new DecryptedCartridge(RomPtr, RomSize);
|
||||
strcpy(naomi_game_id, CurrentCartridge->GetGameId().c_str());
|
||||
printf("NAOMI GAME ID [%s]\n", naomi_game_id);
|
||||
NOTICE_LOG(NAOMI, "NAOMI GAME ID [%s]", naomi_game_id);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -620,7 +622,7 @@ bool naomi_cart_SelectFile()
|
|||
|
||||
if (!naomi_cart_LoadRom(SelectedFile))
|
||||
{
|
||||
printf("Cannot load %s: error %d\n", SelectedFile, errno);
|
||||
ERROR_LOG(NAOMI, "Cannot load %s: error %d", SelectedFile, errno);
|
||||
cfgSetVirtual("config", "image", "");
|
||||
|
||||
return false;
|
||||
|
@ -650,7 +652,7 @@ bool Cartridge::Read(u32 offset, u32 size, void* dst)
|
|||
static u32 ones = 0xffffffff;
|
||||
|
||||
// Makes Outtrigger boot
|
||||
EMUERROR("offset %d > %d\n", offset, RomSize);
|
||||
INFO_LOG(NAOMI, "offset %d > %d", offset, RomSize);
|
||||
memcpy(dst, &ones, size);
|
||||
}
|
||||
else
|
||||
|
@ -663,7 +665,7 @@ bool Cartridge::Read(u32 offset, u32 size, void* dst)
|
|||
|
||||
bool Cartridge::Write(u32 offset, u32 size, u32 data)
|
||||
{
|
||||
EMUERROR("Invalid write @ %08x data %x\n", offset, data);
|
||||
INFO_LOG(NAOMI, "Invalid write @ %08x data %x", offset, data);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -695,7 +697,7 @@ void* NaomiCartridge::GetDmaPtr(u32& size)
|
|||
{
|
||||
if ((DmaOffset & 0x1fffffff) >= RomSize)
|
||||
{
|
||||
EMUERROR("Error: DmaOffset >= RomSize\n");
|
||||
INFO_LOG(NAOMI, "Error: DmaOffset >= RomSize");
|
||||
size = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
@ -713,16 +715,16 @@ u32 NaomiCartridge::ReadMem(u32 address, u32 size)
|
|||
switch(address & 255)
|
||||
{
|
||||
case 0x3c:
|
||||
EMUERROR("naomi GD? READ: %X, %d", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? READ: %X, %d", address, size);
|
||||
return reg_dimm_3c | (NaomiDataRead ? 0 : -1); //pretend the board isn't there for the bios
|
||||
case 0x40:
|
||||
EMUERROR("naomi GD? READ: %X, %d", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? READ: %X, %d", address, size);
|
||||
return reg_dimm_40;
|
||||
case 0x44:
|
||||
EMUERROR("naomi GD? READ: %X, %d", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? READ: %X, %d", address, size);
|
||||
return reg_dimm_44;
|
||||
case 0x48:
|
||||
EMUERROR("naomi GD? READ: %X, %d", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? READ: %X, %d", address, size);
|
||||
return reg_dimm_48;
|
||||
|
||||
//These are known to be valid on normal ROMs and DIMM board
|
||||
|
@ -751,12 +753,12 @@ u32 NaomiCartridge::ReadMem(u32 address, u32 size)
|
|||
//What should i do to emulate 'nothing' ?
|
||||
case NAOMI_COMM_OFFSET_addr&255:
|
||||
#ifdef NAOMI_COMM
|
||||
printf("naomi COMM offs READ: %X, %d\n", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi COMM offs READ: %X, %d", address, size);
|
||||
return CommOffset;
|
||||
#endif
|
||||
case NAOMI_COMM_DATA_addr&255:
|
||||
#ifdef NAOMI_COMM
|
||||
printf("naomi COMM data read: %X, %d\n", CommOffset, size);
|
||||
DEBUG_LOG(NAOMI, "naomi COMM data read: %X, %d", CommOffset, size);
|
||||
if (CommSharedMem)
|
||||
{
|
||||
return CommSharedMem[CommOffset&0xF];
|
||||
|
@ -772,21 +774,21 @@ u32 NaomiCartridge::ReadMem(u32 address, u32 size)
|
|||
return DmaOffset&0xFFFF;
|
||||
|
||||
case NAOMI_BOARDID_WRITE_addr&255:
|
||||
EMUERROR("naomi ReadBoardId: %X, %d", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi ReadBoardId: %X, %d", address, size);
|
||||
return 1;
|
||||
|
||||
case 0x04C:
|
||||
EMUERROR("naomi GD? READ: %X, %d", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? READ: %X, %d", address, size);
|
||||
return reg_dimm_4c;
|
||||
|
||||
case 0x18:
|
||||
printf("naomi reg 0x18 : returning random data\n");
|
||||
DEBUG_LOG(NAOMI, "naomi reg 0x18 : returning random data");
|
||||
return 0x4000^rand();
|
||||
break;
|
||||
|
||||
default: break;
|
||||
}
|
||||
//EMUERROR("naomi?WTF? ReadMem: %X, %d", address, size);
|
||||
DEBUG_LOG(NAOMI, "naomi?WTF? ReadMem: %X, %d", address, size);
|
||||
|
||||
return 0xFFFF;
|
||||
}
|
||||
|
@ -805,20 +807,20 @@ void NaomiCartridge::WriteMem(u32 address, u32 data, u32 size)
|
|||
reg_dimm_4c|=1;*/
|
||||
}
|
||||
reg_dimm_3c=data;
|
||||
EMUERROR("naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
return;
|
||||
|
||||
case 0x40:
|
||||
reg_dimm_40=data;
|
||||
EMUERROR("naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
return;
|
||||
case 0x44:
|
||||
reg_dimm_44=data;
|
||||
EMUERROR("naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
return;
|
||||
case 0x48:
|
||||
reg_dimm_48=data;
|
||||
EMUERROR("naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
return;
|
||||
|
||||
case 0x4C:
|
||||
|
@ -835,7 +837,7 @@ void NaomiCartridge::WriteMem(u32 address, u32 data, u32 size)
|
|||
naomi_process(reg_dimm_3c,reg_dimm_40,reg_dimm_44,reg_dimm_48);
|
||||
}
|
||||
reg_dimm_4c=data&~0x100;
|
||||
EMUERROR("naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi GD? Write: %X <= %X, %d", address, data, size);
|
||||
return;
|
||||
|
||||
//These are known to be valid on normal ROMs and DIMM board
|
||||
|
@ -883,14 +885,14 @@ void NaomiCartridge::WriteMem(u32 address, u32 data, u32 size)
|
|||
//What should i do to emulate 'nothing' ?
|
||||
case NAOMI_COMM_OFFSET_addr&255:
|
||||
#ifdef NAOMI_COMM
|
||||
printf("naomi COMM ofset Write: %X <= %X, %d\n", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi COMM ofset Write: %X <= %X, %d", address, data, size);
|
||||
CommOffset=data&0xFFFF;
|
||||
#endif
|
||||
return;
|
||||
|
||||
case NAOMI_COMM_DATA_addr&255:
|
||||
#ifdef NAOMI_COMM
|
||||
printf("naomi COMM data Write: %X <= %X, %d\n", CommOffset, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi COMM data Write: %X <= %X, %d", CommOffset, data, size);
|
||||
if (CommSharedMem)
|
||||
{
|
||||
CommSharedMem[CommOffset&0xF]=data;
|
||||
|
@ -900,12 +902,12 @@ void NaomiCartridge::WriteMem(u32 address, u32 data, u32 size)
|
|||
|
||||
//This should be valid
|
||||
case NAOMI_BOARDID_READ_addr&255:
|
||||
EMUERROR("naomi WriteMem: %X <= %X, %d", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi WriteMem: %X <= %X, %d", address, data, size);
|
||||
return;
|
||||
|
||||
default: break;
|
||||
}
|
||||
EMUERROR("naomi?WTF? WriteMem: %X <= %X, %d", address, data, size);
|
||||
DEBUG_LOG(NAOMI, "naomi?WTF? WriteMem: %X <= %X, %d", address, data, size);
|
||||
}
|
||||
|
||||
void NaomiCartridge::Serialize(void** data, unsigned int* total_size)
|
||||
|
@ -938,7 +940,7 @@ bool M2Cartridge::Read(u32 offset, u32 size, void* dst)
|
|||
*(u16 *)dst = data;
|
||||
return true;
|
||||
}
|
||||
EMUERROR("Invalid read @ %08x\n", offset);
|
||||
INFO_LOG(NAOMI, "Invalid read @ %08x", offset);
|
||||
return false;
|
||||
}
|
||||
else if (!(RomPioOffset & 0x20000000))
|
||||
|
|
Loading…
Reference in New Issue