diff --git a/stepmania/src/archutils/Xbox/custom_launch_params.cpp b/stepmania/src/archutils/Xbox/custom_launch_params.cpp index b83cba8285..47716d2ca0 100644 --- a/stepmania/src/archutils/Xbox/custom_launch_params.cpp +++ b/stepmania/src/archutils/Xbox/custom_launch_params.cpp @@ -1,68 +1,11 @@ #include #include #include "custom_launch_params.h" -#include "SDLx-0.02\SDL\src\cdrom\xbox\undocumented.h" - CUSTOM_LAUNCH_DATA g_launchData ; int g_autoLaunchGame ; int g_launchReturnXBE ; -//GetXbeID Borrowed from MXM and modified because CreateFile wasn't working correctly -DWORD GetXbeID( LPCTSTR szFilePath ) -{ - DWORD dwReturn = 0; - HANDLE hFile; - DWORD dwCertificateLocation; - DWORD dwLoadAddress; - DWORD dwRead; - ANSI_STRING filename; - OBJECT_ATTRIBUTES attributes; - IO_STATUS_BLOCK status; - NTSTATUS error; - - RtlInitAnsiString(&filename,szFilePath); - InitializeObjectAttributes(&attributes, &filename, OBJ_CASE_INSENSITIVE, NULL); - if (NT_SUCCESS(error = NtCreateFile(&hFile, - GENERIC_READ |SYNCHRONIZE | FILE_READ_ATTRIBUTES, - &attributes, - &status, - NULL, - 0, - FILE_SHARE_READ, - FILE_OPEN, - FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT))) - { - if ( SetFilePointer( hFile, 0x104, NULL, FILE_BEGIN ) == 0x104 ) - { - if ( ReadFile( hFile, &dwLoadAddress, 4, &dwRead, NULL ) ) - { - if ( SetFilePointer( hFile, 0x118, NULL, FILE_BEGIN ) == 0x118 ) - { - if ( ReadFile( hFile, &dwCertificateLocation, 4, &dwRead, NULL ) ) - { - dwCertificateLocation -= dwLoadAddress; - // Add offset into file - dwCertificateLocation += 8; - if ( SetFilePointer( hFile, dwCertificateLocation, NULL, FILE_BEGIN ) == dwCertificateLocation ) - { - dwReturn = 0; - ReadFile( hFile, &dwReturn, sizeof(DWORD), &dwRead, NULL ); - if ( dwRead != sizeof(DWORD) ) - { - dwReturn = 0; - } - } - - } - } - } - } - CloseHandle(hFile); - } - return dwReturn; -} - //XGetCustomLaunchData // //If there is a valid filename to load, then g_autoLaunchGame will be set to 1 @@ -89,11 +32,6 @@ int XGetCustomLaunchData() return 1 ; } - else - { - } - - } return 0 ; @@ -104,116 +42,15 @@ void XReturnToLaunchingXBE( ) if ( g_launchReturnXBE ) { LD_LAUNCH_DASHBOARD LaunchData = { XLD_LAUNCH_DASHBOARD_MAIN_MENU }; - //XWriteTitleInfoAndRebootA( g_launchData.szLaunchXBEOnExit, g_launchData.szRemap_D_As, LDT_TITLE, 0, &LaunchData); } else { - //sprintfx( "loading xboxdahs\r\n") ; LD_LAUNCH_DASHBOARD LaunchData = { XLD_LAUNCH_DASHBOARD_MAIN_MENU }; - /* - LD_LAUNCH_DASHBOARD LaunchData ; - memset( &LaunchData, 0, sizeof(LD_LAUNCH_DASHBOARD) ) ; - - LaunchData.dwContext = 0 ; - LaunchData.dwParameter1 = 0 ; - LaunchData.dwParameter2 = 0 ; - LaunchData.dwReason = XLD_LAUNCH_DASHBOARD_MAIN_MENU ;*/ - - //XWriteTitleInfoAndRebootA( "xboxdash.xbe", "\\Device\\Harddisk0\\Partition2", LDT_TITLE, 0, &LaunchData); XLaunchNewImage( NULL, (LAUNCH_DATA*)&LaunchData ); } } -void XLaunchNewImageWithParams( char *szXBEName, char *szMap_D_As, PCUSTOM_LAUNCH_DATA pLaunchData ) -{ - ANSI_STRING filename; - OBJECT_ATTRIBUTES attributes; - IO_STATUS_BLOCK status; - HANDLE hDevice; - NTSTATUS error; - char szDevice[MAX_PATH] ; - DWORD dwTitleID, dwRead ; - - - sprintf( szDevice, "%s\\%s", szMap_D_As, szXBEName ) ; - - dwTitleID = GetXbeID( szDevice ) ; - - //XWriteTitleInfoAndRebootA( szXBEName, szMap_D_As, LDT_TITLE, dwTitleID, pLaunchData); -} - - -/* - -Example of how to call XLaunchNewImageWithParams() - - - CUSTOM_LAUNCH_DATA ldata ; - - - memset( &ldata, 0, sizeof(CUSTOM_LAUNCH_DATA) ) ; - - ldata.magic = CUSTOM_LAUNCH_MAGIC ; //Must set this to our magic number for recognition! - - //This is the filename to launch when the launched XBE starts up. - //Note that the filename path is *relative* to the D: that is being mapped - //in the 2nd parameter passed to XLaunchNewImageWithParams - //In this case, XLaunchNewImageWithParams is passed a value of - //"\\Device\\Harddisk0\\Partition1\\Games" which is equivalent to "E:\\Games" - //which gets mapped to "D:\". Therefore, if our rom directory is - //E:\GAMES\SMSROMS, then we have to use a value of "D:\\SMSROMS\\FILENAME.ZIP" - //in this ldata.szFilename - - //PCSXBox also recognizes the standard mappings for the C, E, F, X, Y, and Z - //drives. The R drive can be used to indicate a file on the DVD-ROM drive. - //e.g. R:\\cds\\castle.bin - //You can also pass it a name like SMB:\\gamename.bin to indicate it should - //load the game on the samba share defined in PCSXBox. (Probably not useful - //to frontends since you won't know what the share is mapped to, but the - //syntax is available to you.) - - strcpy( ldata.szFilename, "d:\\psxcds\\castle.bin" ); - - //This is *only* the XBE filename. Do not include a path in this value. - strcpy( ldata.szLaunchXBEOnExit, "dashboard.xbe" ) ; - - //This is what D:\ shall be mapped to when we launch the return XBE. - //In this case, D:\ will be mapped to E:\DASHBOARDS - strcpy( ldata.szRemap_D_As, "\\Device\\Harddisk0\\Partition1\\DASHBOARDS" ) ; - - //The following CUSTOM_LAUNCH_DATA field is the only other one used by PCSXBox: - - //ldata.executionType = 0; //This means "launch game in HLE mode" - ldata.executionType = 1; //This means "launch game in BIOS mode" - - //The following will launch E:\GAMES\PCSXBOX.XBE ( if "E:" is mapped to "\\Device\\Harddisk0\\Partition1" ) - XLaunchNewImageWithParams( "PCSXBOX.XBE", "\\Device\\Harddisk0\\Partition1\\GAMES", &ldata ) ; -*/ - -/* Example for command-line launching FCEUltra - -CUSTOM_LAUNCH_DATA ldata ; - - -memset( &ldata, 0, sizeof(CUSTOM_LAUNCH_DATA) ) ; - -ldata.magic = CUSTOM_LAUNCH_MAGIC ; //Must set this to our magic number for recognition! - -strcpy( ldata.szFilename, "e:\\games\\nesroms\\Contra (U).nes" ); - -//This is *only* the XBE filename. Do not include a path in this value. -strcpy( ldata.szLaunchXBEOnExit, "dashboard.xbe" ) ; - -//This is what D:\ shall be mapped to when we launch the return XBE. -//In this case, D:\ will be mapped to E:\DASHBOARDS -strcpy( ldata.szRemap_D_As, "\\Device\\Harddisk0\\Partition1\\DASHBOARDS" ) ; - - -//The following will launch E:\GAMES\FCE.XBE ( if "E:" is mapped to "\\Device\\Harddisk0\\Partition1" ) -XLaunchNewImageWithParams( "FCE.XBE", "\\Device\\Harddisk0\\Partition1\\GAMES", &ldata ) ; -*/ - #ifdef __cplusplus extern "C" { #endif diff --git a/stepmania/src/archutils/Xbox/custom_launch_params.h b/stepmania/src/archutils/Xbox/custom_launch_params.h index 6264fb56b4..196c9ea6df 100644 --- a/stepmania/src/archutils/Xbox/custom_launch_params.h +++ b/stepmania/src/archutils/Xbox/custom_launch_params.h @@ -32,6 +32,5 @@ extern int g_launchReturnXBE ; int XGetCustomLaunchData() ; void XReturnToLaunchingXBE( ); -void XLaunchNewImageWithParams( char *szXBEName, char *szMap_D_As, PCUSTOM_LAUNCH_DATA pLaunchData ); #endif