40
40
#define ES_IOCTL_ENABLEVGA 0x63
41
41
#define ES_IOCTL_ENABLEGC2WIIMOTE 0x64
42
42
43
+ #define DIP_IOCTL_DVDLoadGame 0xF0
44
+
43
45
static char moduleSHA[0x1C ] ALIGNED(32 );
44
46
static char modulePath[1024 ] ALIGNED(32 );
45
47
#define MODULE_BUFFER_SIZE 0x1000
@@ -573,6 +575,7 @@ int loadIOSModules(void) {
573
575
DCFlushRange (modulePath, sizeof (modulePath));
574
576
575
577
FILE* fp = NULL ;
578
+
576
579
if (!memcmp ((char *)(moduleSHA+8 ), EHCI_SHA1, 0x14 )) {
577
580
fp = fopen (" /rvloader/Hiidra/IOS58/EHCI.app" , " rb" );
578
581
if (fp) {
@@ -883,7 +886,6 @@ static void* bootHiidraThread(void* arg) {
883
886
HIIDRA_CFG hcfg = *(HIIDRA_CFG*)arg;
884
887
u32 gameIDU32 = *(u32*)(arg + sizeof (HIIDRA_CFG));
885
888
886
- static char __usbfs[] ATTRIBUTE_ALIGN (32 ) = " /dev/usbfs" ;
887
889
static char __di[] ATTRIBUTE_ALIGN (32 ) = " /dev/di" ;
888
890
static char __bt[] ATTRIBUTE_ALIGN (32 ) = " /dev/usb/oh1/57e/305" ;
889
891
@@ -892,8 +894,8 @@ static void* bootHiidraThread(void* arg) {
892
894
uint8_t * kernelModule;
893
895
uint8_t * usbfsModule;
894
896
uint8_t * fspluginModule;
895
- uint8_t * modulesUSB[6 ];
896
- u32 modulesUSBSize[6 ];
897
+ uint8_t * modulesUSB[4 ];
898
+ u32 modulesUSBSize[4 ];
897
899
char * kernelAddress;
898
900
u32 totalUSBSize = 0 ;
899
901
@@ -970,15 +972,13 @@ static void* bootHiidraThread(void* arg) {
970
972
readFile (" /rvloader/Hiidra/IOS58/EHCI.app" , &modulesUSB[0 ], &modulesUSBSize[0 ]);
971
973
readFile (" /rvloader/Hiidra/IOS58/OHCI0.app" , &modulesUSB[1 ], &modulesUSBSize[1 ]);
972
974
readFile (" /rvloader/Hiidra/IOS58/USB.app" , &modulesUSB[2 ], &modulesUSBSize[2 ]);
973
- readFile (" /rvloader/Hiidra/IOS58/USB_HID.app" , &modulesUSB[3 ], &modulesUSBSize[3 ]);
974
- readFile (" /rvloader/Hiidra/IOS58/USB_HUB.app" , &modulesUSB[4 ], &modulesUSBSize[4 ]);
975
- readFile (" /rvloader/Hiidra/IOS58/USB_VEN.app" , &modulesUSB[5 ], &modulesUSBSize[5 ]);
975
+ readFile (" /rvloader/Hiidra/IOS58/USB_VEN.app" , &modulesUSB[3 ], &modulesUSBSize[3 ]);
976
976
977
977
readFile (" /rvloader/Hiidra/modules/kernel_es.elf" , &kernelModule, NULL );
978
978
readFile (" /rvloader/Hiidra/modules/usbfs.elf" , &usbfsModule, NULL );
979
979
readFile (" /rvloader/Hiidra/modules/fsplugin.elf" , &fspluginModule, NULL );
980
980
981
- for (int i = 0 ; i < 6 ; i++) {
981
+ for (int i = 0 ; i < sizeof (modulesUSBSize) / sizeof (u32) ; i++) {
982
982
totalUSBSize += modulesUSBSize[i];
983
983
}
984
984
@@ -988,8 +988,8 @@ static void* bootHiidraThread(void* arg) {
988
988
989
989
printf (" Forging custom kernel\n " );
990
990
hiidraAddLogLine (" Forging custom kernel" );
991
- const uint8_t * customModules[] = {kernelModule, modulesUSB[0 ], modulesUSB[1 ], modulesUSB[2 ], modulesUSB[3 ], modulesUSB[ 4 ], modulesUSB[ 5 ], usbfsModule, fspluginModule};
992
- forgeKernel (kernelAddress, kernelSize, customModules, 9 , 0 , 1 );
991
+ const uint8_t * customModules[] = {kernelModule, modulesUSB[0 ], modulesUSB[1 ], modulesUSB[2 ], modulesUSB[3 ], usbfsModule, fspluginModule};
992
+ forgeKernel (kernelAddress, kernelSize, customModules, sizeof (customModules) / sizeof ( uint8_t *) , 0 , 1 );
993
993
994
994
unmountFAT ();
995
995
printf (" Injecting Hiidra bootpoint\n " );
@@ -1056,7 +1056,7 @@ static void* bootHiidraThread(void* arg) {
1056
1056
s32 ret;
1057
1057
printf (" Loading disc game\n " );
1058
1058
hiidraAddLogLine (" Loading disc game" );
1059
- ret = IOS_Ioctl (fd, 0xF0 , gamePath, 0x80 , NULL , 0 );
1059
+ ret = IOS_Ioctl (fd, DIP_IOCTL_DVDLoadGame , gamePath, 0x80 , NULL , 0 );
1060
1060
if (ret == 0 ) {
1061
1061
printf (" Success\n " );
1062
1062
} else {
0 commit comments