OSDN Git Service

show sprite developed.
[motonesemu/motonesemu.git] / emulator / ppucore / sprite.h
1 #ifndef __sprite_h__
2 #define __sprite_h__
3
4 /*
5  * NES is little endian.
6  * low bit comes first.
7  * high bit follows.
8  * */
9 struct sprite_attr {
10     unsigned int palette    :2;
11     unsigned int unused     :3;
12     unsigned int priority   :1;
13     unsigned int flip_h     :1;
14     unsigned int flip_v     :1;
15 } __attribute__ ((packed));
16
17 struct ppu_sprite_reg {
18     unsigned char y;
19     unsigned char index;
20     struct sprite_attr sa;
21     unsigned char x;
22     unsigned int cnt        :2;
23 };
24
25 #define SPRITE_RAM_SIZE         0x100
26 #define SPRITE_CNT              (SPRITE_RAM_SIZE / 4)
27 #define SPR_RAM_ADDR_MASK       (SPRITE_RAM_SIZE - 1)
28
29 int sprite_init(void);
30 void clean_sprite(void);
31
32 #endif /*__sprite_h__*/
33