Add tools/ and manual/, move sources to src/
[dpadhero2.git] / src / common / sprite.h
blob74d81674769cd5604d4aab177524e4ea574a60d7
2 ; Copyright (C) 2004, 2005 Kent Hansen.
4 ; This file is part of Neotoxin.
6 ; Neotoxin is free software; you can redistribute it and/or modify
7 ; it under the terms of the GNU General Public License as published by
8 ; the Free Software Foundation; either version 2 of the License, or
9 ; (at your option) any later version.
11 ; Neotoxin is distributed in the hope that it will be useful,
12 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ; GNU General Public License for more details.
16 ; You should have received a copy of the GNU General Public License
17 ; along with this program; if not, write to the Free Software
18 ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 .ifndef SPRITE_H
22 .define SPRITE_H
24 ; Hardware regs.
25 SPRITE_ADDR_REG .equ $2003
26 SPRITE_IO_REG .equ $2004
27 SPRITE_DMA_REG .equ $4014
29 ; Record that describes a sprite's attributes.
30 .record sprite_attribs v_flip:1, h_flip:1, pri:1, pad0:3, pal:2
32 SPRITE_ATTR_V_FLIP .equ mask sprite_attribs::v_flip
33 SPRITE_ATTR_H_FLIP .equ mask sprite_attribs::h_flip
34 SPRITE_ATTR_PRI .equ mask sprite_attribs::pri
35 SPRITE_ATTR_PAL .equ mask sprite_attribs::pal
37 ; Structure that describes a sprite.
38 ; The field order is such that it can be DMA'ed directly to sprite RAM.
39 .struc sprite_state
40 _y .byte
41 tile .byte
42 attr .sprite_attribs
43 _x .byte
44 .ends
46 SPRITE_INDEX_INCR .equ 15*4
47 SPRITE_BASE_INCR .equ 17*4
49 ; Exported symbols.
50 .extrn reset_sprites:proc
51 .extrn next_sprite_index:proc
53 .extrn sprites:sprite_state
54 .extrn sprite_index:byte
56 .endif ; !SPRITE_H