(Xbox OG) Fix Salamander build

This commit is contained in:
twinaphex 2018-01-03 14:31:41 +01:00
parent c9669b696c
commit 6c5d303a07
3 changed files with 82 additions and 269 deletions

View file

@ -69,10 +69,6 @@ typedef struct _AURORA_LAUNCHDATA_EXECUTABLE
#include <pshpack4.h>
#ifdef __cplusplus
extern "C" {
#endif
// Don't do __declspec(dllimport) for things like emulators
#if defined(NTSYSAPI) && defined(DONT_IMPORT_INTERNAL)
#undef NTSYSAPI
@ -978,14 +974,8 @@ XeLoadSection(
#define STATUS_TOO_MANY_SECRETS 0xC0000156
#define STATUS_REGION_MISMATCH 0xC0050001
#ifdef __cplusplus
};
#endif
#include <poppack.h>
extern "C"
{
// Thanks and credit go to Woodoo
extern VOID WINAPI HalWriteSMBusValue(BYTE, BYTE, BOOL, BYTE);
extern VOID WINAPI HalReadSMCTrayState(DWORD* state, DWORD* count);
@ -999,8 +989,6 @@ extern "C"
extern INT WINAPI XWriteTitleInfoNoReboot(LPVOID,LPVOID,DWORD,DWORD,LPVOID);
extern DWORD* LaunchDataPage;
}
#endif
static enum frontend_fork xdk_fork_mode = FRONTEND_FORK_NONE;
@ -1013,15 +1001,9 @@ typedef struct _STRING
PCHAR Buffer;
} STRING, *PSTRING;
#ifdef __cplusplus
extern "C" {
#endif
VOID RtlInitAnsiString(PSTRING DestinationString, PCHAR SourceString);
HRESULT ObDeleteSymbolicLink(PSTRING SymbolicLinkName);
HRESULT ObCreateSymbolicLink(PSTRING SymbolicLinkName, PSTRING DeviceName);
#ifdef __cplusplus
}
#endif
static HRESULT xbox_io_mount(const char* szDrive, char* szDevice)
{
@ -1040,6 +1022,7 @@ static HRESULT xbox_io_mount(const char* szDrive, char* szDevice)
#ifdef _XBOX1
static HRESULT xbox_io_mount(char *szDrive, char *szDevice)
{
STRING DeviceName, LinkName;
#ifndef IS_SALAMANDER
bool original_verbose = verbosity_is_enabled();
#endif
@ -1051,19 +1034,13 @@ static HRESULT xbox_io_mount(char *szDrive, char *szDevice)
snprintf(szDestinationDrive, sizeof(szDestinationDrive),
"\\??\\%s", szDrive);
STRING DeviceName =
{
strlen(szSourceDevice),
strlen(szSourceDevice) + 1,
szSourceDevice
};
DeviceName.Length = strlen(szSourceDevice);
DeviceName.MaximumLength = strlen(szSourceDevice) + 1;
DeviceName.Buffer = szSourceDevice;
STRING LinkName =
{
strlen(szDestinationDrive),
strlen(szDestinationDrive) + 1,
szDestinationDrive
};
LinkName.Length = strlen(szDestinationDrive);
LinkName.MaximumLength = strlen(szDestinationDrive) + 1;
LinkName.Buffer = szDestinationDrive;
IoCreateSymbolicLink(&LinkName, &DeviceName);
@ -1078,17 +1055,15 @@ static HRESULT xbox_io_mount(char *szDrive, char *szDevice)
static HRESULT xbox_io_unmount(char *szDrive)
{
STRING LinkName;
char szDestinationDrive[16] = {0};
snprintf(szDestinationDrive, sizeof(szDestinationDrive),
"\\??\\%s", szDrive);
STRING LinkName =
{
strlen(szDestinationDrive),
strlen(szDestinationDrive) + 1,
szDestinationDrive
};
LinkName.Length = strlen(szDestinationDrive);
LinkName.MaximumLength = strlen(szDestinationDrive) + 1;
LinkName.Buffer = szDestinationDrive;
IoDeleteSymbolicLink(&LinkName);

View file

@ -4,6 +4,7 @@
Version="7.10"
Name="RetroArch-Salamander"
ProjectGUID="{EA17F7A7-7E66-4E32-9BA3-DEC11E4BBA8E}"
RootNamespace="RetroArch-Salamander"
Keyword="XboxProj">
<Platforms>
<Platform
@ -20,7 +21,7 @@
Name="VCCLCompilerTool"
Optimization="0"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
PreprocessorDefinitions="_DEBUG;_XBOX;_XBOX1;IS_SALAMANDER;RARCH_CONSOLE;HAVE_RARCH_EXEC"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
@ -29,7 +30,8 @@
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="4"/>
DebugInformationFormat="4"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@ -68,7 +70,7 @@
Optimization="3"
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;PROFILE;IS_SALAMANDER;RARCH_CONSOLE;HAVE_RARCH_EXEC"
StringPooling="TRUE"
RuntimeLibrary="0"
@ -78,7 +80,8 @@
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="3"/>
DebugInformationFormat="3"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@ -120,7 +123,7 @@
Optimization="3"
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;PROFILE;FASTCAP;IS_SALAMANDER;RARCH_CONSOLE;HAVE_RARCH_EXEC"
StringPooling="TRUE"
RuntimeLibrary="0"
@ -131,6 +134,7 @@
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="3"
CompileAs="1"
FastCAP="TRUE"/>
<Tool
Name="VCCustomBuildTool"/>
@ -173,7 +177,7 @@
Optimization="3"
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;IS_SALAMANDER;RARCH_CONSOLE;HAVE_RARCH_EXEC"
StringPooling="TRUE"
RuntimeLibrary="0"
@ -183,7 +187,8 @@
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="3"/>
DebugInformationFormat="3"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@ -225,7 +230,7 @@
Optimization="3"
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\libretro-common\include\compat\msvc&quot;;&quot;$(SolutionDir)\..\..\libretro-common\include&quot;;&quot;$(SolutionDir)\msvc-71&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;LTCG;IS_SALAMANDER;RARCH_CONSOLE;HAVE_RARCH_EXEC"
StringPooling="TRUE"
RuntimeLibrary="0"
@ -235,7 +240,8 @@
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="3"/>
DebugInformationFormat="3"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@ -273,265 +279,91 @@
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath="..\..\frontend\frontend_driver.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
RelativePath="..\..\..\file_path_str.c">
</File>
<File
RelativePath="..\..\frontend\frontend_salamander.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
RelativePath="..\..\..\frontend\frontend_driver.c">
</File>
<File
RelativePath="..\..\frontend\drivers\platform_null.c">
RelativePath="..\..\..\frontend\frontend_salamander.c">
</File>
<File
RelativePath="..\..\frontend\drivers\platform_xdk.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="2"/>
</FileConfiguration>
RelativePath="..\..\..\frontend\drivers\platform_null.c">
</File>
<File
RelativePath="..\..\..\frontend\drivers\platform_xdk.c">
</File>
<File
RelativePath="..\..\..\verbosity.c">
</File>
<Filter
Name="libretro-common"
Filter="">
<Filter
Name="compat"
Name="lists"
Filter="">
<File
RelativePath="..\..\libretro-common\compat\compat.c">
RelativePath="..\..\..\libretro-common\lists\dir_list.c">
</File>
<File
RelativePath="..\..\..\libretro-common\lists\string_list.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\..\libretro-common\compat\compat_strcasestr.c">
RelativePath="..\..\..\libretro-common\compat\compat_posix_string.c">
</File>
<File
RelativePath="..\..\..\libretro-common\compat\compat_snprintf.c">
</File>
<File
RelativePath="..\..\..\libretro-common\compat\compat_strcasestr.c">
</File>
<File
RelativePath="..\..\..\libretro-common\compat\compat_strl.c">
</File>
<File
RelativePath="..\..\..\libretro-common\compat\fopen_utf8.c">
</File>
</Filter>
<Filter
Name="file"
Filter="">
<File
RelativePath="..\..\libretro-common\file\config_file.c">
RelativePath="..\..\..\libretro-common\file\config_file.c">
</File>
<File
RelativePath="..\..\libretro-common\file\dir_list.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
RelativePath="..\..\..\libretro-common\file\file_path.c">
</File>
<File
RelativePath="..\..\libretro-common\file\retro_dirent.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\libretro-common\file\file_path.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
RelativePath="..\..\..\libretro-common\file\retro_dirent.c">
</File>
</Filter>
<Filter
Name="string"
Filter="">
</Filter>
<Filter
Name="streams"
Filter="">
<File
RelativePath="..\..\libretro-common\string\string_list.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
RelativePath="..\..\..\libretro-common\streams\file_stream.c">
</File>
</Filter>
<Filter
Name="vfs"
Filter="">
<File
RelativePath="..\..\..\libretro-common\vfs\vfs_implementation.c">
</File>
</Filter>
<Filter
Name="encodings"
Filter="">
<File
RelativePath="..\..\..\libretro-common\encodings\encoding_utf.c">
</File>
</Filter>
</Filter>

View file

@ -29,6 +29,10 @@
#include <stdio.h>
#include <stdarg.h>
#ifdef _MSC_VER
#include <compat/msvc.h>
#endif
#ifdef ANDROID
#include <android/log.h>
#endif
@ -146,6 +150,7 @@ static aslclient asl_client;
asl_free(msg);
#endif
#elif defined(_XBOX1)
{
/* FIXME: Using arbitrary string as fmt argument is unsafe. */
char msg_new[1024];
char buffer[1024];
@ -157,6 +162,7 @@ static aslclient asl_client;
fmt);
wvsprintf(buffer, msg_new, ap);
OutputDebugStringA(buffer);
}
#elif defined(ANDROID)
int prio = ANDROID_LOG_INFO;
if (tag)