This repository has been archived on 2022-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
Luma3DS-3GX/mset/rop3ds/DownloadCode.S
2015-08-04 21:57:37 -04:00

66 lines
1.8 KiB
ArmAsm

.arm
.text
#include "rop.h"
#ifdef ARM_CODE
#define CODE_SIZE arm_code_end-arm_code
#else
#define CODE_SIZE 0x300*15-0x460
#endif
.global _start
@---------------------------------------------------------------------------------
_start:
rop_memcpy(BUFFER_LOC+0x300*0, ROP_LOC+0x304*1, 0x300)
rop_memcpy(BUFFER_LOC+0x300*1, ROP_LOC+0x304*2, 0x300)
rop_memcpy(BUFFER_LOC+0x300*2, ROP_LOC+0x304*3, 0x300)
rop_memcpy(BUFFER_LOC+0x300*3, ROP_LOC+0x304*4, 0x300)
rop_memcpy(BUFFER_LOC+0x300*4, ROP_LOC+0x1400+0x304*0, 0x300)
rop_memcpy(BUFFER_LOC+0x300*5, ROP_LOC+0x1400+0x304*1, 0x300)
rop_memcpy(BUFFER_LOC+0x300*6, ROP_LOC+0x1400+0x304*2, 0x300)
rop_memcpy(BUFFER_LOC+0x300*7, ROP_LOC+0x1400+0x304*3, 0x300)
rop_memcpy(BUFFER_LOC+0x300*8, ROP_LOC+0x1400+0x304*4, 0x300)
rop_memcpy(BUFFER_LOC+0x300*9, ROP_LOC+0x2800+0x304*0, 0x300)
rop_memcpy(BUFFER_LOC+0x300*10, ROP_LOC+0x2800+0x304*1, 0x300)
rop_memcpy(BUFFER_LOC+0x300*11, ROP_LOC+0x2800+0x304*2, 0x300)
rop_memcpy(BUFFER_LOC+0x300*12, ROP_LOC+0x2800+0x304*3, 0x300)
rop_memcpy(BUFFER_LOC+0x300*13, ROP_LOC+0x2800+0x304*4, 0x300)
rop_fs_mount(DMC)
.fill 3, 4, POP_PC
.word POP_R0_PC
@.org 0x21C
.word MAGIC
rop_flush_data_cache(BUFFER_LOC+arm_code-0x300, CODE_SIZE)
rop_gx_texture_copy(BUFFER_LOC+arm_code-0x300, CODE_TARGET, CODE_SIZE)
rop_flush_data_cache(BUFFER_LOC, 0x38400*2)
rop_gx_texture_copy(BUFFER_LOC, 0x1F48F000, 0x38400*2)
rop_sleep(1000000000)
@ rop_sleep(1000000000)
@ rop_flush_data_cache(BUFFER_LOC, 0x38400)
@ rop_gx_texture_copy(BUFFER_LOC, 0x1F4C7800, 0x38400)
@ rop_sleep(1000000000)
rop_jump_arm
.org 0x300
.org 0x3F4
.word ROP_LOC+_start+0x8C
.org 0x428
.word ROP_LOC+_start, 0, POP_PC
.org 0x458
.word POP_PC, POP_PC
arm_code:
#ifdef ARM_CODE
#define S_(x) #x
#define S(x) S_(x)
.incbin S(ARM_CODE)
#endif
arm_code_end: