Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*******************************
- | DS-Slot Based DSFS |
- | Copright 2010 (C), Aikku |
- *******************************/
- .global dsfsLoad
- /******************************/
- .text
- .align
- .arm
- /******************************/
- dsfsLoad:
- ldr r1, =dsfsFat
- mov r2, r0
- 1: ldrb r3, [r1], #0x01
- ldrb ip, [r0], #0x01
- cmp r3, #0x01
- cmppl r3, ip
- beq 1b
- add r1, r1, #0x1F
- bic r1, r1, #0x1F
- cmp r3, ip
- movne r0, r2
- bne 1b
- ldmdb r1, {r2-r3}
- stmfd sp!, {r2-r3,lr}
- mov r0, r3
- bl malloc
- cmp r0, #0x00
- ldmfd sp!, {r2-r3,lr}
- bxeq lr
- mov r1, #0x04000000
- mov ip, #0x80
- strb ip, [r1, #0x1A1]
- stmfd sp!, {r0,r2,r4}
- .LBlockLoop:
- ldr r2, [sp, #0x04]
- add ip, r2, #0x200
- str ip, [sp, #0x04]
- mov ip, #0xB7
- strb r1, [r1, #0x1AD]
- strb r1, [r1, #0x1AE]
- strb r1, [r1, #0x1AF]
- strb ip, [r1, #0x1A8]
- strb r2, [r1, #0x1AC]
- mov r2, r2, lsr #0x08
- strb r2, [r1, #0x1AB]
- mov r2, r2, lsr #0x08
- strb r2, [r1, #0x1AA]
- mov r2, r2, lsr #0x08
- strb r2, [r1, #0x1A9]
- add ip, r1, #0x100000
- mov r4, #0x200
- ldr r2, =0xA1400000
- str r2, [r1, #0x1A4]
- 1: ldr r2, [r1, #0x1A4]
- tst r2, #0x800000
- beq 1b
- ldr r2, [ip, #0x10]
- str r2, [r0], #0x04
- subs r4, r4, #0x04
- bne 1b
- subs r3, r3, #0x200
- bne .LBlockLoop
- 1: ldmfd sp!, {r0,r2,r4}
- bx lr
- .size dsfsLoad, .-dsfsLoad
- /******************************/
- .section .fat
- /******************************/
- dsfsFat:
- .byte 'd', 's', 'f', 's', 't', 'a', 'b', 0
- .space (256-1) * 32
- .size dsfsFat, .-dsfsFat
- /******************************/
Advertisement
Add Comment
Please, Sign In to add comment