Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00024 #include <libmd/types.h>
00025
00030 #define REG_NULL 0
00031
00032
00043 #define REG0_HVCOUNTER 0x2
00044 #define REG0_BASE 0x4
00045 #define REG0_HINT 0x10
00046
00063 #define REG1_BASE 0x4
00064 #define REG1_PAL 0x8
00065 #define REG1_DMA 0x10
00066 #define REG1_VINT 0x20
00067 #define REG1_DISPLAY 0x40
00068
00073 #define REG2_PLANEA(addr) ((addr & 0xE000) >> 10)
00074
00079 #define REG3_WINDOW(addr) ((addr & 0xF800) >> 10)
00080
00085 #define REG4_PLANEB(addr) ((addr & 0xE000) >> 13)
00086
00091 #define REG5_SPRITE(addr) ((addr & 0xFE00) >> 9)
00092
00100 #define REG7_PAL(pal) ((pal & 0x3) << 4)
00101 #define REG7_COLOR(color) (color & 0xF)
00102
00122 #define REG11_HFULL 0x0
00123 #define REG11_H1CELL 0x2
00124 #define REG11_H1LINE 0x3
00125 #define REG11_VFULL 0x0
00126 #define REG11_V2CELL 0x4
00127 #define REG11_EINT 0x8
00128
00142 #define REG12_40CELL 0x81
00143 #define REG12_SHADOW 0x8
00144 #define REG12_INTERLACE 0x2
00145 #define REG12_DINTERLACE 0x6
00146
00151 #define REG13_HSCROLL(addr) ((addr & 0xFC00) >> 10)
00152
00157 #define REG15_AUTOINC(x) x
00158
00187 #define REG16_32X32 0x0
00188 #define REG16_32X64 0x10
00189 #define REG16_32X128 0x30
00190 #define REG16_64X32 0x1
00191 #define REG16_64X64 0x11
00192 #define REG16_64X128 0x31
00193 #define REG16_128X32 0x3
00194 #define REG16_128X64 0x13
00195 #define REG16_128X128 0x33
00196
00246 #define SPRITE_SIZE_8X8 (0x0 << 8)
00247 #define SPRITE_SIZE_8X16 (0x1 << 8)
00248 #define SPRITE_SIZE_8X24 (0x2 << 8)
00249 #define SPRITE_SIZE_8X32 (0x3 << 8)
00250 #define SPRITE_SIZE_16X8 (0x4 << 8)
00251 #define SPRITE_SIZE_16X16 (0x5 << 8)
00252 #define SPRITE_SIZE_16X24 (0x6 << 8)
00253 #define SPRITE_SIZE_16X32 (0x7 << 8)
00254 #define SPRITE_SIZE_24X8 (0x8 << 8)
00255 #define SPRITE_SIZE_24X16 (0x9 << 8)
00256 #define SPRITE_SIZE_24X24 (0xA << 8)
00257 #define SPRITE_SIZE_24X32 (0xB << 8)
00258 #define SPRITE_SIZE_32X8 (0xC << 8)
00259 #define SPRITE_SIZE_32X16 (0xD << 8)
00260 #define SPRITE_SIZE_32X24 (0xE << 8)
00261 #define SPRITE_SIZE_32X32 (0xF << 8)
00262
00282 #define CRAM_WRITE 0x3
00283 #define CRAM_READ 0x8
00284 #define VRAM_WRITE 0x1
00285 #define VRAM_READ 0x0
00286 #define VSRAM_WRITE 0x5
00287 #define VSRAM_READ 0x4
00288
00299 #define DMA_TO_VRAM 0x1
00300 #define DMA_TO_CRAM 0x3
00301 #define DMA_TO_VSRAM 0x5
00302
00314 #define VDP_BUILD_TILE(n, vflip, hflip, pal, shadow) \
00315 (n | (vflip << 11) | (hflip << 12) | (pal << 13) | (shadow << 15))
00316
00323 void vdp_pointto(u32 addr, u8 access);
00324
00331 void vdp_setreg(u32 reg, u32 data);
00332
00338 void vdp_write(u16 data);
00339
00345 void vdp_write16(u16 data);
00346
00352 void vdp_write32(u32 data);
00353
00361 void vdp_writetocram(u8 size, const void *src, u8 dst);
00362
00370 void vdp_writetovram(u16 size, const void *from, u16 dst);
00371
00379 void vdp_writetovsram(u16 size, const void *from, u16 dst);
00380
00389 void vdp_dma(u16 size, const void *from, u16 dst, u8 region);
00390
00398 void vdp_dmafill(u16 size, u16 dst, u16 data);
00399
00404 void vdp_waitdma(void);
00405
00412 void vdp_clrvram(void);
00413
00420 void vdp_clrvsram(void);
00421
00426 void vdp_waitvsync(void);