mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-06 15:48:05 -04:00
build, odbeta and opendingux cleanup
This commit is contained in:
parent
85174a6d8d
commit
58fc34b1d6
14 changed files with 185 additions and 78 deletions
|
@ -180,6 +180,7 @@ void pemu_finalize_frame(const char *fps, const char *notice_msg);
|
|||
|
||||
void pemu_sound_start(void);
|
||||
|
||||
int plat_parse_arg(int argc, char *argv[], int *x);
|
||||
void plat_early_init(void);
|
||||
void plat_init(void);
|
||||
void plat_finish(void);
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "../libpicofe/input.h"
|
||||
#include "../libpicofe/in_sdl.h"
|
||||
#include "../libpicofe/plat.h"
|
||||
#include "../common/input_pico.h"
|
||||
#include "../common/plat_sdl.h"
|
||||
|
||||
|
@ -33,7 +34,7 @@ const struct in_default_bind in_sdl_defbinds[] = {
|
|||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
const struct menu_keymap in_sdl_key_map[] = {
|
||||
const struct menu_keymap _in_sdl_key_map[] = {
|
||||
{ SDLK_UP, PBTN_UP },
|
||||
{ SDLK_DOWN, PBTN_DOWN },
|
||||
{ SDLK_LEFT, PBTN_LEFT },
|
||||
|
@ -45,9 +46,10 @@ const struct menu_keymap in_sdl_key_map[] = {
|
|||
{ SDLK_TAB, PBTN_R },
|
||||
{ SDLK_BACKSPACE, PBTN_L },
|
||||
};
|
||||
const int in_sdl_key_map_sz = sizeof(in_sdl_key_map) / sizeof(in_sdl_key_map[0]);
|
||||
const int in_sdl_key_map_sz = sizeof(_in_sdl_key_map) / sizeof(_in_sdl_key_map[0]);
|
||||
const struct menu_keymap *in_sdl_key_map = _in_sdl_key_map;
|
||||
|
||||
const struct menu_keymap in_sdl_joy_map[] = {
|
||||
const struct menu_keymap _in_sdl_joy_map[] = {
|
||||
{ SDLK_UP, PBTN_UP },
|
||||
{ SDLK_DOWN, PBTN_DOWN },
|
||||
{ SDLK_LEFT, PBTN_LEFT },
|
||||
|
@ -58,6 +60,11 @@ const struct menu_keymap in_sdl_joy_map[] = {
|
|||
{ SDLK_WORLD_2, PBTN_MA2 },
|
||||
{ SDLK_WORLD_3, PBTN_MA3 },
|
||||
};
|
||||
const int in_sdl_joy_map_sz = sizeof(in_sdl_joy_map) / sizeof(in_sdl_joy_map[0]);
|
||||
const int in_sdl_joy_map_sz = sizeof(_in_sdl_joy_map) / sizeof(_in_sdl_joy_map[0]);
|
||||
const struct menu_keymap *in_sdl_joy_map = _in_sdl_joy_map;
|
||||
|
||||
const char * const (*in_sdl_key_names)[SDLK_LAST] = NULL;
|
||||
const char * const *in_sdl_key_names = NULL;
|
||||
|
||||
void plat_target_setup_input(void)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ void parse_cmd_line(int argc, char *argv[])
|
|||
{
|
||||
int x, unrecognized = 0;
|
||||
|
||||
for (x = 1; x < argc; x++)
|
||||
for (x = 1; x < argc && !unrecognized; x++)
|
||||
{
|
||||
if (argv[x][0] == '-')
|
||||
{
|
||||
|
@ -47,15 +47,13 @@ void parse_cmd_line(int argc, char *argv[])
|
|||
if (x+2 < argc) { pdb_net_connect(argv[x+1], argv[x+2]); x += 2; }
|
||||
}
|
||||
else {
|
||||
unrecognized = 1;
|
||||
break;
|
||||
unrecognized = plat_parse_arg(argc, argv, &x);
|
||||
}
|
||||
} else {
|
||||
FILE *f = fopen(argv[x], "rb");
|
||||
if (f) {
|
||||
fclose(f);
|
||||
rom_fname_reload = argv[x];
|
||||
engineState = PGS_ReloadRom;
|
||||
}
|
||||
else
|
||||
unrecognized = 1;
|
||||
|
@ -95,12 +93,9 @@ int main(int argc, char *argv[])
|
|||
|
||||
emu_init();
|
||||
|
||||
engineState = PGS_Menu;
|
||||
engineState = rom_fname_reload ? PGS_ReloadRom : PGS_Menu;
|
||||
plat_video_menu_enter(0);
|
||||
|
||||
if (argc > 1)
|
||||
parse_cmd_line(argc, argv);
|
||||
|
||||
if (engineState == PGS_ReloadRom)
|
||||
{
|
||||
plat_video_menu_begin();
|
||||
|
|
|
@ -28,10 +28,58 @@ static struct area { int w, h; } area;
|
|||
|
||||
static struct in_pdata in_sdl_platform_data = {
|
||||
.defbinds = in_sdl_defbinds,
|
||||
.key_map = in_sdl_key_map,
|
||||
.joy_map = in_sdl_joy_map,
|
||||
};
|
||||
|
||||
struct plat_target plat_target;
|
||||
|
||||
#if defined __MIYOO__
|
||||
const char *plat_device = "miyoo";
|
||||
#elif defined __GCW0__
|
||||
const char *plat_device = "gcw0";
|
||||
#elif defined __RETROFW__
|
||||
const char *plat_device = "retrofw";
|
||||
#elif defined __DINGUX__
|
||||
const char *plat_device = "dingux";
|
||||
#else
|
||||
const char *plat_device = "";
|
||||
#endif
|
||||
|
||||
int plat_parse_arg(int argc, char *argv[], int *x)
|
||||
{
|
||||
#if defined __OPENDINGUX__
|
||||
if (*plat_device == '\0' && strcasecmp(argv[*x], "-device") == 0) {
|
||||
plat_device = argv[++(*x)];
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
void plat_early_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
int plat_target_init(void)
|
||||
{
|
||||
#if defined __ODBETA__
|
||||
if (*plat_device == '\0') {
|
||||
/* ODbeta should always have a device tree, get the model info from there */
|
||||
FILE *f = fopen("/proc/device-tree/compatible", "r");
|
||||
if (f) {
|
||||
char buf[10];
|
||||
int c = fread(buf, 1, sizeof(buf), f);
|
||||
if (strncmp(buf, "gcw,", 4) == 0)
|
||||
plat_device = "gcw0";
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
void plat_target_finish(void)
|
||||
{
|
||||
}
|
||||
|
||||
/* YUV stuff */
|
||||
static int yuv_ry[32], yuv_gy[32], yuv_by[32];
|
||||
static unsigned char yuv_u[32 * 2], yuv_v[32 * 2];
|
||||
|
@ -323,10 +371,6 @@ void plat_video_loop_prepare(void)
|
|||
plat_video_set_buffer(g_screen_ptr);
|
||||
}
|
||||
|
||||
void plat_early_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
static void plat_sdl_resize(int w, int h)
|
||||
{
|
||||
// take over new settings
|
||||
|
@ -392,9 +436,12 @@ void plat_init(void)
|
|||
g_screen_ppitch = 320;
|
||||
g_screen_ptr = shadow_fb;
|
||||
|
||||
plat_target_setup_input();
|
||||
in_sdl_platform_data.kmap_size = in_sdl_key_map_sz,
|
||||
in_sdl_platform_data.key_map = in_sdl_key_map,
|
||||
in_sdl_platform_data.jmap_size = in_sdl_joy_map_sz,
|
||||
in_sdl_platform_data.key_names = *in_sdl_key_names,
|
||||
in_sdl_platform_data.joy_map = in_sdl_joy_map,
|
||||
in_sdl_platform_data.key_names = in_sdl_key_names,
|
||||
in_sdl_init(&in_sdl_platform_data, plat_sdl_event_handler);
|
||||
in_probe();
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
|
||||
extern const struct in_default_bind in_sdl_defbinds[];
|
||||
extern const struct menu_keymap in_sdl_key_map[];
|
||||
extern const struct menu_keymap *in_sdl_key_map;
|
||||
extern const int in_sdl_key_map_sz;
|
||||
extern const struct menu_keymap in_sdl_joy_map[];
|
||||
extern const struct menu_keymap *in_sdl_joy_map;
|
||||
extern const int in_sdl_joy_map_sz;
|
||||
extern const char * const (*in_sdl_key_names)[SDLK_LAST];
|
||||
extern const char * const *in_sdl_key_names;
|
||||
extern const char *plat_device;
|
||||
|
||||
void linux_menu_init(void);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue