update platform code to suit recent PCSX related changes

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@930 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2011-05-22 13:45:53 +00:00
parent e4bac17eb0
commit 21ebcfd322
13 changed files with 110 additions and 83 deletions

View file

@ -46,7 +46,7 @@ OBJCOPY = $(CROSS)objcopy
OBJS += plat.o asm_utils.o
# common
OBJS += platform/common/emu.o platform/common/menu.o platform/common/fonts.o platform/common/config.o \
OBJS += platform/common/emu.o platform/common/menu_pico.o platform/common/fonts.o platform/common/config.o \
platform/common/arm_utils.o platform/common/mp3_helix.o platform/common/arm_linux.o \
platform/common/readpng.o platform/common/input.o platform/common/main.o platform/common/mp3.o \
platform/linux/fbdev.o platform/linux/in_evdev.o platform/linux/sndout_oss.o \
@ -93,7 +93,7 @@ readme.txt: ../../tools/textfilter ../base_readme.txt
PicoDrive.pxml: PicoDrive.pxml.template
./make_pxml.sh PicoDrive.pxml.template PicoDrive.pxml
platform/common/menu.o: menu.c
platform/common/menu_pico.o: platform/common/menu.c menu.c
# ----------- release -----------

View file

@ -7,10 +7,8 @@ static const char h_cscaler[] = "Displays the scaler layer, you can resize it\
"using d-pad or move it using R+d-pad";
static const char *men_dummy[] = { NULL };
char **pnd_filter_list;
int g_layer_cx = 80, g_layer_cy = 0;
int g_layer_cw = 640, g_layer_ch = 480;
static int menu_loop_cscaler(menu_id id, int keys)
static int menu_loop_cscaler(int id, int keys)
{
unsigned int inp;
@ -89,7 +87,7 @@ void pnd_menu_init(void)
struct dirent *ent;
int i, count = 0;
char **mfilters;
char buff[64];
char buff[64], *p;
DIR *dir;
dir = opendir("/etc/pandora/conf/dss_fir");
@ -106,7 +104,8 @@ void pnd_menu_init(void)
perror("readdir");
break;
}
if (strstr(ent->d_name, "_up_h"))
p = strstr(ent->d_name, "_up");
if (p != NULL && (p[3] == 0 || !strcmp(p + 3, "_h")))
count++;
}
@ -119,14 +118,13 @@ void pnd_menu_init(void)
rewinddir(dir);
for (i = 0; (ent = readdir(dir)); ) {
char *pos;
size_t len;
pos = strstr(ent->d_name, "_up_h");
if (pos == NULL)
p = strstr(ent->d_name, "_up");
if (p == NULL || (p[3] != 0 && strcmp(p + 3, "_h")))
continue;
len = pos - ent->d_name;
len = p - ent->d_name;
if (len > sizeof(buff) - 1)
continue;

View file

@ -29,6 +29,8 @@
#include <linux/input.h>
static struct vout_fbdev *main_fb, *layer_fb;
// g_layer_* - in use, g_layer_c* - configured custom
int g_layer_cx, g_layer_cy, g_layer_cw, g_layer_ch;
static int g_layer_x, g_layer_y;
static int g_layer_w = 320, g_layer_h = 240;
static int g_osd_fps_x, g_osd_y, doing_bg_frame;
@ -58,6 +60,30 @@ static const char * const pandora_gpio_keys[KEY_MAX + 1] = {
[KEY_MENU] = "Pandora",
};
struct in_default_bind in_evdev_defbinds[] =
{
/* MXYZ SACB RLDU */
{ KEY_UP, IN_BINDTYPE_PLAYER12, 0 },
{ KEY_DOWN, IN_BINDTYPE_PLAYER12, 1 },
{ KEY_LEFT, IN_BINDTYPE_PLAYER12, 2 },
{ KEY_RIGHT, IN_BINDTYPE_PLAYER12, 3 },
{ KEY_S, IN_BINDTYPE_PLAYER12, 4 }, /* B */
{ KEY_D, IN_BINDTYPE_PLAYER12, 5 }, /* C */
{ KEY_A, IN_BINDTYPE_PLAYER12, 6 }, /* A */
{ KEY_ENTER, IN_BINDTYPE_PLAYER12, 7 },
{ KEY_BACKSLASH, IN_BINDTYPE_EMU, PEVB_MENU },
{ KEY_SPACE, IN_BINDTYPE_EMU, PEVB_MENU },
/* Pandora */
{ KEY_PAGEDOWN, IN_BINDTYPE_PLAYER12, 4 },
{ KEY_END, IN_BINDTYPE_PLAYER12, 5 },
{ KEY_HOME, IN_BINDTYPE_PLAYER12, 6 },
{ KEY_LEFTALT, IN_BINDTYPE_PLAYER12, 7 },
{ KEY_RIGHTSHIFT,IN_BINDTYPE_EMU, PEVB_STATE_SAVE },
{ KEY_RIGHTCTRL, IN_BINDTYPE_EMU, PEVB_STATE_LOAD },
{ KEY_LEFTCTRL, IN_BINDTYPE_EMU, PEVB_MENU },
{ 0, 0, 0 }
};
static int get_cpu_clock(void)
{
FILE *f;
@ -441,8 +467,8 @@ void emu_video_mode_change(int start_line, int line_count, int is_32cols)
g_osd_y = fb_top + fb_h - 8;
pnd_setup_layer(1, g_layer_x, g_layer_y, g_layer_w, g_layer_h);
vout_fbdev_resize(layer_fb, fb_w, fb_h, fb_left, fb_right, fb_top, fb_bottom, 0);
vout_fbdev_clear(layer_fb);
vout_fbdev_resize(layer_fb, fb_w, fb_h, 16, fb_left, fb_right, fb_top, fb_bottom, 3);
plat_video_flip();
}
@ -516,24 +542,6 @@ void plat_wait_till_us(unsigned int us_to)
*/
}
const char *plat_get_credits(void)
{
return "PicoDrive v" VERSION " (c) notaz, 2006-2010\n\n\n"
"Credits:\n"
"fDave: Cyclone 68000 core,\n"
" base code of PicoDrive\n"
"Reesy & FluBBa: DrZ80 core\n"
"MAME devs: YM2612 and SN76496 cores\n"
"Pandora team: Pandora\n"
"Inder, ketchupgun: graphics\n"
"\n"
"special thanks (for docs, ideas):\n"
" Charles MacDonald, Haze,\n"
" Stephane Dallongeville,\n"
" Lordus, Exophase, Rokas,\n"
" Nemesis, Tasco Deluxe";
}
#include "../linux/oshide.h"
void plat_early_init(void)
@ -571,7 +579,7 @@ void plat_init(void)
oshide_init();
w = h = 0;
main_fb = vout_fbdev_init(main_fb_name, &w, &h, 0);
main_fb = vout_fbdev_init(main_fb_name, &w, &h, 16, 2);
if (main_fb == NULL) {
fprintf(stderr, "couldn't init fb: %s\n", main_fb_name);
exit(1);
@ -582,7 +590,7 @@ void plat_init(void)
g_menuscreen_ptr = vout_fbdev_flip(main_fb);
w = 320; h = 240;
layer_fb = vout_fbdev_init(layer_fb_name, &w, &h, 0);
layer_fb = vout_fbdev_init(layer_fb_name, &w, &h, 16, 3);
if (layer_fb == NULL) {
fprintf(stderr, "couldn't init fb: %s\n", layer_fb_name);
goto fail0;