From adb425e17c32e33e71670dd69c909717f1d65acb Mon Sep 17 00:00:00 2001
From: sparky4 <sparky4@cock.li>
Date: Sat, 22 Apr 2017 09:09:26 -0500
Subject: [PATCH] 16_ca needs huge amounts of work and I should remember what
 needs to be done soon[going to port rest of code to borland c some time so we
 can use the core components of id engine here ][going to add 16_us.c
 eventually but the debug system and CA_ PM_ and MM_ usage is priority
 now]older zcroll renamed to xcroll][zcroll is now the pre menu game loop
 system with PROPER data usage with CAMMPM] added 1st scroll back [i work on
 CA]

---
 BCWOLF.LOG              | 25 ++++++++++++++
 makefile                |  2 +-
 src/16.c                |  2 +-
 src/exmmtest.c          |  2 +-
 src/lib/16_ca.c         | 75 ++++++++++++++++++++++-------------------
 src/lib/16_dbg.h        |  2 +-
 src/lib/16_mm.c         |  3 +-
 src/lib/16_mm.h         |  2 +-
 src/lib/16_sd.c         |  4 +--
 src/lib/16_t.h          | 21 +++++++++++-
 src/lib/16_tdef.h       |  9 ++---
 src/lib/vgmsnd/vgmSnd.c |  4 +--
 src/xcroll.c            |  4 +--
 13 files changed, 103 insertions(+), 52 deletions(-)
 create mode 100755 BCWOLF.LOG

diff --git a/BCWOLF.LOG b/BCWOLF.LOG
new file mode 100755
index 00000000..f1a3abc0
--- /dev/null
+++ b/BCWOLF.LOG
@@ -0,0 +1,25 @@
+VL_MungePic====================================
+4EC3:FFAE	(memptr *)&temp
+4EC3:FFAE	(memptr)temp
+460A:4628	&temp
+4628:3DC2	temp
+===============================================
+	SDL_SetDS():	OK
+CAL_SetupGrFile:
+	chunkcomplen size is 350
+CalcHeight()
+heightnumerator
+211968	15360	828	0
+a	6234
+b	12
+d	8734
+d	8
+ax	4
+al	5
+	nx	0
+pee	2408
+gxt	gyt	nx	gx	gy
+0	0	22528	0	0
+0	0	0	0	22528
+ch	14
+compiled on Apr 19 2017  12:39:47
diff --git a/makefile b/makefile
index 5c21b2ad..575e318f 100755
--- a/makefile
+++ b/makefile
@@ -119,7 +119,7 @@ UPXQ=-qqq
 #
 # compile flags
 #
-S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768#24576
+S_FLAGS=-sg -st -of+ -zu -zdp -zff -zgf -k32768#24576
 Z_FLAGS=-zk0 -zc -zm#### -zp4 -ei
 O_FLAGS=-opnr -oe=24 -oil+ -outback -ohm
 T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 -d1 -fo=.$(OBJ)## -e=65536
diff --git a/src/16.c b/src/16.c
index 7f22e1b6..eb64dde7 100755
--- a/src/16.c
+++ b/src/16.c
@@ -54,6 +54,6 @@ main(int argc, char *argv[])
 
 //++++	DemoLoop();//to be defined in 16_tail
 
-//++++	Quit("Demo loop exited???");
+//++++	Quit(gvar, "Demo loop exited???");
 
 }
diff --git a/src/exmmtest.c b/src/exmmtest.c
index 8742c046..ea73aa99 100755
--- a/src/exmmtest.c
+++ b/src/exmmtest.c
@@ -57,7 +57,7 @@
 
 #define BBUFNAME gvar.mm.bufferseg//bigbuffer
 //#define INITBBUF static memptr BBUFNAME;
-#define BBUFPTR	MEMPTR BBUFNAME
+#define BBUFPTR	MEMPTRCONV BBUFNAME
 
 #ifdef __BORLANDC__
 #define BBUF		(memptr *)BBUFPTR
diff --git a/src/lib/16_ca.c b/src/lib/16_ca.c
index 8dd2da0a..d55ac7f0 100755
--- a/src/lib/16_ca.c
+++ b/src/lib/16_ca.c
@@ -36,7 +36,7 @@ loaded into the data segment
 #pragma warn -pro
 #pragma warn -use
 
