📄 vgb.c
字号:
DefineColorScheme (atoi(argv[N+1]),
argv[N+2],
argv[N+3],
argv[N+4],
argv[N+5]);
N+=5;
}
else
misparm=1;
break;
case 26: N++;
if(N<argc) ColorNames[4]=argv[N];
else misparm=1;
break;
case 27: N++;
if(N<argc) ColorNames[5]=argv[N];
else misparm=1;
break;
case 28: N++;
if(N<argc) ColorNames[6]=argv[N];
else misparm=1;
break;
case 29: N++;
if(N<argc) ColorNames[7]=argv[N];
else misparm=1;
break;
case 30: N++;
if(N<argc)
SelectSpriteColorScheme (atoi(argv[N]));
else
misparm=1;
break;
case 31: N++;
if(N<argc)
brightness=spritebrightness=atoi(argv[N]);
else
misparm=1;
break;
case 32: N++;
if(N<argc)
spritebrightness=atoi(argv[N]);
else
misparm=1;
break;
case 33: N++;
if(N<argc)
windowbrightness=atoi(argv[N]);
else
misparm=1;
break;
case 34: N++;
if(N<argc)
SelectWindowColorScheme (atoi(argv[N]));
else
misparm=1;
break;
case 35: N++;
if(N<argc) ColorNames[8]=argv[N];
else misparm=1;
break;
case 36: N++;
if(N<argc) ColorNames[9]=argv[N];
else misparm=1;
break;
case 37: N++;
if(N<argc) ColorNames[10]=argv[N];
else misparm=1;
break;
case 38: N++;
if(N<argc) ColorNames[11]=argv[N];
else misparm=1;
break;
case 39: N++;
if(N<argc) stereomode=atoi(argv[N]);
else misparm=1;
break;
case 40: N++;
if(N<argc)
SelectBackgroundColorScheme (atoi(argv[N]));
else
misparm=1;
break;
case 41: N++;
if(N<argc) ColorNames[0]=argv[N];
else misparm=1;
break;
case 42: N++;
if(N<argc) ColorNames[1]=argv[N];
else misparm=1;
break;
case 43: N++;
if(N<argc) ColorNames[2]=argv[N];
else misparm=1;
break;
case 44: N++;
if(N<argc) ColorNames[3]=argv[N];
else misparm=1;
break;
case 45: N++;
if(N<argc) AutoA=atoi(argv[N]);
else misparm=1;
break;
case 46: N++;
if(N<argc) AutoB=atoi(argv[N]);
else misparm=1;
break;
case 47: N++;
if(N<argc) SndName=argv[N];
else misparm=1;
break;
case 48: N++;
if(N<argc) szKeys=argv[N];
else misparm=1;
break;
case 49: N++;
if(N<argc)
backgroundbrightness=atoi(argv[N]);
else
misparm=1;
break;
#endif
default: printf("Wrong option '%s'\n",argv[N]);
return 0;
}
}
if (misparm)
{
printf ("%s: missing parameter\n",argv[N-1]);
return 0;
}
}
return 1;
}
static int GetCartName (int argc,char *argv[])
{
int N,I,J;
for(N=1,I=0;N<argc;N++)
{
if(*argv[N]!='-')
switch(I++)
{
case 0: CartName=argv[N];
break;
default: return 0;
}
else
{
for(J=0;Options[J];J++)
if(!strcmp(argv[N]+1,Options[J])) break;
if (!Options[J])
for(J=0;AbvOptions[J];J++)
if(!strcmp(argv[N]+1,AbvOptions[J])) break;
switch(J)
{
case 3: return 0; /* -help */
case 0: case 1: case 2: case 13:
case 9: case 10: case 11: case 12:
case 18: case 19: case 20: case 21: case 22: case 23: case 24:
case 26: case 27: case 28: case 29: case 30: case 31: case 32:
case 33: case 34: case 35: case 36: case 37: case 38: case 39:
case 40: case 41: case 42: case 43: case 44: case 45: case 46:
case 47: case 48: case 49:
#ifdef DEBUG
case 6:
#endif
N++;
if (N>=argc)
return 0;
break;
case 25:
N+=5;
if (N>=argc)
return 0;
case 14: case 15: case 16: case 17:
break;
default: return 0;
}
}
}
return 1;
}
static void LoadConfigFile (char *szFileName,unsigned char *ptr)
{
FILE *infile;
infile=fopen (szFileName,"rb");
if (infile==NULL)
return;
fread (ptr,1,MAX_CONFIG_FILE_SIZE,infile);
fclose (infile);
while (*ptr)
{
while (*ptr && *ptr<=' ')
++ptr;
if (*ptr)
{
_argv[_argc++]=ptr;
while (*ptr && *ptr>' ')
++ptr;
if (*ptr)
*ptr++='\0';
}
}
}
static void FixFileNames (void)
{
char *p,*q;
_fixpath (CartName,_CartName);
strlwr (_CartName);
CartName=_CartName;
strcpy (CartNameNoExt,CartName);
p=CartNameNoExt;
q=strchr(CartNameNoExt,'/');
while (q) /* get last '/' */
{
p=++q;
q=strchr(q,'/');
};
q=NULL;
while ((p=strchr(p,'.'))!=NULL) /* get last '.' */
{
q=p;
++p;
}
if (q) /* remove extension */
*q='\0';
else
strcat (CartName,_DefExt);
}
static void GetPath (char *szFile,char *szPath)
{
char *p,*q;
strcpy (szPath,szFile);
p=szPath;
q=strchr(p,'/');
while (q) /* get last '/' */
{
p=++q;
q=strchr(q,'/');
};
*p='\0'; /* remove filename */
}
int main(int argc,char *argv[])
{
TrapBadOps=0;LineDelay=1;CheckCRC=1;
VPeriod=69905;UPeriod=0;
Verbose=1;
memset (colorschemes,0,sizeof(colorschemes));
memcpy (colorschemes,defcolorschemes,sizeof(defcolorschemes));
SelectColorScheme (0);
memset (MainConfigFile,0,sizeof(MainConfigFile));
memset (SubConfigFile,0,sizeof(SubConfigFile));
strlwr (argv[0]);
GetPath (argv[0],ProgramPath);
_argc=1;
_argv[0]=argv[0];
/* Load Config Files */
strcpy (szTempFileName,ProgramPath);
strcat (szTempFileName,"vgb-dos.cfg");
strcpy (szGifFile,ProgramPath);
strcat (szGifFile,"vgb-dos.gif");
LoadConfigFile (szTempFileName,MainConfigFile);
if (!ParseOptions(_argc,_argv))
return 1;
GetCartName (argc,argv);
FixFileNames ();
strcpy (_SaveName,CartNameNoExt);
strcat (_SaveName,".sav");
SaveName=_SaveName;
strcpy (szTempFileName,CartNameNoExt);
strcat (szTempFileName,".cfg");
_argc=1;
LoadConfigFile (szTempFileName,SubConfigFile);
if (!ParseOptions(_argc,_argv))
return 1;
if (!ParseOptions(argc,argv))
return 1;
IntSync=1;
if (!IFreq)
{
IFreq=60;
IntSync=0;
if (!UPeriod) UPeriod=2;
}
if (IFreq<5) IFreq=5;
if (IFreq>500) IFreq=500;
StartGB(CartName);
TrashGB();
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -