1
0
mirror of https://github.com/libretro/RetroArch synced 2025-03-27 14:37:32 +00:00

(360) Added 360 solution and added some defines

This commit is contained in:
TwinAphex51224 2012-01-05 13:30:13 +01:00
parent 2b01f36fc0
commit ebea0220cd
13 changed files with 555 additions and 41 deletions

@ -8,7 +8,7 @@
#include <xtl.h>
#include <xaudio2.h>
#include "xdk360_audio.h"
#include "../msvc-360/msvc_compat.h"
#include "msvc_compat.h"
#define MAX_BUFFERS 16
#define MAX_BUFFERS_MASK (MAX_BUFFERS - 1)
@ -46,16 +46,6 @@ static void WINAPI dummy_voidp(void *handle, void *data) { (void)handle; (void)d
static void WINAPI dummy_nil(void *handle) { (void)handle; }
static void WINAPI dummy_uint32(void *handle, UINT32 dummy) { (void)handle; (void)dummy; }
static void WINAPI dummy_voidp_hresult(void *handle, void *data, HRESULT dummy) { (void)handle; (void)data; (void)dummy; }
const struct IXAudio2VoiceCallbackVtbl voice_vtable = {
dummy_uint32,
dummy_nil,
dummy_nil,
dummy_voidp,
voice_on_buffer_end,
dummy_voidp,
dummy_voidp_hresult,
};
xaudio2_t *xaudio2_new(unsigned samplerate, unsigned channels, size_t size)
{
@ -64,7 +54,6 @@ xaudio2_t *xaudio2_new(unsigned samplerate, unsigned channels, size_t size)
return NULL;
handle->lpVtbl = &voice_vtable;
CoInitializeEx(0, COINIT_MULTITHREADED);
WAVEFORMATEX wfx = {0};
if (FAILED(XAudio2Create(&handle->pXAudio2)))

@ -18,10 +18,7 @@
#include <stdint.h>
#include <stdlib.h>
#include <basetsd.h>
#include <windef.h>
#include <winbase.h>
#include <xinputdefs.h>
#include <xtl.h>
#include "../driver.h"
#include "../libsnes.hpp"
@ -97,7 +94,7 @@ static int16_t xdk360_input_state(void *data, const struct snes_keybind **binds,
button = 0;
}
return ((state[player]) & button) ? 1 : 0;
return (state[player] & button) ? 1 : 0;
}
static void xdk360_free_input(void *data)

@ -18,8 +18,8 @@
#include <xtl.h>
#include <xboxmath.h>
#include "driver.h"
#include "general.h"
#include "../driver.h"
#include "../general.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
@ -80,13 +80,14 @@ typedef struct gl
IDirect3DDevice9* xdk360_render_device;
IDirect3DVertexShader9 *pVertexShader;
IDirect3DPixelShader9* pPixelShader;
IDirect3DVertexDeclaration9* pVertexDecl;
XMMATRIX matWVP;
unsigned frame_count;
} gl_t;
static void xdk360_gfx_free(void *data)
{
gl_t *vid = data;
gl_t *vid = (gl_t*)data;
if (!vid)
return;
@ -95,7 +96,7 @@ static void xdk360_gfx_free(void *data)
static void *xdk360_gfx_init(const video_info_t *video, const input_driver_t **input, void **input_data)
{
gl_t * gl = calloc(1, sizeof(gl_t));
gl_t * gl = (gl_t*)calloc(1, sizeof(gl_t));
if (!gl)
return NULL;
@ -181,9 +182,8 @@ static void *xdk360_gfx_init(const video_info_t *video, const input_driver_t **i
};
/* Create a vertex declaration from the element descriptions.*/
IDirect3DVertexDeclaration9* pVertexDecl;
g_pd3dDevice->CreateVertexDeclaration( VertexElements, &pVertexDecl );
gl->xdk360_render_device->CreateVertexDeclaration( VertexElements, &gl->pVertexDecl );
/* World matrix (identity in this sample)*/
XMMATRIX matWorld = XMMatrixIdentity();
@ -211,7 +211,7 @@ static void *xdk360_gfx_init(const video_info_t *video, const input_driver_t **i
static bool xdk360_gfx_frame(void *data, const void *frame, unsigned width, unsigned height, unsigned pitch, const char *msg)
{
gl_t *vid = data;
gl_t *vid = (gl_t*)data;
vid->frame_count++;
@ -220,14 +220,14 @@ static bool xdk360_gfx_frame(void *data, const void *frame, unsigned width, unsi
0xff000000, 1.0f, 0L );
/* Set shaders. */
vid->xdk360_render_device->SetVertexShader( gl->pVertexShader );
vid->xdk360_render_device->SetPixelShader( gl->pPixelShader );
vid->xdk360_render_device->SetVertexShader( vid->pVertexShader );
vid->xdk360_render_device->SetPixelShader( vid->pPixelShader );
// Set shader constants.
vid->xdk360_render_device->SetVertexShaderConstantF( 0, ( FLOAT* )&vid->matWVP, 4 );
// Set the vertex declaration.
vid->xdk360_render_device->SetVertexDeclaration( pVertexDecl );
vid->xdk360_render_device->SetVertexDeclaration( vid->pVertexDecl );
// Draw
vid->xdk360_render_device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2 );
@ -258,12 +258,13 @@ static bool xdk360_gfx_focus(void *data)
const video_driver_t video_xdk360 = {
.init = xdk360_gfx_init,
.frame = xdk360_gfx_frame,
.alive = xdk360_gfx_alive,
.set_nonblock_state = xdk360_gfx_set_nonblock_state,
.focus = xdk360_gfx_focus,
.free = xdk360_gfx_free,
.ident = "xdk360"
xdk360_gfx_init,
xdk360_gfx_frame,
xdk360_gfx_set_nonblock_state,
xdk360_gfx_alive,
xdk360_gfx_focus,
NULL,
xdk360_gfx_free,
"xdk360"
};

@ -39,6 +39,7 @@
#define VIDEO_EXT 14
#define VIDEO_WII 24
#define VIDEO_XENON360 25
#define VIDEO_XDK360 28
////////////////////////
#define AUDIO_RSOUND 1
#define AUDIO_OSS 2
@ -55,12 +56,14 @@
#define AUDIO_PS3 18
#define AUDIO_XENON360 20
#define AUDIO_WII 22
#define AUDIO_XDK360 27
////////////////////////
#define INPUT_SDL 7
#define INPUT_X 12
#define INPUT_PS3 19
#define INPUT_XENON360 21
#define INPUT_WII 23
#define INPUT_XDK360 26
////////////////////////
#if defined(HAVE_OPENGL) || defined(__CELLOS_LV2__)
@ -69,6 +72,8 @@
#define VIDEO_DEFAULT_DRIVER VIDEO_WII
#elif defined(XENON)
#define VIDEO_DEFAULT_DRIVER VIDEO_XENON360
#elif defined(_XBOX)
#define VIDEO_DEFAULT_DRIVER VIDEO_XDK360
#elif defined(HAVE_XVIDEO)
#define VIDEO_DEFAULT_DRIVER VIDEO_XVIDEO
#elif defined(HAVE_SDL)
@ -83,6 +88,8 @@
#define AUDIO_DEFAULT_DRIVER AUDIO_PS3
#elif defined(XENON)
#define AUDIO_DEFAULT_DRIVER AUDIO_XENON360
#elif defined(_XBOX)
#define AUDIO_DEFAULT_DRIVER AUDIO_XDK360
#elif defined(GEKKO)
#define AUDIO_DEFAULT_DRIVER AUDIO_WII
#elif defined(HAVE_ALSA)
@ -115,6 +122,8 @@
#if defined(XENON)
#define INPUT_DEFAULT_DRIVER INPUT_XENON360
#elif defined(_XBOX)
#define INPUT_DEFAULT_DRIVER INPUT_XDK360
#elif defined(HAVE_SDL)
#define INPUT_DEFAULT_DRIVER INPUT_SDL
#elif defined(__CELLOS_LV2__)

@ -71,6 +71,9 @@ static const audio_driver_t *audio_drivers[] = {
#ifdef XENON
&audio_xenon360,
#endif
#ifdef _XBOX
&audio_xdk360,
#endif
#ifdef GEKKO
&audio_wii,
#endif
@ -83,6 +86,9 @@ static const video_driver_t *video_drivers[] = {
#ifdef XENON
&video_xenon360,
#endif
#ifdef _XBOX
&video_xdk360,
#endif
#ifdef HAVE_SDL
&video_sdl,
#endif
@ -110,6 +116,9 @@ static const input_driver_t *input_drivers[] = {
#ifdef XENON
&input_xenon360,
#endif
#ifdef _XBOX
&input_xdk360,
#endif
#ifdef GEKKO
&input_wii,
#endif

@ -170,12 +170,14 @@ extern const audio_driver_t audio_ext;
extern const audio_driver_t audio_dsound;
extern const audio_driver_t audio_coreaudio;
extern const audio_driver_t audio_xenon360;
extern const audio_driver_t audio_xdk360;
extern const audio_driver_t audio_ps3;
extern const audio_driver_t audio_wii;
extern const video_driver_t video_gl;
extern const video_driver_t video_wii;
extern const video_driver_t video_xenon360;
extern const video_driver_t video_xvideo;
extern const video_driver_t video_xdk360;
extern const video_driver_t video_sdl;
extern const video_driver_t video_ext;
extern const input_driver_t input_sdl;
@ -183,6 +185,7 @@ extern const input_driver_t input_x;
extern const input_driver_t input_ps3;
extern const input_driver_t input_xenon360;
extern const input_driver_t input_wii;
extern const input_driver_t input_xdk360;
////////////////////////////////////////////////
#endif

11
file.c

@ -32,7 +32,7 @@
#include "sha256.h"
#endif
#ifdef _WIN32
#if defined(_WIN32) && !defined(_XBOX)
#include <io.h>
#include <fcntl.h>
#include <windows.h>
@ -40,6 +40,13 @@
#ifdef _MSC_VER
#define setmode _setmode
#endif
#elif defined(_XBOX)
#include <xtl.h>
#define FindFirstFileW FindFirstFile
#define FindNextFileW FindNextFile
#ifdef _MSC_VER
#define setmode _setmode
#endif
#else
#include <sys/types.h>
#include <sys/stat.h>
@ -244,7 +251,7 @@ static ssize_t read_rom_file(FILE* file, void** buf)
if (file == NULL) // stdin
{
#ifdef _WIN32
#if defined(_WIN32) && !defined(_XBOX)
setmode(0, O_BINARY);
#endif

@ -51,10 +51,13 @@
#include "audio/hermite.h"
#ifdef _WIN32
#if defined(_WIN32) && !defined(_XBOX)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "msvc/msvc_compat.h"
#elif defined(_XBOX)
#include <xtl.h>
#include "360/msvc_compat.h"
#endif
#define MAX_PLAYERS 5

@ -0,0 +1,32 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSNES-360", "SSNES-360.vcxproj", "{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CodeAnalysis|Xbox 360 = CodeAnalysis|Xbox 360
Debug|Xbox 360 = Debug|Xbox 360
Profile_FastCap|Xbox 360 = Profile_FastCap|Xbox 360
Profile|Xbox 360 = Profile|Xbox 360
Release_LTCG|Xbox 360 = Release_LTCG|Xbox 360
Release|Xbox 360 = Release|Xbox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.CodeAnalysis|Xbox 360.ActiveCfg = CodeAnalysis|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.CodeAnalysis|Xbox 360.Build.0 = CodeAnalysis|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Profile_FastCap|Xbox 360.ActiveCfg = Profile_FastCap|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Profile_FastCap|Xbox 360.Build.0 = Profile_FastCap|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Profile|Xbox 360.ActiveCfg = Profile|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Profile|Xbox 360.Build.0 = Profile|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Release_LTCG|Xbox 360.ActiveCfg = Release_LTCG|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Release_LTCG|Xbox 360.Build.0 = Release_LTCG|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}.Release|Xbox 360.Build.0 = Release|Xbox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

@ -0,0 +1,292 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="CodeAnalysis|Xbox 360">
<Configuration>CodeAnalysis</Configuration>
<Platform>Xbox 360</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Xbox 360">
<Configuration>Debug</Configuration>
<Platform>Xbox 360</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Xbox 360">
<Configuration>Profile</Configuration>
<Platform>Xbox 360</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile_FastCap|Xbox 360">
<Configuration>Profile_FastCap</Configuration>
<Platform>Xbox 360</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Xbox 360">
<Configuration>Release</Configuration>
<Platform>Xbox 360</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_LTCG|Xbox 360">
<Configuration>Release_LTCG</Configuration>
<Platform>Xbox 360</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9CE8EEF7-CC1C-4A04-BB5C-62411CB5BADE}</ProjectGuid>
<Keyword>Xbox360Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<MinimalRebuild>true</MinimalRebuild>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;_XBOX;PACKAGE_VERSION="0.9.3";%(PreprocessorDefinitions);PACKAGE_VERSION="0.9.3";_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<AdditionalDependencies>xapilibd.lib;d3d9d.lib;d3dx9d.lib;xgraphicsd.lib;xboxkrnl.lib;xnetd.lib;xaudiod2.lib;xactd3.lib;x3daudiod.lib;xmcored.lib;xbdm.lib;vcompd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<MinimalRebuild>true</MinimalRebuild>
<PREfast>AnalyzeOnly</PREfast>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;_XBOX;%(PreprocessorDefinitions);PACKAGE_VERSION="0.9.3";_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<AdditionalDependencies>xapilibd.lib;d3d9d.lib;d3dx9d.lib;xgraphicsd.lib;xboxkrnl.lib;xnetd.lib;xaudiod2.lib;xactd3.lib;x3daudiod.lib;xmcored.lib;xbdm.lib;vcompd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<ExceptionHandling>false</ExceptionHandling>
<StringPooling>true</StringPooling>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;PROFILE;%(PreprocessorDefinitions);PACKAGE_VERSION="0.9.3";_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>false</EnableCOMDATFolding>
<IgnoreSpecificDefaultLibraries>xapilib.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<OptimizeReferences>true</OptimizeReferences>
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<SetChecksum>true</SetChecksum>
<AdditionalDependencies>xapilibi.lib;d3d9i.lib;d3dx9.lib;xgraphics.lib;xboxkrnl.lib;xnet.lib;xaudio2.lib;xact3i.lib;x3daudioi.lib;xmcorei.lib;xbdm.lib;vcomp.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<ExceptionHandling>false</ExceptionHandling>
<StringPooling>true</StringPooling>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CallAttributedProfiling>Fastcap</CallAttributedProfiling>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;PROFILE;FASTCAP;%(PreprocessorDefinitions);PACKAGE_VERSION="0.9.3";_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>false</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<SetChecksum>true</SetChecksum>
<AdditionalDependencies>xapilib.lib;d3d9.lib;d3dx9.lib;xgraphics.lib;xboxkrnl.lib;xnet.lib;xaudio2.lib;xact3.lib;x3daudio.lib;xmcore.lib;vcomp.lib;xbdm.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<StringPooling>true</StringPooling>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<ExceptionHandling>false</ExceptionHandling>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;%(PreprocessorDefinitions);PACKAGE_VERSION="0.9.3";_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<SetChecksum>true</SetChecksum>
<AdditionalDependencies>xapilib.lib;d3d9.lib;d3dx9.lib;xgraphics.lib;xboxkrnl.lib;xnet.lib;xaudio2.lib;xact3.lib;x3daudio.lib;xmcore.lib;vcomp.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<StringPooling>true</StringPooling>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<ExceptionHandling>false</ExceptionHandling>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;LTCG;%(PreprocessorDefinitions);PACKAGE_VERSION="0.9.3";_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<SetChecksum>true</SetChecksum>
<AdditionalDependencies>xapilib.lib;d3d9ltcg.lib;d3dx9.lib;xgraphics.lib;xboxkrnl.lib;xnet.lib;xaudio2.lib;xact3ltcg.lib;x3daudioltcg.lib;xmcoreltcg.lib;vcomp.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\360\xdk360_audio.c" />
<ClCompile Include="..\..\360\xdk360_input.cpp" />
<ClCompile Include="..\..\360\xdk360_video.cpp" />
<ClCompile Include="..\..\autosave.c" />
<ClCompile Include="..\..\bps.c" />
<ClCompile Include="..\..\cheats.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\driver.c" />
<ClCompile Include="..\..\dynamic.c" />
<ClCompile Include="..\..\fifo_buffer.c" />
<ClCompile Include="..\..\file.c" />
<ClCompile Include="..\..\getopt.c" />
<ClCompile Include="..\..\message.c" />
<ClCompile Include="..\..\movie.c" />
<ClCompile Include="..\..\netplay.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\posix_string.c" />
<ClCompile Include="..\..\rewind.c" />
<ClCompile Include="..\..\screenshot.c" />
<ClCompile Include="..\..\settings.c" />
<ClCompile Include="..\..\sha256.c" />
<ClCompile Include="..\..\ssnes.c" />
<ClCompile Include="..\..\strl.c" />
<ClCompile Include="..\..\thread.c" />
<ClCompile Include="..\..\ups.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\360\msvc_compat.h" />
<ClInclude Include="..\..\360\xdk360_audio.h" />
<ClInclude Include="..\..\autosave.h" />
<ClInclude Include="..\..\boolean.h" />
<ClInclude Include="..\..\bps.h" />
<ClInclude Include="..\..\cheats.h" />
<ClInclude Include="..\..\config.def.h" />
<ClInclude Include="..\..\config.features.h" />
<ClInclude Include="..\..\driver.h" />
<ClInclude Include="..\..\dynamic.h" />
<ClInclude Include="..\..\fifo_buffer.h" />
<ClInclude Include="..\..\file.h" />
<ClInclude Include="..\..\general.h" />
<ClInclude Include="..\..\getopt_ssnes.h" />
<ClInclude Include="..\..\libsnes.hpp" />
<ClInclude Include="..\..\message.h" />
<ClInclude Include="..\..\movie.h" />
<ClInclude Include="..\..\netplay.h" />
<ClInclude Include="..\..\posix_string.h" />
<ClInclude Include="..\..\rewind.h" />
<ClInclude Include="..\..\screenshot.h" />
<ClInclude Include="..\..\sha256.h" />
<ClInclude Include="..\..\strl.h" />
<ClInclude Include="..\..\thread.h" />
<ClInclude Include="..\..\ups.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Source Files\360">
<UniqueIdentifier>{b9371e8d-2e72-4ced-8bf6-6ee6a77a1f78}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\360">
<UniqueIdentifier>{740056e8-6476-4e8c-b9cb-767bebdb5c60}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\360\xdk360_video.cpp">
<Filter>Source Files\360</Filter>
</ClCompile>
<ClCompile Include="..\..\360\xdk360_audio.c">
<Filter>Source Files\360</Filter>
</ClCompile>
<ClCompile Include="..\..\360\xdk360_input.cpp">
<Filter>Source Files\360</Filter>
</ClCompile>
<ClCompile Include="..\..\ups.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\autosave.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\bps.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\cheats.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\driver.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\dynamic.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\fifo_buffer.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\file.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\getopt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\message.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\movie.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\netplay.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\posix_string.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\rewind.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\screenshot.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\settings.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sha256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\ssnes.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\strl.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\thread.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\ups.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\autosave.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\boolean.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\bps.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\cheats.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\config.def.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\config.features.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\driver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\dynamic.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\fifo_buffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\file.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\general.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\getopt_ssnes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libsnes.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\message.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\movie.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\netplay.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\posix_string.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\rewind.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\screenshot.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sha256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\strl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\thread.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\360\xdk360_audio.h">
<Filter>Header Files\360</Filter>
</ClInclude>
<ClInclude Include="..\..\360\msvc_compat.h">
<Filter>Header Files\360</Filter>
</ClInclude>
</ItemGroup>
</Project>

@ -35,10 +35,13 @@
#include "cheats.h"
#include "getopt_ssnes.h"
#ifdef _WIN32
#if defined(_WIN32) && !defined(_XBOX)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "msvc/msvc_compat.h"
#elif defined(_XBOX)
#include <xtl.h>
#include "360/msvc_compat.h"
#endif
#ifdef __APPLE__
@ -839,7 +842,7 @@ static void parse_input(int argc, char *argv[])
break;
case 'D':
#ifdef _WIN32
#if defined(_WIN32) && !defined(_XBOX)
FreeConsole();
#endif
break;

@ -18,9 +18,11 @@
#include "thread.h"
#include <stdlib.h>
#ifdef _WIN32
#if defined(_WIN32) && !defined(_XBOX)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#elif defined(_XBOX)
#include <xtl.h>
#else
#include <pthread.h>
#include <time.h>