mirror of https://github.com/PCSX2/pcsx2.git
pcsx2: clean up references to plugins
This commit is contained in:
parent
3b56b0340d
commit
136c326059
|
@ -946,8 +946,7 @@ __fi void cdvdReadInterrupt()
|
|||
|
||||
cdvd.Reading = false;
|
||||
|
||||
// Any other value besides 0 should be considered invalid here (wtf is that wacky
|
||||
// plugin trying to do?)
|
||||
// Any other value besides 0 should be considered invalid here
|
||||
pxAssert(cdvd.RErr == 0);
|
||||
}
|
||||
|
||||
|
@ -1329,7 +1328,7 @@ static void cdvdWrite04(u8 rt)
|
|||
cdvd.ReadTime = cdvdBlockReadTime(MODE_CDROM);
|
||||
CDVDREAD_INT(cdvdStartSeek(cdvd.SeekToSector, MODE_CDROM));
|
||||
|
||||
// Read-ahead by telling the plugin about the track now.
|
||||
// Read-ahead by telling CDVD about the track now.
|
||||
// This helps improve performance on actual from-cd emulation
|
||||
// (ie, not using the hard drive)
|
||||
cdvd.RErr = DoCDVDreadTrack(cdvd.SeekToSector, cdvd.ReadMode);
|
||||
|
@ -1365,7 +1364,7 @@ static void cdvdWrite04(u8 rt)
|
|||
cdvd.ReadTime = cdvdBlockReadTime(MODE_DVDROM);
|
||||
CDVDREAD_INT(cdvdStartSeek(cdvd.SeekToSector, MODE_DVDROM));
|
||||
|
||||
// Read-ahead by telling the plugin about the track now.
|
||||
// Read-ahead by telling CDVD about the track now.
|
||||
// This helps improve performance on actual from-cd emulation
|
||||
// (ie, not using the hard drive)
|
||||
cdvd.RErr = DoCDVDreadTrack(cdvd.SeekToSector, cdvd.ReadMode);
|
||||
|
|
|
@ -256,12 +256,6 @@ static void DetectDiskType()
|
|||
int baseMediaType = CDVD->getDiskType();
|
||||
int mType = -1;
|
||||
|
||||
// Paranoid mode: do not trust the plugin's detection system to work correctly.
|
||||
// (.. and there's no reason plugins should be doing their own detection anyway).
|
||||
|
||||
//TODO_CDVD We're not using CDVD plugins anymore but I believe both ISO and Disc use their own
|
||||
//detection system. Possible code reduction here
|
||||
|
||||
switch (baseMediaType)
|
||||
{
|
||||
#if 0
|
||||
|
@ -353,8 +347,6 @@ bool DoCDVDopen()
|
|||
{
|
||||
CheckNullCDVD();
|
||||
|
||||
// the new disk callback is set on Init also, but just in case the plugin clears it for
|
||||
// some reason on close, we re-send here:
|
||||
CDVD->newDiskCB(cdvdNewDiskCB);
|
||||
|
||||
// Win32 Fail: the old CDVD api expects MBCS on Win32 platforms, but generating a MBCS
|
||||
|
@ -362,7 +354,6 @@ bool DoCDVDopen()
|
|||
// converted (which isn't really practical knowledge). A 'best guess' would be the
|
||||
// default codepage of the user's Windows install, but even that will fail and return
|
||||
// question marks if the filename is another language.
|
||||
// Likely Fix: Force new versions of CDVD plugins to expect UTF8 instead.
|
||||
|
||||
//TODO_CDVD check if ISO and Disc use UTF8
|
||||
|
||||
|
@ -373,7 +364,6 @@ bool DoCDVDopen()
|
|||
|
||||
if (ret == -1)
|
||||
return false; // error! (handled by caller)
|
||||
//if( ret == 1 ) throw Exception::CancelEvent(L"User canceled the CDVD plugin's open dialog."); <--- TODO_CDVD is this still needed?
|
||||
|
||||
int cdtype = DoCDVDdetectDiskType();
|
||||
|
||||
|
@ -473,7 +463,6 @@ s32 DoCDVDreadTrack(u32 lsn, int mode)
|
|||
{
|
||||
CheckNullCDVD();
|
||||
|
||||
// TEMP: until all the plugins use the new CDVDgetBuffer style
|
||||
// TODO: The CDVD api only uses the new getBuffer style. Why is this temp?
|
||||
// lastReadSize is needed for block dumps
|
||||
switch (mode)
|
||||
|
|
|
@ -118,11 +118,7 @@ struct CDVD_API
|
|||
{
|
||||
void(CALLBACK* close)();
|
||||
|
||||
// Don't need init or shutdown. iso/nodisc have no init/shutdown and plugin's
|
||||
// is handled by the PluginManager.
|
||||
|
||||
// Don't need plugin specific things like freeze, test, or other stuff here.
|
||||
// Those are handled by the plugin manager specifically.
|
||||
// Don't need init or shutdown. iso/nodisc have no init/shutdown.
|
||||
|
||||
_CDVDopen open;
|
||||
_CDVDreadTrack readTrack;
|
||||
|
@ -143,8 +139,7 @@ struct CDVD_API
|
|||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Multiple interface system for CDVD. Do* functions are meant as replacements
|
||||
// for direct CDVD plugin invocation, and add universal block dumping features.
|
||||
// Multiple interface system for CDVD.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
extern CDVD_API* CDVD; // currently active CDVD access mode api (either Iso, NoDisc, or Disc)
|
||||
|
|
|
@ -50,9 +50,6 @@ s32 CALLBACK ISOopen(const char* pTitle)
|
|||
return -1;
|
||||
}
|
||||
|
||||
// The current plugin API doesn't expect exceptions to propagate out of the API
|
||||
// calls, so we need to catch them, log them, and return -1.
|
||||
|
||||
try
|
||||
{
|
||||
iso.Open(fromUTF8(pTitle));
|
||||
|
|
|
@ -30,17 +30,6 @@ if(GCC_VERSION VERSION_EQUAL "8.0" OR GCC_VERSION VERSION_GREATER "8.0")
|
|||
set(CommonFlags ${CommonFlags} -Wno-packed-not-aligned)
|
||||
endif()
|
||||
|
||||
# Largely turning off because LegacyPluginAPI_Common in Plugins.h spams really badly in gcc 8 due to the memzero initialization.
|
||||
# Should probably be fixed properly, but for now this should work.
|
||||
if(GCC_VERSION VERSION_EQUAL "8.0" OR GCC_VERSION VERSION_GREATER "8.0")
|
||||
set(CommonFlags
|
||||
${CommonFlags}
|
||||
-Wno-class-memaccess
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
if ("${PGO}" STREQUAL "generate")
|
||||
set(pcsx2FinalFlags -fprofile-generate)
|
||||
elseif("${PGO}" STREQUAL "use")
|
||||
|
@ -903,7 +892,6 @@ set(pcsx2GuiResources
|
|||
${res_bin}/ConfigIcon_Gamefixes.h
|
||||
${res_bin}/ConfigIcon_MemoryCard.h
|
||||
${res_bin}/ConfigIcon_Paths.h
|
||||
${res_bin}/ConfigIcon_Plugins.h
|
||||
${res_bin}/ConfigIcon_Speedhacks.h
|
||||
${res_bin}/ConfigIcon_Video.h
|
||||
${res_bin}/Logo.h
|
||||
|
@ -1293,7 +1281,7 @@ file(MAKE_DIRECTORY ${res_bin})
|
|||
foreach(res_file IN ITEMS
|
||||
AppIcon16 AppIcon32 AppIcon64 BackgroundLogo Logo NoIcon ButtonIcon_Camera
|
||||
ConfigIcon_Cpu ConfigIcon_Gamefixes ConfigIcon_MemoryCard
|
||||
ConfigIcon_Paths ConfigIcon_Plugins ConfigIcon_Speedhacks ConfigIcon_Video Breakpoint_Active Breakpoint_Inactive)
|
||||
ConfigIcon_Paths ConfigIcon_Speedhacks ConfigIcon_Video Breakpoint_Active Breakpoint_Inactive)
|
||||
add_custom_command(OUTPUT "${res_bin}/${res_file}.h" COMMAND perl ${CMAKE_SOURCE_DIR}/linux_various/hex2h.pl "${res_src}/${res_file}.png" "${res_bin}/${res_file}" )
|
||||
endforeach()
|
||||
|
||||
|
@ -1341,7 +1329,7 @@ if (APPLE)
|
|||
else()
|
||||
set(postprocessBundleType ALL)
|
||||
endif()
|
||||
# Use custom_target and not custom_command so plugins can add themselves as dependencies
|
||||
|
||||
add_custom_target(pcsx2-postprocess-bundle ${postprocessBundleType}
|
||||
COMMAND ${CMAKE_COMMAND} "-DPCSX2_BUNDLE_PATH=$<TARGET_FILE_DIR:${Output}>/../.."
|
||||
-P ${CMAKE_SOURCE_DIR}/cmake/Pcsx2PostprocessBundle.cmake
|
||||
|
|
|
@ -177,8 +177,6 @@ struct TraceLogFilters
|
|||
// Pcsx2Config class
|
||||
// --------------------------------------------------------------------------------------
|
||||
// This is intended to be a public class library between the core emulator and GUI only.
|
||||
// It is *not* meant to be shared data between core emulation and plugins, due to issues
|
||||
// with version incompatibilities if the structure formats are changed.
|
||||
//
|
||||
// When GUI code performs modifications of this class, it must be done with strict thread
|
||||
// safety, since the emu runs on a separate thread. Additionally many components of the
|
||||
|
|
|
@ -41,7 +41,7 @@ void gsSetVideoMode(GS_VideoMode mode )
|
|||
}
|
||||
|
||||
|
||||
// Make sure framelimiter options are in sync with the plugin's capabilities.
|
||||
// Make sure framelimiter options are in sync with GS capabilities.
|
||||
void gsReset()
|
||||
{
|
||||
GetMTGS().ResetGS();
|
||||
|
|
|
@ -333,12 +333,7 @@ int _GSopen(void** dsp, const char* title, GSRendererType renderer, int threads
|
|||
}
|
||||
catch (std::exception& ex)
|
||||
{
|
||||
// Allowing std exceptions to escape the scope of the plugin callstack could
|
||||
// be problematic, because of differing typeids between DLL and EXE compilations.
|
||||
// ('new' could throw std::alloc)
|
||||
|
||||
printf("GS error: Exception caught in GSopen: %s", ex.what());
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -2339,11 +2334,6 @@ void GSDoFreezeIn(pxInputStream& infp)
|
|||
Console.Indent().Warning("Warning: No data for GS found. Status may be unpredictable.");
|
||||
|
||||
return;
|
||||
|
||||
// Note: Size mismatch check could also be done here on loading, but
|
||||
// some plugins may have built-in version support for non-native formats or
|
||||
// older versions of a different size... or could give different sizes depending
|
||||
// on the status of the plugin when loading, so let's ignore it.
|
||||
}
|
||||
|
||||
ScopedAlloc<s8> data(fP.size);
|
||||
|
|
|
@ -389,7 +389,7 @@ bool GSState::isinterlaced()
|
|||
GSVideoMode GSState::GetVideoMode()
|
||||
{
|
||||
// TODO: Get confirmation of videomode from SYSCALL ? not necessary but would be nice.
|
||||
// Other videomodes can't be detected on the plugin side without the help of the data from core
|
||||
// Other videomodes can't be detected on our side without the help of the data from core
|
||||
// You can only identify a limited number of video modes based on the info from CRTC registers.
|
||||
|
||||
GSVideoMode videomode = GSVideoMode::Unknown;
|
||||
|
|
|
@ -367,45 +367,6 @@ END
|
|||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,2,0,0
|
||||
PRODUCTVERSION 1,2,0,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904e4"
|
||||
BEGIN
|
||||
VALUE "Comments", "http://guliverkli.sf.net/"
|
||||
VALUE "CompanyName", "Gabest"
|
||||
VALUE "FileDescription", "GS plugin for ps2 emulators"
|
||||
VALUE "FileVersion", "1, 2, 0, 0"
|
||||
VALUE "InternalName", "GS.dll"
|
||||
VALUE "LegalCopyright", "Copyright (c) 2007-2008 Gabest. All rights reserved."
|
||||
VALUE "OriginalFilename", "GS.dll"
|
||||
VALUE "ProductName", "GS"
|
||||
VALUE "ProductVersion", "1, 2, 0, 0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1252
|
||||
END
|
||||
END
|
||||
|
||||
#endif // English (United States) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
|
|
@ -962,7 +962,7 @@ void GSDevice11::DoExternalFX(GSTexture* sTex, GSTexture* dTex)
|
|||
}
|
||||
|
||||
// This shouldn't be necessary, we have some bug corrupting memory
|
||||
// and for some reason isolating this code makes the plugin not crash
|
||||
// and for some reason isolating this code makes the subcomponent not crash
|
||||
void GSDevice11::InitFXAA()
|
||||
{
|
||||
if (!FXAA_Compiled)
|
||||
|
|
|
@ -1,109 +0,0 @@
|
|||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2021 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
#include <string>
|
||||
|
||||
static void* handle;
|
||||
|
||||
void help()
|
||||
{
|
||||
fprintf(stderr, "Loader gs file\n");
|
||||
fprintf(stderr, "ARG1 GS plugin\n");
|
||||
fprintf(stderr, "ARG2 .gs file\n");
|
||||
fprintf(stderr, "ARG3 Ini directory\n");
|
||||
if (handle)
|
||||
{
|
||||
dlclose(handle);
|
||||
}
|
||||
exit(1);
|
||||
}
|
||||
|
||||
char* read_env(const char* var)
|
||||
{
|
||||
char* v = getenv(var);
|
||||
if (!v)
|
||||
{
|
||||
fprintf(stderr, "Failed to get %s\n", var);
|
||||
help();
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
if (argc < 1)
|
||||
help();
|
||||
|
||||
char* plugin;
|
||||
char* gs;
|
||||
if (argc > 2)
|
||||
{
|
||||
plugin = argv[1];
|
||||
gs = argv[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
plugin = read_env("GSDUMP_SO");
|
||||
gs = argv[1];
|
||||
}
|
||||
|
||||
handle = dlopen(plugin, RTLD_LAZY | RTLD_GLOBAL);
|
||||
if (handle == NULL)
|
||||
{
|
||||
fprintf(stderr, "Failed to dlopen plugin %s\n", plugin);
|
||||
help();
|
||||
}
|
||||
|
||||
__attribute__((stdcall)) void (*GSsetSettingsDir_ptr)(const char*);
|
||||
__attribute__((stdcall)) void (*GSReplay_ptr)(char*, int);
|
||||
|
||||
GSsetSettingsDir_ptr = reinterpret_cast<decltype(GSsetSettingsDir_ptr)>(dlsym(handle, "GSsetSettingsDir"));
|
||||
GSReplay_ptr = reinterpret_cast<decltype(GSReplay_ptr)>(dlsym(handle, "GSReplay"));
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
char* ini = read_env("GSDUMP_CONF");
|
||||
|
||||
GSsetSettingsDir_ptr(ini);
|
||||
}
|
||||
else if (argc == 4)
|
||||
{
|
||||
GSsetSettingsDir_ptr(argv[3]);
|
||||
}
|
||||
else if (argc == 3)
|
||||
{
|
||||
#ifdef XDG_STD
|
||||
char* val = read_env("HOME");
|
||||
|
||||
std::string ini_dir(val);
|
||||
ini_dir += "/.config/pcsx2/inis";
|
||||
|
||||
GSsetSettingsDir_ptr(ini_dir.c_str());
|
||||
#else
|
||||
fprintf(stderr, "default ini dir only supported on XDG\n");
|
||||
help();
|
||||
#endif
|
||||
}
|
||||
|
||||
GSReplay_ptr(gs, 12);
|
||||
|
||||
if (handle)
|
||||
{
|
||||
dlclose(handle);
|
||||
}
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<ProjectRootDir>$(ProjectDir).</ProjectRootDir>
|
||||
<SvnRootDir>$(ProjectRootDir)\..\..</SvnRootDir>
|
||||
<SvnCommonDir>$(SvnRootDir)\common</SvnCommonDir>
|
||||
<PcsxSubsection>plugins</PcsxSubsection>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="ProjectRootDir">
|
||||
<Value>$(ProjectRootDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="SvnRootDir">
|
||||
<Value>$(SvnRootDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="SvnCommonDir">
|
||||
<Value>$(SvnCommonDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="PcsxSubsection">
|
||||
<Value>$(PcsxSubsection)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<SSEtype>AVX2</SSEtype>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_M_SSE=0x501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="SSEtype">
|
||||
<Value>$(SSEtype)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,33 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||
<OutDir>$(SolutionDir)bin\$(PcsxSubsection)\</OutDir>
|
||||
<IntDir>$(PlatformName)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4456;4458;4996;4995;4324;4100;4101;4201;4556;4127;4512;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<AdditionalIncludeDirectories>$(VTUNE_AMPLIFIER_XE_2015_DIR)include;$(ProjectDir);$(SolutionDir)common\include;$(SolutionDir)3rdparty\baseclasses;$(SolutionDir)3rdparty;$(SolutionDir)3rdparty\freetype\include;$(SolutionDir)3rdparty\libpng;$(SolutionDir)3rdparty\xz\xz\src\liblzma\api;$(SolutionDir)3rdparty\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<PreprocessorDefinitions>LZMA_API_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>d3dcompiler.lib;d3d11.lib;dxgi.lib;dxguid.lib;winmm.lib;strmiids.lib;opengl32.lib;comsuppw.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<DelayLoadDLLs>d3dcompiler_47.dll;d3d11.dll;dxgi.dll;opengl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<AdditionalLibraryDirectories>$(VTUNE_AMPLIFIER_XE_2015_DIR)lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<PreBuildEvent>
|
||||
<Command>"$(SolutionDir)common\vsprops\preBuild.cmd"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||
<TargetName>$(ProjectName)$(PlatformArchitecture)-$(SSEtype)-dbg</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>StackFrameRuntimeCheck</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(PlatformArchitecture)-$(SSEtype)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PreprocessorDefinitions>NDEBUG;_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<SSEtype>SSE4</SSEtype>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_M_SSE=0x401;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="SSEtype">
|
||||
<Value>$(SSEtype)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemDefinitionGroup>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(ProjectDir)vtune\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemDefinitionGroup>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(ProjectDir)vtune\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
|
@ -70,128 +70,6 @@ __fi void GSVSYNC(void) {
|
|||
}
|
||||
#endif
|
||||
|
||||
/*void SaveGSState(const wxString& file)
|
||||
{
|
||||
if( g_SaveGSStream ) return;
|
||||
|
||||
Console.WriteLn( "Saving GS State..." );
|
||||
Console.WriteLn( L"\t%s", file.c_str() );
|
||||
|
||||
SafeArray<u8> buf;
|
||||
g_fGSSave = std::unique_ptr<memSavingState>(new memSavingState( buf ));
|
||||
|
||||
g_SaveGSStream = 1;
|
||||
g_nLeftGSFrames = 2;
|
||||
|
||||
g_fGSSave->Freeze( g_nLeftGSFrames );
|
||||
}
|
||||
|
||||
void LoadGSState(const wxString& file)
|
||||
{
|
||||
int ret;
|
||||
|
||||
Console.WriteLn( "Loading GS State..." );
|
||||
|
||||
wxString src( file );
|
||||
|
||||
//if( !wxFileName::FileExists( src ) )
|
||||
// src = Path::Combine( g_Conf->Folders.Savestates, src );
|
||||
|
||||
if( !wxFileName::FileExists( src ) )
|
||||
return;
|
||||
|
||||
SafeArray<u8> buf;
|
||||
memLoadingState f( buf );
|
||||
|
||||
// Always set gsIrq callback -- GS States are always exclusionary of MTGS mode
|
||||
GSirqCallback( gsIrq );
|
||||
|
||||
ret = GSopen(&pDsp, "PCSX2", 0);
|
||||
if (ret != 0)
|
||||
throw Exception::PluginOpenError( PluginId_GS );
|
||||
|
||||
ret = PADopen((void *)&pDsp);
|
||||
|
||||
f.Freeze(g_nLeftGSFrames);
|
||||
f.gsFreeze();
|
||||
|
||||
GetPluginManager().Freeze( PluginId_GS, f );
|
||||
|
||||
RunGSState( f );
|
||||
|
||||
GetCorePlugins().Close( PluginId_GS );
|
||||
GetCorePlugins().Close( PluginId_PAD );
|
||||
}
|
||||
|
||||
struct GSStatePacket
|
||||
{
|
||||
u32 type;
|
||||
std::vector<u8> mem;
|
||||
};
|
||||
|
||||
// runs the GS
|
||||
// (this should really be part of the AppGui)
|
||||
void RunGSState( memLoadingState& f )
|
||||
{
|
||||
u32 newfield;
|
||||
std::list< GSStatePacket > packets;
|
||||
|
||||
while( !f.IsFinished() )
|
||||
{
|
||||
int type, size;
|
||||
f.Freeze( type );
|
||||
|
||||
if( type != GSRUN_VSYNC ) f.Freeze( size );
|
||||
|
||||
packets.push_back(GSStatePacket());
|
||||
GSStatePacket& p = packets.back();
|
||||
|
||||
p.type = type;
|
||||
|
||||
if( type != GSRUN_VSYNC ) {
|
||||
p.mem.resize(size*16);
|
||||
f.FreezeMem( &p.mem[0], size*16 );
|
||||
}
|
||||
}
|
||||
|
||||
std::list<GSStatePacket>::iterator it = packets.begin();
|
||||
g_SaveGSStream = 3;
|
||||
|
||||
// first extract the data
|
||||
while(1) {
|
||||
|
||||
switch(it->type) {
|
||||
case GSRUN_TRANS1:
|
||||
GSgifTransfer1((u32*)&it->mem[0], 0);
|
||||
break;
|
||||
case GSRUN_TRANS2:
|
||||
GSgifTransfer2((u32*)&it->mem[0], it->mem.size()/16);
|
||||
break;
|
||||
case GSRUN_TRANS3:
|
||||
GSgifTransfer3((u32*)&it->mem[0], it->mem.size()/16);
|
||||
break;
|
||||
case GSRUN_VSYNC:
|
||||
// flip
|
||||
newfield = (*(u32*)(PS2MEM_GS+0x1000)&0x2000) ? 0 : 0x2000;
|
||||
*(u32*)(PS2MEM_GS+0x1000) = (*(u32*)(PS2MEM_GS+0x1000) & ~(1<<13)) | newfield;
|
||||
|
||||
GSvsync(newfield);
|
||||
|
||||
// fixme : Process pending app messages here.
|
||||
//SysUpdate();
|
||||
|
||||
if( g_SaveGSStream != 3 )
|
||||
return;
|
||||
break;
|
||||
|
||||
jNO_DEFAULT
|
||||
}
|
||||
|
||||
++it;
|
||||
if( it == packets.end() )
|
||||
it = packets.begin();
|
||||
}
|
||||
}*/
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -44,7 +44,7 @@ __fi void clearFIFOstuff(bool full) {
|
|||
CSRreg.FIFO = full ? CSR_FIFO_FULL : CSR_FIFO_EMPTY;
|
||||
}
|
||||
|
||||
//I suspect this is GS side which should really be handled by the GS plugin which also doesn't current have a fifo, but we can guess from our fifo
|
||||
//I suspect this is GS side which should really be handled by GS which also doesn't current have a fifo, but we can guess from our fifo
|
||||
static __fi void CalculateFIFOCSR() {
|
||||
if (gifRegs.stat.FQC >= 15) {
|
||||
CSRreg.FIFO = CSR_FIFO_FULL;
|
||||
|
|
|
@ -159,7 +159,7 @@ void SysMtgsThread::PostVsyncStart()
|
|||
// in the ringbuffer. The queue limit is disabled when both FrameLimiting and Vsync are
|
||||
// disabled, since the queue can have perverse effects on framerate benchmarking.
|
||||
|
||||
// Edit: It's possible that MTGS is that much faster than the GS plugin that it creates so much lag,
|
||||
// Edit: It's possible that MTGS is that much faster than GS that it creates so much lag,
|
||||
// a game becomes uncontrollable (software rendering for example).
|
||||
// For that reason it's better to have the limit always in place, at the cost of a few max FPS in benchmarks.
|
||||
// If those are needed back, it's better to increase the VsyncQueueSize via PCSX_vm.ini.
|
||||
|
@ -866,8 +866,8 @@ void SysMtgsThread::WaitForOpen()
|
|||
|
||||
// Two-phase timeout on MTGS opening, so that possible errors are handled
|
||||
// in a timely fashion. We check for errors after 2 seconds, and then give it
|
||||
// another 12 seconds if no errors occurred (this might seem long, but sometimes a
|
||||
// GS plugin can be very stubborned, especially in debug mode builds).
|
||||
// another 12 seconds if no errors occurred (this might seem long, but sometimes our
|
||||
// GS can be very stubborned, especially in debug mode builds).
|
||||
|
||||
if (!m_sem_OpenDone.Wait(wxTimeSpan(0, 0, 2, 0)))
|
||||
{
|
||||
|
@ -877,7 +877,7 @@ void SysMtgsThread::WaitForOpen()
|
|||
{
|
||||
RethrowException();
|
||||
|
||||
pxAssert(_("The MTGS thread has become unresponsive while waiting for the GS plugin to open."));
|
||||
pxAssert(_("The MTGS thread has become unresponsive while waiting for GS to open."));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -159,15 +159,15 @@ s32 PADfreeze(int mode, freezeData* data)
|
|||
|
||||
if (mode == FREEZE_SIZE)
|
||||
{
|
||||
data->size = sizeof(PadPluginFreezeData);
|
||||
data->size = sizeof(PadFreezeData);
|
||||
}
|
||||
else if (mode == FREEZE_LOAD)
|
||||
{
|
||||
PadPluginFreezeData* pdata = (PadPluginFreezeData*)(data->data);
|
||||
PadFreezeData* pdata = (PadFreezeData*)(data->data);
|
||||
|
||||
Pad::stop_vibrate_all();
|
||||
|
||||
if (data->size != sizeof(PadPluginFreezeData) || pdata->version != PAD_SAVE_STATE_VERSION ||
|
||||
if (data->size != sizeof(PadFreezeData) || pdata->version != PAD_SAVE_STATE_VERSION ||
|
||||
strncmp(pdata->format, "LinPad", sizeof(pdata->format)))
|
||||
return 0;
|
||||
|
||||
|
@ -199,10 +199,10 @@ s32 PADfreeze(int mode, freezeData* data)
|
|||
}
|
||||
else if (mode == FREEZE_SAVE)
|
||||
{
|
||||
if (data->size != sizeof(PadPluginFreezeData))
|
||||
if (data->size != sizeof(PadFreezeData))
|
||||
return 0;
|
||||
|
||||
PadPluginFreezeData* pdata = (PadPluginFreezeData*)(data->data);
|
||||
PadFreezeData* pdata = (PadFreezeData*)(data->data);
|
||||
|
||||
// Tales of the Abyss - pad fix
|
||||
// - PCSX2 only saves port0 (save #1), then port1 (save #2)
|
||||
|
@ -322,11 +322,6 @@ void PADDoFreezeIn(pxInputStream& infp)
|
|||
Console.Indent().Warning("Warning: No data for PAD found. Status may be unpredictable.");
|
||||
|
||||
return;
|
||||
|
||||
// Note: Size mismatch check could also be done here on loading, but
|
||||
// some plugins may have built-in version support for non-native formats or
|
||||
// older versions of a different size... or could give different sizes depending
|
||||
// on the status of the plugin when loading, so let's ignore it.
|
||||
}
|
||||
|
||||
ScopedAlloc<s8> data(fP.size);
|
||||
|
|
|
@ -95,7 +95,7 @@ public:
|
|||
};
|
||||
|
||||
// Full state to manage save state
|
||||
struct PadPluginFreezeData
|
||||
struct PadFreezeData
|
||||
{
|
||||
char format[8];
|
||||
u32 version;
|
||||
|
|
|
@ -1524,7 +1524,7 @@ keyEvent* PADkeyEvent()
|
|||
// mouse/kb capture. In practice, WindowsMessagingMouse::Deactivate is called from PADclose, but doesn't
|
||||
// manage to release the mouse, maybe due to the thread from which it's called or some
|
||||
// state or somehow being too late.
|
||||
// This explicitly triggers inactivity (releasing mouse/kb hooks) before PCSX2 starts to close the plugins.
|
||||
// This explicitly triggers inactivity (releasing mouse/kb hooks) before PCSX2 starts to close subcomponents.
|
||||
// Regardless, the mouse/kb hooks will get re-enabled on resume if required without need for further hacks.
|
||||
|
||||
PrepareActivityState(false);
|
||||
|
@ -1554,14 +1554,12 @@ keyEvent* PADkeyEvent()
|
|||
return &ev;
|
||||
}
|
||||
|
||||
struct PadPluginFreezeData
|
||||
struct PadFreezeData
|
||||
{
|
||||
char format[8];
|
||||
// Currently all different versions are incompatible.
|
||||
// May split into major/minor with some compatibility rules.
|
||||
u32 version;
|
||||
// So when loading, know which plugin's settings I'm loading.
|
||||
// Not a big deal. Use a static variable when saving to figure it out.
|
||||
u8 port;
|
||||
// active slot for port
|
||||
u8 slot[2];
|
||||
|
@ -1579,13 +1577,13 @@ s32 PADfreeze(int mode, freezeData* data)
|
|||
|
||||
if (mode == FREEZE_SIZE)
|
||||
{
|
||||
data->size = sizeof(PadPluginFreezeData);
|
||||
data->size = sizeof(PadFreezeData);
|
||||
}
|
||||
else if (mode == FREEZE_LOAD)
|
||||
{
|
||||
PadPluginFreezeData& pdata = *(PadPluginFreezeData*)(data->data);
|
||||
PadFreezeData& pdata = *(PadFreezeData*)(data->data);
|
||||
StopVibrate();
|
||||
if (data->size != sizeof(PadPluginFreezeData) ||
|
||||
if (data->size != sizeof(PadFreezeData) ||
|
||||
pdata.version != PAD_SAVE_STATE_VERSION ||
|
||||
strcmp(pdata.format, "PadMode"))
|
||||
return 0;
|
||||
|
@ -1622,9 +1620,9 @@ s32 PADfreeze(int mode, freezeData* data)
|
|||
}
|
||||
else if (mode == FREEZE_SAVE)
|
||||
{
|
||||
if (data->size != sizeof(PadPluginFreezeData))
|
||||
if (data->size != sizeof(PadFreezeData))
|
||||
return 0;
|
||||
PadPluginFreezeData& pdata = *(PadPluginFreezeData*)(data->data);
|
||||
PadFreezeData& pdata = *(PadFreezeData*)(data->data);
|
||||
|
||||
|
||||
// Tales of the Abyss - pad fix
|
||||
|
@ -1697,11 +1695,6 @@ void PADDoFreezeIn(pxInputStream& infp)
|
|||
Console.Indent().Warning("Warning: No data for PAD found. Status may be unpredictable.");
|
||||
|
||||
return;
|
||||
|
||||
// Note: Size mismatch check could also be done here on loading, but
|
||||
// some plugins may have built-in version support for non-native formats or
|
||||
// older versions of a different size... or could give different sizes depending
|
||||
// on the status of the plugin when loading, so let's ignore it.
|
||||
}
|
||||
|
||||
ScopedAlloc<s8> data(fP.size);
|
||||
|
|
|
@ -33,7 +33,7 @@ LPWSTR dialog_message(int ID, bool* updateText)
|
|||
L"Note 1: By default PCSX2 uses a double-click by the left mouse button to toggle fullscreen mode, this makes the left mouse button unusable as an input."
|
||||
L"To disable this option in PCSX2 go to Config > Emulation Settings > GS Window tab, and disable the \"Double-click toggles fullscreen mode\" checkbox.\n\n"
|
||||
L"Note 2: This does not enable the mouse to function as an in-game mouse in PS2 games that support a USB mouse or lightgun."
|
||||
L"This requires a USB device, while PAD is a PAD plugin(PAD means it emulates devices that are to be plugged into the PlayStation controller port that connects the DualShock 2 controller).";
|
||||
L"This requires a USB device.";
|
||||
case IDC_MOUSE_UNFOCUS:
|
||||
return L"Enabled: Mouse is unfocused and can be used for emulation and outside it.\n\n"
|
||||
L"Disabled: Mouse is focused and can be used for emulation.";
|
||||
|
|
|
@ -54,7 +54,6 @@ namespace PathDefs
|
|||
|
||||
extern wxDirName GetSnapshots();
|
||||
extern wxDirName GetBios();
|
||||
extern wxDirName GetPlugins();
|
||||
extern wxDirName GetSavestates();
|
||||
extern wxDirName GetMemoryCards();
|
||||
extern wxDirName GetSettings();
|
||||
|
@ -74,7 +73,6 @@ namespace PathDefs
|
|||
extern const wxDirName& Savestates();
|
||||
extern const wxDirName& MemoryCards();
|
||||
extern const wxDirName& Settings();
|
||||
extern const wxDirName& Plugins();
|
||||
extern const wxDirName& Logs();
|
||||
extern const wxDirName& Dumps();
|
||||
extern const wxDirName& Langs();
|
||||
|
|
|
@ -56,9 +56,6 @@
|
|||
#include <pthread.h>
|
||||
|
||||
|
||||
// As plugins which use C have to be used with PCSX2, the BOOL type is redefined
|
||||
// to prevent any C/C++ compatibility issues.
|
||||
typedef int BOOL;
|
||||
#undef TRUE
|
||||
#undef FALSE
|
||||
#define TRUE 1
|
||||
|
|
|
@ -141,7 +141,7 @@ void AnalogStick::Render(wxDC& dc)
|
|||
int newYCoord = analogPos.centerCoords.y + ((analogStick.yVector.val - 127) / 127.0) * analogPos.radius;
|
||||
// We want to ensure the line segment length is capped at the defined radius
|
||||
// NOTE - The conventional way to do this is using arctan2, but the analog values that come out
|
||||
// of the Pad plugins in pcsx2 do not permit this, the coordinates returned do not define a circle.
|
||||
// of Pad in pcsx2 do not permit this, the coordinates returned do not define a circle.
|
||||
const float lengthOfLine = sqrt(pow(newXCoord - analogPos.centerCoords.x, 2) + pow(newYCoord - analogPos.centerCoords.y, 2));
|
||||
if (lengthOfLine > analogPos.radius)
|
||||
{
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include "Alsa.h"
|
||||
#include "SPU2/SndOut.h"
|
||||
|
||||
// Does not work, except as effectively a null plugin.
|
||||
// Does not work, except as effectively a null output
|
||||
class AlsaMod : public SndOutModule
|
||||
{
|
||||
protected:
|
||||
|
|
|
@ -459,7 +459,7 @@ struct V_Core
|
|||
u16 psxSPUSTAT;
|
||||
|
||||
// HACK -- This is a temp buffer which is (or isn't?) used to circumvent some memory
|
||||
// corruption that originates elsewhere in the plugin. >_< The actual ADMA buffer
|
||||
// corruption that originates elsewhere. >_< The actual ADMA buffer
|
||||
// is an area mapped to SPU2 main memory.
|
||||
//s16 ADMATempBuffer[0x1000];
|
||||
|
||||
|
|
|
@ -612,11 +612,6 @@ void SPU2DoFreezeIn(pxInputStream& infp)
|
|||
Console.Indent().Warning("Warning: No data for SPU2 found. Status may be unpredictable.");
|
||||
|
||||
return;
|
||||
|
||||
// Note: Size mismatch check could also be done here on loading, but
|
||||
// some plugins may have built-in version support for non-native formats or
|
||||
// older versions of a different size... or could give different sizes depending
|
||||
// on the status of the plugin when loading, so let's ignore it.
|
||||
}
|
||||
|
||||
ScopedAlloc<s8> data(fP.size);
|
||||
|
|
|
@ -47,9 +47,8 @@ static const u8 memcard_psx[] = {0x5A, 0x5D, 0x5C, 0x5D, 0x04, 0x00, 0x00, 0x80}
|
|||
// FIXME variable commented out since it's not used atm.
|
||||
// static const mc_command_0x26_tag mc_sizeinfo_8mb= {'+', 512, 16, 0x4000, 0x52, 0x5A};
|
||||
|
||||
// Ejection timeout management belongs in the MemoryCardFile plugin, except the plugin
|
||||
// interface is not yet complete.
|
||||
|
||||
// Ejection timeout management belongs in MemoryCardFile
|
||||
//
|
||||
//Reinsert the card after auto-eject: after max tries or after min tries + XXX milliseconds, whichever comes first.
|
||||
//E.g. if the game polls the card 100 times/sec and max tries=100, then after 1 second it will see the card as inserted (ms timeout not reached).
|
||||
//E.g. if the game polls the card 1 time/sec, then it will see the card ejected 4 times, and on the 5th it will see it as inserted (4 secs from the initial access).
|
||||
|
@ -604,8 +603,7 @@ SIO_WRITE memcardInit()
|
|||
{
|
||||
mcd = &mcds[sio.GetPort()][sio.GetSlot()];
|
||||
|
||||
// forced ejection logic. Technically belongs in the McdIsPresent handler for
|
||||
// the plugin, once the memorycard plugin system is completed.
|
||||
// forced ejection logic. Technically belongs in the McdIsPresent handler.
|
||||
|
||||
bool forceEject = false;
|
||||
|
||||
|
@ -1036,10 +1034,6 @@ void SaveStateBase::sioFreeze()
|
|||
FreezeTag( "sio" );
|
||||
Freeze( sio );
|
||||
|
||||
// TODO : This stuff should all be moved to the memorycard plugin eventually,
|
||||
// but that requires adding memorycard plugin to the savestate, and I'm not in
|
||||
// the mood to do that (let's plan it for 0.9.8) --air
|
||||
|
||||
if( IsSaving() )
|
||||
{
|
||||
for( uint port=0; port<2; ++port )
|
||||
|
|
|
@ -116,8 +116,6 @@ void SysCoreThread::Start()
|
|||
// memory savestates.
|
||||
//
|
||||
// Exceptions (can occur on first call only):
|
||||
// PluginInitError - thrown if a plugin fails init (init is performed on the current thread
|
||||
// on the first time the thread is resumed from it's initial idle state)
|
||||
// ThreadCreationError - Insufficient system resources to create thread.
|
||||
//
|
||||
void SysCoreThread::OnResumeReady()
|
||||
|
@ -163,7 +161,7 @@ void SysCoreThread::Reset()
|
|||
|
||||
|
||||
// Applies a full suite of new settings, which will automatically facilitate the necessary
|
||||
// resets of the core and components (including plugins, if needed). The scope of resetting
|
||||
// resets of the core and components. The scope of resetting
|
||||
// is determined by comparing the current settings against the new settings, so that only
|
||||
// real differences are applied.
|
||||
void SysCoreThread::ApplySettings(const Pcsx2Config& src)
|
||||
|
|
|
@ -57,7 +57,7 @@ void SysThreadBase::OnStart()
|
|||
_parent::OnStart();
|
||||
}
|
||||
|
||||
// Suspends emulation and closes the emulation state (including plugins) at the next PS2 vsync,
|
||||
// Suspends emulation and closes the emulation state at the next PS2 vsync,
|
||||
// and returns control to the calling thread; or does nothing if the core is already suspended.
|
||||
//
|
||||
// Parameters:
|
||||
|
@ -72,7 +72,7 @@ void SysThreadBase::OnStart()
|
|||
//
|
||||
// Exceptions:
|
||||
// CancelEvent - thrown if the thread is already in a Paused or Closing state. Because
|
||||
// actions that pause emulation typically rely on plugins remaining loaded/active,
|
||||
// actions that pause emulation typically rely on subcomponents remaining loaded/active,
|
||||
// Suspension must cancel itself forcefully or risk crashing whatever other action is
|
||||
// in progress.
|
||||
//
|
||||
|
@ -203,8 +203,6 @@ void SysThreadBase::PauseSelfDebug()
|
|||
// Resume, you'll need to bind callbacks to either OnResumeReady or OnResumeInThread.
|
||||
//
|
||||
// Exceptions:
|
||||
// PluginInitError - thrown if a plugin fails init (init is performed on the current thread
|
||||
// on the first time the thread is resumed from it's initial idle state)
|
||||
// ThreadCreationError - Insufficient system resources to create thread.
|
||||
//
|
||||
void SysThreadBase::Resume()
|
||||
|
|
|
@ -43,11 +43,11 @@ public:
|
|||
// returning FALSE.
|
||||
ExecMode_NoThreadYet,
|
||||
|
||||
// Thread is safely paused, with plugins in a "closed" state, and waiting for a
|
||||
// Thread is safely paused, with subcomponents in a "closed" state, and waiting for a
|
||||
// resume/open signal.
|
||||
ExecMode_Closed,
|
||||
|
||||
// Thread is safely paused, with plugins in an "open" state, and waiting for a
|
||||
// Thread is safely paused, with subcomponents in an "open" state, and waiting for a
|
||||
// resume/open signal.
|
||||
ExecMode_Paused,
|
||||
|
||||
|
@ -183,8 +183,8 @@ protected:
|
|||
StateIPC m_IpcState = OFF;
|
||||
|
||||
// Indicates if the system has an active virtual machine state. Pretty much always
|
||||
// true anytime between plugins being initialized and plugins being shutdown. Gets
|
||||
// set false when plugins are shutdown, the corethread is canceled, or when an error
|
||||
// true anytime between subcomponents being initialized and being shutdown. Gets
|
||||
// set false when they are shutdown, the corethread is canceled, or when an error
|
||||
// occurs while trying to upload a new state into the VM.
|
||||
std::atomic<bool> m_hasActiveMachine;
|
||||
|
||||
|
|
|
@ -455,7 +455,7 @@ s32 USBfreeze(int mode, freezeData* data)
|
|||
}
|
||||
else if (!proxy && index != DEVTYPE_NONE)
|
||||
{
|
||||
Console.WriteLn(Color_Red, "USB: Port %d: unknown device.\nPlugin is probably too old for this save.", i);
|
||||
Console.WriteLn(Color_Red, "USB: Port %d: unknown device.\nUSB is probably too old for this save.", i);
|
||||
}
|
||||
ptr += usbd.device[i].size;
|
||||
}
|
||||
|
@ -661,11 +661,6 @@ void USBDoFreezeIn(pxInputStream& infp)
|
|||
Console.Indent().Warning("Warning: No data for USB found. Status may be unpredictable.");
|
||||
|
||||
return;
|
||||
|
||||
// Note: Size mismatch check could also be done here on loading, but
|
||||
// some plugins may have built-in version support for non-native formats or
|
||||
// older versions of a different size... or could give different sizes depending
|
||||
// on the status of the plugin when loading, so let's ignore it.
|
||||
}
|
||||
|
||||
ScopedAlloc<s8> data(fP.size);
|
||||
|
|
|
@ -52,7 +52,7 @@ typedef void (Pcsx2App::*FnPtr_Pcsx2App)();
|
|||
|
||||
wxDECLARE_EVENT(pxEvt_SetSettingsPage, wxCommandEvent);
|
||||
|
||||
// This is used when the GS plugin is handling its own window. Messages from the PAD
|
||||
// This is used when GS is handling its own window. Messages from the PAD
|
||||
// are piped through to an app-level message handler, which dispatches them through
|
||||
// the universal Accelerator table.
|
||||
static const int pxID_PadHandler_Keydown = 8030;
|
||||
|
@ -87,9 +87,9 @@ enum MenuIdentifiers
|
|||
// Main Menu Section
|
||||
MenuId_Boot = 1,
|
||||
MenuId_Emulation,
|
||||
MenuId_Config, // General config, plus non audio/video plugins.
|
||||
MenuId_Video, // Video options filled in by GS plugin
|
||||
MenuId_Audio, // audio options filled in by SPU2 plugin
|
||||
MenuId_Config, // General config.
|
||||
MenuId_Video, // Video options filled in by GS.
|
||||
MenuId_Audio, // audio options filled in by SPU2.
|
||||
MenuId_Misc, // Misc options and help!
|
||||
|
||||
MenuId_Exit = wxID_EXIT,
|
||||
|
@ -115,8 +115,8 @@ enum MenuIdentifiers
|
|||
//MenuId_Boot_Recent, // Menu populated with recent source bootings
|
||||
|
||||
|
||||
MenuId_Sys_SuspendResume, // suspends/resumes active emulation, retains plugin states
|
||||
MenuId_Sys_Shutdown, // Closes virtual machine, shuts down plugins, wipes states.
|
||||
MenuId_Sys_SuspendResume, // suspends/resumes active emulation
|
||||
MenuId_Sys_Shutdown, // Closes virtual machine, wipes states
|
||||
MenuId_Sys_LoadStates, // Opens load states submenu
|
||||
MenuId_Sys_SaveStates, // Opens save states submenu
|
||||
MenuId_EnableBackupStates, // Checkbox to enable/disables savestates backup
|
||||
|
|
|
@ -135,7 +135,7 @@ struct KeyAcceleratorCode
|
|||
// --------------------------------------------------------------------------------------
|
||||
// GlobalCommandDescriptor
|
||||
// --------------------------------------------------------------------------------------
|
||||
// Describes a global command which can be invoked from the main GUI or GUI plugins.
|
||||
// Describes a global command which can be invoked from the main GUI.
|
||||
|
||||
struct GlobalCommandDescriptor
|
||||
{
|
||||
|
|
|
@ -60,12 +60,6 @@ namespace PathDefs
|
|||
return retval;
|
||||
}
|
||||
|
||||
const wxDirName& Plugins()
|
||||
{
|
||||
static const wxDirName retval( L"plugins" );
|
||||
return retval;
|
||||
}
|
||||
|
||||
const wxDirName& Logs()
|
||||
{
|
||||
static const wxDirName retval( L"logs" );
|
||||
|
@ -113,7 +107,7 @@ namespace PathDefs
|
|||
// (currently it's the CWD, but in the future I intend to move all binaries to a "bin"
|
||||
// sub folder, in which case the approot will become "..") [- Air?]
|
||||
|
||||
//The installer installs the folders which are relative to AppRoot (that's plugins/langs)
|
||||
//The installer installs the folders which are relative to AppRoot (that's langs)
|
||||
// relative to the exe folder, and not relative to cwd. So the exe should be default AppRoot. - avih
|
||||
const wxDirName& AppRoot()
|
||||
{
|
||||
|
@ -541,8 +535,6 @@ void App_LoadSaveInstallSettings( IniInterface& ini )
|
|||
ini.Entry( L"SettingsFolder", SettingsFolder, PathDefs::GetSettings() );
|
||||
|
||||
// "Install_Dir" conforms to the NSIS standard install directory key name.
|
||||
// Attempt to load plugins based on the Install Folder.
|
||||
|
||||
ini.Entry( L"Install_Dir", InstallFolder, (wxDirName)(wxFileName(wxStandardPaths::Get().GetExecutablePath()).GetPath()) );
|
||||
SetFullBaseDir( InstallFolder );
|
||||
|
||||
|
@ -752,7 +744,7 @@ void AppConfig::FilenameOptions::LoadSave( IniInterface& ini )
|
|||
static const wxFileName pc( L"Please Configure" );
|
||||
|
||||
//when saving in portable mode, we just save the non-full-path filename
|
||||
// --> on load they'll be initialized with default (relative) paths (works both for plugins and bios)
|
||||
// --> on load they'll be initialized with default (relative) paths (works for bios)
|
||||
//note: this will break if converting from install to portable, and custom folders are used. We can live with that.
|
||||
bool needRelativeName = ini.IsSaving() && IsPortable();
|
||||
|
||||
|
@ -1114,8 +1106,7 @@ void RelocateLogfile()
|
|||
// that might be saved to the configured ini/settings folder.
|
||||
//
|
||||
// Notes:
|
||||
// The overwrite option applies to PCSX2 options only. Plugin option behavior will depend
|
||||
// on the plugins.
|
||||
// The overwrite option applies to PCSX2 options only.
|
||||
//
|
||||
void AppConfig_OnChangedSettingsFolder( bool overwrite )
|
||||
{
|
||||
|
|
|
@ -75,8 +75,7 @@ extern wxDirName GetCheatsWsFolder();
|
|||
enum InstallationModeType
|
||||
{
|
||||
// Use the user defined folder selections. These can be anywhere on a user's hard drive,
|
||||
// though by default the binaries (plugins) are located in Install_Dir (registered
|
||||
// by the installer), and the user files (screenshots, inis) are in the user's documents
|
||||
// though by default thee user files (screenshots, inis) are in the user's documents
|
||||
// folder. All folders are changable within the GUI.
|
||||
InstallMode_Registered,
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ public:
|
|||
};
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// EventListenerHelpers (CoreThread / Plugins / AppStatus)
|
||||
// EventListenerHelpers (CoreThread / AppStatus)
|
||||
// --------------------------------------------------------------------------------------
|
||||
// Welcome to the awkward world of C++ multi-inheritence. wxWidgets' Connect() system is
|
||||
// incompatible because of limitations in C++ class member function pointers, so we need
|
||||
|
|
|
@ -112,8 +112,8 @@ void Pcsx2App::DispatchEvent( CoreThreadStatus evt )
|
|||
break;
|
||||
}
|
||||
|
||||
// Clear the sticky key statuses, because hell knows what'll change while the PAD
|
||||
// plugin is suspended.
|
||||
// Clear the sticky key statuses, because hell knows what'll change while PAD
|
||||
// is suspended.
|
||||
|
||||
m_kevt.m_shiftDown = false;
|
||||
m_kevt.m_controlDown = false;
|
||||
|
|
|
@ -45,7 +45,7 @@ AppGameDatabase& AppGameDatabase::LoadFromFile(const wxString& _file)
|
|||
// regardless of any other settings.
|
||||
|
||||
// Note 1: Portable setup didn't suffer from this as install folder pointed already to the exe folder in portable.
|
||||
// Note 2: Other folders are either configurable (plugins, memcards, etc) or create their content automatically (inis)
|
||||
// Note 2: Other folders are either configurable (memcards, etc) or create their content automatically (inis)
|
||||
// So the games DB was really the only one that suffers from residues of prior installs.
|
||||
|
||||
//wxDirName dir = InstallFolder;
|
||||
|
|
|
@ -633,10 +633,6 @@ void Pcsx2App::OnDestroyWindow(wxWindowDestroyEvent& evt)
|
|||
// console logger. If so, we need to disable logging to the console window, or else
|
||||
// it'll crash. (this is because the console log system uses a cached window handle
|
||||
// instead of looking the window up via it's ID -- fast but potentially unsafe).
|
||||
//
|
||||
// * The virtual machine's plugins usually depend on the GS window handle being valid,
|
||||
// so if the GS window is the one being shut down then we need to make sure to close
|
||||
// out the Corethread before it vanishes completely from existence.
|
||||
|
||||
|
||||
OnProgramLogClosed(evt.GetId());
|
||||
|
|
|
@ -503,7 +503,7 @@ void Pcsx2App::LogicalVsync()
|
|||
{
|
||||
if( ev->key == 0 ) break;
|
||||
|
||||
// Give plugins first try to handle keys. If none of them handles the key, it will
|
||||
// Give PAD first try to handle keys. If none of them handles the key, it will
|
||||
// be passed to the main user interface.
|
||||
PadKeyDispatch( *ev );
|
||||
}
|
||||
|
@ -868,14 +868,13 @@ void Pcsx2App::OpenGsPanel()
|
|||
gsFrame->SetSize( oldsize );
|
||||
}
|
||||
|
||||
pxAssertDev( !gsopen_done, "GS Plugin must be closed prior to opening a new Gs Panel!" );
|
||||
pxAssertDev( !gsopen_done, "GS must be closed prior to opening a new Gs Panel!" );
|
||||
|
||||
#ifdef __WXGTK__
|
||||
// The x window/display are actually very deeper in the widget. You need both display and window
|
||||
// because unlike window there are unrelated. One could think it would be easier to send directly the GdkWindow.
|
||||
// Unfortunately there is a race condition between gui and gs threads when you called the
|
||||
// GDK_WINDOW_* macro. To be safe I think it is best to do here. It only cost a slight
|
||||
// extension (fully compatible) of the plugins API. -- Gregory
|
||||
// GDK_WINDOW_* macro. To be safe I think it is best to do here. -- Gregory
|
||||
|
||||
// GTK_PIZZA is an internal interface of wx, therefore they decide to
|
||||
// remove it on wx 3. I tryed to replace it with gtk_widget_get_window but
|
||||
|
@ -1013,8 +1012,6 @@ protected:
|
|||
{
|
||||
wxGetApp().ProcessMethod( AppSaveSettings );
|
||||
|
||||
// if something unloaded plugins since this messages was queued then it's best to ignore
|
||||
// it, because apparently too much stuff is going on and the emulation states are wonky.
|
||||
DbgCon.WriteLn( Color_Gray, "(SysExecute) received." );
|
||||
|
||||
CoreThread.ResetQuick();
|
||||
|
|
|
@ -26,14 +26,12 @@
|
|||
|
||||
DocsModeType DocsFolderMode = DocsFolder_User;
|
||||
bool UseDefaultSettingsFolder = true;
|
||||
bool UseDefaultPluginsFolder = true;
|
||||
|
||||
|
||||
wxDirName CustomDocumentsFolder;
|
||||
wxDirName SettingsFolder;
|
||||
|
||||
wxDirName InstallFolder;
|
||||
wxDirName PluginsFolder;
|
||||
|
||||
// The UserLocalData folder can be redefined depending on whether or not PCSX2 is in
|
||||
// "portable install" mode or not. when PCSX2 has been configured for portable install, the
|
||||
|
@ -227,13 +225,6 @@ static void DoFirstTimeWizard()
|
|||
|
||||
wxConfigBase* Pcsx2App::OpenInstallSettingsFile()
|
||||
{
|
||||
// Implementation Notes:
|
||||
//
|
||||
// As of 0.9.8 and beyond, PCSX2's versioning should be strong enough to base ini and
|
||||
// plugin compatibility on version information alone. This in turn allows us to ditch
|
||||
// the old system (CWD-based ini file mess) in favor of a system that simply stores
|
||||
// most core application-level settings in the registry.
|
||||
|
||||
std::unique_ptr<wxConfigBase> conf_install;
|
||||
|
||||
#ifdef __WXMSW__
|
||||
|
|
|
@ -101,15 +101,7 @@ Dialogs::CreateMemoryCardDialog::CreateMemoryCardDialog( wxWindow* parent, const
|
|||
m_text_filenameInput->SetFocus();
|
||||
m_text_filenameInput->SelectAll();
|
||||
}
|
||||
/*
|
||||
wxDirName Dialogs::CreateMemoryCardDialog::GetPathToMcds() const
|
||||
{
|
||||
return m_filepicker ? (wxDirName)m_filepicker->GetPath() : m_mcdpath;
|
||||
}
|
||||
*/
|
||||
// When this GUI is moved into the FileMemoryCard plugin (where it eventually belongs),
|
||||
// this function will be removed and the MemoryCardFile::Create() function will be used
|
||||
// instead.
|
||||
|
||||
bool Dialogs::CreateMemoryCardDialog::CreateIt( const wxString& mcdFile, uint sizeInMB, bool isPSX )
|
||||
{
|
||||
//int enc[16] = {0x77,0x7f,0x7f,0x77,0x7f,0x7f,0x77,0x7f,0x7f,0x77,0x7f,0x7f,0,0,0,0};
|
||||
|
|
|
@ -326,7 +326,7 @@ void GSPanel::OnMouseEvent( wxMouseEvent& evt )
|
|||
}
|
||||
|
||||
#if defined(__unix__)
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad. Wx deletes
|
||||
// the event before the pad see it. So you send key event directly to the pad.
|
||||
keyEvent event;
|
||||
// FIXME how to handle double click ???
|
||||
|
@ -387,13 +387,13 @@ void GSPanel::OnHideMouseTimeout( wxTimerEvent& evt )
|
|||
void GSPanel::OnKeyDownOrUp( wxKeyEvent& evt )
|
||||
{
|
||||
|
||||
// HACK: Legacy PAD plugins expect PCSX2 to ignore keyboard messages on the GS Window while
|
||||
// the PAD plugin is open, so ignore here (PCSX2 will direct messages routed from PAD directly
|
||||
// HACK: PAD expect PCSX2 to ignore keyboard messages on the GS Window while
|
||||
// it is open, so ignore here (PCSX2 will direct messages routed from PAD directly
|
||||
// to the APP level message handler, which in turn routes them right back here -- yes it's
|
||||
// silly, but oh well).
|
||||
|
||||
#if defined(__unix__)
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad. Wx deletes
|
||||
// the event before the pad see it. So you send key event directly to the pad.
|
||||
keyEvent event;
|
||||
event.key = evt.GetRawKeyCode();
|
||||
|
@ -410,7 +410,7 @@ void GSPanel::OnKeyDownOrUp( wxKeyEvent& evt )
|
|||
#ifdef __WXMSW__
|
||||
// Not sure what happens on Linux, but on windows this method is called only when emulation
|
||||
// is paused and the GS window is not hidden (and therefore the event doesn't arrive from
|
||||
// the pad plugin and doesn't go through Pcsx2App::PadKeyDispatch). On such case (paused).
|
||||
// pad and doesn't go through Pcsx2App::PadKeyDispatch). On such case (paused).
|
||||
// It needs to handle two issues:
|
||||
// 1. It's called both for key down and key up (linux apparently needs it this way) - but we
|
||||
// don't want to execute the command twice (normally commands execute on key down only).
|
||||
|
@ -476,7 +476,7 @@ void GSPanel::OnFocus( wxFocusEvent& evt )
|
|||
DoShowMouse();
|
||||
|
||||
#if defined(__unix__)
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad. Wx deletes
|
||||
// the event before the pad see it. So you send key event directly to the pad.
|
||||
keyEvent event = {0, 9}; // X equivalent of FocusIn;
|
||||
PADWriteEvent(event);
|
||||
|
@ -492,7 +492,7 @@ void GSPanel::OnFocusLost( wxFocusEvent& evt )
|
|||
m_HasFocus = false;
|
||||
DoShowMouse();
|
||||
#if defined(__unix__)
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
|
||||
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad. Wx deletes
|
||||
// the event before the pad see it. So you send key event directly to the pad.
|
||||
keyEvent event = {0, 10}; // X equivalent of FocusOut
|
||||
PADWriteEvent(event);
|
||||
|
@ -631,11 +631,6 @@ void GSFrame::CoreThread_OnStopped()
|
|||
//if( !IsBeingDeleted() ) Destroy();
|
||||
}
|
||||
|
||||
void GSFrame::CorePlugins_OnShutdown()
|
||||
{
|
||||
if( !IsBeingDeleted() ) Destroy();
|
||||
}
|
||||
|
||||
// overrides base Show behavior.
|
||||
bool GSFrame::Show( bool shown )
|
||||
{
|
||||
|
|
|
@ -119,7 +119,6 @@ protected:
|
|||
void CoreThread_OnResumed();
|
||||
void CoreThread_OnSuspended();
|
||||
void CoreThread_OnStopped();
|
||||
void CorePlugins_OnShutdown();
|
||||
};
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
|
|
@ -365,7 +365,7 @@ void MainEmuFrame::CreatePcsx2Menu()
|
|||
m_menuSys.Append(MenuId_Sys_SuspendResume, _("Initializing..."));
|
||||
|
||||
m_menuSys.Append(MenuId_Sys_Shutdown, _("Shut&down"),
|
||||
_("Wipes all internal VM states and shuts down plugins."));
|
||||
_("Wipes all internal VM states."));
|
||||
m_menuSys.FindItem(MenuId_Sys_Shutdown)->Enable(false);
|
||||
|
||||
m_menuSys.Append(MenuId_Boot_ELF, _("&Run ELF..."),
|
||||
|
|
|
@ -118,8 +118,7 @@ static void WipeSettings()
|
|||
wxRemoveFile(GetUiSettingsFilename());
|
||||
wxRemoveFile(GetVmSettingsFilename());
|
||||
|
||||
// FIXME: wxRmdir doesn't seem to work here for some reason (possible file sharing issue
|
||||
// with a plugin that leaves a file handle dangling maybe?). But deleting the inis folder
|
||||
// FIXME: wxRmdir doesn't seem to work here for some reason but deleting the inis folder
|
||||
// manually from explorer does work. Can't think of a good work-around at the moment. --air
|
||||
|
||||
//wxRmdir( GetSettingsFolder().ToString() );
|
||||
|
@ -148,7 +147,7 @@ void MainEmuFrame::Menu_ResetAllSettings_Click(wxCommandEvent& event)
|
|||
{
|
||||
ScopedCoreThreadPopup suspender;
|
||||
if (!Msgbox::OkCancel(pxsFmt(
|
||||
pxE(L"This command clears %s settings and allows you to re-run the First-Time Wizard. You will need to manually restart %s after this operation.\n\nWARNING!! Click OK to delete *ALL* settings for %s and force-close the app, losing any current emulation progress. Are you absolutely sure?\n\n(note: settings for plugins are unaffected)"), WX_STR(pxGetAppName()), WX_STR(pxGetAppName()), WX_STR(pxGetAppName())),
|
||||
pxE(L"This command clears %s settings and allows you to re-run the First-Time Wizard. You will need to manually restart %s after this operation.\n\nWARNING!! Click OK to delete *ALL* settings for %s and force-close the app, losing any current emulation progress. Are you absolutely sure?"), WX_STR(pxGetAppName()), WX_STR(pxGetAppName()), WX_STR(pxGetAppName())),
|
||||
_("Reset all settings?")))
|
||||
{
|
||||
suspender.AllowResume();
|
||||
|
@ -795,8 +794,7 @@ void MainEmuFrame::Menu_SuspendResume_Click(wxCommandEvent& event)
|
|||
return;
|
||||
|
||||
// Disable the menu item. The state of the menu is indeterminate until the core thread
|
||||
// has responded (it updates status after the plugins are loaded and emulation has
|
||||
// engaged successfully).
|
||||
// has responded (it updates status after emulation has engaged successfully).
|
||||
|
||||
EnableMenuItem(MenuId_Sys_SuspendResume, false);
|
||||
GetSysExecutorThread().PostEvent(new SysExecEvent_ToggleSuspend());
|
||||
|
|
|
@ -84,7 +84,7 @@ bool ApplyStateStruct::ApplyPage( int pageid )
|
|||
// Note: apply first, then save -- in case the apply fails.
|
||||
|
||||
if( !PathDefs::GetSettings().Exists() )
|
||||
PathDefs::GetSettings().Mkdir();//create the inis folder such that the plugins can be configured at the first time wizard.
|
||||
PathDefs::GetSettings().Mkdir();
|
||||
|
||||
if( !PathDefs::GetBios().Exists() )
|
||||
PathDefs::GetBios().Mkdir();//create the bios folder such that it can be opened at the first time wizard without an error message.
|
||||
|
|
|
@ -268,7 +268,6 @@ namespace Panels
|
|||
protected:
|
||||
// Exclusive mode is currently not used (true for svn r4399).
|
||||
// PCSX2 has partial infrastructure for it:
|
||||
// - The plugin APIs have GSsetExclusive.
|
||||
// - GSdx seem to support it (it supports the API and has implementation), but I don't know if it ever got called.
|
||||
// - BUT, the configuration (AppConfig, and specifically GSWindowOptions) do NOT seem to have a place to store this value,
|
||||
// and PCSX2's code doesn't seem to use this API anywhere. So, no exclusive mode for now.
|
||||
|
|
|
@ -85,7 +85,7 @@ Panels::GSWindowSettingsPanel::GSWindowSettingsPanel(wxWindow* parent)
|
|||
L"CTRL + NUMPAD-PLUS: Zoom-In, \n"
|
||||
L"CTRL + NUMPAD-MINUS: Zoom-Out, \nCTRL + NUMPAD-*: Toggle 100/0"));
|
||||
|
||||
m_combo_vsync->SetToolTip(pxEt(L"Vsync eliminates screen tearing but typically has a big performance hit. It usually only applies to fullscreen mode, and may not work with all GS plugins."));
|
||||
m_combo_vsync->SetToolTip(pxEt(L"Vsync eliminates screen tearing but typically has a big performance hit. It usually only applies to fullscreen mode."));
|
||||
|
||||
m_check_HideMouse->SetToolTip(pxEt(L"Check this to force the mouse cursor invisible inside the GS window; useful if using the mouse as a primary control device for gaming. By default the mouse auto-hides after 2 seconds of inactivity."));
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ using namespace pxSizerFlags;
|
|||
Panels::DocsFolderPickerPanel::DocsFolderPickerPanel( wxWindow* parent, bool isFirstTime )
|
||||
: BaseApplicableConfigPanel( parent, wxVERTICAL, _("Usermode Selection") )
|
||||
{
|
||||
const wxString usermodeExplained( pxE( L"Please select your preferred default location for PCSX2 user-level documents below (includes memory cards, screenshots, settings, and savestates). These folder locations can be overridden at any time using the Plugin/BIOS Selector panel."
|
||||
const wxString usermodeExplained( pxE( L"Please select your preferred default location for PCSX2 user-level documents below (includes memory cards, screenshots, settings, and savestates). These folder locations can be overridden at any time using the BIOS Selector panel."
|
||||
) );
|
||||
|
||||
const wxString usermodeWarning( pxE( L"You can change the preferred default location for PCSX2 user-level documents here (includes memory cards, screenshots, settings, and savestates). This option only affects Standard Paths which are set to use the installation default value."
|
||||
|
|
|
@ -53,7 +53,7 @@ Panels::StandardPathsPanel::StandardPathsPanel( wxWindow* parent )
|
|||
*this += (new DirPickerPanel( this, FolderId_Snapshots,
|
||||
_("Snapshots:"),
|
||||
_("Select a folder for Snapshots") ))->
|
||||
SetToolTip( pxEt( L"This folder is where PCSX2 saves screenshots. Actual screenshot image format and style may vary depending on the GS plugin being used."
|
||||
SetToolTip( pxEt( L"This folder is where PCSX2 saves screenshots."
|
||||
)
|
||||
) | SubGroup();
|
||||
|
||||
|
@ -61,7 +61,7 @@ Panels::StandardPathsPanel::StandardPathsPanel( wxWindow* parent )
|
|||
*this += (new DirPickerPanel( this, FolderId_Logs,
|
||||
_("Logs/Dumps:" ),
|
||||
_("Select a folder for logs/dumps") ))->
|
||||
SetToolTip( pxEt( L"This folder is where PCSX2 saves its logfiles and diagnostic dumps. Most plugins will also adhere to this folder, however some older plugins may ignore it."
|
||||
SetToolTip( pxEt( L"This folder is where PCSX2 saves its logfiles and diagnostic dumps."
|
||||
)
|
||||
) | SubGroup();
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
|
||||
-/- MemoryCardFile SVN Status -/-
|
||||
|
||||
Currently the MemoryCardFile "plugin" is integrated into the main UI of PCSX2. It provides
|
||||
standard raw/block emulation of a memorycard device. The plugin-ification of the MemoryCard
|
||||
system has not yet been completed, which is why the plugin as of right now is "integrated"
|
||||
into the UI. As the new PS2E.v2 plugin API is completed, the MemoryCardFile provider will
|
||||
be moved into an external DLL.
|
||||
|
||||
Due to these future plans, and due to the number of files involved in implementing the
|
||||
user interface for memorycard management, I have arranged the MemoryCardFile plugin files
|
||||
in their own sub-folder inside the Visual Studio project.
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include "Patch.h"
|
||||
|
||||
// Used to hold the current state backup (fullcopy of PS2 memory and plugin states).
|
||||
// Used to hold the current state backup (fullcopy of PS2 memory and subcomponents states).
|
||||
//static VmStateBuffer state_buffer( L"Public Savestate Buffer" );
|
||||
|
||||
static const wxChar* EntryFilename_StateVersion = L"PCSX2 Savestate Version.id";
|
||||
|
@ -294,11 +294,6 @@ public:
|
|||
|
||||
|
||||
|
||||
|
||||
// [TODO] : Add other components as files to the savestate gzip?
|
||||
// * VU0/VU1 memory banks? VU0prog, VU1prog, VU0data, VU1data.
|
||||
// * GS register data?
|
||||
// * Individual plugins?
|
||||
// (cpuRegs, iopRegs, VPU/GIF/DMAC structures should all remain as part of a larger unified
|
||||
// block, since they're all PCSX2-dependent and having separate files in the archie for them
|
||||
// would not be useful).
|
||||
|
|
Loading…
Reference in New Issue