#include "cd/LC89510.h"\r
#include "cd/gfx_cd.h"\r
\r
+struct mcd_pcm\r
+{\r
+ unsigned char control; // reg7\r
+ unsigned char enabled; // reg8\r
+ unsigned char cur_ch;\r
+ unsigned char bank;\r
+ int pad1;\r
+\r
+ struct pcm_chan\r
+ {\r
+ unsigned char regs[8];\r
+ unsigned int addr; // played sample address\r
+ int pad;\r
+ } ch[8];\r
+};\r
+\r
struct mcd_misc\r
{\r
unsigned short hint_vector;\r
unsigned short audio_offset; // for savestates: play pointer offset (0-1023)\r
unsigned char audio_track; // playing audio track # (zero based)\r
char pad1;\r
- int pad[12];\r
+ int timer_int3;\r
+ unsigned int timer_stopwatch;\r
+ int pad[10];\r
};\r
\r
typedef struct\r
{\r
unsigned char bios[0x20000]; // 128K\r
- union {\r
- unsigned char prg_ram[0x80000]; // 512K\r
+ union { // 512K\r
+ unsigned char prg_ram[0x80000];\r
unsigned char prg_ram_b[4][0x20000];\r
};\r
- unsigned char word_ram[0x40000]; // 256K\r
+ union { // 256K\r
+ struct {\r
+ unsigned char word_ram2M[0x40000];\r
+ unsigned char unused[0x20000];\r
+ };\r
+ struct {\r
+ unsigned char unused[0x20000];\r
+ unsigned char word_ram1M[2][0x20000];\r
+ };\r
+ };\r
+ union { // 64K\r
+ unsigned char pcm_ram[0x10000];\r
+ unsigned char pcm_ram_b[0x10][0x1000];\r
+ };\r
unsigned char bram[0x2000]; // 8K\r
- unsigned char s68k_regs[0x200];\r
+ unsigned char s68k_regs[0x200]; // GA, not CPU regs\r
+ struct mcd_pcm pcm;\r
_scd_toc TOC; // not to be saved\r
CDD cdd;\r
CDC cdc;\r
int SekResetS68k(void);\r
int SekInterruptS68k(int irq);\r
\r
+// sound/sound.c\r
+extern int PsndLen_exc_cnt;\r
+extern int PsndLen_exc_add;\r
+\r
// VideoPort.c\r
void PicoVideoWrite(unsigned int a,unsigned short d);\r
unsigned int PicoVideoRead(unsigned int a);\r
void SRAMWriteEEPROM(unsigned int d);\r
unsigned int SRAMReadEEPROM();\r
void SRAMUpdPending(unsigned int a, unsigned int d);\r
+void memcpy16(unsigned short *dest, unsigned short *src, int count);\r
+void memcpy32(int *dest, int *src, int count);\r
+void memset32(int *dest, int c, int count);\r
+\r
+// cd/Misc.c\r
+void wram_2M_to_1M(unsigned char *m);\r
+void wram_1M_to_2M(unsigned char *m);\r
\r
\r
#ifdef __cplusplus\r