diff --git a/include/arm9/interrupt.h b/include/arm9/interrupt.h index f119352..c7c337b 100644 --- a/include/arm9/interrupt.h +++ b/include/arm9/interrupt.h @@ -58,5 +58,5 @@ { u32 tmp; __asm__ __volatile__("mrs %0, cpsr\n\t" : "=r" (tmp) : ); - __asm__ __volatile__("msr cpsr_c, %0\n\t" : : "r" (tmp | oldState)); + __asm__ __volatile__("msr cpsr_c, %0\n\t" : : "r" ((tmp & ~(0x80u)) | oldState)); } diff --git a/source/arm9/interrupt.c b/source/arm9/interrupt.c index a7f86b7..586ab44 100644 --- a/source/arm9/interrupt.c +++ b/source/arm9/interrupt.c @@ -16,7 +16,7 @@ irqHandlerTable[i] = (void (*)(void))NULL; } - leaveCriticalSection(0x80u); // Abuse it to enable IRQ + leaveCriticalSection(0u); // Abuse it to enable IRQ } void IRQ_registerHandler(Interrupt num, void (*irqHandler)(void))