Currently, for those with Preloader installed, Waninkoko's MenuPatcher gives a code dump. Either MenuPatcher needs to be altered, or the patch from MenuPatcher needs to be configured into the hacks.ini format.
If this could be done, then the System Menu would load every time with complete disc compatibility thanks to cIOS.
Here is the current code from MenuPatcher which tells the System Menu to reloadIOS...
Patches are done differently than in Preloader. Waninkoko searches first for a value, and then if it is found, a different set of values are put in its place. In order to write a hacks.ini compatible code, the oldcode[] array values need to be found in the System Menu, and then the offsets located. Once they are found, the values of newcode[] can be replaced.
If this could be done, then the System Menu would load every time with complete disc compatibility thanks to cIOS.
Here is the current code from MenuPatcher which tells the System Menu to reloadIOS...
Code:
void Sysmenu_PatchIOSReload(u8 *dol, u32 len)
{
ÂÂÂÂconst u8 oldcode[] = { 0x7F, 0x06, 0xC3, 0x78, 0x7F, 0x25, 0xCB, 0x78, 0x38, 0x7E, 0x02, 0xC0, 0x4C, 0xC6, 0x31, 0x82 };
ÂÂÂÂconst u8 newcode[] = { 0x3B, 0x20, 0x00, 0x01, 0x3B, 0x00, 0x00, 0xF9, 0x38, 0x7E, 0x02, 0xC0, 0x4C, 0xC6, 0x31, 0x82 };
ÂÂÂÂ/* Patch IOS reload */
ÂÂÂÂ__Sysmenu_PatchApply(dol, len, oldcode, newcode, sizeof(oldcode));
}
Patches are done differently than in Preloader. Waninkoko searches first for a value, and then if it is found, a different set of values are put in its place. In order to write a hacks.ini compatible code, the oldcode[] array values need to be found in the System Menu, and then the offsets located. Once they are found, the values of newcode[] can be replaced.