diff --git a/dkarm-eabi/crtls/ds_arm9.ld b/dkarm-eabi/crtls/ds_arm9.ld index 82aaa6b..67b68e0 100644 --- a/dkarm-eabi/crtls/ds_arm9.ld +++ b/dkarm-eabi/crtls/ds_arm9.ld @@ -216,7 +216,7 @@ SECTIONS .twl __end__ : AT(MAX(0x2400000,MAX(__end__,LOADADDR(.vectors)+SIZEOF(.vectors)))) { - __arm9i_lma = LOADADDR(.twl); + __arm9i_lma__ = LOADADDR(.twl); __arm9i_start__ = ABSOLUTE(.); *(.twl) *.twl*(.text .stub .text.* .gnu.linkonce.t.*) diff --git a/dkarm-eabi/crtls/ds_arm9_crt0.s b/dkarm-eabi/crtls/ds_arm9_crt0.s index 1a0903b..520d951 100644 --- a/dkarm-eabi/crtls/ds_arm9_crt0.s +++ b/dkarm-eabi/crtls/ds_arm9_crt0.s @@ -105,9 +105,9 @@ _start: @ Copy TWL area (arm9i section) from LMA to VMA - adr r0, arm9ilma @ Calculate ARM9i LMA - ldr r1, [r0] - add r1, r1, r0 + mov r11, r11 + ldr r1, =0x02ffe1c8 @ Get ARM9i LMA from header + ldr r1, [r1] ldr r2, =__arm9i_start__ cmp r1, r2 @ skip copy if LMA=VMA @@ -150,10 +150,6 @@ NotTWL: ldr lr, =__libnds_exit bx r3 @ jump to user code -@--------------------------------------------------------------------------------- -arm9ilma: - .word __arm9i_lma__ - . - @--------------------------------------------------------------------------------- @ check for a commandline @---------------------------------------------------------------------------------