2021-04-07 20:32:18 -04:00
|
|
|
#include <stdio.h>
|
2021-04-07 20:42:30 -04:00
|
|
|
#include <stdlib.h>
|
2021-04-07 20:32:18 -04:00
|
|
|
|
|
|
|
/*
|
|
|
|
Copyright (c) 2021 Devine Lu Linvega
|
2021-04-10 12:32:14 -04:00
|
|
|
Copyright (c) 2021 Andrew Alderwick
|
2021-04-07 20:32:18 -04:00
|
|
|
|
|
|
|
Permission to use, copy, modify, and distribute this software for any
|
|
|
|
purpose with or without fee is hereby granted, provided that the above
|
|
|
|
copyright notice and this permission notice appear in all copies.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
WITH REGARD TO THIS SOFTWARE.
|
|
|
|
*/
|
|
|
|
|
2021-09-20 17:32:42 -04:00
|
|
|
/* pixels per word in ppu.dat */
|
|
|
|
|
|
|
|
#define PPW (sizeof(unsigned int) * 2)
|
|
|
|
|
2021-04-07 20:32:18 -04:00
|
|
|
typedef unsigned char Uint8;
|
|
|
|
typedef unsigned short Uint16;
|
|
|
|
typedef unsigned int Uint32;
|
|
|
|
|
|
|
|
typedef struct Ppu {
|
2021-09-29 19:14:13 -04:00
|
|
|
Uint8 reqdraw;
|
2021-08-01 14:38:04 -04:00
|
|
|
Uint16 width, height;
|
2021-09-29 19:14:13 -04:00
|
|
|
unsigned int i0, i1, *dat, stride;
|
2021-04-07 20:32:18 -04:00
|
|
|
} Ppu;
|
|
|
|
|
2021-09-29 19:01:54 -04:00
|
|
|
Uint8 ppu_read(Ppu *p, Uint16 x, Uint16 y);
|
|
|
|
void ppu_write(Ppu *p, int fg, Uint16 x, Uint16 y, Uint8 color);
|
2021-09-21 13:39:00 -04:00
|
|
|
void ppu_frame(Ppu *p);
|
|
|
|
void ppu_1bpp(Ppu *p, int fg, Uint16 x, Uint16 y, Uint8 *sprite, Uint8 color, Uint8 flipx, Uint8 flipy);
|
|
|
|
void ppu_2bpp(Ppu *p, int fg, Uint16 x, Uint16 y, Uint8 *sprite, Uint8 color, Uint8 flipx, Uint8 flipy);
|
2021-09-29 19:01:54 -04:00
|
|
|
int ppu_set_size(Ppu *p, Uint16 width, Uint16 height);
|