davebaol said:Sakura Wars works good with gx on a wbfs pen drive.
However both NeoGamma and Mighty Loader show the message "An error has occurred..."
Same cios, same pen drive, same iso, same all.... only the loaders are different... but it still could be a cios issue.
davebaol said:I believe it's a DIP module issue.
From usbgecko output I can see the error "RawDiskRead failed, rc=40960" coming from the original DI module.
I suspect DIP module doesn't emulate correctly some stuff for DI.
Later I'll investigate.
PS:
Mload module is crucial.
It can't be disabled because all other custom modules apply the patches on the fly through mload.
ÂÂÂÂ/* Check WOD magic word */
ÂÂÂÂif (outbuf[6] == WOD_MAGIC) {
ÂÂÂÂÂÂÂÂextern u8 *dip_readctrl;
ÂÂÂÂÂÂÂÂ/* Set read control */
ÂÂÂÂÂÂÂÂdip_readctrl[0] = 1;
ÂÂÂÂÂÂÂÂ/* Read hash */
ÂÂÂÂÂÂÂÂif (!dip_readctrl[1])
ÂÂÂÂÂÂÂÂÂÂÂÂret = DI_ReadHash();
ÂÂÂÂÂÂÂÂ/* Check disc type */
ÂÂÂÂÂÂÂÂif (!ret)
ÂÂÂÂÂÂÂÂÂÂÂÂ__DI_CheckDisc();
ÂÂÂÂ}
ÂÂÂÂelse {
ÂÂÂÂÂÂÂÂ/* Assume single layer disc */
ÂÂÂÂÂÂÂÂconfig.type = DISC_DVD5;
ÂÂÂÂ}
ÂÂÂÂ/* Check WOD magic word */
ÂÂÂÂif (outbuf[6] == WOD_MAGIC) {
ÂÂÂÂÂÂÂÂ.....
ÂÂÂÂÂÂÂÂ/* Check disc type */
ÂÂÂÂÂÂÂÂif (!ret)
ÂÂÂÂÂÂÂÂÂÂÂÂ__DI_CheckDisc();
ÂÂÂÂ}
ÂÂÂÂelse if (outbuf[7] == 0xc2339f3d) {
ÂÂÂÂÂÂÂÂconfig.type = DISC_DVD9;
ÂÂÂÂ}
ÂÂÂÂelse {
ÂÂÂÂÂÂÂÂ__DI_CheckDisc();
ÂÂÂÂ}
XFlak said:AFAIK forwarder ISOs always required a hermes cIOS to load properly
just change it to use cIOS222 to load forwarder ISOs, it's a simple solution, but if it's even on davebaol to do list it's bound to be near the bottom of it for sure
One quick question did you do anything with the nand emulation on this last v5alpha1 version (and v4 final). The game Dr Mario can now only be played once then you have to remove the save if you want to play it again, otherwise you get an "The Wii System Memory Has Been Corrupt.." message. This game has always worked before..davebaol said:@WiiPower
Ok, so can you make this mod and test it for audio streaming?
In the meantime I start investigating Sakura issue.
ÂÂÂÂ/** Read disc ID **/
ÂÂÂÂcase IOCTL_DI_READID: {
ÂÂÂÂÂÂÂÂu32 offset = (config.offset[0] | config.offset[1]);
ÂÂÂÂÂÂÂÂ/* Read disc ID */
ÂÂÂÂÂÂÂÂif (!DI_ChkMode(MODE_FILE | MODE_WBFS)) {
ÂÂÂÂÂÂÂÂÂÂÂÂ/* Call command */
ÂÂÂÂÂÂÂÂÂÂÂÂret = DI_HandleCmd(inbuf, outbuf, size);
ÂÂÂÂÂÂÂÂÂÂÂÂ/* Set DVD mode */
ÂÂÂÂÂÂÂÂÂÂÂÂif (ret)
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂDI_SetMode(MODE_DVDROM);
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂ/* Manual read */
ÂÂÂÂÂÂÂÂif (DI_ChkMode(MODE_DVDROM | MODE_FILE | MODE_WBFS) || offset)
ÂÂÂÂÂÂÂÂÂÂÂÂret = __DI_ReadDiscId(outbuf, size);
ÂÂÂÂÂÂÂÂ/* Check disc type */
ÂÂÂÂÂÂÂÂif (!ret)
ÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂif (outbuf[7] == 0xc2339f3d)
ÂÂÂÂÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ// For gamecube games it's not required to know the disc type, but DL access has to be possible for GC DL multi game discs
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ// If there was a read executed here for GC games, IOCTL_DI_AUDIO_CONFIG would fail(->audio streaming error)
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂconfig.type = DISC_DVD9;
ÂÂÂÂÂÂÂÂÂÂÂÂ} else
ÂÂÂÂÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ__DI_CheckDisc();
ÂÂÂÂÂÂÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂbreak;
ÂÂÂÂ}
ÂÂÂÂ/* Read second layer */
ÂÂÂÂret = __DI_ReadUnencrypted(buffer, SECTOR_SIZE, 0x50000000);
davebaol said:Ok, now I know what's the issue for Sakura Wars.
The cios believes it's a single layer disc while it's actually a dual layer.
It means this instruction doesn't detect correctly all possible dl discs.
Does anybody know an offset able to to detect dl discs more accurately than 0x50000000 ?Code:ÂÂÂÂ/* Read second layer */ ÂÂÂÂret = __DI_ReadUnencrypted(buffer, SECTOR_SIZE, 0x50000000);
davebaol said:IIRC it's about 6GB.
Already tested offset 0x46888000 (that is DVD5_LENGTH + MAX_SECTOR_SIZE) but the disc is still detected as sl.
I'm going to try 46090200.