git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

gbdk-lib/libc/targets/z80/msxdos/msx_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 
     13         .area   _CODE
     14 
     15 ; uint8_t __move_metasprite(uint8_t id, uint8_t x, uint8_t y) __z88dk_callee __preserves_regs(iyh,iyl);
     16 
     17 ___move_metasprite::
     18         ld      hl, #4
     19         add     hl, sp
     20 
     21         ld      b, (hl)
     22         dec     hl
     23         ld      c, (hl)
     24         dec     hl
     25         ld      e, (hl)
     26 
     27         ld      hl, (___current_metasprite)
     28 
     29         ld      a, (___render_shadow_OAM)
     30         ld      d, a
     31 1$:
     32         ld      a, (hl)         ; dy
     33         inc     hl
     34         cp      #0x80
     35         jp      z, 2$
     36         add     b        
     37         ld      b, a
     38         cp      #0xD0
     39         jp      nz, 3$
     40         ld      a, #0xC0
     41 3$:
     42         ld      (de), a
     43         inc     e
     44 
     45         ld      a, (hl)         ; dx
     46         inc     hl
     47         add     c
     48         ld      c, a
     49         ld      (de), a
     50         inc     e
     51 
     52         ld      a, (___current_base_tile)
     53         add     (hl)            ; tile
     54         inc     hl
     55         ld      (de), a
     56         inc     e
     57 
     58         ld      a, (hl)
     59         inc     hl
     60         ld      (de), a
     61         inc     e
     62 
     63         jp      1$
     64 2$:
     65         pop     hl
     66         pop     bc
     67         inc     sp
     68         push    hl
     69         ld      a, e
     70         srl     a
     71         srl     a
     72         sub     c
     73         ld      l, a
     74         ret
     75 
     76 ___render_shadow_OAM::
     77         .db     #>_shadow_OAM

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.