mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-01-22 09:01:57 -05:00
131 lines
5.7 KiB
C
131 lines
5.7 KiB
C
#ifndef __32X_H__
|
|
#define __32X_H__
|
|
|
|
/* Create a 5:5:5 RGB color */
|
|
#define COLOR(r,g,b) (((r)&0x1F)|((g)&0x1F)<<5|((b)&0x1F)<<10)
|
|
|
|
#define MARS_CRAM (*(volatile unsigned short *)0x20004200)
|
|
#define MARS_FRAMEBUFFER (*(volatile unsigned short *)0x24000000)
|
|
#define MARS_OVERWRITE_IMG (*(volatile unsigned short *)0x24020000)
|
|
#define MARS_SDRAM (*(volatile unsigned short *)0x26000000)
|
|
|
|
#define MARS_SYS_INTMSK (*(volatile unsigned short *)0x20004000)
|
|
#define MARS_SYS_DMACTR (*(volatile unsigned short *)0x20004006)
|
|
#define MARS_SYS_DMASAR (*(volatile unsigned long *)0x20004008)
|
|
#define MARS_SYS_DMADAR (*(volatile unsigned long *)0x2000400C)
|
|
#define MARS_SYS_DMALEN (*(volatile unsigned short *)0x20004010)
|
|
#define MARS_SYS_DMAFIFO (*(volatile unsigned short *)0x20004012)
|
|
#define MARS_SYS_VRESI_CLR (*(volatile unsigned short *)0x20004014)
|
|
#define MARS_SYS_VINT_CLR (*(volatile unsigned short *)0x20004016)
|
|
#define MARS_SYS_HINT_CLR (*(volatile unsigned short *)0x20004018)
|
|
#define MARS_SYS_CMDI_CLR (*(volatile unsigned short *)0x2000401A)
|
|
#define MARS_SYS_PWMI_CLR (*(volatile unsigned short *)0x2000401C)
|
|
#define MARS_SYS_COMM0 (*(volatile unsigned short *)0x20004020) /* Master SH2 communication */
|
|
#define MARS_SYS_COMM2 (*(volatile unsigned short *)0x20004022)
|
|
#define MARS_SYS_COMM4 (*(volatile unsigned short *)0x20004024) /* Slave SH2 communication */
|
|
#define MARS_SYS_COMM6 (*(volatile unsigned short *)0x20004026)
|
|
#define MARS_SYS_COMM8 (*(volatile unsigned short *)0x20004028) /* controller 1 current value */
|
|
#define MARS_SYS_COMM10 (*(volatile unsigned short *)0x2000402A) /* controller 2 current value */
|
|
#define MARS_SYS_COMM12 (*(volatile unsigned long *)0x2000402C) /* vcount current value */
|
|
|
|
#define MARS_PWM_CTRL (*(volatile unsigned short *)0x20004030)
|
|
#define MARS_PWM_CYCLE (*(volatile unsigned short *)0x20004032)
|
|
#define MARS_PWM_LEFT (*(volatile unsigned short *)0x20004034)
|
|
#define MARS_PWM_RIGHT (*(volatile unsigned short *)0x20004036)
|
|
#define MARS_PWM_MONO (*(volatile unsigned short *)0x20004038)
|
|
|
|
#define MARS_VDP_DISPMODE (*(volatile unsigned short *)0x20004100)
|
|
#define MARS_VDP_FILLEN (*(volatile unsigned short *)0x20004104)
|
|
#define MARS_VDP_FILADR (*(volatile unsigned short *)0x20004106)
|
|
#define MARS_VDP_FILDAT (*(volatile unsigned short *)0x20004108)
|
|
#define MARS_VDP_FBCTL (*(volatile unsigned short *)0x2000410A)
|
|
|
|
#define MARS_SH2_ACCESS_VDP 0x8000
|
|
#define MARS_68K_ACCESS_VDP 0x0000
|
|
|
|
#define MARS_PAL_FORMAT 0x0000
|
|
#define MARS_NTSC_FORMAT 0x8000
|
|
|
|
#define MARS_VDP_PRIO_68K 0x0000
|
|
#define MARS_VDP_PRIO_32X 0x0080
|
|
|
|
#define MARS_224_LINES 0x0000
|
|
#define MARS_240_LINES 0x0040
|
|
|
|
#define MARS_VDP_MODE_OFF 0x0000
|
|
#define MARS_VDP_MODE_256 0x0001
|
|
#define MARS_VDP_MODE_32K 0x0002
|
|
#define MARS_VDP_MODE_RLE 0x0003
|
|
|
|
#define MARS_VDP_VBLK 0x8000
|
|
#define MARS_VDP_HBLK 0x4000
|
|
#define MARS_VDP_PEN 0x2000
|
|
#define MARS_VDP_FEN 0x0002
|
|
#define MARS_VDP_FS 0x0001
|
|
|
|
#define SH2_CCTL_CP 0x10
|
|
#define SH2_CCTL_TW 0x08
|
|
#define SH2_CCTL_CE 0x01
|
|
|
|
#define SH2_FRT_TIER (*(volatile unsigned char *)0xFFFFFE10)
|
|
#define SH2_FRT_FTCSR (*(volatile unsigned char *)0xFFFFFE11)
|
|
#define SH2_FRT_FRCH (*(volatile unsigned char *)0xFFFFFE12)
|
|
#define SH2_FRT_FRCL (*(volatile unsigned char *)0xFFFFFE13)
|
|
#define SH2_FRT_OCRH (*(volatile unsigned char *)0xFFFFFE14)
|
|
#define SH2_FRT_OCRL (*(volatile unsigned char *)0xFFFFFE15)
|
|
#define SH2_FRT_TCR (*(volatile unsigned char *)0xFFFFFE16)
|
|
#define SH2_FRT_TOCR (*(volatile unsigned char *)0xFFFFFE17)
|
|
#define SH2_FRT_ICRH (*(volatile unsigned char *)0xFFFFFE18)
|
|
#define SH2_FRT_ICRL (*(volatile unsigned char *)0xFFFFFE19)
|
|
|
|
#define SH2_DMA_SAR0 (*(volatile unsigned long *)0xFFFFFF80)
|
|
#define SH2_DMA_DAR0 (*(volatile unsigned long *)0xFFFFFF84)
|
|
#define SH2_DMA_TCR0 (*(volatile unsigned long *)0xFFFFFF88)
|
|
#define SH2_DMA_CHCR0 (*(volatile unsigned long *)0xFFFFFF8C)
|
|
#define SH2_DMA_VCR0 (*(volatile unsigned long *)0xFFFFFFA0)
|
|
#define SH2_DMA_DRCR0 (*(volatile unsigned char *)0xFFFFFE71)
|
|
|
|
#define SH2_DMA_SAR1 (*(volatile unsigned long *)0xFFFFFF90)
|
|
#define SH2_DMA_DAR1 (*(volatile unsigned long *)0xFFFFFF94)
|
|
#define SH2_DMA_TCR1 (*(volatile unsigned long *)0xFFFFFF98)
|
|
#define SH2_DMA_CHCR1 (*(volatile unsigned long *)0xFFFFFF9C)
|
|
#define SH2_DMA_VCR1 (*(volatile unsigned long *)0xFFFFFFA8)
|
|
#define SH2_DMA_DRCR1 (*(volatile unsigned char *)0xFFFFFE72)
|
|
|
|
#define SH2_DMA_DMAOR (*(volatile unsigned long *)0xFFFFFFB0)
|
|
|
|
#define SH2_INT_IPRA (*(volatile unsigned short *)0xFFFFFEE2)
|
|
|
|
#define SEGA_CTRL_UP 0x0001
|
|
#define SEGA_CTRL_DOWN 0x0002
|
|
#define SEGA_CTRL_LEFT 0x0004
|
|
#define SEGA_CTRL_RIGHT 0x0008
|
|
#define SEGA_CTRL_B 0x0010
|
|
#define SEGA_CTRL_C 0x0020
|
|
#define SEGA_CTRL_A 0x0040
|
|
#define SEGA_CTRL_START 0x0080
|
|
#define SEGA_CTRL_Z 0x0100
|
|
#define SEGA_CTRL_Y 0x0200
|
|
#define SEGA_CTRL_X 0x0400
|
|
#define SEGA_CTRL_MODE 0x0800
|
|
|
|
#define SEGA_CTRL_TYPE 0xF000
|
|
#define SEGA_CTRL_THREE 0x0000
|
|
#define SEGA_CTRL_SIX 0x1000
|
|
#define SEGA_CTRL_NONE 0xF000
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* global functions in sh2_crt0.s */
|
|
extern void fast_memcpy(void *dst, void *src, int len);
|
|
extern void CacheControl(int mode);
|
|
extern void CacheClearLine(void* ptr);
|
|
extern void ScreenStretch(int src, int width, int height, int interp);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|