fix for Qoob modchip users

This commit is contained in:
dborth 2008-10-21 08:09:18 +00:00
parent de7c11dd25
commit 5e024b9f70

View File

@ -43,6 +43,30 @@ extern bool ROMLoaded;
extern int emulating; extern int emulating;
int ConfigRequested = 0; int ConfigRequested = 0;
/****************************************************************************
* ipl_set_config
* lowlevel Qoob Modchip disable
***************************************************************************/
void ipl_set_config(unsigned char c)
{
volatile unsigned long* exi = (volatile unsigned long*)0xCC006800;
unsigned long val,addr;
addr=0xc0000000;
val = c << 24;
exi[0] = ((((exi[0]) & 0x405) | 256) | 48); //select IPL
//write addr of IPL
exi[0 * 5 + 4] = addr;
exi[0 * 5 + 3] = ((4 - 1) << 4) | (1 << 2) | 1;
while (exi[0 * 5 + 3] & 1);
//write the ipl we want to send
exi[0 * 5 + 4] = val;
exi[0 * 5 + 3] = ((4 - 1) << 4) | (1 << 2) | 1;
while (exi[0 * 5 + 3] & 1);
exi[0] &= 0x405; //deselect IPL
}
/**************************************************************************** /****************************************************************************
* main * main
* *
@ -50,6 +74,10 @@ int ConfigRequested = 0;
****************************************************************************/ ****************************************************************************/
int main() int main()
{ {
#ifdef HW_DOL
ipl_set_config(6); // disable Qoob modchip
#endif
#ifdef WII_DVD #ifdef WII_DVD
DI_Init(); // first DI_Init(); // first
#endif #endif