diff --git a/App Sources/Shortcut xbe's/Dashloader/external.h b/App Sources/Shortcut xbe's/Dashloader/external.h new file mode 100644 index 0000000..cf449b3 --- /dev/null +++ b/App Sources/Shortcut xbe's/Dashloader/external.h @@ -0,0 +1,65 @@ +#define IOCTL_VIRTUAL_CDROM_DETACH 0x1EE7CD02 +#define IOCTL_VIRTUAL_DETACH 0xCE52B02 + +#define OBJ_CASE_INSENSITIVE 0x00000040L +#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 +#define FILE_NON_DIRECTORY_FILE 0x00000040 + +#define NT_SUCCESS(StatCode) ((NTSTATUS)(StatCode) >= 0) + +extern "C" { + typedef ULONG NTSTATUS; + typedef ULONG ACCESS_MASK; + + typedef struct _OBJECT_ATTRIBUTES + { + HANDLE RootDirectory; + PANSI_STRING ObjectName; + ULONG Attributes; + } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; + + typedef struct _IO_STATUS_BLOCK + { + NTSTATUS Status; + ULONG Information; + } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; + + typedef VOID (*PIO_APC_ROUTINE)( + PVOID ApcContext, + PIO_STATUS_BLOCK pIoStatusBlock, + ULONG Reserved + ); + + extern NTSTATUS __stdcall NtOpenFile( + OUT PHANDLE pHandle, + IN ACCESS_MASK DesiredAccess, + IN POBJECT_ATTRIBUTES pObjectAttributes, + OUT PIO_STATUS_BLOCK pIOStatusBlock, + IN ULONG ShareAccess, + IN ULONG OpenOptions + ); + + extern NTSTATUS __stdcall NtClose(HANDLE Handle); + extern VOID __stdcall HalReturnToFirmware(unsigned int); + extern VOID __stdcall RtlInitAnsiString(void *destp, void *srcp); + extern NTSTATUS __stdcall IoDismountVolumeByName(PANSI_STRING DeviceName); + + extern NTSTATUS __stdcall IoDismountVolumeByName( + PANSI_STRING DeviceName + ); + + /* Xbox Kernel Functions */ + extern NTSTATUS __stdcall NtDeviceIoControlFile( + HANDLE Handle, + HANDLE Event, + PIO_APC_ROUTINE ApcRoutine, + PVOID ApcContext, + PIO_STATUS_BLOCK IoStatusBlock, + ULONG IoControlCode, + PVOID InputBuffer, + ULONG InputBufferLength, + PVOID OutputBuffer, + ULONG OutputBufferLength + ); + +}; \ No newline at end of file diff --git a/App Sources/Shortcut xbe's/Dashloader/shortcutxbe.c b/App Sources/Shortcut xbe's/Dashloader/shortcutxbe.c index ae4e2f9..e5e7aeb 100644 --- a/App Sources/Shortcut xbe's/Dashloader/shortcutxbe.c +++ b/App Sources/Shortcut xbe's/Dashloader/shortcutxbe.c @@ -16,9 +16,11 @@ #include #include #include "shortcutxbe.h" -#include "dismountxbe.h" -#define ES_IGR "E:\\CACHE\\LocalCache20.bin" -#define dashloader_Files_path "E:\\UDATA\\21585554\\000000000000\\nkpatcher settings\\dashloader\\" +#include "external.h" + +#define ES_IGR "E:\\CACHE\\LocalCache20.bin" +#define Dashloader_Files_Path "E:\\UDATA\\21585554\\000000000000\\nkpatcher settings\\dashloader\\" + static FILE* logfile = NULL; int file_exist(char *name) { @@ -79,39 +81,50 @@ int LaunchShortcut(char* filename) /* initial starting point of program */ int main(int argc,char* argv[]) { - XMount("C:", "\\Device\\Harddisk0\\Partition2"); XMount("E:", "\\Device\\Harddisk0\\Partition1"); - CreateDirectory(dashloader_Files_path, NULL); + XMount("C:", "\\Device\\Harddisk0\\Partition2"); + XMount("E:", "\\Device\\Harddisk0\\Partition1"); + CreateDirectory(Dashloader_Files_Path, NULL); CreateDirectory("E:\\CACHE", NULL); - char shortcut[MAX_PATH]; - int i; XInitDevices( 0, NULL ); if( FAILED( XBInput_CreateGamepads( &m_Gamepad ) ) ) { debuglog("ERROR - Cant create gamepad"); } - logfile = fopen(dashloader_Files_path"Dashloader.log", "w+t"); - debuglog("Dashloader Build 1.4.2\n"); + logfile = fopen(Dashloader_Files_Path"Dashloader.log", "w+t"); + debuglog("Dashloader Build 1.4.3\n"); + // Dismount virtual drive XMount("VD:", "\\Device\\Cdrom1"); - if (file_exist("E:\\CACHE\\LocalCache30.bin")) + if (file_exist("VD:\\default.xbe") && !file_exist(Dashloader_Files_Path"Disabled Virtual-ISO Dismount.bin")) { - debuglog("Cleanup from Virtual Disc removal"); - remove("E:\\CACHE\\LocalCache30.bin"); - } - if (file_exist("VD:\\default.xbe") && !file_exist(dashloader_Files_path"Disabled Virtual-ISO Dismount.bin")) - { - debuglog("Unmounting Virtual Drive"); - std::ofstream DismountXBEFile("E:\\CACHE\\LocalCache30.bin", std::ios::binary); - for(i = 0; i < sizeof(dismount_xbe); i++) - { - DismountXBEFile << dismount_xbe[i]; + debuglog("Unmounting: Virtual Drive\n"); + // NKPatcher Virtual Drive + HANDLE h; + NTSTATUS status; + ANSI_STRING dev_name; + RtlInitAnsiString(&dev_name, "\\Device\\CdRom1"); + + OBJECT_ATTRIBUTES obj_attr; + obj_attr.RootDirectory = NULL; + obj_attr.ObjectName = &dev_name; + obj_attr.Attributes = OBJ_CASE_INSENSITIVE; + + IO_STATUS_BLOCK io_status; + status = NtOpenFile(&h, GENERIC_READ | SYNCHRONIZE, &obj_attr, &io_status, FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT); + + if (NT_SUCCESS(status)) { + debuglog("\t> Found virtual drive"); + status = NtDeviceIoControlFile(h, NULL, NULL, NULL, &io_status, IOCTL_VIRTUAL_CDROM_DETACH, NULL, 0, NULL, 0); + if (NT_SUCCESS(status)) + debuglog("\t\t> Dismounted virtual drive\n"); + else + debuglog("\t\t> Failed to dismount virtual drive\n"); } - DismountXBEFile.close(); - XLaunchXBE("E:\\CACHE\\LocalCache30.bin"); + NtClose(h); } // Sleep fixes screen resetting on some xbox. Sleep(300); if (file_exist(ES_IGR)) - LaunchShortcut(ES_IGR); + LaunchShortcut(ES_IGR); int timer = 0; while(timer++ <= 1000) { @@ -148,7 +161,7 @@ int main(int argc,char* argv[]) { debuglog("Checking: Rescue dashboards\n"); debuglog("\t> Loading: Custom Rescue dashboard"); - LaunchShortcut(dashloader_Files_path"Custom_Recovery.cfg"); + LaunchShortcut(Dashloader_Files_Path"Custom_Recovery.cfg"); debuglog("\t\t> Custom Rescue dashboard not found\n\n\t> Loading: Rescue dashboard TDATA"); XLaunchXBE("E:\\TDATA\\Rescuedash\\Default.xbe"); @@ -168,42 +181,42 @@ int main(int argc,char* argv[]) if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_A] ) { debuglog("Loading: A Button dashboard"); - LaunchShortcut(dashloader_Files_path"A_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"A_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_B] ) { debuglog("Loading: B Button dashboard"); - LaunchShortcut(dashloader_Files_path"B_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"B_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_X] ) { debuglog("Loading: X Button dashboard"); - LaunchShortcut(dashloader_Files_path"X_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"X_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_Y] ) { debuglog("Loading: Y Button dashboard"); - LaunchShortcut(dashloader_Files_path"Y_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Y_Button_Dash.cfg"); } if( m_DefaultGamepad.wPressedButtons & XINPUT_GAMEPAD_START ) { debuglog("Loading: Start Button dashboard"); - LaunchShortcut(dashloader_Files_path"Start_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Start_Button_Dash.cfg"); } if( m_DefaultGamepad.wPressedButtons & XINPUT_GAMEPAD_BACK ) { debuglog("Loading: Back Button dashboard"); - LaunchShortcut(dashloader_Files_path"Back_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Back_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_BLACK] ) { debuglog("Loading: Black Button dashboard"); - LaunchShortcut(dashloader_Files_path"Black_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Black_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_WHITE] ) { debuglog("Loading: White Button dashboard"); - LaunchShortcut(dashloader_Files_path"White_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"White_Button_Dash.cfg"); } Sleep(1); @@ -227,7 +240,7 @@ int main(int argc,char* argv[]) debuglog("Checking: Custom Dashboard\n"); debuglog("\t> Loading: Custom dashboard"); - LaunchShortcut(dashloader_Files_path"Custom_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Custom_Dash.cfg"); debuglog("\t\t> Custom dashboard not found\n"); debuglog("Checking: Dashboard Locations\n"); diff --git a/App Sources/Shortcut xbe's/Dashloader/shortcutxbehm.c b/App Sources/Shortcut xbe's/Dashloader/shortcutxbehm.c index 4774e62..ff61c78 100644 --- a/App Sources/Shortcut xbe's/Dashloader/shortcutxbehm.c +++ b/App Sources/Shortcut xbe's/Dashloader/shortcutxbehm.c @@ -16,10 +16,25 @@ #include #include #include "shortcutxbe.h" -#include "dismountxbe.h" #include "kernelpatcher.h" -#define ES_IGR "E:\\CACHE\\LocalCache20.bin" -#define dashloader_Files_path "C:\\Dashloader\\" +#include "external.h" + +#define ES_IGR "E:\\CACHE\\LocalCache20.bin" +#define Dashloader_Files_Path "C:\\Dashloader\\" +#define Ind_Checker_File "E:\\CACHE\\LocalCache30.bin" +#define Patcher_File "E:\\CACHE\\LocalCache40.bin" + +#define Patched_M8 ((char*)0x8002691E) +#define Patched_Ind ((char*)0x8002B4B7) + +#define UNPatched_M8_1 ((char*)0x8002691B) +#define UNPatched_M8_2 ((char*)0x8002691E) +#define UNPatched_M8_3 ((char*)0x8002690E) + +#define UNPatched_Ind_1 ((char*)0x8002B4B5) +#define UNPatched_Ind_2 ((char*)0x8002B4B7) +#define UNPatched_Ind_3 ((char*)0x8002B4C7) + static FILE* logfile = NULL; int file_exist(char *name) { @@ -81,72 +96,96 @@ int LaunchShortcut(char* filename) /* initial starting point of program */ int main(int argc,char* argv[]) { - XMount("C:", "\\Device\\Harddisk0\\Partition2"); XMount("E:", "\\Device\\Harddisk0\\Partition1"); - CreateDirectory(dashloader_Files_path, NULL); + XMount("C:", "\\Device\\Harddisk0\\Partition2"); + XMount("E:", "\\Device\\Harddisk0\\Partition1"); + CreateDirectory("E:\\CACHE", NULL); + CreateDirectory(Dashloader_Files_Path, NULL); XInitDevices( 0, NULL ); if( FAILED( XBInput_CreateGamepads( &m_Gamepad ) ) ) { debuglog("ERROR - Cant create gamepad"); } - logfile = fopen(dashloader_Files_path"Dashloader.log", "w+t"); - debuglog("Dashloader Build 1.4.2\n"); + logfile = fopen(Dashloader_Files_Path"Dashloader.log", "w+t"); + debuglog("Dashloader Build 1.4.3\n"); // Ind-Bios 5003/M8+ with virtual disc loader patch - if (!file_exist(dashloader_Files_path"Disable Virtual ISO Support.bin")) + if (!file_exist(Dashloader_Files_Path"Disable Virtual ISO Support.bin")) { - int i; - char *patched_M8 = (char *)0x8002691E; // M8+ - if (*patched_M8=='™') - debuglog("M8+ Detected and XISO support added\n"); - char *patched_Ind = (char *)0x8002B4B7; // ind-biod 5003 - if (*patched_Ind=='™') + // I check for these so I dont try and patch unsupported bios + if (*UNPatched_M8_1 == 'ì' && *UNPatched_M8_2 == ' ' && *UNPatched_M8_3 == 'ÿ' || + *UNPatched_Ind_1 == 'ƒ' && *UNPatched_Ind_2 == ' ' && *UNPatched_Ind_3 == '€') + { + if (!file_exist(Patcher_File)) + { + std::ofstream PatcherXBEFile(Patcher_File, std::ios::binary); + PatcherXBEFile.write(reinterpret_cast(kernel_patcher), sizeof(kernel_patcher)); + } + XLaunchXBE(Patcher_File); + } + remove(Patcher_File); + int patched = 0; + int legacy = 0; + if (*Patched_M8 == '™') + { + // M8+ doesnt work with quick IGR when a virtual disc is mounted + debuglog("M8+ Detected and XISO support added\n"); + patched = 1; + } + if (*Patched_Ind == '™') { debuglog("Ind-Bios 5003 Detected and XISO support added\n"); - XMount("D:", "\\Device\\Cdrom0"); XMount("VD:", "\\Device\\Cdrom1"); - CreateDirectory("E:\\CACHE", NULL); - if (file_exist("VD:\\default.xbe")) + patched = 1; + legacy = 1; + if (!file_exist(Ind_Checker_File)) { - if (!file_exist("E:\\CACHE\\LocalCache30.bin")) - { - debuglog("Creating De-mounter"); - std::ofstream DismountXBEFile("E:\\CACHE\\LocalCache30.bin", std::ios::binary); - for(i = 0; i < sizeof(dismount_xbe); i++) - { - DismountXBEFile << dismount_xbe[i]; - } - DismountXBEFile.close(); - XLaunchXBE("D:\\default.xbe"); - } - if (!file_exist(dashloader_Files_path"Disabled Virtual-ISO Dismount.bin")) - { - debuglog("Unmounting Virtual Drive"); - XLaunchXBE("E:\\CACHE\\LocalCache30.bin"); - } + // Creating blank file so I know not to keep reloading the game over and over. This wouldn't be required if I didn't need to manually load the disc for indbios + std::ofstream blankFile(Ind_Checker_File, std::ios::binary); + blankFile.close(); + + // This is so we can exit the game when we IGR. If we don't it does what M8+ does. + // If using cerbios new attacher xbe you will need to IGR twice. + XLaunchXBE("D:\\default.xbe"); } - remove("E:\\CACHE\\LocalCache30.bin"); + remove(Ind_Checker_File); } - // Check for characters at these offsets so I know to patch it. - char *unpatched_M8_1 = (char *)0x8002691B; char *unpatched_M8_2 = (char *)0x8002691E; char *unpatched_M8_3 = (char *)0x8002690E; - char *unpatched_Ind_1 = (char *)0x8002B4B5; char *unpatched_Ind_2 = (char *)0x8002B4B7; char *unpatched_Ind_3 = (char *)0x8002B4C7; - if (*unpatched_M8_1=='ì' && *unpatched_M8_2==' ' && *unpatched_M8_3=='ÿ' || *unpatched_Ind_1=='ƒ' && *unpatched_Ind_2==' ' && *unpatched_Ind_3=='€') + // Dismount virtual disc drive if present and if not disabled + // loggin is disbaled for this as it will populate even if there is no disc and if I add a check for a disc it would populate every time you load a disc and IGR. (Cerbios only) + if (!file_exist(Dashloader_Files_Path"Disabled Virtual-ISO Dismount.bin")) { - if (!file_exist("E:\\CACHE\\LocalCache40.bin")) + // debuglog("Unmounting: Virtual Drive\n"); + HANDLE h; + NTSTATUS status; + ANSI_STRING dev_name; + if (legacy) { - std::ofstream PatcherXBEFile("E:\\CACHE\\LocalCache40.bin", std::ios::binary); - for(i = 0; i < sizeof(kernel_patcher); i++) - { - PatcherXBEFile << kernel_patcher[i]; - } - PatcherXBEFile.close(); + RtlInitAnsiString(&dev_name, "\\Device\\CdRom1"); + // debuglog("\t> Found NKPatcher virtual drive"); } - XLaunchXBE("E:\\CACHE\\LocalCache40.bin"); + else + { + RtlInitAnsiString(&dev_name, "\\Device\\Virtual0\\Image0"); + // debuglog("\t> Found Cerbios virtual drive"); + } + unsigned long IOCTL_VIRTUAL_CDROM = legacy ? IOCTL_VIRTUAL_CDROM_DETACH : IOCTL_VIRTUAL_DETACH; + OBJECT_ATTRIBUTES obj_attr; + obj_attr.RootDirectory = NULL; + obj_attr.ObjectName = &dev_name; + obj_attr.Attributes = OBJ_CASE_INSENSITIVE; + IO_STATUS_BLOCK io_status; + status = NtOpenFile(&h, GENERIC_READ | SYNCHRONIZE, &obj_attr, &io_status, FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT); + if (NT_SUCCESS(status)) { + status = NtDeviceIoControlFile(h, NULL, NULL, NULL, &io_status, IOCTL_VIRTUAL_CDROM, NULL, 0, NULL, 0); + // if (NT_SUCCESS(status)) + // debuglog("\t\t> Dismounted virtual drive\n"); + // else + // debuglog("\t\t> Failed to dismount virtual drive\n"); + } + NtClose(h); } } // Sleep fixes screen resetting on some xbox. Sleep(300); - if (file_exist(ES_IGR)) LaunchShortcut(ES_IGR); - int timer = 0; while(timer++ <= 1000) { @@ -183,7 +222,7 @@ int main(int argc,char* argv[]) { debuglog("Checking: Rescue dashboards\n"); debuglog("\t> Loading: Custom Rescue dashboard"); - LaunchShortcut(dashloader_Files_path"Custom_Recovery.cfg"); + LaunchShortcut(Dashloader_Files_Path"Custom_Recovery.cfg"); debuglog("\t\t> Custom Rescue dashboard not found\n\n\t> Loading: Rescue dashboard TDATA"); XLaunchXBE("E:\\TDATA\\Rescuedash\\Default.xbe"); @@ -200,50 +239,56 @@ int main(int argc,char* argv[]) if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_A] ) { debuglog("Loading: A Button dashboard"); - LaunchShortcut(dashloader_Files_path"A_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"A_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_B] ) { debuglog("Loading: B Button dashboard"); - LaunchShortcut(dashloader_Files_path"B_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"B_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_X] ) { debuglog("Loading: X Button dashboard"); - LaunchShortcut(dashloader_Files_path"X_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"X_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_Y] ) { debuglog("Loading: Y Button dashboard"); - LaunchShortcut(dashloader_Files_path"Y_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Y_Button_Dash.cfg"); } if( m_DefaultGamepad.wPressedButtons & XINPUT_GAMEPAD_START ) { debuglog("Loading: Start Button dashboard"); - LaunchShortcut(dashloader_Files_path"Start_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Start_Button_Dash.cfg"); } if( m_DefaultGamepad.wPressedButtons & XINPUT_GAMEPAD_BACK ) { debuglog("Loading: Back Button dashboard"); - LaunchShortcut(dashloader_Files_path"Back_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Back_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_BLACK] ) { debuglog("Loading: Black Button dashboard"); - LaunchShortcut(dashloader_Files_path"Black_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Black_Button_Dash.cfg"); } if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_WHITE] ) { debuglog("Loading: White Button dashboard"); - LaunchShortcut(dashloader_Files_path"White_Button_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"White_Button_Dash.cfg"); } Sleep(1); } // Try preset dashboard paths + + debuglog("Checking: Prep dashboard\n"); + debuglog("\t> Loading: Prep dashboard - E:\\Prep\\Default.xbe"); + XLaunchXBE("E:\\Prep\\Default.xbe"); + debuglog("\t\t> Prep dashboard not found\n"); + debuglog("Checking: Custom Dashboard\n"); debuglog("\t> Loading: Custom dashboard"); - LaunchShortcut(dashloader_Files_path"Custom_Dash.cfg"); + LaunchShortcut(Dashloader_Files_Path"Custom_Dash.cfg"); debuglog("\t\t> Custom dashboard not found\n"); debuglog("Checking: Dashboard Locations\n"); diff --git a/App Sources/Shortcut xbe's/Dashloader/xmount.c b/App Sources/Shortcut xbe's/Dashloader/xmount.c index c641361..1ec3a9c 100644 --- a/App Sources/Shortcut xbe's/Dashloader/xmount.c +++ b/App Sources/Shortcut xbe's/Dashloader/xmount.c @@ -14,6 +14,7 @@ DRIVEMAPPING g_driveMapping[] = { { 'C', "Harddisk0\\Partition2", 2}, { 'D', "Cdrom0", -1}, + { 'VD', "Cdrom1", -1}, { 'E', "Harddisk0\\Partition1", 1}, { 'F', "Harddisk0\\Partition6", 6}, { 'X', "Harddisk0\\Partition3", 3}, diff --git a/C Partition/nkpatcher/dashloader/default.xbe b/C Partition/nkpatcher/dashloader/default.xbe index 740f59a..978fe6b 100644 Binary files a/C Partition/nkpatcher/dashloader/default.xbe and b/C Partition/nkpatcher/dashloader/default.xbe differ diff --git a/Changes.txt b/Changes.txt index 7ed5d4d..5aa1037 100644 --- a/Changes.txt +++ b/Changes.txt @@ -1,9 +1,15 @@ ========================================= Change Log - Xbox Softmodding Tool v1.2.1 + Xbox Softmodding Tool v1.2.2 Created by Rocky5 ========================================= +========================================= + Update: August 5 2024 +========================================= + Dashloader update: + Natively dismount virtual disc drives + ========================================= Update: March 5 2024 ========================================= diff --git a/Extras Disc/FlashSM/Prep/Cfiles.zip b/Extras Disc/FlashSM/Prep/Cfiles.zip index 9f45c58..903caa3 100644 Binary files a/Extras Disc/FlashSM/Prep/Cfiles.zip and b/Extras Disc/FlashSM/Prep/Cfiles.zip differ diff --git a/Extras Disc/FlashSM/Prep/skins/CleanupHM/skin.xml b/Extras Disc/FlashSM/Prep/skins/CleanupHM/skin.xml index b909d7a..829f885 100644 --- a/Extras Disc/FlashSM/Prep/skins/CleanupHM/skin.xml +++ b/Extras Disc/FlashSM/Prep/skins/CleanupHM/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/FlashSM/Prep/skins/CleanupSM/skin.xml b/Extras Disc/FlashSM/Prep/skins/CleanupSM/skin.xml index 09ffb68..5ccd269 100644 --- a/Extras Disc/FlashSM/Prep/skins/CleanupSM/skin.xml +++ b/Extras Disc/FlashSM/Prep/skins/CleanupSM/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/FlashSM/Prep/skins/TSOPFlash/skin.xml b/Extras Disc/FlashSM/Prep/skins/TSOPFlash/skin.xml index 48de07b..048d3e5 100644 --- a/Extras Disc/FlashSM/Prep/skins/TSOPFlash/skin.xml +++ b/Extras Disc/FlashSM/Prep/skins/TSOPFlash/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/FlashSM/skins/Flasher/skin.xml b/Extras Disc/FlashSM/skins/Flasher/skin.xml index 153a5d3..caaf1ef 100644 --- a/Extras Disc/FlashSM/skins/Flasher/skin.xml +++ b/Extras Disc/FlashSM/skins/Flasher/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 font1.xpr diff --git a/Extras Disc/Hardmod/dashloader/evoxdash.xbe b/Extras Disc/Hardmod/dashloader/evoxdash.xbe index 52c0935..f9c75bd 100644 Binary files a/Extras Disc/Hardmod/dashloader/evoxdash.xbe and b/Extras Disc/Hardmod/dashloader/evoxdash.xbe differ diff --git a/Extras Disc/Hardmod/skins/Hardmod/skin.xml b/Extras Disc/Hardmod/skins/Hardmod/skin.xml index ae5bb0e..e07a586 100644 --- a/Extras Disc/Hardmod/skins/Hardmod/skin.xml +++ b/Extras Disc/Hardmod/skins/Hardmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 font1.xpr diff --git a/Extras Disc/Softmod/dashboards/msdash/other/UDDAE-C.zip b/Extras Disc/Softmod/dashboards/msdash/other/UDDAE-C.zip index b1828de..6e02f2c 100644 Binary files a/Extras Disc/Softmod/dashboards/msdash/other/UDDAE-C.zip and b/Extras Disc/Softmod/dashboards/msdash/other/UDDAE-C.zip differ diff --git a/Extras Disc/Softmod/skins/Factory Reset/skin.xml b/Extras Disc/Softmod/skins/Factory Reset/skin.xml index d6bd5df..da2c0f7 100644 --- a/Extras Disc/Softmod/skins/Factory Reset/skin.xml +++ b/Extras Disc/Softmod/skins/Factory Reset/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/Softmod/skins/ShadowC/skin.xml b/Extras Disc/Softmod/skins/ShadowC/skin.xml index 05ae23b..6fac806 100644 --- a/Extras Disc/Softmod/skins/ShadowC/skin.xml +++ b/Extras Disc/Softmod/skins/ShadowC/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/Softmod/skins/Softmod/skin.xml b/Extras Disc/Softmod/skins/Softmod/skin.xml index 95e39b9..86a2930 100644 --- a/Extras Disc/Softmod/skins/Softmod/skin.xml +++ b/Extras Disc/Softmod/skins/Softmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/Softmod/skins/Update Softmod/skin.xml b/Extras Disc/Softmod/skins/Update Softmod/skin.xml index df21cce..1f94955 100644 --- a/Extras Disc/Softmod/skins/Update Softmod/skin.xml +++ b/Extras Disc/Softmod/skins/Update Softmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/Softmod/skins/Upgrade Softmod/skin.xml b/Extras Disc/Softmod/skins/Upgrade Softmod/skin.xml index 17cfdac..ff95856 100644 --- a/Extras Disc/Softmod/skins/Upgrade Softmod/skin.xml +++ b/Extras Disc/Softmod/skins/Upgrade Softmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Extras Disc/Softmod/softmod files/Xbox Softmodding Tool.zip b/Extras Disc/Softmod/softmod files/Xbox Softmodding Tool.zip index 6a6f050..c589928 100644 Binary files a/Extras Disc/Softmod/softmod files/Xbox Softmodding Tool.zip and b/Extras Disc/Softmod/softmod files/Xbox Softmodding Tool.zip differ diff --git a/Installer Variants/Quick Update/Quick Update/skins/Softmod/skin.xml b/Installer Variants/Quick Update/Quick Update/skins/Softmod/skin.xml index a08749f..62b6afc 100644 --- a/Installer Variants/Quick Update/Quick Update/skins/Softmod/skin.xml +++ b/Installer Variants/Quick Update/Quick Update/skins/Softmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Installer Variants/Quick Upgrade/Quick Upgrade/skins/Softmod/skin.xml b/Installer Variants/Quick Upgrade/Quick Upgrade/skins/Softmod/skin.xml index 5aa5a48..3054b34 100644 --- a/Installer Variants/Quick Upgrade/Quick Upgrade/skins/Softmod/skin.xml +++ b/Installer Variants/Quick Upgrade/Quick Upgrade/skins/Softmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Installer Variants/UDDAE/resoftmod dash/skins/ReSoftmod Dash/skin.xml b/Installer Variants/UDDAE/resoftmod dash/skins/ReSoftmod Dash/skin.xml index 6f9b4a2..02e3653 100644 --- a/Installer Variants/UDDAE/resoftmod dash/skins/ReSoftmod Dash/skin.xml +++ b/Installer Variants/UDDAE/resoftmod dash/skins/ReSoftmod Dash/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 fonts\font1.xpr diff --git a/Installer Variants/XBHDM Build/C/installer/skins/Softmod/skin.xml b/Installer Variants/XBHDM Build/C/installer/skins/Softmod/skin.xml index d0f1871..862755e 100644 --- a/Installer Variants/XBHDM Build/C/installer/skins/Softmod/skin.xml +++ b/Installer Variants/XBHDM Build/C/installer/skins/Softmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 ..\skin files\fonts\font1.xpr diff --git a/Other/Build Version.txt b/Other/Build Version.txt index 6651bda..b0d335b 100644 --- a/Other/Build Version.txt +++ b/Other/Build Version.txt @@ -1 +1 @@ -version=1.2.1 +version=1.2.2 diff --git a/README.md b/README.md index b9eff0d..6b0961d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![Thumb](/Other/Graphics/banner.png) -## Current release v1.2.1 +## Current release v1.2.2 ## Background: diff --git a/Save Folder/nkpatcher settings/modules/resoftmod dash/skins/ReSoftmod Dash/skin.xml b/Save Folder/nkpatcher settings/modules/resoftmod dash/skins/ReSoftmod Dash/skin.xml index 4bb0869..915bd1b 100644 --- a/Save Folder/nkpatcher settings/modules/resoftmod dash/skins/ReSoftmod Dash/skin.xml +++ b/Save Folder/nkpatcher settings/modules/resoftmod dash/skins/ReSoftmod Dash/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 E:\UDATA\21585554\000000000000\softmod files\skin files\fonts\font1.xpr diff --git a/Save Folder/nkpatcher settings/skins/Dashboard/skin.xml b/Save Folder/nkpatcher settings/skins/Dashboard/skin.xml index 0b3b56c..01e51e1 100644 --- a/Save Folder/nkpatcher settings/skins/Dashboard/skin.xml +++ b/Save Folder/nkpatcher settings/skins/Dashboard/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 E:\UDATA\21585554\000000000000\softmod files\skin files\fonts\font1.xpr diff --git a/Save Folder/nkpatcher settings/skins/Dashboard/skinevox.xml b/Save Folder/nkpatcher settings/skins/Dashboard/skinevox.xml index f289c93..d1982d4 100644 --- a/Save Folder/nkpatcher settings/skins/Dashboard/skinevox.xml +++ b/Save Folder/nkpatcher settings/skins/Dashboard/skinevox.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 E:\UDATA\21585554\000000000000\softmod files\skin files\fonts\font1.xpr diff --git a/Save Folder/nkpatcher settings/skins/Dashboard/skinwide.xml b/Save Folder/nkpatcher settings/skins/Dashboard/skinwide.xml index d4fe61f..4b37c0a 100644 --- a/Save Folder/nkpatcher settings/skins/Dashboard/skinwide.xml +++ b/Save Folder/nkpatcher settings/skins/Dashboard/skinwide.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 E:\UDATA\21585554\000000000000\softmod files\skin files\fonts\font1.xpr diff --git a/Save Folder/nkpatcher settings/skins/NKPatcher Settings/skin.xml b/Save Folder/nkpatcher settings/skins/NKPatcher Settings/skin.xml index 95ed2e9..f714225 100644 --- a/Save Folder/nkpatcher settings/skins/NKPatcher Settings/skin.xml +++ b/Save Folder/nkpatcher settings/skins/NKPatcher Settings/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 E:\UDATA\21585554\000000000000\softmod files\skin files\fonts\font1.xpr diff --git a/Save Folder/nkpatcher settings/skins/RescueDash_C/skin.xml b/Save Folder/nkpatcher settings/skins/RescueDash_C/skin.xml index 743aca5..6f22e80 100644 --- a/Save Folder/nkpatcher settings/skins/RescueDash_C/skin.xml +++ b/Save Folder/nkpatcher settings/skins/RescueDash_C/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 skin files\fonts\font1.xpr diff --git a/Save Folder/nkpatcher settings/skins/RescueDash_E/skin.xml b/Save Folder/nkpatcher settings/skins/RescueDash_E/skin.xml index 848cfd8..406db72 100644 --- a/Save Folder/nkpatcher settings/skins/RescueDash_E/skin.xml +++ b/Save Folder/nkpatcher settings/skins/RescueDash_E/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 E:\UDATA\21585554\000000000000\softmod files\skin files\fonts\font1.xpr diff --git a/Save Folder/softmod files/skins/Softmod/skin.xml b/Save Folder/softmod files/skins/Softmod/skin.xml index 41006dd..6631665 100644 --- a/Save Folder/softmod files/skins/Softmod/skin.xml +++ b/Save Folder/softmod files/skins/Softmod/skin.xml @@ -2,7 +2,7 @@ Rocky5 Xbox - 1.2.1 + 1.2.2 E:\UDATA\21585554\000000000000\softmod files\skin files\fonts\font1.xpr