-//#define THREEBYTEGRSTARTS
+#define THREEBYTEGRSTARTS
 //https://github.com/open-watcom/open-watcom-v2/issues/279#issuecomment-244587566 for _seg
 //http://www.shikadi.net/moddingwiki/GameMaps_Format for info on the code
 /*
@@ -121,9 +121,9 @@ huffnode	audiohuffman[255];
 int			grhandle;		// handle to EGAGRAPH
 int			maphandle;		// handle to MAPTEMP / GAMEMAPS
 int			audiohandle;	// handle to AUDIOT / AUDIO
-
-long		c hunkcomplen,c hunkexplen;
-
+*/
+long		chunkcomplen,chunkexplen;
+/*
 SDMode		oldsoundmode;
 
 
@@ -138,14 +138,14 @@ void	CAL_CarmackExpand (unsigned far *source, unsigned far *dest,
 #ifdef THREEBYTEGRSTARTS
 #define FILEPOSSIZE	3
 //#define	GRFILEPOS(c) (*(long far *)(((byte far *)grstarts)+(c)*3)&0xffffff)
-long GRFILEPOS(int c, global_game_variables_t *gvar)
+CASVT GRFILEPOS(int c, global_game_variables_t *gvar)
 {
-	long value;
+	CASVT value;
 	int	offset;
 
 	offset = c*3;
 
-	value = *(long far *)(((byte far *)gvar->ca.grstarts)+offset);
+	value = *(CASVT far *)(((byte far *)gvar->ca.grstarts)+offset);
 
 	value &= 0x00ffffffl;
 
@@ -156,7 +156,11 @@ long GRFILEPOS(int c, global_game_variables_t *gvar)
 };
 #else
 #define FILEPOSSIZE	4
-#define	GRFILEPOS(c) (gvar->ca.grstarts[c])
+//#define	GRFILEPOS(c) (gvar->ca.grstarts[c])
+CASVT GRFILEPOS(int c, global_game_variables_t *gvar)
+{
+	return gvar->ca.grstarts[c];
+}
 #endif
 
 /*
@@ -208,9 +212,9 @@ void CA_CloseDebug(global_game_variables_t *gvar)
 
 void CAL_GetGrChunkLength (int chunk,global_game_variables_t *gvar)
 {
-	lseek(gvar->ca.file.grhandle,GRFILEPOS(chunk),SEEK_SET);
+	lseek(gvar->ca.file.grhandle,GRFILEPOS(chunk,gvar),SEEK_SET);
 	read(gvar->ca.file.grhandle,&gvar->ca.chunkexplen,sizeof(gvar->ca.chunkexplen));
-	gvar->ca.chunkcomplen = GRFILEPOS(chunk+1)-GRFILEPOS(chunk)-4;
+	gvar->ca.chunkcomplen = GRFILEPOS(chunk+1,gvar)-GRFILEPOS(chunk,gvar)-4;
 }
 
 
@@ -1069,7 +1073,7 @@ void CAL_SetupGrFile (global_game_variables_t *gvar)
 //
 // load the data offsets from ???head.ext
 //
-	MM_GetPtr (MEMPTR gvar->ca.grstarts,(NUMCHUNKS+1)*FILEPOSSIZE, gvar);
+	MM_GetPtr (MEMPTRCONV gvar->ca.grstarts,(NUMCHUNKS+1)*FILEPOSSIZE, gvar);
 
 	strcpy(fname,GHEADNAME);
 	strcat(fname,EXTENSION);
@@ -1100,16 +1104,19 @@ void CAL_SetupGrFile (global_game_variables_t *gvar)
 // load the pic and sprite headers into the arrays in the data segment
 //
 #if NUMPICS>0
-	MM_GetPtr(MEMPTR gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar);
+	MM_GetPtr(MEMPTRCONV gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar);
 	CAL_GetGrChunkLength(STRUCTPIC,gvar);		// position file pointer
-	MM_GetPtr(&compseg,gvar->ca.chunkcomplen, gvar);
+	printf("CAL_SetupGrFile:\n");
+	printf("	gvar->ca.chunkcomplen size is %lu\n", gvar->ca.chunkcomplen);
+	MM_GetPtr(&compseg,gvar->ca.chunkcomplen,gvar);
+	IN_Ack(gvar);
 	CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen,gvar);
 	CAL_HuffExpand (compseg, (byte far *)gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar->ca.grhuffman);
 	MM_FreePtr(&compseg,gvar);
 #endif
 
 #if NUMPICM>0
-	MM_GetPtr(MEMPTR picmtable,NUMPICM*sizeof(pictabletype));
+	MM_GetPtr(MEMPTRCONV picmtable,NUMPICM*sizeof(pictabletype));
 	CAL_GetGrChunkLength(STRUCTPICM);		// position file pointer
 	MM_GetPtr(&compseg,gvar->ca.chunkcomplen);
 	CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen);
@@ -1118,7 +1125,7 @@ void CAL_SetupGrFile (global_game_variables_t *gvar)
 #endif
 
 #if NUMSPRITES>0
-	MM_GetPtr(MEMPTR spritetable,NUMSPRITES*sizeof(spritetabletype));
+	MM_GetPtr(MEMPTRCONV spritetable,NUMSPRITES*sizeof(spritetabletype));
 	CAL_GetGrChunkLength(STRUCTSPRITE);	// position file pointer
 	MM_GetPtr(&compseg,gvar->ca.chunkcomplen);
 	CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen);
@@ -1154,7 +1161,7 @@ void CAL_SetupMapFile (global_game_variables_t *gvar)
 		 O_RDONLY | O_BINARY, S_IREAD)) == -1)
 		Quit (gvar, "Can't open maphead.mph");
 	length = filelength(handle);
-	MM_GetPtr (MEMPTR gvar->ca.tinf,length,gvar);
+	MM_GetPtr (MEMPTRCONV gvar->ca.tinf,length,gvar);
 	CA_FarRead(handle, gvar->ca.tinf, length,gvar);
 	close(handle);
 //#else
@@ -1205,7 +1212,7 @@ void CAL_SetupMapFile (global_game_variables_t *gvar)
 		 O_RDONLY | O_BINARY, S_IREAD)) == -1)
 		Quit (gvar, "Can't open AUDIOHED.16""!");
 	length = filelength(handle);
-	MM_GetPtr (MEMPTR audiostarts,length);
+	MM_GetPtr (MEMPTRCONV audiostarts,length);
 	CA_FarRead(handle, (byte far *)audiostarts, length);
 	close(handle);
 #else
@@ -1329,7 +1336,7 @@ void CA_CacheAudioChunk (int chunk)
 
 	if (audiosegs[chunk])
 	{
-		MM_SetPurge (MEMPTR audiosegs[chunk],0);
+		MM_SetPurge (MEMPTRCONV audiosegs[chunk],0);
 		return;							// allready in memory
 	}
 
@@ -1351,7 +1358,7 @@ void CA_CacheAudioChunk (int chunk)
 
 #ifndef AUDIOHEADERLINKED
 
-	MM_GetPtr (MEMPTR audiosegs[chunk],compressed);
+	MM_GetPtr (MEMPTRCONV audiosegs[chunk],compressed);
 	if (mmerror)
 		return;
 
@@ -1376,7 +1383,7 @@ void CA_CacheAudioChunk (int chunk)
 
 	expanded = *(long far *)source;
 	source += 4;			// skip over length
-	MM_GetPtr (MEMPTR audiosegs[chunk],expanded);
+	MM_GetPtr (MEMPTRCONV audiosegs[chunk],expanded);
 	if (mmerror)
 		goto done;
 	CAL_HuffExpand (source,audiosegs[chunk],expanded,audiohuffman);
@@ -1417,7 +1424,7 @@ void CA_LoadAllSounds (void)
 
 	for (i=0;i<NUMSOUNDS;i++,start++)
 		if (audiosegs[start])
-			MM_SetPurge (MEMPTR audiosegs[start],3);		// make purgable
+			MM_SetPurge (MEMPTRCONV audiosegs[start],3);		// make purgable
 
 cachein:
 
@@ -1797,15 +1804,15 @@ void CAL_ReadGrChunk (int chunk)
 // load the chunk into a buffer, either the miscbuffer if it fits, or allocate
 // a larger buffer
 //
-	pos = GRFILEPOS(chunk);
+	pos = GRFILEPOS(chunk,gvar);
 	if (pos<0)							// $FFFFFFFF start is a sparse tile
 	  return;
 
 	next = chunk +1;
-	while (GRFILEPOS(next) == -1)		// skip past any sparse tiles
+	while (GRFILEPOS(next,gvar) == -1)		// skip past any sparse tiles
 		next++;
 
-	compressed = GRFILEPOS(next)-pos;
+	compressed = GRFILEPOS(next,gvar)-pos;
 
 	lseek(gvar->ca.file.grhandle,pos,SEEK_SET);
 
@@ -1865,7 +1872,7 @@ void CA_CacheGrChunk (int chunk)
 // load the chunk into a buffer, either the miscbuffer if it fits, or allocate
 // a larger buffer
 //
-	pos = GRFILEPOS(chunk);
+	pos = GRFILEPOS(chunk,gvar);
 	if (pos<0)							// $FFFFFFFF start is a sparse tile
 	  return;
 
@@ -1873,7 +1880,7 @@ void CA_CacheGrChunk (int chunk)
 	while (GRFILEPOS(next) == -1)		// skip past any sparse tiles
 		next++;
 
-	compressed = GRFILEPOS(next)-pos;
+	compressed = GRFILEPOS(next,gvar)-pos;
 
 	lseek(gvar->ca.file.grhandle,pos,SEEK_SET);
 
@@ -1945,12 +1952,12 @@ void CA_CacheMap (global_game_variables_t *gvar)
 //		if (pos<0)						// $FFFFFFFF start is a sparse map
 //		  printf("CA_CacheMap: Tried to load a non existent map!");
 
-//		MM_GetPtr(MEMPTR gvar->ca.camapheaderseg[mapnum],sizeof(maptype));
+//		MM_GetPtr(MEMPTRCONV gvar->ca.camapheaderseg[mapnum],sizeof(maptype));
 //		lseek(maphandle,pos,SEEK_SET);
 //		CA_FarRead (maphandle,(memptr)mapheaderseg[mapnum],sizeof(maptype));
 //	}
 //	else
-//		MM_SetPurge (MEMPTR mapheaderseg[mapnum], 0, &(gvar->mm));
+//		MM_SetPurge (MEMPTRCONV mapheaderseg[mapnum], 0, &(gvar->mm));
 
 //
 // load the planes in
@@ -1968,7 +1975,7 @@ void CA_CacheMap (global_game_variables_t *gvar)
 		if (!compressed)
 			continue;		// the plane is not used in this game
 
-		dest = MEMPTR mapsegs[plane];
+		dest = MEMPTRCONV mapsegs[plane];
 		MM_GetPtr(dest,size);
 
 		lseek(maphandle,pos,SEEK_SET);
@@ -2352,7 +2359,7 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar)
 			if (dialog && updatecachebox)
 				updatecachebox ();
 
-			pos = GRFILEPOS(i);
+			pos = GRFILEPOS(i,gvar);
 			if (pos<0)
 				continue;
 
@@ -2360,7 +2367,7 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar)
 			while (GRFILEPOS(next) == -1)		// skip past any sparse tiles
 				next++;
 
-			compressed = GRFILEPOS(next)-pos;
+			compressed = GRFILEPOS(next,gvar)-pos;
 			endpos = pos+compressed;
 
 			if (compressed<=BUFFERSIZE)
@@ -2383,10 +2390,10 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar)
 						if (next == NUMCHUNKS)
 							continue;
 
-						nextpos = GRFILEPOS(next);
-						while (GRFILEPOS(++next) == -1)	// skip past any sparse tiles
+						nextpos = GRFILEPOS(next,gvar);
+						while (GRFILEPOS(++next,gvar) == -1)	// skip past any sparse tiles
 							;
-						nextendpos = GRFILEPOS(next);
+						nextendpos = GRFILEPOS(next,gvar);
 						if (nextpos - endpos <= MAXEMPTYREAD
 						&& nextendpos-pos <= BUFFERSIZE)
 							endpos = nextendpos;
diff --git a/src/lib/16_dbg.h b/src/lib/16_dbg.h
index 295b7146..31666821 100755
--- a/src/lib/16_dbg.h
+++ b/src/lib/16_dbg.h
@@ -12,7 +12,7 @@
 //#define __DEBUG_2__
 //#define __DEBUG_CA__
 //#define __DEBUG_PM__
-//#define __DEBUG_MM__
+#define __DEBUG_MM__
 //#define __DEBUG_RF__
 #define __DEBUG_SPRI__
 
diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c
index d43432fe..b6d2a267 100755
--- a/src/lib/16_mm.c
+++ b/src/lib/16_mm.c
@@ -936,13 +936,14 @@ void MM_GetPtr (memptr *baseptr, dword size, global_game_variables_t *gvar)
 	gvar->mm.mmnew->useptr = baseptr;
 	//if(gvar->mm.mmnew->useptr==NULL){
 #ifdef __DEBUG_MM__
+	printf("MM_GetPtr\n");
 	if(dbg_debugmm>0){
-		printf("MM_GetPtr\n");
 		//%04x
 		printf("	baseptr=%Fp	", baseptr); printf("useptr=%Fp\n", gvar->mm.mmnew->useptr);
 		printf("	*baseptr=%Fp	", *baseptr); printf("*useptr=%Fp\n", *(gvar->mm.mmnew->useptr));
 		printf("	&baseptr=%Fp	", &baseptr); printf("&useptr=%Fp\n", &(gvar->mm.mmnew->useptr));
 	}
+	printf("	size is %lu\n", size);
 #endif
 	//Quit(gvar, "gvar->mm.mmnew->useptr==NULL"); }
 	gvar->mm.mmnew->attributes = BASEATTRIBUTES;
diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h
index f890a3bb..c5e89a2b 100755
--- a/src/lib/16_mm.h
+++ b/src/lib/16_mm.h
@@ -29,7 +29,7 @@
 #ifdef __DEBUG__		// 1 == Debug/Dev  ;  0 == Production/final
 #define OUT_OF_MEM_MSG	"MM_GetPtr: Out of memory!\nYou were short :%lu bytes\n"
 #else
-#define OUT_OF_MEM_MSG	"\npee\n"
+#define OUT_OF_MEM_MSG	"\n"
 #endif
 
 //#define GETNEWBLOCK {if(!(mmnew=mmfree))Quit("MM_GETNEWBLOCK: No free blocks!") ;mmfree=mmfree->next;}
diff --git a/src/lib/16_sd.c b/src/lib/16_sd.c
index b82ff3e8..610f7ed0 100755
--- a/src/lib/16_sd.c
+++ b/src/lib/16_sd.c
@@ -226,7 +226,7 @@ void SD_Initimf(global_game_variables_t *gvar)
 void SD_imf_free_music(global_game_variables_t *gvar)
 {
 //	if (gvar->ca.sd.imf_music) free(gvar->ca.sd.imf_music);
-	MM_FreePtr(MEMPTR gvar->ca.audiosegs[0], gvar);	//TODO make behave like id engine
+	MM_FreePtr(MEMPTRCONV gvar->ca.audiosegs[0], gvar);	//TODO make behave like id engine
 	gvar->ca.sd.imf_music = gvar->ca.sd.imf_play_ptr = gvar->ca.sd.imf_music_end = NULL;
 	gvar->ca.sd.imf_delay_countdown = 0;
 }
@@ -256,7 +256,7 @@ int SD_imf_load_music(const char *path, global_game_variables_t *gvar)
 	}
 	len -= len & 3;
 
-	MM_GetPtr(MEMPTR gvar->ca.audiosegs[0],len, gvar);
+	MM_GetPtr(MEMPTRCONV gvar->ca.audiosegs[0],len, gvar);
 	gvar->ca.sd.imf_music = (struct imf_entry *)gvar->ca.audiosegs[0];
 	if (gvar->ca.sd.imf_music == NULL) {
 		close(fd);
diff --git a/src/lib/16_t.h b/src/lib/16_t.h
index ce881ae8..764bf51e 100755
--- a/src/lib/16_t.h
+++ b/src/lib/16_t.h
@@ -65,9 +65,28 @@ MK_FP(segment value, 0)*/
 
 typedef void _seg * memptr;
 
