예제 #1
0
파일: main.c 프로젝트: bensaraceno/PSP
int LoadModules() {
	int result = sceUtilityLoadUsbModule(PSP_USB_MODULE_ACC);
	if (result < 0) { printf("Error 0x%08X loading usbacc.prx.\n", result); return result; }

	result = sceUtilityLoadUsbModule(PSP_USB_MODULE_CAM);	
	if (result < 0) { printf("Error 0x%08X loading usbcam.prx.\n", result); return result; }

	result = sceUtilityLoadAvModule(PSP_AV_MODULE_AVCODEC); // For jpeg decoding
	if (result < 0) printf("Error 0x%08X loading avcodec.prx.\n", result);
	return result;
}
예제 #2
0
static int load_util(int module)
{
#ifdef UTILITY_AV_AVCODEC_PATH
	SceUID ret;
#endif

	dbg_printf("Loading 0x%08X\n", module);

	if (isImported(sceUtilityLoadModule))
		return sceUtilityLoadModule(module);

	else if (module <= PSP_MODULE_NET_SSL && isImported(sceUtilityLoadNetModule))
		return sceUtilityLoadNetModule(module + PSP_NET_MODULE_COMMON - PSP_MODULE_NET_COMMON);

	else if (module == PSP_MODULE_USB_PSPCM && isImported(sceUtilityLoadUsbModule))
		return sceUtilityLoadUsbModule(PSP_USB_MODULE_PSPCM);

	else if (module <= PSP_MODULE_USB_GPS && isImported(sceUtilityLoadUsbModule))
		return sceUtilityLoadUsbModule(module + PSP_USB_MODULE_MIC - PSP_MODULE_USB_MIC);

	else if (module <= PSP_MODULE_AV_G729 && isImported(sceUtilityLoadAvModule))
		return sceUtilityLoadAvModule(module + PSP_MODULE_AV_AVCODEC - PSP_AV_MODULE_AVCODEC);

	else
#ifdef UTILITY_AV_AVCODEC_PATH
	if (module == PSP_MODULE_AV_AVCODEC) {
		ret = sceKernelLoadModule(UTILITY_AV_AVCODEC_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
#ifdef UTILITY_AV_SASCORE_PATH
	if (module == PSP_MODULE_AV_SASCORE) {
		ret = sceKernelLoadModule(UTILITY_AV_SASCORE_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
#ifdef UTILITY_AV_ATRAC3PLUS_PATH
	if (module == PSP_MODULE_AV_ATRAC3PLUS) {
		ret = sceKernelLoadModule(UTILITY_AV_ATRAC3PLUS_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
#ifdef UTILITY_AV_MPEGBASE_PATH
	if (module == PSP_MODULE_AV_MPEGBASE) {
		ret = sceKernelLoadModule(UTILITY_AV_MPEGBASE_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
		return SCE_KERNEL_ERROR_ERROR;
}
예제 #3
0
void load_utils()
{
	int ret;
	int module;
	unsigned i;

	if (isImported(sceUtilityLoadModule)) {
		// Load modules in order
		if (!globals->isEmu || sceNetIsImported)
			for(i = 0; i < sizeof(netModules) / sizeof(int); i++) {
				ret = sceUtilityLoadModule(netModules[i]);
				if (ret < 0)
					dbg_printf("%s: Loading 0x%08X failed 0x%08X\n",
						__func__, netModules[i], ret);
			}

		for(i = 0; i < sizeof(modules) / sizeof(int); i++) {
			ret = sceUtilityLoadModule(modules[i]);
			if (ret < 0)
				dbg_printf("%s: Loading 0x%08X failed 0x%08X\n",
					__func__, modules[i], ret);
		}

		ret = sceUtilityLoadModule(PSP_MODULE_AV_MP3);
		if (ret < 0)
			dbg_printf("%s: Loading 0x%08X failed 0x%08X\n",
				__func__, PSP_MODULE_AV_MP3, ret);
	} else {
		if (isImported(sceUtilityLoadNetModule))
			for (module = 1; module <= 7; module++) {
				ret = sceUtilityLoadNetModule(module);
				if (ret < 0)
					dbg_printf("%s: Loading net module %d failed 0x%08X\n",
						__func__, module, ret);
			}

		if (isImported(sceUtilityLoadUsbModule))
			for (module = 1; module <= 5; module++) {
				ret = sceUtilityLoadUsbModule(module);
				if (ret < 0)
					dbg_printf("%s: Loading USB module %d failed 0x%08X\n",
						__func__, module, ret);
			}

		if (isImported(sceUtilityLoadAvModule))
			for (module = 1; module <= 7; module++) {
				ret = sceUtilityLoadAvModule(module);
				dbg_printf("%s: Loading AV module %d failed 0x%08X\n",
					__func__, module, ret);
			}
		else {
#ifdef UTILITY_AV_AVCODEC_PATH
			avcodec_modid = sceKernelLoadModule(UTILITY_AV_AVCODEC_PATH, 0, NULL);
			sceKernelStartModule(avcodec_modid, 0, NULL, NULL, NULL);
#endif
#ifdef UTILITY_AV_SASCORE_PATH
			sascore_modid = sceKernelLoadModule(UTILITY_AV_SASCORE_PATH, 0, NULL);
			sceKernelStartModule(sascore_modid, 0, NULL, NULL, NULL);
#endif
#ifdef UTILITY_AV_ATRAC3PLUS_PATH
			atrac3plus_modid = sceKernelLoadModule(UTILITY_AV_ATRAC3PLUS_PATH, 0, NULL);
			sceKernelStartModule(atrac3plus_modid, 0, NULL, NULL, NULL);
#endif
#ifdef UTILITY_AV_MPEGBASE_PATH
			mpegbase_modid = sceKernelLoadModule(UTILITY_AV_MPEGBASE_PATH, 0, NULL);
			sceKernelStartModule(mpegbase_modid, 0, NULL, NULL, NULL);
#endif
		}
	}
}