-typedef void (CALLBACK* SPUplaySample)(unsigned char); \r
-typedef void (CALLBACK* SPUwriteRegister)(unsigned long, unsigned short);\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* SPUplayADPCMchannel)(xa_decode_t *);\r
-typedef void (CALLBACK* SPUregisterCallback)(void (CALLBACK *callback)(void));\r
+typedef void (CALLBACK* SPUwriteRegister)(unsigned long, unsigned short, unsigned int);\r
+typedef unsigned short (CALLBACK* SPUreadRegister)(unsigned long, unsigned 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 *, unsigned int, int);\r
+typedef void (CALLBACK* SPUregisterCallback)(void (CALLBACK *callback)(int));\r