gbdk-releases/gbdk-lib/libc/gb/mv_spr.s
2015-01-10 16:25:08 +01:00

35 lines
458 B
ArmAsm

.include "global.s"
;; BANKED: checked
.area _BASE
;; Move sprite number C at XY = DE
.mv_sprite::
LD HL,#.OAM ; Calculate origin of sprite info
SLA C ; Multiply C by 4
SLA C
LD B,#0x00
ADD HL,BC
LD A,E ; Set Y
LD (HL+),A
LD A,D ; Set X
LD (HL+),A
RET
_move_sprite::
PUSH BC
LDA HL,4(SP) ; Skip return address and registers
LD C,(HL) ; C = nb
INC HL
LD D,(HL) ; D = x
INC HL
LD E,(HL) ; E = y
CALL .mv_sprite
POP BC
RET