build: drop function-sections
[picodrive.git] / pico / pico_int.h
index 765afaf..369bb5d 100644 (file)
@@ -117,13 +117,9 @@ extern m68ki_cpu_core PicoCpuMM68k, PicoCpuMS68k;
 #define SekNotPolling     PicoCpuMM68k.not_polling\r
 #define SekNotPollingS68k PicoCpuMS68k.not_polling\r
 \r
-#define SekInterrupt(irq) { \\r
-       void *oldcontext = m68ki_cpu_p; \\r
-       m68k_set_context(&PicoCpuMM68k); \\r
-       m68k_set_irq(irq); \\r
-       m68k_set_context(oldcontext); \\r
-}\r
-#define SekIrqLevel (PicoCpuMM68k.int_level >> 8)\r
+// avoid m68k_set_irq() for delaying to work\r
+#define SekInterrupt(irq)  PicoCpuMM68k.int_level = (irq) << 8\r
+#define SekIrqLevel        (PicoCpuMM68k.int_level >> 8)\r
 \r
 #endif\r
 #endif // EMU_M68K\r
@@ -291,6 +287,7 @@ extern SH2 sh2s[2];
 #define SR_EMPT       (1 << 9)\r
 // not part of real SR\r
 #define PVS_ACTIVE    (1 << 16)\r
+#define PVS_VB2       (1 << 17) // ignores forced blanking\r
 \r
 struct PicoVideo\r
 {\r
@@ -359,7 +356,6 @@ struct PicoEState
   unsigned short HighPal[0x100];\r
 };\r
 \r
-// some assembly stuff still depends on these, do not touch!\r
 struct PicoMem\r
 {\r
   unsigned char ram[0x10000];  // 0x00000 scratch ram\r
@@ -369,9 +365,9 @@ struct PicoMem
   };\r
   unsigned char zram[0x2000];  // 0x20000 Z80 ram\r
   unsigned char ioports[0x10]; // XXX: fix asm and mv\r
-  unsigned char pad[0xf0];     // unused\r
-  unsigned short cram[0x40];   // 0x22100\r
-  unsigned short vsram[0x40];  // 0x22180\r
+  unsigned short cram[0x40];   // 0x22010\r
+  unsigned char pad[0x70];     // 0x22050 DrawStripVSRam reads 0 from here\r
+  unsigned short vsram[0x40];  // 0x22100\r
 };\r
 \r
 // sram\r