summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/lib/include/FS_overlay.h1
-rw-r--r--arm9/src/poke_overlay.c53
2 files changed, 42 insertions, 12 deletions
diff --git a/arm9/lib/include/FS_overlay.h b/arm9/lib/include/FS_overlay.h
index 967169aa..c2634509 100644
--- a/arm9/lib/include/FS_overlay.h
+++ b/arm9/lib/include/FS_overlay.h
@@ -36,7 +36,6 @@ BOOL FS_UnloadOverlay(MIProcessor target, FSOverlayID id);
BOOL FS_LoadOverlayImage(FSOverlayInfo *p_ovi);
void FS_StartOverlay(FSOverlayInfo *p_ovi);
BOOL FS_LoadOverlayImageAsync(FSOverlayInfo *p_ovi, FSFile *p_file);
-void FS_WaitAsync(FSFile *p_file);
void FS_CloseFile(FSFile *p_file);
#endif //NITRO_FS_OVERLAY_H_
diff --git a/arm9/src/poke_overlay.c b/arm9/src/poke_overlay.c
index 105881d8..9a81ea83 100644
--- a/arm9/src/poke_overlay.c
+++ b/arm9/src/poke_overlay.c
@@ -188,16 +188,47 @@ THUMB_FUNC BOOL LoadOverlayNoInit(MIProcessor target, FSOverlayID id)
return TRUE;
}
-THUMB_FUNC BOOL LoadOverlayNoInitAsync(MIProcessor target, FSOverlayID id)
+//THUMB_FUNC BOOL LoadOverlayNoInitAsync(MIProcessor target, FSOverlayID id)
+//{
+// FSOverlayInfo info;
+// FSFile file;
+// if (!FS_LoadOverlayInfo(&info, target, id))
+// return FALSE;
+// FS_InitFile(&file);
+// FS_LoadOverlayImageAsync(&info, &file);
+// FS_WaitAsync(&file);
+// FS_CloseFile(&file);
+// FS_StartOverlay(&info);
+// return TRUE;
+//}
+
+THUMB_FUNC asm BOOL LoadOverlayNoInitAsync(MIProcessor target, FSOverlayID id)
{
- FSOverlayInfo info;
- FSFile file;
- if (!FS_LoadOverlayInfo(&info, target, id))
- return FALSE;
- FS_InitFile(&file);
- FS_LoadOverlayImageAsync(&info, &file);
- FS_WaitAsync(&file);
- FS_CloseFile(&file);
- FS_StartOverlay(&info);
- return TRUE;
+ push {lr}
+ sub sp, #0x74
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ add r0, sp, #0x0
+ add r1, r3, #0x0
+ bl FS_LoadOverlayInfo
+ cmp r0, #0x0
+ bne _020061C2
+ add sp, #0x74
+ mov r0, #0x0
+ pop {pc}
+_020061C2:
+ add r0, sp, #0x2c
+ bl FS_InitFile
+ add r0, sp, #0x0
+ add r1, sp, #0x2c
+ bl FS_LoadOverlayImageAsync
+ add r0, sp, #0x2c
+ bl FS_WaitAsync
+ add r0, sp, #0x2c
+ bl FS_CloseFile
+ add r0, sp, #0x0
+ bl FS_StartOverlay
+ mov r0, #0x1
+ add sp, #0x74
+ pop {pc}
}