-#define MEMPTR (memptr *)&//old is &(memptr)
+#define MEMPTRCONV			(memptr *)&
 
+//bcc
+#ifdef __BORLANDC__
+#define MEMPTRANDPERCONV	&
+//#define BYTEFARPTRCONV		(unsigned char far *)
+//#define SMDPTRANDPERCONV	&
+//#define SDFPTRANDPERCONV	&
+//#define OBTPTRANDPERCONV	&
+//#define SDTPTRANDPERCONV	&
+#endif
+//
+
+//wcc
 #ifdef __WATCOMC__	//functions found in borland c but not watcom c
+#define MEMPTRANDPERCONV
+//#define BYTEFARPTRCONV
+//#define SMDPTRANDPERCONV	(void *)&
+//#define SDFPTRANDPERCONV	(struct diskfree_t *)&
+//#define OBTPTRANDPERCONV	(void const *)&
+//#define SDTPTRANDPERCONV	(struct dostime_t *)&
+
 #define _argv __argv
 #define _argc __argc
 #define geninterrupt(n) int86(n,&CPURegs,&CPURegs);
diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h
index f45195d6..1aa8b53f 100755
--- a/src/lib/16_tdef.h
+++ b/src/lib/16_tdef.h
@@ -660,9 +660,10 @@ typedef struct
 
 #define NUMMAPS		4//39
 #define NUMSNDCHUNKS		4//3
