FreeBSD Bugzilla – Attachment 220984 Details for
Bug 252191
[NEW PORT] emulators/libretro-pcsx2: Standalone port of pcsx2 to libretro emulator
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
emulators_libretro-pcsx2.shar
emulators_libretro-pcsx2.shar (text/plain), 22.36 KB, created by
Timothy Beyer
on 2020-12-27 06:45:29 UTC
(
hide
)
Description:
emulators_libretro-pcsx2.shar
Filename:
MIME Type:
Creator:
Timothy Beyer
Created:
2020-12-27 06:45:29 UTC
Size:
22.36 KB
patch
obsolete
># This is a shell archive. Save it in a file, remove anything before ># this line, and then unpack it by entering "sh file". Note, it may ># create directories; files and directories will be owned by you and ># have default permissions. ># ># This archive contains: ># ># emulators ># emulators/libretro-pcsx2 ># emulators/libretro-pcsx2/Makefile ># emulators/libretro-pcsx2/distinfo ># emulators/libretro-pcsx2/pkg-descr ># emulators/libretro-pcsx2/files ># emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_CMakeLists.txt ># emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_UsewxWidgets.cmake ># emulators/libretro-pcsx2/files/patch-CMakeLists.txt ># emulators/libretro-pcsx2/files/3rdparty_wxwidgets3.0_src_unix_fswatcher__kqueue.cpp ># emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_include_nogui_wx_setup.h ># emulators/libretro-pcsx2/files/patch-common_include_Utilities_General.h ># emulators/libretro-pcsx2/files/patch-pcsx2_SPU2_spu2.cpp ># >echo c - emulators >mkdir -p emulators > /dev/null 2>&1 >echo c - emulators/libretro-pcsx2 >mkdir -p emulators/libretro-pcsx2 > /dev/null 2>&1 >echo x - emulators/libretro-pcsx2/Makefile >sed 's/^X//' >emulators/libretro-pcsx2/Makefile << '3513b659a977022b5d3b283055e95929' >X# $FreeBSD$ >X >XPORTNAME= libretro-pcsx2 >XPORTVERSION= 0.20201030 >XCATEGORIES= emulators games >X >XMAINTAINER= beyert@cs.ucr.edu >XCOMMENT= Standalone port of pcsx2 to libretro >X >XLICENSE= GPLv3 >XLICENSE_FILE= ${WRKSRC}/COPYING.GPLv3 >X >XONLY_FOR_ARCHS=>i386 amd64 >X >XLIB_DEPENDS= libpng16.so:graphics/png \ >X libcdio.so:sysutils/libcdio \ >X libportaudio.so:audio/portaudio \ >X libSoundTouch.so:audio/soundtouch \ >X libharfbuzz.so:print/harfbuzz >X >XUSES= compiler:c++11-lib cmake >X >XCPPFLAGS+= -I${LOCALBASE}/include/wx-3.0 >XUSE_CXXSTD= c++11 >X#LDFLAGS+= -L${LOCALBASE}/lib -I/usr/lib >XUSE_LDCONFIG= yes >XCMAKE_CPP_FLAGS= ${CPPFLAGS} >XCMAKE_PREFIX_PATH= ${LOCALBASE}/include/wx-3.0 >XCMAKE_C_FLAGS= ${CFLAGS} >XCMAKE_CXX_FLAGS= ${CFLAGS} >XCMAKE_ARGS+= -DLIBRETRO=yes >XCMAKE_ARGS+= -DwxWidgets_INCLUDE_DIRS="${LOCALBASE}/include/wx-3.0" >XCMAKE_ARGS+= -Dgtk_INCLUDE_DIR="${LOCALBASE}/include/gtk-3.0" >X >X# lib depends on devel/ccache >XWITH_CCACHE_BUILD= yes >X >XHAVE_GTK3= true >X#USES= gnome xorg gl sdl dos2unix cmake:insource iconv gettext linux:c7 pkgconfig >X#USE_LINUX= libaio >XUSE_WX= 3.0+ >X#USE_XORG= ice x11 xv xext xxf86vm xtst xrandr xi >XUSE_GL= gl glew glu >XUSE_GNOME= glib20 >X#USE_SDL= sdl2 >X >XMAKE_JOBS_UNSAFE= yes >X >XUSE_GITHUB= yes >XGH_ACCOUNT= libretro >XGH_PROJECT= pcsx2 >XGH_TAGNAME= 1251fa4 >X >XPLIST_FILES= lib/libretro/pcsx2_libretro.so >X >Xpost-patch: >X ${CP} files/3rdparty_wxwidgets3.0_src_unix_fswatcher__kqueue.cpp \ >X ${WRKSRC}/3rdparty/wxwidgets3.0/src/unix/fswatcher_kqueue.cpp >X >Xdo-install: >X ${MKDIR} ${STAGEDIR}/${PREFIX}/lib/libretro; >X ${INSTALL_LIB} ${WRKDIR}/.build/pcsx2/pcsx2_libretro.so \ >X ${STAGEDIR}/${PREFIX}/lib/libretro; >X >X.include <bsd.port.mk> >3513b659a977022b5d3b283055e95929 >echo x - emulators/libretro-pcsx2/distinfo >sed 's/^X//' >emulators/libretro-pcsx2/distinfo << '092f2a7dbda4a58b049c5f286e4ca898' >XTIMESTAMP = 1604098409 >XSHA256 (libretro-pcsx2-0.20201030-1251fa4_GH0.tar.gz) = 01b329b4bba210022f0f0f889b2e4722ef530b766eaf7036194a53668b47a245 >XSIZE (libretro-pcsx2-0.20201030-1251fa4_GH0.tar.gz) = 15636747 >092f2a7dbda4a58b049c5f286e4ca898 >echo x - emulators/libretro-pcsx2/pkg-descr >sed 's/^X//' >emulators/libretro-pcsx2/pkg-descr << 'd040d483923b8bff6e324cbd18a42a92' >XStandalone port of pcsx2 to libretro. >X >XPCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its >Xpurpose is to emulate the PS2's hardware, using a combination of MIPS >XCPU Interpreters, Recompilers and a Virtual Machine which manages >Xhardware states and PS2 system memory. This allows you to play PS2 >Xgames on your PC, with many additional features and benefits. >X >XWWW: https://github.com/libretro/pcsx2 >d040d483923b8bff6e324cbd18a42a92 >echo c - emulators/libretro-pcsx2/files >mkdir -p emulators/libretro-pcsx2/files > /dev/null 2>&1 >echo x - emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_CMakeLists.txt >sed 's/^X//' >emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_CMakeLists.txt << 'b1d1c9ed15c26caf685637737fa898bd' >X--- 3rdparty/wxwidgets3.0/CMakeLists.txt.orig 2020-10-29 23:31:05 UTC >X+++ 3rdparty/wxwidgets3.0/CMakeLists.txt >X@@ -1,10 +1,10 @@ >X if(UNIX) >X set(wxUnixSources >X+ src/unix/fswatcher_kqueue.cpp >X src/unix/appunix.cpp >X src/unix/dir.cpp >X src/unix/dlunix.cpp >X src/unix/evtloopunix.cpp >X- src/unix/epolldispatcher.cpp >X src/unix/fdiounix.cpp >X src/unix/stackwalk.cpp >X src/unix/stdpaths.cpp >b1d1c9ed15c26caf685637737fa898bd >echo x - emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_UsewxWidgets.cmake >sed 's/^X//' >emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_UsewxWidgets.cmake << '84285250610e2af2f25c5e7940533cb1' >X--- 3rdparty/wxwidgets3.0/UsewxWidgets.cmake.orig 2020-10-29 23:31:05 UTC >X+++ 3rdparty/wxwidgets3.0/UsewxWidgets.cmake >X@@ -11,7 +11,7 @@ if(UNIX) >X if(APPLE) >X add_definitions(-D__DARWIN__) >X else() >X- add_definitions(-D__LINUX__) >X+ add_definitions(-D__BSD__) >X endif() >X elseif(WIN32) >X add_definitions(-D__WINDOWS__) >84285250610e2af2f25c5e7940533cb1 >echo x - emulators/libretro-pcsx2/files/patch-CMakeLists.txt >sed 's/^X//' >emulators/libretro-pcsx2/files/patch-CMakeLists.txt << '11882e55a64050593237c387e7859312' >X--- CMakeLists.txt.orig 2020-10-29 23:31:05 UTC >X+++ CMakeLists.txt >X@@ -44,7 +44,10 @@ if (LIBRETRO) >X set(BUILD_REPLAY_LOADERS FALSE) >X # add_definitions(-D__LIBRETRO__ -DDISABLE_RECORDING) >X #add_definitions(-D__LIBRETRO__ -DDISABLE_RECORDING -DwxUSE_UNICODE=0) >X-add_definitions(-D__LIBRETRO__ -DDISABLE_RECORDING -DwxUSE_GUI=0) >X+message("wxWidgets_INCLUDE_DIRS: ${wxWidgets_INCLUDE_DIRS}") >X+include_directories(${wxWidgets_INCLUDE_DIRS}) >X+#include_directories(${gdk_INCLUDE_DIRS}) >X+add_definitions(-D__LIBRETRO__ -DDISABLE_RECORDING -DwxUSE_GUI=0 -I${gtk_INCLUDE_DIR} -D__USE_ISOC11) >X endif() >X >X if(NOT NO_TRANSLATION) >11882e55a64050593237c387e7859312 >echo x - emulators/libretro-pcsx2/files/3rdparty_wxwidgets3.0_src_unix_fswatcher__kqueue.cpp >sed 's/^X//' >emulators/libretro-pcsx2/files/3rdparty_wxwidgets3.0_src_unix_fswatcher__kqueue.cpp << 'c35c8c23449c702dfad5a34f57577384' >X///////////////////////////////////////////////////////////////////////////// >X// Name: src/unix/fswatcher_kqueue.cpp >X// Purpose: kqueue-based wxFileSystemWatcher implementation >X// Author: Bartosz Bekier >X// Created: 2009-05-26 >X// Copyright: (c) 2009 Bartosz Bekier <bartosz.bekier@gmail.com> >X// Licence: wxWindows licence >X///////////////////////////////////////////////////////////////////////////// >X >X// For compilers that support precompilation, includes "wx.h". >X#include "wx/wxprec.h" >X >X#ifdef __BORLANDC__ >X #pragma hdrstop >X#endif >X >X#if wxUSE_FSWATCHER >X >X#include "wx/fswatcher.h" >X >X#ifdef wxHAS_KQUEUE >X >X#include <inttypes.h> >X#include <sys/types.h> >X#include <sys/event.h> >X#include <sys/param.h> >X >X#include "wx/dynarray.h" >X#include "wx/evtloop.h" >X#include "wx/evtloopsrc.h" >X >X#include "wx/private/fswatcher.h" >X >Xnamespace >X{ >X >X// NetBSD is different as it uses intptr_t as type of kevent struct udata field >X// for some reason, instead of "void*" as all the other platforms using kqueue. >X#ifdef __NetBSD__ >X inline intptr_t ToUdata(void* d) { return reinterpret_cast<intptr_t>(d); } >X inline void* FromUdata(intptr_t d) { return reinterpret_cast<void*>(d); } >X#else >X inline void* ToUdata(void* d) { return d; } >X inline void* FromUdata(void* d) { return d; } >X#endif >X >X} // anonymous namespace >X >X// ============================================================================ >X// wxFSWSourceHandler helper class >X// ============================================================================ >X >Xclass wxFSWatcherImplKqueue; >X >X/** >X * Handler for handling i/o from inotify descriptor >X */ >Xclass wxFSWSourceHandler : public wxEventLoopSourceHandler >X{ >Xpublic: >X wxFSWSourceHandler(wxFSWatcherImplKqueue* service) : >X m_service(service) >X { } >X >X virtual void OnReadWaiting(); >X virtual void OnWriteWaiting(); >X virtual void OnExceptionWaiting(); >X >Xprotected: >X wxFSWatcherImplKqueue* m_service; >X}; >X >X// ============================================================================ >X// wxFSWatcherImpl implementation & helper wxFSWSourceHandler implementation >X// ============================================================================ >X >X/** >X * Helper class encapsulating inotify mechanism >X */ >Xclass wxFSWatcherImplKqueue : public wxFSWatcherImpl >X{ >Xpublic: >X wxFSWatcherImplKqueue(wxFileSystemWatcherBase* watcher) : >X wxFSWatcherImpl(watcher), >X m_source(NULL), >X m_kfd(-1) >X { >X m_handler = new wxFSWSourceHandler(this); >X } >X >X virtual ~wxFSWatcherImplKqueue() >X { >X // we close kqueue only if initialized before >X if (IsOk()) >X { >X Close(); >X } >X >X delete m_handler; >X } >X >X bool Init() >X { >X wxCHECK_MSG( !IsOk(), false, >X "Kqueue appears to be already initialized" ); >X >X wxEventLoopBase *loop = wxEventLoopBase::GetActive(); >X wxCHECK_MSG( loop, false, "File system watcher needs an active loop" ); >X >X // create kqueue >X m_kfd = kqueue(); >X if (m_kfd == -1) >X { >X wxLogSysError(_("Unable to create kqueue instance")); >X return false; >X } >X >X // create source >X m_source = loop->AddSourceForFD(m_kfd, m_handler, wxEVENT_SOURCE_INPUT); >X >X return m_source != NULL; >X } >X >X void Close() >X { >X wxCHECK_RET( IsOk(), >X "Kqueue not initialized or invalid kqueue descriptor" ); >X >X if ( close(m_kfd) != 0 ) >X { >X wxLogSysError(_("Error closing kqueue instance")); >X } >X >X wxDELETE(m_source); >X } >X >X virtual bool DoAdd(wxSharedPtr<wxFSWatchEntryKq> watch) >X { >X wxCHECK_MSG( IsOk(), false, >X "Kqueue not initialized or invalid kqueue descriptor" ); >X >X struct kevent event; >X int action = EV_ADD | EV_ENABLE | EV_CLEAR | EV_ERROR; >X int flags = Watcher2NativeFlags(watch->GetFlags()); >X EV_SET( &event, watch->GetFileDescriptor(), EVFILT_VNODE, action, >X flags, 0, ToUdata(watch.get()) ); >X >X // TODO more error conditions according to man >X // TODO best deal with the error here >X int ret = kevent(m_kfd, &event, 1, NULL, 0, NULL); >X if (ret == -1) >X { >X wxLogSysError(_("Unable to add kqueue watch")); >X return false; >X } >X >X return true; >X } >X >X virtual bool DoRemove(wxSharedPtr<wxFSWatchEntryKq> watch) >X { >X wxCHECK_MSG( IsOk(), false, >X "Kqueue not initialized or invalid kqueue descriptor" ); >X >X // TODO more error conditions according to man >X // XXX closing file descriptor removes the watch. The logic resides in >X // the watch which is not nice, but effective and simple >X if ( !watch->Close() ) >X { >X wxLogSysError(_("Unable to remove kqueue watch")); >X return false; >X } >X >X return true; >X } >X >X virtual bool RemoveAll() >X { >X wxFSWatchEntries::iterator it = m_watches.begin(); >X for ( ; it != m_watches.end(); ++it ) >X { >X (void) DoRemove(it->second); >X } >X m_watches.clear(); >X return true; >X } >X >X // return true if there was no error, false on error >X bool ReadEvents() >X { >X wxCHECK_MSG( IsOk(), false, >X "Kqueue not initialized or invalid kqueue descriptor" ); >X >X // read events >X do >X { >X struct kevent event; >X struct timespec timeout = {0, 0}; >X int ret = kevent(m_kfd, NULL, 0, &event, 1, &timeout); >X if (ret == -1) >X { >X wxLogSysError(_("Unable to get events from kqueue")); >X return false; >X } >X else if (ret == 0) >X { >X return true; >X } >X >X // we have event, so process it >X ProcessNativeEvent(event); >X } >X while (true); >X >X // when ret>0 we still have events, when ret<=0 we return >X wxFAIL_MSG( "Never reached" ); >X return true; >X } >X >X bool IsOk() const >X { >X return m_source != NULL; >X } >X >Xprotected: >X // returns all new dirs/files present in the immediate level of the dir >X // pointed by watch.GetPath(). "new" means created between the last time >X // the state of watch was computed and now >X void FindChanges(wxFSWatchEntryKq& watch, >X wxArrayString& changedFiles, >X wxArrayInt& changedFlags) >X { >X wxFSWatchEntryKq::wxDirState old = watch.GetLastState(); >X watch.RefreshState(); >X wxFSWatchEntryKq::wxDirState curr = watch.GetLastState(); >X >X // iterate over old/curr file lists and compute changes >X wxArrayString::iterator oit = old.files.begin(); >X wxArrayString::iterator cit = curr.files.begin(); >X for ( ; oit != old.files.end() && cit != curr.files.end(); ) >X { >X if ( *cit == *oit ) >X { >X ++cit; >X ++oit; >X } >X else if ( *cit <= *oit ) >X { >X changedFiles.push_back(*cit); >X changedFlags.push_back(wxFSW_EVENT_CREATE); >X ++cit; >X } >X else // ( *cit > *oit ) >X { >X changedFiles.push_back(*oit); >X changedFlags.push_back(wxFSW_EVENT_DELETE); >X ++oit; >X } >X } >X >X // border conditions >X if ( oit == old.files.end() ) >X { >X for ( ; cit != curr.files.end(); ++cit ) >X { >X changedFiles.push_back( *cit ); >X changedFlags.push_back(wxFSW_EVENT_CREATE); >X } >X } >X else if ( cit == curr.files.end() ) >X { >X for ( ; oit != old.files.end(); ++oit ) >X { >X changedFiles.push_back( *oit ); >X changedFlags.push_back(wxFSW_EVENT_DELETE); >X } >X } >X >X wxASSERT( changedFiles.size() == changedFlags.size() ); >X >X#if 0 >X wxLogTrace(wxTRACE_FSWATCHER, "Changed files:"); >X wxArrayString::iterator it = changedFiles.begin(); >X wxArrayInt::iterator it2 = changedFlags.begin(); >X for ( ; it != changedFiles.end(); ++it, ++it2) >X { >X wxString action = (*it2 == wxFSW_EVENT_CREATE) ? >X "created" : "deleted"; >X wxLogTrace(wxTRACE_FSWATCHER, wxString::Format("File: '%s' %s", >X *it, action)); >X } >X#endif >X } >X >X void ProcessNativeEvent(const struct kevent& e) >X { >X void* const udata = FromUdata(e.udata); >X >X wxASSERT_MSG(udata, "Null user data associated with kevent!"); >X wxLogTrace(wxTRACE_FSWATCHER, "Event: ident=%" PRIuPTR ", filter=%hd, flags=%hu, " >X#if __FreeBSD_version >= 1200033 >X "fflags=%u, data=%" PRId64 ", user_data=%p", >X#else >X "fflags=%u, data=%" PRIdPTR ", user_data=%p", >X#endif >X e.ident, e.filter, e.flags, e.fflags, e.data, udata); >X >X // for ease of use >X wxFSWatchEntryKq& w = *(static_cast<wxFSWatchEntry*>(udata)); >X int nflags = e.fflags; >X >X // clear ignored flags >X nflags &= ~NOTE_REVOKE; >X >X // TODO ignore events we didn't ask for + refactor this cascade ifs >X // check for events >X while ( nflags ) >X { >X // when monitoring dir, this means create/delete >X const wxString basepath = w.GetPath(); >X if ( nflags & NOTE_WRITE && wxDirExists(basepath) ) >X { >X // NOTE_LINK is set when the dir was created, but we >X // don't care - we look for new names in directory >X // regardless of type. Also, clear all this, because >X // it cannot mean more by itself >X nflags &= ~(NOTE_WRITE | NOTE_ATTRIB | NOTE_LINK); >X >X wxArrayString changedFiles; >X wxArrayInt changedFlags; >X FindChanges(w, changedFiles, changedFlags); >X >X wxArrayString::iterator it = changedFiles.begin(); >X wxArrayInt::iterator changeType = changedFlags.begin(); >X for ( ; it != changedFiles.end(); ++it, ++changeType ) >X { >X const wxString fullpath = w.GetPath() + >X wxFileName::GetPathSeparator() + >X *it; >X const wxFileName path(wxDirExists(fullpath) >X ? wxFileName::DirName(fullpath) >X : wxFileName::FileName(fullpath)); >X >X wxFileSystemWatcherEvent event(*changeType, path, path); >X SendEvent(event); >X } >X } >X else if ( nflags & NOTE_RENAME ) >X { >X // CHECK it'd be only possible to detect name if we had >X // parent files listing which we could confront with now and >X // still we couldn't be sure we have the right name... >X nflags &= ~NOTE_RENAME; >X wxFileSystemWatcherEvent event(wxFSW_EVENT_RENAME, >X basepath, wxFileName()); >X SendEvent(event); >X } >X else if ( nflags & NOTE_WRITE || nflags & NOTE_EXTEND ) >X { >X nflags &= ~(NOTE_WRITE | NOTE_EXTEND); >X wxFileSystemWatcherEvent event(wxFSW_EVENT_MODIFY, >X basepath, basepath); >X SendEvent(event); >X } >X else if ( nflags & NOTE_DELETE ) >X { >X nflags &= ~(NOTE_DELETE); >X wxFileSystemWatcherEvent event(wxFSW_EVENT_DELETE, >X basepath, basepath); >X SendEvent(event); >X } >X else if ( nflags & NOTE_ATTRIB ) >X { >X nflags &= ~(NOTE_ATTRIB); >X wxFileSystemWatcherEvent event(wxFSW_EVENT_ACCESS, >X basepath, basepath); >X SendEvent(event); >X } >X >X // clear any flags that won't mean anything by themselves >X nflags &= ~(NOTE_LINK); >X } >X } >X >X void SendEvent(wxFileSystemWatcherEvent& evt) >X { >X m_watcher->GetOwner()->ProcessEvent(evt); >X } >X >X static int Watcher2NativeFlags(int WXUNUSED(flags)) >X { >X // TODO: it would be better to only subscribe to what we need >X return NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | >X NOTE_ATTRIB | NOTE_LINK | NOTE_RENAME | >X NOTE_REVOKE; >X } >X >X wxFSWSourceHandler* m_handler; // handler for kqueue event source >X wxEventLoopSource* m_source; // our event loop source >X >X // descriptor created by kqueue() >X int m_kfd; >X}; >X >X >X// once we get signaled to read, actuall event reading occurs >Xvoid wxFSWSourceHandler::OnReadWaiting() >X{ >X wxLogTrace(wxTRACE_FSWATCHER, "--- OnReadWaiting ---"); >X m_service->ReadEvents(); >X} >X >Xvoid wxFSWSourceHandler::OnWriteWaiting() >X{ >X wxFAIL_MSG("We never write to kqueue descriptor."); >X} >X >Xvoid wxFSWSourceHandler::OnExceptionWaiting() >X{ >X wxFAIL_MSG("We never receive exceptions on kqueue descriptor."); >X} >X >X >X// ============================================================================ >X// wxKqueueFileSystemWatcher implementation >X// ============================================================================ >X >XwxKqueueFileSystemWatcher::wxKqueueFileSystemWatcher() >X : wxFileSystemWatcherBase() >X{ >X Init(); >X} >X >XwxKqueueFileSystemWatcher::wxKqueueFileSystemWatcher(const wxFileName& path, >X int events) >X : wxFileSystemWatcherBase() >X{ >X if (!Init()) >X { >X wxDELETE(m_service); >X return; >X } >X >X Add(path, events); >X} >X >XwxKqueueFileSystemWatcher::~wxKqueueFileSystemWatcher() >X{ >X} >X >Xbool wxKqueueFileSystemWatcher::Init() >X{ >X m_service = new wxFSWatcherImplKqueue(this); >X return m_service->Init(); >X} >X >X#endif // wxHAS_KQUEUE >X >X#endif // wxUSE_FSWATCHER >c35c8c23449c702dfad5a34f57577384 >echo x - emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_include_nogui_wx_setup.h >sed 's/^X//' >emulators/libretro-pcsx2/files/patch-3rdparty_wxwidgets3.0_include_nogui_wx_setup.h << '96aefe19e080f2230214aed2e7a663a0' >X--- 3rdparty/wxwidgets3.0/include/nogui/wx/setup.h.orig 2020-10-29 23:31:05 UTC >X+++ 3rdparty/wxwidgets3.0/include/nogui/wx/setup.h >X@@ -1108,7 +1108,7 @@ >X #define HAVE_SYS_SELECT_H 1 >X >X /* Define if you have abi::__forced_unwind in your <cxxabi.h>. */ >X-#define HAVE_ABI_FORCEDUNWIND 1 >X+/*#define HAVE_ABI_FORCEDUNWIND 1*/ >X >X /* Define if fdopen is available. */ >X #define HAVE_FDOPEN 1 >96aefe19e080f2230214aed2e7a663a0 >echo x - emulators/libretro-pcsx2/files/patch-common_include_Utilities_General.h >sed 's/^X//' >emulators/libretro-pcsx2/files/patch-common_include_Utilities_General.h << '633a13b84dbf5f5a3b931176d89c3957' >X--- common/include/Utilities/General.h.orig 2020-10-29 23:31:05 UTC >X+++ common/include/Utilities/General.h >X@@ -257,7 +257,7 @@ void MemProtectStatic(u8 (&arr)[size], const PageProte >X >X // Safe version of Munmap -- NULLs the pointer variable immediately after free'ing it. >X #define SafeSysMunmap(ptr, size) \ >X- ((void)(HostSys::Munmap((uptr)(ptr), size), (ptr) = NULL)) >X+ ((void)(HostSys::Munmap((uptr)(ptr), size), (ptr) = 0)) >X >X extern void InitCPUTicks(); >X extern u64 GetTickFrequency(); >633a13b84dbf5f5a3b931176d89c3957 >echo x - emulators/libretro-pcsx2/files/patch-pcsx2_SPU2_spu2.cpp >sed 's/^X//' >emulators/libretro-pcsx2/files/patch-pcsx2_SPU2_spu2.cpp << 'aa4d3727ce731ec334a116648d032d6b' >X--- pcsx2/SPU2/spu2.cpp.orig 2020-10-29 23:31:05 UTC >X+++ pcsx2/SPU2/spu2.cpp >X@@ -17,7 +17,10 @@ >X #include "Global.h" >X #include "spu2.h" >X #include "Dma.h" >X-#ifdef __linux__ >X+#ifdef __BSD__ >X+#include "Linux/Dialogs.h" >X+#include "Linux/Config.h" >X+#elif defined(__linux__) >X #include "Linux/Dialogs.h" >X #include "Linux/Config.h" >X #elif defined(_WIN32) >aa4d3727ce731ec334a116648d032d6b >exit >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 252191
:
220984
|
233991