Example #1
0
int main (int argc, char *argv[]) {
	int opt,p,pp;

	char *fvar;

	UnProtectMemory();
	while((opt = getopt(argc, argv, "01:2:789a:c:d:ef:g:hijk:lmno:p:r:s:tuv:wyz?")) != -1) {
		switch(opt) {
			/* Palette 0 disable */
			case '0': {
				Palette0 = 1;
				break;
			}
			/* Player 1 Input */
			case '1': {
				//if (!hasroom) return 4;
				pl1contrl = my_atoi(optarg);

				if (pl1contrl > 6) return 15;
				p++;

				ConvertJoyMap1();
				break;
			}
			/* Player 2 Input */
			case '2': {
//				if (!hasroom) return 4;
				pl2contrl=my_atoi(optarg);

				if (pl2contrl > 6) return 15;
				p++;

				ConvertJoyMap2();
				break;
			}
			/* SPC700 speed hack disable */
			case '7': {
				SPC700sh = 1;
				break;
			}

			case '8': {
				Force8b = 1;
				break;
			}
			/* Off by 1 line */
			case '9': {
				OffBy1Line = 1;
				break;
			}

			case 'c': {
				if (strcmp(optarg,"b") == 0) {
					printf("\nRemove background color in 256 modes not implemented!\n");
				}
				
				else
				
				if (strcmp(optarg,"c") == 0) {
					smallscreenon = 1;
					pp++;
				} else {
					ScreenScale = 1;
				}
				break;
			}

			case 'd': {
				if (strcmp(optarg,"d") == 0) {
					DSPDisable = 1;
					pp++;
				} else {
					/* debugger will never work under linux, since it's full of bios interrupt calls */
					printf("\nDebugger not implemented for Linux version!\n");
				}
				break;
			}

			case 'e': {
				enterpress = 1;
				break;            
			}

			case 'f': {
//				if (!hasroom) return 4;
				frameskip = my_atoi(optarg);
				if (frameskip > 9) return 10;
                                frameskip++;
				p++;
				break;
			}

			case 'g': {
//				if (!hasroom) return 4;
				gammalevel = my_atoi(optarg);

				if (gammalevel > 5) return 11;
				p++;

				break;
			}

			case 'h': {
				romtype = 2;
				break;
			}

			case 'i': {
				finterleave = 1;
				break;
			}

			case 'j': {
				GUIClick = 0;
				MouseDis = 1;
				break;
			}

			case 'k': {
//				if (!hasroom) return 4;
				MusicRelVol = my_atoi(optarg);

				if (MusicRelVol > 100) return 16;
				p++;
				break;
			}

			case 'l': {
				romtype = 1;
				break;
			}

			/* disables GUI */
			case 'm': {
				guioff = 1; 
				break;
			}

			case 'n': {
				scanlines = 1;
				break;
			}

			case 'o': {
				if (strcmp(optarg,"m") == 0) {
					MMXSupport = 1;
					pp++;
				} else {
					MMXSupport = 0;
				}
				break;
			}

			case 'p': {
//				if (!hasroom) return 4;
				per2exec = my_atoi(optarg);

				if (per2exec > 150) return 14;

				if (per2exec < 50) return 14;
				p++;

				break;
			}

			case 'r': {
//				if (!hasroom) return 4;
				SoundQuality = my_atoi(optarg);

				if (SoundQuality > 5) return 12;
				p++;

				break;
			}

			case 's': {
				if (strcmp(optarg,"a") == 0) {
					showallext = 1;
					pp++;
				} else if (strcmp(optarg,"n") == 0) {
					SnowOn = 1;
					pp++;
				} else {
					spcon = 1;
					soundon = 1;
				}
				break;
			}

			case 't': {
				ForcePal = 1;
				break;
			}

			case 'u': {
				ForcePal = 2;
				break;
			}

			case 'v': {
				if (strcmp(optarg,"8") == 0) {
					V8Mode = 1;
					pp++;
				} else {
//					if (!hasroom) return 4;
					cvidmode = my_atoi(optarg);

					if (cvidmode > 10) return 13;
					p++;
				}
				break;
			}

			case 'w': {
				vsyncon = 1;
				break;
			}

			case 'y': {
				antienab = 1;
				break;
			}

			case 'z': {
				StereoSound = 1;
				break;
			}

			case '?': {
				displayparams();
				return 9;
			}
		}
	}

	/* execute rom filename: file.x */
	if  (optopt == '?')
	{
		if (argv[optind] != NULL)
		{
			fvar=&fname;
			fvar[0] = strlen(argv[optind]);
			strncpy(&fvar[1], argv[optind],127);
			makeextension();
		}
	}

	zstart();
	return 0;
}
Example #2
0
int pccmdline(void)
{
  int p;
  int gfnm=0;

  for(p=1;p<argc;p++)
  {
 /*
    printf("(%i/%i): %s\n",p,argc,argv[p]);
 */
          
    if((argv[p][0] == '-') || (argv[p][0] == '/'))
    {
      int hasroom=0;
      int pp=1;
      int cp=p;
      int nn='_';
      for(pp=1;argv[cp][pp];pp++)
      {
        if( (p+1) < argc) hasroom=1;
        nn=tolower(argv[cp][pp+1]);
        switch(tolower(argv[cp][pp]))
        {
        case '1': /* Player 1 Input */
        {
          if(!hasroom) return 4;
          pl1contrl=my_atoi(argv[p+1]);
          if(pl1contrl > 6) return 15;
          p++;
          ConvertJoyMap1();
          break;
        }
        case '2': /* Player 2 Input */
        {
          if(!hasroom) return 4;
          pl2contrl=my_atoi(argv[p+1]);
          if(pl2contrl > 6) return 15;
          p++;
          ConvertJoyMap2();
          break;
        }
        case '3':
        {
          vsyncon=0;
          Triplebufen=1;
          p++;
          break;
        }
        case 'f':
        {
          if(!hasroom) return 4;
          frameskip=my_atoi(argv[p+1]);
          if(frameskip > 9) return 10;
          frameskip++;
          p++;
          break;
        }
        case 'g': 
        {
          if(!hasroom) return 4;
          gammalevel=my_atoi(argv[p+1]);
          if(gammalevel > 15) return 11;
          p++;
          break;
        }
        case 'p': 
        {
          if(!hasroom) return 4;
          per2exec=my_atoi(argv[p+1]);
          if(per2exec > 150) return 14;
          if(per2exec < 50) return 14;
          p++;
          break;
        }
        case 'r': 
        {
          if(!hasroom) return 4;
          SoundQuality=my_atoi(argv[p+1]);
          if(SoundQuality > 6) return 12;
          p++;
          break;
        }
        case 'v': 
        {
          if(nn == '8')
          {
            V8Mode=1;
            pp++;
          }
          else
          {
            if(!hasroom) return 4;
            cvidmode=my_atoi(argv[p+1]);
            if(cvidmode > 14) return 13;
            p++;
          }
          break;
        }
        case 'k': 
        {
          if(!hasroom) return 4;
          MusicRelVol=my_atoi(argv[p+1]);
          if(MusicRelVol > 100) return 16;
          p++;
          break;
        }
        case '8':
        {
          Force8b=1;
          break;
        }
        case '0': /* Palette 0 disable */
        {
          Palette0=1;
          break;
        }
        case '7': /* SPC700 speed hack disable */
        {
          SPC700sh=1;
          break;
        }
        case '9': /* Off by 1 line */
        {
          OffBy1Line=1;
          break;
        }
        case 'e':
        {
          enterpress=1;
          break;            
        }
        case 'h':
        {
          romtype=2;
          break;
        }
        case 'l':
        {
          romtype=1;
          break;
        }
        case 'm':
        {
          guioff=1; /* disables GUI */
          break;
        }
        case 'n':
        {
          if(!hasroom) return 4;
          scanlines=my_atoi(argv[p+1]);
          p++;
          break;
        }
        case 's':
        {
          if(nn == 'p')
          {
            DisplayS=1;
            pp++;
          }
          else
          if(nn == 'a')
          {
            showallext=1;
            pp++;
          }
          else
          if(nn == 'n')
          {
            SnowOn=1;
            pp++;
          }
          else
          {
            spcon=1;
            soundon=1;
          }
          break;
        }
        case 't':
        {
          ForcePal=1;
          break;
        }
        case 'u':
        {
          ForcePal=2;
          break;
        }
        case 'w':
        {
          Triplebufen=0;
          vsyncon=1;
          break;
        }
        case 'z':
        {
          // FIX STATMAT
          if(nn == 's')
          {				
            if(!hasroom) return 4;
            autoloadstate=my_atoi(argv[p+1]) + 1;
            p++;
          }
          else StereoSound=0;
          // FIX STATMAT
          break;
        }
        case 'd':
        {
          if(nn == 'd')
          {
            DSPDisable=1;
            pp++;
          }
          else
          {
            debugger=1;
            debugdisble=0;
          }
          break;
        }
        case 'c':
        {
          if(nn == 'c')
          {
            smallscreenon=1;
            pp++;
          }
          else
          {
            ScreenScale=1;
          }
          break;
        }

        case 'y':
        {
          antienab=1;
          break;
        }
        case 'o':
        {
          if(nn == 'm')
          {
            MMXSupport=1;
            pp++;
          }
          else
          {
            MMXSupport=0;
          }
          break;
        }
        case 'i':
        {
          finterleave=1;
          break;
        }
        case 'j':
        {
          GUIClick=0;
          MouseDis=1;
          break;
        }
        case '?':
        {
          return 9;
        }
        }
                                                    
      }
      
    }
    else
    {
      if(gfnm > 0)
      {
        printf("Limit yourself to one filename\n");
        return 2;
      }
      else
      {
        char *fvar;
        fvar=&fname;
        fvar[0] = strlen(argv[p]);
        strncpy(&fvar[1],argv[p],127);
        gfnm++;
      }
    }
  }
  if(gfnm == 1)
  {
    filefound=0;
    makeextension();
  }
  return 0;
}