-//#define NUMPICS		132//wolf3d wl6
+//#define NUMPICS		4//132//wolf3d wl6
 
 #define STRUCTPIC	0
+#define CASVT		dword	//*start var type
 
 
 #define DATADIR		"data/"
@@ -718,8 +719,8 @@ typedef struct	//TODO: USE THIS!!!!
 	byte		far		grneeded[NUMCHUNKS];
 	word		_seg *audiosegs[NUMSNDCHUNKS];//long
 
-	word		_seg	*grstarts;	// array of offsets in egagraph, -1 for sparse//long
-	word		_seg	*audiostarts;	// array of offsets in audio / audiot//long
+	CASVT		_seg	*grstarts;	// array of offsets in egagraph, -1 for sparse//long
+	CASVT		_seg	*audiostarts;	// array of offsets in audio / audiot//long
 
 #ifdef GRHEADERLINKED
 	huffnode	*grhuffman;
@@ -733,7 +734,7 @@ typedef struct	//TODO: USE THIS!!!!
 	huffnode	audiohuffman[255];
 #endif
 
-	long		chunkcomplen,chunkexplen;
+	CASVT		chunkcomplen,chunkexplen;//long
 
 	sd_t		sd;
 	//TODO: extend! and learn from keen/wolf/catacomb's code wwww
diff --git a/src/lib/vgmsnd/vgmSnd.c b/src/lib/vgmsnd/vgmSnd.c
index 30d3a383..2cfd8690 100755
--- a/src/lib/vgmsnd/vgmSnd.c
+++ b/src/lib/vgmsnd/vgmSnd.c
@@ -172,7 +172,7 @@ UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile, global_game_variables
 
 	vgmFile->dataLen = vgmBaseHdr.lngEOFOffset + 0x04;
 	//vgmFile->data = (UINT8*)malloc(vgmFile->dataLen);
-	MM_GetPtr(MEMPTR gvar->ca.audiosegs[0], vgmFile->dataLen, gvar);
+	MM_GetPtr(MEMPTRCONV gvar->ca.audiosegs[0], vgmFile->dataLen, gvar);
 	vgmFile->data = (UINT8*)gvar->ca.audiosegs[0];
 	if (vgmFile->data == NULL)
 	{
@@ -217,7 +217,7 @@ UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile, global_game_variables
 void FreeVGMFile(VGM_FILE* vgmFile, global_game_variables_t *gvar)
 {
 	//if(vgmFile->data){ free(vgmFile->data);	vgmFile->data = NULL; }
-	MM_FreePtr(MEMPTR gvar->ca.audiosegs[0], gvar);
+	MM_FreePtr(MEMPTRCONV gvar->ca.audiosegs[0], gvar);
 	if(vgmFile->data) free(vgmFile->data);
 	vgmFile->dataLen = 0;
 
diff --git a/src/xcroll.c b/src/xcroll.c
index ed02457e..9e968ae5 100755
--- a/src/xcroll.c
+++ b/src/xcroll.c
@@ -121,9 +121,7 @@ void main(int argc, char *argv[])
 	modexFadeOn(4, &gvar.video.palette);
 #endif
 
-	IN_StartAck (&gvar);
-	MM_ShowMemory(&gvar);
-	while (!IN_CheckAck (&gvar)){}
+//	IN_StartAck (&gvar);	MM_ShowMemory(&gvar);	while (!IN_CheckAck (&gvar)){}
 #ifdef FADE
 	modexPalBlack();	//so player will not see loadings~
 #endif
-- 
2.39.5