All pastes #592842 Raw Edit

Someone

public text v1 · immutable
#592842 ·published 2007-06-27 23:20 UTC
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