Merge remote-tracking branch 'origin/horace' into dev

This commit is contained in:
Dimitris Panokostas 2019-08-05 16:09:55 +02:00
commit 08a4bc164e
3 changed files with 121 additions and 37 deletions

View file

@ -531,7 +531,7 @@ int find_retroarch(const TCHAR* find_setting, char* retroarch_file, host_input_b
std::string line;
std::string delimiter = " = ";
auto tempbutton = -1;
auto tempbutton = 0;
// read each line in
while (std::getline(readFile, line))
@ -552,30 +552,38 @@ int find_retroarch(const TCHAR* find_setting, char* retroarch_file, host_input_b
param.erase(param.length() - 1, 1);
// time to get the output number
if (param.at(0) != 'h') // check it isnt some kind of hat starting 'h' (so if D-pad uses buttons)
tempbutton = abs(atol(param.c_str()));
if (param.find("h") != 0) // check it isnt some kind of hat starting 'h' (so if D-pad uses buttons)
{ tempbutton = abs(atol(param.c_str()));
}
else
{
tempbutton = -1;
}
// gets the parameter
// this will need something separate to pull out the number of hats
// use SET_BIT on hX numbers
if (strncmp(find_setting, "count_hats", 11) == 0 && param.at(0) == 'h')
{
if (param.at(1) == '0') { SET_BIT(tempbutton, 0); }
if (param.at(1) == '1') { SET_BIT(tempbutton, 1); }
if (param.at(1) == '2') { SET_BIT(tempbutton, 2); }
if (param.at(1) == '3') { SET_BIT(tempbutton, 3); }
}
if (strncmp(find_setting, "count_hats", 10) == 0 && param.find("h0") == 0)
{
tempbutton = 1;
break;
}
//else if (param.find("h0") == 0)
//{
//}
// ok, this is the 'normal' storing of values
if (option == find_setting)
break;
if (strncmp(find_setting, "count_hats", 11) != 0)
tempbutton = -1;
// ignore anthing that isnt our special case(s), and keep looping
//if (strncmp(find_setting, "count_hats", 10) != 0)
// tempbutton = -1;
}
}
write_log("Controller Detection: %s : %d\n",find_setting,tempbutton);
return tempbutton;
}
@ -713,6 +721,8 @@ static int init_joystick(void)
{
struct host_keyboard_button temp_keyboard_buttons{};
auto tempkey = find_retroarch_key("input_player1_y", retroarch_file);
auto x = find_string_in_array(remap_key_map_list_strings, remap_key_map_list_size, tempkey);
temp_keyboard_buttons.north_button = remap_key_map_list[x];
@ -804,10 +814,9 @@ static int init_joystick(void)
if (SDL_JoystickNameForIndex(cpt) != nullptr)
strncpy(joystick_name[cpt], SDL_JoystickNameForIndex(cpt), sizeof joystick_name[cpt] - 1);
#endif
else
sprintf(joystick_name[cpt], "Joystick%d", cpt);
// printf("Real Name >>%s<<\n",joystick_name[cpt]);
//else
//sprintf(joystick_name[cpt], "Joystick%d", cpt);
write_log("Controller Detection for Device: %s \n",joystick_name[cpt]);
//this now uses controllers path (in tmp)
char control_config[255];
@ -906,22 +915,22 @@ static int init_joystick(void)
host_input_buttons[cpt].lstick_axis_x_invert = find_retroarch_polarity(
"input_right_axis", control_config);
if (!host_input_buttons[cpt].lstick_axis_x_invert)
host_input_buttons[cpt].lstick_axis_x_invert = find_retroarch_polarity(
"input_l_x_plus_axis", control_config);
host_input_buttons[cpt].rstick_axis_x_invert = find_retroarch_polarity(
"input_r_x_plus_axis", control_config);
host_input_buttons[cpt].rstick_axis_y_invert = find_retroarch_polarity(
"input_r_y_plus_axis", control_config);
host_input_buttons[cpt].lstick_axis_x_invert = find_retroarch_polarity("input_l_x_plus_axis", control_config);
host_input_buttons[cpt].rstick_axis_x_invert = find_retroarch_polarity("input_r_x_plus_axis", control_config);
host_input_buttons[cpt].rstick_axis_y_invert = find_retroarch_polarity("input_r_y_plus_axis", control_config);
//i'll just leave this here for when we have a working debug logging
write_log("Controller Detection: invert left y axis: %d\n",host_input_buttons[cpt].lstick_axis_y_invert);
write_log("Controller Detection: invert left x axis: %d\n",host_input_buttons[cpt].lstick_axis_x_invert);
write_log("Controller Detection: invert right y axis: %d\n",host_input_buttons[cpt].rstick_axis_y_invert);
write_log("Controller Detection: invert right x axis: %d\n",host_input_buttons[cpt].rstick_axis_x_invert);
//input_state_slot_increase_axis
//input_state_slot_decrease_axis
//i'll just leave this here for when we have a working debug logging
// printf("invert left y axis: %d\n",host_input_buttons[cpt].lstick_axis_y_invert);
// printf("invert left x axis: %d\n",host_input_buttons[cpt].lstick_axis_x_invert);
// printf("invert right y axis: %d\n",host_input_buttons[cpt].rstick_axis_y_invert);
// printf("invert right x axis: %d\n",host_input_buttons[cpt].rstick_axis_x_invert);
//
//input_state_slot_increase_axis
//input_state_slot_decrease_axis
} // end of .cfg file found
else // do manual checks if there is no .cfg

