|
- #include <stdint.h>
- #include <stdbool.h>
-
- #define VDP_VRAM_SIZE 0x4020
- #define VDP_SCREENW (32*8)
- #define VDP_SCREENH (24*8)
- // Offset of the name table
- #define VDP_NTABLE_OFFSET 0x3800
-
-
- typedef struct {
- // the last 0x20 is palette RAM
- uint8_t vram[VDP_VRAM_SIZE];
- uint8_t regs[0x10];
- uint8_t cmdlsb;
- bool has_cmdlsb;
- uint16_t curaddr;
- } VDP;
-
- void vdp_init(VDP *vdp);
- uint8_t vdp_cmd_rd(VDP *vdp);
- void vdp_cmd_wr(VDP *vdp, uint8_t val);
- uint8_t vdp_data_rd(VDP *vdp);
- void vdp_data_wr(VDP *vdp, uint8_t val);
- // result is a RGB value
- uint8_t vdp_pixel(VDP *vdp, uint16_t x, uint16_t y);
|