int emustatus = 0; // rapid_ym2612, multi_ym_updates\r
void (*PicoWriteSound)(int len) = NULL; // called at the best time to send sound buffer (PsndOut) to hardware\r
void (*PicoResetHook)(void) = NULL;\r
-void (*PicoLineHook)(void) = NULL;\r
+void (*PicoLineHook)(int count) = NULL;\r
\r
struct PicoSRAM SRam = {0,};\r
int z80startCycle, z80stopCycle; // in 68k cycles\r
// to be called on 224 or line_sample scanlines only\r
static __inline void getSamples(int y)\r
{\r
+#if SIMPLE_WRITE_SOUND\r
+ PsndRender(0, PsndLen);\r
+ if (PicoWriteSound) PicoWriteSound(PsndLen);\r
+ PsndClear();\r
+#else\r
static int curr_pos = 0;\r
\r
if(y == 224) {\r
emustatus&=~1;\r
curr_pos = PsndRender(0, PsndLen/2);\r
}\r
+#endif\r
}\r
\r
\r
SekRunM68k(cycles_68k_block);\r
\r
PicoRunZ80Simple(line, lines);\r
+ if (PicoLineHook) PicoLineHook(lines_step);\r
line=lines;\r
}\r
\r
\r
lines += sects*lines_step;\r
PicoRunZ80Simple(line, lines);\r
+ if (PicoLineHook) PicoLineHook(sects*lines_step);\r
}\r
\r
// render screen\r
SekRunM68k(cycles_68k_vblock);\r
\r
PicoRunZ80Simple(line, lines);\r
+ if (PicoLineHook) PicoLineHook(lines_step);\r
line=lines;\r
\r
sects--;\r
if (sects) {\r
lines += sects*lines_step;\r
PicoRunZ80Simple(line, lines);\r
+ if (PicoLineHook) PicoLineHook(sects*lines_step);\r
}\r
\r
return 0;\r
}\r
#endif\r
\r
-#if 0\r
- {\r
- FILE *f = fopen("zram", "wb");\r
- fwrite(Pico.zram, 1, 0x2000, f);\r
- fclose(f);\r
- }\r
-#endif\r
-\r
return dstr;\r
}\r
#endif\r