diff --git a/source/arm11/main.c b/source/arm11/main.c index 49d82b8..2ced004 100644 --- a/source/arm11/main.c +++ b/source/arm11/main.c @@ -33,7 +33,8 @@ void (*entry11)(void) = (void (*)(void))REG_PXI_RECV11; // Tell ARM9 we got the entry - PXI_sendWord(PXI_RPL_FIRM_LAUNCH_READY); + while(REG_PXI_CNT11 & PXI_SEND_FIFO_FULL); + REG_PXI_SEND11 = PXI_RPL_FIRM_LAUNCH_READY; REG_PXI_CNT11 = 0; // Disable PXI entry11(); diff --git a/source/arm9/firm.c b/source/arm9/firm.c index 2dc7695..d65adc1 100644 --- a/source/arm9/firm.c +++ b/source/arm9/firm.c @@ -80,7 +80,13 @@ REG_PXI_SEND9 = (u32)entry11; // Wait for ARM11... - while(PXI_recvWord() != PXI_RPL_FIRM_LAUNCH_READY); + for(;;) + { + while(REG_PXI_CNT9 & PXI_RECV_FIFO_EMPTY); + if(REG_PXI_RECV9 == PXI_RPL_FIRM_LAUNCH_READY) + break; + } + REG_PXI_CNT9 = 0; // Disable PXI // go for it!