libretro: fix compile, restore changes, switch to vs2017 project

This commit is contained in:
OV2 2018-05-26 15:15:06 +02:00
parent 7b3bbda18b
commit 470ea70687
4 changed files with 709 additions and 928 deletions

View File

@ -1,794 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libretro-win32"
ProjectGUID="{4A2A7544-0547-4539-8B53-047FB9A15C75}"
RootNamespace="libsneswin32"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="libsnes Debug|Win32"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../;../apu/bapu"
PreprocessorDefinitions="__WIN32__"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="2"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\libretro.dll"
LinkIncremental="2"
ModuleDefinitionFile="libretro.def"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="libsnes Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../;../apu/bapu"
PreprocessorDefinitions="__WIN32__"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="2"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\libretro.dll"
LinkIncremental="2"
ModuleDefinitionFile="libretro.def"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="libsnes Release|Win32"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="0"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="../;../apu/bapu"
PreprocessorDefinitions="__WIN32__"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="2"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\libretro.dll"
LinkIncremental="1"
ModuleDefinitionFile="libretro.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="libsnes Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="0"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories="../;../apu/bapu"
PreprocessorDefinitions="__WIN32__"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="2"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\libretro.dll"
LinkIncremental="1"
ModuleDefinitionFile="libretro.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="s9x-source"
>
<File
RelativePath="..\65c816.h"
>
</File>
<File
RelativePath="..\bml.cpp"
>
</File>
<File
RelativePath="..\bsx.cpp"
>
</File>
<File
RelativePath="..\bsx.h"
>
</File>
<File
RelativePath="..\c4.cpp"
>
</File>
<File
RelativePath="..\c4.h"
>
</File>
<File
RelativePath="..\c4emu.cpp"
>
</File>
<File
RelativePath="..\cheats.cpp"
>
</File>
<File
RelativePath="..\cheats.h"
>
</File>
<File
RelativePath="..\cheats2.cpp"
>
</File>
<File
RelativePath="..\clip.cpp"
>
</File>
<File
RelativePath="..\conffile.cpp"
>
</File>
<File
RelativePath="..\conffile.h"
>
</File>
<File
RelativePath="..\controls.cpp"
>
</File>
<File
RelativePath="..\controls.h"
>
</File>
<File
RelativePath="..\cpu.cpp"
>
</File>
<File
RelativePath="..\cpuaddr.h"
>
</File>
<File
RelativePath="..\cpuexec.cpp"
>
</File>
<File
RelativePath="..\cpuexec.h"
>
</File>
<File
RelativePath="..\cpumacro.h"
>
</File>
<File
RelativePath="..\cpuops.cpp"
>
</File>
<File
RelativePath="..\cpuops.h"
>
</File>
<File
RelativePath="..\crosshairs.cpp"
>
</File>
<File
RelativePath="..\crosshairs.h"
>
</File>
<File
RelativePath="..\debug.cpp"
>
</File>
<File
RelativePath="..\debug.h"
>
</File>
<File
RelativePath="..\display.h"
>
</File>
<File
RelativePath="..\dma.cpp"
>
</File>
<File
RelativePath="..\dma.h"
>
</File>
<File
RelativePath="..\dsp.cpp"
>
</File>
<File
RelativePath="..\dsp.h"
>
</File>
<File
RelativePath="..\dsp1.cpp"
>
</File>
<File
RelativePath="..\dsp2.cpp"
>
</File>
<File
RelativePath="..\dsp3.cpp"
>
</File>
<File
RelativePath="..\dsp4.cpp"
>
</File>
<File
RelativePath="..\font.h"
>
</File>
<File
RelativePath="..\fxemu.cpp"
>
</File>
<File
RelativePath="..\fxemu.h"
>
</File>
<File
RelativePath="..\fxinst.cpp"
>
</File>
<File
RelativePath="..\fxinst.h"
>
</File>
<File
RelativePath="..\getset.h"
>
</File>
<File
RelativePath="..\gfx.cpp"
>
</File>
<File
RelativePath="..\gfx.h"
>
</File>
<File
RelativePath="..\globals.cpp"
>
</File>
<File
RelativePath="..\language.h"
>
</File>
<File
RelativePath="..\loadzip.cpp"
>
</File>
<File
RelativePath="..\logger.cpp"
>
</File>
<File
RelativePath="..\logger.h"
>
</File>
<File
RelativePath="..\memmap.cpp"
>
</File>
<File
RelativePath="..\memmap.h"
>
</File>
<File
RelativePath="..\messages.h"
>
</File>
<File
RelativePath="..\missing.h"
>
</File>
<File
RelativePath="..\movie.cpp"
>
</File>
<File
RelativePath="..\movie.h"
>
</File>
<File
RelativePath="..\netplay.cpp"
>
</File>
<File
RelativePath="..\netplay.h"
>
</File>
<File
RelativePath="..\obc1.cpp"
>
</File>
<File
RelativePath="..\obc1.h"
>
</File>
<File
RelativePath="..\pixform.h"
>
</File>
<File
RelativePath="..\port.h"
>
</File>
<File
RelativePath="..\ppu.cpp"
>
</File>
<File
RelativePath="..\ppu.h"
>
</File>
<File
RelativePath="..\sa1.cpp"
>
</File>
<File
RelativePath="..\sa1.h"
>
</File>
<File
RelativePath="..\sa1cpu.cpp"
>
</File>
<File
RelativePath="..\sar.h"
>
</File>
<File
RelativePath="..\screenshot.cpp"
>
</File>
<File
RelativePath="..\screenshot.h"
>
</File>
<File
RelativePath="..\sdd1.cpp"
>
</File>
<File
RelativePath="..\sdd1.h"
>
</File>
<File
RelativePath="..\sdd1emu.cpp"
>
</File>
<File
RelativePath="..\sdd1emu.h"
>
</File>
<File
RelativePath="..\server.cpp"
>
</File>
<File
RelativePath="..\seta.cpp"
>
</File>
<File
RelativePath="..\seta.h"
>
</File>
<File
RelativePath="..\seta010.cpp"
>
</File>
<File
RelativePath="..\seta011.cpp"
>
</File>
<File
RelativePath="..\seta018.cpp"
>
</File>
<File
RelativePath="..\sha256.cpp"
>
</File>
<File
RelativePath="..\snapshot.cpp"
>
</File>
<File
RelativePath="..\snapshot.h"
>
</File>
<File
RelativePath="..\snes9x.cpp"
>
</File>
<File
RelativePath="..\snes9x.h"
>
</File>
<File
RelativePath="..\spc7110.cpp"
>
</File>
<File
RelativePath="..\spc7110.h"
>
</File>
<File
RelativePath="..\srtc.cpp"
>
</File>
<File
RelativePath="..\srtc.h"
>
</File>
<File
RelativePath="..\stream.cpp"
>
</File>
<File
RelativePath="..\stream.h"
>
</File>
<File
RelativePath="..\tile.cpp"
>
</File>
<File
RelativePath="..\tile.h"
>
</File>
<Filter
Name="APU"
>
<File
RelativePath="..\apu\apu.cpp"
>
</File>
<File
RelativePath="..\apu\apu.h"
>
</File>
<File
RelativePath="..\apu\hermite_resampler.h"
>
</File>
<File
RelativePath="..\apu\resampler.h"
>
</File>
<File
RelativePath="..\apu\ring_buffer.h"
>
</File>
<Filter
Name="SMP"
>
<File
RelativePath="..\apu\bapu\smp\smp.cpp"
>
</File>
<File
RelativePath="..\apu\bapu\smp\smp_state.cpp"
>
</File>
</Filter>
<Filter
Name="DSP"
>
<File
RelativePath="..\apu\bapu\dsp\blargg_common.h"
>
</File>
<File
RelativePath="..\apu\bapu\dsp\blargg_config.h"
>
</File>
<File
RelativePath="..\apu\bapu\dsp\blargg_endian.h"
>
</File>
<File
RelativePath="..\apu\bapu\dsp\blargg_source.h"
>
</File>
<File
RelativePath="..\apu\bapu\dsp\sdsp.cpp"
>
</File>
<File
RelativePath="..\apu\bapu\dsp\sdsp.hpp"
>
</File>
<File
RelativePath="..\apu\bapu\dsp\SPC_DSP.cpp"
>
</File>
<File
RelativePath="..\apu\bapu\dsp\SPC_DSP.h"
>
</File>
</Filter>
</Filter>
</Filter>
<Filter
Name="libretro"
>
<File
RelativePath=".\libretro.cpp"
>
</File>
<File
RelativePath=".\libretro.def"
>
</File>
<File
RelativePath=".\libretro.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,303 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="libretro Debug|Win32">
<Configuration>libretro Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="libretro Debug|x64">
<Configuration>libretro Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="libretro Release|Win32">
<Configuration>libretro Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="libretro Release|x64">
<Configuration>libretro Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4A2A7544-0547-4539-8B53-047FB9A15C75}</ProjectGuid>
<RootNamespace>libretrowin32</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141_xp</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141_xp</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141_xp</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141_xp</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.25431.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|Win32'">
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>libretro_debug</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|x64'">
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>libretro_debug</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|Win32'">
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>libretro</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|x64'">
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>libretro</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../;../apu/bapu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__WIN32__;__LIBRETRO__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level2</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<ModuleDefinitionFile>
</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='libretro Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../;../apu/bapu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__WIN32__;__LIBRETRO__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level2</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<ModuleDefinitionFile>
</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|Win32'">
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>../;../apu/bapu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__WIN32__;__LIBRETRO__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level2</WarningLevel>
</ClCompile>
<Link>
<ModuleDefinitionFile>
</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='libretro Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>../;../apu/bapu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__WIN32__;__LIBRETRO__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level2</WarningLevel>
</ClCompile>
<Link>
<ModuleDefinitionFile>
</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\65c816.h" />
<ClInclude Include="..\apu\apu.h" />
<ClInclude Include="..\apu\bapu\dsp\blargg_common.h" />
<ClInclude Include="..\apu\bapu\dsp\blargg_config.h" />
<ClInclude Include="..\apu\bapu\dsp\blargg_endian.h" />
<ClInclude Include="..\apu\bapu\dsp\blargg_source.h" />
<ClInclude Include="..\apu\bapu\dsp\sdsp.hpp" />
<ClInclude Include="..\apu\bapu\dsp\SPC_DSP.h" />
<ClInclude Include="..\apu\hermite_resampler.h" />
<ClInclude Include="..\apu\resampler.h" />
<ClInclude Include="..\apu\ring_buffer.h" />
<ClInclude Include="..\bml.h" />
<ClInclude Include="..\bsx.h" />
<ClInclude Include="..\c4.h" />
<ClInclude Include="..\cheats.h" />
<ClInclude Include="..\conffile.h" />
<ClInclude Include="..\controls.h" />
<ClInclude Include="..\cpuaddr.h" />
<ClInclude Include="..\cpuexec.h" />
<ClInclude Include="..\cpumacro.h" />
<ClInclude Include="..\cpuops.h" />
<ClInclude Include="..\crosshairs.h" />
<ClInclude Include="..\debug.h" />
<ClInclude Include="..\display.h" />
<ClInclude Include="..\dma.h" />
<ClInclude Include="..\dsp.h" />
<ClInclude Include="..\font.h" />
<ClInclude Include="..\fxemu.h" />
<ClInclude Include="..\fxinst.h" />
<ClInclude Include="..\getset.h" />
<ClInclude Include="..\gfx.h" />
<ClInclude Include="..\language.h" />
<ClInclude Include="..\logger.h" />
<ClInclude Include="..\memmap.h" />
<ClInclude Include="..\messages.h" />
<ClInclude Include="..\missing.h" />
<ClInclude Include="..\movie.h" />
<ClInclude Include="..\msu1.h" />
<ClInclude Include="..\netplay.h" />
<ClInclude Include="..\obc1.h" />
<ClInclude Include="..\pixform.h" />
<ClInclude Include="..\port.h" />
<ClInclude Include="..\ppu.h" />
<ClInclude Include="..\sa1.h" />
<ClInclude Include="..\sar.h" />
<ClInclude Include="..\screenshot.h" />
<ClInclude Include="..\sdd1.h" />
<ClInclude Include="..\sdd1emu.h" />
<ClInclude Include="..\seta.h" />
<ClInclude Include="..\sha256.h" />
<ClInclude Include="..\snapshot.h" />
<ClInclude Include="..\snes9x.h" />
<ClInclude Include="..\spc7110.h" />
<ClInclude Include="..\srtc.h" />
<ClInclude Include="..\stream.h" />
<ClInclude Include="..\tile.h" />
<ClInclude Include="libretro.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\apu\apu.cpp" />
<ClCompile Include="..\apu\bapu\dsp\sdsp.cpp" />
<ClCompile Include="..\apu\bapu\dsp\SPC_DSP.cpp" />
<ClCompile Include="..\apu\bapu\smp\smp.cpp" />
<ClCompile Include="..\apu\bapu\smp\smp_state.cpp" />
<ClCompile Include="..\bml.cpp" />
<ClCompile Include="..\bsx.cpp" />
<ClCompile Include="..\c4.cpp" />
<ClCompile Include="..\c4emu.cpp" />
<ClCompile Include="..\cheats.cpp" />
<ClCompile Include="..\cheats2.cpp" />
<ClCompile Include="..\clip.cpp" />
<ClCompile Include="..\conffile.cpp" />
<ClCompile Include="..\controls.cpp" />
<ClCompile Include="..\cpu.cpp" />
<ClCompile Include="..\cpuexec.cpp" />
<ClCompile Include="..\cpuops.cpp" />
<ClCompile Include="..\crosshairs.cpp" />
<ClCompile Include="..\debug.cpp" />
<ClCompile Include="..\dma.cpp" />
<ClCompile Include="..\dsp.cpp" />
<ClCompile Include="..\dsp1.cpp" />
<ClCompile Include="..\dsp2.cpp" />
<ClCompile Include="..\dsp3.cpp" />
<ClCompile Include="..\dsp4.cpp" />
<ClCompile Include="..\fxemu.cpp" />
<ClCompile Include="..\fxinst.cpp" />
<ClCompile Include="..\gfx.cpp" />
<ClCompile Include="..\globals.cpp" />
<ClCompile Include="..\loadzip.cpp" />
<ClCompile Include="..\logger.cpp" />
<ClCompile Include="..\memmap.cpp" />
<ClCompile Include="..\movie.cpp" />
<ClCompile Include="..\msu1.cpp" />
<ClCompile Include="..\netplay.cpp" />
<ClCompile Include="..\obc1.cpp" />
<ClCompile Include="..\ppu.cpp" />
<ClCompile Include="..\sa1.cpp" />
<ClCompile Include="..\sa1cpu.cpp" />
<ClCompile Include="..\screenshot.cpp" />
<ClCompile Include="..\sdd1.cpp" />
<ClCompile Include="..\sdd1emu.cpp" />
<ClCompile Include="..\server.cpp" />
<ClCompile Include="..\seta.cpp" />
<ClCompile Include="..\seta010.cpp" />
<ClCompile Include="..\seta011.cpp" />
<ClCompile Include="..\seta018.cpp" />
<ClCompile Include="..\sha256.cpp" />
<ClCompile Include="..\snapshot.cpp" />
<ClCompile Include="..\snes9x.cpp" />
<ClCompile Include="..\spc7110.cpp" />
<ClCompile Include="..\srtc.cpp" />
<ClCompile Include="..\stream.cpp" />
<ClCompile Include="..\tile.cpp" />
<ClCompile Include="libretro.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,360 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="s9x-source">
<UniqueIdentifier>{11448d42-5e46-4e58-b0be-8cb4b3b52ec0}</UniqueIdentifier>
</Filter>
<Filter Include="s9x-source\APU">
<UniqueIdentifier>{dff4c5c7-1360-4c70-9a67-f5457847b1e9}</UniqueIdentifier>
</Filter>
<Filter Include="s9x-source\APU\SMP">
<UniqueIdentifier>{d36ce584-8d5f-421c-9e1c-219a937e23c3}</UniqueIdentifier>
</Filter>
<Filter Include="s9x-source\APU\DSP">
<UniqueIdentifier>{bb8b70ce-cd5a-45ab-848c-5c5379190802}</UniqueIdentifier>
</Filter>
<Filter Include="libretro">
<UniqueIdentifier>{7445db59-72e6-42a3-963c-c352087333b1}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\65c816.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\bsx.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\c4.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\cheats.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\conffile.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\controls.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\cpuaddr.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\cpuexec.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\cpumacro.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\cpuops.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\crosshairs.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\debug.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\display.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\dma.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\dsp.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\font.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\fxemu.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\fxinst.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\getset.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\gfx.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\language.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\logger.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\memmap.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\messages.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\missing.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\movie.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\netplay.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\obc1.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\pixform.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\port.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\ppu.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\sa1.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\sar.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\screenshot.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\sdd1.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\sdd1emu.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\seta.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\snapshot.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\snes9x.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\spc7110.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\srtc.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\stream.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\tile.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\apu\apu.h">
<Filter>s9x-source\APU</Filter>
</ClInclude>
<ClInclude Include="..\apu\hermite_resampler.h">
<Filter>s9x-source\APU</Filter>
</ClInclude>
<ClInclude Include="..\apu\resampler.h">
<Filter>s9x-source\APU</Filter>
</ClInclude>
<ClInclude Include="..\apu\ring_buffer.h">
<Filter>s9x-source\APU</Filter>
</ClInclude>
<ClInclude Include="..\apu\bapu\dsp\blargg_common.h">
<Filter>s9x-source\APU\DSP</Filter>
</ClInclude>
<ClInclude Include="..\apu\bapu\dsp\blargg_config.h">
<Filter>s9x-source\APU\DSP</Filter>
</ClInclude>
<ClInclude Include="..\apu\bapu\dsp\blargg_endian.h">
<Filter>s9x-source\APU\DSP</Filter>
</ClInclude>
<ClInclude Include="..\apu\bapu\dsp\blargg_source.h">
<Filter>s9x-source\APU\DSP</Filter>
</ClInclude>
<ClInclude Include="..\apu\bapu\dsp\sdsp.hpp">
<Filter>s9x-source\APU\DSP</Filter>
</ClInclude>
<ClInclude Include="..\apu\bapu\dsp\SPC_DSP.h">
<Filter>s9x-source\APU\DSP</Filter>
</ClInclude>
<ClInclude Include="libretro.h">
<Filter>libretro</Filter>
</ClInclude>
<ClInclude Include="..\msu1.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\bml.h">
<Filter>s9x-source</Filter>
</ClInclude>
<ClInclude Include="..\sha256.h">
<Filter>s9x-source</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\bsx.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\c4.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\c4emu.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\cheats.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\cheats2.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\clip.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\conffile.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\controls.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\cpu.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\cpuexec.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\cpuops.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\crosshairs.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\debug.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\dma.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\dsp.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\dsp1.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\dsp2.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\dsp3.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\dsp4.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\fxemu.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\fxinst.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\gfx.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\globals.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\loadzip.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\logger.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\memmap.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\movie.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\netplay.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\obc1.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\ppu.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\sa1.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\sa1cpu.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\screenshot.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\sdd1.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\sdd1emu.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\server.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\seta.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\seta010.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\seta011.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\seta018.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\snapshot.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\snes9x.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\spc7110.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\srtc.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\stream.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\tile.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\apu\apu.cpp">
<Filter>s9x-source\APU</Filter>
</ClCompile>
<ClCompile Include="..\apu\bapu\smp\smp.cpp">
<Filter>s9x-source\APU\SMP</Filter>
</ClCompile>
<ClCompile Include="..\apu\bapu\smp\smp_state.cpp">
<Filter>s9x-source\APU\SMP</Filter>
</ClCompile>
<ClCompile Include="..\apu\bapu\dsp\sdsp.cpp">
<Filter>s9x-source\APU\DSP</Filter>
</ClCompile>
<ClCompile Include="..\apu\bapu\dsp\SPC_DSP.cpp">
<Filter>s9x-source\APU\DSP</Filter>
</ClCompile>
<ClCompile Include="libretro.cpp">
<Filter>libretro</Filter>
</ClCompile>
<ClCompile Include="..\msu1.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\bml.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
<ClCompile Include="..\sha256.cpp">
<Filter>s9x-source</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -9,6 +9,7 @@
#include "snapshot.h"
#include "controls.h"
#include "cheats.h"
#include "movie.h"
#include "logger.h"
#include "display.h"
#include "conffile.h"
@ -40,12 +41,10 @@
#define RETRO_GAME_TYPE_SUPER_GAME_BOY 0x104
#define SNES_4_3 4.0f / 3.0f
#define SNES_8_7 8.0f / 7.0f
char g_rom_dir[1024];
char g_basename[1024];
bool overclock_cycles = false;
bool reduce_sprite_flicker = false;
int one_c, slow_one_c, two_c;
retro_log_printf_t log_cb = NULL;
static retro_video_refresh_t video_cb = NULL;
@ -113,9 +112,21 @@ void retro_set_input_state(retro_input_state_t cb)
input_state_cb = cb;
}
enum overscan_mode {
OVERSCAN_CROP_ON,
OVERSCAN_CROP_OFF,
OVERSCAN_CROP_AUTO
};
enum aspect_mode {
ASPECT_RATIO_4_3,
ASPECT_RATIO_8_7,
ASPECT_RATIO_NTSC,
ASPECT_RATIO_PAL,
ASPECT_RATIO_AUTO
};
static retro_environment_t environ_cb;
static unsigned crop_overscan_mode = 0;
static unsigned aspect_ratio_mode = 0;
static overscan_mode crop_overscan_mode = OVERSCAN_CROP_ON; // default to crop
static aspect_mode aspect_ratio_mode = ASPECT_RATIO_4_3; // default to 4:3
static bool rom_loaded = false;
void retro_set_environment(retro_environment_t cb)
{
@ -145,20 +156,20 @@ void retro_set_environment(retro_environment_t cb)
{ "snes9x_sndchan_6", "Enable sound channel 6; enabled|disabled" },
{ "snes9x_sndchan_7", "Enable sound channel 7; enabled|disabled" },
{ "snes9x_sndchan_8", "Enable sound channel 8; enabled|disabled" },
{ "snes9x_overscan", "Crop overscan; auto|enabled|disabled" },
{ "snes9x_aspect", "Preferred aspect ratio; auto|ntsc|pal|4:3" },
{ "snes9x_overscan", "Crop overscan; enabled|disabled|auto" },
{ "snes9x_aspect", "Preferred aspect ratio; 4:3|8:7|auto|ntsc|pal" },
{ NULL, NULL },
};
environ_cb(RETRO_ENVIRONMENT_SET_VARIABLES, variables);
static const struct retro_controller_description port_1[] = {
const struct retro_controller_description port_1[] = {
{ "SNES Joypad", RETRO_DEVICE_JOYPAD },
{ "SNES Mouse", RETRO_DEVICE_MOUSE },
{ "Multitap", RETRO_DEVICE_JOYPAD_MULTITAP },
};
static const struct retro_controller_description port_2[] = {
const struct retro_controller_description port_2[] = {
{ "SNES Joypad", RETRO_DEVICE_JOYPAD },
{ "SNES Mouse", RETRO_DEVICE_MOUSE },
{ "Multitap", RETRO_DEVICE_JOYPAD_MULTITAP },
@ -166,7 +177,7 @@ void retro_set_environment(retro_environment_t cb)
{ "Justifier", RETRO_DEVICE_LIGHTGUN_JUSTIFIER },
};
static const struct retro_controller_info ports[] = {
const struct retro_controller_info ports[] = {
{ port_1, 3 },
{ port_2, 5 },
{ 0, 0 },
@ -206,40 +217,6 @@ static void update_variables(void)
else
Settings.UpAndDown = false;
var.key = "snes9x_overclock_cycles";
var.value = NULL;
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
if (strcmp(var.value, "compatible") == 0)
{
overclock_cycles = true;
one_c = 4;
slow_one_c = 5;
two_c = 6;
}
else if (strcmp(var.value, "max") == 0)
{
overclock_cycles = true;
one_c = 3;
slow_one_c = 3;
two_c = 3;
}
else
overclock_cycles = false;
}
var.key = "snes9x_reduce_sprite_flicker";
var.value = NULL;
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
if (strcmp(var.value, "enabled") == 0)
reduce_sprite_flicker = true;
else
reduce_sprite_flicker = false;
}
int disabled_channels=0;
strcpy(key, "snes9x_sndchan_x");
var.key=key;
@ -281,11 +258,11 @@ static void update_variables(void)
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
unsigned newval = 0;
overscan_mode newval = OVERSCAN_CROP_AUTO;
if (strcmp(var.value, "enabled") == 0)
newval = 1;
newval = OVERSCAN_CROP_ON;
else if (strcmp(var.value, "disabled") == 0)
newval = 2;
newval = OVERSCAN_CROP_OFF;
if (newval != crop_overscan_mode)
{
@ -298,13 +275,15 @@ static void update_variables(void)
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
unsigned newval = 0;
aspect_mode newval = ASPECT_RATIO_AUTO;
if (strcmp(var.value, "ntsc") == 0)
newval = 1;
newval = ASPECT_RATIO_NTSC;
else if (strcmp(var.value, "pal") == 0)
newval = 2;
newval = ASPECT_RATIO_PAL;
else if (strcmp(var.value, "4:3") == 0)
newval = 3;
newval = ASPECT_RATIO_4_3;
else if (strcmp(var.value, "8:7") == 0)
newval = ASPECT_RATIO_8_7;
if (newval != aspect_ratio_mode)
{
@ -356,23 +335,28 @@ void retro_get_system_info(struct retro_system_info *info)
float get_aspect_ratio(unsigned width, unsigned height)
{
if (aspect_ratio_mode == 3) // 4:3
if (aspect_ratio_mode == ASPECT_RATIO_4_3)
{
return SNES_4_3;
}
else if (aspect_ratio_mode == ASPECT_RATIO_8_7)
{
return SNES_8_7;
}
float sample_frequency_ntsc = 135000000.0 / 11.0;
// OV2: not sure if these really make sense - NTSC is similar to 4:3, PAL looks weird
float sample_frequency_ntsc = 135000000.0f / 11.0f;
float sample_frequency_pal = 14750000.0;
float sample_freq = retro_get_region() == RETRO_REGION_NTSC ? sample_frequency_ntsc : sample_frequency_pal;
float dot_rate = SNES::cpu.frequency / 4.0;
if (aspect_ratio_mode == 1) // ntsc
if (aspect_ratio_mode == ASPECT_RATIO_NTSC) // ntsc
{
sample_freq = sample_frequency_ntsc;
dot_rate = NTSC_MASTER_CLOCK / 4.0;
}
else if (aspect_ratio_mode == 2) // pal
else if (aspect_ratio_mode == ASPECT_RATIO_PAL) // pal
{
sample_freq = sample_frequency_pal;
dot_rate = PAL_MASTER_CLOCK / 4.0;
@ -387,9 +371,9 @@ void retro_get_system_av_info(struct retro_system_av_info *info)
memset(info,0,sizeof(retro_system_av_info));
unsigned width = SNES_WIDTH;
unsigned height = PPU.ScreenHeight;
if (crop_overscan_mode == 1) // enabled
if (crop_overscan_mode == OVERSCAN_CROP_ON)
height = SNES_HEIGHT;
else if (crop_overscan_mode == 2) // disabled
else if (crop_overscan_mode == OVERSCAN_CROP_OFF)
height = SNES_HEIGHT_EXTENDED;
info->geometry.base_width = width;
@ -442,7 +426,7 @@ void retro_set_controller_port_device(unsigned port, unsigned device)
break;
default:
if (log_cb)
log_cb(RETRO_LOG_ERROR, "[libretro]: Invalid device.\n");
log_cb(RETRO_LOG_ERROR, "[libretro]: Invalid device (%d).\n", device);
}
if (!port)
retro_set_controller_port_device(1, snes_devices[1]);
@ -491,49 +475,6 @@ void retro_cheat_set(unsigned index, bool enabled, const char *codeline)
S9xCheatsEnable();
}
#define MAX_MAPS 32
static struct retro_memory_descriptor memorydesc[MAX_MAPS];
static unsigned memorydesc_c;
static bool merge_mapping()
{
if (memorydesc_c==1) return false;//can't merge the only one
struct retro_memory_descriptor * a=&memorydesc[MAX_MAPS - (memorydesc_c-1)];
struct retro_memory_descriptor * b=&memorydesc[MAX_MAPS - memorydesc_c];
//printf("test %x/%x\n",a->start,b->start);
if (a->flags != b->flags) return false;
if (a->disconnect != b->disconnect) return false;
if (a->len != b->len) return false;
if (a->addrspace || b->addrspace) return false;//we don't use these
if (((char*)a->ptr)+a->offset==((char*)b->ptr)+b->offset && a->select==b->select)
{
//printf("merge/mirror\n");
a->select&=~(a->start^b->start);
memorydesc_c--;
return true;
}
uint32 len=a->len;
if (!len) len=(0x1000000 - a->select);
if (len && ((len-1) & (len | a->disconnect))==0 && ((char*)a->ptr)+a->offset+len == ((char*)b->ptr)+b->offset)
{
//printf("merge/consec\n");
a->select &=~ len;
a->disconnect &=~ len;
memorydesc_c--;
return true;
}
//printf("nomerge\n");
return false;
}
void S9xAppendMapping(struct retro_memory_descriptor *desc)
{
//do it backwards - snes9x defines the last one to win, while we define the first one to win
//printf("add %x\n",desc->start);
memcpy(&memorydesc[MAX_MAPS - (++memorydesc_c)], desc, sizeof(struct retro_memory_descriptor));
while (merge_mapping()) {}
}
static void init_descriptors(void)
{
struct retro_input_descriptor desc[] = {
@ -608,12 +549,9 @@ static void init_descriptors(void)
environ_cb(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, desc);
}
static bool ChronoTriggerFrameHack;
bool retro_load_game(const struct retro_game_info *game)
{
init_descriptors();
memorydesc_c = 0;
update_variables();
@ -644,21 +582,6 @@ bool retro_load_game(const struct retro_game_info *game)
if (!rom_loaded && log_cb)
log_cb(RETRO_LOG_ERROR, "[libretro]: Rom loading failed...\n");
/* Check if Chrono Trigger is loaded, if so, we need to set a variable to
* true to get rid of an annoying mid-frame resolution switch to 256x239
* which can cause an undesirable flicker/breakup of the screen for a
* split second - this happens whenever the game switches from normal
* mode to battle mode and vice versa. */
ChronoTriggerFrameHack = false;
if (Memory.match_nc("CHRONO TRIGGER") || /* Chrono Trigger */
Memory.match_id("ACT") ||
Memory.match_id("AC9J") /* Chrono Trigger (Sample) */
)
ChronoTriggerFrameHack = true;
struct retro_memory_map map={ memorydesc+MAX_MAPS-memorydesc_c, memorydesc_c };
if (rom_loaded) environ_cb(RETRO_ENVIRONMENT_SET_MEMORY_MAPS, &map);
return rom_loaded;
}
@ -669,7 +592,6 @@ bool retro_load_game_special(unsigned game_type,
const struct retro_game_info *info, size_t num_info) {
init_descriptors();
memorydesc_c = 0;
update_variables();
@ -715,9 +637,6 @@ bool retro_load_game_special(unsigned game_type,
break;
}
struct retro_memory_map map={ memorydesc+MAX_MAPS-memorydesc_c, memorydesc_c };
if (rom_loaded) environ_cb(RETRO_ENVIRONMENT_SET_MEMORY_MAPS, &map);
return rom_loaded;
}
@ -739,10 +658,6 @@ void retro_init(void)
else
log_cb = NULL;
// State that SNES9X supports achievements.
bool achievements = true;
environ_cb(RETRO_ENVIRONMENT_SET_SUPPORT_ACHIEVEMENTS, &achievements);
memset(&Settings, 0, sizeof(Settings));
Settings.MouseMaster = TRUE;
Settings.SuperScopeMaster = TRUE;
@ -1134,11 +1049,7 @@ bool retro_unserialize(const void* data, size_t size)
bool8 S9xDeinitUpdate(int width, int height)
{
// Apply Chrono Trigger Framehack
if (ChronoTriggerFrameHack && (height > SNES_HEIGHT))
height = SNES_HEIGHT;
if (crop_overscan_mode == 1) // enabled
if (crop_overscan_mode == OVERSCAN_CROP_ON)
{
if (height >= SNES_HEIGHT << 1)
{
@ -1149,7 +1060,7 @@ bool8 S9xDeinitUpdate(int width, int height)
height = SNES_HEIGHT;
}
}
else if (crop_overscan_mode == 2) // disabled
else if (crop_overscan_mode == OVERSCAN_CROP_OFF)
{
if (height > SNES_HEIGHT_EXTENDED)
{
@ -1171,7 +1082,7 @@ bool8 S9xDeinitUpdate(int width, int height)
bool8 S9xContinueUpdate(int width, int height)
{
return S9xDeinitUpdate(width, height);
return true;
}
// Dummy functions that should probably be implemented correctly later.
@ -1232,6 +1143,7 @@ void S9xParseArg(char**, int&, int) {}
void S9xExit() {}
bool S9xPollPointer(unsigned int, short*, short*) { return false; }
const char *S9xChooseMovieFilename(unsigned char) { return NULL; }
void S9xMessage(int type, int, const char* s)
{
if (!log_cb) return;