#define read_buttons(which) \
wait_for_input(which)
+#define read_buttons_async(which) \
+ (gp2x_joystick_read(0) & (which))
#define menu_draw_begin() \
gp2x_pd_clone_buffer2()
#define clear_screen() \
#elif defined(__GIZ__)
-// TODO
-//#include "../gizmondo/giz.h"
-#define SCREEN_WIDTH 321
-#define SCREEN_BUFFER menu_screen
-extern unsigned char *menu_screen;
+#include "../gizmondo/giz.h"
+
+#define BTN_NORTH BTN_STOP
+#define BTN_SOUTH BTN_PLAY
+#define BTN_WEST BTN_REW
+#define BTN_EAST BTN_FWD
+
+unsigned long wait_for_input(unsigned int interesting);
+void menu_draw_begin(int use_bgbuff);
+void menu_darken_bg(void *dst, const void *src, int pixels, int darker);
+void menu_draw_end(void);
+
+#define SCREEN_WIDTH 321
+#define SCREEN_HEIGHT 240
+#define SCREEN_BUFFER ((giz_screen != NULL) ? giz_screen : menu_screen)
+extern void *menu_screen;
+extern void *giz_screen;
+
+#define read_buttons(which) \
+ wait_for_input(which)
+#define read_buttons_async(which) 0
+#define menu_draw_begin() \
+ menu_draw_begin(1)
+#define clear_screen() \
+ memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2)
+#define darken_screen() \
+ menu_darken_bg(menu_screen, menu_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0)
// ------------------------------------
#define read_buttons(which) \
wait_for_input(which, 0)
+#define read_buttons_async(which) \
+ (psp_pad_read(0) & (which))
#define clear_screen() \
memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2)
#define darken_screen() \
menu_darken_bg(psp_screen, psp_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0)
+// ------------------------------------
+
+#elif defined(PANDORA)
+
+// TODO
+
+#include "../gp2x/gp2x.h"
+
+#define BTN_UP 0
+#define BTN_DOWN 0
+#define BTN_LEFT 0
+#define BTN_RIGHT 0
+
+#define BTN_NORTH 0
+#define BTN_SOUTH 0
+#define BTN_WEST 0
+#define BTN_EAST 0
+#define BTN_L 0
+#define BTN_R 0
+
+unsigned long wait_for_input(unsigned long interesting);
+void gp2x_pd_clone_buffer2(void);
+void menu_darken_bg(void *dst, int pixels, int darker);
+void menu_flip(void);
+
+#define SCREEN_WIDTH 800
+#define SCREEN_HEIGHT 480
+#define SCREEN_BUFFER gp2x_screen
+
+#define read_buttons(which) \
+ wait_for_input(which)
+#define read_buttons_async(which) \
+ (gp2x_joystick_read(0) & (which))
+#define menu_draw_begin() \
+ gp2x_pd_clone_buffer2()
+#define clear_screen() \
+ memset(gp2x_screen, 0, 800*480*2)
+#define darken_screen() \
+ menu_darken_bg(gp2x_screen, 800*480, 0)
+#define menu_draw_end() \
+ menu_flip()
+
#endif