mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-08 09:05:59 -05:00
split file_system.s
This commit is contained in:
1465
asm/code_8006218.s
1465
asm/code_8006218.s
File diff suppressed because it is too large
Load Diff
1194
asm/code_800AAA0.s
Normal file
1194
asm/code_800AAA0.s
Normal file
File diff suppressed because it is too large
Load Diff
287
asm/file_system.s
Normal file
287
asm/file_system.s
Normal file
@@ -0,0 +1,287 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start InitFileSystem
|
||||
InitFileSystem:
|
||||
push {r4,lr}
|
||||
ldr r3, _0800A8EC
|
||||
ldr r4, _0800A8F0
|
||||
movs r2, 0
|
||||
ldr r0, _0800A8F4
|
||||
movs r1, 0x3F
|
||||
_0800A8D0:
|
||||
str r2, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
adds r0, 0x8
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bge _0800A8D0
|
||||
movs r0, 0
|
||||
str r0, [r3]
|
||||
movs r0, 0x1
|
||||
str r0, [r4]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800A8EC: .4byte gUnknown_203B094
|
||||
_0800A8F0: .4byte gUnknown_202D2A4
|
||||
_0800A8F4: .4byte gUnknown_202D2A8
|
||||
thumb_func_end InitFileSystem
|
||||
|
||||
thumb_func_start sub_800A8F8
|
||||
sub_800A8F8:
|
||||
ldr r1, _0800A904
|
||||
ldr r2, [r1]
|
||||
str r0, [r1]
|
||||
adds r0, r2, 0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0800A904: .4byte gUnknown_202D2A4
|
||||
thumb_func_end sub_800A8F8
|
||||
|
||||
thumb_func_start OpenFile
|
||||
OpenFile:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x12C
|
||||
mov r8, r0
|
||||
adds r4, r1, 0
|
||||
ldr r1, _0800A93C
|
||||
adds r0, r4, 0
|
||||
bl strcmp
|
||||
cmp r0, 0
|
||||
beq _0800A922
|
||||
movs r0, 0x1
|
||||
_0800A922:
|
||||
movs r1, 0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0800A92C
|
||||
movs r1, 0x1
|
||||
_0800A92C:
|
||||
cmp r1, 0
|
||||
beq _0800A9B6
|
||||
ldr r7, [r4, 0xC]
|
||||
movs r6, 0
|
||||
ldr r0, [r4, 0x8]
|
||||
subs r5, r0, 0x1
|
||||
b _0800A94A
|
||||
.align 2, 0
|
||||
_0800A93C: .4byte gUnknown_80B9B94
|
||||
_0800A940:
|
||||
cmp r0, 0
|
||||
bge _0800A948
|
||||
adds r6, r4, 0x1
|
||||
b _0800A94A
|
||||
_0800A948:
|
||||
adds r5, r4, 0
|
||||
_0800A94A:
|
||||
cmp r6, r5
|
||||
bge _0800A968
|
||||
adds r0, r6, r5
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r4, r0, 1
|
||||
lsls r0, r4, 3
|
||||
adds r0, r7
|
||||
ldr r0, [r0]
|
||||
mov r1, r8
|
||||
bl strcmp
|
||||
cmp r0, 0
|
||||
bne _0800A940
|
||||
adds r6, r4, 0
|
||||
_0800A968:
|
||||
lsls r0, r6, 3
|
||||
adds r6, r7, r0
|
||||
ldr r0, [r6]
|
||||
mov r1, r8
|
||||
bl strcmp
|
||||
cmp r0, 0
|
||||
beq _0800A994
|
||||
ldr r1, _0800A984
|
||||
mov r0, sp
|
||||
mov r2, r8
|
||||
bl sprintf
|
||||
b _0800A9B6
|
||||
.align 2, 0
|
||||
_0800A984: .4byte gUnknown_80B9B9C
|
||||
_0800A988:
|
||||
str r6, [r2]
|
||||
adds r0, r7, 0x4
|
||||
adds r0, r3, r0
|
||||
str r1, [r0]
|
||||
adds r0, r2, 0
|
||||
b _0800A9B8
|
||||
_0800A994:
|
||||
ldr r0, _0800A9C4
|
||||
ldr r0, [r0]
|
||||
movs r4, 0
|
||||
ldr r5, _0800A9C8
|
||||
adds r7, r5, 0
|
||||
_0800A99E:
|
||||
adds r0, 0x1
|
||||
cmp r0, 0x3F
|
||||
ble _0800A9A6
|
||||
movs r0, 0
|
||||
_0800A9A6:
|
||||
lsls r3, r0, 3
|
||||
adds r2, r3, r5
|
||||
ldr r1, [r2]
|
||||
cmp r1, 0
|
||||
beq _0800A988
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x3F
|
||||
ble _0800A99E
|
||||
_0800A9B6:
|
||||
movs r0, 0
|
||||
_0800A9B8:
|
||||
add sp, 0x12C
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0800A9C4: .4byte gUnknown_203B094
|
||||
_0800A9C8: .4byte gUnknown_202D2A8
|
||||
thumb_func_end OpenFile
|
||||
|
||||
thumb_func_start GetFileDataPtrFromFileEntry
|
||||
GetFileDataPtrFromFileEntry:
|
||||
ldr r1, [r0]
|
||||
ldr r1, [r1, 0x4]
|
||||
str r1, [r0, 0x4]
|
||||
adds r0, r1, 0
|
||||
bx lr
|
||||
thumb_func_end GetFileDataPtrFromFileEntry
|
||||
|
||||
thumb_func_start GetFileDataPtr
|
||||
GetFileDataPtr:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl GetFileDataPtrFromFileEntry
|
||||
adds r0, r4, 0
|
||||
bl GetSiroPtr
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end GetFileDataPtr
|
||||
|
||||
thumb_func_start OpenFileAndGetFileDataPtr
|
||||
OpenFileAndGetFileDataPtr:
|
||||
push {r4,lr}
|
||||
bl OpenFile
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
beq _0800A9FE
|
||||
movs r1, 0
|
||||
bl GetFileDataPtr
|
||||
_0800A9FE:
|
||||
adds r0, r4, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end OpenFileAndGetFileDataPtr
|
||||
|
||||
thumb_func_start Call_OpenFileAndGetFileDataPtr
|
||||
Call_OpenFileAndGetFileDataPtr:
|
||||
push {lr}
|
||||
bl OpenFileAndGetFileDataPtr
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end Call_OpenFileAndGetFileDataPtr
|
||||
|
||||
thumb_func_start CloseFile
|
||||
CloseFile:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0
|
||||
ldr r0, _0800AA30
|
||||
movs r3, 0
|
||||
ldr r5, _0800AA34
|
||||
adds r2, r0, 0x4
|
||||
_0800AA22:
|
||||
cmp r0, r4
|
||||
bne _0800AA38
|
||||
str r3, [r0]
|
||||
str r3, [r2]
|
||||
str r1, [r5]
|
||||
b _0800AA42
|
||||
.align 2, 0
|
||||
_0800AA30: .4byte gUnknown_202D2A8
|
||||
_0800AA34: .4byte gUnknown_203B094
|
||||
_0800AA38:
|
||||
adds r2, 0x8
|
||||
adds r0, 0x8
|
||||
adds r1, 0x1
|
||||
cmp r1, 0x3F
|
||||
ble _0800AA22
|
||||
_0800AA42:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CloseFile
|
||||
|
||||
thumb_func_start GetSiroPtr
|
||||
GetSiroPtr:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, [r5, 0x4]
|
||||
ldr r1, [r4]
|
||||
ldr r0, _0800AA60
|
||||
cmp r1, r0
|
||||
beq _0800AA68
|
||||
ldr r0, _0800AA64
|
||||
cmp r1, r0
|
||||
beq _0800AA6E
|
||||
adds r0, r4, 0
|
||||
b _0800AA72
|
||||
.align 2, 0
|
||||
_0800AA60: .4byte 0x30524953
|
||||
_0800AA64: .4byte 0x4f524953
|
||||
_0800AA68:
|
||||
adds r0, r4, 0
|
||||
bl NDS_DecompressRLE
|
||||
_0800AA6E:
|
||||
ldr r0, [r4, 0x4]
|
||||
str r0, [r5, 0x4]
|
||||
_0800AA72:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end GetSiroPtr
|
||||
|
||||
thumb_func_start UnusedGetSir0Ptr
|
||||
UnusedGetSir0Ptr:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r1, [r4]
|
||||
ldr r0, _0800AA90
|
||||
cmp r1, r0
|
||||
bne _0800AA94
|
||||
adds r0, r4, 0
|
||||
bl NDS_DecompressRLE
|
||||
ldr r0, [r4, 0x4]
|
||||
b _0800AA96
|
||||
.align 2, 0
|
||||
_0800AA90: .4byte 0x30524953
|
||||
_0800AA94:
|
||||
adds r0, r4, 0
|
||||
_0800AA96:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end UnusedGetSir0Ptr
|
||||
|
||||
thumb_func_start NDS_DecompressRLE
|
||||
NDS_DecompressRLE:
|
||||
bx lr
|
||||
thumb_func_end NDS_DecompressRLE
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
@@ -43,6 +43,8 @@ SECTIONS {
|
||||
asm/code_80047E8.o(.text);
|
||||
src/random.o(.text);
|
||||
asm/code_8006218.o(.text);
|
||||
asm/file_system.o(.text);
|
||||
asm/code_800AAA0.o(.text);
|
||||
src/main.o(.text);
|
||||
asm/code_800B540.o(.text);
|
||||
asm/m4a.o(.text);
|
||||
|
||||
Reference in New Issue
Block a user