bugfixes, refactoring
[libpicofe.git] / psp / psp.h
index 03f9db0..7269863 100644 (file)
--- 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 <pspctrl.h>
 
 void psp_init(void);
@@ -9,21 +14,23 @@ void psp_msleep(int ms);
 // 000000-044000 fb0
 // 044000-088000 fb1
 // 088000-0cc000 depth (?)
-// 0cc000-0??000 stuff
+// 0cc000-126000 emu draw buffers: 512*240 + 512*240*2
 
-#define VRAMOFFS_FB0    ((void *) 0x00000000)
-#define VRAMOFFS_FB1    ((void *) 0x00044000)
-#define VRAMOFFS_DEPTH  ((void *) 0x00088000)
+#define VRAMOFFS_FB0    0x00000000
+#define VRAMOFFS_FB1    0x00044000
+#define VRAMOFFS_DEPTH  0x00088000
+#define VRAMOFFS_STUFF  0x000cc000
 
-#define VRAM_FB0        ((void *) 0x44000000)
-#define VRAM_FB1        ((void *) 0x44044000)
-#define VRAM_STUFF      ((void *) 0x440cc000)
+#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 *) 0x040cc000)
+#define VRAM_CACHED_STUFF   ((void *) (0x04000000+VRAMOFFS_STUFF))
 
-#define GU_CMDLIST_SIZE (16*1024) // TODO: adjust
+#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);
@@ -35,6 +42,11 @@ 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
@@ -48,5 +60,11 @@ int psp_set_cpu_clock(int clock);
 #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 BTN_NOTE     PSP_CTRL_NOTE // doesn't seem to work?
+
+/* fake 'nub' btns */
+#define BTN_NUB_UP    (1 << 28)
+#define BTN_NUB_RIGHT (1 << 29)
+#define BTN_NUB_DOWN  (1 << 30)
+#define BTN_NUB_LEFT  (1 << 31)