mirror of
https://github.com/Oibaf66/fbzx-wii.git
synced 2025-01-13 00:59:08 +01:00
Option to disable vk rumble, path is now remembered, optimization of path variables
This commit is contained in:
parent
c5487fa51d
commit
e68cedeed9
@ -164,9 +164,9 @@ struct virtkey *get_key_internal()
|
|||||||
i = y/key_h*KEY_COLS + x/key_w;
|
i = y/key_h*KEY_COLS + x/key_w;
|
||||||
|
|
||||||
#ifdef GEKKO
|
#ifdef GEKKO
|
||||||
WPAD_Rumble(0, 1);
|
if (ordenador.vk_rumble) WPAD_Rumble(0, 1);
|
||||||
SDL_Delay(90);
|
SDL_Delay(90);
|
||||||
WPAD_Rumble(0, 0);
|
if (ordenador.vk_rumble) WPAD_Rumble(0, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtkey_t *key = &keys[i];
|
virtkey_t *key = &keys[i];
|
||||||
@ -214,7 +214,7 @@ void virtkey_ir_run(void)
|
|||||||
static char countdown_rumble=0;
|
static char countdown_rumble=0;
|
||||||
|
|
||||||
#ifdef GEKKO
|
#ifdef GEKKO
|
||||||
if (countdown_rumble > 0) {countdown_rumble--; if (countdown_rumble==0) WPAD_Rumble(0, 0);}
|
if (countdown_rumble > 0) {countdown_rumble--; if ((countdown_rumble==0)&&(ordenador.vk_rumble)) WPAD_Rumble(0, 0);}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
joy = ordenador.joystick_sdl[0];
|
joy = ordenador.joystick_sdl[0];
|
||||||
@ -239,7 +239,7 @@ void virtkey_ir_run(void)
|
|||||||
if ((x>0)&&(x< KEY_COLS*key_w)&&(y>0)&&(y< KEY_ROWS*key_h))
|
if ((x>0)&&(x< KEY_COLS*key_w)&&(y>0)&&(y< KEY_ROWS*key_h))
|
||||||
{
|
{
|
||||||
#ifdef GEKKO
|
#ifdef GEKKO
|
||||||
WPAD_Rumble(0, 1);
|
if (ordenador.vk_rumble) WPAD_Rumble(0, 1);
|
||||||
#endif
|
#endif
|
||||||
countdown_rumble=5;
|
countdown_rumble=5;
|
||||||
|
|
||||||
|
@ -107,6 +107,7 @@ void computer_init () { //Called only on start-up
|
|||||||
ordenador.joystick[0] = 1; //Kemposton
|
ordenador.joystick[0] = 1; //Kemposton
|
||||||
ordenador.joystick[1] = 0; // Cursor
|
ordenador.joystick[1] = 0; // Cursor
|
||||||
ordenador.vk_auto = 0; //Vk called by +
|
ordenador.vk_auto = 0; //Vk called by +
|
||||||
|
ordenador.vk_rumble = 1; //enabled
|
||||||
ordenador.rumble[0] = 0;
|
ordenador.rumble[0] = 0;
|
||||||
ordenador.rumble[1] = 0;
|
ordenador.rumble[1] = 0;
|
||||||
ordenador.turbo = 0;
|
ordenador.turbo = 0;
|
||||||
|
@ -236,6 +236,7 @@ struct computer {
|
|||||||
unsigned char joypad_as_joystick[2];
|
unsigned char joypad_as_joystick[2];
|
||||||
unsigned char rumble[2];
|
unsigned char rumble[2];
|
||||||
unsigned char vk_auto;
|
unsigned char vk_auto;
|
||||||
|
unsigned char vk_rumble;
|
||||||
unsigned char vk_is_active;
|
unsigned char vk_is_active;
|
||||||
unsigned char port; //SD, USB, SMB or FTP
|
unsigned char port; //SD, USB, SMB or FTP
|
||||||
unsigned char smb_enable;
|
unsigned char smb_enable;
|
||||||
|
@ -714,7 +714,7 @@ int save_config(struct computer *object, char *filename) {
|
|||||||
fprintf(fconfig,"autoconf=%c%c",48+object->autoconf,10);
|
fprintf(fconfig,"autoconf=%c%c",48+object->autoconf,10);
|
||||||
fprintf(fconfig,"turbo=%c%c",48+object->turbo,10);
|
fprintf(fconfig,"turbo=%c%c",48+object->turbo,10);
|
||||||
fprintf(fconfig,"vk_auto=%c%c",48+object->vk_auto,10);
|
fprintf(fconfig,"vk_auto=%c%c",48+object->vk_auto,10);
|
||||||
|
fprintf(fconfig,"vk_rumble=%c%c",48+object->vk_rumble,10);
|
||||||
|
|
||||||
for (joy_n=0; joy_n<2; joy_n++)
|
for (joy_n=0; joy_n<2; joy_n++)
|
||||||
for (key=0; key<22; key++)
|
for (key=0; key<22; key++)
|
||||||
@ -882,7 +882,7 @@ int load_config(struct computer *object, char *filename) {
|
|||||||
FILE *fconfig;
|
FILE *fconfig;
|
||||||
unsigned char volume=255,mode128k=255,issue=255,ntsc=255, joystick1=255,joystick2=255,ay_emul=255,mdr_active=255,
|
unsigned char volume=255,mode128k=255,issue=255,ntsc=255, joystick1=255,joystick2=255,ay_emul=255,mdr_active=255,
|
||||||
dblscan=255,framerate =255, screen =255, text=255, precision=255, bw=255, tap_fast=255, audio_mode=255,
|
dblscan=255,framerate =255, screen =255, text=255, precision=255, bw=255, tap_fast=255, audio_mode=255,
|
||||||
joypad1=255, joypad2=255, rumble1=255, rumble2=255, joy_n=255, key_n=255, port=255, autoconf=255, turbo=225, vk_auto=255;
|
joypad1=255, joypad2=255, rumble1=255, rumble2=255, joy_n=255, key_n=255, port=255, autoconf=255, turbo=225, vk_auto=255, vk_rumble=255;
|
||||||
|
|
||||||
if (filename) strcpy(config_path,filename);
|
if (filename) strcpy(config_path,filename);
|
||||||
else return -2;
|
else return -2;
|
||||||
@ -1012,6 +1012,10 @@ int load_config(struct computer *object, char *filename) {
|
|||||||
vk_auto=line[8]-'0';
|
vk_auto=line[8]-'0';
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!strncmp(line,"vk_rumble=",10)) {
|
||||||
|
vk_rumble=line[10]-'0';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!strncmp(line,"joybutton_",10)) {
|
if (!strncmp(line,"joybutton_",10)) {
|
||||||
sscanf(line, "joybutton_%c_%c=%3d",&joy_n ,&key_n, &key_sdl);
|
sscanf(line, "joybutton_%c_%c=%3d",&joy_n ,&key_n, &key_sdl);
|
||||||
if ((joy_n<50) && (joy_n>47) && (key_n<119) && (key_n>96))
|
if ((joy_n<50) && (joy_n>47) && (key_n<119) && (key_n>96))
|
||||||
@ -1093,7 +1097,9 @@ int load_config(struct computer *object, char *filename) {
|
|||||||
if (vk_auto<2) {
|
if (vk_auto<2) {
|
||||||
object->vk_auto=vk_auto;
|
object->vk_auto=vk_auto;
|
||||||
}
|
}
|
||||||
|
if (vk_rumble<2) {
|
||||||
|
object->vk_rumble=vk_rumble;
|
||||||
|
}
|
||||||
fclose(fconfig);
|
fclose(fconfig);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -148,16 +148,16 @@ static const char *microdrive_messages[] = {
|
|||||||
static const char *tools_messages[] = {
|
static const char *tools_messages[] = {
|
||||||
/*00*/ "Screen shot",
|
/*00*/ "Screen shot",
|
||||||
/*01*/ "^|Save1|Save2|Load|Delete",
|
/*01*/ "^|Save1|Save2|Load|Delete",
|
||||||
/*02*/ " ",
|
/*02*/ "Port",
|
||||||
/*03*/ "Insert poke",
|
/*03*/ "^|default|sd|usb|smb|ftp",
|
||||||
/*04*/ " ",
|
/*04*/ "Auto virtual keyboard",
|
||||||
/*05*/ "Load poke file",
|
/*05*/ "^|on|off",
|
||||||
/*06*/ " ",
|
/*06*/ "Keyboard rumble",
|
||||||
/*07*/ "Port",
|
/*07*/ "^|on|off",
|
||||||
/*08*/ "^|default|sd|usb|smb|ftp",
|
/*08*/ " ",
|
||||||
/*09*/ " ",
|
/*09*/ "Load poke file",
|
||||||
/*10*/ "Auto virtual keyboard",
|
/*10*/ " ",
|
||||||
/*11*/ "^|on|off",
|
/*11*/ "Insert poke",
|
||||||
/*12*/ " ",
|
/*12*/ " ",
|
||||||
/*13*/ "Help",
|
/*13*/ "Help",
|
||||||
NULL
|
NULL
|
||||||
@ -1386,7 +1386,7 @@ int parse_poke (const char *filename)
|
|||||||
|
|
||||||
static int load_poke_file()
|
static int load_poke_file()
|
||||||
{
|
{
|
||||||
const char *dir = path_poke;
|
char *dir = path_poke;
|
||||||
int ritorno, retorno2;
|
int ritorno, retorno2;
|
||||||
ritorno=0;
|
ritorno=0;
|
||||||
retorno2=0; //Stay in menu as default
|
retorno2=0; //Stay in menu as default
|
||||||
@ -1455,7 +1455,7 @@ switch (which)
|
|||||||
static int tools()
|
static int tools()
|
||||||
{
|
{
|
||||||
int opt , retorno;
|
int opt , retorno;
|
||||||
int submenus[3];
|
int submenus[4];
|
||||||
|
|
||||||
memset(submenus, 0, sizeof(submenus));
|
memset(submenus, 0, sizeof(submenus));
|
||||||
|
|
||||||
@ -1464,6 +1464,7 @@ static int tools()
|
|||||||
|
|
||||||
submenus[1] = ordenador.port;
|
submenus[1] = ordenador.port;
|
||||||
submenus[2] = !ordenador.vk_auto;
|
submenus[2] = !ordenador.vk_auto;
|
||||||
|
submenus[3] = !ordenador.vk_rumble;
|
||||||
|
|
||||||
opt = menu_select_title("Tools menu",
|
opt = menu_select_title("Tools menu",
|
||||||
tools_messages, submenus);
|
tools_messages, submenus);
|
||||||
@ -1472,18 +1473,19 @@ static int tools()
|
|||||||
|
|
||||||
set_port(submenus[1]);
|
set_port(submenus[1]);
|
||||||
ordenador.vk_auto = !submenus[2];
|
ordenador.vk_auto = !submenus[2];
|
||||||
|
ordenador.vk_rumble = !submenus[3];
|
||||||
|
|
||||||
switch(opt)
|
switch(opt)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
retorno = manage_scr(submenus[0]);
|
retorno = manage_scr(submenus[0]);
|
||||||
break;
|
break;
|
||||||
case 3: // Insert poke
|
case 9: // Load poke file
|
||||||
retorno = do_poke_sdl();
|
|
||||||
break;
|
|
||||||
case 5: // Load poke file
|
|
||||||
retorno = load_poke_file();
|
retorno = load_poke_file();
|
||||||
break;
|
break;
|
||||||
|
case 11: // Insert poke
|
||||||
|
retorno = do_poke_sdl();
|
||||||
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
help();
|
help();
|
||||||
retorno = -1;
|
retorno = -1;
|
||||||
@ -1519,7 +1521,7 @@ void virtual_keyboard(void)
|
|||||||
|
|
||||||
static int save_load_snapshot(int which)
|
static int save_load_snapshot(int which)
|
||||||
{
|
{
|
||||||
const char *dir = path_snaps;
|
char *dir = path_snaps;
|
||||||
const char *tape = ordenador.last_selected_file;
|
const char *tape = ordenador.last_selected_file;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
char db[256];
|
char db[256];
|
||||||
@ -1616,7 +1618,7 @@ static int save_load_snapshot(int which)
|
|||||||
|
|
||||||
static int save_load_game_configurations(int which)
|
static int save_load_game_configurations(int which)
|
||||||
{
|
{
|
||||||
const char *dir = path_confs;
|
char *dir = path_confs;
|
||||||
const char *tape = ordenador.last_selected_file;
|
const char *tape = ordenador.last_selected_file;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
char db[256];
|
char db[256];
|
||||||
|
@ -1171,7 +1171,7 @@ static const char *menu_select_file_internal_zip(char *path,
|
|||||||
ptr_selected_file= strrchr(selected_file,'/');
|
ptr_selected_file= strrchr(selected_file,'/');
|
||||||
if (ptr_selected_file) ptr_selected_file++;
|
if (ptr_selected_file) ptr_selected_file++;
|
||||||
else ptr_selected_file = selected_file;
|
else ptr_selected_file = selected_file;
|
||||||
snprintf(buf,64,"file:%s",ptr_selected_file);
|
snprintf(buf,64,"Selected file:%s",ptr_selected_file);
|
||||||
opt = menu_select_sized(buf, file_list, NULL, 0, x, y, x2, y2, NULL, NULL, 16, draw_scr);
|
opt = menu_select_sized(buf, file_list, NULL, 0, x, y, x2, y2, NULL, NULL, 16, draw_scr);
|
||||||
}
|
}
|
||||||
else opt = menu_select_sized("Select file", file_list, NULL, 0, x, y, x2, y2, NULL, NULL ,16, draw_scr);
|
else opt = menu_select_sized("Select file", file_list, NULL, 0, x, y, x2, y2, NULL, NULL ,16, draw_scr);
|
||||||
@ -1269,7 +1269,7 @@ static const char *menu_select_file_internal_zip(char *path,
|
|||||||
return write_filename;
|
return write_filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *menu_select_file_internal(const char *dir_path,
|
static const char *menu_select_file_internal(char *dir_path,
|
||||||
int x, int y, int x2, int y2, const char *selected_file, int draw_scr)
|
int x, int y, int x2, int y2, const char *selected_file, int draw_scr)
|
||||||
{
|
{
|
||||||
const char **file_list = get_file_list(dir_path);
|
const char **file_list = get_file_list(dir_path);
|
||||||
@ -1277,6 +1277,7 @@ static const char *menu_select_file_internal(const char *dir_path,
|
|||||||
char *out;
|
char *out;
|
||||||
char *out_zip;
|
char *out_zip;
|
||||||
const char *ptr_selected_file;
|
const char *ptr_selected_file;
|
||||||
|
char *updir;
|
||||||
int opt;
|
int opt;
|
||||||
int i;
|
int i;
|
||||||
char buf[64];
|
char buf[64];
|
||||||
@ -1289,7 +1290,7 @@ static const char *menu_select_file_internal(const char *dir_path,
|
|||||||
ptr_selected_file= strrchr(selected_file,'/');
|
ptr_selected_file= strrchr(selected_file,'/');
|
||||||
if (ptr_selected_file) ptr_selected_file++;
|
if (ptr_selected_file) ptr_selected_file++;
|
||||||
else ptr_selected_file = selected_file;
|
else ptr_selected_file = selected_file;
|
||||||
snprintf(buf,64,"file:%s",ptr_selected_file);
|
snprintf(buf,64,"Selected file:%s",ptr_selected_file);
|
||||||
opt = menu_select_sized(buf, file_list, NULL, 0, x, y, x2, y2, NULL, NULL, 16, draw_scr);
|
opt = menu_select_sized(buf, file_list, NULL, 0, x, y, x2, y2, NULL, NULL, 16, draw_scr);
|
||||||
}
|
}
|
||||||
else opt = menu_select_sized("Select file", file_list, NULL, 0, x, y, x2, y2, NULL, NULL ,16, draw_scr);
|
else opt = menu_select_sized("Select file", file_list, NULL, 0, x, y, x2, y2, NULL, NULL ,16, draw_scr);
|
||||||
@ -1305,23 +1306,38 @@ static const char *menu_select_file_internal(const char *dir_path,
|
|||||||
|
|
||||||
if (!sel)
|
if (!sel)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (!strcmp(sel,"[..]")) //selected "[..]"
|
||||||
|
{
|
||||||
|
free((void*)sel);
|
||||||
|
updir=strrchr(dir_path,'/');
|
||||||
|
if ((updir!=NULL)&&(updir!=dir_path)) // or "/" and not root dir
|
||||||
|
*updir=0; //trunk dir_path at last /
|
||||||
|
|
||||||
|
return menu_select_file(dir_path, selected_file, draw_scr);
|
||||||
|
}
|
||||||
/* If this is a folder, enter it recursively */
|
/* If this is a folder, enter it recursively */
|
||||||
if (sel[0] == '[')
|
if (sel[0] == '[')
|
||||||
{
|
{
|
||||||
char buf[255];
|
|
||||||
int len = strlen(sel);
|
int len = strlen(sel);
|
||||||
int s;
|
|
||||||
|
|
||||||
/* Remove trailing ] */
|
/* Remove trailing ] */
|
||||||
sel[len-1] = '\0';
|
sel[len-1] = '\0';
|
||||||
s = snprintf(buf, 128, "%s/%s", dir_path, sel + 1);
|
if ((strlen(dir_path) + len) < 2049)
|
||||||
|
{
|
||||||
|
strcat(dir_path, "/");
|
||||||
|
strcat(dir_path, sel+1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
free((void*)sel);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* We don't need this anymore */
|
/* We don't need this anymore */
|
||||||
free((void*)sel);
|
free((void*)sel);
|
||||||
/* Too deep recursion! */
|
|
||||||
if (s >= sizeof(buf))
|
return menu_select_file(dir_path, selected_file, draw_scr);
|
||||||
return NULL;
|
|
||||||
return menu_select_file(buf, selected_file, draw_scr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1345,7 +1361,7 @@ static const char *menu_select_file_internal(const char *dir_path,
|
|||||||
else return out;
|
else return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *menu_select_file(const char *dir_path,const char *selected_file, int draw_scr)
|
const char *menu_select_file(char *dir_path,const char *selected_file, int draw_scr)
|
||||||
{
|
{
|
||||||
if (dir_path == NULL)
|
if (dir_path == NULL)
|
||||||
dir_path = "";
|
dir_path = "";
|
||||||
|
@ -51,7 +51,7 @@ void print_font(SDL_Surface *screen, int r, int g, int b, int x, int y, const ch
|
|||||||
/* Various option selects */
|
/* Various option selects */
|
||||||
int menu_select_title(const char *title, const char **pp_msgs, int *p_submenus);
|
int menu_select_title(const char *title, const char **pp_msgs, int *p_submenus);
|
||||||
int menu_select(const char **pp_msgs, int *p_submenus);
|
int menu_select(const char **pp_msgs, int *p_submenus);
|
||||||
const char *menu_select_file(const char *dir_path,const char *selected_file, int draw_scr);
|
const char *menu_select_file(char *dir_path,const char *selected_file, int draw_scr);
|
||||||
|
|
||||||
|
|
||||||
uint32_t menu_wait_key_press();
|
uint32_t menu_wait_key_press();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user