rendered paste body//---------------------------------------------------------------------------------
void MoveSprite(Sprite* sp) {
//---------------------------------------------------------------------------------
int x = sp->x >> 8;
int y = sp->y >> 8;
sp->oam->attribute[1] &= 0xFE00;
sp->oam->attribute[1] |= (x & 0x01FF);
sp->oam->attribute[0] &= 0xFF00;
sp->oam->attribute[0] |= (y & 0x00FF);
}
.global MoveSprite
.code 16
.thumb_func
.type MoveSprite, %function
MoveSprite:
.LFB103:
.file 3 "d:/projects/devkitPro/examples/nds/Graphics/2D/Complex_2D/source/main.cpp"
.loc 3 32 0
push {r7, lr}
.LCFI9:
sub sp, sp, #16
.LCFI10:
add r7, sp, #0
.LCFI11:
add r3, r7, #4
str r0, [r3]
.LBB2:
.loc 3 34 0
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3]
mov r2, r7
add r2, r2, #8
asr r3, r3, #8
str r3, [r2]
.loc 3 35 0
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3, #4]
mov r2, r7
add r2, r2, #12
asr r3, r3, #8
str r3, [r2]
.loc 3 37 0
add r3, r7, #4
ldr r3, [r3]
ldr r1, [r3, #16]
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3, #16]
ldrh r3, [r3, #2]
mov r2, r3
mov r3, #254
lsl r3, r3, #8
and r2, r2, r3
add r3, r2, #0
strh r3, [r1, #2]
.loc 3 38 0
add r3, r7, #4
ldr r3, [r3]
ldr r1, [r3, #16]
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3, #16]
ldrh r3, [r3, #2]
mov r2, r3
mov r3, r7
add r3, r3, #8
ldr r3, [r3]
lsl r3, r3, #16
lsr r3, r3, #16
lsl r3, r3, #16
lsr r3, r3, #16
str r3, [r7]
ldr r0, [r7]
lsl r3, r0, #23
lsr r3, r3, #23
str r3, [r7]
ldr r0, [r7]
add r3, r0, #0
orr r3, r3, r2
lsl r3, r3, #16
lsr r3, r3, #16
lsl r3, r3, #16
lsr r3, r3, #16
strh r3, [r1, #2]
.loc 3 40 0
add r3, r7, #4
ldr r3, [r3]
ldr r1, [r3, #16]
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3, #16]
ldrh r3, [r3]
mov r2, r3
mov r3, #255
lsl r3, r3, #8
and r2, r2, r3
add r3, r2, #0
strh r3, [r1]
.loc 3 41 0
add r3, r7, #4
ldr r3, [r3]
ldr r0, [r3, #16]
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3, #16]
ldrh r3, [r3]
mov r1, r3
mov r3, r7
add r3, r3, #12
ldr r3, [r3]
lsl r3, r3, #16
lsr r3, r3, #16
lsl r3, r3, #16
lsr r3, r3, #16
mov r2, #255
and r3, r3, r2
add r2, r1, #0
orr r3, r3, r2
lsl r3, r3, #16
lsr r3, r3, #16
lsl r3, r3, #16
lsr r3, r3, #16
strh r3, [r0]
.LBE2:
.loc 3 43 0
mov sp, r7
add sp, sp, #16
@ sp needed for prologue
pop {r7}
pop {r0}
bx r0
.LFE103:
.size MoveSprite, .-MoveSprite
//---------------------------------------------------------------------------------
void MoveSprite2(Sprite* sp) {
//---------------------------------------------------------------------------------
int x = sp->x >> 8;
int y = sp->y >> 8;
sp->oam->posX = x;
sp->oam->posY = y;
}
.align 2
.global MoveSprite2
.code 16
.thumb_func
.type MoveSprite2, %function
MoveSprite2:
.LFB104:
.loc 3 47 0
push {r7, lr}
.LCFI12:
sub sp, sp, #16
.LCFI13:
add r7, sp, #0
.LCFI14:
add r3, r7, #4
str r0, [r3]
.LBB3:
.loc 3 49 0
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3]
mov r2, r7
add r2, r2, #8
asr r3, r3, #8
str r3, [r2]
.loc 3 50 0
add r3, r7, #4
ldr r3, [r3]
ldr r3, [r3, #4]
mov r2, r7
add r2, r2, #12
asr r3, r3, #8
str r3, [r2]
.loc 3 52 0
add r3, r7, #4
ldr r3, [r3]
ldr r0, [r3, #16]
mov r3, r7
add r3, r3, #8
ldr r3, [r3]
lsl r3, r3, #16
lsr r3, r3, #16
lsl r3, r3, #23
lsr r3, r3, #23
lsl r3, r3, #23
lsr r1, r3, #23
ldrh r3, [r0, #2]
lsr r3, r3, #9
lsl r3, r3, #9
add r2, r3, #0
add r3, r1, #0
orr r3, r3, r2
strh r3, [r0, #2]
.loc 3 53 0
add r3, r7, #4
ldr r3, [r3]
ldr r2, [r3, #16]
mov r3, r7
add r3, r3, #12
ldr r3, [r3]
lsl r3, r3, #24
lsr r3, r3, #24
strb r3, [r2]
.LBE3:
.loc 3 55 0
mov sp, r7
add sp, sp, #16
@ sp needed for prologue
pop {r7}
pop {r0}
bx r0