c4c6404cd6ff96693cbdbfe7edb29b99c5cae4c0
[picodrive.git] / platform / psp / psp.h
1 /*
2  * PicoDrive
3  * (C) notaz, 2007,2008
4  *
5  * This work is licensed under the terms of MAME license.
6  * See COPYING file in the top-level directory.
7  */
8
9 #include <pspctrl.h>
10
11 void psp_init(void);
12 void psp_finish(void);
13
14 void psp_msleep(int ms);
15
16 // vram usage map:
17 // 000000-044000 fb0: 512*272*2
18 // 044000-088000 fb1
19 // 088000-0cc000 depth (Z)
20 // 0cc000-110000 emu/menu draw buffer 0: 512*272*2
21 // 110000-154000 emu/menu draw buffer 1
22
23 #define VRAMOFFS_FB0    0x00000000
24 #define VRAMOFFS_FB1    0x00044000
25 #define VRAMOFFS_DEPTH  0x00088000
26 #define VRAMOFFS_STUFF  0x000cc000
27
28 #define VRAM_ADDR       0x44000000
29 #define VRAM_FB0        ((void *) (VRAM_ADDR+VRAMOFFS_FB0))
30 #define VRAM_FB1        ((void *) (VRAM_ADDR+VRAMOFFS_FB1))
31 #define VRAM_STUFF      ((void *) (VRAM_ADDR+VRAMOFFS_STUFF))
32
33 #define VRAM_CACHEDADDR 0x04000000
34 #define VRAM_CACHED_STUFF   ((void *) (VRAM_CACHEDADDR+VRAMOFFS_STUFF))
35
36 #define GU_CMDLIST_SIZE (16*1024)
37
38 extern unsigned int guCmdList[GU_CMDLIST_SIZE];
39 extern int psp_unhandled_suspend;
40
41 void *psp_video_get_active_fb(void);
42 void  psp_video_switch_to_single(void);
43 void  psp_video_flip(int wait_vsync);
44 extern void *psp_screen;
45
46 unsigned int psp_pad_read(int blocking);
47
48 int psp_get_cpu_clock(void);
49 int psp_set_cpu_clock(int clock);
50
51 char *psp_get_status_line(void);
52
53 void psp_wait_suspend(void);
54 void psp_resume_suspend(void);
55
56 /* fake 'nub' btns, mapped to the 4 unused upper bits of ctrl buttons */
57 #define PSP_NUB_UP    (1 << 26)
58 #define PSP_NUB_RIGHT (1 << 27)
59 #define PSP_NUB_DOWN  (1 << 28)
60 #define PSP_NUB_LEFT  (1 << 29)
61
62 /* from menu.c */
63 void psp_menu_init(void);