From c64c8d0ec9d4f52fd65df1d3bce864b7a6152033 Mon Sep 17 00:00:00 2001 From: notaz Date: Sun, 22 May 2011 13:45:53 +0000 Subject: [PATCH] update platform code to suit recent PCSX related changes git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@930 be3aeb3a-fb24-0410-a615-afba39da0efa --- common/config.c | 3 +-- common/menu_pico.c | 29 ++++++++++++++++++++++++--- gp2x/Makefile | 2 +- gp2x/emu.c | 21 ------------------- gp2x/menu.c | 2 +- gp2x/plat.c | 23 +++++++++++++++++++++ linux/Makefile | 2 +- linux/emu.c | 21 ------------------- linux/io.c | 18 +++++++++++++++++ pandora/Makefile | 4 ++-- pandora/menu.c | 16 +++++++-------- pandora/plat.c | 50 +++++++++++++++++++++++++++------------------- 12 files changed, 109 insertions(+), 82 deletions(-) diff --git a/common/config.c b/common/config.c index 3794cee..9950b13 100644 --- a/common/config.c +++ b/common/config.c @@ -19,6 +19,7 @@ static char *mystrip(char *str); #ifndef _MSC_VER #include "menu.h" +#include "menu_pico.h" #include "emu.h" #include @@ -756,7 +757,6 @@ int config_readsect(const char *fname, const char *section) keys_encountered = 0; memset(input_dev_map, 0xff, sizeof(input_dev_map)); - in_config_start(); while (!feof(f)) { ret = config_get_var_val(f, line, sizeof(line), &var, &val); @@ -765,7 +765,6 @@ int config_readsect(const char *fname, const char *section) parse(var, val); } - in_config_end(); fclose(f); return 0; diff --git a/common/menu_pico.c b/common/menu_pico.c index da820ea..abc5845 100644 --- a/common/menu_pico.c +++ b/common/menu_pico.c @@ -1,4 +1,7 @@ +#include + #include "emu.h" +#include "menu_pico.h" #include #include @@ -399,8 +402,8 @@ static const char *mgn_opt_sh2cycles(int id, int *offs) static const char h_32x_enable[] = "Enable emulation of the 32X addon"; static const char h_pwm[] = "Disabling may improve performance, but break sound"; static const char h_sh2cycles[] = "Cycles/millisecond (similar to DOSBox)\n" - "lower values speed up emulation but break games\n" - "at least 11000 recommended for compatibility"; + "lower values speed up emulation but break games\n" + "at least 11000 recommended for compatibility"; static menu_entry e_menu_32x_options[] = { @@ -828,6 +831,26 @@ static void debug_menu_loop(void) // ------------ main menu ------------ +static const char credits[] = + "PicoDrive v" VERSION " (c) notaz, 2006-2011\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" + "Inder, ketchupgun: graphics\n" +#ifdef __GP2X__ + "rlyeh and others: minimal SDK\n" + "Squidge: mmuhack\n" + "Dzz: ARM940 sample\n" +#endif + "\n" + "special thanks (for docs, ideas):\n" + " Charles MacDonald, Haze,\n" + " Stephane Dallongeville,\n" + " Lordus, Exophase, Rokas,\n" + " Nemesis, Tasco Deluxe"; + static char *romsel_run(void) { char *ret, *sel_name; @@ -875,7 +898,7 @@ static int main_menu_handler(int id, int keys) } break; case MA_MAIN_CREDITS: - draw_menu_message(, NULL); + draw_menu_message(credits, NULL); in_menu_wait(PBTN_MOK|PBTN_MBACK, 70); break; case MA_MAIN_EXIT: diff --git a/gp2x/Makefile b/gp2x/Makefile index 62bbc9b..030bab6 100644 --- a/gp2x/Makefile +++ b/gp2x/Makefile @@ -55,7 +55,7 @@ OBJS += pico/carthw/svp/compiler.o pico/carthw/svp/stub_arm.o OBJS += pico/sound/mix_arm.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/arm_linux.o platform/common/readpng.o \ platform/common/mp3_helix.o platform/common/input.o platform/common/main.o platform/common/mp3.o \ platform/linux/sndout_oss.o platform/linux/plat.o platform/linux/in_evdev.o diff --git a/gp2x/emu.c b/gp2x/emu.c index 7175afc..df9faac 100644 --- a/gp2x/emu.c +++ b/gp2x/emu.c @@ -913,24 +913,3 @@ void pemu_loop_end(void) pemu_forced_frame(0, 1); } -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" - "rlyeh and others: minimal SDK\n" - "Squidge: mmuhack\n" - "Dzz: ARM940 sample\n" - "GnoStiC / Puck2099: USB joy code\n" - "craigix: GP2X hardware\n" - "ketchupgun: skin design\n" - "\n" - "special thanks (for docs, ideas):\n" - " Charles MacDonald, Haze,\n" - " Stephane Dallongeville,\n" - " Lordus, Exophase, Rokas,\n" - " Nemesis, Tasco Deluxe"; -} diff --git a/gp2x/menu.c b/gp2x/menu.c index b7f7b85..eabd74e 100644 --- a/gp2x/menu.c +++ b/gp2x/menu.c @@ -54,7 +54,7 @@ static void menu_main_plat_draw(void) // ------------ gfx options menu ------------ -static const char *mgn_aopt_gamma(menu_id id, int *offs) +static const char *mgn_aopt_gamma(int id, int *offs) { sprintf(static_buff, "%i.%02i", currentConfig.gamma / 100, currentConfig.gamma % 100); return static_buff; diff --git a/gp2x/plat.c b/gp2x/plat.c index 23a155e..321a4b6 100644 --- a/gp2x/plat.c +++ b/gp2x/plat.c @@ -41,6 +41,29 @@ static const char * const caanoo_keys[KEY_MAX + 1] = { [BTN_BASE5] = "Push", }; +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 }, + /* Caanoo */ + { BTN_THUMB, IN_BINDTYPE_PLAYER12, 4 }, /* B */ + { BTN_THUMB2, IN_BINDTYPE_PLAYER12, 5 }, /* C */ + { BTN_TRIGGER, IN_BINDTYPE_PLAYER12, 6 }, /* A */ + { BTN_BASE3, IN_BINDTYPE_PLAYER12, 7 }, + { BTN_TOP2, IN_BINDTYPE_EMU, PEVB_STATE_SAVE }, + { BTN_PINKIE, IN_BINDTYPE_EMU, PEVB_STATE_LOAD }, + { BTN_BASE, IN_BINDTYPE_EMU, PEVB_MENU }, + { 0, 0, 0 } +}; + void gp2x_video_changemode(int bpp) { gp2x_video_changemode_ll(bpp); diff --git a/linux/Makefile b/linux/Makefile index 1fb54d3..34856ac 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -35,7 +35,7 @@ CC ?= $(CROSS)gcc OBJS += io.o emu.o blit.o in_evdev.o plat.o sndout_oss.o log_io.o # common -OBJS += platform/common/main.o platform/common/emu.o platform/common/menu.o \ +OBJS += platform/common/main.o platform/common/emu.o platform/common/menu_pico.o \ platform/common/config.o platform/common/fonts.o platform/common/readpng.o \ platform/common/input.o diff --git a/linux/emu.c b/linux/emu.c index aef2197..95666ad 100644 --- a/linux/emu.c +++ b/linux/emu.c @@ -298,24 +298,3 @@ void plat_wait_till_us(unsigned int us_to) } } -const char *plat_get_credits(void) -{ - return "PicoDrive v" VERSION " (c) notaz, 2006-2009\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" - "rlyeh and others: minimal SDK\n" - "Squidge: mmuhack\n" - "Dzz: ARM940 sample\n" - "GnoStiC / Puck2099: USB joy code\n" - "craigix: GP2X hardware\n" - "ketchupgun: skin design\n" - "\n" - "special thanks (for docs, ideas):\n" - " Charles MacDonald, Haze,\n" - " Stephane Dallongeville,\n" - " Lordus, Exophase, Rokas,\n" - " Nemesis, Tasco Deluxe"; -} diff --git a/linux/io.c b/linux/io.c index 1122e8a..2767e68 100644 --- a/linux/io.c +++ b/linux/io.c @@ -5,6 +5,7 @@ #include "../common/emu.h" #include "../common/menu.h" #include "../common/plat.h" +#include "../common/input.h" #include "sndout_oss.h" #include "version.h" @@ -363,3 +364,20 @@ void mp3_update(int *buffer, int length, int stereo) { } +#include + +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 }, + { 0, 0, 0 } +}; + diff --git a/pandora/Makefile b/pandora/Makefile index 45f74b2..692ad42 100644 --- a/pandora/Makefile +++ b/pandora/Makefile @@ -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 ----------- diff --git a/pandora/menu.c b/pandora/menu.c index aec6c9f..be822cf 100644 --- a/pandora/menu.c +++ b/pandora/menu.c @@ -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; diff --git a/pandora/plat.c b/pandora/plat.c index f1ae107..91468a1 100644 --- a/pandora/plat.c +++ b/pandora/plat.c @@ -29,6 +29,8 @@ #include 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; -- 2.39.2