summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcadmic <cadmic24@gmail.com>2024-09-06 10:32:29 -0700
committerGitHub <noreply@github.com>2024-09-06 19:32:29 +0200
commitd374e71cb83cef8f4b73679ffc55e13e665ec911 (patch)
treed16262f8c11b588f07f313c164e6fd884967506a /src
parent2ce648a7c674b08fbfe9d4ced935b4e4956963ac (diff)
Fix size of leoDiskStack (#2143)
Diffstat (limited to 'src')
-rw-r--r--src/libleo/api/cacreateleomanager.c3
-rw-r--r--src/libleo/api/cjcreateleomanager.c3
-rw-r--r--src/libleo/leo/leointerrupt.c2
3 files changed, 5 insertions, 3 deletions
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;