diff --git a/360/frontend-xdk/main.c b/360/frontend-xdk/main.c index 880bd41e35..90a2efee79 100644 --- a/360/frontend-xdk/main.c +++ b/360/frontend-xdk/main.c @@ -15,10 +15,15 @@ */ #include -#include + #include #include #include + +#ifdef _XBOX360 +#include +#endif + #include #include "menu.h" #include "../../input/rarch_xinput2.h" @@ -51,7 +56,9 @@ typedef struct _STRING { char DEFAULT_SHADER_FILE[PATH_MAX]; char SYS_CONFIG_FILE[PATH_MAX]; +#ifdef _XBOX360 extern "C" int __stdcall ObCreateSymbolicLink( STRING*, STRING*); +#endif int Mounted[20]; @@ -59,6 +66,7 @@ int rarch_main(int argc, char *argv[]); #undef main +#ifdef _XBOX360 static int DriveMounted(std::string path) { WIN32_FIND_DATA findFileData; @@ -74,7 +82,6 @@ static int DriveMounted(std::string path) return 1; } - static int Mount( int Device, char* MountPoint ) { char MountConv[260]; @@ -125,6 +132,7 @@ static int Mount( int Device, char* MountPoint ) return DriveMounted(MountPoint); } +#endif static void set_default_settings (void) { @@ -169,6 +177,7 @@ static void set_default_settings (void) static void get_environment_settings (void) { +#ifdef _XBOX360 DWORD ret; //for devkits only, we will need to mount all partitions for retail @@ -186,6 +195,7 @@ static void get_environment_settings (void) Mounted[DEVICE_MEMORY_UNIT1] = Mount(DEVICE_MEMORY_UNIT1,"Memunit1:"); Mounted[DEVICE_MEMORY_ONBOARD] = Mount(DEVICE_MEMORY_ONBOARD,"OnBoardMU:"); Mounted[DEVICE_CDROM0] = Mount(DEVICE_CDROM0,"Dvd:"); +#endif #ifdef HAVE_HDD_CACHE_PARTITION ret = XSetFileCacheSize(0x100000); @@ -205,13 +215,7 @@ static void get_environment_settings (void) XFlushUtilityDrive(); #endif - //unsigned long result = XMountUtilityDriveEx(XMOUNTUTILITYDRIVE_FORMAT0,8192, 0); - - //if(result != ERROR_SUCCESS) - //{ - // RARCH_ERR("Couldn't mount/format utility drive.\n"); - //} - +#ifdef _XBOX360 // detect install environment unsigned long license_mask; @@ -239,27 +243,37 @@ static void get_environment_settings (void) break; } } +#endif strlcpy(DEFAULT_SHADER_FILE, "game:\\media\\shaders\\stock.cg", sizeof(DEFAULT_SHADER_FILE)); strlcpy(SYS_CONFIG_FILE, "game:\\retroarch.cfg", sizeof(SYS_CONFIG_FILE)); } +static void configure_libretro(const char * extension) +{ + char full_path[1024]; + snprintf(full_path, sizeof(full_path), "game:\\CORE%s", extension); + + bool find_libretro_file = rarch_configure_libretro_core(full_path, "game:\\", "game:\\", + SYS_CONFIG_FILE, extension); + + set_default_settings(); + rarch_config_load(SYS_CONFIG_FILE, "game:\\", extension, find_libretro_file); + init_libretro_sym(); +} + int main(int argc, char *argv[]) { get_environment_settings(); rarch_main_clear_state(); config_set_defaults(); - - char full_path[1024]; - snprintf(full_path, sizeof(full_path), "game:\\CORE.xex"); - - bool find_libretro_file = rarch_configure_libretro_core(full_path, "game:\\", "game:\\", - SYS_CONFIG_FILE, ".xex"); - - set_default_settings(); - rarch_config_load(SYS_CONFIG_FILE, "game:\\", ".xex", find_libretro_file); - init_libretro_sym(); + +#ifdef _XBOX1 + configure_libretro(".xbe"); +#else + configure_libretro(".xex"); +#endif video_xdk_d3d.start(); input_xinput.init(); diff --git a/360/frontend-xdk/menu.h b/360/frontend-xdk/menu.h index b7041b6d8e..be612e44eb 100644 --- a/360/frontend-xdk/menu.h +++ b/360/frontend-xdk/menu.h @@ -17,8 +17,10 @@ #ifndef _MENU_XUI_H_ #define _MENU_XUI_H_ +#ifdef _XBOX360 #include #include +#endif enum { @@ -62,6 +64,7 @@ enum INPUT_LOOP_RESIZE_MODE }; +#ifdef _XBOX360 class CRetroArch : public CXuiModule { public: @@ -214,10 +217,11 @@ class CRetroArchControls: public CXuiSceneImpl XUI_IMPLEMENT_CLASS(CRetroArchControls, L"RetroArchControls", XUI_CLASS_SCENE) }; +extern CRetroArch app; +#endif + int menu_init (void); void menu_free (void); void menu_loop (void); -extern CRetroArch app; - #endif diff --git a/360/xdk_d3d.h b/360/xdk_d3d.h index 3df4b749ca..9f905866a3 100644 --- a/360/xdk_d3d.h +++ b/360/xdk_d3d.h @@ -21,6 +21,7 @@ #define DFONT_MAX 4096 #define PRIM_FVF (D3DFVF_XYZRHW | D3DFVF_TEX1) +#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_NORMAL) #define MIN_SCALING_FACTOR (1.0f) #define MAX_SCALING_FACTOR (2.0f) diff --git a/console/griffin/griffin.c b/console/griffin/griffin.c index b8a53ae09b..b8181abe82 100644 --- a/console/griffin/griffin.c +++ b/console/griffin/griffin.c @@ -216,7 +216,7 @@ REWIND /*============================================================ MAIN ============================================================ */ -#if defined(_XBOX360) +#if defined(_XBOX) #include "../../360/frontend-xdk/main.c" #elif defined(GEKKO) #include "../../wii/frontend/main.c" diff --git a/console/retroarch_console.c b/console/retroarch_console.c index 7b0bfd1eb9..e5629cf936 100644 --- a/console/retroarch_console.c +++ b/console/retroarch_console.c @@ -326,6 +326,45 @@ static const struct platform_bind platform_keys[] = { { XINPUT_GAMEPAD_DPAD_UP | XINPUT_GAMEPAD_RSTICK_UP_MASK, "RStick D-Pad Up" }, { XINPUT_GAMEPAD_DPAD_DOWN | XINPUT_GAMEPAD_RSTICK_DOWN_MASK, "RStick D-Pad Down" }, }; +#elif defined(_XBOX1) +static const struct platform_bind platform_keys[] = { + { XINPUT_GAMEPAD_B, "B button" }, + { XINPUT_GAMEPAD_A, "A button" }, + { XINPUT_GAMEPAD_Y, "Y button" }, + { XINPUT_GAMEPAD_X, "X button" }, + { XINPUT_GAMEPAD_DPAD_UP, "D-Pad Up" }, + { XINPUT_GAMEPAD_DPAD_DOWN, "D-Pad Down" }, + { XINPUT_GAMEPAD_DPAD_LEFT, "D-Pad Left" }, + { XINPUT_GAMEPAD_DPAD_RIGHT, "D-Pad Right" }, + { XINPUT_GAMEPAD_BACK, "Back button" }, + { XINPUT_GAMEPAD_START, "Start button" }, + { XINPUT_GAMEPAD_WHITE, "Left Shoulder" }, + { XINPUT_GAMEPAD_LEFT_TRIGGER, "Left Trigger" }, + { XINPUT_GAMEPAD_LEFT_THUMB, "Left Thumb" }, + { XINPUT_GAMEPAD_BLACK, "Right Shoulder" }, + { XINPUT_GAMEPAD_RIGHT_TRIGGER, "Right Trigger" }, + { XINPUT_GAMEPAD_RIGHT_THUMB, "Right Thumb" }, + { XINPUT_GAMEPAD_LSTICK_LEFT_MASK, "LStick Left" }, + { XINPUT_GAMEPAD_LSTICK_RIGHT_MASK, "LStick Right" }, + { XINPUT_GAMEPAD_LSTICK_UP_MASK, "LStick Up" }, + { XINPUT_GAMEPAD_LSTICK_DOWN_MASK, "LStick Down" }, + /* + { XINPUT_GAMEPAD_DPAD_LEFT | XINPUT_GAMEPAD_LSTICK_LEFT_MASK, "LStick D-Pad Left" }, + { XINPUT_GAMEPAD_DPAD_RIGHT | XINPUT_GAMEPAD_LSTICK_RIGHT_MASK, "LStick D-Pad Right" }, + { XINPUT_GAMEPAD_DPAD_UP | XINPUT_GAMEPAD_LSTICK_UP_MASK, "LStick D-Pad Up" }, + { XINPUT_GAMEPAD_DPAD_DOWN | XINPUT_GAMEPAD_LSTICK_DOWN_MASK, "LStick D-Pad Down" }, + */ + { XINPUT_GAMEPAD_RSTICK_LEFT_MASK, "RStick Left" }, + { XINPUT_GAMEPAD_RSTICK_RIGHT_MASK, "RStick Right" }, + { XINPUT_GAMEPAD_RSTICK_UP_MASK, "RStick Up" }, + { XINPUT_GAMEPAD_RSTICK_DOWN_MASK, "RStick Down" }, + /* + { XINPUT_GAMEPAD_DPAD_LEFT | XINPUT_GAMEPAD_RSTICK_LEFT_MASK, "RStick D-Pad Left" }, + { XINPUT_GAMEPAD_DPAD_RIGHT | XINPUT_GAMEPAD_RSTICK_RIGHT_MASK, "RStick D-Pad Right" }, + { XINPUT_GAMEPAD_DPAD_UP | XINPUT_GAMEPAD_RSTICK_UP_MASK, "RStick D-Pad Up" }, + { XINPUT_GAMEPAD_DPAD_DOWN | XINPUT_GAMEPAD_RSTICK_DOWN_MASK, "RStick D-Pad Down" }, + */ +}; #elif defined(GEKKO) static const struct platform_bind platform_keys[] = { { PAD_BUTTON_B, "(NGC) B button" }, @@ -474,10 +513,10 @@ void rarch_input_set_controls_default (void) rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_X] = platform_keys[XDK360_DEVICE_ID_JOYPAD_Y].joykey; rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[XDK360_DEVICE_ID_JOYPAD_LB].joykey; rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[XDK360_DEVICE_ID_JOYPAD_RB].joykey; - rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK360_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey; - rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK360_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey; - rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L3] = platform_keys[XDK360_DEVICE_ID_LSTICK_THUMB].joykey; - rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[XDK360_DEVICE_ID_RSTICK_THUMB].joykey; + rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK360_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey; + rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK360_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey; + rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L3] = platform_keys[XDK360_DEVICE_ID_LSTICK_THUMB].joykey; + rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[XDK360_DEVICE_ID_RSTICK_THUMB].joykey; #endif for(uint32_t x = 0; x < MAX_PLAYERS; x++) rarch_input_set_default_keybinds(x); diff --git a/console/retroarch_console.h b/console/retroarch_console.h index 2f258a4ccf..46d4f47fc3 100644 --- a/console/retroarch_console.h +++ b/console/retroarch_console.h @@ -92,7 +92,7 @@ extern char rotation_lut[ASPECT_RATIO_END][PATH_MAX]; /* ABGR color format defines */ #define WHITE 0xffffffffu -#define RED 0xff0000ffu +#define RED 0xff0000ffu #define GREEN 0xff00ff00u #define BLUE 0xffff0000u #define YELLOW 0xff00ffffu diff --git a/console/retroarch_console_input.h b/console/retroarch_console_input.h index adb8959596..a8b1dc87cb 100644 --- a/console/retroarch_console_input.h +++ b/console/retroarch_console_input.h @@ -41,6 +41,10 @@ enum DPAD_EMULATION_RSTICK }; +#ifdef _XBOX +#include "../input/rarch_xinput2.h" +#endif + #if defined(__CELLOS_LV2__) #include "../ps3/ps3_input.h" enum ps3_device_id @@ -82,7 +86,6 @@ enum ps3_device_id }; #elif defined(_XBOX360) -#include "../input/rarch_xinput2.h" enum xdk360_device_id { diff --git a/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj b/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj index af3a7293e0..17f374a793 100644 --- a/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj +++ b/msvc/RetroArch-Xbox1/RetroArch-Xbox1.vcproj @@ -21,7 +21,7 @@ Optimization="0" OptimizeForProcessor="2" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" - PreprocessorDefinitions="_DEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN" + PreprocessorDefinitions="_DEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -68,7 +68,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="2" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" - PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;HAVE_GRIFFIN" + PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE" StringPooling="TRUE" RuntimeLibrary="0" BufferSecurityCheck="TRUE" @@ -119,7 +119,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="2" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" - PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;FASTCAP;HAVE_GRIFFIN" + PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;FASTCAP;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE" StringPooling="TRUE" RuntimeLibrary="0" BufferSecurityCheck="TRUE" @@ -171,7 +171,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="2" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" - PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN;inline=_inline" + PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN;inline=_inline;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE" StringPooling="TRUE" RuntimeLibrary="0" BufferSecurityCheck="TRUE" @@ -221,7 +221,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="2" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" - PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;LTCG;HAVE_GRIFFIN" + PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.6\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;LTCG;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE" StringPooling="TRUE" RuntimeLibrary="0" BufferSecurityCheck="TRUE"