//#define __debug_io2\r
//#define rdprintf dprintf\r
#define rdprintf(...)\r
+//#define wrdprintf dprintf\r
#define wrdprintf(...)\r
\r
// -----------------------------------------------------------------\r
}\r
\r
// word RAM (1M area)\r
- if ((a&0xfe0000)==0x0c0000) { // 0c0000-0dffff\r
+ if ((a&0xfe0000)==0x0c0000 && (Pico_mcd->s68k_regs[3]&4)) { // 0c0000-0dffff\r
int bank;\r
wrdprintf("s68k_wram1M r8: [%06x] @%06x", a, SekPcS68k);\r
- if (!(Pico_mcd->s68k_regs[3]&4))\r
- dprintf("s68k_wram1M FIXME: wrong mode");\r
+// if (!(Pico_mcd->s68k_regs[3]&4))\r
+// dprintf("s68k_wram1M FIXME: wrong mode");\r
bank = !(Pico_mcd->s68k_regs[3]&1);\r
d = Pico_mcd->word_ram1M[bank][(a^1)&0x1ffff];\r
wrdprintf("ret = %02x", (u8)d);\r
}\r
\r
// word RAM (1M area)\r
- if ((a&0xfe0000)==0x0c0000) { // 0c0000-0dffff\r
+ if ((a&0xfe0000)==0x0c0000 && (Pico_mcd->s68k_regs[3]&4)) { // 0c0000-0dffff\r
int bank;\r
wrdprintf("s68k_wram1M r16: [%06x] @%06x", a, SekPcS68k);\r
- if (!(Pico_mcd->s68k_regs[3]&4))\r
- dprintf("s68k_wram1M FIXME: wrong mode");\r
+// if (!(Pico_mcd->s68k_regs[3]&4))\r
+// dprintf("s68k_wram1M FIXME: wrong mode");\r
bank = !(Pico_mcd->s68k_regs[3]&1);\r
d = *(u16 *)(Pico_mcd->word_ram1M[bank]+(a&0x1fffe));\r
wrdprintf("ret = %04x", d);\r
}\r
\r
// word RAM (1M area)\r
- if ((a&0xfe0000)==0x0c0000) { // 0c0000-0dffff\r
+ if ((a&0xfe0000)==0x0c0000 && (Pico_mcd->s68k_regs[3]&4)) { // 0c0000-0dffff\r
int bank;\r
wrdprintf("s68k_wram1M r32: [%06x] @%06x", a, SekPcS68k);\r
- if (!(Pico_mcd->s68k_regs[3]&4))\r
- dprintf("s68k_wram1M FIXME: wrong mode");\r
+// if (!(Pico_mcd->s68k_regs[3]&4))\r
+// dprintf("s68k_wram1M FIXME: wrong mode");\r
bank = !(Pico_mcd->s68k_regs[3]&1);\r
u16 *pm=(u16 *)(Pico_mcd->word_ram1M[bank]+(a&0x1fffe)); d = (pm[0]<<16)|pm[1];\r
wrdprintf("ret = %08x", d);\r
}\r
\r
// word RAM (1M area)\r
- if ((a&0xfe0000)==0x0c0000) { // 0c0000-0dffff\r
+ if ((a&0xfe0000)==0x0c0000 && (Pico_mcd->s68k_regs[3]&4)) { // 0c0000-0dffff\r
+ // Wing Commander tries to write here in wrong mode\r
int bank;\r
if (d)\r
wrdprintf("s68k_wram1M w8: [%06x] %02x @%06x", a, d, SekPcS68k);\r
- if (!(Pico_mcd->s68k_regs[3]&4))\r
- dprintf("s68k_wram1M FIXME: wrong mode");\r
+// if (!(Pico_mcd->s68k_regs[3]&4))\r
+// dprintf("s68k_wram1M FIXME: wrong mode");\r
bank = !(Pico_mcd->s68k_regs[3]&1);\r
*(u8 *)(Pico_mcd->word_ram1M[bank]+((a^1)&0x1ffff))=d;\r
return;\r
}\r
\r
// word RAM (1M area)\r
- if ((a&0xfe0000)==0x0c0000) { // 0c0000-0dffff\r
+ if ((a&0xfe0000)==0x0c0000 && (Pico_mcd->s68k_regs[3]&4)) { // 0c0000-0dffff\r
int bank;\r
if (d)\r
wrdprintf("s68k_wram1M w16: [%06x] %04x @%06x", a, d, SekPcS68k);\r
- if (!(Pico_mcd->s68k_regs[3]&4))\r
- dprintf("s68k_wram1M FIXME: wrong mode");\r
+// if (!(Pico_mcd->s68k_regs[3]&4))\r
+// dprintf("s68k_wram1M FIXME: wrong mode");\r
bank = !(Pico_mcd->s68k_regs[3]&1);\r
*(u16 *)(Pico_mcd->word_ram1M[bank]+(a&0x1fffe))=d;\r
return;\r
}\r
\r
// word RAM (1M area)\r
- if ((a&0xfe0000)==0x0c0000) { // 0c0000-0dffff\r
+ if ((a&0xfe0000)==0x0c0000 && (Pico_mcd->s68k_regs[3]&4)) { // 0c0000-0dffff\r
int bank;\r
u16 *pm;\r
if (d)\r
wrdprintf("s68k_wram1M w32: [%06x] %08x @%06x", a, d, SekPcS68k);\r
- if (!(Pico_mcd->s68k_regs[3]&4))\r
- dprintf("s68k_wram1M FIXME: wrong mode");\r
+// if (!(Pico_mcd->s68k_regs[3]&4))\r
+// dprintf("s68k_wram1M FIXME: wrong mode");\r
bank = !(Pico_mcd->s68k_regs[3]&1);\r
pm=(u16 *)(Pico_mcd->word_ram1M[bank]+(a&0x1fffe));\r
pm[0]=(u16)(d>>16); pm[1]=(u16)d;\r