diff options
-rw-r--r-- | arm9/lib/include/FS_overlay.h | 1 | ||||
-rw-r--r-- | arm9/src/poke_overlay.c | 53 |
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} } |