crude 'good enough for naomi gd-rom' MMU implementation

save JVS eeprom settings.
This commit is contained in:
davidhay 2009-03-25 21:28:39 +00:00
parent a35ef58b54
commit 64d977ed46
5 changed files with 220 additions and 80 deletions

View File

@ -2078,24 +2078,56 @@ INLINE void LDCSPC(SH4 *sh4, UINT32 m)
sh4->spc = sh4->r[m];
}
UINT32 sh4_getsqremap(SH4 *sh4, UINT32 address)
{
if (!sh4->sh4_mmu_enabled)
return address;
else
{
int i;
UINT32 topaddr = address&0xfff00000;
for (i=0;i<64;i++)
{
UINT32 topcmp = sh4->sh4_tlb_address[i]&0xfff00000;
if (topcmp==topaddr)
return (address&0x000fffff) | ((sh4->sh4_tlb_data[i])&0xfff00000);
}
}
return address;
}
/* PREF @Rn */
INLINE void PREFM(SH4 *sh4, UINT32 n)
{
int a;
UINT32 addr,dest,sq;
int a;
UINT32 addr,dest,sq;
addr = sh4->r[n]; // address
if ((addr >= 0xE0000000) && (addr <= 0xE3FFFFFF))
{
sq = (addr & 0x20) >> 5;
dest = addr & 0x03FFFFE0;
if (sq == 0)
dest |= (sh4->m[QACR0] & 0x1C) << 24;
if (sh4->sh4_mmu_enabled)
{
addr = addr & 0xFFFFFFE0;
dest = sh4_getsqremap(sh4, addr); // good enough for naomi-gd rom, probably not much else
}
else
dest |= (sh4->m[QACR1] & 0x1C) << 24;
addr = addr & 0xFFFFFFE0;
{
sq = (addr & 0x20) >> 5;
dest = addr & 0x03FFFFE0;
if (sq == 0)
dest |= (sh4->m[QACR0] & 0x1C) << 24;
else
dest |= (sh4->m[QACR1] & 0x1C) << 24;
addr = addr & 0xFFFFFFE0;
}
for (a = 0;a < 4;a++)
{
// shouldn't be causing a memory read, should store sq writes in registers.
memory_write_qword_64le(sh4->program, dest, memory_read_qword_64le(sh4->program, addr));
addr += 8;
dest += 8;
@ -3326,6 +3358,8 @@ static CPU_RESET( sh4 )
sh4->internal_irq_level = -1;
sh4->irln = 15;
sh4->sleep_mode = 0;
sh4->sh4_mmu_enabled = 0;
}
/* Execute cycles - returns number of cycles actually run */
@ -3631,11 +3665,49 @@ static ADDRESS_MAP_START( sh4_internal_map, ADDRESS_SPACE_PROGRAM, 64 )
ADDRESS_MAP_END
#endif
READ64_HANDLER( sh4_tlb_r )
{
SH4 *sh4 = get_safe_token(space->cpu);
int offs = offset*8;
if (offs >= 0x01000000)
{
UINT8 i = (offs>>8)&63;
return sh4->sh4_tlb_data[i];
}
else
{
UINT8 i = (offs>>8)&63;
return sh4->sh4_tlb_address[i];
}
}
WRITE64_HANDLER( sh4_tlb_w )
{
SH4 *sh4 = get_safe_token(space->cpu);
int offs = offset*8;
if (offs >= 0x01000000)
{
UINT8 i = (offs>>8)&63;
sh4->sh4_tlb_data[i] = data&0xffffffff;
}
else
{
UINT8 i = (offs>>8)&63;
sh4->sh4_tlb_address[i] = data&0xffffffff;
}
}
/*When OC index mode is on (CCR.OIX = 1)*/
static ADDRESS_MAP_START( sh4_internal_map, ADDRESS_SPACE_PROGRAM, 64 )
AM_RANGE(0x1C000000, 0x1C000FFF) AM_RAM AM_MIRROR(0x01FFF000)
AM_RANGE(0x1E000000, 0x1E000FFF) AM_RAM AM_MIRROR(0x01FFF000)
AM_RANGE(0xE0000000, 0xE000003F) AM_RAM AM_MIRROR(0x03FFFFC0)
AM_RANGE(0xE0000000, 0xE000003F) AM_RAM AM_MIRROR(0x03FFFFC0) // todo: store queues should be write only on DC's SH4, executing PREFM shouldn't cause an actual memory read access!
AM_RANGE(0xF6000000, 0xF7FFFFFF) AM_READWRITE(sh4_tlb_r,sh4_tlb_w)
ADDRESS_MAP_END

View File

@ -645,7 +645,27 @@ WRITE32_HANDLER( sh4_internal_w )
{
case MMUCR: // MMU Control
if (data & 1)
fatalerror("SH4: MMUCR write enables MMU\n");
{
printf("SH4 MMU Enabled\n");
printf("If you're seeing this, but running something other than a Naomi GD-ROM game then chances are it won't work\n");
printf("The MMU emulation is a hack specific to that system\n");
sh4->sh4_mmu_enabled = 1;
// should be a different bit!
{
int i;
for (i=0;i<64;i++)
{
sh4->sh4_tlb_address[i] = 0;
sh4->sh4_tlb_data[i] = 0;
}
}
}
else
{
sh4->sh4_mmu_enabled = 0;
}
break;

View File

@ -37,6 +37,7 @@
#define FP_XFS2(r) *( (float *)(sh4->xf+((r) ^ sh4->fpu_pr)) )
#endif
typedef struct
{
UINT32 ppc;
@ -90,6 +91,13 @@ typedef struct
int ioport4_pullup, ioport4_direction;
void (*ftcsr_read_callback)(UINT32 data);
/* This MMU simulation is good for the simple remap used on Naomi GD-ROM SQ access *ONLY* */
UINT32 sh4_tlb_address[64];
UINT32 sh4_tlb_data[64];
UINT8 sh4_mmu_enabled;
} SH4;
enum

View File

@ -698,17 +698,65 @@ static WRITE64_HANDLER( naomi_unknown1_w )
* Non-volatile memories
*/
extern UINT8 maple0x86data1[0x80];
static NVRAM_HANDLER( naomi_eeproms )
{
if (read_or_write)
/*eeprom_save(file)*/;
{
/* JVS 'eeprom' */
mame_fwrite(file,maple0x86data1,0x80);
// mainboard eeprom?
eeprom_save(file);
}
else
{
eeprom_init(machine, &eeprom_interface_93C46);
/*if (file)
if (file)
{
UINT8 tmp[0x80];
/* JVS 'eeprom' */
mame_fread(file,maple0x86data1,0x80);
mame_fread(file,&tmp,0x80);
eeprom_set_data((UINT8 *)tmp, 0x80);
// mainboard eeprom?
eeprom_load(file);
else*/
eeprom_set_data((UINT8 *)"\011\241 0000000000000000", 48); // 2*checksum 30*unknown 16*serial
}
else
{
// int a;
UINT32 length, size;
UINT8 *dat;
dat = eeprom_get_data_pointer(&length, &size);
memset(dat, 0, length * size);
// mainboard eeprom?
eeprom_set_data((UINT8 *)"\011\241 0000000000000000", 48); // 2*checksum 30*unknown 16*serial
#if 0
/* JVS 'eeprom' */
for (a=0;a < 0x80;a++)
maple0x86data1[a]=0x11+a;
// checksums
maple0x86data1[0]=0xb9;
maple0x86data1[1]=0xb1;
maple0x86data1[18]=0xb8;
maple0x86data1[19]=0x8a;
#endif
}
}
}
@ -1062,30 +1110,31 @@ Scan ROM for the text string "LOADING TEST MODE NOW" back up four (4) bytes for
*/
// game specific bios roms quite clearly don't belong in here.
// Japan bios is default, because most games require it.
/* bios e works, the newer japan one gives 'board malfunction' with some games?' */
#define NAOMI_BIOS \
ROM_SYSTEM_BIOS( 0, "bios0", "epr-21578e (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21578e.bin", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "epr-21578d (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21578d.bin", 0x000000, 0x200000, CRC(dfd5f42a) SHA1(614a0db4743a5e5a206190d6786ade24325afbfd) ) \
ROM_SYSTEM_BIOS( 2, "bios2", "epr-21578b (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21578b.bin", 0x000000, 0x200000, CRC(6c9aad83) SHA1(555918de76d8dbee2a97d8a95297ef694b3e803f) ) \
ROM_SYSTEM_BIOS( 3, "bios3", "epr-21577e (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21577e.bin", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \
ROM_SYSTEM_BIOS( 4, "bios4", "epr-21577d (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21577d.bin", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \
ROM_SYSTEM_BIOS( 5, "bios5", "epr-21576h (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21576h.bin", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \
ROM_SYSTEM_BIOS( 6, "bios6", "epr-21576g (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21576g.bin", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \
ROM_SYSTEM_BIOS( 7, "bios7", "epr-21576e (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-21576e.bin", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \
ROM_SYSTEM_BIOS( 8, "bios8", "epr-21576d (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 8, "epr-21576d.bin", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \
ROM_SYSTEM_BIOS( 9, "bios9", "epr-21576b (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 9, "epr-21576b.bin", 0x000000, 0x200000, CRC(755a6e07) SHA1(7e8b8ccfc063144d89668e7224dcd8a36c54f3b3) ) \
ROM_SYSTEM_BIOS( 10, "bios10", "epr-21576 (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 10, "epr-21576.bin", 0x000000, 0x200000, CRC(9dad3495) SHA1(5fb66f9a2b68d120f059c72758e65d34f461044a) ) \
ROM_SYSTEM_BIOS( 0, "bios0", "epr-21576e (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21576e.bin", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "epr-21576g (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21576g.bin", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \
ROM_SYSTEM_BIOS( 2, "bios2", "epr-21576h (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21576h.bin", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \
ROM_SYSTEM_BIOS( 3, "bios3", "epr-21576d (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21576d.bin", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \
ROM_SYSTEM_BIOS( 4, "bios4", "epr-21576b (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21576b.bin", 0x000000, 0x200000, CRC(755a6e07) SHA1(7e8b8ccfc063144d89668e7224dcd8a36c54f3b3) ) \
ROM_SYSTEM_BIOS( 5, "bios5", "epr-21576 (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21576.bin", 0x000000, 0x200000, CRC(9dad3495) SHA1(5fb66f9a2b68d120f059c72758e65d34f461044a) ) \
ROM_SYSTEM_BIOS( 6, "bios6", "epr-21578e (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21578e.bin", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \
ROM_SYSTEM_BIOS( 7, "bios7", "epr-21578d (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-21578d.bin", 0x000000, 0x200000, CRC(dfd5f42a) SHA1(614a0db4743a5e5a206190d6786ade24325afbfd) ) \
ROM_SYSTEM_BIOS( 8, "bios8", "epr-21578b (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 8, "epr-21578b.bin", 0x000000, 0x200000, CRC(6c9aad83) SHA1(555918de76d8dbee2a97d8a95297ef694b3e803f) ) \
ROM_SYSTEM_BIOS( 9, "bios9", "epr-21577e (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 9, "epr-21577e.bin", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \
ROM_SYSTEM_BIOS( 10, "bios10", "epr-21577d (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 10, "epr-21577d.bin", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \
ROM_SYSTEM_BIOS( 11, "bios11", "Ferrari F355 (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 11, "epr-22851.bin", 0x000000, 0x200000, CRC(62483677) SHA1(3e3bcacf5f972c376b569f45307ee7fd0b5031b7) ) \
ROM_SYSTEM_BIOS( 12, "bios12", "Ferrari F355 (USA)" ) \
@ -1102,24 +1151,25 @@ Scan ROM for the text string "LOADING TEST MODE NOW" back up four (4) bytes for
/* only revisions d and higher support the GDROM, and there is an additional bios (and SH4!) on the DIMM board for the CD Controller */
/* bios e works, the newer japan one gives 'board malfunction' with some games?' */
#define NAOMIGD_BIOS \
ROM_REGION( 0x200000, "maincpu", 0) \
ROM_SYSTEM_BIOS( 0, "bios0", "epr-21578e (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21578e.bin", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "epr-21578d (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21578d.bin", 0x000000, 0x200000, CRC(dfd5f42a) SHA1(614a0db4743a5e5a206190d6786ade24325afbfd) ) \
ROM_SYSTEM_BIOS( 2, "bios2", "epr-21577e (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21577e.bin", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \
ROM_SYSTEM_BIOS( 3, "bios3", "epr-21577d (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21577d.bin", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \
ROM_SYSTEM_BIOS( 4, "bios4", "epr-21576h (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21576h.bin", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \
ROM_SYSTEM_BIOS( 5, "bios5", "epr-21576g (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21576g.bin", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \
ROM_SYSTEM_BIOS( 6, "bios6", "epr-21576e (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21576e.bin", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \
ROM_SYSTEM_BIOS( 7, "bios7", "epr-21576d (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-21576d.bin", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \
ROM_SYSTEM_BIOS( 0, "bios0", "epr-21576e (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-21576e.bin", 0x000000, 0x200000, CRC(08c0add7) SHA1(e7c1a7673cb2ccb21748ef44105e46d1bad7266d) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "epr-21576g (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-21576g.bin", 0x000000, 0x200000, CRC(d2a1c6bf) SHA1(6d27d71aec4dfba98f66316ae74a1426d567698a) ) \
ROM_SYSTEM_BIOS( 2, "bios2", "epr-21576h (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-21576h.bin", 0x000000, 0x200000, CRC(d4895685) SHA1(91424d481ff99a8d3f4c45cea6d3f0eada049a6d) ) \
ROM_SYSTEM_BIOS( 3, "bios3", "epr-21576d (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-21576d.bin", 0x000000, 0x200000, CRC(3b2afa7b) SHA1(d007e1d321c198a38c5baff86eb2ab84385d150a) ) \
ROM_SYSTEM_BIOS( 4, "bios4", "epr-21578e (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-21578e.bin", 0x000000, 0x200000, CRC(087f09a3) SHA1(0418eb2cf9766f0b1b874a4e92528779e22c0a4a) ) \
ROM_SYSTEM_BIOS( 5, "bios5", "epr-21578d (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-21578d.bin", 0x000000, 0x200000, CRC(dfd5f42a) SHA1(614a0db4743a5e5a206190d6786ade24325afbfd) ) \
ROM_SYSTEM_BIOS( 6, "bios6", "epr-21577e (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-21577e.bin", 0x000000, 0x200000, CRC(cf36e97b) SHA1(b085305982e7572e58b03a9d35f17ae319c3bbc6) ) \
ROM_SYSTEM_BIOS( 7, "bios7", "epr-21577d (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-21577d.bin", 0x000000, 0x200000, CRC(60ddcbbe) SHA1(58b15096d269d6df617ca1810b66b47deb184958) ) \
ROM_REGION( 0x200000, "user2", 0) \
ROM_LOAD16_WORD_SWAP( "fpr-23489c.ic14", 0x000000, 0x200000, CRC(bc38bea1) SHA1(b36fcc6902f397d9749e9d02de1bbb7a5e29d468) ) \
@ -1152,22 +1202,22 @@ Region byte encoding is as follows:
#define NAOMI2_BIOS \
ROM_REGION( 0x200000, "maincpu", 0) \
ROM_SYSTEM_BIOS( 0, "bios0", "epr-23608b (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-23608b.bin", 0x000000, 0x200000, CRC(a554b1e3) SHA1(343b727a3619d1c75a9b6d4cc156a9050447f155) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "epr-23608 (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-23608.bin", 0x000000, 0x200000, CRC(929cc3a6) SHA1(47d00c818de23f733a4a33b1bbc72eb8aa729246) ) \
ROM_SYSTEM_BIOS( 2, "bios2", "epr-23607b (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-23607b.bin", 0x000000, 0x200000, CRC(f308c5e9) SHA1(5470ab1cee6afecbd8ca8cf40f8fbe4ec2cb1471) ) \
ROM_SYSTEM_BIOS( 3, "bios3", "epr-23607 (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-23607.bin", 0x000000, 0x200000, CRC(2b55add2) SHA1(547de5f97d3183c8cd069c4fa3c09f13d8b637d9) ) \
ROM_SYSTEM_BIOS( 4, "bios4", "epr-23605c (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-23605c.bin", 0x000000, 0x200000, CRC(297ea6ed) SHA1(cfbfe57c80e6ee86a101fa83aec0a01e00c0f42a) ) \
ROM_SYSTEM_BIOS( 5, "bios5", "epr-23605b (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-23605b.bin", 0x000000, 0x200000, CRC(3a3242d4) SHA1(aaca4df51ef91d926f8191d372f3dfe1d20d9484) ) \
ROM_SYSTEM_BIOS( 6, "bios6", "epr-23605a (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-23605a.bin", 0x000000, 0x200000, CRC(7bc3fc2d) SHA1(a4a9531a7c66ff30046908cf71f6c7b6fb59c392) ) \
ROM_SYSTEM_BIOS( 7, "bios7", "epr-23605 (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-23605.bin", 0x000000, 0x200000, CRC(5731e446) SHA1(787b0844fc408cf124c12405c095c59948709ea6) )
ROM_SYSTEM_BIOS( 0, "bios0", "epr-23605c (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-23605c.bin", 0x000000, 0x200000, CRC(297ea6ed) SHA1(cfbfe57c80e6ee86a101fa83aec0a01e00c0f42a) ) \
ROM_SYSTEM_BIOS( 1, "bios1", "epr-23605b (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-23605b.bin", 0x000000, 0x200000, CRC(3a3242d4) SHA1(aaca4df51ef91d926f8191d372f3dfe1d20d9484) ) \
ROM_SYSTEM_BIOS( 2, "bios2", "epr-23605a (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-23605a.bin", 0x000000, 0x200000, CRC(7bc3fc2d) SHA1(a4a9531a7c66ff30046908cf71f6c7b6fb59c392) ) \
ROM_SYSTEM_BIOS( 3, "bios3", "epr-23605 (Japan)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 3, "epr-23605.bin", 0x000000, 0x200000, CRC(5731e446) SHA1(787b0844fc408cf124c12405c095c59948709ea6) ) \
ROM_SYSTEM_BIOS( 4, "bios4", "epr-23608b (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 4, "epr-23608b.bin", 0x000000, 0x200000, CRC(a554b1e3) SHA1(343b727a3619d1c75a9b6d4cc156a9050447f155) ) \
ROM_SYSTEM_BIOS( 5, "bios5", "epr-23608 (Export)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 5, "epr-23608.bin", 0x000000, 0x200000, CRC(929cc3a6) SHA1(47d00c818de23f733a4a33b1bbc72eb8aa729246) ) \
ROM_SYSTEM_BIOS( 6, "bios6", "epr-23607b (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 6, "epr-23607b.bin", 0x000000, 0x200000, CRC(f308c5e9) SHA1(5470ab1cee6afecbd8ca8cf40f8fbe4ec2cb1471) ) \
ROM_SYSTEM_BIOS( 7, "bios7", "epr-23607 (USA)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 7, "epr-23607.bin", 0x000000, 0x200000, CRC(2b55add2) SHA1(547de5f97d3183c8cd069c4fa3c09f13d8b637d9) ) \
/* this is one flashrom, however the second half looks like it's used for game settings, may differ between dumps, and may not be needed / could be blanked */
#define AW_BIOS \

View File

@ -124,7 +124,7 @@ UINT32 dc_coin_counts[2];
static UINT32 maple_regs[0x100/4];
static UINT32 dc_rtcregister[4];
static UINT32 g1bus_regs[0x100/4];
static UINT8 maple0x86data1[0x80];
UINT8 maple0x86data1[0x80];
static UINT8 maple0x86data2[0x400];
static emu_timer *dc_rtc_timer;
@ -934,8 +934,6 @@ MACHINE_START( dc )
MACHINE_RESET( dc )
{
int a;
/* halt the ARM7 */
cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE);
@ -948,14 +946,6 @@ MACHINE_RESET( dc )
timer_adjust_periodic(dc_rtc_timer, attotime_zero, 0, ATTOTIME_IN_SEC(1));
dc_sysctrl_regs[SB_SBREV] = 0x0b;
for (a=0;a < 0x80;a++)
maple0x86data1[a]=0x11+a;
// checksums
maple0x86data1[0]=0xb9;
maple0x86data1[1]=0xb1;
maple0x86data1[18]=0xb8;
maple0x86data1[19]=0x8a;
}
READ64_DEVICE_HANDLER( dc_aica_reg_r )