├── .clang-format ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── 3rdparty ├── 3rdparty.props ├── DefaultProjectRootDir.props ├── GL │ ├── glcorearb.h │ └── glext.h ├── libchdr │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── README.md │ ├── deps │ │ └── lzma-19.00 │ │ │ ├── CMakeLists.txt │ │ │ ├── LICENSE │ │ │ ├── include │ │ │ ├── 7zTypes.h │ │ │ ├── Alloc.h │ │ │ ├── Bra.h │ │ │ ├── Compiler.h │ │ │ ├── CpuArch.h │ │ │ ├── Delta.h │ │ │ ├── LzFind.h │ │ │ ├── LzHash.h │ │ │ ├── Lzma86.h │ │ │ ├── LzmaDec.h │ │ │ ├── LzmaEnc.h │ │ │ ├── LzmaLib.h │ │ │ ├── Precomp.h │ │ │ └── Sort.h │ │ │ ├── lzma-history.txt │ │ │ ├── lzma.txt │ │ │ ├── lzma.vcxproj │ │ │ ├── lzma.vcxproj.filters │ │ │ └── src │ │ │ ├── Alloc.c │ │ │ ├── Bra86.c │ │ │ ├── BraIA64.c │ │ │ ├── CpuArch.c │ │ │ ├── Delta.c │ │ │ ├── LzFind.c │ │ │ ├── Lzma86Dec.c │ │ │ ├── LzmaDec.c │ │ │ ├── LzmaEnc.c │ │ │ └── Sort.c │ ├── include │ │ ├── dr_libs │ │ │ └── dr_flac.h │ │ └── libchdr │ │ │ ├── bitstream.h │ │ │ ├── cdrom.h │ │ │ ├── chd.h │ │ │ ├── chdconfig.h │ │ │ ├── coretypes.h │ │ │ ├── flac.h │ │ │ └── huffman.h │ ├── pkg-config.pc.in │ └── src │ │ ├── libchdr_bitstream.c │ │ ├── libchdr_cdrom.c │ │ ├── libchdr_chd.c │ │ ├── libchdr_flac.c │ │ ├── libchdr_huffman.c │ │ └── link.T ├── libjpeg │ ├── README │ ├── change.log │ ├── filelist.txt │ ├── jaricom.c │ ├── jcapimin.c │ ├── jcapistd.c │ ├── jcarith.c │ ├── jccoefct.c │ ├── jccolor.c │ ├── jcdctmgr.c │ ├── jchuff.c │ ├── jcinit.c │ ├── jcmainct.c │ ├── jcmarker.c │ ├── jcmaster.c │ ├── jcomapi.c │ ├── jconfig.h │ ├── jcparam.c │ ├── jcprepct.c │ ├── jcsample.c │ ├── jctrans.c │ ├── jdapimin.c │ ├── jdapistd.c │ ├── jdarith.c │ ├── jdatadst.c │ ├── jdatasrc.c │ ├── jdcoefct.c │ ├── jdcolor.c │ ├── jdct.h │ ├── jddctmgr.c │ ├── jdhuff.c │ ├── jdinput.c │ ├── jdmainct.c │ ├── jdmarker.c │ ├── jdmaster.c │ ├── jdmerge.c │ ├── jdpostct.c │ ├── jdsample.c │ ├── jdtrans.c │ ├── jerror.c │ ├── jerror.h │ ├── jfdctflt.c │ ├── jfdctfst.c │ ├── jfdctint.c │ ├── jidctflt.c │ ├── jidctfst.c │ ├── jidctint.c │ ├── jinclude.h │ ├── jmemansi.c │ ├── jmemmac.c │ ├── jmemmgr.c │ ├── jmemname.c │ ├── jmemnobs.c │ ├── jmemsys.h │ ├── jmorecfg.h │ ├── jpegint.h │ ├── jpeglib.h │ ├── jquant1.c │ ├── jquant2.c │ ├── jutils.c │ ├── jversion.h │ ├── libjpeg.vcxproj │ └── libjpeg.vcxproj.filters ├── libpng │ ├── ANNOUNCE │ ├── CHANGES │ ├── CMakeLists.txt │ ├── INSTALL │ ├── LICENSE │ ├── README │ ├── TODO │ ├── configure │ ├── libpng-config.in │ ├── libpng.pc.in │ ├── libpngpf.3 │ ├── png.5 │ ├── png.c │ ├── png.h │ ├── pngbar.jpg │ ├── pngbar.png │ ├── pngconf.h │ ├── pngdebug.h │ ├── pngerror.c │ ├── pngget.c │ ├── pnginfo.h │ ├── pnglibconf.h │ ├── pngmem.c │ ├── pngnow.png │ ├── pngpread.c │ ├── pngpriv.h │ ├── pngread.c │ ├── pngrio.c │ ├── pngrtran.c │ ├── pngrutil.c │ ├── pngset.c │ ├── pngstruct.h │ ├── pngtest.c │ ├── pngtest.png │ ├── pngtrans.c │ ├── pngwio.c │ ├── pngwrite.c │ ├── pngwtran.c │ ├── pngwutil.c │ └── scripts │ │ ├── README.txt │ │ ├── SCOPTIONS.ppc │ │ ├── checksym.awk │ │ ├── def.c │ │ ├── descrip.mms │ │ ├── dfn.awk │ │ ├── intprefix.c │ │ ├── libpng-config-body.in │ │ ├── libpng-config-head.in │ │ ├── libpng.pc.in │ │ ├── macro.lst │ │ ├── makefile.32sunu │ │ ├── makefile.64sunu │ │ ├── makefile.acorn │ │ ├── makefile.aix │ │ ├── makefile.amiga │ │ ├── makefile.atari │ │ ├── makefile.bc32 │ │ ├── makefile.beos │ │ ├── makefile.bor │ │ ├── makefile.cegcc │ │ ├── makefile.darwin │ │ ├── makefile.dec │ │ ├── makefile.dj2 │ │ ├── makefile.freebsd │ │ ├── makefile.gcc │ │ ├── makefile.hp64 │ │ ├── makefile.hpgcc │ │ ├── makefile.hpux │ │ ├── makefile.ibmc │ │ ├── makefile.intel │ │ ├── makefile.knr │ │ ├── makefile.linux │ │ ├── makefile.mips │ │ ├── makefile.msc │ │ ├── makefile.msys │ │ ├── makefile.ne12bsd │ │ ├── makefile.netbsd │ │ ├── makefile.openbsd │ │ ├── makefile.sco │ │ ├── makefile.sggcc │ │ ├── makefile.sgi │ │ ├── makefile.so9 │ │ ├── makefile.solaris │ │ ├── makefile.solaris-x86 │ │ ├── makefile.std │ │ ├── makefile.sunos │ │ ├── makefile.tc3 │ │ ├── makefile.vcwin32 │ │ ├── makevms.com │ │ ├── options.awk │ │ ├── pnglibconf.dfa │ │ ├── pnglibconf.mak │ │ ├── pngwin.rc │ │ ├── prefix.c │ │ ├── smakefile.ppc │ │ ├── sym.c │ │ ├── symbols.c │ │ ├── symbols.def │ │ └── vers.c ├── pthreads4w │ ├── CMakeLists.txt │ ├── COPYING │ ├── Nmakefile │ ├── attr.c │ ├── autostatic.c │ ├── cancel.c │ ├── cleanup.c │ ├── config.h │ ├── context.h │ ├── create.c │ ├── exit.c │ ├── global.c │ ├── implement.h │ ├── include │ │ ├── pthread.h │ │ ├── sched.h │ │ └── semaphore.h │ ├── misc.c │ ├── mutex.c │ ├── nonportable.c │ ├── private.c │ ├── pthread.c │ ├── pthread_attr_destroy.c │ ├── pthread_attr_init.c │ ├── pthread_cancel.c │ ├── pthread_detach.c │ ├── pthread_equal.c │ ├── pthread_exit.c │ ├── pthread_getspecific.c │ ├── pthread_key_create.c │ ├── pthread_key_delete.c │ ├── pthread_kill.c │ ├── pthread_mutex_consistent.c │ ├── pthread_mutex_destroy.c │ ├── pthread_mutex_init.c │ ├── pthread_mutex_lock.c │ ├── pthread_mutex_timedlock.c │ ├── pthread_mutex_trylock.c │ ├── pthread_mutex_unlock.c │ ├── pthread_mutexattr_destroy.c │ ├── pthread_mutexattr_init.c │ ├── pthread_mutexattr_settype.c │ ├── pthread_once.c │ ├── pthread_self.c │ ├── pthread_setcancelstate.c │ ├── pthread_setschedparam.c │ ├── pthread_setspecific.c │ ├── pthread_testcancel.c │ ├── pthread_win32_attach_detach_np.c │ ├── ptw32_MCS_lock.c │ ├── ptw32_callUserDestroyRoutines.c │ ├── ptw32_is_attr.c │ ├── ptw32_mutex_check_need_init.c │ ├── ptw32_new.c │ ├── ptw32_processInitialize.c │ ├── ptw32_processTerminate.c │ ├── ptw32_relmillisecs.c │ ├── ptw32_reuse.c │ ├── ptw32_semwait.c │ ├── ptw32_threadDestroy.c │ ├── ptw32_threadStart.c │ ├── ptw32_throw.c │ ├── ptw32_timespec.c │ ├── ptw32_tkAssocCreate.c │ ├── ptw32_tkAssocDestroy.c │ ├── sched.c │ ├── sched_get_priority_max.c │ ├── sched_get_priority_min.c │ ├── sem_destroy.c │ ├── sem_getvalue.c │ ├── sem_init.c │ ├── sem_post.c │ ├── sem_post_multiple.c │ ├── sem_timedwait.c │ ├── sem_wait.c │ ├── semaphore.c │ ├── sync.c │ ├── tsd.c │ └── w32_CancelableWait.c ├── svn_readme.txt ├── wxwidgets3.0 │ ├── .travis.yml │ ├── CMakeLists.txt │ ├── UsewxWidgets.cmake │ ├── include │ │ ├── msvc │ │ │ └── wx │ │ │ │ └── setup.h │ │ ├── nogui │ │ │ └── wx │ │ │ │ └── setup.h │ │ └── wx │ │ │ ├── afterstd.h │ │ │ ├── anystr.h │ │ │ ├── app.h │ │ │ ├── apptrait.h │ │ │ ├── arrimpl.cpp │ │ │ ├── arrstr.h │ │ │ ├── atomic.h │ │ │ ├── beforestd.h │ │ │ ├── buffer.h │ │ │ ├── build.h │ │ │ ├── chartype.h │ │ │ ├── checkeddelete.h │ │ │ ├── chkconf.h │ │ │ ├── compiler.h │ │ │ ├── confbase.h │ │ │ ├── config.h │ │ │ ├── convauto.h │ │ │ ├── cpp.h │ │ │ ├── crt.h │ │ │ ├── datetime.h │ │ │ ├── debug.h │ │ │ ├── defs.h │ │ │ ├── dir.h │ │ │ ├── dlimpexp.h │ │ │ ├── dynarray.h │ │ │ ├── event.h │ │ │ ├── eventfilter.h │ │ │ ├── evtloop.h │ │ │ ├── evtloopsrc.h │ │ │ ├── ffile.h │ │ │ ├── file.h │ │ │ ├── filefn.h │ │ │ ├── filename.h │ │ │ ├── flags.h │ │ │ ├── fontenc.h │ │ │ ├── gdicmn.h │ │ │ ├── hash.h │ │ │ ├── hashmap.h │ │ │ ├── init.h │ │ │ ├── iosfwrap.h │ │ │ ├── ioswrap.h │ │ │ ├── list.h │ │ │ ├── listimpl.cpp │ │ │ ├── longlong.h │ │ │ ├── math.h │ │ │ ├── memory.h │ │ │ ├── meta │ │ │ ├── if.h │ │ │ ├── implicitconversion.h │ │ │ ├── movable.h │ │ │ └── pod.h │ │ │ ├── module.h │ │ │ ├── mstream.h │ │ │ ├── msw │ │ │ ├── app.h │ │ │ ├── chkconf.h │ │ │ ├── evtloop.h │ │ │ ├── evtloopconsole.h │ │ │ ├── gccpriv.h │ │ │ ├── genrcdefs.h │ │ │ ├── init.h │ │ │ ├── missing.h │ │ │ ├── private.h │ │ │ ├── setup.h │ │ │ ├── tls.h │ │ │ ├── winundef.h │ │ │ ├── wrapcctl.h │ │ │ ├── wrapcdlg.h │ │ │ ├── wrapshl.h │ │ │ └── wrapwin.h │ │ │ ├── object.h │ │ │ ├── platform.h │ │ │ ├── private │ │ │ ├── eventloopsourcesmanager.h │ │ │ ├── fd.h │ │ │ ├── fdiodispatcher.h │ │ │ ├── fdioeventloopsourcehandler.h │ │ │ ├── fdiohandler.h │ │ │ ├── fdiomanager.h │ │ │ ├── filename.h │ │ │ ├── selectdispatcher.h │ │ │ ├── threadinfo.h │ │ │ └── wxprintf.h │ │ │ ├── rtti.h │ │ │ ├── scopedarray.h │ │ │ ├── scopedptr.h │ │ │ ├── scopeguard.h │ │ │ ├── setup_inc.h │ │ │ ├── setup_redirect.h │ │ │ ├── sharedptr.h │ │ │ ├── stdstream.h │ │ │ ├── strconv.h │ │ │ ├── stream.h │ │ │ ├── string.h │ │ │ ├── stringimpl.h │ │ │ ├── stringops.h │ │ │ ├── strvararg.h │ │ │ ├── textbuf.h │ │ │ ├── textfile.h │ │ │ ├── thread.h │ │ │ ├── thrimpl.cpp │ │ │ ├── time.h │ │ │ ├── tls.h │ │ │ ├── tokenzr.h │ │ │ ├── tracker.h │ │ │ ├── txtstrm.h │ │ │ ├── typeinfo.h │ │ │ ├── types.h │ │ │ ├── unichar.h │ │ │ ├── unix │ │ │ ├── app.h │ │ │ ├── apptbase.h │ │ │ ├── chkconf.h │ │ │ ├── evtloop.h │ │ │ ├── evtloopsrc.h │ │ │ ├── pipe.h │ │ │ ├── private.h │ │ │ ├── private │ │ │ │ ├── epolldispatcher.h │ │ │ │ ├── fdiounix.h │ │ │ │ ├── fswatcher_kqueue.h │ │ │ │ └── wakeuppipe.h │ │ │ └── tls.h │ │ │ ├── utils.h │ │ │ ├── vector.h │ │ │ ├── version.h │ │ │ ├── wfstream.h │ │ │ ├── wx.h │ │ │ ├── wxcrt.h │ │ │ ├── wxcrtbase.h │ │ │ ├── wxcrtvararg.h │ │ │ └── wxprec.h │ └── src │ │ ├── common │ │ ├── appbase.cpp │ │ ├── arrstr.cpp │ │ ├── config.cpp │ │ ├── convauto.cpp │ │ ├── datetime.cpp │ │ ├── datetimefmt.cpp │ │ ├── dircmn.cpp │ │ ├── dynarray.cpp │ │ ├── event.cpp │ │ ├── evtloopcmn.cpp │ │ ├── fdiodispatcher.cpp │ │ ├── ffile.cpp │ │ ├── file.cpp │ │ ├── filefn.cpp │ │ ├── filename.cpp │ │ ├── hash.cpp │ │ ├── hashmap.cpp │ │ ├── init.cpp │ │ ├── list.cpp │ │ ├── longlong.cpp │ │ ├── module.cpp │ │ ├── mstream.cpp │ │ ├── object.cpp │ │ ├── selectdispatcher.cpp │ │ ├── strconv.cpp │ │ ├── stream.cpp │ │ ├── string.cpp │ │ ├── stringimpl.cpp │ │ ├── strvararg.cpp │ │ ├── textbuf.cpp │ │ ├── textfile.cpp │ │ ├── threadinfo.cpp │ │ ├── time.cpp │ │ ├── tokenzr.cpp │ │ ├── txtstrm.cpp │ │ ├── unichar.cpp │ │ ├── unictabl.inc │ │ ├── utilscmn.cpp │ │ ├── wfstream.cpp │ │ └── wxcrt.cpp │ │ ├── msw │ │ ├── dir.cpp │ │ ├── evtloopconsole.cpp │ │ ├── main.cpp │ │ ├── thread.cpp │ │ └── utils.cpp │ │ └── unix │ │ ├── appunix.cpp │ │ ├── dir.cpp │ │ ├── epolldispatcher.cpp │ │ ├── evtloopunix.cpp │ │ ├── threadpsx.cpp │ │ ├── utilsunx.cpp │ │ └── wakeuppipe.cpp ├── xz │ ├── CMakeLists.txt │ ├── config.h │ └── liblzma.vcxproj ├── yaml-cpp │ ├── .clang-format │ ├── .codedocs │ ├── .gitignore │ ├── .travis.yml │ ├── BUILD.bazel │ ├── CMakeLists.txt │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── WORKSPACE │ ├── appveyor.yml │ ├── include │ │ └── yaml-cpp │ │ │ ├── anchor.h │ │ │ ├── binary.h │ │ │ ├── contrib │ │ │ ├── anchordict.h │ │ │ └── graphbuilder.h │ │ │ ├── depthguard.h │ │ │ ├── dll.h │ │ │ ├── emitfromevents.h │ │ │ ├── emitter.h │ │ │ ├── emitterdef.h │ │ │ ├── emittermanip.h │ │ │ ├── emitterstyle.h │ │ │ ├── eventhandler.h │ │ │ ├── exceptions.h │ │ │ ├── mark.h │ │ │ ├── node │ │ │ ├── convert.h │ │ │ ├── detail │ │ │ │ ├── impl.h │ │ │ │ ├── iterator.h │ │ │ │ ├── iterator_fwd.h │ │ │ │ ├── memory.h │ │ │ │ ├── node.h │ │ │ │ ├── node_data.h │ │ │ │ ├── node_iterator.h │ │ │ │ └── node_ref.h │ │ │ ├── emit.h │ │ │ ├── impl.h │ │ │ ├── iterator.h │ │ │ ├── node.h │ │ │ ├── parse.h │ │ │ ├── ptr.h │ │ │ └── type.h │ │ │ ├── noexcept.h │ │ │ ├── null.h │ │ │ ├── ostream_wrapper.h │ │ │ ├── parser.h │ │ │ ├── stlemitter.h │ │ │ ├── traits.h │ │ │ └── yaml.h │ ├── install.txt │ ├── src │ │ ├── binary.cpp │ │ ├── collectionstack.h │ │ ├── convert.cpp │ │ ├── depthguard.cpp │ │ ├── directives.cpp │ │ ├── directives.h │ │ ├── emit.cpp │ │ ├── emitfromevents.cpp │ │ ├── emitter.cpp │ │ ├── emitterstate.cpp │ │ ├── emitterstate.h │ │ ├── emitterutils.cpp │ │ ├── emitterutils.h │ │ ├── exceptions.cpp │ │ ├── exp.cpp │ │ ├── exp.h │ │ ├── indentation.h │ │ ├── memory.cpp │ │ ├── node.cpp │ │ ├── node_data.cpp │ │ ├── nodebuilder.cpp │ │ ├── nodebuilder.h │ │ ├── nodeevents.cpp │ │ ├── nodeevents.h │ │ ├── null.cpp │ │ ├── ostream_wrapper.cpp │ │ ├── parse.cpp │ │ ├── parser.cpp │ │ ├── ptr_vector.h │ │ ├── regex_yaml.cpp │ │ ├── regex_yaml.h │ │ ├── regeximpl.h │ │ ├── scanner.cpp │ │ ├── scanner.h │ │ ├── scanscalar.cpp │ │ ├── scanscalar.h │ │ ├── scantag.cpp │ │ ├── scantag.h │ │ ├── scantoken.cpp │ │ ├── setting.h │ │ ├── simplekey.cpp │ │ ├── singledocparser.cpp │ │ ├── singledocparser.h │ │ ├── stream.cpp │ │ ├── stream.h │ │ ├── streamcharsource.h │ │ ├── stringsource.h │ │ ├── tag.cpp │ │ ├── tag.h │ │ └── token.h │ ├── yaml-cpp-config.cmake.in │ └── yaml-cpp.pc.in └── zlib │ ├── CMakeLists.txt │ ├── ChangeLog │ ├── FAQ │ ├── README │ ├── adler32.c │ ├── compress.c │ ├── crc32.c │ ├── crc32.h │ ├── deflate.c │ ├── deflate.h │ ├── gzclose.c │ ├── gzguts.h │ ├── gzlib.c │ ├── gzread.c │ ├── gzwrite.c │ ├── infback.c │ ├── inffast.c │ ├── inffast.h │ ├── inffixed.h │ ├── inflate.c │ ├── inflate.h │ ├── inftrees.c │ ├── inftrees.h │ ├── trees.c │ ├── trees.h │ ├── uncompr.c │ ├── zconf.h │ ├── zlib.h │ ├── zlib.vcxproj │ ├── zlib.vcxproj.filters │ ├── zutil.c │ └── zutil.h ├── CMakeLists.txt ├── COPYING.GPLv2 ├── COPYING.GPLv3 ├── COPYING.LGPLv2.1 ├── COPYING.LGPLv3 ├── README.md ├── cmake ├── ApiValidation.cmake ├── BuildParameters.cmake ├── CheckLib.cmake ├── FindLibc.cmake ├── FindPCAP.cmake ├── Pcsx2Utils.cmake ├── SearchForStuff.cmake ├── SelectPcsx2Plugins.cmake ├── TargetArch.cmake ├── darwin-compiler-i386-clang.cmake ├── darwin-compiler-i386-generic.cmake ├── darwin13-compiler-i386-clang.cmake ├── linux-compiler-i386-multilib.cmake └── macros │ ├── BuildTargetScript.cmake │ └── GenerateGXML.cmake ├── common ├── include │ ├── Pcsx2Defs.h │ ├── Pcsx2Types.h │ ├── Utilities │ │ ├── AppTrait.h │ │ ├── Dependencies.h │ │ ├── EventSource.h │ │ ├── EventSource.inl │ │ ├── Exceptions.h │ │ ├── FastJmp.h │ │ ├── FixedPointTypes.h │ │ ├── FixedPointTypes.inl │ │ ├── General.h │ │ ├── MathUtils.h │ │ ├── MemcpyFast.h │ │ ├── MemsetFast.inl │ │ ├── PageFaultSource.h │ │ ├── Path.h │ │ ├── RedtapeWindows.h │ │ ├── SafeArray.h │ │ ├── SafeArray.inl │ │ ├── ScopedAlloc.h │ │ ├── StringHelpers.h │ │ ├── Threading.h │ │ ├── boost_spsc_queue.hpp │ │ ├── pxForwardDefs.h │ │ └── pxStreams.h │ └── x86emitter │ │ ├── implement │ │ ├── dwshift.h │ │ ├── group1.h │ │ ├── group2.h │ │ ├── group3.h │ │ ├── helpers.h │ │ ├── incdec.h │ │ ├── jmpcall.h │ │ ├── movs.h │ │ ├── simd_arithmetic.h │ │ ├── simd_comparisons.h │ │ ├── simd_helpers.h │ │ ├── simd_moremovs.h │ │ ├── simd_shufflepack.h │ │ ├── simd_templated_helpers.h │ │ ├── test.h │ │ └── xchg.h │ │ ├── instructions.h │ │ ├── internal.h │ │ ├── legacy_instructions.h │ │ ├── legacy_internal.h │ │ ├── legacy_types.h │ │ ├── tools.h │ │ ├── x86_intrin.h │ │ ├── x86emitter.h │ │ └── x86types.h └── src │ ├── Utilities │ ├── AlignedMalloc.cpp │ ├── CMakeLists.txt │ ├── Exceptions.cpp │ ├── FastFormatString.cpp │ ├── FastJmp.asm │ ├── FastJmp.cpp │ ├── HostSys.cpp │ ├── Mutex.cpp │ ├── PathUtils.cpp │ ├── Semaphore.cpp │ ├── StringHelpers.cpp │ ├── VirtualMemory.cpp │ └── pxStreams.cpp │ └── x86emitter │ ├── CMakeLists.txt │ ├── cpudetect.cpp │ ├── groups.cpp │ ├── jmp.cpp │ ├── legacy.cpp │ ├── legacy_sse.cpp │ ├── movs.cpp │ ├── simd.cpp │ └── x86emitter.cpp ├── docs └── Configuration_Guide.pdf ├── libretro ├── CMakeLists.txt ├── disk_control.h ├── input.h ├── language_injector.cpp ├── language_injector.h ├── libretro.h ├── libretro_core_options.h ├── libretro_core_options_intl.h ├── libretro_d3d.h ├── main.cpp ├── memcard_retro.h ├── options_enums.h ├── options_tools.h ├── retro_inline.h ├── retro_messager.cpp └── retro_messager.h ├── pcsx2 ├── AsyncFileReader.h ├── CDVD │ ├── BlockdumpFileReader.cpp │ ├── CDVD.cpp │ ├── CDVD.h │ ├── CDVD_internal.h │ ├── CDVDaccess.cpp │ ├── CDVDaccess.h │ ├── CDVDdiscReader.cpp │ ├── CDVDdiscReader.h │ ├── CDVDdiscThread.cpp │ ├── CDVDisoReader.cpp │ ├── CdRom.cpp │ ├── CdRom.h │ ├── ChdFileReader.cpp │ ├── ChdFileReader.h │ ├── ChunksCache.cpp │ ├── ChunksCache.h │ ├── CompressedFileReader.cpp │ ├── CompressedFileReader.h │ ├── CompressedFileReaderUtils.h │ ├── CsoFileReader.cpp │ ├── CsoFileReader.h │ ├── DriveUtility.cpp │ ├── GzippedFileReader.cpp │ ├── GzippedFileReader.h │ ├── IOCtlSrc.cpp │ ├── InputIsoFile.cpp │ ├── IsoFS │ │ ├── IsoDirectory.h │ │ ├── IsoFS.cpp │ │ ├── IsoFS.h │ │ ├── IsoFSCDVD.cpp │ │ ├── IsoFSCDVD.h │ │ ├── IsoFile.cpp │ │ ├── IsoFile.h │ │ ├── IsoFileDescriptor.h │ │ └── SectorSource.h │ ├── IsoFileFormats.h │ └── zlib_indexed.h ├── CMakeLists.txt ├── COP0.cpp ├── COP0.h ├── COP2.cpp ├── Cache.cpp ├── Cache.h ├── Common.h ├── Config.h ├── Counters.cpp ├── Counters.h ├── DEV9 │ ├── DEV9.cpp │ ├── DEV9.h │ └── ReadMe.txt ├── DebugTools │ ├── DebugInterface.cpp │ ├── DebugInterface.h │ ├── MIPSAnalyst.cpp │ ├── MIPSAnalyst.h │ ├── SymbolMap.cpp │ └── SymbolMap.h ├── Dmac.cpp ├── Dmac.h ├── Docs │ ├── !How_To_Update_Docs.txt │ ├── Configuration_Guide │ │ ├── Configuration_Guide.md │ │ ├── PCSX2_First_Time_Configuration.png │ │ ├── PCSX2_First_Time_Configuration_bios.png │ │ └── PCSX2_First_Time_Configuration_plugins.png │ ├── GPL.txt │ ├── GameIndex.md │ ├── License.txt │ └── PCSX2_FAQ.md ├── Elfheader.cpp ├── Elfheader.h ├── FPU.cpp ├── FW.cpp ├── FW.h ├── FiFo.cpp ├── FlatFileReader.cpp ├── GS.cpp ├── GS.h ├── GS │ ├── GS.cpp │ ├── GS.h │ ├── GSAlignedClass.h │ ├── GSBlock.cpp │ ├── GSBlock.h │ ├── GSClut.cpp │ ├── GSClut.h │ ├── GSCodeBuffer.cpp │ ├── GSCodeBuffer.h │ ├── GSCrc.cpp │ ├── GSCrc.h │ ├── GSDrawingContext.cpp │ ├── GSDrawingContext.h │ ├── GSDrawingEnvironment.h │ ├── GSFuncs.h │ ├── GSLocalMemory.cpp │ ├── GSLocalMemory.h │ ├── GSState.cpp │ ├── GSState.h │ ├── GSTables.cpp │ ├── GSTables.h │ ├── GSUtil.cpp │ ├── GSUtil.h │ ├── GSVector.cpp │ ├── GSVector.h │ ├── Renderers │ │ ├── Common │ │ │ ├── GSCodeGenerator.h │ │ │ ├── GSDevice.cpp │ │ │ ├── GSDevice.h │ │ │ ├── GSDirtyRect.cpp │ │ │ ├── GSDirtyRect.h │ │ │ ├── GSFastList.h │ │ │ ├── GSFunctionMap.h │ │ │ ├── GSRenderer.cpp │ │ │ ├── GSRenderer.h │ │ │ ├── GSTexture.cpp │ │ │ ├── GSTexture.h │ │ │ ├── GSVertex.h │ │ │ ├── GSVertexTrace.cpp │ │ │ ├── GSVertexTrace.h │ │ │ └── fxaa_shader.h │ │ ├── DX11 │ │ │ ├── GSDevice11.cpp │ │ │ ├── GSDevice11.h │ │ │ ├── GSRendererDX11.cpp │ │ │ ├── GSRendererDX11.h │ │ │ ├── GSTexture11.cpp │ │ │ ├── GSTexture11.h │ │ │ ├── GSTextureCache11.cpp │ │ │ ├── GSTextureCache11.h │ │ │ └── GSTextureFX11.cpp │ │ ├── HW │ │ │ ├── GSHwHack.cpp │ │ │ ├── GSRendererHW.cpp │ │ │ ├── GSRendererHW.h │ │ │ ├── GSTextureCache.cpp │ │ │ ├── GSTextureCache.h │ │ │ └── GSVertexHW.h │ │ ├── OpenGL │ │ │ ├── GLLoader.cpp │ │ │ ├── GLLoader.h │ │ │ ├── GLState.cpp │ │ │ ├── GLState.h │ │ │ ├── GSDeviceOGL.cpp │ │ │ ├── GSDeviceOGL.h │ │ │ ├── GSRendererOGL.cpp │ │ │ ├── GSRendererOGL.h │ │ │ ├── GSShaderOGL.cpp │ │ │ ├── GSShaderOGL.h │ │ │ ├── GSTextureCacheOGL.cpp │ │ │ ├── GSTextureCacheOGL.h │ │ │ ├── GSTextureOGL.cpp │ │ │ ├── GSTextureOGL.h │ │ │ ├── GSUniformBufferOGL.h │ │ │ ├── GSVertexArrayOGL.h │ │ │ ├── PFN_GLLOADER_CPP.h │ │ │ ├── PFN_GLLOADER_HPP.h │ │ │ └── glext_extra.h │ │ └── SW │ │ │ ├── GSDrawScanline.cpp │ │ │ ├── GSDrawScanline.h │ │ │ ├── GSDrawScanlineCodeGenerator.cpp │ │ │ ├── GSDrawScanlineCodeGenerator.h │ │ │ ├── GSDrawScanlineCodeGenerator.x64.avx.cpp │ │ │ ├── GSDrawScanlineCodeGenerator.x64.avx2.cpp │ │ │ ├── GSDrawScanlineCodeGenerator.x64.cpp │ │ │ ├── GSDrawScanlineCodeGenerator.x86.avx.cpp │ │ │ ├── GSDrawScanlineCodeGenerator.x86.avx2.cpp │ │ │ ├── GSDrawScanlineCodeGenerator.x86.cpp │ │ │ ├── GSRasterizer.cpp │ │ │ ├── GSRasterizer.h │ │ │ ├── GSRendererSW.cpp │ │ │ ├── GSRendererSW.h │ │ │ ├── GSScanlineEnvironment.h │ │ │ ├── GSSetupPrimCodeGenerator.cpp │ │ │ ├── GSSetupPrimCodeGenerator.h │ │ │ ├── GSSetupPrimCodeGenerator.x64.avx.cpp │ │ │ ├── GSSetupPrimCodeGenerator.x64.avx2.cpp │ │ │ ├── GSSetupPrimCodeGenerator.x64.cpp │ │ │ ├── GSSetupPrimCodeGenerator.x86.avx.cpp │ │ │ ├── GSSetupPrimCodeGenerator.x86.avx2.cpp │ │ │ ├── GSSetupPrimCodeGenerator.x86.cpp │ │ │ ├── GSTextureCacheSW.cpp │ │ │ ├── GSTextureCacheSW.h │ │ │ ├── GSTextureSW.cpp │ │ │ ├── GSTextureSW.h │ │ │ ├── GSVertexSW.cpp │ │ │ └── GSVertexSW.h │ ├── stdafx.h │ └── xbyak │ │ ├── xbyak.h │ │ ├── xbyak_mnemonic.h │ │ └── xbyak_util.h ├── GameDatabase.cpp ├── GameDatabase.h ├── Gif.cpp ├── Gif.h ├── GifTypes.h ├── Gif_Unit.cpp ├── Gif_Unit.h ├── Hw.cpp ├── Hw.h ├── HwRead.cpp ├── HwWrite.cpp ├── IPU │ ├── IPU.cpp │ ├── IPU.h │ ├── IPU_Fifo.cpp │ ├── IPU_Fifo.h │ ├── IPUdither.cpp │ ├── IPUdma.cpp │ ├── IPUdma.h │ └── mpeg2lib │ │ ├── Idct.cpp │ │ ├── Mpeg.cpp │ │ └── Mpeg.h ├── Interpreter.cpp ├── IopBios.cpp ├── IopBios.h ├── IopCounters.cpp ├── IopCounters.h ├── IopDma.cpp ├── IopDma.h ├── IopGte.cpp ├── IopGte.h ├── IopHw.cpp ├── IopHw.h ├── IopIrq.cpp ├── IopMem.cpp ├── IopMem.h ├── IopModuleNames.cpp ├── IopSio2.cpp ├── IopSio2.h ├── MMI.cpp ├── MTGS.cpp ├── MTVU.cpp ├── MTVU.h ├── Mdec.cpp ├── Mdec.h ├── Memory.cpp ├── Memory.h ├── MemoryPatchDatabase.cpp ├── MemoryPatchDatabase.h ├── MemoryTypes.h ├── MultipartFileReader.cpp ├── PAD │ ├── PAD.cpp │ └── PAD.h ├── Patch.cpp ├── Patch.h ├── Patch_Memory.cpp ├── PathDefs.h ├── Pcsx2Config.cpp ├── R3000A.cpp ├── R3000A.h ├── R3000AInterpreter.cpp ├── R3000AOpcodeTables.cpp ├── R5900.cpp ├── R5900.h ├── R5900Exceptions.h ├── R5900OpcodeImpl.cpp ├── R5900OpcodeTables.cpp ├── R5900OpcodeTables.h ├── Reference │ └── PS2-MemoryCardFileSystem.htm ├── SPR.cpp ├── SPR.h ├── SPU2 │ ├── ADSR.cpp │ ├── Dma.cpp │ ├── DplIIdecoder.cpp │ ├── Global.h │ ├── Mixer.cpp │ ├── Mixer.h │ ├── ReadInput.cpp │ ├── RegTable.cpp │ ├── Reverb.cpp │ ├── defs.h │ ├── regs.h │ ├── spu2.cpp │ ├── spu2.h │ ├── spu2freeze.cpp │ └── spu2sys.cpp ├── SaveState.cpp ├── SaveState.h ├── Sif.cpp ├── Sif.h ├── Sif0.cpp ├── Sif1.cpp ├── Sio.cpp ├── Sio.h ├── System.cpp ├── System.h ├── System │ └── RecTypes.h ├── USB │ ├── License.txt │ ├── USB.cpp │ └── USB.h ├── VU.h ├── VU0.cpp ├── VU0micro.cpp ├── VU0microInterp.cpp ├── VU1micro.cpp ├── VU1microInterp.cpp ├── VUflags.h ├── VUmicro.cpp ├── VUmicro.h ├── VUmicroMem.cpp ├── VUops.cpp ├── VUops.h ├── Vif.cpp ├── Vif.h ├── Vif0_Dma.cpp ├── Vif1_Dma.cpp ├── Vif1_MFIFO.cpp ├── Vif_Codes.cpp ├── Vif_Dma.h ├── Vif_Transfer.cpp ├── Vif_Unpack.cpp ├── Vif_Unpack.h ├── gui │ ├── App.h │ ├── AppConfig.cpp │ ├── AppConfig.h │ ├── AppCoreThread.cpp │ ├── AppCoreThread.h │ ├── AppEventListeners.h │ ├── AppEventSources.cpp │ ├── AppGameDatabase.cpp │ ├── AppGameDatabase.h │ ├── AppInit.cpp │ ├── AppMain.cpp │ ├── AppRes.cpp │ ├── MemoryCardFile.cpp │ ├── MemoryCardFile.h │ ├── PersistentThread.h │ ├── SysCoreThread.cpp │ ├── SysFakeThread.cpp │ ├── SysThreadBase.cpp │ ├── SysThreads.h │ ├── ThreadTools.cpp │ ├── pxEvents.h │ ├── wxAppWithHelpers.cpp │ └── wxAppWithHelpers.h ├── ps2 │ ├── BiosTools.cpp │ ├── BiosTools.h │ ├── HwInternal.h │ ├── Iop │ │ ├── IopHwRead.cpp │ │ ├── IopHwWrite.cpp │ │ ├── IopHw_Internal.h │ │ └── PsxBios.cpp │ ├── pgif.cpp │ └── pgif.h ├── sif2.cpp ├── sio_internal.h ├── vtlb.cpp ├── vtlb.h ├── windows │ └── WinCompressNTFS.cpp └── x86 │ ├── BaseblockEx.cpp │ ├── BaseblockEx.h │ ├── iCOP0.cpp │ ├── iCOP0.h │ ├── iCore.cpp │ ├── iCore.h │ ├── iFPU.cpp │ ├── iFPU.h │ ├── iFPUd.cpp │ ├── iMMI.cpp │ ├── iMMI.h │ ├── iR3000A.cpp │ ├── iR3000A.h │ ├── iR3000Atables.cpp │ ├── iR5900.h │ ├── iR5900Arit.h │ ├── iR5900AritImm.h │ ├── iR5900Branch.h │ ├── iR5900Jump.h │ ├── iR5900LoadStore.h │ ├── iR5900Misc.cpp │ ├── iR5900Move.h │ ├── iR5900MultDiv.h │ ├── iR5900Shift.h │ ├── ir5900tables.cpp │ ├── ix86-32 │ ├── iCore-32.cpp │ ├── iR5900-32.cpp │ ├── iR5900Arit.cpp │ ├── iR5900AritImm.cpp │ ├── iR5900Branch.cpp │ ├── iR5900Jump.cpp │ ├── iR5900LoadStore.cpp │ ├── iR5900Move.cpp │ ├── iR5900MultDiv.cpp │ ├── iR5900Shift.cpp │ ├── iR5900Templates.cpp │ └── recVTLB.cpp │ ├── microVU.cpp │ ├── microVU.h │ ├── microVU_Alloc.inl │ ├── microVU_Analyze.inl │ ├── microVU_Branch.inl │ ├── microVU_Clamp.inl │ ├── microVU_Compile.inl │ ├── microVU_Execute.inl │ ├── microVU_Flags.inl │ ├── microVU_IR.h │ ├── microVU_Lower.inl │ ├── microVU_Macro.inl │ ├── microVU_Misc.h │ ├── microVU_Misc.inl │ ├── microVU_Tables.inl │ ├── microVU_Upper.inl │ ├── newVif.h │ ├── newVif_Dynarec.cpp │ ├── newVif_HashBucket.h │ ├── newVif_Unpack.cpp │ ├── newVif_UnpackSSE.cpp │ └── newVif_UnpackSSE.h └── resources ├── 60fps-explanation.txt ├── 60fps.txt ├── GameIndex.h ├── GameIndex.yaml ├── cheats_60fps.h ├── cheats_60fps.zip ├── cheats_nointerlacing.h ├── cheats_nointerlacing.zip ├── cheats_ws.h ├── cheats_ws.zip ├── nointerlacing-explanation-felixthecat.txt ├── nointerlacing-explanation-neogeo-felixthecat.txt └── nointerlacing.txt /.editorconfig: -------------------------------------------------------------------------------- 1 | # Should always be specified at the top of the file outside of any sections 2 | root = true 3 | 4 | # TODO: Add one for resource script file and other Linux specific files ? 5 | 6 | [*.{cpp,h}] 7 | indent_style = tab 8 | indent_size = 4 9 | #trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Declare files that will always have CRLF line endings on checkout. 5 | *.sln text eol=crlf 6 | *.props text eol=crlf 7 | *.vcxproj text eol=crlf 8 | *.vcxproj.filters text eol=crlf 9 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "3rdparty/xz/xz"] 2 | path = 3rdparty/xz/xz 3 | url = https://github.com/PCSX2/xz.git 4 | -------------------------------------------------------------------------------- /3rdparty/3rdparty.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | <_ProjectFileVersion>10.0.30128.1 5 | $(SolutionDir)deps\$(PlatformName)\$(Configuration)\ 6 | $(PlatformName)\$(Configuration)\ 7 | *.bsc;*.idb;*.sbr;*.res;*.pch;*.pdb;*.obj;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath);$(ExtensionsToDeleteOnClean) 8 | 9 | 10 | 11 | $(ProjectDir);%(AdditionalIncludeDirectories) 12 | __WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) 13 | 16Bytes 14 | true 15 | false 16 | Level3 17 | ProgramDatabase 18 | Default 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /3rdparty/DefaultProjectRootDir.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(ProjectDir) 5 | $(ProjectRootDir)\..\.. 6 | 7 | 8 | <_ProjectFileVersion>10.0.30128.1 9 | 10 | 11 | 12 | $(ProjectRootDir) 13 | 14 | 15 | $(SvnRootDir) 16 | 17 | 18 | -------------------------------------------------------------------------------- /3rdparty/libchdr/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright Romain Tisserand 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of the nor the 12 | names of its contributors may be used to endorse or promote products 13 | derived from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /3rdparty/libchdr/README.md: -------------------------------------------------------------------------------- 1 | # libchdr 2 | 3 | libchdr is a standalone library for reading MAME's CHDv1-v5 formats. 4 | 5 | The code is based off of MAME's old C codebase which read up to CHDv4 with OS-dependent features removed, and CHDv5 support backported from MAME's current C++ codebase. 6 | 7 | libchdr is licensed under the BSD 3-Clause (see [LICENSE.txt](LICENSE.txt)) and uses third party libraries that are each distributed under their own terms (see each library's license in [deps/](deps/)). 8 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(lzma_chdr STATIC 2 | include/7zTypes.h 3 | include/Alloc.h 4 | include/Bra.h 5 | include/Compiler.h 6 | include/CpuArch.h 7 | include/Delta.h 8 | include/LzFind.h 9 | include/LzHash.h 10 | include/Lzma86.h 11 | include/LzmaDec.h 12 | include/LzmaEnc.h 13 | include/LzmaLib.h 14 | include/Precomp.h 15 | include/Sort.h 16 | src/Alloc.c 17 | src/Bra86.c 18 | src/BraIA64.c 19 | src/CpuArch.c 20 | src/Delta.c 21 | src/LzFind.c 22 | src/Lzma86Dec.c 23 | src/LzmaDec.c 24 | src/LzmaEnc.c 25 | src/Sort.c 26 | ) 27 | 28 | target_compile_definitions(lzma_chdr PRIVATE _7ZIP_ST) 29 | 30 | target_include_directories(lzma_chdr PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include") 31 | target_include_directories(lzma_chdr INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") 32 | 33 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/LICENSE: -------------------------------------------------------------------------------- 1 | LZMA SDK is placed in the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original LZMA SDK code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/include/Alloc.h: -------------------------------------------------------------------------------- 1 | /* Alloc.h -- Memory allocation functions 2 | 2018-02-19 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __COMMON_ALLOC_H 5 | #define __COMMON_ALLOC_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | void *MyAlloc(size_t size); 12 | void MyFree(void *address); 13 | 14 | #ifdef _WIN32 15 | 16 | void SetLargePageSize(); 17 | 18 | void *MidAlloc(size_t size); 19 | void MidFree(void *address); 20 | void *BigAlloc(size_t size); 21 | void BigFree(void *address); 22 | 23 | #else 24 | 25 | #define MidAlloc(size) MyAlloc(size) 26 | #define MidFree(address) MyFree(address) 27 | #define BigAlloc(size) MyAlloc(size) 28 | #define BigFree(address) MyFree(address) 29 | 30 | #endif 31 | 32 | extern const ISzAlloc g_Alloc; 33 | extern const ISzAlloc g_BigAlloc; 34 | extern const ISzAlloc g_MidAlloc; 35 | extern const ISzAlloc g_AlignedAlloc; 36 | 37 | 38 | typedef struct 39 | { 40 | ISzAlloc vt; 41 | ISzAllocPtr baseAlloc; 42 | unsigned numAlignBits; /* ((1 << numAlignBits) >= sizeof(void *)) */ 43 | size_t offset; /* (offset == (k * sizeof(void *)) && offset < (1 << numAlignBits) */ 44 | } CAlignOffsetAlloc; 45 | 46 | void AlignOffsetAlloc_CreateVTable(CAlignOffsetAlloc *p); 47 | 48 | 49 | EXTERN_C_END 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/include/Compiler.h: -------------------------------------------------------------------------------- 1 | /* Compiler.h 2 | 2017-04-03 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_COMPILER_H 5 | #define __7Z_COMPILER_H 6 | 7 | #ifdef _MSC_VER 8 | 9 | #ifdef UNDER_CE 10 | #define RPC_NO_WINDOWS_H 11 | /* #pragma warning(disable : 4115) // '_RPC_ASYNC_STATE' : named type definition in parentheses */ 12 | #pragma warning(disable : 4201) // nonstandard extension used : nameless struct/union 13 | #pragma warning(disable : 4214) // nonstandard extension used : bit field types other than int 14 | #endif 15 | 16 | #if _MSC_VER >= 1300 17 | #pragma warning(disable : 4996) // This function or variable may be unsafe 18 | #else 19 | #pragma warning(disable : 4511) // copy constructor could not be generated 20 | #pragma warning(disable : 4512) // assignment operator could not be generated 21 | #pragma warning(disable : 4514) // unreferenced inline function has been removed 22 | #pragma warning(disable : 4702) // unreachable code 23 | #pragma warning(disable : 4710) // not inlined 24 | #pragma warning(disable : 4714) // function marked as __forceinline not inlined 25 | #pragma warning(disable : 4786) // identifier was truncated to '255' characters in the debug information 26 | #endif 27 | 28 | #endif 29 | 30 | #define UNUSED_VAR(x) (void)x; 31 | /* #define UNUSED_VAR(x) x=x; */ 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/include/Delta.h: -------------------------------------------------------------------------------- 1 | /* Delta.h -- Delta converter 2 | 2013-01-18 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __DELTA_H 5 | #define __DELTA_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | #define DELTA_STATE_SIZE 256 12 | 13 | void Delta_Init(Byte *state); 14 | void Delta_Encode(Byte *state, unsigned delta, Byte *data, SizeT size); 15 | void Delta_Decode(Byte *state, unsigned delta, Byte *data, SizeT size); 16 | 17 | EXTERN_C_END 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/include/Precomp.h: -------------------------------------------------------------------------------- 1 | /* Precomp.h -- StdAfx 2 | 2013-11-12 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_PRECOMP_H 5 | #define __7Z_PRECOMP_H 6 | 7 | #include "Compiler.h" 8 | /* #include "7zTypes.h" */ 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/include/Sort.h: -------------------------------------------------------------------------------- 1 | /* Sort.h -- Sort functions 2 | 2014-04-05 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_SORT_H 5 | #define __7Z_SORT_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | void HeapSort(UInt32 *p, size_t size); 12 | void HeapSort64(UInt64 *p, size_t size); 13 | 14 | /* void HeapSortRef(UInt32 *p, UInt32 *vals, size_t size); */ 15 | 16 | EXTERN_C_END 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/lzma-history.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/3rdparty/libchdr/deps/lzma-19.00/lzma-history.txt -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/lzma.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/src/BraIA64.c: -------------------------------------------------------------------------------- 1 | /* BraIA64.c -- Converter for IA-64 code 2 | 2017-01-26 : Igor Pavlov : Public domain */ 3 | 4 | #include "Precomp.h" 5 | 6 | #include "CpuArch.h" 7 | #include "Bra.h" 8 | 9 | SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding) 10 | { 11 | SizeT i; 12 | if (size < 16) 13 | return 0; 14 | size -= 16; 15 | i = 0; 16 | do 17 | { 18 | unsigned m = ((UInt32)0x334B0000 >> (data[i] & 0x1E)) & 3; 19 | if (m) 20 | { 21 | m++; 22 | do 23 | { 24 | Byte *p = data + (i + (size_t)m * 5 - 8); 25 | if (((p[3] >> m) & 15) == 5 26 | && (((p[-1] | ((UInt32)p[0] << 8)) >> m) & 0x70) == 0) 27 | { 28 | unsigned raw = GetUi32(p); 29 | unsigned v = raw >> m; 30 | v = (v & 0xFFFFF) | ((v & (1 << 23)) >> 3); 31 | 32 | v <<= 4; 33 | if (encoding) 34 | v += ip + (UInt32)i; 35 | else 36 | v -= ip + (UInt32)i; 37 | v >>= 4; 38 | 39 | v &= 0x1FFFFF; 40 | v += 0x700000; 41 | v &= 0x8FFFFF; 42 | raw &= ~((UInt32)0x8FFFFF << m); 43 | raw |= (v << m); 44 | SetUi32(p, raw); 45 | } 46 | } 47 | while (++m <= 4); 48 | } 49 | i += 16; 50 | } 51 | while (i <= size); 52 | return i; 53 | } 54 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/src/Delta.c: -------------------------------------------------------------------------------- 1 | /* Delta.c -- Delta converter 2 | 2009-05-26 : Igor Pavlov : Public domain */ 3 | 4 | #include "Precomp.h" 5 | 6 | #include "Delta.h" 7 | 8 | void Delta_Init(Byte *state) 9 | { 10 | unsigned i; 11 | for (i = 0; i < DELTA_STATE_SIZE; i++) 12 | state[i] = 0; 13 | } 14 | 15 | static void MyMemCpy(Byte *dest, const Byte *src, unsigned size) 16 | { 17 | unsigned i; 18 | for (i = 0; i < size; i++) 19 | dest[i] = src[i]; 20 | } 21 | 22 | void Delta_Encode(Byte *state, unsigned delta, Byte *data, SizeT size) 23 | { 24 | Byte buf[DELTA_STATE_SIZE]; 25 | unsigned j = 0; 26 | MyMemCpy(buf, state, delta); 27 | { 28 | SizeT i; 29 | for (i = 0; i < size;) 30 | { 31 | for (j = 0; j < delta && i < size; i++, j++) 32 | { 33 | Byte b = data[i]; 34 | data[i] = (Byte)(b - buf[j]); 35 | buf[j] = b; 36 | } 37 | } 38 | } 39 | if (j == delta) 40 | j = 0; 41 | MyMemCpy(state, buf + j, delta - j); 42 | MyMemCpy(state + delta - j, buf, j); 43 | } 44 | 45 | void Delta_Decode(Byte *state, unsigned delta, Byte *data, SizeT size) 46 | { 47 | Byte buf[DELTA_STATE_SIZE]; 48 | unsigned j = 0; 49 | MyMemCpy(buf, state, delta); 50 | { 51 | SizeT i; 52 | for (i = 0; i < size;) 53 | { 54 | for (j = 0; j < delta && i < size; i++, j++) 55 | { 56 | buf[j] = data[i] = (Byte)(buf[j] + data[i]); 57 | } 58 | } 59 | } 60 | if (j == delta) 61 | j = 0; 62 | MyMemCpy(state, buf + j, delta - j); 63 | MyMemCpy(state + delta - j, buf, j); 64 | } 65 | -------------------------------------------------------------------------------- /3rdparty/libchdr/deps/lzma-19.00/src/Lzma86Dec.c: -------------------------------------------------------------------------------- 1 | /* Lzma86Dec.c -- LZMA + x86 (BCJ) Filter Decoder 2 | 2016-05-16 : Igor Pavlov : Public domain */ 3 | 4 | #include "Precomp.h" 5 | 6 | #include "Lzma86.h" 7 | 8 | #include "Alloc.h" 9 | #include "Bra.h" 10 | #include "LzmaDec.h" 11 | 12 | SRes Lzma86_GetUnpackSize(const Byte *src, SizeT srcLen, UInt64 *unpackSize) 13 | { 14 | unsigned i; 15 | if (srcLen < LZMA86_HEADER_SIZE) 16 | return SZ_ERROR_INPUT_EOF; 17 | *unpackSize = 0; 18 | for (i = 0; i < sizeof(UInt64); i++) 19 | *unpackSize += ((UInt64)src[LZMA86_SIZE_OFFSET + i]) << (8 * i); 20 | return SZ_OK; 21 | } 22 | 23 | SRes Lzma86_Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen) 24 | { 25 | SRes res; 26 | int useFilter; 27 | SizeT inSizePure; 28 | ELzmaStatus status; 29 | 30 | if (*srcLen < LZMA86_HEADER_SIZE) 31 | return SZ_ERROR_INPUT_EOF; 32 | 33 | useFilter = src[0]; 34 | 35 | if (useFilter > 1) 36 | { 37 | *destLen = 0; 38 | return SZ_ERROR_UNSUPPORTED; 39 | } 40 | 41 | inSizePure = *srcLen - LZMA86_HEADER_SIZE; 42 | res = LzmaDecode(dest, destLen, src + LZMA86_HEADER_SIZE, &inSizePure, 43 | src + 1, LZMA_PROPS_SIZE, LZMA_FINISH_ANY, &status, &g_Alloc); 44 | *srcLen = inSizePure + LZMA86_HEADER_SIZE; 45 | if (res != SZ_OK) 46 | return res; 47 | if (useFilter == 1) 48 | { 49 | UInt32 x86State; 50 | x86_Convert_Init(x86State); 51 | x86_Convert(dest, *destLen, 0, &x86State, 0); 52 | } 53 | return SZ_OK; 54 | } 55 | -------------------------------------------------------------------------------- /3rdparty/libchdr/include/libchdr/bitstream.h: -------------------------------------------------------------------------------- 1 | /* license:BSD-3-Clause 2 | * copyright-holders:Aaron Giles 3 | *************************************************************************** 4 | 5 | bitstream.h 6 | 7 | Helper classes for reading/writing at the bit level. 8 | 9 | ***************************************************************************/ 10 | 11 | #pragma once 12 | 13 | #ifndef __BITSTREAM_H__ 14 | #define __BITSTREAM_H__ 15 | 16 | #include 17 | 18 | /*************************************************************************** 19 | * TYPE DEFINITIONS 20 | *************************************************************************** 21 | */ 22 | 23 | /* helper class for reading from a bit buffer */ 24 | struct bitstream 25 | { 26 | uint32_t buffer; /* current bit accumulator */ 27 | int bits; /* number of bits in the accumulator */ 28 | const uint8_t * read; /* read pointer */ 29 | uint32_t doffset; /* byte offset within the data */ 30 | uint32_t dlength; /* length of the data */ 31 | }; 32 | 33 | struct bitstream* create_bitstream(const void *src, uint32_t srclength); 34 | int bitstream_overflow(struct bitstream* bitstream); 35 | uint32_t bitstream_read_offset(struct bitstream* bitstream); 36 | 37 | uint32_t bitstream_read(struct bitstream* bitstream, int numbits); 38 | uint32_t bitstream_peek(struct bitstream* bitstream, int numbits); 39 | void bitstream_remove(struct bitstream* bitstream, int numbits); 40 | uint32_t bitstream_flush(struct bitstream* bitstream); 41 | 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /3rdparty/libchdr/include/libchdr/chdconfig.h: -------------------------------------------------------------------------------- 1 | #ifndef __CHDCONFIG_H__ 2 | #define __CHDCONFIG_H__ 3 | 4 | /* Configure CHDR features here */ 5 | #define WANT_RAW_DATA_SECTOR 1 6 | #define WANT_SUBCODE 1 7 | #define NEED_CACHE_HUNK 1 8 | #define VERIFY_BLOCK_CRC 1 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/libchdr/pkg-config.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ 3 | includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/libchdr 4 | 5 | Name: libchdr 6 | Description: Standalone library for reading MAME's CHDv1-v5 formats 7 | Version: @CHDR_VERSION_MAJOR@.@CHDR_VERSION_MINOR@ 8 | Libs: -L${libdir} -lchdr @LIBS@ 9 | Cflags: -I${includedir} 10 | 11 | -------------------------------------------------------------------------------- /3rdparty/libchdr/src/link.T: -------------------------------------------------------------------------------- 1 | { 2 | global: chd_*; 3 | local: *; 4 | }; 5 | 6 | -------------------------------------------------------------------------------- /3rdparty/libjpeg/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 95 or NT. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | /* Define "boolean" as unsigned char, not int, per Windows custom */ 19 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 20 | typedef unsigned char boolean; 21 | #endif 22 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 23 | 24 | 25 | #ifdef JPEG_INTERNALS 26 | 27 | #undef RIGHT_SHIFT_IS_UNSIGNED 28 | 29 | #endif /* JPEG_INTERNALS */ 30 | 31 | #ifdef JPEG_CJPEG_DJPEG 32 | 33 | #define BMP_SUPPORTED /* BMP image file format */ 34 | #define GIF_SUPPORTED /* GIF image file format */ 35 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 36 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 37 | #define TARGA_SUPPORTED /* Targa image file format */ 38 | 39 | #define TWO_FILE_COMMANDLINE /* optional */ 40 | #define USE_SETMODE /* Microsoft has setmode() */ 41 | #undef NEED_SIGNAL_CATCHER 42 | #undef DONT_USE_B_MODE 43 | #undef PROGRESS_REPORT /* optional */ 44 | 45 | #endif /* JPEG_CJPEG_DJPEG */ 46 | -------------------------------------------------------------------------------- /3rdparty/libjpeg/jversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * jversion.h 3 | * 4 | * Copyright (C) 1991-2009, Thomas G. Lane, Guido Vollbeding. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains software version identification. 9 | */ 10 | 11 | 12 | #define JVERSION "7 27-Jun-2009" 13 | 14 | #define JCOPYRIGHT "Copyright (C) 2009, Thomas G. Lane, Guido Vollbeding" 15 | -------------------------------------------------------------------------------- /3rdparty/libpng/TODO: -------------------------------------------------------------------------------- 1 | /* 2 | TODO - list of things to do for libpng: 3 | 4 | Final bug fixes. 5 | Better C++ wrapper/full C++ implementation? 6 | Fix problem with C++ and EXTERN "C". 7 | cHRM transformation. 8 | Remove setjmp/longjmp usage in favor of returning error codes. 9 | Palette creation. 10 | Add "grayscale->palette" transformation and "palette->grayscale" detection. 11 | Improved dithering. 12 | Multi-lingual error and warning message support. 13 | Complete sRGB transformation (presently it simply uses gamma=0.45455). 14 | Make profile checking optional via a png_set_something() call. 15 | Man pages for function calls. 16 | Better documentation. 17 | Better filter selection 18 | (counting huffman bits/precompression? filter inertia? filter costs?). 19 | Histogram creation. 20 | Text conversion between different code pages (Latin-1 -> Mac and DOS). 21 | Avoid building gamma tables whenever possible. 22 | Use greater precision when changing to linear gamma for compositing against 23 | background and doing rgb-to-gray transformation. 24 | Investigate pre-incremented loop counters and other loop constructions. 25 | Add interpolated method of handling interlacing. 26 | Switch to the simpler zlib (zlib/libpng) license if legally possible. 27 | Extend pngvalid.c to validate more of the libpng transformations. 28 | 29 | */ 30 | -------------------------------------------------------------------------------- /3rdparty/libpng/configure: -------------------------------------------------------------------------------- 1 | 2 | echo " 3 | There is no \"configure\" script in this distribution (*.zip or *.7z) of 4 | libpng-1.6.17. 5 | 6 | Instead, please copy the appropriate makefile for your system from the 7 | \"scripts\" directory. Read the INSTALL file for more details. 8 | 9 | Update, July 2004: you can get a \"configure\" based distribution 10 | from the libpng distribution sites. Download the file 11 | libpng-1.6.17.tar.gz or libpng-1.6.17.tar.xz. 12 | 13 | If the line endings in the files look funny, which is likely to be the 14 | case if you were trying to run \"configure\" on a Linux machine, you may 15 | wish to get the other distribution of libpng. It is available in both 16 | tar.gz/tar.xz (UNIX style line endings, with \"configure\") and .7z/.zip 17 | (DOS style line endings, without \"configure\") formats. 18 | " 19 | 20 | -------------------------------------------------------------------------------- /3rdparty/libpng/libpng.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ 5 | 6 | Name: libpng 7 | Description: Loads and saves PNG files 8 | Version: @PNGLIB_VERSION@ 9 | Libs: -L${libdir} -lpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ 10 | Libs.private: @LIBS@ 11 | Cflags: -I${includedir} 12 | -------------------------------------------------------------------------------- /3rdparty/libpng/libpngpf.3: -------------------------------------------------------------------------------- 1 | .TH LIBPNGPF 3 "March 26, 2015" 2 | .SH NAME 3 | libpng \- Portable Network Graphics (PNG) Reference Library 1.6.17 4 | (private functions) 5 | .SH SYNOPSIS 6 | \fB#include \fI"pngpriv.h" 7 | 8 | \fBAs of libpng version \fP\fI1.5.1\fP\fB, this section is no longer \fP\fImaintained\fP\fB, now that the private function prototypes are hidden in pngpriv.h and not accessible to applications. Look in pngpriv.h for the prototypes and a short description of each \fIfunction. 9 | 10 | .SH DESCRIPTION 11 | The functions previously listed here are used privately by libpng and are not 12 | available for use by applications. They are not "exported" to applications 13 | using shared libraries. 14 | 15 | .SH SEE ALSO 16 | .BR "png"(5), " libpng"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5) 17 | .SH AUTHOR 18 | Glenn Randers-Pehrson 19 | -------------------------------------------------------------------------------- /3rdparty/libpng/pngbar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/3rdparty/libpng/pngbar.jpg -------------------------------------------------------------------------------- /3rdparty/libpng/pngbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/3rdparty/libpng/pngbar.png -------------------------------------------------------------------------------- /3rdparty/libpng/pngnow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/3rdparty/libpng/pngnow.png -------------------------------------------------------------------------------- /3rdparty/libpng/pngtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/3rdparty/libpng/pngtest.png -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/SCOPTIONS.ppc: -------------------------------------------------------------------------------- 1 | OPTIMIZE 2 | OPTPEEP 3 | OPTTIME 4 | OPTSCHED 5 | AUTOREGISTER 6 | PARMS=REGISTERS 7 | INCLUDEDIR=hlp:ppc/include 8 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/def.c: -------------------------------------------------------------------------------- 1 | /* def.c - define format of libpng.def 2 | * 3 | * Last changed in libpng version 1.6.16 [December 22, 2014] 4 | * Copyright (c) 2011-2014 Glenn Randers-Pehrson 5 | * 6 | * This code is released under the libpng license. 7 | * For conditions of distribution and use, see the disclaimer 8 | * and license in png.h 9 | */ 10 | 11 | /* Write the export file header: */ 12 | PNG_DFN ";--------------------------------------------------------------" 13 | PNG_DFN "; LIBPNG module definition file for OS/2" 14 | PNG_DFN ";--------------------------------------------------------------" 15 | PNG_DFN "" 16 | PNG_DFN "; If you give the library an explicit name one or other files" 17 | PNG_DFN "; may need modifying to support the new name on one or more" 18 | PNG_DFN "; systems." 19 | PNG_DFN "LIBRARY" 20 | PNG_DFN "OS2 DESCRIPTION "PNG image compression library"" 21 | PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE" 22 | PNG_DFN "" 23 | PNG_DFN "EXPORTS" 24 | PNG_DFN ";Version 1.6.17" 25 | 26 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 27 | PNG_DFN "@" SYMBOL_PREFIX "@@" name "@" 28 | 29 | #include "../png.h" 30 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/intprefix.c: -------------------------------------------------------------------------------- 1 | 2 | /* intprefix.c - generate an unprefixed internal symbol list 3 | * 4 | * Last changed in libpng version 1.6.16 [December 22, 2014] 5 | * Copyright (c) 2013-2014 Glenn Randers-Pehrson 6 | * 7 | * This code is released under the libpng license. 8 | * For conditions of distribution and use, see the disclaimer 9 | * and license in png.h 10 | */ 11 | 12 | #define PNG_INTERNAL_DATA(type, name, array)\ 13 | PNG_DFN "@" name "@" 14 | 15 | #define PNG_INTERNAL_FUNCTION(type, name, args, attributes)\ 16 | PNG_DFN "@" name "@" 17 | 18 | #define PNG_INTERNAL_CALLBACK(type, name, args, attributes)\ 19 | PNG_DFN "@" name "@" 20 | 21 | #define PNGPREFIX_H /* self generation */ 22 | #include "../pngpriv.h" 23 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/libpng-config-head.in: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # libpng-config 4 | # provides configuration info for libpng. 5 | 6 | # Copyright (C) 2002 Glenn Randers-Pehrson 7 | 8 | # This code is released under the libpng license. 9 | # For conditions of distribution and use, see the disclaimer 10 | # and license in png.h 11 | 12 | # Modeled after libxml-config. 13 | 14 | version=1.6.17 15 | prefix="" 16 | libdir="" 17 | libs="" 18 | I_opts="" 19 | L_opts="" 20 | R_opts="" 21 | cppflags="" 22 | ccopts="" 23 | ldopts="" 24 | 25 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/libpng.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/libpng16 5 | 6 | Name: libpng 7 | Description: Loads and saves PNG files 8 | Version: 1.6.17 9 | Libs: -L${libdir} -lpng16 10 | Cflags: -I${includedir} 11 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/macro.lst: -------------------------------------------------------------------------------- 1 | get_uint_32(buf) 2 | get_uint_16(buf) 3 | get_int_32(buf) 4 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/prefix.c: -------------------------------------------------------------------------------- 1 | 2 | /* prefix.c - generate an unprefixed symbol list 3 | * 4 | * Last changed in libpng version 1.6.16 [December 22, 2014] 5 | * Copyright (c) 2013-2014 Glenn Randers-Pehrson 6 | * 7 | * This code is released under the libpng license. 8 | * For conditions of distribution and use, see the disclaimer 9 | * and license in png.h 10 | */ 11 | 12 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 13 | PNG_DFN "@" name "@" 14 | 15 | /* The configuration information *before* the additional of symbol renames, 16 | * the list is the C name list; no symbol prefix. 17 | */ 18 | #include "pnglibconf.out" 19 | 20 | PNG_DFN_START_SORT 1 21 | 22 | #include "../png.h" 23 | 24 | PNG_DFN_END_SORT 25 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/smakefile.ppc: -------------------------------------------------------------------------------- 1 | # Amiga powerUP (TM) Makefile 2 | # makefile for libpng and SAS C V6.58/7.00 PPC compiler 3 | # Copyright (C) 1998 by Andreas R. Kleinert 4 | # 5 | # This code is released under the libpng license. 6 | # For conditions of distribution and use, see the disclaimer 7 | # and license in png.h 8 | 9 | CC = scppc 10 | CFLAGS = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \ 11 | OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8 12 | LIBNAME = libpng.a 13 | AR = ppc-amigaos-ar 14 | AR_FLAGS = cr 15 | RANLIB = ppc-amigaos-ranlib 16 | LDFLAGS = -r -o 17 | LDLIBS = ../zlib/libzip.a LIB:scppc.a 18 | LN = ppc-amigaos-ld 19 | RM = delete quiet 20 | MKDIR = makedir 21 | 22 | OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngread.o \ 23 | pngerror.o pngpread.o pngwrite.o pngrtran.o pngwtran.o pngrio.o \ 24 | pngwio.o pngmem.o 25 | 26 | all: $(LIBNAME) pngtest 27 | 28 | $(LIBNAME): $(OBJS) 29 | $(AR) $(AR_FLAGS) $@ $(OBJS) 30 | $(RANLIB) $@ 31 | 32 | pngtest: pngtest.o $(LIBNAME) 33 | $(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \ 34 | LIB:end.o 35 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/sym.c: -------------------------------------------------------------------------------- 1 | 2 | /* sym.c - define format of libpng.sym 3 | * 4 | * Last changed in libpng version 1.6.16 [December 22, 2014] 5 | * Copyright (c) 2011-2014 Glenn Randers-Pehrson 6 | * 7 | * This code is released under the libpng license. 8 | * For conditions of distribution and use, see the disclaimer 9 | * and license in png.h 10 | */ 11 | 12 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 13 | PNG_DFN "@" SYMBOL_PREFIX "@@" name "@" 14 | 15 | #include "../png.h" 16 | -------------------------------------------------------------------------------- /3rdparty/libpng/scripts/vers.c: -------------------------------------------------------------------------------- 1 | 2 | /* vers.c - define format of libpng.vers 3 | * 4 | * Last changed in libpng version 1.6.16 [December 22, 2014] 5 | * Copyright (c) 2011-2014 Glenn Randers-Pehrson 6 | * 7 | * This code is released under the libpng license. 8 | * For conditions of distribution and use, see the disclaimer 9 | * and license in png.h 10 | */ 11 | 12 | #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ 13 | PNG_DFN " @" SYMBOL_PREFIX "@@" name "@;" 14 | 15 | PNG_DFN "@" PNGLIB_LIBNAME "@ {global:" 16 | 17 | #include "../png.h" 18 | 19 | PNG_DFN "local: *; };" 20 | -------------------------------------------------------------------------------- /3rdparty/pthreads4w/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(pthread 2 | pthread.c 3 | config.h 4 | context.h 5 | implement.h 6 | include/pthread.h 7 | include/sched.h 8 | include/semaphore.h 9 | ) 10 | 11 | target_include_directories(pthread PRIVATE . include) 12 | -------------------------------------------------------------------------------- /3rdparty/pthreads4w/Nmakefile: -------------------------------------------------------------------------------- 1 | /* 2 | * nmake file for uwin pthread library 3 | */ 4 | 5 | VERSION = - 6 | CCFLAGS = -V -g $(CC.DLL) 7 | _MT == 1 8 | _timeb == timeb 9 | _ftime == ftime 10 | 11 | $(INCLUDEDIR) :INSTALLDIR: pthread.h sched.h 12 | 13 | pthread $(VERSION) :LIBRARY: attr.c barrier.c cancel.c cleanup.c condvar.c \ 14 | create.c dll.c exit.c fork.c global.c misc.c mutex.c private.c \ 15 | rwlock.c sched.c semaphore.c sync.c tsd.c nonportable.c 16 | -------------------------------------------------------------------------------- /3rdparty/svn_readme.txt: -------------------------------------------------------------------------------- 1 | 2 | Folder: /3rdparty 3 | 4 | This folder contains libraries written and (un?)maintained by people or parties 5 | outside the Pcsx2 DevTeam. Libraries or code snippets written by the PCSX2 team 6 | are housed in /common instead. 7 | 8 | Cross-Compilation: 9 | 10 | Most libraries includes in /3rdparty come as either default installations in Linux 11 | distributions, or are easily obtainable. Using the PCSX2 versions included here is 12 | optional in such cases, however using the distro-provided packages is not recommended. 13 | (using PCSX2 included versions may help resolve versioning issues). 14 | 15 | Note that wxWidgets includes *only* MSW projects and files. Linux and Mac platforms 16 | are assumed to have wx already available in your distributions. 17 | 18 | Modifications: 19 | 20 | Most of these libs in /3rdparty have been tailored slightly from the original 21 | forms downloaded from the net. So if you want to upgrade to a new version you 22 | will need to do a proper diff merge. Likewise, if you modify anything in a 23 | 3rdparty library you should be sure to tag the modification with your sig or 24 | a "pcsx2" or something. Thirdly, you can use Svn Log to check for modifications, 25 | however folder renames or svn homesite changes may not have all relevant history 26 | necessary to make an accurate merge. -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/.travis.yml: -------------------------------------------------------------------------------- 1 | # This is the control file for Travis continuous integration system. 2 | # 3 | # It is used automatically for the repositories on Github if it's found in the 4 | # root directory of the project. 5 | language: cpp 6 | 7 | compiler: gcc 8 | 9 | branches: 10 | only: 11 | - master 12 | 13 | notifications: 14 | email: 15 | recipients: 16 | - vadim@wxwidgets.org 17 | on_success: change 18 | on_failure: change 19 | 20 | before_install: 21 | - sudo apt-get install -y libcppunit-dev 22 | 23 | env: 24 | - wxCONFIGURE_FLAGS= 25 | - wxCONFIGURE_FLAGS="--disable-shared" 26 | - wxCONFIGURE_FLAGS="--disable-precomp-headers --enable-monolithic" 27 | - wxCONFIGURE_FLAGS="--enable-stl" CXXFLAGS=-std=c++0x 28 | 29 | script: 30 | - ./configure --disable-optimise $wxCONFIGURE_FLAGS 31 | - make 32 | - make -C tests 33 | - pushd tests 34 | - ./test -t 35 | - popd 36 | - make samples 37 | - sudo make install 38 | - make -C samples/minimal -f makefile.unx 39 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/UsewxWidgets.cmake: -------------------------------------------------------------------------------- 1 | set(wxWidgets_FOUND 1) 2 | set(wxWidgets_DIR ${CMAKE_SOURCE_DIR}/3rdparty/wxwidgets3.0) 3 | set(wxWidgets_INCLUDE_DIRS ${wxWidgets_DIR}/include ${wxWidgets_DIR}/include/nogui) 4 | set(wxWidgets_LIBRARIES wxwidgets) 5 | set(wxWidgets_CXX_FLAGS) 6 | 7 | include_directories(SYSTEM ${wxWidgets_INCLUDE_DIRS}) 8 | add_definitions(-DwxUSE_GUI=0 -D_FILE_OFFSET_BITS=64) 9 | if(UNIX) 10 | add_definitions(-DwxUSE_UNIX -D__UNIX__) 11 | if(APPLE) 12 | add_definitions(-D__DARWIN__) 13 | else() 14 | add_definitions(-D__LINUX__) 15 | endif() 16 | elseif(WIN32) 17 | add_definitions(-D__WINDOWS__) 18 | if(MINGW) 19 | add_definitions(-D__GNUWIN32__) 20 | endif() 21 | endif() 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/afterstd.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/afterstd.h 3 | // Purpose: #include after STL headers 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 07/07/03 7 | // Copyright: (c) 2003 Vadim Zeitlin 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | /** 12 | See the comments in beforestd.h. 13 | */ 14 | 15 | #if defined(__WINDOWS__) 16 | #include "wx/msw/winundef.h" 17 | #endif 18 | 19 | // undo what we did in wx/beforestd.h 20 | #if defined(__VISUALC__) && __VISUALC__ <= 1201 21 | // MSVC 5 does not have this 22 | #if _MSC_VER > 1100 23 | #pragma warning(pop) 24 | #else 25 | // 'expression' : signed/unsigned mismatch 26 | #pragma warning(default:4018) 27 | 28 | // 'identifier' : unreferenced formal parameter 29 | #pragma warning(default:4100) 30 | 31 | // 'conversion' : conversion from 'type1' to 'type2', 32 | // possible loss of data 33 | #pragma warning(default:4244) 34 | 35 | // C++ language change: to explicitly specialize class template 36 | // 'identifier' use the following syntax 37 | #pragma warning(default:4663) 38 | #endif 39 | #endif 40 | 41 | // see beforestd.h for explanation 42 | #if defined(HAVE_VISIBILITY) && defined(HAVE_BROKEN_LIBSTDCXX_VISIBILITY) 43 | #pragma GCC visibility pop 44 | #endif 45 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/config.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/config.h 3 | // Purpose: wxConfig base header 4 | // Author: Julian Smart 5 | // Modified by: 6 | // Created: 7 | // Copyright: (c) Julian Smart 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_CONFIG_H_BASE_ 12 | #define _WX_CONFIG_H_BASE_ 13 | 14 | #include "wx/confbase.h" 15 | 16 | #endif // _WX_CONFIG_H_BASE_ 17 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/crt.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/crt.h 3 | // Purpose: Header to include all headers with wrappers for CRT functions 4 | // Author: Robert Roebling 5 | // Created: 2007-05-30 6 | // Copyright: (c) 2007 wxWidgets dev team 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_CRT_H_ 11 | #define _WX_CRT_H_ 12 | 13 | #include "wx/defs.h" 14 | 15 | // include wxChar type definition: 16 | #include "wx/chartype.h" 17 | 18 | // and wrappers for CRT functions: 19 | #include "wx/wxcrt.h" 20 | #include "wx/wxcrtvararg.h" 21 | 22 | #endif // _WX_CRT_H_ 23 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/eventfilter.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/eventfilter.h 3 | // Purpose: wxEventFilter class declaration. 4 | // Author: Vadim Zeitlin 5 | // Created: 2011-11-21 6 | // Copyright: (c) 2011 Vadim Zeitlin 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_EVENTFILTER_H_ 11 | #define _WX_EVENTFILTER_H_ 12 | 13 | #include "wx/defs.h" 14 | 15 | class WXDLLIMPEXP_FWD_BASE wxEvent; 16 | class WXDLLIMPEXP_FWD_BASE wxEvtHandler; 17 | 18 | // ---------------------------------------------------------------------------- 19 | // wxEventFilter is used with wxEvtHandler::AddFilter() and ProcessEvent(). 20 | // ---------------------------------------------------------------------------- 21 | 22 | class wxEventFilter 23 | { 24 | public: 25 | wxEventFilter() 26 | { 27 | m_next = NULL; 28 | } 29 | 30 | virtual ~wxEventFilter() 31 | { 32 | } 33 | 34 | private: 35 | // Objects of this class are made to be stored in a linked list in 36 | // wxEvtHandler so put the next node ponter directly in the class itself. 37 | wxEventFilter* m_next; 38 | 39 | // And provide access to it for wxEvtHandler [only]. 40 | friend class wxEvtHandler; 41 | 42 | wxDECLARE_NO_COPY_CLASS(wxEventFilter); 43 | }; 44 | 45 | #endif // _WX_EVENTFILTER_H_ 46 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/iosfwrap.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/iosfwrap.h 3 | // Purpose: includes the correct stream-related forward declarations 4 | // Author: Jan van Dijk 5 | // Modified by: 6 | // Created: 18.12.2002 7 | // Copyright: wxWidgets team 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #if wxUSE_STD_IOSTREAM 12 | 13 | #if wxUSE_IOSTREAMH 14 | // There is no pre-ANSI iosfwd header so we include the full declarations. 15 | # include 16 | #else 17 | # include 18 | #endif 19 | 20 | #ifdef __WINDOWS__ 21 | # include "wx/msw/winundef.h" 22 | #endif 23 | 24 | #endif // wxUSE_STD_IOSTREAM 25 | 26 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/ioswrap.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/ioswrap.h 3 | // Purpose: includes the correct iostream headers for current compiler 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 03.02.99 7 | // Copyright: (c) 1998 Vadim Zeitlin 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #if wxUSE_STD_IOSTREAM 12 | 13 | #include "wx/beforestd.h" 14 | 15 | #if wxUSE_IOSTREAMH 16 | # include 17 | #else 18 | # include 19 | #endif 20 | 21 | #include "wx/afterstd.h" 22 | 23 | #ifdef __WINDOWS__ 24 | # include "wx/msw/winundef.h" 25 | #endif 26 | 27 | #endif 28 | // wxUSE_STD_IOSTREAM 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/listimpl.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/listimpl.cpp 3 | // Purpose: second-part of macro based implementation of template lists 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 16/11/98 7 | // Copyright: (c) 1998 Vadim Zeitlin 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | #undef WX_DEFINE_LIST_2 12 | #define WX_DEFINE_LIST_2(T, name) \ 13 | void wx##name##Node::DeleteData() \ 14 | { \ 15 | delete (T *)GetData(); \ 16 | } 17 | 18 | // redefine the macro so that now it will generate the class implementation 19 | // old value would provoke a compile-time error if this file is not included 20 | #undef WX_DEFINE_LIST 21 | #define WX_DEFINE_LIST(name) WX_DEFINE_LIST_2(_WX_LIST_ITEM_TYPE_##name, name) 22 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/memory.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/memory.h 3 | // Purpose: Memory operations 4 | // Author: Arthur Seaton, Julian Smart 5 | // Modified by: 6 | // Created: 29/01/98 7 | // Copyright: (c) 1998 Julian Smart 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_MEMORY_H_ 12 | #define _WX_MEMORY_H_ 13 | 14 | #include "wx/defs.h" 15 | #include "wx/string.h" 16 | 17 | #endif // _WX_MEMORY_H_ 18 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/mstream.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/mstream.h 3 | // Purpose: Memory stream classes 4 | // Author: Guilhem Lavaux 5 | // Modified by: 6 | // Created: 11/07/98 7 | // Copyright: (c) Guilhem Lavaux 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_WXMMSTREAM_H__ 12 | #define _WX_WXMMSTREAM_H__ 13 | 14 | #include "wx/defs.h" 15 | 16 | #if wxUSE_STREAMS 17 | 18 | #include "wx/stream.h" 19 | 20 | class WXDLLIMPEXP_BASE wxMemoryInputStream : public wxInputStream 21 | { 22 | public: 23 | wxMemoryInputStream(const void *data, size_t length); 24 | 25 | virtual ~wxMemoryInputStream(); 26 | virtual wxFileOffset GetLength() const { return m_length; } 27 | virtual bool IsSeekable() const { return true; } 28 | 29 | virtual bool CanRead() const; 30 | 31 | wxStreamBuffer *GetInputStreamBuffer() const { return m_i_streambuf; } 32 | 33 | protected: 34 | wxStreamBuffer *m_i_streambuf; 35 | 36 | size_t OnSysRead(void *buffer, size_t nbytes); 37 | wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode); 38 | wxFileOffset OnSysTell() const; 39 | 40 | private: 41 | size_t m_length; 42 | 43 | // copy ctor is implemented above: it copies the other stream in this one 44 | DECLARE_ABSTRACT_CLASS(wxMemoryInputStream) 45 | wxDECLARE_NO_ASSIGN_CLASS(wxMemoryInputStream); 46 | }; 47 | 48 | #endif 49 | // wxUSE_STREAMS 50 | 51 | #endif 52 | // _WX_WXMMSTREAM_H__ 53 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/msw/app.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/msw/app.h 3 | // Purpose: wxApp class 4 | // Author: Julian Smart 5 | // Modified by: 6 | // Created: 01/02/97 7 | // Copyright: (c) Julian Smart 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_APP_H_ 12 | #define _WX_APP_H_ 13 | 14 | #include "wx/event.h" 15 | #include "wx/icon.h" 16 | 17 | class WXDLLIMPEXP_FWD_CORE wxApp; 18 | class WXDLLIMPEXP_FWD_CORE wxKeyEvent; 19 | 20 | // Represents the application. Derive OnInit and declare 21 | // a new App object to start application 22 | class WXDLLIMPEXP_CORE wxApp : public wxAppBase 23 | { 24 | public: 25 | wxApp(); 26 | virtual ~wxApp(); 27 | 28 | // override base class (pure) virtuals 29 | virtual bool Initialize(int& argc, wxChar **argv); 30 | virtual void CleanUp(); 31 | 32 | virtual void WakeUpIdle(); 33 | protected: 34 | DECLARE_EVENT_TABLE() 35 | wxDECLARE_NO_COPY_CLASS(wxApp); 36 | DECLARE_DYNAMIC_CLASS(wxApp) 37 | }; 38 | 39 | #endif // _WX_APP_H_ 40 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/msw/evtloop.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/msw/evtloop.h 3 | // Purpose: wxEventLoop class for wxMSW port 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 2004-07-31 7 | // Copyright: (c) 2003-2004 Vadim Zeitlin 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_MSW_EVTLOOP_H_ 12 | #define _WX_MSW_EVTLOOP_H_ 13 | 14 | #include "wx/dynarray.h" 15 | #include "wx/msw/wrapwin.h" 16 | #include "wx/window.h" 17 | #include "wx/msw/evtloopconsole.h" // for wxMSWEventLoopBase 18 | 19 | // ---------------------------------------------------------------------------- 20 | // wxEventLoop 21 | // ---------------------------------------------------------------------------- 22 | 23 | WX_DECLARE_EXPORTED_OBJARRAY(MSG, wxMSGArray); 24 | 25 | #endif // _WX_MSW_EVTLOOP_H_ 26 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/msw/evtloopconsole.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/msw/evtloopconsole.h 3 | // Purpose: wxConsoleEventLoop class for Windows 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 2004-07-31 7 | // Copyright: (c) 2003-2004 Vadim Zeitlin 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_MSW_EVTLOOPCONSOLE_H_ 12 | #define _WX_MSW_EVTLOOPCONSOLE_H_ 13 | 14 | class WXDLLIMPEXP_BASE wxMSWEventLoopBase : public wxEventLoopManual 15 | { 16 | public: 17 | wxMSWEventLoopBase(); 18 | 19 | // implement base class pure virtuals 20 | virtual bool Pending() const; 21 | }; 22 | 23 | #if wxUSE_CONSOLE_EVENTLOOP 24 | 25 | class WXDLLIMPEXP_BASE wxConsoleEventLoop : public wxMSWEventLoopBase 26 | { 27 | public: 28 | wxConsoleEventLoop() { } 29 | 30 | // override/implement base class virtuals 31 | virtual bool Dispatch(); 32 | virtual void WakeUp(); 33 | virtual bool YieldFor(long WXUNUSED(eventsToProcess)) { return true; } 34 | }; 35 | 36 | #endif // wxUSE_CONSOLE_EVENTLOOP 37 | 38 | #endif // _WX_MSW_EVTLOOPCONSOLE_H_ 39 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/msw/genrcdefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Name: wx/msw/genrcdefs.h 3 | * Purpose: Emit preprocessor symbols into rcdefs.h for resource compiler 4 | * Author: Mike Wetherell 5 | * Copyright: (c) 2005 Mike Wetherell 6 | * Licence: wxWindows licence 7 | */ 8 | 9 | #define EMIT(line) line 10 | 11 | EMIT(#ifndef _WX_RCDEFS_H) 12 | EMIT(#define _WX_RCDEFS_H) 13 | 14 | #ifdef _MSC_FULL_VER 15 | #if _MSC_FULL_VER < 140040130 16 | EMIT(#define wxUSE_RC_MANIFEST 1) 17 | #endif 18 | #else 19 | EMIT(#define wxUSE_RC_MANIFEST 1) 20 | #endif 21 | 22 | #if defined _M_AMD64 || defined __x86_64__ 23 | EMIT(#define WX_CPU_AMD64) 24 | #endif 25 | 26 | #ifdef _M_ARM 27 | EMIT(#define WX_CPU_ARM) 28 | #endif 29 | 30 | #if defined _M_IA64 || defined __ia64__ 31 | EMIT(#define WX_CPU_IA64) 32 | #endif 33 | 34 | #if defined _M_IX86 || defined _X86_ 35 | EMIT(#define WX_CPU_X86) 36 | #endif 37 | 38 | #ifdef _M_PPC 39 | EMIT(#define WX_CPU_PPC) 40 | #endif 41 | 42 | #ifdef _M_SH 43 | EMIT(#define WX_CPU_SH) 44 | #endif 45 | 46 | EMIT(#endif) 47 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/msw/winundef.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: winundef.h 3 | // Purpose: undefine the common symbols #define'd by 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 16.05.99 7 | // Copyright: (c) wxWidgets team 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | // ---------------------------------------------------------------------------- 12 | // windows.h #defines the following identifiers which are also used in wxWin so 13 | // we replace these symbols with the corresponding inline functions and 14 | // undefine the macro. 15 | // 16 | // This looks quite ugly here but allows us to write clear (and correct!) code 17 | // elsewhere because the functions, unlike the macros, respect the scope. 18 | // ---------------------------------------------------------------------------- 19 | 20 | // GetClassInfo 21 | 22 | #ifdef GetClassInfo 23 | #undef GetClassInfo 24 | #ifdef _UNICODE 25 | inline BOOL GetClassInfo(HINSTANCE h, LPCWSTR name, LPWNDCLASSW winclass) 26 | { 27 | return GetClassInfoW(h, name, winclass); 28 | } 29 | #else 30 | inline BOOL GetClassInfo(HINSTANCE h, LPCSTR name, LPWNDCLASSA winclass) 31 | { 32 | return GetClassInfoA(h, name, winclass); 33 | } 34 | #endif 35 | #endif 36 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/msw/wrapcctl.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/msw/wrapcctl.h 3 | // Purpose: Wrapper for the standard header 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 03.08.2003 7 | // Copyright: (c) 2003 Vadim Zeitlin 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_MSW_WRAPCCTL_H_ 12 | #define _WX_MSW_WRAPCCTL_H_ 13 | 14 | #include "wx/msw/wrapwin.h" 15 | 16 | #include 17 | 18 | // define things which might be missing from our commctrl.h 19 | #include "wx/msw/missing.h" 20 | 21 | #endif // _WX_MSW_WRAPCCTL_H_ 22 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/msw/wrapcdlg.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/msw/wrapcdlg.h 3 | // Purpose: Wrapper for the standard header 4 | // Author: Wlodzimierz ABX Skiba 5 | // Modified by: 6 | // Created: 22.03.2005 7 | // Copyright: (c) 2005 Wlodzimierz Skiba 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_MSW_WRAPCDLG_H_ 12 | #define _WX_MSW_WRAPCDLG_H_ 13 | 14 | #include "wx/defs.h" 15 | 16 | #include "wx/msw/wrapwin.h" 17 | #include "wx/msw/private.h" 18 | #include "wx/msw/missing.h" 19 | 20 | #include "wx/msw/winundef.h" 21 | 22 | #endif // _WX_MSW_WRAPCDLG_H_ 23 | 24 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/private/eventloopsourcesmanager.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/private/eventloopsourcesmanager.h 3 | // Purpose: declares wxEventLoopSourcesManagerBase class 4 | // Author: Rob Bresalier 5 | // Created: 2013-06-19 6 | // Copyright: (c) 2013 Rob Bresalier 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_PRIVATE_EVENTLOOPSOURCESMANAGER_H_ 11 | #define _WX_PRIVATE_EVENTLOOPSOURCESMANAGER_H_ 12 | 13 | // For pulling in the value of wxUSE_EVENTLOOP_SOURCE 14 | #include "wx/evtloop.h" 15 | 16 | class WXDLLIMPEXP_BASE wxEventLoopSourcesManagerBase 17 | { 18 | public: 19 | #if wxUSE_EVENTLOOP_SOURCE 20 | virtual wxEventLoopSource* 21 | AddSourceForFD(int fd, wxEventLoopSourceHandler *handler, int flags) = 0; 22 | #endif 23 | }; 24 | 25 | #endif // _WX_PRIVATE_EVENTLOOPSOURCESMANAGER_H_ 26 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/private/fd.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/private/fd.h 3 | // Purpose: private stuff for working with file descriptors 4 | // Author: Vadim Zeitlin 5 | // Created: 2008-11-23 (moved from wx/unix/private.h) 6 | // Copyright: (c) 2008 Vadim Zeitlin 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_PRIVATE_FD_H_ 11 | #define _WX_PRIVATE_FD_H_ 12 | 13 | #define wxFD_ZERO(fds) FD_ZERO(fds) 14 | #define wxFD_SET(fd, fds) FD_SET(fd, fds) 15 | #define wxFD_ISSET(fd, fds) FD_ISSET(fd, fds) 16 | #define wxFD_CLR(fd, fds) FD_CLR(fd, fds) 17 | 18 | #endif // _WX_PRIVATE_FD_H_ 19 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/private/fdioeventloopsourcehandler.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/private/fdioeventloopsourcehandler.h 3 | // Purpose: declares wxFDIOEventLoopSourceHandler class 4 | // Author: Rob Bresalier, Vadim Zeitlin 5 | // Created: 2013-06-13 (extracted from src/unix/evtloopunix.cpp) 6 | // Copyright: (c) 2009 Vadim Zeitlin 7 | // (c) 2013 Rob Bresalier 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_PRIVATE_FDIO_EVENT_LOOP_SOURCE_HANDLER_H 12 | #define _WX_PRIVATE_FDIO_EVENT_LOOP_SOURCE_HANDLER_H 13 | 14 | #include "wx/evtloopsrc.h" 15 | 16 | // This class is a temporary bridge between event loop sources and 17 | // FDIODispatcher. It is going to be removed soon, when all subject interfaces 18 | // are modified 19 | class wxFDIOEventLoopSourceHandler : public wxFDIOHandler 20 | { 21 | public: 22 | wxEXPLICIT wxFDIOEventLoopSourceHandler(wxEventLoopSourceHandler* handler) 23 | : m_handler(handler) 24 | { 25 | } 26 | 27 | // Just forward to the real handler. 28 | virtual void OnReadWaiting() { m_handler->OnReadWaiting(); } 29 | virtual void OnWriteWaiting() { m_handler->OnWriteWaiting(); } 30 | virtual void OnExceptionWaiting() { m_handler->OnExceptionWaiting(); } 31 | 32 | protected: 33 | wxEventLoopSourceHandler* const m_handler; 34 | 35 | wxDECLARE_NO_COPY_CLASS(wxFDIOEventLoopSourceHandler); 36 | }; 37 | 38 | #endif // _WX_PRIVATE_FDIO_EVENT_LOOP_SOURCE_HANDLER_H 39 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/private/fdiomanager.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/private/fdiomanager.h 3 | // Purpose: declaration of wxFDIOManager 4 | // Author: Vadim Zeitlin 5 | // Created: 2009-08-17 6 | // Copyright: (c) 2009 Vadim Zeitlin 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_PRIVATE_FDIOMANAGER_H_ 11 | #define _WX_PRIVATE_FDIOMANAGER_H_ 12 | 13 | #include "wx/private/fdiohandler.h" 14 | 15 | // ---------------------------------------------------------------------------- 16 | // wxFDIOManager: register or unregister wxFDIOHandlers 17 | // ---------------------------------------------------------------------------- 18 | 19 | // currently only used in wxGTK and wxMotif, see wx/unix/apptrait.h 20 | 21 | class wxFDIOManager 22 | { 23 | public: 24 | // identifies either input or output direction 25 | // 26 | // NB: the values of this enum shouldn't change 27 | enum Direction 28 | { 29 | INPUT, 30 | OUTPUT 31 | }; 32 | 33 | // start or stop monitoring the events on the given file descriptor 34 | virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) = 0; 35 | virtual void RemoveInput(wxFDIOHandler *handler, int fd, Direction d) = 0; 36 | 37 | // empty but virtual dtor for the base class 38 | virtual ~wxFDIOManager() { } 39 | }; 40 | 41 | #endif // _WX_PRIVATE_FDIOMANAGER_H_ 42 | 43 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/private/threadinfo.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/private/threadinfo.h 3 | // Purpose: declaration of wxThreadSpecificInfo: thread-specific information 4 | // Author: Vadim Zeitlin 5 | // Created: 2009-07-13 6 | // Copyright: (c) 2009 Vadim Zeitlin 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_PRIVATE_THREADINFO_H_ 11 | #define _WX_PRIVATE_THREADINFO_H_ 12 | 13 | #include "wx/defs.h" 14 | 15 | // ---------------------------------------------------------------------------- 16 | // wxThreadSpecificInfo: contains all thread-specific information used by wx 17 | // ---------------------------------------------------------------------------- 18 | 19 | // Group all thread-specific information we use (e.g. the active wxLog target) 20 | // a in this class to avoid consuming more TLS slots than necessary as there is 21 | // only a limited number of them. 22 | class wxThreadSpecificInfo 23 | { 24 | public: 25 | #if wxUSE_THREADS 26 | // Cleans up storage for the current thread. Should be called when a thread 27 | // is being destroyed. If it's not called, the only bad thing that happens 28 | // is that the memory is deallocated later, on process termination. 29 | static void ThreadCleanUp(); 30 | #endif 31 | 32 | private: 33 | wxThreadSpecificInfo() {} 34 | }; 35 | 36 | #endif // _WX_PRIVATE_THREADINFO_H_ 37 | 38 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/setup_redirect.h: -------------------------------------------------------------------------------- 1 | /* 2 | * wx/setup.h 3 | * 4 | * This file should not normally be used, except where makefiles 5 | * have not yet been adjusted to take into account of the new scheme 6 | * whereby a setup.h is created under the lib directory. 7 | * 8 | * Copyright: (c) Vadim Zeitlin 9 | * Licence: wxWindows Licence 10 | */ 11 | 12 | #ifdef __WXMSW__ 13 | #include "wx/msw/setup.h" 14 | #endif 15 | 16 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/stdstream.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/stdstream.h 3 | // Purpose: Header of std::istream and std::ostream derived wrappers for 4 | // wxInputStream and wxOutputStream 5 | // Author: Jonathan Liu 6 | // Created: 2009-05-02 7 | // Copyright: (c) 2009 Jonathan Liu 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_STDSTREAM_H_ 12 | #define _WX_STDSTREAM_H_ 13 | 14 | #include "wx/defs.h" // wxUSE_STD_IOSTREAM 15 | 16 | #if wxUSE_STREAMS && wxUSE_STD_IOSTREAM 17 | 18 | #include "wx/defs.h" 19 | #include "wx/stream.h" 20 | #include "wx/ioswrap.h" 21 | 22 | #endif // wxUSE_STREAMS && wxUSE_STD_IOSTREAM 23 | 24 | #endif // _WX_STDSTREAM_H_ 25 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/tracker.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/tracker.h 3 | // Purpose: Support class for object lifetime tracking (wxWeakRef) 4 | // Author: Arne Steinarson 5 | // Created: 28 Dec 07 6 | // Copyright: (c) 2007 Arne Steinarson 7 | // Licence: wxWindows licence 8 | ///////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_TRACKER_H_ 11 | #define _WX_TRACKER_H_ 12 | 13 | #include "wx/defs.h" 14 | 15 | // Add-on base class for a trackable object. 16 | class WXDLLIMPEXP_BASE wxTrackable 17 | { 18 | protected: 19 | // this class is only supposed to be used as a base class but never be 20 | // created nor destroyed directly so all ctors and dtor are protected 21 | 22 | wxTrackable() { } 23 | 24 | // copy ctor and assignment operator intentionally do not copy m_first: the 25 | // objects which track the original trackable shouldn't track the new copy 26 | wxTrackable(const wxTrackable& WXUNUSED(other)) { } 27 | wxTrackable& operator=(const wxTrackable& WXUNUSED(other)) { return *this; } 28 | 29 | // dtor is not virtual: this class is not supposed to be used 30 | // polymorphically and adding a virtual table to it would add unwanted 31 | // overhead 32 | ~wxTrackable() 33 | { 34 | } 35 | }; 36 | 37 | #endif // _WX_TRACKER_H_ 38 | 39 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/unix/apptbase.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/unix/apptbase.h 3 | // Purpose: declaration of wxAppTraits for Unix systems 4 | // Author: Vadim Zeitlin 5 | // Modified by: 6 | // Created: 23.06.2003 7 | // Copyright: (c) 2003 Vadim Zeitlin 8 | // Licence: wxWindows licence 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_UNIX_APPTBASE_H_ 12 | #define _WX_UNIX_APPTBASE_H_ 13 | 14 | #include "wx/evtloop.h" 15 | #include "wx/evtloopsrc.h" 16 | 17 | class wxFDIOManager; 18 | class wxEventLoopSourcesManagerBase; 19 | 20 | // ---------------------------------------------------------------------------- 21 | // wxAppTraits: the Unix version adds extra hooks needed by Unix code 22 | // ---------------------------------------------------------------------------- 23 | 24 | class WXDLLIMPEXP_BASE wxAppTraits : public wxAppTraitsBase 25 | { 26 | public: 27 | // wxExecute() support methods 28 | // --------------------------- 29 | 30 | #if wxUSE_CONSOLE_EVENTLOOP 31 | // Return a non-NULL pointer to the object responsible for managing the 32 | // event loop sources in this kind of application. 33 | virtual wxEventLoopSourcesManagerBase* GetEventLoopSourcesManager(); 34 | #endif // wxUSE_CONSOLE_EVENTLOOP 35 | }; 36 | 37 | #endif // _WX_UNIX_APPTBASE_H_ 38 | 39 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/unix/chkconf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Name: wx/unix/chkconf.h 3 | * Purpose: Unix-specific config settings consistency checks 4 | * Author: Vadim Zeitlin 5 | * Created: 2007-07-14 6 | * Copyright: (c) 2007 Vadim Zeitlin 7 | * Licence: wxWindows licence 8 | */ 9 | 10 | /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ 11 | 12 | #if wxUSE_CONSOLE_EVENTLOOP 13 | # if !wxUSE_SELECT_DISPATCHER && !wxUSE_EPOLL_DISPATCHER 14 | # undef wxUSE_SELECT_DISPATCHER 15 | # define wxUSE_SELECT_DISPATCHER 1 16 | # endif 17 | #endif /* wxUSE_CONSOLE_EVENTLOOP */ 18 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/unix/private.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/unix/private.h 3 | // Purpose: miscellaneous private things for Unix wx ports 4 | // Author: Vadim Zeitlin 5 | // Created: 2005-09-25 6 | // Copyright: (c) 2005 Vadim Zeitlin 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _WX_UNIX_PRIVATE_H_ 11 | #define _WX_UNIX_PRIVATE_H_ 12 | 13 | // this file is currently empty as its original contents was moved to 14 | // include/wx/private/fd.h but let's keep it for now in case we need it for 15 | // something again in the future 16 | #include "wx/private/fd.h" 17 | 18 | #endif // _WX_UNIX_PRIVATE_H_ 19 | 20 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/unix/private/fdiounix.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/unix/private/fdiounix.h 3 | // Purpose: wxFDIOManagerUnix class used by console Unix applications 4 | // Author: Vadim Zeitlin 5 | // Created: 2009-08-17 6 | // Copyright: (c) 2009 Vadim Zeitlin 7 | // Licence: wxWindows licence 8 | /////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef _UNIX_PRIVATE_FDIOUNIX_H_ 11 | #define _UNIX_PRIVATE_FDIOUNIX_H_ 12 | 13 | #include "wx/private/fdiomanager.h" 14 | 15 | // ---------------------------------------------------------------------------- 16 | // wxFDIOManagerUnix: implement wxFDIOManager interface using wxFDIODispatcher 17 | // ---------------------------------------------------------------------------- 18 | 19 | class wxFDIOManagerUnix : public wxFDIOManager 20 | { 21 | public: 22 | virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d); 23 | virtual void RemoveInput(wxFDIOHandler *handler, int fd, Direction d); 24 | }; 25 | 26 | #endif // _UNIX_PRIVATE_FDIOUNIX_H_ 27 | 28 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/wx.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/wx.h 3 | // Purpose: wxWidgets central header including the most often used ones 4 | // Author: Julian Smart 5 | // Modified by: 6 | // Created: 01/02/97 7 | // Copyright: (c) Julian Smart 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef _WX_WX_H_ 12 | #define _WX_WX_H_ 13 | 14 | #include "wx/defs.h" 15 | #include "wx/object.h" 16 | #include "wx/dynarray.h" 17 | #include "wx/list.h" 18 | #include "wx/hash.h" 19 | #include "wx/string.h" 20 | #include "wx/hashmap.h" 21 | #include "wx/arrstr.h" 22 | #include "wx/event.h" 23 | #include "wx/app.h" 24 | #include "wx/utils.h" 25 | #include "wx/stream.h" 26 | #include "wx/memory.h" 27 | #include "wx/math.h" 28 | #include "wx/module.h" 29 | #include "wx/wxcrt.h" 30 | #include "wx/wxcrtvararg.h" 31 | 32 | #endif // _WX_WX_H_ 33 | -------------------------------------------------------------------------------- /3rdparty/wxwidgets3.0/include/wx/wxprec.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Name: wx/wxprec.h 3 | // Purpose: Includes the appropriate files for precompiled headers 4 | // Author: Julian Smart 5 | // Modified by: 6 | // Created: 01/02/97 7 | // Copyright: (c) Julian Smart 8 | // Licence: wxWindows licence 9 | ///////////////////////////////////////////////////////////////////////////// 10 | 11 | // compiler detection; includes setup.h 12 | #include "wx/defs.h" 13 | 14 | // check if to use precompiled headers: do it for most Windows compilers unless 15 | // explicitly disabled by defining NOPCH 16 | #if defined(__VISUALC__) 17 | // If user did not request NOCPH and we're not building using configure 18 | // then assume user wants precompiled headers. 19 | #if !defined(NOPCH) && !defined(__WX_SETUP_H__) 20 | #define WX_PRECOMP 21 | #endif 22 | #endif 23 | 24 | #ifdef WX_PRECOMP 25 | 26 | // include "wx/chartype.h" first to ensure that UNICODE macro is correctly set 27 | // _before_ including 28 | #include "wx/chartype.h" 29 | 30 | // include standard Windows headers 31 | #if defined(__WINDOWS__) 32 | #include "wx/msw/wrapwin.h" 33 | #include "wx/msw/private.h" 34 | #endif 35 | #if defined(__WXMSW__) 36 | #include "wx/msw/wrapcctl.h" 37 | #include "wx/msw/wrapcdlg.h" 38 | #include "wx/msw/missing.h" 39 | #endif 40 | 41 | // include the most common wx headers 42 | #include "wx/wx.h" 43 | 44 | #endif // WX_PRECOMP 45 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | # BasedOnStyle: Google 3 | AccessModifierOffset: -1 4 | ConstructorInitializerIndentWidth: 4 5 | AlignEscapedNewlinesLeft: true 6 | AlignTrailingComments: true 7 | AllowAllParametersOfDeclarationOnNextLine: true 8 | AllowShortIfStatementsOnASingleLine: false 9 | AllowShortLoopsOnASingleLine: false 10 | AlwaysBreakTemplateDeclarations: true 11 | AlwaysBreakBeforeMultilineStrings: true 12 | BreakBeforeBinaryOperators: false 13 | BreakBeforeTernaryOperators: true 14 | BreakConstructorInitializersBeforeComma: false 15 | BinPackParameters: true 16 | ColumnLimit: 80 17 | ConstructorInitializerAllOnOneLineOrOnePerLine: true 18 | DerivePointerBinding: true 19 | ExperimentalAutoDetectBinPacking: false 20 | IndentCaseLabels: true 21 | MaxEmptyLinesToKeep: 1 22 | NamespaceIndentation: None 23 | ObjCSpaceBeforeProtocolList: false 24 | PenaltyBreakBeforeFirstCallParameter: 1 25 | PenaltyBreakComment: 60 26 | PenaltyBreakString: 1000 27 | PenaltyBreakFirstLessLess: 120 28 | PenaltyExcessCharacter: 1000000 29 | PenaltyReturnTypeOnItsOwnLine: 200 30 | PointerBindsToType: true 31 | SpacesBeforeTrailingComments: 2 32 | Cpp11BracedListStyle: true 33 | Standard: Cpp11 34 | IndentWidth: 2 35 | TabWidth: 8 36 | UseTab: Never 37 | BreakBeforeBraces: Attach 38 | IndentFunctionDeclarationAfterType: true 39 | SpacesInParentheses: false 40 | SpacesInAngles: false 41 | SpaceInEmptyParentheses: false 42 | SpacesInCStyleCastParentheses: false 43 | SpaceAfterControlStatementKeyword: true 44 | SpaceBeforeAssignmentOperators: true 45 | ContinuationIndentWidth: 4 46 | ... 47 | 48 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | /tags 3 | /bazel-* 4 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c++ 2 | 3 | matrix: 4 | include: 5 | - os: linux 6 | compiler: gcc 7 | - os: osx 8 | compiler: clang 9 | - os: osx 10 | compiler: gcc 11 | env: 12 | - CTEST_OUTPUT_ON_FAILURE=1 13 | 14 | before_script: 15 | - mkdir build 16 | - cd build 17 | - cmake .. 18 | - cd .. 19 | script: 20 | - cmake --build build 21 | - cmake --build build --target test 22 | 23 | addons: 24 | apt: 25 | sources: 26 | - ubuntu-toolchain-r-test 27 | - llvm-toolchain-precise-3.9 28 | packages: 29 | - g++-4.9 30 | - clang-3.9 31 | update: true 32 | homebrew: 33 | packages: 34 | - ccache 35 | - gcc@4.9 36 | - llvm@4 37 | update: true 38 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/BUILD.bazel: -------------------------------------------------------------------------------- 1 | cc_library( 2 | name = "yaml-cpp_internal", 3 | visibility = ["//:__subpackages__"], 4 | strip_include_prefix = "src", 5 | hdrs = glob(["src/**/*.h"]), 6 | ) 7 | 8 | cc_library( 9 | name = "yaml-cpp", 10 | visibility = ["//visibility:public"], 11 | includes = ["include"], 12 | hdrs = glob(["include/**/*.h"]), 13 | srcs = glob(["src/**/*.cpp", "src/**/*.h"]), 14 | ) 15 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Style 2 | 3 | This project is formatted with [clang-format][fmt] using the style file at the root of the repository. Please run clang-format before sending a pull request. 4 | 5 | In general, try to follow the style of surrounding code. We mostly follow the [Google C++ style guide][cpp-style]. 6 | 7 | Commit messages should be in the imperative mood, as described in the [Git contributing file][git-contrib]: 8 | 9 | > Describe your changes in imperative mood, e.g. "make xyzzy do frotz" 10 | > instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy 11 | > to do frotz", as if you are giving orders to the codebase to change 12 | > its behaviour. 13 | 14 | [fmt]: http://clang.llvm.org/docs/ClangFormat.html 15 | [cpp-style]: https://google.github.io/styleguide/cppguide.html 16 | [git-contrib]: http://git.kernel.org/cgit/git/git.git/tree/Documentation/SubmittingPatches?id=HEAD 17 | 18 | # Tests 19 | 20 | Please verify the tests pass by running the target `tests/run_tests`. 21 | 22 | If you are adding functionality, add tests accordingly. 23 | 24 | # Pull request process 25 | 26 | Every pull request undergoes a code review. Unfortunately, github's code review process isn't great, but we'll manage. During the code review, if you make changes, add new commits to the pull request for each change. Once the code review is complete, rebase against the master branch and squash into a single commit. 27 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2015 Jesse Beder. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/WORKSPACE: -------------------------------------------------------------------------------- 1 | workspace(name = "com_github_jbeder_yaml_cpp") 2 | 3 | load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 4 | 5 | http_archive( 6 | name = "com_google_googletest", 7 | strip_prefix = "googletest-release-1.8.1", 8 | url = "https://github.com/google/googletest/archive/release-1.8.1.tar.gz", 9 | sha256 = "9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c", 10 | ) 11 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.{build} 2 | 3 | environment: 4 | matrix: 5 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 6 | CMAKE_GENERATOR: Visual Studio 14 2015 7 | CMAKE_PLATFORM: win32 8 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 9 | CMAKE_GENERATOR: Visual Studio 14 2015 10 | CMAKE_PLATFORM: x64 11 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 12 | CMAKE_GENERATOR: Visual Studio 15 2017 13 | CMAKE_PLATFORM: win32 14 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 15 | CMAKE_GENERATOR: Visual Studio 15 2017 16 | CMAKE_PLATFORM: x64 17 | 18 | before_build: 19 | - cmd: mkdir build 20 | - cmd: cd build 21 | - cmd: cmake .. -G "%CMAKE_GENERATOR%" -DCMAKE_GENERATOR_PLATFORM=%CMAKE_PLATFORM% 22 | - cmd: cd .. 23 | 24 | build_script: 25 | - cmake --build build 26 | test_script: 27 | - cmd: cd build 28 | - ctest 29 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/anchor.h: -------------------------------------------------------------------------------- 1 | #ifndef ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | namespace YAML { 13 | using anchor_t = std::size_t; 14 | const anchor_t NullAnchor = 0; 15 | } 16 | 17 | #endif // ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 18 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/contrib/anchordict.h: -------------------------------------------------------------------------------- 1 | #ifndef ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | #include "../anchor.h" 13 | 14 | namespace YAML { 15 | /** 16 | * An object that stores and retrieves values correlating to {@link anchor_t} 17 | * values. 18 | * 19 | *