View file

@ -49,6 +49,7 @@ struct game_options
TCHAR cpu_24bit[256] = "nul\0";
TCHAR sprites[256] = "nul\0";
TCHAR scr_height[256] = "nul\0";
TCHAR scr_width[256] = "nul\0";
TCHAR y_offset[256] = "nul\0";
TCHAR ntsc[256] = "nul\0";
TCHAR chip[256] = "nul\0";
@ -77,6 +78,9 @@ struct host_options
TCHAR aspect_ratio[256] = "nul\0";
TCHAR line_double[256] = "nul\0";
TCHAR fixed_height[256] = "nul\0";
TCHAR fixed_width[256] = "nul\0";
TCHAR fixed_cd32_height[256] = "nul\0";
TCHAR fixed_cd32_width[256] = "nul\0";
};
static xmlNode* get_node(xmlNode* node, const char* name)
@ -238,6 +242,7 @@ struct game_options get_game_settings(char* HW)
strcpy(output_detail.cpu_comp, find_whdload_game_option("CPU_COMPATIBLE", HW).c_str());
strcpy(output_detail.sprites, find_whdload_game_option("SPRITES", HW).c_str());
strcpy(output_detail.scr_height, find_whdload_game_option("SCREEN_HEIGHT", HW).c_str());
strcpy(output_detail.scr_width, find_whdload_game_option("SCREEN_WIDTH", HW).c_str());
strcpy(output_detail.y_offset, find_whdload_game_option("SCREEN_Y_OFFSET", HW).c_str());
strcpy(output_detail.ntsc, find_whdload_game_option("NTSC", HW).c_str());
strcpy(output_detail.fast, find_whdload_game_option("FAST_RAM", HW).c_str());
@ -268,7 +273,10 @@ struct host_options get_host_settings(char* HW)
strcpy(output_detail.frameskip, find_whdload_game_option("FRAMESKIP", HW).c_str());
strcpy(output_detail.line_double, find_whdload_game_option("LINE_DOUBLING", HW).c_str());
strcpy(output_detail.fixed_height, find_whdload_game_option("FIXED_HEIGHT", HW).c_str());
strcpy(output_detail.fixed_width, find_whdload_game_option("FIXED_WIDTH", HW).c_str());
strcpy(output_detail.fixed_cd32_height, find_whdload_game_option("FIXED_CD32_HEIGHT", HW).c_str());
strcpy(output_detail.fixed_cd32_width, find_whdload_game_option("FIXED_CD32_WIDTH", HW).c_str());
return output_detail;
}
@ -415,6 +423,17 @@ void cd_auto_prefs(struct uae_prefs* p, char* filepath)
host_detail = get_host_settings(hardware_settings);
}
write_log("AutoBooter - Host: Controller 1 : %s \n", host_detail.controller1);
write_log("AutoBooter - Host: Controller 2 : %s \n", host_detail.controller2);
write_log("AutoBooter - Host: Controller 3 : %s \n", host_detail.controller3);
write_log("AutoBooter - Host: Controller 4 : %s \n", host_detail.controller4);
write_log("AutoBooter - Host: Mouse 1 : %s \n", host_detail.mouse1);
write_log("AutoBooter - Host: Mouse 2 : %s \n", host_detail.mouse2);
write_log("AutoBooter - Host: Fixed CD32 Hei't: %s \n", host_detail.fixed_cd32_height);
write_log("AutoBooter - Host: Fixed CD32 Width: %s \n", host_detail.fixed_cd32_width);
//
// *** EMULATED HARDWARE ***
//
@ -509,6 +528,29 @@ void cd_auto_prefs(struct uae_prefs* p, char* filepath)
_stprintf(txt2, "%s=joy1", _T("joyport1"));
cfgfile_parse_line(p, txt2, 0);
}
if (strcmpi(host_detail.fixed_cd32_height, "nul") != 0)
{
_stprintf(txt2, "gfx_height=%s", host_detail.fixed_cd32_height);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_height_windowed=%s", host_detail.fixed_cd32_height);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_height_fullscreen=%s", host_detail.fixed_cd32_height);
cfgfile_parse_line(p, txt2, 0);
}
if (strcmpi(host_detail.fixed_cd32_width, "nul") != 0)
{
_stprintf(txt2, "gfx_width=%s", host_detail.fixed_cd32_width);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_width_windowed=%s", host_detail.fixed_cd32_width);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_width_fullscreen=%s", host_detail.fixed_cd32_width);
cfgfile_parse_line(p, txt2, 0);
}
}
@ -796,7 +838,9 @@ void whdload_auto_prefs(struct uae_prefs* p, char* filepath)
write_log("WHDBooter - Game: Chipset : %s \n", game_detail.chipset);
write_log("WHDBooter - Game: JIT : %s \n", game_detail.jit);
write_log("WHDBooter - Game: CPU Compat : %s \n", game_detail.cpu_comp);
write_log("WHDBooter - Game: Sprite Col : %s \n", game_detail.sprites);
write_log("WHDBooter - Game: Scr Height : %s \n", game_detail.scr_height);
write_log("WHDBooter - Game: Scr Width : %s \n", game_detail.scr_width);
write_log("WHDBooter - Game: Scr YOffset: %s \n", game_detail.y_offset);
write_log("WHDBooter - Game: NTSC : %s \n", game_detail.ntsc);
write_log("WHDBooter - Game: Fast Ram : %s \n", game_detail.fast);
@ -821,6 +865,10 @@ void whdload_auto_prefs(struct uae_prefs* p, char* filepath)
//printf("aspect: %s \n", host_detail.aspect_ratio);
//printf("frames: %s \n", host_detail.frameskip);
write_log("WHDBooter - Host: Fixed Height : %s \n", host_detail.fixed_height);
write_log("WHDBooter - Host: Fixed Width : %s \n", host_detail.fixed_width);
write_log("WHDBooter - Host: Fixed CD32 Hei't: %s \n", host_detail.fixed_cd32_height);
write_log("WHDBooter - Host: Fixed CD32 Width: %s \n", host_detail.fixed_cd32_width);
//
// *** EMULATED HARDWARE ***
//
@ -1245,6 +1293,25 @@ void whdload_auto_prefs(struct uae_prefs* p, char* filepath)
cfgfile_parse_line(p, txt2, 0);
}
if (strcmpi(host_detail.fixed_width, "nul") != 0)
{
_stprintf(txt2, "gfx_width=%s", host_detail.fixed_width);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_width_windowed=%s", host_detail.fixed_width);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_width_fullscreen=%s", host_detail.fixed_width);
cfgfile_parse_line(p, txt2, 0);
}
else if (strcmpi(game_detail.scr_width, "nul") != 0)
{
_stprintf(txt2, "gfx_width=%s", game_detail.scr_width);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_width_windowed=%s", game_detail.scr_width);
cfgfile_parse_line(p, txt2, 0);
_stprintf(txt2, "gfx_width_fullscreen=%s", game_detail.scr_width);
cfgfile_parse_line(p, txt2, 0);
}
// Y OFFSET
if (strcmpi(game_detail.y_offset, "nul") != 0)
{
@ -1253,7 +1320,7 @@ void whdload_auto_prefs(struct uae_prefs* p, char* filepath)
}
// SPRITE COLLISION
if (strcmpi(game_detail.scr_height, "nul") != 0)
if (strcmpi(game_detail.sprites, "nul") != 0)
{
_stprintf(txt2, "collision_level=%s", game_detail.sprites);
cfgfile_parse_line(p, txt2, 0);

View file

@ -206,12 +206,20 @@ public:
{ auto afile = popen(download_command, "r");
pclose(afile);
}
// download boot-data.zip
snprintf(xml_path, MAX_DPATH, "%s/whdboot/boot-data.zip", start_path_data);
snprintf(download_command, MAX_DPATH, "wget -np -nv -O %s https://github.com/midwan/amiberry/blob/master/whdboot/boot-data.zip?raw=true",xml_path);
if (!zfile_exists(xml_path)) // ??
{ auto afile = popen(download_command, "r");
pclose(afile);
}
// download kickstart RTB files for maximum compatibility
snprintf(xml_path, MAX_DPATH, "kick33180.A500.RTB");
download_rtb(xml_path);
snprintf(xml_path, MAX_DPATH, "kick33192.A500.RTB");
download_rtb(xml_path);
//snprintf(xml_path, MAX_DPATH, "kick33192.A500.RTB");
//download_rtb(xml_path);
snprintf(xml_path, MAX_DPATH, "kick34005.A500.RTB");
download_rtb(xml_path);
snprintf(xml_path, MAX_DPATH, "kick40063.A600.RTB");