int pre_main(const char *argv)
{
   int i=0;
   bool Only1Arg;

   if (strlen(argv) > strlen("cmd"))
   {
      if( HandleExtension((char*)argv,"cmd") || HandleExtension((char*)argv,"CMD"))
         i=loadcmdfile((char*)argv);     
   }

   if(i==1)
   {
      parse_cmdline(CMDFILE);      
      LOGI("Starting game from command line :%s\n",CMDFILE);  
   }
   else
      parse_cmdline(argv); 

   Only1Arg = (strcmp(ARGUV[0],CORE_NAME) == 0) ? 0 : 1;

   for (i = 0; i<64; i++)
      xargv_cmd[i] = NULL;


   if(Only1Arg)
   {  Add_Option(CORE_NAME);
      /*
         if (strlen(RPATH) >= strlen("crt"))
         if(!strcasecmp(&RPATH[strlen(RPATH)-strlen("crt")], "crt"))
         Add_Option("-cartcrt");
         */
      Add_Option(RPATH/*ARGUV[0]*/);
   }
   else
   { // Pass all cmdline args
      for(i = 0; i < ARGUC; i++)
         Add_Option(ARGUV[i]);
   }

   for (i = 0; i < PARAMCOUNT; i++)
   {
      xargv_cmd[i] = (char*)(XARGV[i]);
      LOGI("%2d  %s\n",i,XARGV[i]);
   }

  // skel_main(PARAMCOUNT,( char **)xargv_cmd); 
   InitOSGLU(PARAMCOUNT,( char **)xargv_cmd); 

   xargv_cmd[PARAMCOUNT - 2] = NULL;

   return 0;
}
Beispiel #2
0
int pre_main(const char *argv)
{
   int i;
   bool Only1Arg;

   parse_cmdline(argv); 

   Only1Arg = (strcmp(ARGUV[0],"hatari") == 0) ? 0 : 1;

   for (i = 0; i<64; i++)
      xargv_cmd[i] = NULL;

   //	Add_Option("hatari");

   if(Only1Arg)
   {
      Add_Option("hatari");
      Add_Option("--disk-a");
      Add_Option(RPATH/*ARGUV[0]*/);
   }
   else
   { // Pass all cmdline args
      for(i = 0; i < ARGUC; i++)
         Add_Option(ARGUV[i]);
   }

   for (i = 0; i < PARAMCOUNT; i++)
   {
      xargv_cmd[i] = (char*)(XARGV[i]);
      printf("%2d  %s\n",i,XARGV[i]);
   }

   hmain(PARAMCOUNT,( char **)xargv_cmd); 

   xargv_cmd[PARAMCOUNT - 2] = NULL;
}
Beispiel #3
0
int executeGame(char* path) {

	char tmp_dir[256];

	int gameRot=0;

	int driverIndex;

	FirstTimeUpdate = 1;

	screenRot = 0;

	for (int i = 0; i<64; i++)xargv_cmd[i]=NULL;

	Extract_AllPath(path);
	
#ifdef WANT_MAME	
	//find if the driver exists for MgameName, if not, exit
	if (getGameInfo(MgameName, &gameRot, &driverIndex,&arcade) == 0) {
		write_log("driver not found: %s\n", MgameName);
		return -2;
	}	
#else
    	if(!commandline_enabled)
	{
	   	//find if the driver exists for MgameName, if not, check if a driver exists for MsystemName, if not, exit
	   	if (getGameInfo(MgameName, &gameRot, &driverIndex,&arcade) == 0) {
			write_log("driver not found: %s\n", MgameName);
		   	if (getGameInfo(MsystemName, &gameRot, &driverIndex,&arcade) == 0) {
		      		write_log("driver not found: %s\n", MsystemName);
   		         	return -2;
	       		}
	   	}

		// handle case where Arcade game exist and game on a System also
		if(arcade==true){
			// test system
		   	if (getGameInfo(MsystemName, &gameRot, &driverIndex,&arcade) == 0) {
		      		write_log("System not found: %s\n", MsystemName);   		         	
	       		}
			else {
				write_log("System found: %s\n", MsystemName);   
				arcade=false;
			}
		}  
    	}	   
#endif	

	// useless ?
	if (tate) {
		//horizontal game
		if (gameRot == ROT0) {
			screenRot = 1;
		} else
		if (gameRot &  ORIENTATION_FLIP_X) {
			write_log("*********** flip X \n");
			screenRot = 3;
		}

	} else
	{
		if (gameRot != ROT0) {
			screenRot = 1;
			if (gameRot &  ORIENTATION_FLIP_X) {
				write_log("*********** flip X \n");
				screenRot = 2;
			}
		}
	}
	
	write_log("creating frontend... game=%s\n", MgameName);
	printf("using softlists: %d\n", softlist_enabled);

	Set_Default_Option();

	Set_Path_Option();
	
	// useless ?
	if (tate) {
		if (screenRot == 3) {
			Add_Option((char*) "-rol");
		}
	} else {
		if (screenRot == 2) {
			Add_Option((char*)"-rol");
		}
	}

	Add_Option((char*)("-rompath"));
		
#ifdef WANT_MAME
   	sprintf(tmp_dir, "%s", MgamePath);
   	Add_Option((char*)(tmp_dir));		   
   	if(!boot_to_osd_enabled)
   		Add_Option(MgameName);
  
#else
   	if(!commandline_enabled)
   	{
		if(!boot_to_osd_enabled)
	   	{
			sprintf(tmp_dir, "%s", MgamePath);
			Add_Option((char*)(tmp_dir));		   
		  	if(softlist_enabled)
		  	{
				if(!arcade)
				{
					Add_Option(MsystemName);   
					if(!boot_to_bios_enabled)
					{
						if(!softlist_auto)
					  		Add_Option((char*)mediaType);
				   		Add_Option((char*)MgameName);
					}
			 	}
			 	else
			 	{
					Add_Option((char*)MgameName);
			 	}	     
		  	}
		  	else
		  	{
			 	if (strcmp(mediaType, "-rom") == 0) {
					Add_Option(MgameName);
			 	} else {
					Add_Option(MsystemName);
					Add_Option((char*)mediaType);
					Add_Option((char*)gameName);
			 	}   
	   
		  	}
		}
		else
		{
			sprintf(tmp_dir, "%s;%s", MgamePath,MparentPath);
			Add_Option((char*)(tmp_dir));		   	
		}
	}
	else	
		Add_Option((char*)gameName);	
 	
#endif 	 	 
	
	return 0;
}