Exemple #1
0
void init_basic_modules(const char *path)
{

	char *gz;
	int gz_size;

	module_t basic_modules[7] =
	{
		{              "sio2man", "freesio2.irx", NULL, 0, 0 },
		{                "mcman",    "mcman.irx", NULL, 0, 0 },
		{               "mcserv",   "mcserv.irx", NULL, 0, 0 },
		{              "mtapman", "freemtap.irx", NULL, 0, 0 },
		{               "padman",  "freepad.irx", NULL, 0, 0 },
		{     "IOX/File_Manager",   "iomanX.irx", NULL, 0, 0 },
		{ "IOX/File_Manager_Rpc",  "fileXio.irx", NULL, 0, 0 }
	};

	gz = init_modules_tgz(path,&gz_size);

	init_load_irx(gz, gz_size, basic_modules, 7);

	// Init various libraries
	mcInit(MC_TYPE_MC);

	mtapInit();

	padInit(0);

	mtapPortOpen(0);
	mtapPortOpen(1);

	if (!basic_modules[6].result)
	{
		fileXioInit();
	}
	else
	{
		// Problem initializing fileXio modules
		fioInit();
	}

	if (gz != (char*)modules_tgz)
	{
		free(gz);
	}

}
Exemple #2
0
static void frontend_ps2_init(void *data)
{
   char cwd[FILENAME_MAX];
   int bootDeviceID;

   SifInitRpc(0);
#if !defined(DEBUG)
   /* Comment this line if you don't wanna debug the output */
   while(!SifIopReset(NULL, 0)){};
#endif

   while(!SifIopSync()){};
   SifInitRpc(0);
   sbv_patch_enable_lmb();

   /* I/O Files */
   SifExecModuleBuffer(&iomanX_irx, size_iomanX_irx, 0, NULL, NULL);
   SifExecModuleBuffer(&fileXio_irx, size_fileXio_irx, 0, NULL, NULL);
   SifExecModuleBuffer(&freesio2_irx, size_freesio2_irx, 0, NULL, NULL);

   /* Memory Card */
   SifExecModuleBuffer(&mcman_irx, size_mcman_irx, 0, NULL, NULL);
   SifExecModuleBuffer(&mcserv_irx, size_mcserv_irx, 0, NULL, NULL);

   /* Controllers */
   SifExecModuleBuffer(&freemtap_irx, size_freemtap_irx, 0, NULL, NULL);
   SifExecModuleBuffer(&freepad_irx, size_freepad_irx, 0, NULL, NULL);

   /* USB */
   SifExecModuleBuffer(&usbd_irx, size_usbd_irx, 0, NULL, NULL);
   SifExecModuleBuffer(&usbhdfsd_irx, size_usbhdfsd_irx, 0, NULL, NULL);

   /* Audio */
   SifExecModuleBuffer(&freesd_irx, size_freesd_irx, 0, NULL, NULL);
   SifExecModuleBuffer(&audsrv_irx, size_audsrv_irx, 0, NULL, NULL);

   /* CDVD */
   SifExecModuleBuffer(&cdvd_irx, size_cdvd_irx, 0, NULL, NULL);

   if (mcInit(MC_TYPE_XMC)) {
      RARCH_ERR("mcInit library not initalizated\n");
   }

   /* Initializes audsrv library */
   if (audsrv_init()) {
      RARCH_ERR("audsrv library not initalizated\n");
   }

   /* Initializes pad libraries
      Must be init with 0 as parameter*/
   if (mtapInit() != 1) {
      RARCH_ERR("mtapInit library not initalizated\n");
   }
   if (padInit(0) != 1) {
      RARCH_ERR("padInit library not initalizated\n");
   }
   if (mtapPortOpen(0) != 1) {
      RARCH_ERR("mtapPortOpen library not initalizated\n");
   }

   /* Initializes CDVD library */
   /* SCECdINoD init without check for a disc. Reduces risk of a lockup if the drive is in a erroneous state. */
   sceCdInit(SCECdINoD);
   if (CDVD_Init() != 1) {
      RARCH_ERR("CDVD_Init library not initalizated\n");
   }

   _init_ps2_io();

   /* Prepare device */
   getcwd(cwd, sizeof(cwd));
   bootDeviceID=getBootDeviceID(cwd);
   waitUntilDeviceIsReady(bootDeviceID);

#if defined(HAVE_FILE_LOGGER)
   retro_main_log_file_init("retroarch.log");
   verbosity_enable();
#endif
}
Exemple #3
0
void InitPS2()
{
    int i, sometime;
    static char hddarg[] = "-o" "\0" "4" "\0" "-n" "\0" "20";
    static char pfsarg[] = "-m" "\0" "4" "\0" "-o" "\0" "10" "\0" "-n" "\0" "40";

    SifInitRpc(0);
    // Reset IOP borrowed from uLaunchelf
    while (!SifIopReset(NULL, 0)){};
    while (!SifIopSync()){};
    SifInitRpc(0);

    sbv_patch_enable_lmb();

    SifExecModuleBuffer(&iomanX_irx, size_iomanX_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&fileXio_irx, size_fileXio_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&freesio2_irx, size_freesio2_irx, 0, NULL, NULL);

 /* SifLoadModule("rom0:XSIO2MAN", 0, NULL);
    SifLoadModule("rom0:XMCMAN", 0, NULL);
    SifLoadModule("rom0:XMCSERV", 0, NULL);
    SifLoadModule("rom0:XMTAPMAN", 0, NULL);
    SifLoadModule("rom0:XPADMAN", 0, NULL); */

    SifExecModuleBuffer(&mcman_irx, size_mcman_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&mcserv_irx, size_mcserv_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&freemtap_irx, size_freemtap_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&freepad_irx, size_freepad_irx, 0, NULL, NULL);

#ifdef SOUND_ON
    SifExecModuleBuffer(&freesd_irx, size_freesd_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&audsrv_irx, size_audsrv_irx, 0, NULL, NULL);
#endif
    SifExecModuleBuffer(&SMSUTILS_irx, size_SMSUTILS_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&usbd_irx, size_usbd_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&usbhdfsd_irx, size_usbhdfsd_irx, 0, NULL, NULL);
    for (i = 0; i < 3; i++) { // Taken from ulaunchelf
        sometime = 0x01000000;
        while (sometime--) asm("nop\nnop\nnop\nnop");
    }

    SifExecModuleBuffer(&poweroff_irx, size_poweroff_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&ps2dev9_irx, size_ps2dev9_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&ps2atad_irx, size_ps2atad_irx, 0, NULL, NULL);
    SifExecModuleBuffer(&ps2hdd_irx, size_ps2hdd_irx, sizeof(hddarg), hddarg, NULL);
    SifExecModuleBuffer(&ps2fs_irx, size_ps2fs_irx, sizeof(pfsarg), pfsarg, NULL);

    mcInit(MC_TYPE_XMC);

#ifdef CDSUPPORT
    SifExecModuleBuffer(&cdvd_irx, size_cdvd_irx, 0, NULL, NULL);
    cdInit(CDVD_INIT_INIT);
    CDVD_Init();
#endif

#ifdef SOUND_ON
    audsrv_init();
#endif

    mtapInit();
    padInit(0);
    mtapPortOpen(0);
}
Exemple #4
0
/* Function to scan the system for joysticks.
 * This function should set SDL_numjoysticks to the number of available
 * joysticks.  Joystick 0 should be the system default joystick.
 * It should return number of joysticks, or -1 on an unrecoverable fatal error.
 */
