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