I don't see a problem with your implementation, so I have to ask a few questions (some may be silly, but if I don't ask then I can't be sure). Can you connect to your access point with other homebrew? The auto connect function you are using assumes you have the wifi information stored in the firmware from a retail game, is this true for you and if so can you connect with retail games? Have you tried using a different access point? If your answer to these is yes, then have you initialized your IRQ's properly as demonstrated in the wifi example? Like so: int wifi_connect(){
// send fifo message to initialize the arm7 wifi
REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_SEND_CLEAR; // enable & clear FIFO
u32 Wifi_pass= Wifi_Init(WIFIINIT_OPTION_USELED);
REG_IPC_FIFO_TX=0x12345678;
REG_IPC_FIFO_TX=Wifi_pass;
*((volatile u16 *)0x0400010E) = 0; // disable timer3
//irqInit();
irqSet(IRQ_TIMER3, Timer_50ms); // setup timer IRQ
irqEnable(IRQ_TIMER3);
irqSet(IRQ_FIFO_NOT_EMPTY, arm9_fifo); // setup fifo IRQ
irqEnable(IRQ_FIFO_NOT_EMPTY);
REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_RECV_IRQ; // enable FIFO IRQ
Wifi_SetSyncHandler(arm9_synctoarm7); // tell wifi lib to use our handler to notify arm7
// set timer3
*((volatile u16 *)0x0400010C) = -6553; // 6553.1 * 256 cycles = ~50ms;
*((volatile u16 *)0x0400010E) = 0x00C2; // enable, irq, 1/256 clock
while(Wifi_CheckInit()==0) { // wait for arm7 to be initted successfully
while(VCOUNT>192); // wait for vblank
while(VCOUNT<192);
}
// simple WFC connect:
int i;
Wifi_AutoConnect(); // request connect
while(1) {
i=Wifi_AssocStatus(); // check status
if(i==ASSOCSTATUS_ASSOCIATED) {
break;
}
if(i==ASSOCSTATUS_CANNOTCONNECT) {
iprintf("Could not connect!\n");
return 0;
break;
}
}
return 1;
}