diff options
| author | cadmic <cadmic24@gmail.com> | 2024-09-06 10:32:29 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-06 19:32:29 +0200 |
| commit | d374e71cb83cef8f4b73679ffc55e13e665ec911 (patch) | |
| tree | d16262f8c11b588f07f313c164e6fd884967506a | |
| parent | 2ce648a7c674b08fbfe9d4ced935b4e4956963ac (diff) | |
Fix size of leoDiskStack (#2143)
| -rw-r--r-- | include/ultra64/leodrive.h | 2 | ||||
| -rw-r--r-- | src/libleo/api/cacreateleomanager.c | 3 | ||||
| -rw-r--r-- | src/libleo/api/cjcreateleomanager.c | 3 | ||||
| -rw-r--r-- | src/libleo/leo/leointerrupt.c | 2 |
4 files changed, 6 insertions, 4 deletions
diff --git a/include/ultra64/leodrive.h b/include/ultra64/leodrive.h index cb70b9a1f..fbbbef8e0 100644 --- a/include/ultra64/leodrive.h +++ b/include/ultra64/leodrive.h @@ -187,7 +187,7 @@ extern const s32 LEORAM_BYTE[]; extern s32 __leoActive; extern LEOVersion __leoVersion; -extern STACK(leoDiskStack, 0xFF0); +extern STACK(leoDiskStack, 0x1000); extern OSPiHandle* LEOPiInfo; diff --git a/src/libleo/api/cacreateleomanager.c b/src/libleo/api/cacreateleomanager.c index 7628f5889..1f2caf6d9 100644 --- a/src/libleo/api/cacreateleomanager.c +++ b/src/libleo/api/cacreateleomanager.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ultra64/asm.h" #include "ultra64/leo.h" #include "ultra64/leoappli.h" #include "ultra64/leodrive.h" @@ -25,7 +26,7 @@ s32 LeoCACreateLeoManager(s32 comPri, s32 intPri, OSMesg* cmdBuf, s32 cmdMsgCnt) driveRomHandle = osDriveRomInit(); __leoActive = true; - __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, STACK_TOP(leoDiskStack)); + __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, (u8*)STACK_TOP(leoDiskStack) - FRAMESZ(SZREG * NARGSAVE)); leoInitialize(comPri, intPri, cmdBuf, cmdMsgCnt); if (osResetType == 1) { // NMI diff --git a/src/libleo/api/cjcreateleomanager.c b/src/libleo/api/cjcreateleomanager.c index c10e1fd26..e3a518300 100644 --- a/src/libleo/api/cjcreateleomanager.c +++ b/src/libleo/api/cjcreateleomanager.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ultra64/asm.h" #include "ultra64/leo.h" #include "ultra64/leoappli.h" #include "ultra64/leodrive.h" @@ -25,7 +26,7 @@ s32 LeoCJCreateLeoManager(s32 comPri, s32 intPri, OSMesg* cmdBuf, s32 cmdMsgCnt) driveRomHandle = osDriveRomInit(); __leoActive = true; - __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, STACK_TOP(leoDiskStack)); + __osSetHWIntrRoutine(OS_INTR_CART, __osLeoInterrupt, (u8*)STACK_TOP(leoDiskStack) - FRAMESZ(SZREG * NARGSAVE)); leoInitialize(comPri, intPri, cmdBuf, cmdMsgCnt); if (osResetType == 1) { // NMI diff --git a/src/libleo/leo/leointerrupt.c b/src/libleo/leo/leointerrupt.c index e11d34508..d9e2175ad 100644 --- a/src/libleo/leo/leointerrupt.c +++ b/src/libleo/leo/leointerrupt.c @@ -9,7 +9,7 @@ extern OSHWIntr __OSGlobalIntMask; void __osLeoAbnormalResume(void); void __osLeoResume(void); -STACK(leoDiskStack, 0xFF0); +STACK(leoDiskStack, 0x1000); s32 __osLeoInterrupt(void) { u32 stat = 0; |
