diff --git a/360/frontend-xdk/menu.cpp b/360/frontend-xdk/menu.cpp index 0fb68fed64..3107092897 100644 --- a/360/frontend-xdk/menu.cpp +++ b/360/frontend-xdk/menu.cpp @@ -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(); } diff --git a/console/salamander/main.c b/console/salamander/main.c index ab7e5ba721..8502316d09 100644 --- a/console/salamander/main.c +++ b/console/salamander/main.c @@ -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(); diff --git a/general.h b/general.h index 9ded9fba8c..5f48377bac 100644 --- a/general.h +++ b/general.h @@ -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 }; diff --git a/gfx/gfx_common.c b/gfx/gfx_common.c index 66b5ed8baf..87b95c9ac1 100644 --- a/gfx/gfx_common.c +++ b/gfx/gfx_common.c @@ -23,27 +23,28 @@ #include #include #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 +#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; diff --git a/ps3/frontend/menu.c b/ps3/frontend/menu.c index b58c5fc3c3..dbbe7a32ce 100644 --- a/ps3/frontend/menu.c +++ b/ps3/frontend/menu.c @@ -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) diff --git a/ps3/frontend/menu.h b/ps3/frontend/menu.h index 12779e93b0..f1aa52e8d9 100644 --- a/ps3/frontend/menu.h +++ b/ps3/frontend/menu.h @@ -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 diff --git a/xbox1/xdk_d3d8.cpp b/xbox1/xdk_d3d8.cpp index 26a192c16b..fc126c7f7d 100644 --- a/xbox1/xdk_d3d8.cpp +++ b/xbox1/xdk_d3d8.cpp @@ -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(); diff --git a/xbox1/xinput_xbox_input.c b/xbox1/xinput_xbox_input.c index 42eecffc94..7947a0aabc 100644 --- a/xbox1/xinput_xbox_input.c +++ b/xbox1/xinput_xbox_input.c @@ -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;