X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=psp%2Fpsp.h;h=ef12f5928d9d2e0601fed31f34e70402efaf0a8c;hb=ca69c3e5a0ecf407c02dc85c6f3282ebb1efc5a2;hp=cece8cf9ef8a28ad49229a84121207bd5612c3f9;hpb=2951214ea65ce2e2ac40671511b8d5a9ea2d2842;p=libpicofe.git diff --git a/psp/psp.h b/psp/psp.h index cece8cf..ef12f59 100644 --- a/psp/psp.h +++ b/psp/psp.h @@ -1,3 +1,8 @@ +// (c) Copyright 2007 notaz, All rights reserved. +// Free for non-commercial use. + +// For commercial use, separate licencing terms must be obtained. + #include void psp_init(void); @@ -5,28 +10,61 @@ void psp_finish(void); void psp_msleep(int ms); -#define PSP_VRAM_BASE0 ((void *) 0x44000000) -#define PSP_VRAM_BASE1 ((void *) 0x44044000) +// vram usage map: +// 000000-044000 fb0 +// 044000-088000 fb1 +// 088000-0cc000 depth (?) +// 0cc000-126000 emu draw buffers: 512*240 + 512*240*2 + +#define VRAMOFFS_FB0 0x00000000 +#define VRAMOFFS_FB1 0x00044000 +#define VRAMOFFS_DEPTH 0x00088000 +#define VRAMOFFS_STUFF 0x000cc000 + +#define VRAM_FB0 ((void *) (0x44000000+VRAMOFFS_FB0)) +#define VRAM_FB1 ((void *) (0x44000000+VRAMOFFS_FB1)) +#define VRAM_STUFF ((void *) (0x44000000+VRAMOFFS_STUFF)) + +#define VRAM_CACHED_STUFF ((void *) (0x04000000+VRAMOFFS_STUFF)) -void psp_video_switch_to_single(void); -void psp_video_flip(void); +#define GU_CMDLIST_SIZE (16*1024) + +extern unsigned int guCmdList[GU_CMDLIST_SIZE]; +extern int psp_unhandled_suspend; + +void *psp_video_get_active_fb(void); +void psp_video_switch_to_single(void); +void psp_video_flip(int wait_vsync); extern void *psp_screen; -unsigned int psp_pad_read(void); +unsigned int psp_pad_read(int blocking); + +int psp_get_cpu_clock(void); +int psp_set_cpu_clock(int clock); +char *psp_get_status_line(void); + +void psp_wait_suspend(void); +void psp_resume_suspend(void); /* shorter btn names */ -#define BTN_UP PSP_CTRL_UP -#define BTN_LEFT PSP_CTRL_LEFT -#define BTN_RIGHT PSP_CTRL_RIGHT -#define BTN_DOWN PSP_CTRL_DOWN -#define BTN_L PSP_CTRL_LTRIGGER -#define BTN_R PSP_CTRL_RTRIGGER -#define BTN_TRIANGLE PSP_CTRL_TRIANGLE -#define BTN_CIRCLE PSP_CTRL_CIRCLE -#define BTN_X PSP_CTRL_CROSS -#define BTN_SQUARE PSP_CTRL_SQUARE -#define BTN_SELECT PSP_CTRL_SELECT -#define BTN_START PSP_CTRL_START -#define BTN_NOTE PSP_CTRL_NOTE +#define PBTN_UP PSP_CTRL_UP +#define PBTN_LEFT PSP_CTRL_LEFT +#define PBTN_RIGHT PSP_CTRL_RIGHT +#define PBTN_DOWN PSP_CTRL_DOWN +#define PBTN_L PSP_CTRL_LTRIGGER +#define PBTN_R PSP_CTRL_RTRIGGER +#define PBTN_TRIANGLE PSP_CTRL_TRIANGLE +#define PBTN_CIRCLE PSP_CTRL_CIRCLE +#define PBTN_X PSP_CTRL_CROSS +#define PBTN_SQUARE PSP_CTRL_SQUARE +#define PBTN_SELECT PSP_CTRL_SELECT +#define PBTN_START PSP_CTRL_START +#define PBTN_NOTE PSP_CTRL_NOTE // doesn't seem to work? + +/* fake 'nub' btns */ +#define PBTN_NUB_UP (1 << 28) +#define PBTN_NUB_RIGHT (1 << 29) +#define PBTN_NUB_DOWN (1 << 30) +#define PBTN_NUB_LEFT (1 << 31)