mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-02-16 01:18:54 +00:00
Merge branch 'master' of https://github.com/Themaister/RetroArch
This commit is contained in:
commit
baa174e5bf
@ -28,8 +28,8 @@
|
||||
|
||||
CRetroArch app;
|
||||
HXUIOBJ hCur;
|
||||
filebrowser_t browser;
|
||||
filebrowser_t tmp_browser;
|
||||
filebrowser_t *browser;
|
||||
filebrowser_t *tmp_browser;
|
||||
uint32_t set_shader = 0;
|
||||
wchar_t strw_buffer[PATH_MAX];
|
||||
|
||||
@ -89,10 +89,10 @@ HRESULT CRetroArchFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
|
||||
GetChildById(L"XuiBtnGameDir", &m_dir_game);
|
||||
GetChildById(L"XuiBtnCacheDir", &m_dir_cache);
|
||||
|
||||
filebrowser_set_root(&browser, g_console.default_rom_startup_dir);
|
||||
strlcpy(tmp_browser.extensions, rarch_console_get_rom_ext(), sizeof(tmp_browser.extensions));
|
||||
filebrowser_set_root(browser, g_console.default_rom_startup_dir);
|
||||
strlcpy(tmp_browser->extensions, rarch_console_get_rom_ext(), sizeof(tmp_browser->extensions));
|
||||
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir,
|
||||
&browser, &m_romlist, &m_rompathtitle);
|
||||
browser, &m_romlist, &m_rompathtitle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -103,9 +103,9 @@ HRESULT CRetroArchCoreBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
|
||||
GetChildById(L"XuiBackButton1", &m_back);
|
||||
GetChildById(L"XuiTxtRomPath", &m_rompathtitle);
|
||||
|
||||
filebrowser_set_root(&tmp_browser, "game:");
|
||||
strlcpy(tmp_browser.extensions, "xex|XEX", sizeof(tmp_browser.extensions));
|
||||
filebrowser_fetch_directory_entries("game:", &tmp_browser, &m_romlist, &m_rompathtitle);
|
||||
filebrowser_set_root(tmp_browser, "game:");
|
||||
strlcpy(tmp_browser->extensions, "xex|XEX", sizeof(tmp_browser->extensions));
|
||||
filebrowser_fetch_directory_entries("game:", tmp_browser, &m_romlist, &m_rompathtitle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -116,9 +116,9 @@ HRESULT CRetroArchShaderBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandl
|
||||
GetChildById(L"XuiBackButton1", &m_back);
|
||||
GetChildById(L"XuiTxtRomPath", &m_shaderpathtitle);
|
||||
|
||||
filebrowser_set_root(&tmp_browser, "game:\\media\\shaders");
|
||||
strlcpy(tmp_browser.extensions, "cg|CG", sizeof(tmp_browser.extensions));
|
||||
filebrowser_fetch_directory_entries("game:\\media\\shaders", &tmp_browser,
|
||||
filebrowser_set_root(tmp_browser, "game:\\media\\shaders");
|
||||
strlcpy(tmp_browser->extensions, "cg|CG", sizeof(tmp_browser->extensions));
|
||||
filebrowser_fetch_directory_entries("game:\\media\\shaders", tmp_browser,
|
||||
&m_shaderlist, &m_shaderpathtitle);
|
||||
|
||||
return 0;
|
||||
@ -544,35 +544,35 @@ HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
|
||||
{
|
||||
int index = m_romlist.GetCurSel();
|
||||
const char *strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_romlist.GetText(index));
|
||||
if(path_file_exists(browser.current_dir.list->elems[index].data))
|
||||
if(path_file_exists(browser->current_dir.list->elems[index].data))
|
||||
{
|
||||
char path_tmp[1024];
|
||||
struct retro_system_info info;
|
||||
retro_get_system_info(&info);
|
||||
bool block_zip_extract = info.block_extract;
|
||||
|
||||
snprintf(path_tmp, sizeof(path_tmp), "%s\\%s", filebrowser_get_current_dir(&browser), strbuffer);
|
||||
snprintf(path_tmp, sizeof(path_tmp), "%s\\%s", filebrowser_get_current_dir(browser), strbuffer);
|
||||
if((strstr(strbuffer, ".zip") || strstr(strbuffer, ".ZIP")) && !block_zip_extract)
|
||||
rarch_extract_zipfile(path_tmp);
|
||||
else
|
||||
rarch_console_load_game(path_tmp);
|
||||
}
|
||||
else if(browser.current_dir.list->elems[index].attr.b)
|
||||
else if(browser->current_dir.list->elems[index].attr.b)
|
||||
{
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(&browser), strbuffer);
|
||||
filebrowser_fetch_directory_entries(path, &browser, &m_romlist, &m_rompathtitle);
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), strbuffer);
|
||||
filebrowser_fetch_directory_entries(path, browser, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
}
|
||||
else if (hObjPressed == m_dir_game)
|
||||
{
|
||||
filebrowser_new(&browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
|
||||
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir, &browser, &m_romlist, &m_rompathtitle);
|
||||
filebrowser_new(browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
|
||||
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir, browser, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
#ifdef HAVE_HDD_CACHE_PARTITION
|
||||
else if (hObjPressed == m_dir_cache)
|
||||
{
|
||||
filebrowser_new(&browser, "cache:", rarch_console_get_rom_ext());
|
||||
filebrowser_fetch_directory_entries("cache:", &browser, &m_romlist, &m_rompathtitle);
|
||||
filebrowser_new(browser, "cache:", rarch_console_get_rom_ext());
|
||||
filebrowser_fetch_directory_entries("cache:", browser, &m_romlist, &m_rompathtitle);
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_CACHE_PARTITION, S_DELAY_180);
|
||||
@ -591,29 +591,29 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand
|
||||
if(hObjPressed == m_shaderlist)
|
||||
{
|
||||
int index = m_shaderlist.GetCurSel();
|
||||
if(path_file_exists(tmp_browser.current_dir.list->elems[index].data))
|
||||
if(path_file_exists(tmp_browser->current_dir.list->elems[index].data))
|
||||
{
|
||||
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_shaderlist.GetText(index));
|
||||
|
||||
switch(set_shader)
|
||||
{
|
||||
case 1:
|
||||
snprintf(g_settings.video.cg_shader_path, sizeof(g_settings.video.cg_shader_path), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
|
||||
snprintf(g_settings.video.cg_shader_path, sizeof(g_settings.video.cg_shader_path), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
|
||||
rarch_load_shader(set_shader, g_settings.video.cg_shader_path);
|
||||
break;
|
||||
case 2:
|
||||
snprintf (g_settings.video.second_pass_shader, sizeof(g_settings.video.second_pass_shader), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
|
||||
snprintf (g_settings.video.second_pass_shader, sizeof(g_settings.video.second_pass_shader), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
|
||||
rarch_load_shader(set_shader, g_settings.video.second_pass_shader);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(tmp_browser.current_dir.list->elems[index].attr.b)
|
||||
else if(tmp_browser->current_dir.list->elems[index].attr.b)
|
||||
{
|
||||
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_shaderlist.GetText(index));
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
|
||||
filebrowser_fetch_directory_entries(path, &tmp_browser, &m_shaderlist, &m_shaderpathtitle);
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
|
||||
filebrowser_fetch_directory_entries(path, tmp_browser, &m_shaderlist, &m_shaderpathtitle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -629,17 +629,17 @@ HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
|
||||
if(hObjPressed == m_romlist)
|
||||
{
|
||||
int index = m_romlist.GetCurSel();
|
||||
if(path_file_exists(tmp_browser.current_dir.list->elems[index].data))
|
||||
if(path_file_exists(tmp_browser->current_dir.list->elems[index].data))
|
||||
{
|
||||
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_romlist.GetText(index));
|
||||
snprintf(g_console.launch_app_on_exit, sizeof(g_console.launch_app_on_exit), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
|
||||
snprintf(g_console.launch_app_on_exit, sizeof(g_console.launch_app_on_exit), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
|
||||
rarch_settings_change(S_RETURN_TO_LAUNCHER);
|
||||
}
|
||||
else if(tmp_browser.current_dir.list->elems[index].attr.b)
|
||||
else if(tmp_browser->current_dir.list->elems[index].attr.b)
|
||||
{
|
||||
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_romlist.GetText(index));
|
||||
snprintf(path, sizeof(path), "%s%s\\", filebrowser_get_current_dir(&tmp_browser), strbuffer);
|
||||
filebrowser_fetch_directory_entries(path, &tmp_browser, &m_romlist, &m_rompathtitle);
|
||||
snprintf(path, sizeof(path), "%s%s\\", filebrowser_get_current_dir(tmp_browser), strbuffer);
|
||||
filebrowser_fetch_directory_entries(path, tmp_browser, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -851,15 +851,19 @@ int menu_init (void)
|
||||
hCur = app.hMainScene;
|
||||
XuiSceneNavigateFirst(app.GetRootObj(), app.hMainScene, XUSER_INDEX_FOCUS);
|
||||
|
||||
filebrowser_new(&browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
|
||||
browser = (filebrowser_t*)malloc(1 * sizeof(filebrowser_t));
|
||||
tmp_browser = (filebrowser_t*)malloc(1 * sizeof(filebrowser_t));
|
||||
filebrowser_new(browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void menu_free (void)
|
||||
{
|
||||
filebrowser_free(&browser);
|
||||
filebrowser_free(&tmp_browser);
|
||||
filebrowser_free(browser);
|
||||
filebrowser_free(tmp_browser);
|
||||
free(browser);
|
||||
free(tmp_browser);
|
||||
app.Uninit();
|
||||
}
|
||||
|
||||
|
@ -100,7 +100,7 @@ static void rarch_manage_libretro_set_first_file(char *first_file, size_t size_o
|
||||
|
||||
if(first_exe)
|
||||
{
|
||||
#ifdef _XBOX
|
||||
#ifdef _XBOX360
|
||||
char fname_tmp[PATH_MAX];
|
||||
fill_pathname_base(fname_tmp, first_exe, sizeof(fname_tmp));
|
||||
|
||||
@ -136,8 +136,10 @@ static void find_and_set_first_file(void)
|
||||
|
||||
char first_file[PATH_MAX];
|
||||
rarch_manage_libretro_set_first_file(first_file, sizeof(first_file),
|
||||
#if defined(_XBOX)
|
||||
#if defined(_XBOX360)
|
||||
"game:\\", "xex"
|
||||
#elif defined(_XBOX1)
|
||||
"D:\\", "xbe"
|
||||
#elif defined(__CELLOS_LV2__)
|
||||
LIBRETRO_DIR_PATH, "SELF"
|
||||
#endif
|
||||
@ -167,8 +169,10 @@ static void init_settings(void)
|
||||
|
||||
//try to find CORE executable
|
||||
char core_executable[1024];
|
||||
#if defined(_XBOX)
|
||||
#if defined(_XBOX360)
|
||||
snprintf(core_executable, sizeof(core_executable), "game:\\CORE.xex");
|
||||
#if defined(_XBOX1)
|
||||
snprintf(core_executable, sizeof(core_executable), "D:\\CORE.xbe");
|
||||
#elif defined(__CELLOS_LV2__)
|
||||
snprintf(core_executable, sizeof(core_executable), "%s/CORE.SELF", LIBRETRO_DIR_PATH);
|
||||
#endif
|
||||
@ -199,7 +203,7 @@ static void init_settings(void)
|
||||
|
||||
static void get_environment_settings (void)
|
||||
{
|
||||
#if defined(_XBOX)
|
||||
#if defined(_XBOX360)
|
||||
//for devkits only, we will need to mount all partitions for retail
|
||||
//in a different way
|
||||
//DmMapDevkitDrive();
|
||||
@ -244,8 +248,8 @@ static void get_environment_settings (void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
strlcpy(SYS_CONFIG_FILE, "game:\\retroarch.cfg", sizeof(SYS_CONFIG_FILE));
|
||||
#elif defined(_XBOX1)
|
||||
strlcpy(SYS_CONFIG_FILE, "D:\\retroarch.cfg", sizeof(SYS_CONFIG_FILE));
|
||||
#elif defined(__CELLOS_LV2__)
|
||||
unsigned int get_type;
|
||||
unsigned int get_attributes;
|
||||
@ -317,6 +321,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
get_environment_settings();
|
||||
|
||||
//WIP - no Xbox 1 controller input yet
|
||||
#ifdef _XBOX360
|
||||
XInputGetState(0, &state);
|
||||
|
||||
if(state.Gamepad.wButtons & XINPUT_GAMEPAD_Y)
|
||||
@ -326,6 +332,7 @@ int main(int argc, char *argv[])
|
||||
find_and_set_first_file();
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
//normal executable loading path
|
||||
init_settings();
|
||||
|
@ -200,14 +200,13 @@ typedef struct
|
||||
|
||||
struct console_settings
|
||||
{
|
||||
#ifdef __CELLOS_LV2__
|
||||
bool custom_bgm_enable;
|
||||
#endif
|
||||
bool check_available_resolutions;
|
||||
bool block_config_read;
|
||||
bool default_sram_dir_enable;
|
||||
bool default_savestate_dir_enable;
|
||||
bool fbo_enabled;
|
||||
bool fps_info_enable;
|
||||
bool frame_advance_enable;
|
||||
#ifdef _XBOX
|
||||
bool menus_hd_enable;
|
||||
@ -242,9 +241,7 @@ struct console_settings
|
||||
uint32_t supported_resolutions_count;
|
||||
uint32_t control_timer_expiration_frame_count;
|
||||
uint32_t timer_expiration_frame_count;
|
||||
#ifdef RARCH_CONSOLE
|
||||
uint32_t input_loop;
|
||||
#endif
|
||||
#ifdef _XBOX
|
||||
uint32_t color_format;
|
||||
DWORD volume_device_type;
|
||||
@ -257,7 +254,7 @@ struct console_settings
|
||||
char default_sram_dir[PATH_MAX];
|
||||
char launch_app_on_exit[PATH_MAX];
|
||||
float menu_font_size;
|
||||
#if defined(__CELLOS_LV2__) && !defined(__PSL1GHT__)
|
||||
#if defined(__CELLOS_LV2__)
|
||||
oskutil_params oskutil_handle;
|
||||
#endif
|
||||
};
|
||||
|
@ -23,27 +23,28 @@
|
||||
#include <winsock2.h>
|
||||
#include <mmsystem.h>
|
||||
#endif
|
||||
static int gettimeofday(struct timeval *val, void *dummy)
|
||||
{
|
||||
(void)dummy;
|
||||
#ifdef _XBOX360
|
||||
DWORD msec = GetTickCount();
|
||||
#else
|
||||
DWORD msec = timeGetTime();
|
||||
#endif
|
||||
uint64_t usec = msec * 1000;
|
||||
val->tv_sec = usec / 1000000;
|
||||
val->tv_usec = usec % 1000000;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __CELLOS_LV2__
|
||||
#include <sys/sys_time.h>
|
||||
#endif
|
||||
|
||||
#if defined(__CELLOS_LV2__) || defined(_MSC_VER)
|
||||
static int gettimeofday(struct timeval *val, void *dummy)
|
||||
{
|
||||
(void)dummy;
|
||||
#if defined(_MSC_VER) && !defined(_XBOX360)
|
||||
DWORD msec = timeGetTime();
|
||||
#elif defined(_XBOX360)
|
||||
DWORD msec = GetTickCount();
|
||||
#endif
|
||||
|
||||
#if defined(__CELLOS_LV2__)
|
||||
uint64_t usec = sys_time_get_system_time();
|
||||
#else
|
||||
uint64_t usec = msec * 1000;
|
||||
#endif
|
||||
|
||||
val->tv_sec = usec / 1000000;
|
||||
val->tv_usec = usec % 1000000;
|
||||
return 0;
|
||||
|
@ -609,40 +609,78 @@ static void display_menubar(void)
|
||||
}
|
||||
|
||||
uint64_t state, trigger_state, held_state;
|
||||
uint16_t input_state, old_input_state = 0;
|
||||
static uint64_t old_state = 0;
|
||||
static uint64_t older_state = 0;
|
||||
|
||||
static void browser_update(filebrowser_t * b, const char *extensions)
|
||||
static void control_update_wrap(void)
|
||||
{
|
||||
filebrowser_action_t action = FILEBROWSER_ACTION_NOOP;
|
||||
input_state = 0;
|
||||
input_ps3.poll(NULL);
|
||||
|
||||
if (CTRL_LSTICK_DOWN(trigger_state))
|
||||
action = FILEBROWSER_ACTION_DOWN;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_DOWN);
|
||||
else if (CTRL_DOWN(trigger_state))
|
||||
action = FILEBROWSER_ACTION_DOWN;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_DOWN);
|
||||
else if (CTRL_LSTICK_UP(trigger_state))
|
||||
action = FILEBROWSER_ACTION_UP;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_UP);
|
||||
else if (CTRL_UP(trigger_state))
|
||||
action = FILEBROWSER_ACTION_UP;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_UP);
|
||||
else if (CTRL_RIGHT(trigger_state))
|
||||
action = FILEBROWSER_ACTION_RIGHT;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT);
|
||||
else if (CTRL_LSTICK_RIGHT(trigger_state))
|
||||
action = FILEBROWSER_ACTION_RIGHT;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT);
|
||||
else if (CTRL_LEFT(trigger_state))
|
||||
action = FILEBROWSER_ACTION_LEFT;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_LEFT);
|
||||
else if (CTRL_LSTICK_LEFT(trigger_state))
|
||||
action = FILEBROWSER_ACTION_LEFT;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_LEFT);
|
||||
else if (CTRL_R1(trigger_state))
|
||||
action = FILEBROWSER_ACTION_SCROLL_DOWN;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_R);
|
||||
else if (CTRL_R2(trigger_state))
|
||||
action = FILEBROWSER_ACTION_SCROLL_DOWN_SMOOTH;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_R2);
|
||||
else if (CTRL_L2(trigger_state))
|
||||
action = FILEBROWSER_ACTION_SCROLL_UP_SMOOTH;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_L2);
|
||||
else if (CTRL_L1(trigger_state))
|
||||
action = FILEBROWSER_ACTION_SCROLL_UP;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_L);
|
||||
else if (CTRL_SQUARE(trigger_state))
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_Y);
|
||||
else if (CTRL_TRIANGLE(trigger_state))
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_X);
|
||||
else if (CTRL_CIRCLE(trigger_state))
|
||||
action = FILEBROWSER_ACTION_CANCEL;
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_A);
|
||||
else if (CTRL_CROSS(trigger_state))
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_B);
|
||||
else if (CTRL_START(trigger_state))
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_START);
|
||||
else if (CTRL_SELECT(trigger_state))
|
||||
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_SELECT);
|
||||
}
|
||||
|
||||
static void browser_update(filebrowser_t * b, const char *extensions)
|
||||
{
|
||||
control_update_wrap();
|
||||
filebrowser_action_t action = FILEBROWSER_ACTION_NOOP;
|
||||
uint16_t trigger_st = input_state & ~old_input_state;
|
||||
|
||||
if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_DOWN))
|
||||
action = FILEBROWSER_ACTION_DOWN;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_UP))
|
||||
action = FILEBROWSER_ACTION_UP;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT))
|
||||
action = FILEBROWSER_ACTION_RIGHT;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT))
|
||||
action = FILEBROWSER_ACTION_LEFT;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_R))
|
||||
action = FILEBROWSER_ACTION_SCROLL_DOWN;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_R2))
|
||||
action = FILEBROWSER_ACTION_SCROLL_DOWN_SMOOTH;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_L2))
|
||||
action = FILEBROWSER_ACTION_SCROLL_UP_SMOOTH;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_L))
|
||||
action = FILEBROWSER_ACTION_SCROLL_UP;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_A))
|
||||
action = FILEBROWSER_ACTION_CANCEL;
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
|
||||
{
|
||||
action = FILEBROWSER_ACTION_RESET;
|
||||
filebrowser_set_root(b, "/");
|
||||
@ -738,8 +776,9 @@ static void select_file(void)
|
||||
}
|
||||
|
||||
browser_update(&tmpBrowser, extensions);
|
||||
uint16_t trigger_st = input_state & ~old_input_state;
|
||||
|
||||
if (CTRL_CROSS(trigger_state))
|
||||
if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))
|
||||
{
|
||||
if(filebrowser_get_current_path_isdir(&tmpBrowser))
|
||||
{
|
||||
@ -796,7 +835,7 @@ static void select_file(void)
|
||||
menu_stack_decrement();
|
||||
}
|
||||
}
|
||||
else if (CTRL_TRIANGLE(trigger_state))
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_X))
|
||||
menu_stack_decrement();
|
||||
|
||||
display_menubar();
|
||||
@ -1668,11 +1707,13 @@ static void select_rom(void)
|
||||
gl_t * gl = driver.video_data;
|
||||
|
||||
browser_update(&browser, rarch_console_get_rom_ext());
|
||||
uint16_t trigger_st = input_state & ~old_input_state;
|
||||
|
||||
menu_romselect_action_t action = MENU_ROMSELECT_ACTION_NOOP;
|
||||
|
||||
if (CTRL_SELECT(trigger_state))
|
||||
if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_SELECT))
|
||||
action = MENU_ROMSELECT_ACTION_GOTO_SETTINGS;
|
||||
else if (CTRL_CROSS(trigger_state))
|
||||
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))
|
||||
action = MENU_ROMSELECT_ACTION_OK;
|
||||
|
||||
if (action != MENU_ROMSELECT_ACTION_NOOP)
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned enum_id; /* enum ID of item */
|
||||
unsigned char enum_id; /* enum ID of item */
|
||||
char text[256]; /* item label */
|
||||
char setting_text[256]; /* setting label */
|
||||
float text_xpos; /* text X position (upper left corner) */
|
||||
@ -30,18 +30,18 @@ typedef struct
|
||||
char comment[256]; /* item comment */
|
||||
unsigned item_color; /* color of item */
|
||||
float comment_ypos; /* comment Y position (upper left corner) */
|
||||
unsigned page; /* page */
|
||||
unsigned char page; /* page */
|
||||
} item;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char title[64]; /* menu title */
|
||||
unsigned enum_id; /* enum ID of menu */
|
||||
unsigned selected; /* index of selected item */
|
||||
unsigned page; /* page */
|
||||
unsigned first_setting; /* first setting */
|
||||
unsigned max_settings; /* max no of settings in menu */
|
||||
unsigned category_id; /* category ID */
|
||||
char title[64];
|
||||
unsigned char enum_id;
|
||||
unsigned char selected;
|
||||
unsigned char page;
|
||||
unsigned char first_setting;
|
||||
unsigned char max_settings;
|
||||
unsigned char category_id;
|
||||
} menu;
|
||||
|
||||
enum
|
||||
|
@ -185,7 +185,7 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
|
||||
if (!d3d->d3d_device)
|
||||
{
|
||||
free(d3d);
|
||||
OutputDebugString("RetroArch: Failed to create a D3D8 object!");
|
||||
RARCH_ERR("Failed to create a D3D8 object.\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -344,7 +344,6 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
|
||||
d3d->vsync = video->vsync;
|
||||
|
||||
// load debug font (toggle option in later revisions ?)
|
||||
#ifdef SHOW_DEBUG_INFO
|
||||
XFONT_OpenDefaultFont(&d3d->debug_font);
|
||||
d3d->debug_font->SetBkMode(XFONT_TRANSPARENT);
|
||||
d3d->debug_font->SetBkColor(D3DCOLOR_ARGB(100,0,0,0));
|
||||
@ -353,6 +352,10 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
|
||||
|
||||
font_x = 0;
|
||||
font_y = 0;
|
||||
|
||||
// TODO: place this somewhere else outside of xdk_d3d8.cpp
|
||||
#ifdef SHOW_DEBUG_INFO
|
||||
g_console.fps_info_enable = true;
|
||||
#endif
|
||||
|
||||
return d3d;
|
||||
@ -361,13 +364,12 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
|
||||
static bool xdk_d3d_frame(void *data, const void *frame,
|
||||
unsigned width, unsigned height, unsigned pitch, const char *msg)
|
||||
{
|
||||
#if 0
|
||||
if (!frame)
|
||||
return true;
|
||||
#endif
|
||||
|
||||
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)data;
|
||||
bool menu_enabled = g_console.menu_enable;
|
||||
bool fps_enable = g_console.fps_info_enable;
|
||||
|
||||
if (d3d->last_width != width || d3d->last_height != height) //240*160
|
||||
{
|
||||
@ -442,40 +444,38 @@ static bool xdk_d3d_frame(void *data, const void *frame,
|
||||
d3d->d3d_render_device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
|
||||
d3d->d3d_render_device->EndScene();
|
||||
|
||||
|
||||
#ifdef SHOW_DEBUG_INFO
|
||||
static MEMORYSTATUS stat;
|
||||
GlobalMemoryStatus(&stat);
|
||||
d3d->d3d_render_device->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &d3d->pFrontBuffer);
|
||||
d3d->d3d_render_device->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &d3d->pBackBuffer);
|
||||
|
||||
//Output memory usage
|
||||
|
||||
char buf[128], buf2[128], buf_fps_last[128];
|
||||
bool ret = false;
|
||||
sprintf(buf, "%.2f MB free / %.2f MB total", stat.dwAvailPhys/(1024.0f*1024.0f), stat.dwTotalPhys/(1024.0f*1024.0f));
|
||||
rarch_convert_char_to_wchar(strw_buffer, buf, sizeof(strw_buffer));
|
||||
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
|
||||
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
|
||||
|
||||
if(ret = gfx_window_title(buf2, sizeof(buf2)) || sizeof(buf_fps_last))
|
||||
if(fps_enable)
|
||||
{
|
||||
if(ret)
|
||||
{
|
||||
sprintf(buf_fps_last, buf2);
|
||||
rarch_convert_char_to_wchar(strw_buffer, buf2, sizeof(strw_buffer));
|
||||
}
|
||||
else if(buf_fps_last)
|
||||
{
|
||||
rarch_convert_char_to_wchar(strw_buffer, buf_fps_last, sizeof(strw_buffer));
|
||||
}
|
||||
static MEMORYSTATUS stat;
|
||||
GlobalMemoryStatus(&stat);
|
||||
d3d->d3d_render_device->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &d3d->pFrontBuffer);
|
||||
d3d->d3d_render_device->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &d3d->pBackBuffer);
|
||||
|
||||
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
|
||||
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
|
||||
d3d->pFrontBuffer->Release();
|
||||
d3d->pBackBuffer->Release();
|
||||
//Output memory usage
|
||||
|
||||
char buf[128], buf2[128], buf_fps_last[128];
|
||||
bool ret = false;
|
||||
sprintf(buf, "%.2f MB free / %.2f MB total", stat.dwAvailPhys/(1024.0f*1024.0f), stat.dwTotalPhys/(1024.0f*1024.0f));
|
||||
rarch_convert_char_to_wchar(strw_buffer, buf, sizeof(strw_buffer));
|
||||
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
|
||||
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
|
||||
|
||||
if(ret = gfx_window_title(buf2, sizeof(buf2)) || sizeof(buf_fps_last))
|
||||
{
|
||||
if(ret)
|
||||
{
|
||||
sprintf(buf_fps_last, buf2);
|
||||
rarch_convert_char_to_wchar(strw_buffer, buf2, sizeof(strw_buffer));
|
||||
}
|
||||
else if(buf_fps_last)
|
||||
rarch_convert_char_to_wchar(strw_buffer, buf_fps_last, sizeof(strw_buffer));
|
||||
|
||||
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
|
||||
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
|
||||
d3d->pFrontBuffer->Release();
|
||||
d3d->pBackBuffer->Release();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!d3d->block_swap)
|
||||
gfx_ctx_swap_buffers();
|
||||
|
@ -96,59 +96,59 @@ static int16_t xinput_input_state(void *data, const struct retro_keybind **binds
|
||||
DWORD button = binds[player][id].joykey;
|
||||
int16_t retval = 0;
|
||||
|
||||
//Hardcoded binds (WIP)
|
||||
//FIXME: Hardcoded binds
|
||||
switch(id)
|
||||
{
|
||||
case RETRO_DEVICE_ID_JOYPAD_A:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_B]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_B:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_A]) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_A]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_X:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_Y]) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_Y]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_Y:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_X]) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_X]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_LEFT:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) || (state[player].Gamepad.sThumbLX < -DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) || (state[player].Gamepad.sThumbLX < -DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_RIGHT:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) || (state[player].Gamepad.sThumbLX > DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) || (state[player].Gamepad.sThumbLX > DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_UP:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) || (state[player].Gamepad.sThumbLY > DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) || (state[player].Gamepad.sThumbLY > DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_DOWN:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN)|| (state[player].Gamepad.sThumbLY < -DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN)|| (state[player].Gamepad.sThumbLY < -DEADZONE) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_START:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_START) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_START) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_SELECT:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_BACK) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_BACK) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_L:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_LEFT_TRIGGER]) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_LEFT_TRIGGER]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_R:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_RIGHT_TRIGGER]) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_RIGHT_TRIGGER]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_L2:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_WHITE]) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_WHITE]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_R2:
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_BLACK]) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_BLACK]) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_L3:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) ? 1 : 0;
|
||||
break;
|
||||
case RETRO_DEVICE_ID_JOYPAD_R3:
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) ? 1 : 0;
|
||||
break;
|
||||
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) ? 1 : 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
return retval;
|
||||
|
Loading…
x
Reference in New Issue
Block a user