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

31 lines
442 B
ArmAsm

.include "global.s"
;; BANKED: checked, imperfect
.area _BASE
;; Set sprite number C to tile D
.set_sprite_tile::
LD HL,#.OAM+2 ; Calculate origin of sprite info
SLA C ; Multiply C by 4
SLA C
LD B,#0x00
ADD HL,BC
LD A,D ; Set sprite number
LD (HL),A
RET
_set_sprite_tile::
PUSH BC
LDA HL,4(SP) ; Skip return address and registers
LD C,(HL) ; C = nb
INC HL
LD D,(HL) ; D = tile
CALL .set_sprite_tile
POP BC
RET