Efficient implementation that can make assumptions about how 20 | * {@code anchor_t} values are assigned by the {@link Parser} class. 21 | */ 22 | template 23 | class AnchorDict { 24 | public: 25 | AnchorDict() : m_data{} {} 26 | void Register(anchor_t anchor, T value) { 27 | if (anchor > m_data.size()) { 28 | m_data.resize(anchor); 29 | } 30 | m_data[anchor - 1] = value; 31 | } 32 | 33 | T Get(anchor_t anchor) const { return m_data[anchor - 1]; } 34 | 35 | private: 36 | std::vector m_data; 37 | }; 38 | } // namespace YAML 39 | 40 | #endif // ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 41 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/dll.h: -------------------------------------------------------------------------------- 1 | #ifndef DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | // The following ifdef block is the standard way of creating macros which make 11 | // exporting from a DLL simpler. All files within this DLL are compiled with the 12 | // yaml_cpp_EXPORTS symbol defined on the command line. This symbol should not 13 | // be defined on any project that uses this DLL. This way any other project 14 | // whose source files include this file see YAML_CPP_API functions as being 15 | // imported from a DLL, whereas this DLL sees symbols defined with this macro as 16 | // being exported. 17 | #undef YAML_CPP_API 18 | 19 | #ifdef YAML_CPP_DLL // Using or Building YAML-CPP DLL (definition defined 20 | // manually) 21 | #ifdef yaml_cpp_EXPORTS // Building YAML-CPP DLL (definition created by CMake 22 | // or defined manually) 23 | // #pragma message( "Defining YAML_CPP_API for DLL export" ) 24 | #define YAML_CPP_API __declspec(dllexport) 25 | #else // yaml_cpp_EXPORTS 26 | // #pragma message( "Defining YAML_CPP_API for DLL import" ) 27 | #define YAML_CPP_API __declspec(dllimport) 28 | #endif // yaml_cpp_EXPORTS 29 | #else // YAML_CPP_DLL 30 | #define YAML_CPP_API 31 | #endif // YAML_CPP_DLL 32 | 33 | #endif // DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 34 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/emitterdef.h: -------------------------------------------------------------------------------- 1 | #ifndef EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | namespace YAML { 11 | struct EmitterNodeType { 12 | enum value { NoType, Property, Scalar, FlowSeq, BlockSeq, FlowMap, BlockMap }; 13 | }; 14 | } 15 | 16 | #endif // EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66 17 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/emitterstyle.h: -------------------------------------------------------------------------------- 1 | #ifndef EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | namespace YAML { 11 | struct EmitterStyle { 12 | enum value { Default, Block, Flow }; 13 | }; 14 | } 15 | 16 | #endif // EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 17 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/mark.h: -------------------------------------------------------------------------------- 1 | #ifndef MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | 12 | namespace YAML { 13 | struct YAML_CPP_API Mark { 14 | Mark() : pos(0), line(0), column(0) {} 15 | 16 | static const Mark null_mark() { return Mark(-1, -1, -1); } 17 | 18 | bool is_null() const { return pos == -1 && line == -1 && column == -1; } 19 | 20 | int pos; 21 | int line, column; 22 | 23 | private: 24 | Mark(int pos_, int line_, int column_) 25 | : pos(pos_), line(line_), column(column_) {} 26 | }; 27 | } 28 | 29 | #endif // MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 30 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/node/detail/iterator_fwd.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include 12 | #include 13 | #include 14 | 15 | namespace YAML { 16 | 17 | namespace detail { 18 | struct iterator_value; 19 | template 20 | class iterator_base; 21 | } 22 | 23 | using iterator = detail::iterator_base; 24 | using const_iterator = detail::iterator_base; 25 | } 26 | 27 | #endif // VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66 28 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/node/detail/memory.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | #include "yaml-cpp/dll.h" 13 | #include "yaml-cpp/node/ptr.h" 14 | 15 | namespace YAML { 16 | namespace detail { 17 | class node; 18 | } // namespace detail 19 | } // namespace YAML 20 | 21 | namespace YAML { 22 | namespace detail { 23 | class YAML_CPP_API memory { 24 | public: 25 | memory() : m_nodes{} {} 26 | node& create_node(); 27 | void merge(const memory& rhs); 28 | 29 | private: 30 | using Nodes = std::set; 31 | Nodes m_nodes; 32 | }; 33 | 34 | class YAML_CPP_API memory_holder { 35 | public: 36 | memory_holder() : m_pMemory(new memory) {} 37 | 38 | node& create_node() { return m_pMemory->create_node(); } 39 | void merge(memory_holder& rhs); 40 | 41 | private: 42 | shared_memory m_pMemory; 43 | }; 44 | } // namespace detail 45 | } // namespace YAML 46 | 47 | #endif // VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66 48 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/node/emit.h: -------------------------------------------------------------------------------- 1 | #ifndef NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | 13 | #include "yaml-cpp/dll.h" 14 | 15 | namespace YAML { 16 | class Emitter; 17 | class Node; 18 | 19 | /** 20 | * Emits the node to the given {@link Emitter}. If there is an error in writing, 21 | * {@link Emitter#good} will return false. 22 | */ 23 | YAML_CPP_API Emitter& operator<<(Emitter& out, const Node& node); 24 | 25 | /** Emits the node to the given output stream. */ 26 | YAML_CPP_API std::ostream& operator<<(std::ostream& out, const Node& node); 27 | 28 | /** Converts the node to a YAML string. */ 29 | YAML_CPP_API std::string Dump(const Node& node); 30 | } // namespace YAML 31 | 32 | #endif // NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 33 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/node/iterator.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include "yaml-cpp/node/node.h" 12 | #include "yaml-cpp/node/detail/iterator_fwd.h" 13 | #include "yaml-cpp/node/detail/iterator.h" 14 | #include 15 | #include 16 | #include 17 | 18 | namespace YAML { 19 | namespace detail { 20 | struct iterator_value : public Node, std::pair { 21 | iterator_value() = default; 22 | explicit iterator_value(const Node& rhs) 23 | : Node(rhs), 24 | std::pair(Node(Node::ZombieNode), Node(Node::ZombieNode)) {} 25 | explicit iterator_value(const Node& key, const Node& value) 26 | : Node(Node::ZombieNode), std::pair(key, value) {} 27 | }; 28 | } 29 | } 30 | 31 | #endif // VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 32 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/node/ptr.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include 12 | 13 | namespace YAML { 14 | namespace detail { 15 | class node; 16 | class node_ref; 17 | class node_data; 18 | class memory; 19 | class memory_holder; 20 | 21 | using shared_node = std::shared_ptr; 22 | using shared_node_ref = std::shared_ptr; 23 | using shared_node_data = std::shared_ptr; 24 | using shared_memory_holder = std::shared_ptr; 25 | using shared_memory = std::shared_ptr; 26 | } 27 | } 28 | 29 | #endif // VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 30 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/node/type.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | namespace YAML { 11 | struct NodeType { 12 | enum value { Undefined, Null, Scalar, Sequence, Map }; 13 | }; 14 | } 15 | 16 | #endif // VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 17 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/noexcept.h: -------------------------------------------------------------------------------- 1 | #ifndef NOEXCEPT_H_768872DA_476C_11EA_88B8_90B11C0C0FF8 2 | #define NOEXCEPT_H_768872DA_476C_11EA_88B8_90B11C0C0FF8 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | // This is here for compatibility with older versions of Visual Studio 11 | // which don't support noexcept. 12 | #if defined(_MSC_VER) && _MSC_VER < 1900 13 | #define YAML_CPP_NOEXCEPT _NOEXCEPT 14 | #else 15 | #define YAML_CPP_NOEXCEPT noexcept 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/null.h: -------------------------------------------------------------------------------- 1 | #ifndef NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include 12 | 13 | namespace YAML { 14 | class Node; 15 | 16 | struct YAML_CPP_API _Null {}; 17 | inline bool operator==(const _Null&, const _Null&) { return true; } 18 | inline bool operator!=(const _Null&, const _Null&) { return false; } 19 | 20 | YAML_CPP_API bool IsNull(const Node& node); // old API only 21 | YAML_CPP_API bool IsNullString(const std::string& str); 22 | 23 | extern YAML_CPP_API _Null Null; 24 | } 25 | 26 | #endif // NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 27 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/stlemitter.h: -------------------------------------------------------------------------------- 1 | #ifndef STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | namespace YAML { 16 | template 17 | inline Emitter& EmitSeq(Emitter& emitter, const Seq& seq) { 18 | emitter << BeginSeq; 19 | for (const auto& v : seq) 20 | emitter << v; 21 | emitter << EndSeq; 22 | return emitter; 23 | } 24 | 25 | template 26 | inline Emitter& operator<<(Emitter& emitter, const std::vector& v) { 27 | return EmitSeq(emitter, v); 28 | } 29 | 30 | template 31 | inline Emitter& operator<<(Emitter& emitter, const std::list& v) { 32 | return EmitSeq(emitter, v); 33 | } 34 | 35 | template 36 | inline Emitter& operator<<(Emitter& emitter, const std::set& v) { 37 | return EmitSeq(emitter, v); 38 | } 39 | 40 | template 41 | inline Emitter& operator<<(Emitter& emitter, const std::map& m) { 42 | emitter << BeginMap; 43 | for (const auto& v : m) 44 | emitter << Key << v.first << Value << v.second; 45 | emitter << EndMap; 46 | return emitter; 47 | } 48 | } 49 | 50 | #endif // STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66 51 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/include/yaml-cpp/yaml.h: -------------------------------------------------------------------------------- 1 | #ifndef YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/parser.h" 11 | #include "yaml-cpp/emitter.h" 12 | #include "yaml-cpp/emitterstyle.h" 13 | #include "yaml-cpp/stlemitter.h" 14 | #include "yaml-cpp/exceptions.h" 15 | 16 | #include "yaml-cpp/node/node.h" 17 | #include "yaml-cpp/node/impl.h" 18 | #include "yaml-cpp/node/convert.h" 19 | #include "yaml-cpp/node/iterator.h" 20 | #include "yaml-cpp/node/detail/impl.h" 21 | #include "yaml-cpp/node/parse.h" 22 | #include "yaml-cpp/node/emit.h" 23 | 24 | #endif // YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66 25 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/install.txt: -------------------------------------------------------------------------------- 1 | *** With CMake *** 2 | 3 | yaml-cpp uses CMake to support cross-platform building. In a UNIX-like system, the basic steps to build are: 4 | 5 | 1. Download and install CMake (if you don't have root privileges, just install to a local directory, like ~/bin) 6 | 7 | 2. From the source directory, run: 8 | 9 | mkdir build 10 | cd build 11 | cmake .. 12 | 13 | and then the usual 14 | 15 | make 16 | make install 17 | 18 | 3. To clean up, just remove the 'build' directory. 19 | 20 | *** Without CMake *** 21 | 22 | If you don't want to use CMake, just add all .cpp files to a makefile. yaml-cpp does not need any special build settings, so no 'configure' file is necessary. 23 | 24 | (Note: this is pretty tedious. It's sooo much easier to use CMake.) 25 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/collectionstack.h: -------------------------------------------------------------------------------- 1 | #ifndef COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | namespace YAML { 13 | struct CollectionType { 14 | enum value { NoCollection, BlockMap, BlockSeq, FlowMap, FlowSeq, CompactMap }; 15 | }; 16 | 17 | class CollectionStack { 18 | public: 19 | CollectionStack() : collectionStack{} {} 20 | CollectionType::value GetCurCollectionType() const { 21 | if (collectionStack.empty()) 22 | return CollectionType::NoCollection; 23 | return collectionStack.top(); 24 | } 25 | 26 | void PushCollectionType(CollectionType::value type) { 27 | collectionStack.push(type); 28 | } 29 | void PopCollectionType(CollectionType::value type) { 30 | collectionStack.pop(); 31 | } 32 | 33 | private: 34 | std::stack collectionStack; 35 | }; 36 | } // namespace YAML 37 | 38 | #endif // COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 39 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/depthguard.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/depthguard.h" 2 | 3 | namespace YAML { 4 | 5 | DeepRecursion::DeepRecursion(int depth, const Mark& mark_, 6 | const std::string& msg_) 7 | : ParserException(mark_, msg_), m_depth(depth) {} 8 | 9 | } // namespace YAML 10 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/directives.cpp: -------------------------------------------------------------------------------- 1 | #include "directives.h" 2 | 3 | namespace YAML { 4 | Directives::Directives() : version{true, 1, 2}, tags{} {} 5 | 6 | const std::string Directives::TranslateTagHandle( 7 | const std::string& handle) const { 8 | auto it = tags.find(handle); 9 | if (it == tags.end()) { 10 | if (handle == "!!") 11 | return "tag:yaml.org,2002:"; 12 | return handle; 13 | } 14 | 15 | return it->second; 16 | } 17 | } // namespace YAML 18 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/directives.h: -------------------------------------------------------------------------------- 1 | #ifndef DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | 13 | namespace YAML { 14 | struct Version { 15 | bool isDefault; 16 | int major, minor; 17 | }; 18 | 19 | struct Directives { 20 | Directives(); 21 | 22 | const std::string TranslateTagHandle(const std::string& handle) const; 23 | 24 | Version version; 25 | std::map tags; 26 | }; 27 | } 28 | 29 | #endif // DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66 30 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/emit.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/node/emit.h" 2 | #include "nodeevents.h" 3 | #include "yaml-cpp/emitfromevents.h" 4 | #include "yaml-cpp/emitter.h" 5 | 6 | namespace YAML { 7 | Emitter& operator<<(Emitter& out, const Node& node) { 8 | EmitFromEvents emitFromEvents(out); 9 | NodeEvents events(node); 10 | events.Emit(emitFromEvents); 11 | return out; 12 | } 13 | 14 | std::ostream& operator<<(std::ostream& out, const Node& node) { 15 | Emitter emitter(out); 16 | emitter << node; 17 | return out; 18 | } 19 | 20 | std::string Dump(const Node& node) { 21 | Emitter emitter; 22 | emitter << node; 23 | return emitter.c_str(); 24 | } 25 | } // namespace YAML 26 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/exceptions.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/exceptions.h" 2 | #include "yaml-cpp/noexcept.h" 3 | 4 | namespace YAML { 5 | 6 | // These destructors are defined out-of-line so the vtable is only emitted once. 7 | Exception::~Exception() YAML_CPP_NOEXCEPT = default; 8 | ParserException::~ParserException() YAML_CPP_NOEXCEPT = default; 9 | RepresentationException::~RepresentationException() YAML_CPP_NOEXCEPT = default; 10 | InvalidScalar::~InvalidScalar() YAML_CPP_NOEXCEPT = default; 11 | KeyNotFound::~KeyNotFound() YAML_CPP_NOEXCEPT = default; 12 | InvalidNode::~InvalidNode() YAML_CPP_NOEXCEPT = default; 13 | BadConversion::~BadConversion() YAML_CPP_NOEXCEPT = default; 14 | BadDereference::~BadDereference() YAML_CPP_NOEXCEPT = default; 15 | BadSubscript::~BadSubscript() YAML_CPP_NOEXCEPT = default; 16 | BadPushback::~BadPushback() YAML_CPP_NOEXCEPT = default; 17 | BadInsert::~BadInsert() YAML_CPP_NOEXCEPT = default; 18 | EmitterException::~EmitterException() YAML_CPP_NOEXCEPT = default; 19 | BadFile::~BadFile() YAML_CPP_NOEXCEPT = default; 20 | } // namespace YAML 21 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/indentation.h: -------------------------------------------------------------------------------- 1 | #ifndef INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | 13 | #include "yaml-cpp/ostream_wrapper.h" 14 | 15 | namespace YAML { 16 | struct Indentation { 17 | Indentation(std::size_t n_) : n(n_) {} 18 | std::size_t n; 19 | }; 20 | 21 | inline ostream_wrapper& operator<<(ostream_wrapper& out, 22 | const Indentation& indent) { 23 | for (std::size_t i = 0; i < indent.n; i++) 24 | out << ' '; 25 | return out; 26 | } 27 | 28 | struct IndentTo { 29 | IndentTo(std::size_t n_) : n(n_) {} 30 | std::size_t n; 31 | }; 32 | 33 | inline ostream_wrapper& operator<<(ostream_wrapper& out, 34 | const IndentTo& indent) { 35 | while (out.col() < indent.n) 36 | out << ' '; 37 | return out; 38 | } 39 | } 40 | 41 | #endif // INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66 42 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/memory.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/node/detail/memory.h" 2 | #include "yaml-cpp/node/detail/node.h" // IWYU pragma: keep 3 | #include "yaml-cpp/node/ptr.h" 4 | 5 | namespace YAML { 6 | namespace detail { 7 | 8 | void memory_holder::merge(memory_holder& rhs) { 9 | if (m_pMemory == rhs.m_pMemory) 10 | return; 11 | 12 | m_pMemory->merge(*rhs.m_pMemory); 13 | rhs.m_pMemory = m_pMemory; 14 | } 15 | 16 | node& memory::create_node() { 17 | shared_node pNode(new node); 18 | m_nodes.insert(pNode); 19 | return *pNode; 20 | } 21 | 22 | void memory::merge(const memory& rhs) { 23 | m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end()); 24 | } 25 | } // namespace detail 26 | } // namespace YAML 27 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/node.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/node/node.h" 2 | #include "nodebuilder.h" 3 | #include "nodeevents.h" 4 | 5 | namespace YAML { 6 | Node Clone(const Node& node) { 7 | NodeEvents events(node); 8 | NodeBuilder builder; 9 | events.Emit(builder); 10 | return builder.Root(); 11 | } 12 | } // namespace YAML 13 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/null.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/null.h" 2 | 3 | namespace YAML { 4 | _Null Null; 5 | 6 | bool IsNullString(const std::string& str) { 7 | return str.empty() || str == "~" || str == "null" || str == "Null" || 8 | str == "NULL"; 9 | } 10 | } // namespace YAML 11 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/ostream_wrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/ostream_wrapper.h" 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace YAML { 8 | ostream_wrapper::ostream_wrapper() 9 | : m_buffer(1, '\0'), 10 | m_pStream(nullptr), 11 | m_pos(0), 12 | m_row(0), 13 | m_col(0), 14 | m_comment(false) {} 15 | 16 | ostream_wrapper::ostream_wrapper(std::ostream& stream) 17 | : m_buffer{}, 18 | m_pStream(&stream), 19 | m_pos(0), 20 | m_row(0), 21 | m_col(0), 22 | m_comment(false) {} 23 | 24 | ostream_wrapper::~ostream_wrapper() = default; 25 | 26 | void ostream_wrapper::write(const std::string& str) { 27 | if (m_pStream) { 28 | m_pStream->write(str.c_str(), str.size()); 29 | } else { 30 | m_buffer.resize(std::max(m_buffer.size(), m_pos + str.size() + 1)); 31 | std::copy(str.begin(), str.end(), m_buffer.begin() + m_pos); 32 | } 33 | 34 | for (char ch : str) { 35 | update_pos(ch); 36 | } 37 | } 38 | 39 | void ostream_wrapper::write(const char* str, std::size_t size) { 40 | if (m_pStream) { 41 | m_pStream->write(str, size); 42 | } else { 43 | m_buffer.resize(std::max(m_buffer.size(), m_pos + size + 1)); 44 | std::copy(str, str + size, m_buffer.begin() + m_pos); 45 | } 46 | 47 | for (std::size_t i = 0; i < size; i++) { 48 | update_pos(str[i]); 49 | } 50 | } 51 | 52 | void ostream_wrapper::update_pos(char ch) { 53 | m_pos++; 54 | m_col++; 55 | 56 | if (ch == '\n') { 57 | m_row++; 58 | m_col = 0; 59 | m_comment = false; 60 | } 61 | } 62 | } // namespace YAML 63 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/ptr_vector.h: -------------------------------------------------------------------------------- 1 | #ifndef PTR_VECTOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define PTR_VECTOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | namespace YAML { 16 | 17 | // TODO: This class is no longer needed 18 | template 19 | class ptr_vector { 20 | public: 21 | ptr_vector() : m_data{} {} 22 | ptr_vector(const ptr_vector&) = delete; 23 | ptr_vector(ptr_vector&&) = default; 24 | ptr_vector& operator=(const ptr_vector&) = delete; 25 | ptr_vector& operator=(ptr_vector&&) = default; 26 | 27 | void clear() { m_data.clear(); } 28 | 29 | std::size_t size() const { return m_data.size(); } 30 | bool empty() const { return m_data.empty(); } 31 | 32 | void push_back(std::unique_ptr&& t) { m_data.push_back(std::move(t)); } 33 | T& operator[](std::size_t i) { return *m_data[i]; } 34 | const T& operator[](std::size_t i) const { return *m_data[i]; } 35 | 36 | T& back() { return *(m_data.back().get()); } 37 | 38 | const T& back() const { return *(m_data.back().get()); } 39 | 40 | private: 41 | std::vector> m_data; 42 | }; 43 | } // namespace YAML 44 | 45 | #endif // PTR_VECTOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 46 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/regex_yaml.cpp: -------------------------------------------------------------------------------- 1 | #include "regex_yaml.h" 2 | 3 | namespace YAML { 4 | // constructors 5 | 6 | RegEx::RegEx(REGEX_OP op) : m_op(op), m_a(0), m_z(0), m_params{} {} 7 | RegEx::RegEx() : RegEx(REGEX_EMPTY) {} 8 | 9 | RegEx::RegEx(char ch) : m_op(REGEX_MATCH), m_a(ch), m_z(0), m_params{} {} 10 | 11 | RegEx::RegEx(char a, char z) : m_op(REGEX_RANGE), m_a(a), m_z(z), m_params{} {} 12 | 13 | RegEx::RegEx(const std::string& str, REGEX_OP op) 14 | : m_op(op), m_a(0), m_z(0), m_params(str.begin(), str.end()) {} 15 | 16 | // combination constructors 17 | RegEx operator!(const RegEx& ex) { 18 | RegEx ret(REGEX_NOT); 19 | ret.m_params.push_back(ex); 20 | return ret; 21 | } 22 | 23 | RegEx operator|(const RegEx& ex1, const RegEx& ex2) { 24 | RegEx ret(REGEX_OR); 25 | ret.m_params.push_back(ex1); 26 | ret.m_params.push_back(ex2); 27 | return ret; 28 | } 29 | 30 | RegEx operator&(const RegEx& ex1, const RegEx& ex2) { 31 | RegEx ret(REGEX_AND); 32 | ret.m_params.push_back(ex1); 33 | ret.m_params.push_back(ex2); 34 | return ret; 35 | } 36 | 37 | RegEx operator+(const RegEx& ex1, const RegEx& ex2) { 38 | RegEx ret(REGEX_SEQ); 39 | ret.m_params.push_back(ex1); 40 | ret.m_params.push_back(ex2); 41 | return ret; 42 | } 43 | } // namespace YAML 44 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/scantag.h: -------------------------------------------------------------------------------- 1 | #ifndef SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include "stream.h" 12 | 13 | namespace YAML { 14 | const std::string ScanVerbatimTag(Stream& INPUT); 15 | const std::string ScanTagHandle(Stream& INPUT, bool& canBeHandle); 16 | const std::string ScanTagSuffix(Stream& INPUT); 17 | } 18 | 19 | #endif // SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 20 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/stringsource.h: -------------------------------------------------------------------------------- 1 | #ifndef STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | namespace YAML { 13 | class StringCharSource { 14 | public: 15 | StringCharSource(const char* str, std::size_t size) 16 | : m_str(str), m_size(size), m_offset(0) {} 17 | 18 | operator bool() const { return m_offset < m_size; } 19 | char operator[](std::size_t i) const { return m_str[m_offset + i]; } 20 | bool operator!() const { return !static_cast(*this); } 21 | 22 | const StringCharSource operator+(int i) const { 23 | StringCharSource source(*this); 24 | if (static_cast(source.m_offset) + i >= 0) 25 | source.m_offset += i; 26 | else 27 | source.m_offset = 0; 28 | return source; 29 | } 30 | 31 | StringCharSource& operator++() { 32 | ++m_offset; 33 | return *this; 34 | } 35 | 36 | StringCharSource& operator+=(std::size_t offset) { 37 | m_offset += offset; 38 | return *this; 39 | } 40 | 41 | private: 42 | const char* m_str; 43 | std::size_t m_size; 44 | std::size_t m_offset; 45 | }; 46 | } 47 | 48 | #endif // STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 49 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/tag.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "directives.h" // IWYU pragma: keep 4 | #include "tag.h" 5 | #include "token.h" 6 | 7 | namespace YAML { 8 | Tag::Tag(const Token& token) 9 | : type(static_cast(token.data)), handle{}, value{} { 10 | switch (type) { 11 | case VERBATIM: 12 | value = token.value; 13 | break; 14 | case PRIMARY_HANDLE: 15 | value = token.value; 16 | break; 17 | case SECONDARY_HANDLE: 18 | value = token.value; 19 | break; 20 | case NAMED_HANDLE: 21 | handle = token.value; 22 | value = token.params[0]; 23 | break; 24 | case NON_SPECIFIC: 25 | default: 26 | break; 27 | } 28 | } 29 | 30 | const std::string Tag::Translate(const Directives& directives) { 31 | switch (type) { 32 | case VERBATIM: 33 | return value; 34 | case PRIMARY_HANDLE: 35 | return directives.TranslateTagHandle("!") + value; 36 | case SECONDARY_HANDLE: 37 | return directives.TranslateTagHandle("!!") + value; 38 | case NAMED_HANDLE: 39 | return directives.TranslateTagHandle("!" + handle + "!") + value; 40 | case NON_SPECIFIC: 41 | // TODO: 42 | return "!"; 43 | default: 44 | break; 45 | } 46 | throw std::runtime_error("yaml-cpp: internal error, bad tag type"); 47 | } 48 | } // namespace YAML 49 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/src/tag.h: -------------------------------------------------------------------------------- 1 | #ifndef TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | namespace YAML { 13 | struct Directives; 14 | struct Token; 15 | 16 | struct Tag { 17 | enum TYPE { 18 | VERBATIM, 19 | PRIMARY_HANDLE, 20 | SECONDARY_HANDLE, 21 | NAMED_HANDLE, 22 | NON_SPECIFIC 23 | }; 24 | 25 | Tag(const Token& token); 26 | const std::string Translate(const Directives& directives); 27 | 28 | TYPE type; 29 | std::string handle, value; 30 | }; 31 | } 32 | 33 | #endif // TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 34 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/yaml-cpp-config.cmake.in: -------------------------------------------------------------------------------- 1 | # - Config file for the yaml-cpp package 2 | # It defines the following variables 3 | # YAML_CPP_INCLUDE_DIR - include directory 4 | # YAML_CPP_LIBRARIES - libraries to link against 5 | 6 | # Compute paths 7 | get_filename_component(YAML_CPP_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) 8 | set(YAML_CPP_INCLUDE_DIR "@CONFIG_INCLUDE_DIRS@") 9 | 10 | # Our library dependencies (contains definitions for IMPORTED targets) 11 | include("${YAML_CPP_CMAKE_DIR}/yaml-cpp-targets.cmake") 12 | 13 | # These are IMPORTED targets created by yaml-cpp-targets.cmake 14 | set(YAML_CPP_LIBRARIES "@EXPORT_TARGETS@") 15 | -------------------------------------------------------------------------------- /3rdparty/yaml-cpp/yaml-cpp.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ 4 | libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ 5 | 6 | Name: Yaml-cpp 7 | Description: A YAML parser and emitter for C++ 8 | Version: @YAML_CPP_VERSION@ 9 | Requires: 10 | Libs: -L${libdir} -lyaml-cpp 11 | Cflags: -I${includedir} 12 | -------------------------------------------------------------------------------- /3rdparty/zlib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(z 2 | adler32.c 3 | compress.c 4 | crc32.c 5 | deflate.c 6 | gzclose.c 7 | gzlib.c 8 | gzread.c 9 | gzwrite.c 10 | infback.c 11 | inffast.c 12 | inflate.c 13 | inftrees.c 14 | trees.c 15 | uncompr.c 16 | zutil.c 17 | 18 | 19 | crc32.h 20 | deflate.h 21 | inffast.h 22 | inffixed.h 23 | inflate.h 24 | inftrees.h 25 | trees.h 26 | zconf.h 27 | zlib.h 28 | zutil.h 29 | ) 30 | 31 | target_compile_definitions(z PRIVATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS) 32 | if(WIN32) 33 | target_compile_definitions(z PRIVATE -D__WIN32__ -DWIN32 -D_WINDOWS -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP) 34 | endif() 35 | -------------------------------------------------------------------------------- /3rdparty/zlib/gzclose.c: -------------------------------------------------------------------------------- 1 | /* gzclose.c -- zlib gzclose() function 2 | * Copyright (C) 2004, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | #include "gzguts.h" 7 | 8 | /* gzclose() is in a separate file so that it is linked in only if it is used. 9 | That way the other gzclose functions can be used instead to avoid linking in 10 | unneeded compression or decompression routines. */ 11 | int ZEXPORT gzclose(file) 12 | gzFile file; 13 | { 14 | #ifndef NO_GZCOMPRESS 15 | gz_statep state; 16 | 17 | if (file == NULL) 18 | return Z_STREAM_ERROR; 19 | state = (gz_statep)file; 20 | 21 | return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); 22 | #else 23 | return gzclose_r(file); 24 | #endif 25 | } 26 | -------------------------------------------------------------------------------- /3rdparty/zlib/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /cmake/CheckLib.cmake: -------------------------------------------------------------------------------- 1 | macro(_internal_message msg) 2 | message("${msg}") 3 | endmacro() 4 | 5 | macro(check_lib var lib) 6 | set(_arg_list ${ARGN}) 7 | 8 | if(PKG_CONFIG_FOUND AND NOT ${var}_FOUND AND NOT CMAKE_CROSSCOMPILING) 9 | string(TOLOWER ${lib} lower_lib) 10 | pkg_search_module(${var} QUIET ${lower_lib}) 11 | endif() 12 | 13 | if(${var}_FOUND) 14 | include_directories(${${var}_INCLUDE_DIRS}) 15 | # Make sure include directories for headers found using find_path below 16 | # are re-added when reconfiguring 17 | include_directories(${${var}_INCLUDE}) 18 | _internal_message("-- ${var} found pkg") 19 | else() 20 | find_library(${var}_LIBRARIES ${lib}) 21 | if(_arg_list) 22 | find_path(${var}_INCLUDE ${_arg_list}) 23 | else() 24 | set(${var}_INCLUDE FALSE) 25 | endif() 26 | 27 | if(${var}_LIBRARIES AND ${var}_INCLUDE) 28 | include_directories(${${var}_INCLUDE}) 29 | _internal_message("-- ${var} found") 30 | set(${var}_FOUND 1 CACHE INTERNAL "") 31 | elseif(${var}_LIBRARIES) 32 | _internal_message("-- ${var} not found (miss include)") 33 | elseif(${var}_INCLUDE) 34 | _internal_message("-- ${var} not found (miss lib)") 35 | else() 36 | _internal_message("-- ${var} not found") 37 | endif() 38 | endif() 39 | endmacro() 40 | -------------------------------------------------------------------------------- /cmake/FindLibc.cmake: -------------------------------------------------------------------------------- 1 | # Once done, this will define 2 | # 3 | # LIBC_FOUND - system has libc 4 | # LIBC_LIBRARIES - link these to use libc 5 | 6 | if(LIBC_LIBRARIES) 7 | set(LIBC_FIND_QUIETLY TRUE) 8 | endif(LIBC_LIBRARIES) 9 | 10 | find_library(libm NAMES m) 11 | 12 | # OSX doesn't have rt. On Linux timer and aio dependency. 13 | if(APPLE) 14 | set(LIBC_LIBRARIES ${librt} ${libm}) 15 | elseif(Linux) 16 | find_library(librt NAMES rt) 17 | set(LIBC_LIBRARIES ${librt} ${libm}) 18 | else() 19 | find_library(librt NAMES rt) 20 | set(LIBC_LIBRARIES ${librt} ${libm}) 21 | endif() 22 | 23 | # handle the QUIETLY and REQUIRED arguments and set LIBC_FOUND to TRUE if 24 | # all listed variables are TRUE 25 | include(FindPackageHandleStandardArgs) 26 | find_package_handle_standard_args(Libc DEFAULT_MSG LIBC_LIBRARIES) 27 | 28 | mark_as_advanced(LIBC_LIBRARIES) 29 | 30 | -------------------------------------------------------------------------------- /cmake/SelectPcsx2Plugins.cmake: -------------------------------------------------------------------------------- 1 | set(common_libs TRUE) 2 | 3 | set(pcsx2_core TRUE) 4 | set(USBnull TRUE) 5 | -------------------------------------------------------------------------------- /cmake/darwin-compiler-i386-clang.cmake: -------------------------------------------------------------------------------- 1 | # Tell cmake we are cross compiling and targeting darwin 2 | set(CMAKE_SYSTEM_NAME Darwin) 3 | set(CMAKE_SYSTEM_PROCESSOR i686) 4 | 5 | # Use clang and target i686-apple-darwin. 6 | set(CMAKE_C_COMPILER clang -m32) 7 | set(CMAKE_C_COMPILER_TARGET i686-apple-darwin) 8 | set(CMAKE_CXX_COMPILER clang++ -m32) 9 | set(CMAKE_CXX_COMPILER_TARGET i686-apple-darwin) 10 | 11 | # If given a CMAKE_FIND_ROOT_PATH then 12 | # FIND_PROGRAM ignores CMAKE_FIND_ROOT_PATH (probably can't run) 13 | # FIND_{LIBRARY,INCLUDE,PACKAGE} only uses the files in CMAKE_FIND_ROOT_PATH. 14 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 15 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 16 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 17 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) 18 | -------------------------------------------------------------------------------- /cmake/darwin-compiler-i386-generic.cmake: -------------------------------------------------------------------------------- 1 | # Tell cmake we are cross compiling and targeting darwin 2 | set(CMAKE_SYSTEM_NAME Darwin) 3 | set(CMAKE_SYSTEM_PROCESSOR i686) 4 | 5 | # Leave it generic since it could be clang, gnu, etc. 6 | if("$ENV{CC}" STREQUAL "" OR "$ENV{CXX}" STREQUAL "") 7 | set(CMAKE_C_COMPILER cc -m32) 8 | set(CMAKE_CXX_COMPILER c++ -m32) 9 | endif() 10 | 11 | # If given a CMAKE_FIND_ROOT_PATH then 12 | # FIND_PROGRAM ignores CMAKE_FIND_ROOT_PATH (probably can't run) 13 | # FIND_{LIBRARY,INCLUDE,PACKAGE} only uses the files in CMAKE_FIND_ROOT_PATH. 14 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 15 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 16 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 17 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) 18 | -------------------------------------------------------------------------------- /cmake/darwin13-compiler-i386-clang.cmake: -------------------------------------------------------------------------------- 1 | # Tell cmake we are cross compiling and targeting darwin 2 | #set(CMAKE_SYSTEM_NAME Darwin) 3 | #set(CMAKE_SYSTEM_PROCESSOR i686) 4 | 5 | # Use clang and target i686-apple-darwin13.0.0 (Mavericks) 6 | set(CMAKE_C_COMPILER clang -m32) 7 | #set(CMAKE_C_COMPILER_TARGET i686-apple-darwin13.0.0) 8 | set(CMAKE_CXX_COMPILER clang++ -m32) 9 | #set(CMAKE_CXX_COMPILER_TARGET i686-apple-darwin13.0.0) 10 | 11 | #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpmath=sse -msse2") 12 | #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse -msse2") 13 | 14 | # If given a CMAKE_FIND_ROOT_PATH then 15 | # FIND_PROGRAM ignores CMAKE_FIND_ROOT_PATH (probably can't run) 16 | # FIND_{LIBRARY,INCLUDE,PACKAGE} only uses the files in CMAKE_FIND_ROOT_PATH. 17 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 18 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 19 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 20 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) 21 | -------------------------------------------------------------------------------- /common/include/Utilities/AppTrait.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2014 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include 19 | 20 | // -------------------------------------------------------------------------------------- 21 | // Pcsx2AppTraits 22 | // -------------------------------------------------------------------------------------- 23 | // Overrides and customizes some default wxWidgets behaviors. This class is instanized by 24 | // calls to Pcsx2App::CreateTraits(), which is called from wxWidgets as-needed. wxWidgets 25 | // does cache an instance of the traits, so the object construction need not be trivial 26 | // (translation: it can be complicated-ish -- it won't affect performance). 27 | // 28 | class Pcsx2AppTraits : public wxConsoleAppTraits 29 | { 30 | typedef wxConsoleAppTraits _parent; 31 | public: 32 | virtual ~Pcsx2AppTraits() {} 33 | wxEventLoopBase* CreateEventLoop(); 34 | }; 35 | -------------------------------------------------------------------------------- /common/include/Utilities/FastJmp.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2021 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | #include "Pcsx2Defs.h" 18 | #include 19 | #include 20 | 21 | struct fastjmp_buf 22 | { 23 | #if defined(_M_X86_64) && defined(_WIN32) 24 | static constexpr std::size_t BUF_SIZE = 240; 25 | #elif defined(_M_X86_64) 26 | static constexpr std::size_t BUF_SIZE = 64; 27 | #elif defined(_M_X86_32) 28 | static constexpr std::size_t BUF_SIZE = 24; 29 | #else 30 | #error Unknown architecture. 31 | #endif 32 | 33 | alignas(16) std::uint8_t buf[BUF_SIZE]; 34 | }; 35 | 36 | extern "C" { 37 | int fastjmp_set(fastjmp_buf* buf); 38 | __noreturn void fastjmp_jmp(const fastjmp_buf* buf, int ret); 39 | } 40 | -------------------------------------------------------------------------------- /common/include/Utilities/MathUtils.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2014- PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | // Hopefully this file will be used for cross-source math utilities. 18 | // Currently these are strewn across the code base. Please collect them all! 19 | 20 | #include "Pcsx2Defs.h" 21 | 22 | // On GCC >= 4.7, this is equivalent to __builtin_clrsb(n); 23 | inline u32 count_leading_sign_bits(s32 n) 24 | { 25 | // If the sign bit is 1, we invert the bits to 0 for count-leading-zero. 26 | if (n < 0) 27 | n = ~n; 28 | 29 | // If BSR is used directly, it would have an undefined value for 0. 30 | if (n == 0) 31 | return 32; 32 | 33 | // Perform our count leading zero. 34 | #ifdef _MSC_VER 35 | unsigned long ret; 36 | _BitScanReverse(&ret, n); 37 | return 31 - (u32)ret; 38 | #else 39 | return __builtin_clz(n); 40 | #endif 41 | } 42 | -------------------------------------------------------------------------------- /common/include/Utilities/MemcpyFast.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "Pcsx2Defs.h" 19 | 20 | #include 21 | 22 | // This method can clear any object-like entity -- which is anything that is not a pointer. 23 | // Structures, static arrays, etc. No need to include sizeof() crap, this does it automatically 24 | // for you! 25 | template 26 | static __fi void memzero(T &object) 27 | { 28 | memset(&object, 0, sizeof(T)); 29 | } 30 | 31 | // This method clears an object with the given 8 bit value. 32 | template 33 | static __fi void memset8(T &object) 34 | { 35 | memset(&object, data, sizeof(T)); 36 | } 37 | -------------------------------------------------------------------------------- /common/include/Utilities/pxForwardDefs.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | // -------------------------------------------------------------------------------------- 19 | // Forward Declarations Section 20 | // -------------------------------------------------------------------------------------- 21 | 22 | class wxOutputStream; 23 | class wxFileOutputStream; 24 | class wxFFileOutputStream; 25 | 26 | class wxStreamBase; 27 | class wxInputStream; 28 | class wxFileInputStream; 29 | class wxFFileInputStream; 30 | 31 | class pxInputStream; 32 | 33 | namespace Threading 34 | { 35 | class Mutex; 36 | class Semaphore; 37 | class pxThread; 38 | } 39 | 40 | namespace Exception 41 | { 42 | class BaseException; 43 | } 44 | -------------------------------------------------------------------------------- /common/include/x86emitter/implement/helpers.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | -------------------------------------------------------------------------------- /common/include/x86emitter/implement/incdec.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | // Implementations found here: Increment and Decrement Instructions! 19 | // (They're soooo lonely... but I dunno where else to stick this class!) 20 | 21 | namespace x86Emitter 22 | { 23 | 24 | // -------------------------------------------------------------------------------------- 25 | // xImpl_IncDec 26 | // -------------------------------------------------------------------------------------- 27 | struct xImpl_IncDec 28 | { 29 | bool isDec; 30 | 31 | void operator()(const xRegisterInt &to) const; 32 | void operator()(const xIndirect64orLess &to) const; 33 | }; 34 | 35 | } // End namespace x86Emitter 36 | -------------------------------------------------------------------------------- /common/include/x86emitter/implement/xchg.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | // This header file is intended to be the future home of xchg, cmpxchg, xadd, and 19 | // other threading-related exchange instructions. 20 | 21 | namespace x86Emitter 22 | { 23 | 24 | 25 | } // End namespace x86Emitter 26 | -------------------------------------------------------------------------------- /common/include/x86emitter/legacy_internal.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "internal.h" 19 | 20 | //------------------------------------------------------------------ 21 | // Legacy Helper Macros and Functions (depreciated) 22 | //------------------------------------------------------------------ 23 | 24 | #define emitterT __fi 25 | 26 | using x86Emitter::xWrite8; 27 | using x86Emitter::xWrite16; 28 | using x86Emitter::xWrite32; 29 | using x86Emitter::xWrite64; 30 | 31 | #include "legacy_types.h" 32 | #include "legacy_instructions.h" 33 | -------------------------------------------------------------------------------- /common/include/x86emitter/legacy_types.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | // general types 19 | typedef int x86SSERegType; 20 | -------------------------------------------------------------------------------- /common/include/x86emitter/x86_intrin.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2016 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | // Because nobody can't agree on a single name ! 19 | #if defined(__GNUC__) 20 | // Yes there are several files for the same features! 21 | // x86intrin.h which is the general include provided by the compiler 22 | // x86_intrin.h, this file, which is compatibility layer for severals intrinsics 23 | #include "x86intrin.h" 24 | #else 25 | #include "Intrin.h" 26 | #endif 27 | 28 | // Not correctly defined in GCC4.8 and below ! (dunno for VS) 29 | #ifndef _MM_MK_INSERTPS_NDX 30 | #define _MM_MK_INSERTPS_NDX(srcField, dstField, zeroMask) (((srcField) << 6) | ((dstField) << 4) | (zeroMask)) 31 | #endif 32 | -------------------------------------------------------------------------------- /common/src/Utilities/Exceptions.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #if defined(__UNIX__) 17 | #include 18 | #endif 19 | 20 | #include "Dependencies.h" 21 | 22 | #include "Threading.h" 23 | 24 | // for lack of a better place... 25 | Fnptr_OutOfMemory pxDoOutOfMemory = NULL; 26 | 27 | // -------------------------------------------------------------------------------------- 28 | // BaseException (implementations) 29 | // -------------------------------------------------------------------------------------- 30 | 31 | BaseException &BaseException::SetDiagMsg(const wxString &msg_diag) 32 | { 33 | m_message_diag = msg_diag; 34 | return *this; 35 | } 36 | 37 | BaseException &BaseException::SetUserMsg(const wxString &msg_user) 38 | { 39 | m_message_user = msg_user; 40 | return *this; 41 | } 42 | -------------------------------------------------------------------------------- /docs/Configuration_Guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/docs/Configuration_Guide.pdf -------------------------------------------------------------------------------- /libretro/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | add_library(pcsx2_libretro SHARED 3 | main.cpp 4 | options.cpp 5 | ) 6 | 7 | include_directories(${CMAKE_SOURCE_DIR}/pcsx2) 8 | include_directories(${CMAKE_SOURCE_DIR}/pcsx2/gui) 9 | include_directories(${CMAKE_SOURCE_DIR}/libretro) 10 | 11 | set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}") 12 | 13 | set_target_properties(pcsx2_libretro PROPERTIES PREFIX "") 14 | if(ANDROID) 15 | target_sources(pcsx2_libretro PRIVATE 16 | ) 17 | set_target_properties(pcsx2_libretro PROPERTIES SUFFIX "_android.so") 18 | endif() 19 | 20 | if(CMAKE_C_COMPILER_ID MATCHES "Clang") 21 | set(CLANG 1) 22 | endif() 23 | 24 | if(NOT MSVC AND NOT CLANG) 25 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") 26 | endif() 27 | 28 | if(LIBRETRO_STATIC) 29 | target_link_libraries(pcsx2_libretro PRIVATE 30 | pcsx2Core 31 | Utilities 32 | x86emitter 33 | ${wxWidgets_LIBRARIES} 34 | ${ZLIB_LIBRARIES} 35 | ${AIO_LIBRARIES} 36 | ${GCOV_LIBRARIES} 37 | ${LIBUDEV_LIBRARIES} 38 | "${pcsx2FinalFlags}" 39 | "-static-libgcc -static-libstdc++" 40 | ) 41 | else() 42 | target_link_libraries(pcsx2_libretro PRIVATE 43 | pcsx2Core 44 | ${pcsx2FinalLibs} 45 | "${pcsx2FinalFlags}" 46 | ) 47 | endif() 48 | -------------------------------------------------------------------------------- /libretro/input.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | void Input_Init(void); 5 | void Input_RumbleEnabled(bool enabled, int percent); 6 | void Input_setRumbleLevel(int percent); 7 | -------------------------------------------------------------------------------- /libretro/language_injector.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #pragma once 4 | 5 | 6 | struct bios_lang { 7 | const char* bios_name; 8 | const char* language; 9 | const uint8_t address; 10 | const uint8_t byte_lang; 11 | }; 12 | 13 | namespace LanguageInjector 14 | { 15 | void Inject(std::string bios_path, const char* language); 16 | 17 | 18 | bool _ModifyNVM(std::string bios_path, bios_lang lang_data); 19 | bios_lang _GetLanguageDataForBios(const char* bios_name, const char* language); 20 | bool _ModifyLanguageOptionByte(uint8_t buffer[], bios_lang lang_data); 21 | bool _FirstUpper(const std::string& word); 22 | 23 | 24 | } 25 | 26 | 27 | -------------------------------------------------------------------------------- /libretro/retro_messager.h: -------------------------------------------------------------------------------- 1 | #include "libretro.h" 2 | extern unsigned libretro_msg_interface_version; 3 | extern retro_environment_t environ_cb; 4 | extern retro_log_printf_t log_cb; 5 | 6 | namespace RetroMessager { 7 | void Message( 8 | unsigned priority, enum retro_log_level level, 9 | enum retro_message_target target, enum retro_message_type type, 10 | const char* str); 11 | void Notification(const char* str, bool logging); 12 | void Notification(const char* str); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /pcsx2/CDVD/ChdFileReader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "AsyncFileReader.h" 3 | #include "libchdr/chd.h" 4 | 5 | class ChdFileReader : public AsyncFileReader 6 | { 7 | DeclareNoncopyableObject(ChdFileReader); 8 | public: 9 | virtual ~ChdFileReader(void) { Close(); }; 10 | 11 | static bool CanHandle(const wxString &fileName); 12 | bool Open(const wxString &fileName) override; 13 | 14 | int ReadSync(void *pBuffer, uint sector, uint count) override; 15 | 16 | void BeginRead(void *pBuffer, uint sector, uint count) override; 17 | int FinishRead(void) override; 18 | void CancelRead(void) override {}; 19 | 20 | void Close(void) override; 21 | void SetBlockSize(uint blocksize); 22 | uint GetBlockSize() const; 23 | uint GetBlockCount(void) const override; 24 | ChdFileReader(void); 25 | 26 | private: 27 | chd_file *ChdFile; 28 | u8 *hunk_buffer; 29 | u32 sector_size; 30 | u32 sector_count; 31 | u32 sectors_per_hunk; 32 | u32 current_hunk; 33 | u32 async_read; 34 | }; -------------------------------------------------------------------------------- /pcsx2/CDVD/CompressedFileReader.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2014 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #include "AsyncFileReader.h" 17 | #include "CompressedFileReader.h" 18 | #include "ChdFileReader.h" 19 | #include "CsoFileReader.h" 20 | #include "GzippedFileReader.h" 21 | 22 | // CompressedFileReader factory. 23 | AsyncFileReader* CompressedFileReader::GetNewReader(const wxString& fileName) 24 | { 25 | if (ChdFileReader::CanHandle(fileName)) 26 | return new ChdFileReader(); 27 | if (GzippedFileReader::CanHandle(fileName)) 28 | return new GzippedFileReader(); 29 | if (CsoFileReader::CanHandle(fileName)) 30 | return new CsoFileReader(); 31 | // This is the one which will fail on open. 32 | return NULL; 33 | } 34 | -------------------------------------------------------------------------------- /pcsx2/CDVD/CompressedFileReader.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2014 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | // Factory - creates an AsyncFileReader derived instance which can read a compressed file 19 | class CompressedFileReader 20 | { 21 | public: 22 | // fileName and its contents may be used to choose the compressed reader. 23 | // If no matching handler is found, NULL is returned. 24 | // The returned instance still needs ->Open(filename) before usage. 25 | // Open(filename) may still fail. 26 | static AsyncFileReader* GetNewReader(const wxString& fileName); 27 | 28 | private: 29 | virtual ~CompressedFileReader() = 0; 30 | }; 31 | -------------------------------------------------------------------------------- /pcsx2/CDVD/IsoFS/IsoFS.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | class IsoFile; 19 | class IsoDirectory; 20 | struct ISoFileDescriptor; 21 | 22 | #include "SectorSource.h" 23 | #include "IsoFileDescriptor.h" 24 | #include "IsoDirectory.h" 25 | #include "IsoFile.h" 26 | -------------------------------------------------------------------------------- /pcsx2/CDVD/IsoFS/IsoFSCDVD.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #include "IsoFSCDVD.h" 17 | #include "../CDVDaccess.h" 18 | 19 | IsoFSCDVD::IsoFSCDVD() 20 | { 21 | } 22 | 23 | bool IsoFSCDVD::readSector(unsigned char* buffer, int lba) 24 | { 25 | return DoCDVDreadSector(buffer, lba, CDVD_MODE_2048) >= 0; 26 | } 27 | 28 | int IsoFSCDVD::getNumSectors() 29 | { 30 | cdvdTD td; 31 | CDVD->getTD(0, &td); 32 | 33 | return td.lsn; 34 | } 35 | -------------------------------------------------------------------------------- /pcsx2/CDVD/IsoFS/IsoFSCDVD.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "Pcsx2Types.h" 19 | 20 | #include "SectorSource.h" 21 | 22 | class IsoFSCDVD : public SectorSource 23 | { 24 | public: 25 | IsoFSCDVD(); 26 | virtual ~IsoFSCDVD() = default; 27 | 28 | virtual bool readSector(unsigned char* buffer, int lba); 29 | 30 | virtual int getNumSectors(); 31 | }; 32 | -------------------------------------------------------------------------------- /pcsx2/CDVD/IsoFS/IsoFileDescriptor.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "Pcsx2Defs.h" 19 | 20 | #include 21 | 22 | struct IsoFileDescriptor 23 | { 24 | struct FileDate // not 1:1 with iso9660 date struct 25 | { 26 | s32 year; 27 | u8 month; 28 | u8 day; 29 | u8 hour; 30 | u8 minute; 31 | u8 second; 32 | u8 gmtOffset; // Offset from Greenwich Mean Time in number of 15 min intervals from -48 (West) to + 52 (East) 33 | 34 | } date; 35 | 36 | u32 lba; 37 | u32 size; 38 | int flags; 39 | wxString name; 40 | 41 | IsoFileDescriptor(); 42 | IsoFileDescriptor(const u8* data, int length); 43 | 44 | void Load(const u8* data, int length); 45 | 46 | bool IsFile() const { return !(flags & 2); } 47 | }; 48 | -------------------------------------------------------------------------------- /pcsx2/CDVD/IsoFS/SectorSource.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | class SectorSource 19 | { 20 | public: 21 | virtual int getNumSectors() = 0; 22 | virtual bool readSector(unsigned char* buffer, int lba) = 0; 23 | virtual ~SectorSource() = default; 24 | }; 25 | -------------------------------------------------------------------------------- /pcsx2/COP0.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2009 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __COP0_H__ 17 | #define __COP0_H__ 18 | 19 | extern void WriteCP0Status(u32 value); 20 | extern void UnmapTLB(int i); 21 | extern void MapTLB(int i); 22 | 23 | extern void COP0_UpdatePCCR(void); 24 | 25 | #endif /* __COP0_H__ */ 26 | -------------------------------------------------------------------------------- /pcsx2/Cache.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __CACHE_H__ 17 | #define __CACHE_H__ 18 | 19 | #include "Common.h" 20 | 21 | void resetCache(void); 22 | 23 | #endif /* __CACHE_H__ */ 24 | -------------------------------------------------------------------------------- /pcsx2/Common.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "Pcsx2Defs.h" 19 | 20 | #define BIAS 2 // Bus is half of the actual ps2 speed 21 | #define PS2CLK 294912000 //hz /* 294.912 mhz */ 22 | extern s64 PSXCLK; /* 36.864 Mhz */ 23 | 24 | 25 | #include "System.h" 26 | #include "Memory.h" 27 | #include "R5900.h" 28 | #include "Hw.h" 29 | #include "Dmac.h" 30 | 31 | #include "SaveState.h" 32 | -------------------------------------------------------------------------------- /pcsx2/DEV9/ReadMe.txt: -------------------------------------------------------------------------------- 1 | DEV9null v0.3 2 | ------------- 3 | 4 | This is an extension to use with play station2 emulators 5 | as PCSX2 (only one right now). 6 | The plugin is free open source code. 7 | 8 | Usage: 9 | ----- 10 | Place the file "libDEV9null.so" (linux) or "DEV9null.dll" (win32) 11 | at the Plugin directory of the Emulator to use it. 12 | 13 | Changes: 14 | ------- 15 | v0.5: 16 | *Converted over to use the "PS2Eext.h" file. 17 | v0.4: 18 | *Mass plugin cleanup. 19 | v0.3: 20 | *added vsnet2005beta1 project files. 64bit dll should work now (not tested!) 21 | 22 | v0.2: 23 | *updated the specifications to 0.4.7 24 | 25 | v0.1: 26 | * First Release 27 | * Tested with Pcsx2 28 | 29 | Authors: 30 | ------- 31 | 32 | linuzappz 33 | shadow 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /pcsx2/DebugTools/MIPSAnalyst.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2014 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "Pcsx2Types.h" 19 | 20 | class DebugInterface; 21 | 22 | #define MIPS_GET_OP(op) ((op>>26) & 0x3F) 23 | #define MIPS_GET_FUNC(op) (op & 0x3F) 24 | #define MIPS_GET_SA(op) ((op>>6) & 0x1F) 25 | 26 | #define MIPS_GET_RS(op) ((op>>21) & 0x1F) 27 | #define MIPS_GET_RT(op) ((op>>16) & 0x1F) 28 | #define MIPS_GET_RD(op) ((op>>11) & 0x1F) 29 | 30 | namespace MIPSAnalyst 31 | { 32 | struct AnalyzedFunction { 33 | u32 start; 34 | u32 end; 35 | u32 size; 36 | }; 37 | 38 | void ScanForFunctions(u32 startAddr, u32 endAddr, bool insertSymbols); 39 | }; 40 | -------------------------------------------------------------------------------- /pcsx2/Docs/!How_To_Update_Docs.txt: -------------------------------------------------------------------------------- 1 | == How To Update PCSX2 Docs == 2 | 3 | Source Directory: ./pcsx2/pcsx2/Docs 4 | Release Directory: /pcsx2/bin/Docs 5 | 6 | Docs should be written in the source directory first in an easily editable 7 | format. Currently, Markdown is the preferred format due to its simple markup and 8 | easy portability. GitHub's built-in preview functions are a huge benefit as 9 | well. 10 | 11 | Visual Studio Code is a cross platform text editor/development platform that can 12 | handle Markdown syntax, plus extensions are available to enable in-editor 13 | previewing and PDF generation. However, this is not a requirement since other 14 | editors will support Markdown, and worst case GitHub supports editing Markdown 15 | files in-browser. 16 | 17 | Once docs are finished, convert them from Markdown to PDFs using the tool of 18 | your choice. Move the PDFs to the above Release Directory. 19 | 20 | -------------------------------------------------------------------------------- /pcsx2/Docs/Configuration_Guide/PCSX2_First_Time_Configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/pcsx2/Docs/Configuration_Guide/PCSX2_First_Time_Configuration.png -------------------------------------------------------------------------------- /pcsx2/Docs/Configuration_Guide/PCSX2_First_Time_Configuration_bios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/pcsx2/Docs/Configuration_Guide/PCSX2_First_Time_Configuration_bios.png -------------------------------------------------------------------------------- /pcsx2/Docs/Configuration_Guide/PCSX2_First_Time_Configuration_plugins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/pcsx2/Docs/Configuration_Guide/PCSX2_First_Time_Configuration_plugins.png -------------------------------------------------------------------------------- /pcsx2/Docs/License.txt: -------------------------------------------------------------------------------- 1 | 2 | [This file contains the template for the PCSX2 code rights license. For the full 3 | rant-like preamble of the GPL, see GPL.txt] 4 | 5 | 6 | /* PCSX2 - PS2 Emulator for PCs 7 | * Copyright (C) 2002-2019 PCSX2 Dev Team 8 | * 9 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 10 | * of the GNU Lesser General Public License as published by the Free Software Found- 11 | * ation, either version 3 of the License, or (at your option) any later version. 12 | * 13 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 14 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 15 | * PURPOSE. See the GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along with PCSX2. 18 | * If not, see . 19 | */ 20 | -------------------------------------------------------------------------------- /pcsx2/FW.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2020 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | s32 FWopen(void); 19 | void FWclose(void); 20 | void PHYWrite(void); 21 | void PHYRead(void); 22 | u32 FWread32(u32 addr); 23 | void FWwrite32(u32 addr, u32 value); 24 | -------------------------------------------------------------------------------- /pcsx2/GS/GSAlignedClass.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "Utilities/ScopedAlloc.h" 25 | 26 | template class GSAlignedClass 27 | { 28 | protected: 29 | GSAlignedClass() = default; 30 | ~GSAlignedClass() = default; 31 | public: 32 | 33 | void* operator new (size_t size) 34 | { 35 | return AlignedMalloc(size, i); 36 | } 37 | 38 | void operator delete (void* p) 39 | { 40 | AlignedFree(p); 41 | } 42 | 43 | void* operator new [] (size_t size) 44 | { 45 | return AlignedMalloc(size, i); 46 | } 47 | 48 | void operator delete [] (void* p) 49 | { 50 | AlignedFree(p); 51 | } 52 | }; 53 | -------------------------------------------------------------------------------- /pcsx2/GS/GSCodeBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "Pcsx2Defs.h" 25 | #include 26 | 27 | class GSCodeBuffer 28 | { 29 | std::vector m_buffers; 30 | size_t m_blocksize; 31 | size_t m_pos; 32 | u8* m_ptr; 33 | 34 | public: 35 | GSCodeBuffer(size_t blocksize = 4096 * 64); // 256k 36 | virtual ~GSCodeBuffer(); 37 | 38 | void* GetBuffer(size_t size); 39 | void ReleaseBuffer(size_t size); 40 | }; 41 | -------------------------------------------------------------------------------- /pcsx2/GS/GSFuncs.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Pcsx2Types.h" 3 | 4 | #include "Renderers/Common/GSRenderer.h" 5 | 6 | extern GSRenderer* s_gs; 7 | 8 | int GSinit(void); 9 | int GSopen2(u32 flags, u8 *basemem); 10 | void GSclose(void); 11 | void GSshutdown(void); 12 | 13 | #define GSvsync(field) s_gs->VSync(field) 14 | #define GSgifTransfer(mem, size) s_gs->Transfer<3>(mem, size) 15 | #define GSgifTransfer1(mem, addr) s_gs->Transfer<0>(const_cast(mem) + addr, (0x4000 - addr) / 16) 16 | #define GSgifTransfer2(mem, size) s_gs->Transfer<1>(const_cast(mem), size) 17 | #define GSgifTransfer3(mem, size) s_gs->Transfer<2>(const_cast(mem), size) 18 | #define GSgifSoftReset(mask) s_gs->SoftReset(mask) 19 | #define GSInitAndReadFIFO(mem, size) s_gs->InitAndReadFIFO(mem, size) 20 | #define GSsetGameCRC(crc, options) s_gs->SetGameCRC(crc, options) 21 | 22 | #define GSreset() s_gs->Reset() 23 | #define GSUpdateOptions() s_gs->UpdateRendererOptions() 24 | 25 | int GSfreeze(int mode, void *_data); 26 | -------------------------------------------------------------------------------- /pcsx2/GS/GSTables.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "Pcsx2Types.h" 25 | 26 | extern const u8 blockTable32[4][8]; 27 | extern const u8 blockTable32Z[4][8]; 28 | extern const u8 blockTable16[8][4]; 29 | extern const u8 blockTable16S[8][4]; 30 | extern const u8 blockTable16Z[8][4]; 31 | extern const u8 blockTable16SZ[8][4]; 32 | extern const u8 blockTable8[4][8]; 33 | extern const u8 blockTable4[8][4]; 34 | extern const u8 columnTable32[8][8]; 35 | extern const u8 columnTable16[8][16]; 36 | extern const u8 columnTable8[16][16]; 37 | extern const u16 columnTable4[16][32]; 38 | -------------------------------------------------------------------------------- /pcsx2/GS/GSUtil.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "Pcsx2Types.h" 25 | #include "GS.h" 26 | 27 | class GSUtil 28 | { 29 | public: 30 | static void Init(); 31 | 32 | static GS_PRIM_CLASS GetPrimClass(u32 prim); 33 | static int GetVertexCount(u32 prim); 34 | static int GetClassVertexCount(u32 primclass); 35 | 36 | static const u32* HasSharedBitsPtr(u32 dpsm); 37 | static bool HasSharedBits(u32 spsm, const u32* ptr); 38 | static bool HasSharedBits(u32 spsm, u32 dpsm); 39 | static bool HasSharedBits(u32 sbp, u32 spsm, u32 dbp, u32 dpsm); 40 | static bool HasCompatibleBits(u32 spsm, u32 dpsm); 41 | 42 | static CRCHackLevel GetRecommendedCRCHackLevel(GSRendererType type); 43 | }; 44 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/Common/GSCodeGenerator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "../../GSLocalMemory.h" 25 | #include "../../GSVector.h" 26 | 27 | #include "../../xbyak/xbyak_util.h" 28 | 29 | class GSCodeGenerator : public Xbyak::CodeGenerator 30 | { 31 | protected: 32 | Xbyak::util::Cpu m_cpu; 33 | 34 | public: 35 | GSCodeGenerator(void* code, size_t maxsize) 36 | : Xbyak::CodeGenerator(maxsize, code) 37 | { 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/Common/GSDirtyRect.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "Pcsx2Types.h" 25 | 26 | #include "../../GSLocalMemory.h" 27 | 28 | class GSDirtyRect 29 | { 30 | int left; 31 | int top; 32 | int right; 33 | int bottom; 34 | 35 | u32 psm; 36 | 37 | public: 38 | GSDirtyRect(); 39 | GSDirtyRect(const GSVector4i& r, u32 psm); 40 | const GSVector4i GetDirtyRect(const GIFRegTEX0& TEX0) const; 41 | }; 42 | 43 | class GSDirtyRectList : public std::vector 44 | { 45 | public: 46 | GSDirtyRectList() {} 47 | const GSVector4i GetDirtyRectAndClear(const GIFRegTEX0& TEX0, const GSVector2i& size); 48 | }; 49 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/Common/GSTexture.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #include "GSTexture.h" 23 | 24 | GSTexture::GSTexture() 25 | : m_scale(1, 1) 26 | , m_size(0, 0) 27 | , m_type(0) 28 | , m_format(0) 29 | , last_frame_used(0) 30 | , OffsetHack_modxy(0.0f) 31 | { 32 | } 33 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/DX11/GSTextureCache11.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "../HW/GSTextureCache.h" 25 | #include "GSDevice11.h" 26 | 27 | class GSTextureCache11 : public GSTextureCache 28 | { 29 | protected: 30 | int Get8bitFormat() {return DXGI_FORMAT_A8_UNORM;} 31 | 32 | void Read(Target* t, const GSVector4i& r); 33 | void Read(Source* t, const GSVector4i& r); 34 | 35 | public: 36 | GSTextureCache11(GSRenderer* r); 37 | }; 38 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/HW/GSVertexHW.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "../../GS.h" 25 | #include "../../GSVector.h" 26 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/OpenGL/GSTextureCacheOGL.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011-2011 Gregory hainaut 3 | * Copyright (C) 2007-2009 Gabest 4 | * http://www.gabest.org 5 | * 6 | * This Program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2, or (at your option) 9 | * any later version. 10 | * 11 | * This Program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with GNU Make; see the file COPYING. If not, write to 18 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 19 | * http://www.gnu.org/copyleft/gpl.html 20 | * 21 | */ 22 | 23 | #pragma once 24 | 25 | #include "../HW/GSTextureCache.h" 26 | #include "GSDeviceOGL.h" 27 | 28 | class GSTextureCacheOGL final : public GSTextureCache 29 | { 30 | protected: 31 | int Get8bitFormat() { return GL_R8;} 32 | 33 | void Read(Target* t, const GSVector4i& r); 34 | void Read(Source* t, const GSVector4i& r); 35 | 36 | public: 37 | GSTextureCacheOGL(GSRenderer* r); 38 | }; 39 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/SW/GSTextureSW.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include "../Common/GSTexture.h" 27 | 28 | class GSTextureSW final : public GSTexture 29 | { 30 | // mem texture, always 32-bit rgba (might add 8-bit for palette if needed) 31 | 32 | int m_pitch; 33 | void* m_data; 34 | std::atomic_flag m_mapped; 35 | 36 | public: 37 | GSTextureSW(int type, int width, int height); 38 | virtual ~GSTextureSW(); 39 | 40 | bool Update(const GSVector4i& r, const void* data, int pitch, int layer = 0); 41 | bool Map(GSMap& m, const GSVector4i* r = NULL, int layer = 0); 42 | void Unmap(); 43 | bool Save(const std::string& fn); 44 | }; 45 | -------------------------------------------------------------------------------- /pcsx2/GS/Renderers/SW/GSVertexSW.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2009 Gabest 3 | * http://www.gabest.org 4 | * 5 | * This Program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2, or (at your option) 8 | * any later version. 9 | * 10 | * This Program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with GNU Make; see the file COPYING. If not, write to 17 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA USA. 18 | * http://www.gnu.org/copyleft/gpl.html 19 | * 20 | */ 21 | 22 | #include "GSVertexSW.h" 23 | -------------------------------------------------------------------------------- /pcsx2/Gif.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "GifTypes.h" 19 | 20 | extern __aligned16 gifStruct gif; 21 | extern GIF_Fifo gif_fifo; 22 | static GIFregisters& gifRegs = (GIFregisters&)eeHw[0x3000]; 23 | 24 | extern void gifInterrupt(void); 25 | extern void dmaGIF(void); 26 | extern void gifMFIFOInterrupt(void); 27 | -------------------------------------------------------------------------------- /pcsx2/IPU/IPUdma.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "IPU.h" 19 | 20 | struct IPUStatus { 21 | bool InProgress; 22 | bool DMAFinished; 23 | bool DataRequested; 24 | }; 25 | 26 | extern void ipu0Interrupt(void); 27 | extern void ipu1Interrupt(void); 28 | 29 | extern void dmaIPU0(void); 30 | extern void dmaIPU1(void); 31 | 32 | extern void ipuDmaReset(void); 33 | extern IPUStatus IPU1Status; 34 | -------------------------------------------------------------------------------- /pcsx2/IopGte.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | /* PCSX2 - PS2 Emulator for PCs 3 | * Copyright (C) 2002-2010 PCSX2 Dev Team 4 | * 5 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 6 | * of the GNU Lesser General Public License as published by the Free Software Found- 7 | * ation, either version 3 of the License, or (at your option) any later version. 8 | * 9 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 10 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11 | * PURPOSE. See the GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License along with PCSX2. 14 | * If not, see . 15 | */ 16 | 17 | #ifndef __GTE_H__ 18 | #define __GTE_H__ 19 | 20 | void gteMFC2(); 21 | void gteCFC2(); 22 | void gteMTC2(); 23 | void gteCTC2(); 24 | void gteLWC2(); 25 | void gteSWC2(); 26 | 27 | void gteRTPS(); 28 | void gteOP(); 29 | void gteNCLIP(); 30 | void gteDPCS(); 31 | void gteINTPL(); 32 | void gteMVMVA(); 33 | void gteNCDS(); 34 | void gteNCDT(); 35 | void gteCDP(); 36 | void gteNCCS(); 37 | void gteCC(); 38 | void gteNCS(); 39 | void gteNCT(); 40 | void gteSQR(); 41 | void gteDCPL(); 42 | void gteDPCT(); 43 | void gteAVSZ3(); 44 | void gteAVSZ4(); 45 | void gteRTPT(); 46 | void gteGPF(); 47 | void gteGPL(); 48 | void gteNCCT(); 49 | 50 | #endif /* __GTE_H__ */ -------------------------------------------------------------------------------- /pcsx2/IopIrq.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #include "DEV9/DEV9.h" 17 | #include "USB/USB.h" 18 | #include "IopHw.h" 19 | #include "IopDma.h" 20 | #include "Common.h" 21 | 22 | void dev9Interrupt(void) 23 | { 24 | if ((dev9Handler) && (dev9Handler() != 1)) return; 25 | 26 | iopIntcIrq(13); 27 | } 28 | 29 | void dev9Irq(int cycles) 30 | { 31 | PSX_INT(IopEvt_DEV9, cycles); 32 | } 33 | 34 | void usbInterrupt(void) 35 | { 36 | if (usbHandler && (usbHandler() != 1)) return; 37 | 38 | iopIntcIrq(22); 39 | } 40 | 41 | void usbIrq(int cycles) 42 | { 43 | PSX_INT(IopEvt_USB, cycles); 44 | } 45 | 46 | void fwIrq(void) 47 | { 48 | iopIntcIrq(24); 49 | } 50 | 51 | void iopIntcIrq(uint irqType) 52 | { 53 | psxHu32(0x1070) |= 1 << irqType; 54 | iopTestIntc(); 55 | } 56 | -------------------------------------------------------------------------------- /pcsx2/MemoryPatchDatabase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | class MemoryPatchDatabase 8 | { 9 | public: 10 | MemoryPatchDatabase(uint8_t *s, size_t len); 11 | MemoryPatchDatabase(MemoryPatchDatabase& other) = delete; 12 | void operator= (const MemoryPatchDatabase&) = delete; 13 | 14 | struct Patch 15 | { 16 | uint32_t compressed_size = 0; 17 | uint32_t uncompressed_size = 0; 18 | uint8_t* compressed_data; 19 | }; 20 | 21 | std::vector GetPatchLines(std::string key); 22 | void InitEntries(); 23 | void InitEntries(uint8_t* compressed_archive_as_byte_array, uint32_t archive_length); 24 | private: 25 | int DecompressEntry(std::string key, uint8_t* dest_buffer); 26 | 27 | std::unordered_map entries; 28 | uint8_t* compressed_archive_as_byte_array; 29 | uint32_t archive_length; 30 | }; 31 | -------------------------------------------------------------------------------- /pcsx2/SPR.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | 17 | #ifndef __SPR_H__ 18 | #define __SPR_H__ 19 | 20 | extern void dmaSPR0(void); 21 | extern void dmaSPR1(void); 22 | extern void SPRFROMinterrupt(void); 23 | extern void SPRTOinterrupt(void); 24 | 25 | #endif /* __SPR_H__ */ 26 | -------------------------------------------------------------------------------- /pcsx2/SPU2/Global.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2020 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #define NOMINMAX 19 | 20 | struct StereoOut16; 21 | struct StereoOut32; 22 | 23 | struct V_Core; 24 | 25 | #include "Pcsx2Types.h" 26 | 27 | #include "defs.h" 28 | #include "regs.h" 29 | 30 | #include "Mixer.h" 31 | -------------------------------------------------------------------------------- /pcsx2/SPU2/Mixer.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2020 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include 19 | 20 | struct StereoOut16 21 | { 22 | s16 Left; 23 | s16 Right; 24 | }; 25 | 26 | struct StereoOut32 27 | { 28 | s32 Left; 29 | s32 Right; 30 | 31 | StereoOut32() : Left(0), Right(0) { } 32 | StereoOut32(s32 left, s32 right) : Left(left), Right(right) { } 33 | }; 34 | 35 | #define CLAMP_MIX(x) (std::min(std::max((x), -0x8000), 0x7fff)) 36 | 37 | extern void SPU2_Mix(void); 38 | -------------------------------------------------------------------------------- /pcsx2/SPU2/RegTable.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2020 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #include "Global.h" 17 | 18 | u16* regtable[0x401]; 19 | -------------------------------------------------------------------------------- /pcsx2/SPU2/spu2.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2020 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "SaveState.h" 19 | 20 | s32 SPU2init(void); 21 | s32 SPU2reset(void); 22 | s32 SPU2ps1reset(void); 23 | s32 SPU2open(void); 24 | void SPU2close(void); 25 | void SPU2shutdown(void); 26 | void SPU2write(u32 mem, u16 value); 27 | u16 SPU2read(u32 mem); 28 | 29 | void SPU2async(u32 cycles); 30 | s32 SPU2freeze(int mode, freezeData* data); 31 | void SPU2DoFreezeIn(pxInputStream& infp); 32 | void SPU2DoFreezeOut(void* dest); 33 | 34 | u32 SPU2ReadMemAddr(int core); 35 | void SPU2WriteMemAddr(int core, u32 value); 36 | void SPU2readDMA4Mem(u16* pMem, u32 size); 37 | void SPU2writeDMA4Mem(u16* pMem, u32 size); 38 | void SPU2interruptDMA4(void); 39 | void SPU2interruptDMA7(void); 40 | void SPU2readDMA7Mem(u16* pMem, u32 size); 41 | void SPU2writeDMA7Mem(u16* pMem, u32 size); 42 | 43 | extern u32 lClocks; 44 | -------------------------------------------------------------------------------- /pcsx2/Sif.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #define _PC_ // disables MIPS opcode macros. 17 | 18 | #include "R3000A.h" 19 | #include "Common.h" 20 | #include "Sif.h" 21 | #include "IopHw.h" 22 | 23 | void sifReset(void) 24 | { 25 | memzero(sif0); 26 | memzero(sif1); 27 | } 28 | 29 | void SaveStateBase::sifFreeze() 30 | { 31 | FreezeTag("SIFdma"); 32 | 33 | Freeze(sif0); 34 | Freeze(sif1); 35 | } 36 | -------------------------------------------------------------------------------- /pcsx2/VUflags.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | #include "VU.h" 18 | 19 | #define VU_MACx_UPDATE(VU, x) VU_MAC_UPDATE(3, (VU), x) 20 | #define VU_MACy_UPDATE(VU, y) VU_MAC_UPDATE(2, (VU), y) 21 | #define VU_MACz_UPDATE(VU, z) VU_MAC_UPDATE(1, (VU), z) 22 | #define VU_MACw_UPDATE(VU, w) VU_MAC_UPDATE(0, (VU), w) 23 | 24 | #define VU_MACx_CLEAR(VU) ((VU)->macflag&= ~(0x1111<<3)) 25 | #define VU_MACy_CLEAR(VU) ((VU)->macflag&= ~(0x1111<<2)) 26 | #define VU_MACz_CLEAR(VU) ((VU)->macflag&= ~(0x1111<<1)) 27 | #define VU_MACw_CLEAR(VU) ((VU)->macflag&= ~(0x1111<<0)) 28 | -------------------------------------------------------------------------------- /pcsx2/gui/AppGameDatabase.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2020 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #include "App.h" 17 | #include "AppGameDatabase.h" 18 | #include "GameIndex.h" 19 | 20 | AppGameDatabase& AppGameDatabase::Load() 21 | { 22 | std::string game_index(reinterpret_cast(&GameIndex_yaml), GameIndex_yaml_len); 23 | std::istringstream stream(game_index); 24 | this->initDatabase(stream); 25 | return *this; 26 | } 27 | 28 | AppGameDatabase* Pcsx2App::GetGameDatabase() 29 | { 30 | pxAppResources& res(GetResourceCache()); 31 | 32 | ScopedLock lock(m_mtx_LoadingGameDB); 33 | if (!res.GameDB) 34 | { 35 | res.GameDB = std::make_unique(); 36 | res.GameDB->Load(); 37 | } 38 | return res.GameDB.get(); 39 | } 40 | -------------------------------------------------------------------------------- /pcsx2/gui/AppGameDatabase.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2020 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "GameDatabase.h" 19 | 20 | #include "AppConfig.h" 21 | 22 | class AppGameDatabase : public YamlGameDatabaseImpl 23 | { 24 | public: 25 | AppGameDatabase() {} 26 | virtual ~AppGameDatabase() { } 27 | AppGameDatabase& Load(); 28 | }; 29 | -------------------------------------------------------------------------------- /pcsx2/gui/AppRes.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #include "App.h" 17 | 18 | #include 19 | 20 | pxAppResources::pxAppResources() { } 21 | pxAppResources::~pxAppResources() = default; 22 | pxAppResources& Pcsx2App::GetResourceCache() 23 | { 24 | ScopedLock lock( m_mtx_Resources ); 25 | if( !m_Resources ) 26 | m_Resources = std::unique_ptr(new pxAppResources()); 27 | 28 | return *m_Resources; 29 | } 30 | -------------------------------------------------------------------------------- /pcsx2/ps2/BiosTools.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | extern u32 BiosVersion; // Used by CDVD 19 | extern u32 BiosChecksum; 20 | extern wxString BiosDescription; 21 | 22 | extern void LoadBIOS(void); 23 | extern bool IsBIOS(const wxString& filename, wxString& description); 24 | -------------------------------------------------------------------------------- /pcsx2/ps2/Iop/IopHw_Internal.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #pragma once 17 | 18 | #include "Common.h" 19 | #include "IopHw.h" 20 | 21 | namespace IopMemory { 22 | namespace Internal { 23 | 24 | ////////////////////////////////////////////////////////////////////////////////////////// 25 | // Masking helper so that I can use the fully qualified address for case statements. 26 | // Switches are based on the bottom 12 bits only, since MSVC tends to optimize switches 27 | // better when it has a limited width operand to work with. :) 28 | // 29 | #define pgmsk( src ) ( (src) & 0x0fff ) 30 | #define mcase( src ) case pgmsk(src) 31 | 32 | } }; 33 | -------------------------------------------------------------------------------- /pcsx2/ps2/pgif.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2016-2016 PCSX2 Dev Team 3 | * Copyright (C) 2016 Wisi 4 | * 5 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 6 | * of the GNU Lesser General Public License as published by the Free Software Found- 7 | * ation, either version 3 of the License, or (at your option) any later version. 8 | * 9 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 10 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11 | * PURPOSE. See the GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License along with PCSX2. 14 | * If not, see . 15 | */ 16 | 17 | void pgifInit(void); 18 | 19 | extern void psxGPUw(int, u32); 20 | extern u32 psxGPUr(int); 21 | 22 | extern void PGIFw(int, u32); 23 | extern u32 PGIFr(int); 24 | 25 | extern void PGIFwQword(u32 addr, void *); 26 | extern void PGIFrQword(u32 addr, void *); 27 | 28 | extern u32 psxDma2GpuR(u32 addr); 29 | extern void psxDma2GpuW(u32 addr, u32 data); 30 | -------------------------------------------------------------------------------- /pcsx2/x86/iCOP0.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __iCOP0_H__ 17 | #define __iCOP0_H__ 18 | 19 | #include "COP0.h" 20 | 21 | /********************************************************* 22 | * COP0 opcodes * 23 | * * 24 | *********************************************************/ 25 | 26 | namespace R5900 { 27 | namespace Dynarec { 28 | namespace OpcodeImpl { 29 | namespace COP0 30 | { 31 | void recMFC0(void); 32 | void recMTC0(void); 33 | void recBC0F(void); 34 | void recBC0T(void); 35 | void recBC0FL(void); 36 | void recBC0TL(void); 37 | void recTLBR(void); 38 | void recTLBWI(void); 39 | void recTLBWR(void); 40 | void recTLBP(void); 41 | void recERET(void); 42 | void recDI(void); 43 | void recEI(void); 44 | 45 | }}}} 46 | #endif 47 | -------------------------------------------------------------------------------- /pcsx2/x86/iR5900Arit.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __IR5900ARIT_H__ 17 | #define __IR5900ARIT_H__ 18 | 19 | /********************************************************* 20 | * Register arithmetic * 21 | * Format: OP rd, rs, rt * 22 | *********************************************************/ 23 | 24 | namespace R5900 { 25 | namespace Dynarec { 26 | namespace OpcodeImpl 27 | { 28 | void recADD(void); 29 | void recADDU(void); 30 | void recDADD(void); 31 | void recDADDU(void); 32 | void recSUB(void); 33 | void recSUBU(void); 34 | void recDSUB(void); 35 | void recDSUBU(void); 36 | void recAND(void); 37 | void recOR(void); 38 | void recXOR(void); 39 | void recNOR(void); 40 | void recSLT(void); 41 | void recSLTU(void); 42 | } } } 43 | #endif 44 | -------------------------------------------------------------------------------- /pcsx2/x86/iR5900AritImm.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __IR5900ARITIMM_H__ 17 | #define __IR5900ARITIMM_H__ 18 | 19 | /********************************************************* 20 | * Arithmetic with immediate operand * 21 | * Format: OP rt, rs, immediate * 22 | *********************************************************/ 23 | namespace R5900 { 24 | namespace Dynarec { 25 | namespace OpcodeImpl { 26 | 27 | void recADDI(void); 28 | void recADDIU(void); 29 | void recDADDI(void); 30 | void recDADDIU(void); 31 | void recANDI(void); 32 | void recORI(void); 33 | void recXORI(void); 34 | 35 | void recSLTI(void); 36 | void recSLTIU(void); 37 | } } } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /pcsx2/x86/iR5900Branch.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __IR5900BRANCH_H__ 17 | #define __IR5900BRANCH_H__ 18 | 19 | /********************************************************* 20 | * Shift arithmetic with constant shift * 21 | * Format: OP rd, rt, sa * 22 | *********************************************************/ 23 | 24 | namespace R5900 { 25 | namespace Dynarec { 26 | namespace OpcodeImpl { 27 | 28 | void recBEQ(void); 29 | void recBEQL(void); 30 | void recBNE(void); 31 | void recBNEL(void); 32 | void recBLTZ(void); 33 | void recBLTZL(void); 34 | void recBLTZAL(void); 35 | void recBLTZALL(void); 36 | void recBGTZ(void); 37 | void recBGTZL(void); 38 | void recBLEZ(void); 39 | void recBLEZL(void); 40 | void recBGEZ(void); 41 | void recBGEZL(void); 42 | void recBGEZAL(void); 43 | void recBGEZALL(void); 44 | } } } 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /pcsx2/x86/iR5900Jump.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __IR5900JUMP_H__ 17 | #define __IR5900JUMP_H__ 18 | 19 | /********************************************************* 20 | * Jump to target * 21 | * Format: OP target * 22 | *********************************************************/ 23 | 24 | namespace R5900 { 25 | namespace Dynarec { 26 | namespace OpcodeImpl { 27 | 28 | void recJ(void); 29 | void recJAL(void); 30 | void recJR(void); 31 | void recJALR(void); 32 | } } } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /pcsx2/x86/iR5900Move.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __IR5900MOVE_H__ 17 | #define __IR5900MOVE_H__ 18 | 19 | namespace R5900 { 20 | namespace Dynarec { 21 | namespace OpcodeImpl { 22 | 23 | void recLUI(void); 24 | void recMFLO(void); 25 | void recMFHI(void); 26 | void recMTLO(void); 27 | void recMTHI(void); 28 | void recMOVN(void); 29 | void recMOVZ(void); 30 | } } } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /pcsx2/x86/iR5900MultDiv.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __IR5900MULTDIV_H__ 17 | #define __IR5900MULTDIV_H__ 18 | 19 | /********************************************************* 20 | * Register mult/div & Register trap logic * 21 | * Format: OP rs, rt * 22 | *********************************************************/ 23 | 24 | namespace R5900 { 25 | namespace Dynarec { 26 | namespace OpcodeImpl { 27 | 28 | void recMULT(void); 29 | void recMULTU(void); 30 | void recDIV(void); 31 | void recDIVU(void); 32 | } } } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /pcsx2/x86/iR5900Shift.h: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | #ifndef __IR5900SHIFT_H__ 17 | #define __IR5900SHIFT_H__ 18 | 19 | /********************************************************* 20 | * Shift arithmetic with constant shift * 21 | * Format: OP rd, rt, sa * 22 | *********************************************************/ 23 | 24 | namespace R5900 { 25 | namespace Dynarec { 26 | namespace OpcodeImpl { 27 | 28 | void recSLL(void); 29 | void recSRL(void); 30 | void recSRA(void); 31 | void recDSLL(void); 32 | void recDSRL(void); 33 | void recDSRA(void); 34 | void recDSLL32(void); 35 | void recDSRL32(void); 36 | void recDSRA32(void); 37 | 38 | void recSLLV(void); 39 | void recSRLV(void); 40 | void recSRAV(void); 41 | void recDSLLV(void); 42 | void recDSRLV(void); 43 | void recDSRAV(void); 44 | } } } 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /pcsx2/x86/ir5900tables.cpp: -------------------------------------------------------------------------------- 1 | /* PCSX2 - PS2 Emulator for PCs 2 | * Copyright (C) 2002-2010 PCSX2 Dev Team 3 | * 4 | * PCSX2 is free software: you can redistribute it and/or modify it under the terms 5 | * of the GNU Lesser General Public License as published by the Free Software Found- 6 | * ation, either version 3 of the License, or (at your option) any later version. 7 | * 8 | * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 9 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 10 | * PURPOSE. See the GNU General Public License for more details. 11 | * 12 | * You should have received a copy of the GNU General Public License along with PCSX2. 13 | * If not, see . 14 | */ 15 | 16 | 17 | // Holds instruction tables for the r5900 recompiler 18 | 19 | #include "Common.h" 20 | #include "Memory.h" 21 | #include "R5900OpcodeTables.h" 22 | #include "iR5900.h" 23 | #include "iR5900AritImm.h" 24 | #include "iR5900Arit.h" 25 | #include "iR5900MultDiv.h" 26 | #include "iR5900Shift.h" 27 | #include "iR5900Branch.h" 28 | #include "iR5900Jump.h" 29 | #include "iR5900LoadStore.h" 30 | #include "iR5900Move.h" 31 | #include "iMMI.h" 32 | #include "iFPU.h" 33 | #include "iCOP0.h" 34 | 35 | -------------------------------------------------------------------------------- /resources/60fps.txt: -------------------------------------------------------------------------------- 1 | 274E5444 - Clock Tower 3 - (SLUS-20633) 2 | 9DC1CED8 - Dawn of Mana (UNDUB) - (SLUS-21574) 3 | 6FB69282 - God Hand - (SLUS-21503) 4 | 5E115FB6 - Grand Theft Auto III - (SLUS-20062) 5 | 901AAC09 - Haunting Ground - (SLUS-21075) 6 | 5C991F4E - Ico - (SCES-50760) 7 | 95BB1901 - MX vs ATV Unleashed - (SLUS-21104) 8 | 08FE7DFD - MX vs ATV Untamed - (SLUS-21701) 9 | F3FD313E - Rule of Rose - (SLUS-21448) 10 | 155466E8 - Serious Sam: Next Encounter - (SLUS-20907) 11 | FE06A030 - Silent Hill 2 (v2.01) - (SLUS-20228) 12 | 2498951B - Silent Hill 3 - (SLUS-20622) 13 | AF854FA0 - Space Channel 5 Part 2 (SE Disc 2) - (SLUS-20807) 14 | E21404E2 - The Getaway - 15 | B639EB17 - Tomb Raider: Anniversary - (SLUS-21555) 16 | BC8B3F50 - Tomb Raider: Legend - (SLUS-21203) 17 | -------------------------------------------------------------------------------- /resources/cheats_60fps.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/resources/cheats_60fps.zip -------------------------------------------------------------------------------- /resources/cheats_nointerlacing.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/resources/cheats_nointerlacing.zip -------------------------------------------------------------------------------- /resources/cheats_ws.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/resources/cheats_ws.zip -------------------------------------------------------------------------------- /resources/nointerlacing-explanation-neogeo-felixthecat.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro/LRPS2/f3c8743d6a42fe429f703b476fecfdb5655a98a9/resources/nointerlacing-explanation-neogeo-felixthecat.txt --------------------------------------------------------------------------------