\r
typedef struct _vgm_file_header_base\r
{\r
- UINT32 fccVGM; // 00\r
- UINT32 lngEOFOffset; // 04\r
- UINT32 lngVersion; // 08\r
- UINT32 lngSkip1[2]; // 0C\r
- UINT32 lngGD3Offset; // 14\r
- UINT32 lngTotalSamples; // 18\r
- UINT32 lngLoopOffset; // 1C\r
- UINT32 lngLoopSamples; // 20\r
- UINT32 lngRate; // 24\r
- UINT32 lngSkip2[3]; // 28\r
- UINT32 lngDataOffset; // 34\r
- UINT32 lngSkip3[2]; // 38\r
+ dword fccVGM; // 00\r
+ dword/*32*/ lngEOFOffset; // 04\r
+ dword/*32*/ lngVersion; // 08\r
+ dword/*32*/ lngSkip1[2]; // 0C\r
+ dword/*32*/ lngGD3Offset; // 14\r
+ dword/*32*/ lngTotalSamples; // 18\r
+ dword/*32*/ lngLoopOffset; // 1C\r
+ dword/*32*/ lngLoopSamples; // 20\r
+ dword/*32*/ lngRate; // 24\r
+ dword/*32*/ lngSkip2[3]; // 28\r
+ dword/*32*/ lngDataOffset; // 34\r
+ dword/*32*/ lngSkip3[2]; // 38\r
} VGM_BASE_HDR;\r
\r
#define PBMODE_MUSIC 0x00\r
UINT8 pbMode;\r
UINT8 vgmEnd; // 00 - running, 01 - finished, FF - not loaded\r
UINT16 curLoopCnt;\r
- UINT32 vgmPos;\r
- UINT32 vgmSmplPos;\r
- UINT32 pbSmplPos;\r
+ dword/*32*/ vgmPos;\r
+ dword/*32*/ vgmSmplPos;\r
+ dword/*32*/ pbSmplPos;\r
VGM_FILE* file;\r
\r
// oplChnMask:\r
#endif\r
}\r
\r
-INLINE UINT32 ReadLE32(const UINT8* buffer)\r
+INLINE dword/*32*/ ReadLE32(const UINT8* buffer)\r
{\r
#ifdef QUICK_READ\r
- return *(UINT32*)buffer;\r
+ return *(dword/*32*/*)buffer;\r
#else\r
return (buffer[0x00] << 0) | (buffer[0x01] << 8) |\r
(buffer[0x02] << 16) | (buffer[0x03] << 24);\r
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};\r
\r
\r
-UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile)\r
+UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile, global_game_variables_t *gvar)\r
{\r
size_t hdrSize;\r
size_t readEl; // 'elements' read from file\r
size_t bytesToRead;\r
VGM_BASE_HDR vgmBaseHdr;\r
FILE* hFile;\r
- UINT32 CurPos;\r
+ dword/*32*/ CurPos;\r
\r
memset(vgmFile, 0x00, sizeof(VGM_FILE));\r
\r
}\r
\r
vgmFile->dataLen = vgmBaseHdr.lngEOFOffset + 0x04;\r
- vgmFile->data = (UINT8*)malloc(vgmFile->dataLen);\r
+ //vgmFile->data = (UINT8*)malloc(vgmFile->dataLen);\r
+ MM_GetPtr(MEMPTRCONV gvar->ca.audiosegs[0], vgmFile->dataLen, gvar);\r
+ vgmFile->data = (UINT8*)gvar->ca.audiosegs[0];\r
if (vgmFile->data == NULL)\r
{\r
fclose(hFile);\r
return 0x00;\r
}\r
\r
-void FreeVGMFile(VGM_FILE* vgmFile)\r
+void FreeVGMFile(VGM_FILE* vgmFile, global_game_variables_t *gvar)\r
{\r
- free(vgmFile->data); vgmFile->data = NULL;\r
+ //if(vgmFile->data){ free(vgmFile->data); vgmFile->data = NULL; }\r
+ MM_FreePtr(MEMPTRCONV gvar->ca.audiosegs[0], gvar);\r
+ if(vgmFile->data) free(vgmFile->data);\r
vgmFile->dataLen = 0;\r
\r
- return;\r
+// return;\r
}\r
\r
\r
\r
static void UpdateVGM(VGM_PBK* vgmPlay, UINT16 Samples)\r
{\r
- const UINT32 vgmLen = vgmPlay->file->dataLen;\r
+ const dword/*32*/ vgmLen = vgmPlay->file->dataLen;\r
const UINT8* vgmData = vgmPlay->file->data;\r
const UINT8* VGMPnt;\r
- UINT32 VGMPos;\r
- UINT32 VGMSmplPos;\r
+ dword/*32*/ VGMPos;\r
+ dword/*32*/ VGMSmplPos;\r
UINT8 Command;\r
UINT8 blockType;\r
- UINT32 blockLen;\r
+ dword/*32*/ blockLen;\r
\r
vgmPlay->pbSmplPos += Samples;\r
VGMPos = vgmPlay->vgmPos;\r