int SDL_SYS_JoystickInit(void)
{
	int ret;
	int mtap_enabled;
	int index;
	int numports, numdevs;
	int port, slot;

	printf("SDL_Joystick: JoystickInit begins\n");

#ifdef PS2SDL_ENABLE_MTAP
	ret = SifLoadModule("rom0:XSIO2MAN", 0, NULL);
	if (ret < 0)
	{
		SDL_SetError("Failed to load XSIO2MAN");
		return 0;
	}

	ret = SifLoadModule("rom0:XPADMAN", 0, NULL);
	if (ret < 0)
	{
		SDL_SetError("Failed to load XPADMAN");
		return 0;
	}

	ret = SifLoadModule("rom0:XMTAPMAN", 0, NULL);
	if (ret < 0)
	{
		SDL_SetError("Failed to load XMTAPMAN");
		return 0;
	}
#else
	ret = SifLoadModule("rom0:SIO2MAN", 0, NULL);
	if (ret < 0)
	{
		SDL_SetError("Failed to load SIO2MAN");
		return 0;
	}

	ret = SifLoadModule("rom0:PADMAN", 0, NULL);
	if (ret < 0)
	{
		SDL_SetError("Failed to load PADMAN");
		return 0;
	}
#endif

	ret = padInit(0);
	printf("SDL_Joystick: padInit: %d\n", ret);

#ifdef PS2SDL_ENABLE_MTAP
	ret = mtapInit();
	printf("SDL_Joystick: mtapInit: %d\n", ret);
#endif

	numdevs = 0;
	numports = padGetPortMax();
	
	printf("SDL_Joystick: numports %d\n", numports);
	
	index = 0;

#ifdef PS2SDL_ENABLE_MTAP
	/* gawd: look for mtap connection on one of the ports. if it's there,
	 * then don't support the only interface.
	 */
	if (mtapPortOpen(0) == 1 && mtapGetConnection(0) == 1)
	{
		/* found on port 0 */
		mtap_enabled = 1;
		mtapPortClose(0);
		printf("SDL_Joystick: found mtap on port 0\n");
	}
	else if (mtapPortOpen(1) == 1 && mtapGetConnection(1) == 1)
	{
		/* found on port 1 */
		mtap_enabled = 1;
		mtapPortClose(1);
		printf("SDL_Joystick: found mtap on port 1\n");
	}
	else
	{
		mtap_enabled = 0;
		printf("SDL_Joystick: mtap adapter not found on either ports\n");
	}
#endif

	for (port=0; port<numports; port++)
	{
		int maxslots;

#ifdef PS2SDL_ENABLE_MTAP
		if (mtap_enabled)
		{
			ret = mtapPortOpen(port);
			printf("\nSDL_Joystick: Port: %d, mtapPortOpen: %d\n", port, ret);

			ret = mtapGetConnection(port);
			printf("SDL_Joystick: Port: %d, mtapGetConnection: %d\n", port, ret);

			if (ret != 1)
			{
				/* failed */
				mtapPortClose(port);
				continue;
			}
		}
#endif

		maxslots = padGetSlotMax(port);
		printf("SDL_Joystick: Port %d, MaxSlots: %d\n", port, maxslots);

		for (slot=0; slot<maxslots; slot++)
		{
			ret = padPortOpen(port, slot, &padbufs[256*index]);
			if (ret < 0)
			{
				//SDL_SetError("padPortOpen %d, %d failed\n", port, slot);
				//return 0;
				continue;
			}

			printf("Joystick %d at port=%d slot=%d\n", index, port, slot);
			joyports[index] = port;
			joyslots[index] = slot;
			index++;
		}
	}
 	
	SDL_numjoysticks = index;
	printf("SDL_Joystick: JoystickInit ends with %d joysticks\n", SDL_numjoysticks);
	return SDL_numjoysticks;
}