From 0c7265cf0de9d4ec95d28c5e103c00a63f4a1697 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 18 May 2021 16:40:24 +0200 Subject: Proof of concept of UXN on the GBA --- src/uxn/devices/ppu.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/uxn/devices/ppu.h (limited to 'src/uxn/devices/ppu.h') diff --git a/src/uxn/devices/ppu.h b/src/uxn/devices/ppu.h new file mode 100644 index 0000000..187d364 --- /dev/null +++ b/src/uxn/devices/ppu.h @@ -0,0 +1,36 @@ +#ifndef UXNGBA_PPU_H +#define UXNGBA_PPU_H + +#include +#include + +/* +Copyright (c) 2021 Devine Lu Linvega +Copyright (c) 2021 Andrew Alderwick + +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. +*/ + +typedef unsigned char Uint8; +typedef unsigned short Uint16; +typedef unsigned int Uint32; + +typedef struct Ppu { + Uint8 *bg, *fg; + Uint16 hor, ver, pad, width, height; + Uint16 *output, colors[4]; +} Ppu; + +int initppu(Ppu *p, Uint8 hor, Uint8 ver, Uint8 pad); +void putcolors(Ppu *p, Uint8 *addr); +void putpixel(Ppu *p, Uint8 *layer, Uint16 x, Uint16 y, Uint8 color); +void puticn(Ppu *p, Uint8 *layer, Uint16 x, Uint16 y, Uint8 *sprite, Uint8 color, Uint8 flipx, Uint8 flipy); +void putchr(Ppu *p, Uint8 *layer, Uint16 x, Uint16 y, Uint8 *sprite, Uint8 color, Uint8 flipx, Uint8 flipy); +void drawppu(Ppu *p); +void drawdebugger(Ppu *p, Uint8 *stack, Uint8 ptr); +#endif // UXNGBA_PPU_H -- cgit v1.2.1