diff --git a/dkarm-eabi/crtls/ds_arm9_crt0.s b/dkarm-eabi/crtls/ds_arm9_crt0.s index 0649c10..1a0903b 100644 --- a/dkarm-eabi/crtls/ds_arm9_crt0.s +++ b/dkarm-eabi/crtls/ds_arm9_crt0.s @@ -103,7 +103,12 @@ _start: ldr r9, =__dsimode @ set DSi mode flag strb r11, [r9] - ldr r1, =__arm9i_lma @ Copy TWL area (arm9i section) from LMA to VMA + @ Copy TWL area (arm9i section) from LMA to VMA + + adr r0, arm9ilma @ Calculate ARM9i LMA + ldr r1, [r0] + add r1, r1, r0 + ldr r2, =__arm9i_start__ cmp r1, r2 @ skip copy if LMA=VMA ldrne r4, =__arm9i_end__ @@ -145,6 +150,10 @@ NotTWL: ldr lr, =__libnds_exit bx r3 @ jump to user code +@--------------------------------------------------------------------------------- +arm9ilma: + .word __arm9i_lma__ - . + @--------------------------------------------------------------------------------- @ check for a commandline @---------------------------------------------------------------------------------