mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2024-11-10 21:05:12 +01:00
[Core/CPU] added Z80 wait-states on 68k bus access (fixes Remute Red Eyes demo)
This commit is contained in:
parent
ec3c90e3bc
commit
7b52165dd5
@ -5,7 +5,7 @@
|
|||||||
* Support for SG-1000, Mark-III, Master System, Game Gear & Mega Drive ports access
|
* Support for SG-1000, Mark-III, Master System, Game Gear & Mega Drive ports access
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998-2003 Charles Mac Donald (original code)
|
* Copyright (C) 1998-2003 Charles Mac Donald (original code)
|
||||||
* Copyright (C) 2007-2016 Eke-Eke (Genesis Plus GX)
|
* Copyright (C) 2007-2020 Eke-Eke (Genesis Plus GX)
|
||||||
*
|
*
|
||||||
* Redistribution and use of this code or any derivative works are permitted
|
* Redistribution and use of this code or any derivative works are permitted
|
||||||
* provided that the following conditions are met:
|
* provided that the following conditions are met:
|
||||||
@ -111,6 +111,8 @@ unsigned char z80_memory_r(unsigned int address)
|
|||||||
{
|
{
|
||||||
if ((address >> 8) == 0x7F)
|
if ((address >> 8) == 0x7F)
|
||||||
{
|
{
|
||||||
|
/* average Z80 wait-states when accessing 68k area */
|
||||||
|
Z80.cycles += 3 * 15;
|
||||||
return (*zbank_memory_map[0xc0].read)(address);
|
return (*zbank_memory_map[0xc0].read)(address);
|
||||||
}
|
}
|
||||||
return z80_unused_r(address);
|
return z80_unused_r(address);
|
||||||
@ -118,6 +120,9 @@ unsigned char z80_memory_r(unsigned int address)
|
|||||||
|
|
||||||
default: /* $8000-$FFFF: 68k bank (32K) */
|
default: /* $8000-$FFFF: 68k bank (32K) */
|
||||||
{
|
{
|
||||||
|
/* average Z80 wait-states when accessing 68k area */
|
||||||
|
Z80.cycles += 3 * 15;
|
||||||
|
|
||||||
address = zbank | (address & 0x7FFF);
|
address = zbank | (address & 0x7FFF);
|
||||||
if (zbank_memory_map[address >> 16].read)
|
if (zbank_memory_map[address >> 16].read)
|
||||||
{
|
{
|
||||||
@ -158,6 +163,8 @@ void z80_memory_w(unsigned int address, unsigned char data)
|
|||||||
|
|
||||||
case 0x7F: /* $7F00-$7FFF: VDP */
|
case 0x7F: /* $7F00-$7FFF: VDP */
|
||||||
{
|
{
|
||||||
|
/* average Z80 wait-states when accessing 68k area */
|
||||||
|
Z80.cycles += 3 * 15;
|
||||||
(*zbank_memory_map[0xc0].write)(address, data);
|
(*zbank_memory_map[0xc0].write)(address, data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -172,6 +179,9 @@ void z80_memory_w(unsigned int address, unsigned char data)
|
|||||||
|
|
||||||
default: /* $8000-$FFFF: 68k bank (32K) */
|
default: /* $8000-$FFFF: 68k bank (32K) */
|
||||||
{
|
{
|
||||||
|
/* average Z80 wait-states when accessing 68k area */
|
||||||
|
Z80.cycles += 3 * 15;
|
||||||
|
|
||||||
address = zbank | (address & 0x7FFF);
|
address = zbank | (address & 0x7FFF);
|
||||||
if (zbank_memory_map[address >> 16].write)
|
if (zbank_memory_map[address >> 16].write)
|
||||||
{
|
{
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Support for SG-1000, Mark-III, Master System, Game Gear & Mega Drive ports access
|
* Support for SG-1000, Mark-III, Master System, Game Gear & Mega Drive ports access
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998-2003 Charles Mac Donald (original code)
|
* Copyright (C) 1998-2003 Charles Mac Donald (original code)
|
||||||
* Copyright (C) 2007-2016 Eke-Eke (Genesis Plus GX)
|
* Copyright (C) 2007-2020 Eke-Eke (Genesis Plus GX)
|
||||||
*
|
*
|
||||||
* Redistribution and use of this code or any derivative works are permitted
|
* Redistribution and use of this code or any derivative works are permitted
|
||||||
* provided that the following conditions are met:
|
* provided that the following conditions are met:
|
||||||
|
Loading…
Reference in New Issue
Block a user