notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.30 release
[picodrive.git]
/
Pico
/
cd
/
Memory.c
diff --git
a/Pico/cd/Memory.c
b/Pico/cd/Memory.c
index
fdbf316
..
fc25081
100644
(file)
--- a/
Pico/cd/Memory.c
+++ b/
Pico/cd/Memory.c
@@
-34,7
+34,6
@@
typedef unsigned int u32;
// -----------------------------------------------------------------
\r
\r
// poller detection
\r
// -----------------------------------------------------------------
\r
\r
// poller detection
\r
-#define USE_POLL_DETECT
\r
#define POLL_LIMIT 16
\r
#define POLL_CYCLES 124
\r
// int m68k_poll_addr, m68k_poll_cnt;
\r
#define POLL_LIMIT 16
\r
#define POLL_CYCLES 124
\r
// int m68k_poll_addr, m68k_poll_cnt;
\r
@@
-53,7
+52,7
@@
static u32 m68k_reg_read16(u32 a)
goto end;
\r
case 2:
\r
d = (Pico_mcd->s68k_regs[a]<<8) | (Pico_mcd->s68k_regs[a+1]&0xc7);
\r
goto end;
\r
case 2:
\r
d = (Pico_mcd->s68k_regs[a]<<8) | (Pico_mcd->s68k_regs[a+1]&0xc7);
\r
- dprintf("m68k_regs r3: %02x @%06x", (u8)d, SekPc
S68k
);
\r
+ dprintf("m68k_regs r3: %02x @%06x", (u8)d, SekPc);
\r
goto end;
\r
case 4:
\r
d = Pico_mcd->s68k_regs[4]<<8;
\r
goto end;
\r
case 4:
\r
d = Pico_mcd->s68k_regs[4]<<8;
\r
@@
-129,7
+128,14
@@
void m68k_reg_write8(u32 a, u32 d)
d ^= 2; // writing 0 to DMNA actually sets it, 1 does nothing
\r
} else {
\r
//dold &= ~2; // ??
\r
d ^= 2; // writing 0 to DMNA actually sets it, 1 does nothing
\r
} else {
\r
//dold &= ~2; // ??
\r
+#if 1
\r
+ if ((d & 2) && !(dold & 2)) {
\r
+ Pico_mcd->m.state_flags |= 2; // we must delay setting DMNA bit (needed for Silpheed)
\r
+ d &= ~2;
\r
+ }
\r
+#else
\r
if (d & 2) dold &= ~1; // return word RAM to s68k in 2M mode
\r
if (d & 2) dold &= ~1; // return word RAM to s68k in 2M mode
\r
+#endif
\r
}
\r
Pico_mcd->s68k_regs[3] = d | dold; // really use s68k side register
\r
#ifdef USE_POLL_DETECT
\r
}
\r
Pico_mcd->s68k_regs[3] = d | dold; // really use s68k side register
\r
#ifdef USE_POLL_DETECT
\r
@@
-273,7
+279,7
@@
void s68k_reg_write8(u32 a, u32 d)
return; // only m68k can change WP
\r
case 3: {
\r
int dold = Pico_mcd->s68k_regs[3];
\r
return; // only m68k can change WP
\r
case 3: {
\r
int dold = Pico_mcd->s68k_regs[3];
\r
- dprintf("s68k_regs w3: %02x @%06x", (u8)d, SekPc);
\r
+ dprintf("s68k_regs w3: %02x @%06x", (u8)d, SekPc
S68k
);
\r
d &= 0x1d;
\r
d |= dold&0xc2;
\r
if (d&4) {
\r
d &= 0x1d;
\r
d |= dold&0xc2;
\r
if (d&4) {
\r