adjustments for CPU core changes
authornotaz <notasas@gmail.com>
Fri, 13 Jul 2007 13:43:56 +0000 (13:43 +0000)
committernotaz <notasas@gmail.com>
Fri, 13 Jul 2007 13:43:56 +0000 (13:43 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@190 be3aeb3a-fb24-0410-a615-afba39da0efa

Pico/Memory.c
Pico/PicoInt.h
Pico/_cyclone_debug.c
platform/gp2x/Makefile

index 48f1fed..daec623 100644 (file)
@@ -504,7 +504,9 @@ static unsigned int  m68k_read_8 (unsigned int a, int do_fake) {
   a&=0xffffff;\r
   if(PicoMCD&1) return m68k_read_pcrelative_CD8(a);\r
   if(a<Pico.romsize)         return *(u8 *)(Pico.rom+(a^1)); // Rom\r
+#ifdef EMU_C68K\r
   if(do_fake&&((ppop&0x3f)==0x3a||(ppop&0x3f)==0x3b)) return lastread_d[lrp_mus++&15];\r
+#endif\r
   if((a&0xe00000)==0xe00000) return *(u8 *)(Pico.ram+((a^1)&0xffff)); // Ram\r
   return 0;\r
 }\r
@@ -512,7 +514,9 @@ static unsigned int  m68k_read_16(unsigned int a, int do_fake) {
   a&=0xffffff;\r
   if(PicoMCD&1) return m68k_read_pcrelative_CD16(a);\r
   if(a<Pico.romsize)         return *(u16 *)(Pico.rom+(a&~1)); // Rom\r
+#ifdef EMU_C68K\r
   if(do_fake&&((ppop&0x3f)==0x3a||(ppop&0x3f)==0x3b)) return lastread_d[lrp_mus++&15];\r
+#endif\r
   if((a&0xe00000)==0xe00000) return *(u16 *)(Pico.ram+(a&0xfffe)); // Ram\r
   return 0;\r
 }\r
@@ -520,7 +524,9 @@ static unsigned int  m68k_read_32(unsigned int a, int do_fake) {
   a&=0xffffff;\r
   if(PicoMCD&1) return m68k_read_pcrelative_CD32(a);\r
   if(a<Pico.romsize)         { u16 *pm=(u16 *)(Pico.rom+(a&~1));     return (pm[0]<<16)|pm[1]; }\r
+#ifdef EMU_C68K\r
   if(do_fake&&((ppop&0x3f)==0x3a||(ppop&0x3f)==0x3b)) return lastread_d[lrp_mus++&15];\r
+#endif\r
   if((a&0xe00000)==0xe00000) { u16 *pm=(u16 *)(Pico.ram+(a&0xfffe)); return (pm[0]<<16)|pm[1]; } // Ram\r
   return 0;\r
 }\r
index a389c6f..b624bd5 100644 (file)
@@ -118,7 +118,7 @@ extern int SekCycleAimS68k;
 #undef SekEndRun\r
 #define SekSetCyclesLeftNoMCD(c)\r
 #define SekSetCyclesLeft(c)\r
-#define SekCyclesBurn(c)\r
+#define SekCyclesBurn(c) c\r
 #define SekEndRun(c)\r
 #endif\r
 \r
index 25e94d6..9112c09 100644 (file)
@@ -53,24 +53,21 @@ int CM_compareRun(int cyc)
       //m68ki_cpu.s_flag = SFLAG_SET;\r
       //PicoCpu.srh|=0x20;\r
     }\r
-    if (PicoCpu.a[7] < 0x00ff0000 || PicoCpu.a[7] >= 0x01000000)\r
-    {\r
-      PicoCpu.a[7] = m68ki_cpu.dar[15] = 0xff8000;\r
-    }\r
 \r
     pppc = SekPc;\r
     ppop = m68k_read_disassembler_16(pppc);\r
     memcpy(old_regs, PicoCpu.d, 4*16);\r
     old_sr = CycloneGetSr(&PicoCpu);\r
 \r
-    //if (Pico.m.frame_count > 1400)\r
-    //  dprintf("---");\r
+    /*\r
+    dprintf("---");\r
     {\r
       char buff[128];\r
       dprintf("---");\r
       m68k_disassemble(buff, pppc, M68K_CPU_TYPE_68000);\r
       dprintf("PC: %06x: %04x: %s", pppc, ppop, buff);\r
     }\r
+    */\r
 \r
     PicoCpu.cycles=1;\r
     CycloneRun(&PicoCpu);\r
@@ -137,7 +134,7 @@ int CM_compareRun(int cyc)
 \r
     // OSP/USP\r
     if(PicoCpu.osp != m68ki_cpu.sp[((mu_sr>>11)&4)^4]) {\r
-      dprintf("OSP: %06x vs %06x", PicoCpu.osp, m68ki_cpu.sp[0]);\r
+      dprintf("OSP: %06x vs %06x", PicoCpu.osp, m68ki_cpu.sp[((mu_sr>>11)&4)^4]);\r
       err=1;\r
     }\r
 \r
@@ -149,6 +146,12 @@ int CM_compareRun(int cyc)
 \r
     if(err) dumpPCandExit();\r
 \r
+/*\r
+    if (PicoCpu.a[7] < 0x00ff0000 || PicoCpu.a[7] >= 0x01000000)\r
+    {\r
+      PicoCpu.a[7] = m68ki_cpu.dar[15] = 0xff8000;\r
+    }\r
+*/\r
 #if 0\r
     m68k_set_reg(M68K_REG_SR, ((mu_sr-1)&~0x2000)|(mu_sr&0x2000)); // broken\r
     CycloneSetSr(&PicoCpu, ((mu_sr-1)&~0x2000)|(mu_sr&0x2000));\r
index 1654dfa..377ea11 100644 (file)
@@ -21,10 +21,12 @@ asm_cdmemory = 1
 ifeq "$(debug_cyclone)" "1"\r
 use_cyclone = 1\r
 use_musashi = 1\r
+endif\r
+ifeq "$(use_musashi)" "1"\r
+asm_cdpico = 0\r
 asm_memory = 0\r
 asm_cdmemory = 0\r
-endif\r
-ifneq "$(use_musashi)" "1"\r
+else\r
 use_cyclone = 1\r
 endif\r
 \r
@@ -99,8 +101,7 @@ endif
 # CPU cores\r
 ifeq "$(use_musashi)" "1"\r
 DEFINC += -DEMU_M68K\r
-OBJS += ../../cpu/musashi/m68kcpu.o ../../cpu/musashi/m68kopac.o ../../cpu/musashi/m68kopdm.o\r
-OBJS += ../../cpu/musashi/m68kopnz.o ../../cpu/musashi/m68kops.o\r
+OBJS += ../../cpu/musashi/m68kops.o ../../cpu/musashi/m68kcpu.o\r
 endif\r
 ifeq "$(use_cyclone)" "1"\r
 DEFINC += -DEMU_C68K\r
@@ -179,7 +180,11 @@ testrefr.gpe : test.o gp2x.o asmutils.o
 # build Cyclone\r
 ../../cpu/Cyclone/proj/Cyclone.s :\r
        @echo building Cyclone...\r
-       @make -C ../../cpu/Cyclone/proj -f Makefile.linux\r
+       @make -C ../../cpu/Cyclone/proj\r
+\r
+../../cpu/musashi/m68kops.c :\r
+       @make -C ../../cpu/musashi\r
+\r
 \r
 # build helix libs\r
 helix/helix_mp3.a:\r