mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
removed z80 cycle code in nonacc mode as it was only causing trouble
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@238 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
740da8c60b
commit
f58f05d28a
2 changed files with 20 additions and 27 deletions
|
@ -52,7 +52,7 @@ static
|
|||
u32 z80ReadBusReq(void)
|
||||
{
|
||||
u32 d=Pico.m.z80Run&1;
|
||||
if (!d) {
|
||||
if (!d && Pico.m.scanline != -1) {
|
||||
// needed by buggy Terminator (Sega CD)
|
||||
int stop_before = SekCyclesDone() - z80stopCycle;
|
||||
dprintf("stop before: %i", stop_before);
|
||||
|
@ -69,6 +69,8 @@ static
|
|||
void z80WriteBusReq(u32 d)
|
||||
{
|
||||
d&=1; d^=1;
|
||||
if(Pico.m.scanline != -1)
|
||||
{
|
||||
if(!d) {
|
||||
// this is for a nasty situation where Z80 was enabled and disabled in the same 68k timeslice (Golden Axe III)
|
||||
if (Pico.m.z80Run) {
|
||||
|
@ -85,7 +87,7 @@ void z80WriteBusReq(u32 d)
|
|||
}
|
||||
} else {
|
||||
z80startCycle = SekCyclesDone();
|
||||
//if(Pico.m.scanline != -1)
|
||||
}
|
||||
}
|
||||
dprintf("set_zrun: %02x [%i|%i] @%06x", d, Pico.m.scanline, SekCyclesDone(), /*mz80GetRegisterValue(NULL, 0),*/ SekPc);
|
||||
Pico.m.z80Run=(u8)d;
|
||||
|
@ -110,7 +112,7 @@ u32 OtherRead16(u32 a, int realsize)
|
|||
goto end;
|
||||
}
|
||||
|
||||
// |=0x80 for Shadow of the Beast & Super Offroad; rotate fakes next fetched instruction for Time Killers
|
||||
// rotate fakes next fetched instruction for Time Killers
|
||||
if (a==0xa11100) { // z80 busreq
|
||||
d=(z80ReadBusReq()<<8)|Pico.m.rotate++;
|
||||
dprintf("get_zrun: %04x [%i|%i] @%06x", d, Pico.m.scanline, SekCyclesDone(), SekPc);
|
||||
|
@ -183,6 +185,7 @@ void OtherWrite8(u32 a,u32 d)
|
|||
}
|
||||
#endif
|
||||
if ((a&0xe700e0)==0xc00000) {
|
||||
d&=0xff;
|
||||
PicoVideoWrite(a,(u16)(d|(d<<8))); // Byte access gets mirrored
|
||||
return;
|
||||
}
|
||||
|
|
10
Pico/Pico.c
10
Pico/Pico.c
|
@ -458,19 +458,9 @@ static void PicoRunZ80Simple(int line_from, int line_to)
|
|||
{
|
||||
int line_from_r=line_from, line_to_r=line_to, line = line_from;
|
||||
int line_sample = Pico.m.pal ? 68 : 93;
|
||||
extern const unsigned short vcounts[];
|
||||
|
||||
if(!(PicoOpt&4) || Pico.m.z80Run == 0) { line_from_r = line_to_r; line_to_r = 0; }
|
||||
|
||||
if(z80startCycle != 0x01000000) {
|
||||
line_from_r = vcounts[z80startCycle>>8]+1;
|
||||
z80startCycle = 0x01000000;
|
||||
}
|
||||
if(z80stopCycle != 0x01000000) {
|
||||
line_to_r = vcounts[z80stopCycle>>8]+1;
|
||||
z80stopCycle = 0x01000000;
|
||||
}
|
||||
|
||||
if(PicoOpt&1) {
|
||||
// we have ym2612 enabled, so we have to run Z80 in lines, so we could update DAC and timers
|
||||
for(; line < line_to; line++) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue