pcsx2: clean up references to plugins

This commit is contained in:
Gauvain 'GovanifY' Roussel-Tarbouriech 2021-05-14 17:05:50 +02:00 committed by Kojin
parent 3b56b0340d
commit 136c326059
60 changed files with 79 additions and 647 deletions

View File

@ -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);

View File

@ -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)

View File

@ -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)

View File

@ -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));

View File

@ -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

View File

@ -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

View File

@ -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();

View File

@ -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);

View File

@ -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;

View File

@ -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
/////////////////////////////////////////////////////////////////////////////

View File

@ -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)

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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
//////////////////////////////////////////////////////////////////////////////////////////

View File

@ -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;

View File

@ -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."));
}
}

View File

@ -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);

View File

@ -95,7 +95,7 @@ public:
};
// Full state to manage save state
struct PadPluginFreezeData
struct PadFreezeData
{
char format[8];
u32 version;

View File

@ -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);

View File

@ -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.";

View File

@ -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();

View File

@ -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

View File

@ -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)
{

View File

@ -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:

View File

@ -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];

View File

@ -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);

View File

@ -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 )

View File

@ -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)

View File

@ -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()

View File

@ -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;

View File

@ -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);

View File

@ -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

View File

@ -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
{

View File

@ -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 )
{

View File

@ -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,

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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());

View File

@ -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();

View File

@ -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__

View File

@ -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};

View File

@ -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 )
{

View File

@ -119,7 +119,6 @@ protected:
void CoreThread_OnResumed();
void CoreThread_OnSuspended();
void CoreThread_OnStopped();
void CorePlugins_OnShutdown();
};
// --------------------------------------------------------------------------------------

View File

@ -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..."),

View File

@ -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());

View File

@ -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.

View File

@ -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.

View File

@ -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."));

View File

@ -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."

View File

@ -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();

View File

@ -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.

View File

@ -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).