gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/libc/targets/sm83/metasprites.s
1 .include "global.s"
2
3 .title "Metasprites"
4 .module Metasprites
5
6 .area _DATA
7
8 ___current_metasprite::
9 .ds 0x02
10 ___current_base_tile::
11 .ds 0x01
12 ___current_base_prop::
13 .ds 0x01
14
15 .area _INITIALIZED
16 ___render_shadow_OAM::
17 .ds 0x01
18
19 .area _INITIALIZER
20 .db #>_shadow_OAM
21
22 .area _CODE
23
24 ; uint8_t __move_metasprite(uint8_t id, uint16_t yx)
25 ; a: id
26 ; de: yx
27
28 ___move_metasprite::
29 cp #40
30 jr nc, .sprite_limit
31
32 push af
33 add a
34 add a
35 ld c, a
36
37 ld hl, #___current_metasprite
38 ld a, (hl+)
39 ld h, (hl)
40 ld l, a
41
42 ld a, (___render_shadow_OAM)
43 ld b, a
44 1$:
45 ld a, (hl+) ; dy
46 cp #0x80
47 jr z, 2$
48 add d
49 ld d, a
50 ld (bc), a
51 inc c
52
53 ld a, (hl+) ; dx
54 add e
55 ld e, a
56 ld (bc), a
57 inc c
58
59 ld a, (___current_base_tile)
60 add (hl) ; tile
61 inc hl
62 ld (bc), a
63 inc c
64
65 ld a, (___current_base_prop)
66 add (hl) ; props
67 inc hl
68 ld (bc), a
69 inc c
70
71 ld a, c
72 cp #160
73 jr c, 1$
74 2$:
75 ld a, c
76 rrca
77 rrca
78 pop de
79 sub d
80
81 ret
82 .sprite_limit:
83 xor a
84 ret
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.