1 #ifndef __VGMSNDDRV_H__
\r
2 #define __VGMSNDDRV_H__
\r
4 #define VGM_USESCAMMPM
\r
11 #include "src/lib/vgmsnd/stdtype.h"
\r
12 #include "src/lib/16_head.h"
\r
13 #include "src/lib/16_tail.h"
\r
15 typedef struct _vgm_file_header
\r
18 dword/*32*/ lngEOFOffset;
\r
19 dword/*32*/ lngVersion;
\r
20 dword/*32*/ lngHzPSG;
\r
21 dword/*32*/ lngHzYM2413;
\r
22 dword/*32*/ lngGD3Offset;
\r
23 dword/*32*/ lngTotalSamples;
\r
24 dword/*32*/ lngLoopOffset;
\r
25 dword/*32*/ lngLoopSamples;
\r
26 dword/*32*/ lngRate;
\r
28 dword/*32*/ lngHzYM2612;
\r
29 dword/*32*/ lngHzYM2151;
\r
30 dword/*32*/ lngDataOffset;
\r
31 dword/*32*/ lngHzSPCM;
\r
32 dword/*32*/ lngSPCMIntf;
\r
33 dword/*32*/ lngHzRF5C68;
\r
34 dword/*32*/ lngHzYM2203;
\r
35 dword/*32*/ lngHzYM2608;
\r
36 dword/*32*/ lngHzYM2610;
\r
37 dword/*32*/ lngHzYM3812;
\r
38 dword/*32*/ lngHzYM3526;
\r
39 dword/*32*/ lngHzY8950;
\r
40 dword/*32*/ lngHzYMF262;
\r
41 dword/*32*/ lngHzYMF278B;
\r
42 dword/*32*/ lngHzYMF271;
\r
43 dword/*32*/ lngHzYMZ280B;
\r
44 dword/*32*/ lngHzRF5C164;
\r
45 dword/*32*/ lngHzPWM;
\r
46 dword/*32*/ lngHzAY8910;
\r
48 UINT8 bytVolumeModifier;
\r
51 UINT8 bytLoopModifier;
\r
54 typedef struct _vgm_file
\r
56 dword/*32*/ dataLen;
\r
62 UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile, global_game_variables_t *gvar);
\r
63 void FreeVGMFile(VGM_FILE* vgmFile, global_game_variables_t *gvar);
\r
65 void InitEngine(void);
\r
66 void DeinitEngine(void);
\r
68 UINT8 PlayMusic(VGM_FILE* vgmFile);
\r
69 UINT8 PlaySFX(VGM_FILE* vgmFile, UINT8 sfxChnID);
\r
70 UINT8 StopMusic(void);
\r
71 UINT8 StopSFX(UINT8 sfxChnID);
\r
72 UINT8 PauseMusic(void);
\r
73 UINT8 ResumeMusic(void);
\r
75 void UpdateSoundEngine(void);
\r
78 // Functions that must be supplied by external library:
\r
79 extern void OPL2_Write(UINT8 reg, UINT8 data);
\r
80 extern UINT8 OPL2_ReadStatus(void);
\r
87 #endif // ! __VGMSNDDRV_H__
\r