static void get_environment_settings (void) { DWORD ret; //for devkits only, we will need to mount all partitions for retail //in a different way //DmMapDevkitDrive(); memset(&Mounted, 0, 20); Mounted[DEVICE_USB0] = Mount(DEVICE_USB0,"Usb0:"); Mounted[DEVICE_USB1] = Mount(DEVICE_USB1,"Usb1:"); Mounted[DEVICE_USB2] = Mount(DEVICE_USB2,"Usb2:"); Mounted[DEVICE_HARDISK0_PART1] = Mount(DEVICE_HARDISK0_PART1,"Hdd1:"); Mounted[DEVICE_HARDISK0_SYSPART] = Mount(DEVICE_HARDISK0_SYSPART,"HddX:"); Mounted[DEVICE_MEMORY_UNIT0] = Mount(DEVICE_MEMORY_UNIT0,"Memunit0:"); Mounted[DEVICE_MEMORY_UNIT1] = Mount(DEVICE_MEMORY_UNIT1,"Memunit1:"); Mounted[DEVICE_MEMORY_ONBOARD] = Mount(DEVICE_MEMORY_ONBOARD,"OnBoardMU:"); Mounted[DEVICE_CDROM0] = Mount(DEVICE_CDROM0,"Dvd:"); ret = XSetFileCacheSize(0x100000); if(ret != TRUE) { RARCH_ERR("Couldn't change number of bytes reserved for file system cache.\n"); } ret = XFileCacheInit(XFILECACHE_CLEAR_ALL, 0x100000, XFILECACHE_DEFAULT_THREAD, 0, 1); if(ret != ERROR_SUCCESS) { RARCH_ERR("File cache could not be initialized.\n"); } XFlushUtilityDrive(); //unsigned long result = XMountUtilityDriveEx(XMOUNTUTILITYDRIVE_FORMAT0,8192, 0); //if(result != ERROR_SUCCESS) //{ // RARCH_ERR("Couldn't mount/format utility drive.\n"); //} // detect install environment unsigned long license_mask; if (XContentGetLicenseMask(&license_mask, NULL) != ERROR_SUCCESS) { printf("RetroArch was launched as a standalone DVD, or using DVD emulation, or from the development area of the HDD.\n"); } else { XContentQueryVolumeDeviceType("GAME",&g_console.volume_device_type, NULL); switch(g_console.volume_device_type) { case XCONTENTDEVICETYPE_HDD: printf("RetroArch was launched from a content package on HDD.\n"); break; case XCONTENTDEVICETYPE_MU: printf("RetroArch was launched from a content package on USB or Memory Unit.\n"); break; case XCONTENTDEVICETYPE_ODD: printf("RetroArch was launched from a content package on Optical Disc Drive.\n"); break; default: printf("RetroArch was launched from a content package on an unknown device type.\n"); break; } } strlcpy(DEFAULT_SHADER_FILE, "game:\\media\\shaders\\stock.cg", sizeof(DEFAULT_SHADER_FILE)); strlcpy(SYS_CONFIG_FILE, "game:\\retroarch.cfg", sizeof(SYS_CONFIG_FILE)); }
static void get_environment_settings (void) { HRESULT ret; (void)ret; #ifdef HAVE_HDD_CACHE_PARTITION ret = XSetFileCacheSize(0x100000); if(ret != TRUE) { RARCH_ERR("Couldn't change number of bytes reserved for file system cache.\n"); } ret = XFileCacheInit(XFILECACHE_CLEAR_ALL, 0x100000, XFILECACHE_DEFAULT_THREAD, 0, 1); if(ret != ERROR_SUCCESS) { RARCH_ERR("File cache could not be initialized.\n"); } XFlushUtilityDrive(); #endif #ifdef _XBOX360 // detect install environment unsigned long license_mask; if (XContentGetLicenseMask(&license_mask, NULL) != ERROR_SUCCESS) { RARCH_LOG("RetroArch was launched as a standalone DVD, or using DVD emulation, or from the development area of the HDD.\n"); } else { XContentQueryVolumeDeviceType("GAME",&g_extern.file_state.volume_device_type, NULL); switch(g_extern.file_state.volume_device_type) { case XCONTENTDEVICETYPE_HDD: RARCH_LOG("RetroArch was launched from a content package on HDD.\n"); break; case XCONTENTDEVICETYPE_MU: RARCH_LOG("RetroArch was launched from a content package on USB or Memory Unit.\n"); break; case XCONTENTDEVICETYPE_ODD: RARCH_LOG("RetroArch was launched from a content package on Optical Disc Drive.\n"); break; default: RARCH_LOG("RetroArch was launched from a content package on an unknown device type.\n"); break; } } #endif #if defined(_XBOX1) strlcpy(default_paths.core_dir, "D:", sizeof(default_paths.core_dir)); strlcpy(default_paths.config_file, "D:\\retroarch.cfg", sizeof(default_paths.config_file)); strlcpy(default_paths.system_dir, "D:\\system", sizeof(default_paths.system_dir)); strlcpy(default_paths.filesystem_root_dir, "D:", sizeof(default_paths.filesystem_root_dir)); strlcpy(default_paths.executable_extension, ".xbe", sizeof(default_paths.executable_extension)); strlcpy(default_paths.filebrowser_startup_dir, "D:", sizeof(default_paths.filebrowser_startup_dir)); strlcpy(default_paths.screenshots_dir, "D:\\screenshots", sizeof(default_paths.screenshots_dir)); snprintf(default_paths.salamander_file, sizeof(default_paths.salamander_file), "default.xbe"); #elif defined(_XBOX360) #ifdef HAVE_HDD_CACHE_PARTITION strlcpy(default_paths.cache_dir, "cache:\\", sizeof(default_paths.cache_dir)); #endif strlcpy(default_paths.filesystem_root_dir, "game:\\", sizeof(default_paths.filesystem_root_dir)); strlcpy(default_paths.screenshots_dir, "game:", sizeof(default_paths.screenshots_dir)); strlcpy(default_paths.shader_file, "game:\\media\\shaders\\stock.cg", sizeof(default_paths.shader_file)); strlcpy(default_paths.config_file, "game:\\retroarch.cfg", sizeof(default_paths.config_file)); strlcpy(default_paths.system_dir, "game:\\system\\", sizeof(default_paths.system_dir)); strlcpy(default_paths.executable_extension, ".xex", sizeof(default_paths.executable_extension)); strlcpy(default_paths.filebrowser_startup_dir, "game:", sizeof(default_paths.filebrowser_startup_dir)); snprintf(default_paths.salamander_file, sizeof(default_paths.salamander_file), "default.xex"); #endif }
static void get_environment_settings(int argc, char *argv[], void *args) { HRESULT ret; (void)ret; #ifndef IS_SALAMANDER g_extern.verbose = true; #if defined(HAVE_LOGGER) logger_init(); #elif defined(HAVE_FILE_LOGGER) g_extern.log_file = fopen("/retroarch-log.txt", "w"); #endif #endif #ifdef _XBOX360 // detect install environment unsigned long license_mask; DWORD volume_device_type; if (XContentGetLicenseMask(&license_mask, NULL) != ERROR_SUCCESS) RARCH_LOG("RetroArch was launched as a standalone DVD, or using DVD emulation, or from the development area of the HDD.\n"); else { XContentQueryVolumeDeviceType("GAME",&volume_device_type, NULL); switch(volume_device_type) { case XCONTENTDEVICETYPE_HDD: RARCH_LOG("RetroArch was launched from a content package on HDD.\n"); break; case XCONTENTDEVICETYPE_MU: RARCH_LOG("RetroArch was launched from a content package on USB or Memory Unit.\n"); break; case XCONTENTDEVICETYPE_ODD: RARCH_LOG("RetroArch was launched from a content package on Optical Disc Drive.\n"); break; default: RARCH_LOG("RetroArch was launched from a content package on an unknown device type.\n"); break; } } #endif #if defined(_XBOX1) strlcpy(default_paths.core_dir, "D:", sizeof(default_paths.core_dir)); #ifdef IS_SALAMANDER fill_pathname_join(config_path, default_paths.core_dir, "retroarch.cfg", sizeof(config_path)); #else fill_pathname_join(g_extern.config_path, default_paths.core_dir, "retroarch.cfg", sizeof(g_extern.config_path)); #endif fill_pathname_join(default_paths.savestate_dir, default_paths.core_dir, "savestates", sizeof(default_paths.savestate_dir)); fill_pathname_join(default_paths.sram_dir, default_paths.core_dir, "savefiles", sizeof(default_paths.sram_dir)); fill_pathname_join(default_paths.system_dir, default_paths.core_dir, "system", sizeof(default_paths.system_dir)); #ifndef IS_SALAMANDER fill_pathname_join(g_settings.screenshot_directory, default_paths.core_dir, "screenshots", sizeof(g_settings.screenshot_directory)); strlcpy(g_extern.menu_texture_path, "D:\\Media\\main-menu_480p.png", sizeof(g_extern.menu_texture_path)); #endif #elif defined(_XBOX360) strlcpy(default_paths.core_dir, "game:", sizeof(default_paths.core_dir)); #ifdef IS_SALAMANDER strlcpy(config_path, "game:\\retroarch.cfg", sizeof(config_path)); #else strlcpy(g_settings.screenshot_directory, "game:", sizeof(g_settings.screenshot_directory)); strlcpy(g_extern.config_path, "game:\\retroarch.cfg", sizeof(g_extern.config_path)); #endif strlcpy(default_paths.savestate_dir, "game:\\savestates", sizeof(default_paths.savestate_dir)); strlcpy(default_paths.sram_dir, "game:\\savefiles", sizeof(default_paths.sram_dir)); strlcpy(default_paths.system_dir, "game:\\system", sizeof(default_paths.system_dir)); #endif }
static void get_environment_settings (void) { #if defined(_XBOX) //for devkits only, we will need to mount all partitions for retail //in a different way //DmMapDevkitDrive(); int result_filecache = XSetFileCacheSize(0x100000); if(result_filecache != TRUE) { RARCH_ERR("Couldn't change number of bytes reserved for file system cache.\n"); } unsigned long result = XMountUtilityDriveEx(XMOUNTUTILITYDRIVE_FORMAT0,8192, 0); if(result != ERROR_SUCCESS) { RARCH_ERR("Couldn't mount/format utility drive.\n"); } // detect install environment unsigned long license_mask; if (XContentGetLicenseMask(&license_mask, NULL) != ERROR_SUCCESS) { RARCH_LOG("RetroArch was launched as a standalone DVD, or using DVD emulation, or from the development area of the HDD.\n"); } else { XContentQueryVolumeDeviceType("GAME",&volume_device_type, NULL); switch(volume_device_type) { case XCONTENTDEVICETYPE_HDD: RARCH_LOG("RetroArch was launched from a content package on HDD.\n"); break; case XCONTENTDEVICETYPE_MU: RARCH_LOG("RetroArch was launched from a content package on USB or Memory Unit.\n"); break; case XCONTENTDEVICETYPE_ODD: RARCH_LOG("RetroArch was launched from a content package on Optical Disc Drive.\n"); break; default: RARCH_LOG("RetroArch was launched from a content package on an unknown device type.\n"); break; } } strlcpy(SYS_CONFIG_FILE, "game:\\retroarch.cfg", sizeof(SYS_CONFIG_FILE)); #elif defined(__CELLOS_LV2__) unsigned int get_type; unsigned int get_attributes; CellGameContentSize size; char dirName[CELL_GAME_DIRNAME_SIZE]; char contentInfoPath[PATH_MAX]; memset(&size, 0x00, sizeof(CellGameContentSize)); int ret = cellGameBootCheck(&get_type, &get_attributes, &size, dirName); if(ret < 0) { RARCH_ERR("cellGameBootCheck() Error: 0x%x.\n", ret); } else { RARCH_LOG("cellGameBootCheck() OK.\n"); RARCH_LOG("Directory name: [%s].\n", dirName); RARCH_LOG(" HDD Free Size (in KB) = [%d] Size (in KB) = [%d] System Size (in KB) = [%d].\n", size.hddFreeSizeKB, size.sizeKB, size.sysSizeKB); switch(get_type) { case CELL_GAME_GAMETYPE_DISC: RARCH_LOG("RetroArch was launched on Optical Disc Drive.\n"); break; case CELL_GAME_GAMETYPE_HDD: RARCH_LOG("RetroArch was launched on HDD.\n"); break; } if((get_attributes & CELL_GAME_ATTRIBUTE_APP_HOME) == CELL_GAME_ATTRIBUTE_APP_HOME) RARCH_LOG("RetroArch was launched from host machine (APP_HOME).\n"); ret = cellGameContentPermit(contentInfoPath, usrDirPath); if(ret < 0) { RARCH_ERR("cellGameContentPermit() Error: 0x%x\n", ret); } else { RARCH_LOG("cellGameContentPermit() OK.\n"); RARCH_LOG("contentInfoPath : [%s].\n", contentInfoPath); RARCH_LOG("usrDirPath : [%s].\n", usrDirPath); } /* now we fill in all the variables */ snprintf(SYS_CONFIG_FILE, sizeof(SYS_CONFIG_FILE), "%s/retroarch.cfg", usrDirPath); snprintf(LIBRETRO_DIR_PATH, sizeof(LIBRETRO_DIR_PATH), "%s/cores", usrDirPath); } #endif }
static void frontend_xdk_get_environment_settings(int *argc, char *argv[], void *args, void *params_data) { HRESULT ret; (void)ret; #ifndef IS_SALAMANDER bool *verbose = retro_main_verbosity(); bool original_verbose = *verbose; *verbose = true; #endif #ifndef IS_SALAMANDER #if defined(HAVE_LOGGER) logger_init(); #elif defined(HAVE_FILE_LOGGER) retro_main_log_file_init("/retroarch-log.txt"); #endif #endif #ifdef _XBOX360 // detect install environment unsigned long license_mask; DWORD volume_device_type; if (XContentGetLicenseMask(&license_mask, NULL) == ERROR_SUCCESS) { XContentQueryVolumeDeviceType("GAME",&volume_device_type, NULL); switch(volume_device_type) { case XCONTENTDEVICETYPE_HDD: /* Launched from content package on HDD */ case XCONTENTDEVICETYPE_MU: /* Launched from content package on USB/Memory Unit. */ case XCONTENTDEVICETYPE_ODD: /* Launched from content package on Optial Disc Drive. */ default: /* Launched from content package on unknown device. */ break; } } #endif #if defined(_XBOX1) strlcpy(g_defaults.dir.core, "D:", sizeof(g_defaults.dir.core)); strlcpy(g_defaults.dir.core_info, "D:", sizeof(g_defaults.dir.core_info)); fill_pathname_join(g_defaults.path.config, g_defaults.dir.core, "retroarch.cfg", sizeof(g_defaults.path.config)); fill_pathname_join(g_defaults.dir.savestate, g_defaults.dir.core, "savestates", sizeof(g_defaults.dir.savestate)); fill_pathname_join(g_defaults.dir.sram, g_defaults.dir.core, "savefiles", sizeof(g_defaults.dir.sram)); fill_pathname_join(g_defaults.dir.system, g_defaults.dir.core, "system", sizeof(g_defaults.dir.system)); fill_pathname_join(g_defaults.dir.screenshot, g_defaults.dir.core, "screenshots", sizeof(g_defaults.dir.screenshot)); #elif defined(_XBOX360) strlcpy(g_defaults.dir.core, "game:", sizeof(g_defaults.dir.core)); strlcpy(g_defaults.dir.core_info, "game:", sizeof(g_defaults.dir.core_info)); strlcpy(g_defaults.path.config, "game:\\retroarch.cfg", sizeof(g_defaults.path.config)); strlcpy(g_defaults.dir.screenshot, "game:", sizeof(g_defaults.dir.screenshot)); strlcpy(g_defaults.dir.savestate, "game:\\savestates", sizeof(g_defaults.dir.savestate)); strlcpy(g_defaults.dir.playlist, "game:\\playlists", sizeof(g_defaults.dir.playlist)); strlcpy(g_defaults.dir.sram, "game:\\savefiles", sizeof(g_defaults.dir.sram)); strlcpy(g_defaults.dir.system, "game:\\system", sizeof(g_defaults.dir.system)); #endif #ifndef IS_SALAMANDER static char path[PATH_MAX_LENGTH]; *path = '\0'; #if defined(_XBOX1) LAUNCH_DATA ptr; DWORD launch_type; if (XGetLaunchInfo(&launch_type, &ptr) == ERROR_SUCCESS) { char *extracted_path = NULL; if (launch_type == LDT_FROM_DEBUGGER_CMDLINE) goto exit; extracted_path = (char*)&ptr.Data; if (extracted_path && extracted_path[0] != '\0' && (strstr(extracted_path, "Pool") == NULL) /* Hack. Unknown problem */) { /* Auto-start game */ strlcpy(path, extracted_path, sizeof(path)); } } #elif defined(_XBOX360) DWORD dwLaunchDataSize; if (XGetLaunchDataSize(&dwLaunchDataSize) == ERROR_SUCCESS) { BYTE* pLaunchData = new BYTE[dwLaunchDataSize]; XGetLaunchData(pLaunchData, dwLaunchDataSize); AURORA_LAUNCHDATA_EXECUTABLE* aurora = (AURORA_LAUNCHDATA_EXECUTABLE*)pLaunchData; char* extracted_path = new char[dwLaunchDataSize]; memset(extracted_path, 0, dwLaunchDataSize); if (aurora->ApplicationId == AURORA_LAUNCHDATA_APPID && aurora->FunctionId == AURORA_LAUNCHDATA_EXECUTABLE_FUNCID) { if (xbox_io_mount("aurora:", aurora->SystemPath) >= 0) sprintf_s(extracted_path, dwLaunchDataSize, "aurora:%s%s", aurora->RelativePath, aurora->Exectutable); } else sprintf_s(extracted_path, dwLaunchDataSize, "%s", pLaunchData); if (extracted_path && extracted_path[0] != '\0') { /* Auto-start game */ strlcpy(path, extracted_path, sizeof(path)); } if (pLaunchData) delete []pLaunchData; } #endif if (path && path[0] != '\0') { struct rarch_main_wrap *args = (struct rarch_main_wrap*)params_data; if (args) { /* Auto-start game. */ args->touched = true; args->no_content = false; args->verbose = false; args->config_path = NULL; args->sram_path = NULL; args->state_path = NULL; args->content_path = path; args->libretro_path = NULL; } } #endif #ifndef IS_SALAMANDER exit: *verbose = original_verbose; #endif }
static void frontend_xdk_get_environment_settings(int *argc, char *argv[], void *args, void *params_data) { HRESULT ret; (void)ret; #ifndef IS_SALAMANDER bool original_verbose = g_extern.verbose; g_extern.verbose = true; #endif #ifndef IS_SALAMANDER #if defined(HAVE_LOGGER) logger_init(); #elif defined(HAVE_FILE_LOGGER) g_extern.log_file = fopen("/retroarch-log.txt", "w"); #endif #endif #ifdef _XBOX360 // detect install environment unsigned long license_mask; DWORD volume_device_type; if (XContentGetLicenseMask(&license_mask, NULL) != ERROR_SUCCESS) RARCH_LOG("RetroArch was launched as a standalone DVD, or using DVD emulation, or from the development area of the HDD.\n"); else { XContentQueryVolumeDeviceType("GAME",&volume_device_type, NULL); switch(volume_device_type) { case XCONTENTDEVICETYPE_HDD: RARCH_LOG("RetroArch was launched from a content package on HDD.\n"); break; case XCONTENTDEVICETYPE_MU: RARCH_LOG("RetroArch was launched from a content package on USB or Memory Unit.\n"); break; case XCONTENTDEVICETYPE_ODD: RARCH_LOG("RetroArch was launched from a content package on Optical Disc Drive.\n"); break; default: RARCH_LOG("RetroArch was launched from a content package on an unknown device type.\n"); break; } } #endif #if defined(_XBOX1) strlcpy(g_defaults.core_dir, "D:", sizeof(g_defaults.core_dir)); strlcpy(g_defaults.core_info_dir, "D:", sizeof(g_defaults.core_info_dir)); fill_pathname_join(g_defaults.config_path, g_defaults.core_dir, "retroarch.cfg", sizeof(g_defaults.config_path)); fill_pathname_join(g_defaults.savestate_dir, g_defaults.core_dir, "savestates", sizeof(g_defaults.savestate_dir)); fill_pathname_join(g_defaults.sram_dir, g_defaults.core_dir, "savefiles", sizeof(g_defaults.sram_dir)); fill_pathname_join(g_defaults.system_dir, g_defaults.core_dir, "system", sizeof(g_defaults.system_dir)); fill_pathname_join(g_defaults.screenshot_dir, g_defaults.core_dir, "screenshots", sizeof(g_defaults.screenshot_dir)); #ifndef IS_SALAMANDER strlcpy(g_extern.menu_texture_path, "D:\\Media\\main-menu_480p.png", sizeof(g_extern.menu_texture_path)); #endif #elif defined(_XBOX360) strlcpy(g_defaults.core_dir, "game:", sizeof(g_defaults.core_dir)); strlcpy(g_defaults.core_info_dir, "game:", sizeof(g_defaults.core_info_dir)); strlcpy(g_defaults.config_path, "game:\\retroarch.cfg", sizeof(g_defaults.config_path)); strlcpy(g_defaults.screenshot_dir, "game:", sizeof(g_defaults.screenshot_dir)); strlcpy(g_defaults.savestate_dir, "game:\\savestates", sizeof(g_defaults.savestate_dir)); strlcpy(g_defaults.sram_dir, "game:\\savefiles", sizeof(g_defaults.sram_dir)); strlcpy(g_defaults.system_dir, "game:\\system", sizeof(g_defaults.system_dir)); #endif #ifndef IS_SALAMANDER static char path[PATH_MAX]; *path = '\0'; #if defined(_XBOX1) RARCH_LOG("Gets here top.\n"); LAUNCH_DATA ptr; DWORD launch_type; if (XGetLaunchInfo(&launch_type, &ptr) == ERROR_SUCCESS) { if (launch_type == LDT_FROM_DEBUGGER_CMDLINE) { RARCH_LOG("Launched from commandline debugger.\n"); goto exit; } else { char *extracted_path = (char*)&ptr.Data; if (extracted_path && extracted_path[0] != '\0' && (strstr(extracted_path, "Pool") == NULL) /* Hack. Unknown problem */) { RARCH_LOG("Gets here 3.\n"); strlcpy(path, extracted_path, sizeof(path)); RARCH_LOG("Auto-start game %s.\n", path); } } } #elif defined(_XBOX360) DWORD dwLaunchDataSize; if (XGetLaunchDataSize(&dwLaunchDataSize) == ERROR_SUCCESS) { BYTE* pLaunchData = new BYTE[dwLaunchDataSize]; XGetLaunchData(pLaunchData, dwLaunchDataSize); char *extracted_path = (char*)&pLaunchData; if (extracted_path && extracted_path[0] != '\0') { strlcpy(path, extracted_path, sizeof(path)); RARCH_LOG("Auto-start game %s.\n", path); } if (pLaunchData) delete []pLaunchData; } #endif if (path && path[0] != '\0') { struct rarch_main_wrap *args = (struct rarch_main_wrap*)params_data; if (args) { args->touched = true; args->no_rom = false; args->verbose = false; args->config_path = NULL; args->sram_path = NULL; args->state_path = NULL; args->rom_path = path; args->libretro_path = NULL; RARCH_LOG("Auto-start game %s.\n", path); } } #endif #ifndef IS_SALAMANDER exit: g_extern.verbose = original_verbose; #endif }
static void frontend_xdk_get_environment_settings(int *argc, char *argv[], void *args, void *params_data) { HRESULT ret; #ifdef _XBOX360 unsigned long license_mask; DWORD volume_device_type; #endif #ifndef IS_SALAMANDER static char path[PATH_MAX_LENGTH] = {0}; #if defined(_XBOX1) LAUNCH_DATA ptr; DWORD launch_type; #elif defined(_XBOX360) DWORD dwLaunchDataSize; #endif #endif #ifndef IS_SALAMANDER bool original_verbose = verbosity_is_enabled(); #endif (void)ret; #ifndef IS_SALAMANDER #if defined(HAVE_LOGGER) logger_init(); #elif defined(HAVE_FILE_LOGGER) retro_main_log_file_init("/retroarch-log.txt"); #endif #endif #ifdef _XBOX360 /* Detect install environment. */ if (XContentGetLicenseMask(&license_mask, NULL) == ERROR_SUCCESS) { XContentQueryVolumeDeviceType("GAME",&volume_device_type, NULL); switch(volume_device_type) { case XCONTENTDEVICETYPE_HDD: /* Launched from content package on HDD */ case XCONTENTDEVICETYPE_MU: /* Launched from content package on USB/Memory Unit. */ case XCONTENTDEVICETYPE_ODD: /* Launched from content package on Optial Disc Drive. */ default: /* Launched from content package on unknown device. */ break; } } #endif #if defined(_XBOX1) strlcpy(g_defaults.dirs[DEFAULT_DIR_CORE], "D:", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE])); fill_pathname_join(g_defaults.path.config, g_defaults.dirs[DEFAULT_DIR_CORE], file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SAVESTATE], g_defaults.dirs[DEFAULT_DIR_CORE], "savestates", sizeof(g_defaults.dirs[DEFAULT_DIR_SAVESTATE])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SRAM], g_defaults.dirs[DEFAULT_DIR_CORE], "savefiles", sizeof(g_defaults.dirs[DEFAULT_DIR_SRAM])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SYSTEM], g_defaults.dirs[DEFAULT_DIR_CORE], "system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], g_defaults.dirs[DEFAULT_DIR_CORE], "screenshots", sizeof(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT])); #elif defined(_XBOX360) strlcpy(g_defaults.dirs[DEFAULT_DIR_CORE], "game:", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE])); strlcpy(g_defaults.path.config, "game:\\retroarch.cfg", sizeof(g_defaults.path.config)); strlcpy(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], "game:", sizeof(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT])); strlcpy(g_defaults.dirs[DEFAULT_DIR_SAVESTATE], "game:\\savestates", sizeof(g_defaults.dirs[DEFAULT_DIR_SAVESTATE])); strlcpy(g_defaults.dirs[DEFAULT_DIR_PLAYLIST], "game:\\playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_PLAYLIST])); strlcpy(g_defaults.dirs[DEFAULT_DIR_SRAM], "game:\\savefiles", sizeof(g_defaults.dirs[DEFAULT_DIR_SRAM])); strlcpy(g_defaults.dirs[DEFAULT_DIR_SYSTEM], "game:\\system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); #endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], g_defaults.dirs[DEFAULT_DIR_CORE], "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO])); #ifndef IS_SALAMANDER #if defined(_XBOX1) if (XGetLaunchInfo(&launch_type, &ptr) == ERROR_SUCCESS) { char *extracted_path = NULL; if (launch_type == LDT_FROM_DEBUGGER_CMDLINE) goto exit; extracted_path = (char*)&ptr.Data; if ( !string_is_empty(extracted_path) && (strstr(extracted_path, "Pool") == NULL) /* Hack. Unknown problem */) { /* Auto-start game */ strlcpy(path, extracted_path, sizeof(path)); } } #elif defined(_XBOX360) if (XGetLaunchDataSize(&dwLaunchDataSize) == ERROR_SUCCESS) { char *extracted_path = (char*)calloc(dwLaunchDataSize, sizeof(char)); BYTE* pLaunchData = (BYTE*)calloc(dwLaunchDataSize, sizeof(BYTE)); XGetLaunchData(pLaunchData, dwLaunchDataSize); memset(extracted_path, 0, dwLaunchDataSize); strlcpy(extracted_path, pLaunchData, dwLaunchDataSize); /* Auto-start game */ if (!string_is_empty(extracted_path)) strlcpy(path, extracted_path, sizeof(path)); if (pLaunchData) free(pLaunchData); } #endif if (!string_is_empty(path)) { struct rarch_main_wrap *args = (struct rarch_main_wrap*)params_data; if (args) { /* Auto-start game. */ args->touched = true; args->no_content = false; args->verbose = false; args->config_path = NULL; args->sram_path = NULL; args->state_path = NULL; args->content_path = path; args->libretro_path = NULL; } } #endif #ifndef IS_SALAMANDER #ifdef _XBOX1 exit: if (original_verbose) verbosity_enable(); else verbosity_disable(); #endif #endif }