typedef long (CALLBACK* SPUshutdown)(void); \r
typedef long (CALLBACK* SPUclose)(void); \r
typedef void (CALLBACK* SPUplaySample)(unsigned char); \r
-typedef void (CALLBACK* SPUwriteRegister)(unsigned long, unsigned short);\r
+typedef void (CALLBACK* SPUwriteRegister)(unsigned long, unsigned short, unsigned int);\r
typedef unsigned short (CALLBACK* SPUreadRegister)(unsigned long);\r
typedef void (CALLBACK* SPUwriteDMA)(unsigned short);\r
typedef unsigned short (CALLBACK* SPUreadDMA)(void);\r
-typedef void (CALLBACK* SPUwriteDMAMem)(unsigned short *, int);\r
-typedef void (CALLBACK* SPUreadDMAMem)(unsigned short *, int);\r
+typedef void (CALLBACK* SPUwriteDMAMem)(unsigned short *, int, unsigned int);\r
+typedef void (CALLBACK* SPUreadDMAMem)(unsigned short *, int, unsigned int);\r
typedef void (CALLBACK* SPUplayADPCMchannel)(xa_decode_t *);\r
typedef void (CALLBACK* SPUregisterCallback)(void (CALLBACK *callback)(void));\r
typedef void (CALLBACK* SPUregisterScheduleCb)(void (CALLBACK *callback)(unsigned int cycles_after));\r
xa_decode_t xa;\r
unsigned char *SPUInfo;\r
} SPUFreeze_t;\r
-typedef long (CALLBACK* SPUfreeze)(uint32_t, SPUFreeze_t *);\r
-typedef void (CALLBACK* SPUasync)(uint32_t);\r
+typedef long (CALLBACK* SPUfreeze)(uint32_t, SPUFreeze_t *, uint32_t);\r
+typedef void (CALLBACK* SPUasync)(uint32_t, uint32_t);\r
typedef int (CALLBACK* SPUplayCDDAchannel)(short *, int);\r
\r
// SPU function pointers\r