The DIP module from waninkoko causes some games to crash, because of the following line:
Code:
unsigned char *dvdbuf = (unsigned char *)0x133FF800; /* HACK: Ugly.... very ugly... */
This address is also used by IOS IPC. So a game can crash if IOS IPC and the DIP module uses the same address. This happens when the second race of Mario Kart is loaded.
When you don't replace the DIP module completely, you don't have a free memory address for use. DMA is only possible in the shared memory area. The problem is you can't transfer it directly to the target memory address, because the size must be a multiple of 0x800. So you could overwrite something. Also you can only specify offsets which are aligned to 0x800. The command for reading normal games doesn't have these restrictions.
So the result is, that you need to replace the DIP module completely or patch it and reuse the DIP cache.
We need to find a address which is smaller than 0x133FF800 which is only used once. Maybe we can make the IOS heap smaller.
Note: You can't use the old backup launcher, because there is no "/dev/do" device. There is just the normal "/dev/di" device.