├── .editorconfig ├── .gitattributes ├── .github └── ISSUE_TEMPLATE ├── .gitignore ├── .gitmodules ├── .travis.sh ├── .travis.yml ├── .ycm_extra_conf.py ├── CMakeLists.txt ├── Common ├── ABI.cpp ├── ABI.h ├── Arm64Emitter.cpp ├── Arm64Emitter.h ├── ArmABI.cpp ├── ArmABI.h ├── ArmCPUDetect.cpp ├── ArmCommon.h ├── ArmEmitter.cpp ├── ArmEmitter.h ├── BitScan.h ├── BitSet.h ├── Buffer.cpp ├── Buffer.h ├── CPUDetect.cpp ├── CPUDetect.h ├── CodeBlock.h ├── ColorConv.cpp ├── ColorConv.h ├── ColorConvNEON.cpp ├── ColorConvNEON.h ├── Common.h ├── Common.vcxproj ├── Common.vcxproj.filters ├── CommonFuncs.h ├── CommonTypes.h ├── CommonWindows.h ├── ConsoleListener.cpp ├── ConsoleListener.h ├── Crypto │ ├── md5.cpp │ ├── md5.h │ ├── sha1.cpp │ ├── sha1.h │ ├── sha256.cpp │ └── sha256.h ├── DbgNew.h ├── ExceptionHandlerSetup.cpp ├── ExceptionHandlerSetup.h ├── FakeCPUDetect.cpp ├── FakeEmitter.h ├── FileUtil.cpp ├── FileUtil.h ├── FixedSizeQueue.h ├── GL │ ├── GLInterface │ │ ├── EGL.cpp │ │ ├── EGL.h │ │ ├── EGLAndroid.cpp │ │ ├── EGLAndroid.h │ │ ├── EGLSwitch.cpp │ │ ├── EGLSwitch.h │ │ └── GLInterface.cpp │ └── GLInterfaceBase.h ├── GraphicsContext.h ├── Hashmaps.h ├── Input │ ├── GestureDetector.cpp │ ├── GestureDetector.h │ ├── InputState.cpp │ ├── InputState.h │ └── KeyCodes.h ├── KeyMap.cpp ├── KeyMap.h ├── Log.cpp ├── Log.h ├── LogManager.cpp ├── LogManager.h ├── MachineContext.h ├── MakeUnique.h ├── MathUtil.h ├── MemArena.h ├── MemArenaAndroid.cpp ├── MemArenaDarwin.cpp ├── MemArenaPosix.cpp ├── MemArenaWin32.cpp ├── MemoryUtil.cpp ├── MemoryUtil.h ├── MipsCPUDetect.cpp ├── MipsEmitter.cpp ├── MipsEmitter.h ├── MsgHandler.h ├── OSVersion.cpp ├── OSVersion.h ├── Serialize │ ├── SerializeDeque.h │ ├── SerializeFuncs.h │ ├── SerializeList.h │ ├── SerializeMap.h │ ├── SerializeSet.h │ ├── Serializer.cpp │ └── Serializer.h ├── StringUtils.cpp ├── StringUtils.h ├── Swap.h ├── SysError.cpp ├── SysError.h ├── Thread │ ├── Executor.cpp │ ├── Executor.h │ ├── PrioritizedWorkQueue.cpp │ ├── PrioritizedWorkQueue.h │ ├── ThreadPool.cpp │ ├── ThreadPool.h │ ├── ThreadUtil.cpp │ └── ThreadUtil.h ├── ThreadPools.cpp ├── ThreadPools.h ├── ThreadSafeList.h ├── Thunk.cpp ├── Thunk.h ├── TimeUtil.cpp ├── TimeUtil.h ├── Timer.cpp ├── Timer.h ├── Vulkan │ ├── VulkanContext.cpp │ ├── VulkanContext.h │ ├── VulkanDebug.cpp │ ├── VulkanDebug.h │ ├── VulkanImage.cpp │ ├── VulkanImage.h │ ├── VulkanLoader.cpp │ ├── VulkanLoader.h │ ├── VulkanMemory.cpp │ └── VulkanMemory.h ├── x64Analyzer.cpp ├── x64Analyzer.h ├── x64Emitter.cpp └── x64Emitter.h ├── Core ├── AVIDump.cpp ├── AVIDump.h ├── Compatibility.cpp ├── Compatibility.h ├── Config.cpp ├── Config.h ├── ConfigValues.h ├── Core.cpp ├── Core.h ├── Core.vcxproj ├── Core.vcxproj.filters ├── CoreParameter.h ├── CoreTiming.cpp ├── CoreTiming.h ├── CwCheat.cpp ├── CwCheat.h ├── Debugger │ ├── Breakpoints.cpp │ ├── Breakpoints.h │ ├── DebugInterface.h │ ├── DisassemblyManager.cpp │ ├── DisassemblyManager.h │ ├── SymbolMap.cpp │ ├── SymbolMap.h │ ├── WebSocket.cpp │ ├── WebSocket.h │ └── WebSocket │ │ ├── BreakpointSubscriber.cpp │ │ ├── BreakpointSubscriber.h │ │ ├── CPUCoreSubscriber.cpp │ │ ├── CPUCoreSubscriber.h │ │ ├── DisasmSubscriber.cpp │ │ ├── DisasmSubscriber.h │ │ ├── GPUBufferSubscriber.cpp │ │ ├── GPUBufferSubscriber.h │ │ ├── GPURecordSubscriber.cpp │ │ ├── GPURecordSubscriber.h │ │ ├── GameBroadcaster.cpp │ │ ├── GameBroadcaster.h │ │ ├── GameSubscriber.cpp │ │ ├── GameSubscriber.h │ │ ├── HLESubscriber.cpp │ │ ├── HLESubscriber.h │ │ ├── LogBroadcaster.cpp │ │ ├── LogBroadcaster.h │ │ ├── MemorySubscriber.cpp │ │ ├── MemorySubscriber.h │ │ ├── SteppingBroadcaster.cpp │ │ ├── SteppingBroadcaster.h │ │ ├── SteppingSubscriber.cpp │ │ ├── SteppingSubscriber.h │ │ ├── WebSocketUtils.cpp │ │ └── WebSocketUtils.h ├── Dialog │ ├── PSPDialog.cpp │ ├── PSPDialog.h │ ├── PSPGamedataInstallDialog.cpp │ ├── PSPGamedataInstallDialog.h │ ├── PSPMsgDialog.cpp │ ├── PSPMsgDialog.h │ ├── PSPNetconfDialog.cpp │ ├── PSPNetconfDialog.h │ ├── PSPOskDialog.cpp │ ├── PSPOskDialog.h │ ├── PSPPlaceholderDialog.cpp │ ├── PSPPlaceholderDialog.h │ ├── PSPSaveDialog.cpp │ ├── PSPSaveDialog.h │ ├── PSPScreenshotDialog.cpp │ ├── PSPScreenshotDialog.h │ ├── SavedataParam.cpp │ └── SavedataParam.h ├── ELF │ ├── ElfReader.cpp │ ├── ElfReader.h │ ├── ElfTypes.h │ ├── PBPReader.cpp │ ├── PBPReader.h │ ├── ParamSFO.cpp │ ├── ParamSFO.h │ ├── PrxDecrypter.cpp │ └── PrxDecrypter.h ├── FileLoaders │ ├── CachingFileLoader.cpp │ ├── CachingFileLoader.h │ ├── DiskCachingFileLoader.cpp │ ├── DiskCachingFileLoader.h │ ├── HTTPFileLoader.cpp │ ├── HTTPFileLoader.h │ ├── LocalFileLoader.cpp │ ├── LocalFileLoader.h │ ├── RamCachingFileLoader.cpp │ ├── RamCachingFileLoader.h │ ├── RetryingFileLoader.cpp │ └── RetryingFileLoader.h ├── FileSystems │ ├── BlobFileSystem.cpp │ ├── BlobFileSystem.h │ ├── BlockDevices.cpp │ ├── BlockDevices.h │ ├── DirectoryFileSystem.cpp │ ├── DirectoryFileSystem.h │ ├── FileSystem.cpp │ ├── FileSystem.h │ ├── ISOFileSystem.cpp │ ├── ISOFileSystem.h │ ├── MetaFileSystem.cpp │ ├── MetaFileSystem.h │ ├── VirtualDiscFileSystem.cpp │ ├── VirtualDiscFileSystem.h │ └── tlzrc.cpp ├── Font │ ├── PGF.cpp │ └── PGF.h ├── HDRemaster.cpp ├── HDRemaster.h ├── HLE │ ├── FunctionWrappers.h │ ├── HLE.cpp │ ├── HLE.h │ ├── HLEHelperThread.cpp │ ├── HLEHelperThread.h │ ├── HLETables.cpp │ ├── HLETables.h │ ├── KUBridge.cpp │ ├── KUBridge.h │ ├── KernelThreadDebugInterface.h │ ├── KernelWaitHelpers.h │ ├── Plugins.cpp │ ├── Plugins.h │ ├── ReplaceTables.cpp │ ├── ReplaceTables.h │ ├── ThreadQueueList.h │ ├── __sceAudio.cpp │ ├── __sceAudio.h │ ├── proAdhoc.cpp │ ├── proAdhoc.h │ ├── proAdhocServer.cpp │ ├── proAdhocServer.h │ ├── sceAdler.cpp │ ├── sceAdler.h │ ├── sceAtrac.cpp │ ├── sceAtrac.h │ ├── sceAudio.cpp │ ├── sceAudio.h │ ├── sceAudioRouting.cpp │ ├── sceAudioRouting.h │ ├── sceAudiocodec.cpp │ ├── sceAudiocodec.h │ ├── sceCcc.cpp │ ├── sceCcc.h │ ├── sceChnnlsv.cpp │ ├── sceChnnlsv.h │ ├── sceCtrl.cpp │ ├── sceCtrl.h │ ├── sceDeflt.cpp │ ├── sceDeflt.h │ ├── sceDisplay.cpp │ ├── sceDisplay.h │ ├── sceDmac.cpp │ ├── sceDmac.h │ ├── sceFont.cpp │ ├── sceFont.h │ ├── sceG729.cpp │ ├── sceG729.h │ ├── sceGameUpdate.cpp │ ├── sceGameUpdate.h │ ├── sceGe.cpp │ ├── sceGe.h │ ├── sceHeap.cpp │ ├── sceHeap.h │ ├── sceHprm.cpp │ ├── sceHprm.h │ ├── sceHttp.cpp │ ├── sceHttp.h │ ├── sceImpose.cpp │ ├── sceImpose.h │ ├── sceIo.cpp │ ├── sceIo.h │ ├── sceJpeg.cpp │ ├── sceJpeg.h │ ├── sceKernel.cpp │ ├── sceKernel.h │ ├── sceKernelAlarm.cpp │ ├── sceKernelAlarm.h │ ├── sceKernelEventFlag.cpp │ ├── sceKernelEventFlag.h │ ├── sceKernelHeap.cpp │ ├── sceKernelHeap.h │ ├── sceKernelInterrupt.cpp │ ├── sceKernelInterrupt.h │ ├── sceKernelMbx.cpp │ ├── sceKernelMbx.h │ ├── sceKernelMemory.cpp │ ├── sceKernelMemory.h │ ├── sceKernelModule.cpp │ ├── sceKernelModule.h │ ├── sceKernelMsgPipe.cpp │ ├── sceKernelMsgPipe.h │ ├── sceKernelMutex.cpp │ ├── sceKernelMutex.h │ ├── sceKernelSemaphore.cpp │ ├── sceKernelSemaphore.h │ ├── sceKernelThread.cpp │ ├── sceKernelThread.h │ ├── sceKernelTime.cpp │ ├── sceKernelTime.h │ ├── sceKernelVTimer.cpp │ ├── sceKernelVTimer.h │ ├── sceMd5.cpp │ ├── sceMd5.h │ ├── sceMp3.cpp │ ├── sceMp3.h │ ├── sceMp4.cpp │ ├── sceMp4.h │ ├── sceMpeg.cpp │ ├── sceMpeg.h │ ├── sceMt19937.cpp │ ├── sceMt19937.h │ ├── sceNet.cpp │ ├── sceNet.h │ ├── sceNetAdhoc.cpp │ ├── sceNetAdhoc.h │ ├── sceNp.cpp │ ├── sceNp.h │ ├── sceOpenPSID.cpp │ ├── sceOpenPSID.h │ ├── sceP3da.cpp │ ├── sceP3da.h │ ├── sceParseHttp.cpp │ ├── sceParseHttp.h │ ├── sceParseUri.cpp │ ├── sceParseUri.h │ ├── scePauth.cpp │ ├── scePauth.h │ ├── scePower.cpp │ ├── scePower.h │ ├── scePsmf.cpp │ ├── scePsmf.h │ ├── scePspNpDrm_user.cpp │ ├── scePspNpDrm_user.h │ ├── sceRtc.cpp │ ├── sceRtc.h │ ├── sceSas.cpp │ ├── sceSas.h │ ├── sceSfmt19937.cpp │ ├── sceSfmt19937.h │ ├── sceSha256.cpp │ ├── sceSha256.h │ ├── sceSsl.cpp │ ├── sceSsl.h │ ├── sceUmd.cpp │ ├── sceUmd.h │ ├── sceUsb.cpp │ ├── sceUsb.h │ ├── sceUsbAcc.cpp │ ├── sceUsbAcc.h │ ├── sceUsbCam.cpp │ ├── sceUsbCam.h │ ├── sceUsbGps.cpp │ ├── sceUsbGps.h │ ├── sceUsbMic.cpp │ ├── sceUsbMic.h │ ├── sceUtility.cpp │ ├── sceUtility.h │ ├── sceVaudio.cpp │ └── sceVaudio.h ├── HW │ ├── AsyncIOManager.cpp │ ├── AsyncIOManager.h │ ├── BufferQueue.cpp │ ├── BufferQueue.h │ ├── Camera.cpp │ ├── Camera.h │ ├── MediaEngine.cpp │ ├── MediaEngine.h │ ├── MemoryStick.cpp │ ├── MemoryStick.h │ ├── MpegDemux.cpp │ ├── MpegDemux.h │ ├── SasAudio.cpp │ ├── SasAudio.h │ ├── SasReverb.cpp │ ├── SasReverb.h │ ├── SimpleAudioDec.cpp │ ├── SimpleAudioDec.h │ ├── StereoResampler.cpp │ └── StereoResampler.h ├── Host.cpp ├── Host.h ├── Instance.cpp ├── Instance.h ├── Loaders.cpp ├── Loaders.h ├── MIPS │ ├── ARM │ │ ├── ArmAsm.cpp │ │ ├── ArmCompALU.cpp │ │ ├── ArmCompBranch.cpp │ │ ├── ArmCompFPU.cpp │ │ ├── ArmCompLoadStore.cpp │ │ ├── ArmCompReplace.cpp │ │ ├── ArmCompVFPU.cpp │ │ ├── ArmCompVFPUNEON.cpp │ │ ├── ArmCompVFPUNEONUtil.cpp │ │ ├── ArmCompVFPUNEONUtil.h │ │ ├── ArmJit.cpp │ │ ├── ArmJit.h │ │ ├── ArmRegCache.cpp │ │ ├── ArmRegCache.h │ │ ├── ArmRegCacheFPU.cpp │ │ └── ArmRegCacheFPU.h │ ├── ARM64 │ │ ├── Arm64Asm.cpp │ │ ├── Arm64CompALU.cpp │ │ ├── Arm64CompBranch.cpp │ │ ├── Arm64CompFPU.cpp │ │ ├── Arm64CompLoadStore.cpp │ │ ├── Arm64CompReplace.cpp │ │ ├── Arm64CompVFPU.cpp │ │ ├── Arm64Jit.cpp │ │ ├── Arm64Jit.h │ │ ├── Arm64RegCache.cpp │ │ ├── Arm64RegCache.h │ │ ├── Arm64RegCacheFPU.cpp │ │ └── Arm64RegCacheFPU.h │ ├── IR │ │ ├── IRAsm.cpp │ │ ├── IRCompALU.cpp │ │ ├── IRCompBranch.cpp │ │ ├── IRCompFPU.cpp │ │ ├── IRCompLoadStore.cpp │ │ ├── IRCompVFPU.cpp │ │ ├── IRFrontend.cpp │ │ ├── IRFrontend.h │ │ ├── IRInst.cpp │ │ ├── IRInst.h │ │ ├── IRInterpreter.cpp │ │ ├── IRInterpreter.h │ │ ├── IRJit.cpp │ │ ├── IRJit.h │ │ ├── IRPassSimplify.cpp │ │ ├── IRPassSimplify.h │ │ ├── IRRegCache.cpp │ │ └── IRRegCache.h │ ├── JitCommon │ │ ├── JitBlockCache.cpp │ │ ├── JitBlockCache.h │ │ ├── JitCommon.cpp │ │ ├── JitCommon.h │ │ ├── JitState.cpp │ │ └── JitState.h │ ├── MIPS.cpp │ ├── MIPS.h │ ├── MIPS │ │ ├── MipsJit.cpp │ │ └── MipsJit.h │ ├── MIPSAnalyst.cpp │ ├── MIPSAnalyst.h │ ├── MIPSAsm.cpp │ ├── MIPSAsm.h │ ├── MIPSCodeUtils.cpp │ ├── MIPSCodeUtils.h │ ├── MIPSDebugInterface.cpp │ ├── MIPSDebugInterface.h │ ├── MIPSDis.cpp │ ├── MIPSDis.h │ ├── MIPSDisVFPU.cpp │ ├── MIPSDisVFPU.h │ ├── MIPSInt.cpp │ ├── MIPSInt.h │ ├── MIPSIntVFPU.cpp │ ├── MIPSIntVFPU.h │ ├── MIPSStackWalk.cpp │ ├── MIPSStackWalk.h │ ├── MIPSTables.cpp │ ├── MIPSTables.h │ ├── MIPSVFPUUtils.cpp │ ├── MIPSVFPUUtils.h │ ├── fake │ │ ├── FakeJit.cpp │ │ └── FakeJit.h │ └── x86 │ │ ├── Asm.cpp │ │ ├── CompALU.cpp │ │ ├── CompBranch.cpp │ │ ├── CompFPU.cpp │ │ ├── CompLoadStore.cpp │ │ ├── CompReplace.cpp │ │ ├── CompVFPU.cpp │ │ ├── IRToX86.cpp │ │ ├── IRToX86.h │ │ ├── Jit.cpp │ │ ├── Jit.h │ │ ├── JitSafeMem.cpp │ │ ├── JitSafeMem.h │ │ ├── RegCache.cpp │ │ ├── RegCache.h │ │ ├── RegCacheFPU.cpp │ │ └── RegCacheFPU.h ├── MemFault.cpp ├── MemFault.h ├── MemMap.cpp ├── MemMap.h ├── MemMapFunctions.cpp ├── MemMapHelpers.h ├── Opcode.h ├── PSPLoaders.cpp ├── PSPLoaders.h ├── Replay.cpp ├── Replay.h ├── Reporting.cpp ├── Reporting.h ├── SaveState.cpp ├── SaveState.h ├── Screenshot.cpp ├── Screenshot.h ├── System.cpp ├── System.h ├── TextureReplacer.cpp ├── TextureReplacer.h ├── ThreadEventQueue.h ├── Util │ ├── AudioFormat.cpp │ ├── AudioFormat.h │ ├── AudioFormatNEON.cpp │ ├── AudioFormatNEON.h │ ├── BlockAllocator.cpp │ ├── BlockAllocator.h │ ├── DisArm64.cpp │ ├── DisArm64.h │ ├── GameManager.cpp │ ├── GameManager.h │ ├── PPGeDraw.cpp │ ├── PPGeDraw.h │ ├── PortManager.cpp │ └── PortManager.h ├── WaveFile.cpp ├── WaveFile.h ├── WebServer.cpp ├── WebServer.h └── x360_compat.h ├── GPU ├── Common │ ├── DepalettizeShaderCommon.cpp │ ├── DepalettizeShaderCommon.h │ ├── DrawEngineCommon.cpp │ ├── DrawEngineCommon.h │ ├── FramebufferManagerCommon.cpp │ ├── FramebufferManagerCommon.h │ ├── GPUDebugInterface.cpp │ ├── GPUDebugInterface.h │ ├── GPUStateUtils.cpp │ ├── GPUStateUtils.h │ ├── IndexGenerator.cpp │ ├── IndexGenerator.h │ ├── PostShader.cpp │ ├── PostShader.h │ ├── PresentationCommon.cpp │ ├── PresentationCommon.h │ ├── ShaderCommon.cpp │ ├── ShaderCommon.h │ ├── ShaderId.cpp │ ├── ShaderId.h │ ├── ShaderTranslation.cpp │ ├── ShaderTranslation.h │ ├── ShaderUniforms.cpp │ ├── ShaderUniforms.h │ ├── SoftwareLighting.h │ ├── SoftwareTransformCommon.cpp │ ├── SoftwareTransformCommon.h │ ├── SplineCommon.cpp │ ├── SplineCommon.h │ ├── StencilCommon.cpp │ ├── StencilCommon.h │ ├── TextureCacheCommon.cpp │ ├── TextureCacheCommon.h │ ├── TextureDecoder.cpp │ ├── TextureDecoder.h │ ├── TextureDecoderNEON.cpp │ ├── TextureDecoderNEON.h │ ├── TextureScalerCommon.cpp │ ├── TextureScalerCommon.h │ ├── TransformCommon.cpp │ ├── TransformCommon.h │ ├── VertexDecoderArm.cpp │ ├── VertexDecoderArm64.cpp │ ├── VertexDecoderCommon.cpp │ ├── VertexDecoderCommon.h │ ├── VertexDecoderFake.cpp │ └── VertexDecoderX86.cpp ├── D3D11 │ ├── D3D11Util.cpp │ ├── D3D11Util.h │ ├── DepalettizeShaderD3D11.cpp │ ├── DepalettizeShaderD3D11.h │ ├── DrawEngineD3D11.cpp │ ├── DrawEngineD3D11.h │ ├── FragmentShaderGeneratorD3D11.cpp │ ├── FragmentShaderGeneratorD3D11.h │ ├── FramebufferManagerD3D11.cpp │ ├── FramebufferManagerD3D11.h │ ├── GPU_D3D11.cpp │ ├── GPU_D3D11.h │ ├── ShaderManagerD3D11.cpp │ ├── ShaderManagerD3D11.h │ ├── StateMappingD3D11.cpp │ ├── StateMappingD3D11.h │ ├── StencilBufferD3D11.cpp │ ├── TextureCacheD3D11.cpp │ ├── TextureCacheD3D11.h │ ├── TextureScalerD3D11.cpp │ ├── TextureScalerD3D11.h │ ├── VertexShaderGeneratorD3D11.cpp │ └── VertexShaderGeneratorD3D11.h ├── Debugger │ ├── Breakpoints.cpp │ ├── Breakpoints.h │ ├── Debugger.cpp │ ├── Debugger.h │ ├── Playback.cpp │ ├── Playback.h │ ├── Record.cpp │ ├── Record.h │ ├── RecordFormat.h │ ├── Stepping.cpp │ └── Stepping.h ├── Directx9 │ ├── DepalettizeShaderDX9.cpp │ ├── DepalettizeShaderDX9.h │ ├── DrawEngineDX9.cpp │ ├── DrawEngineDX9.h │ ├── FramebufferManagerDX9.cpp │ ├── FramebufferManagerDX9.h │ ├── GPU_DX9.cpp │ ├── GPU_DX9.h │ ├── PixelShaderGeneratorDX9.cpp │ ├── PixelShaderGeneratorDX9.h │ ├── ShaderManagerDX9.cpp │ ├── ShaderManagerDX9.h │ ├── StateMappingDX9.cpp │ ├── StateMappingDX9.h │ ├── StencilBufferDX9.cpp │ ├── TextureCacheDX9.cpp │ ├── TextureCacheDX9.h │ ├── TextureScalerDX9.cpp │ ├── TextureScalerDX9.h │ ├── VertexShaderGeneratorDX9.cpp │ └── VertexShaderGeneratorDX9.h ├── GLES │ ├── DepalettizeShaderGLES.cpp │ ├── DepalettizeShaderGLES.h │ ├── DepthBufferGLES.cpp │ ├── DrawEngineGLES.cpp │ ├── DrawEngineGLES.h │ ├── FragmentShaderGeneratorGLES.cpp │ ├── FragmentShaderGeneratorGLES.h │ ├── FragmentTestCacheGLES.cpp │ ├── FragmentTestCacheGLES.h │ ├── FramebufferManagerGLES.cpp │ ├── FramebufferManagerGLES.h │ ├── GPU_GLES.cpp │ ├── GPU_GLES.h │ ├── ShaderManagerGLES.cpp │ ├── ShaderManagerGLES.h │ ├── StateMappingGLES.cpp │ ├── StateMappingGLES.h │ ├── StencilBufferGLES.cpp │ ├── TextureCacheGLES.cpp │ ├── TextureCacheGLES.h │ ├── TextureScalerGLES.cpp │ ├── TextureScalerGLES.h │ ├── VertexShaderGeneratorGLES.cpp │ └── VertexShaderGeneratorGLES.h ├── GPU.cpp ├── GPU.h ├── GPU.vcxproj ├── GPU.vcxproj.filters ├── GPUCommon.cpp ├── GPUCommon.h ├── GPUInterface.h ├── GPUState.cpp ├── GPUState.h ├── GeConstants.cpp ├── GeDisasm.cpp ├── GeDisasm.h ├── Math3D.cpp ├── Math3D.h ├── Null │ ├── NullGpu.cpp │ └── NullGpu.h ├── Software │ ├── Clipper.cpp │ ├── Clipper.h │ ├── Lighting.cpp │ ├── Lighting.h │ ├── README.txt │ ├── Rasterizer.cpp │ ├── Rasterizer.h │ ├── RasterizerRectangle.cpp │ ├── RasterizerRectangle.h │ ├── Sampler.cpp │ ├── Sampler.h │ ├── SamplerX86.cpp │ ├── SoftGpu.cpp │ ├── SoftGpu.h │ ├── TransformUnit.cpp │ ├── TransformUnit.h │ └── trirast.txt ├── Vulkan │ ├── DebugVisVulkan.cpp │ ├── DebugVisVulkan.h │ ├── DepalettizeShaderVulkan.cpp │ ├── DepalettizeShaderVulkan.h │ ├── DrawEngineVulkan.cpp │ ├── DrawEngineVulkan.h │ ├── FragmentShaderGeneratorVulkan.cpp │ ├── FragmentShaderGeneratorVulkan.h │ ├── FramebufferManagerVulkan.cpp │ ├── FramebufferManagerVulkan.h │ ├── GPU_Vulkan.cpp │ ├── GPU_Vulkan.h │ ├── PipelineManagerVulkan.cpp │ ├── PipelineManagerVulkan.h │ ├── ShaderManagerVulkan.cpp │ ├── ShaderManagerVulkan.h │ ├── StateMappingVulkan.cpp │ ├── StateMappingVulkan.h │ ├── StencilBufferVulkan.cpp │ ├── TextureCacheVulkan.cpp │ ├── TextureCacheVulkan.h │ ├── TextureScalerVulkan.cpp │ ├── TextureScalerVulkan.h │ ├── VertexShaderGeneratorVulkan.cpp │ ├── VertexShaderGeneratorVulkan.h │ ├── VulkanUtil.cpp │ └── VulkanUtil.h └── ge_constants.h ├── LICENSE.TXT ├── Qt ├── NKCodeFromQt.h ├── PPSSPP.desktop ├── QtHost.cpp ├── QtHost.h ├── QtMain.cpp ├── QtMain.h ├── languages │ ├── ppsspp_de.ts │ ├── ppsspp_en.ts │ ├── ppsspp_fr.ts │ ├── ppsspp_gr.ts │ ├── ppsspp_hu.ts │ ├── ppsspp_id.ts │ ├── ppsspp_pl.ts │ ├── ppsspp_pt-br.ts │ ├── ppsspp_ru.ts │ ├── ppsspp_zh-cn.ts │ └── ppsspp_zh-tw.ts ├── macbundle.sh ├── mainwindow.cpp ├── mainwindow.h └── resources │ ├── breakpoint.ico │ └── breakpointDisable.ico ├── README.md ├── SDL ├── .gitignore ├── NKCodeFromSDL.h ├── README.TXT ├── SDLCocoaMetalLayer.h ├── SDLCocoaMetalLayer.mm ├── SDLGLGraphicsContext.cpp ├── SDLGLGraphicsContext.h ├── SDLJoystick.cpp ├── SDLJoystick.h ├── SDLMain.cpp ├── SDLMain.h ├── SDLMain.mm ├── SDLVulkanGraphicsContext.cpp ├── SDLVulkanGraphicsContext.h ├── buildassets.sh └── macbundle.sh ├── Tools ├── SaveTool │ ├── Makefile │ ├── README │ ├── decrypt.c │ ├── decrypt.h │ ├── encrypt.c │ ├── encrypt.h │ ├── hash.c │ ├── hash.h │ ├── kernelcall.prx │ ├── kernelcall │ │ ├── Makefile │ │ ├── kernelcall.c │ │ └── kernelcall.h │ ├── main.c │ ├── psf.c │ └── psf.h └── pauth_tool │ ├── Makefile │ ├── PSP │ └── GAME │ │ └── pauth_tool │ │ └── EBOOT.PBP │ ├── main.c │ ├── pauth.S │ └── readme.txt ├── UI ├── BackgroundAudio.cpp ├── BackgroundAudio.h ├── ChatScreen.cpp ├── ChatScreen.h ├── ComboKeyMappingScreen.cpp ├── ComboKeyMappingScreen.h ├── ControlMappingScreen.cpp ├── ControlMappingScreen.h ├── CwCheatScreen.cpp ├── CwCheatScreen.h ├── DevScreens.cpp ├── DevScreens.h ├── DiscordIntegration.cpp ├── DiscordIntegration.h ├── DisplayLayoutEditor.cpp ├── DisplayLayoutEditor.h ├── DisplayLayoutScreen.cpp ├── DisplayLayoutScreen.h ├── EmuScreen.cpp ├── EmuScreen.h ├── GPUDriverTestScreen.cpp ├── GPUDriverTestScreen.h ├── GameInfoCache.cpp ├── GameInfoCache.h ├── GameScreen.cpp ├── GameScreen.h ├── GameSettingsScreen.cpp ├── GameSettingsScreen.h ├── GamepadEmu.cpp ├── GamepadEmu.h ├── HostTypes.h ├── InstallZipScreen.cpp ├── InstallZipScreen.h ├── MainScreen.cpp ├── MainScreen.h ├── MiscScreens.cpp ├── MiscScreens.h ├── NativeApp.cpp ├── OnScreenDisplay.cpp ├── OnScreenDisplay.h ├── PauseScreen.cpp ├── PauseScreen.h ├── ProfilerDraw.cpp ├── ProfilerDraw.h ├── ReadMe.txt ├── RemoteISOScreen.cpp ├── RemoteISOScreen.h ├── ReportScreen.cpp ├── ReportScreen.h ├── SavedataScreen.cpp ├── SavedataScreen.h ├── Store.cpp ├── Store.h ├── TextureUtil.cpp ├── TextureUtil.h ├── TiltAnalogSettingsScreen.cpp ├── TiltAnalogSettingsScreen.h ├── TiltEventProcessor.cpp ├── TiltEventProcessor.h ├── TouchControlLayoutScreen.cpp ├── TouchControlLayoutScreen.h ├── TouchControlVisibilityScreen.cpp ├── TouchControlVisibilityScreen.h ├── UI.vcxproj └── UI.vcxproj.filters ├── UWP ├── .gitignore ├── App.cpp ├── App.h ├── Armips_UWP │ ├── Armips_UWP.vcxproj │ ├── Armips_UWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── AssetsGold │ ├── LockScreenLogo.scale-200.png │ ├── SplashScreen.scale-200.png │ ├── Square150x150Logo.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── StoreLogo.png │ ├── StoreLogo.scale-100.png │ └── Wide310x150Logo.scale-200.png ├── AssetsNormal │ ├── LockScreenLogo.scale-200.png │ ├── SplashScreen.scale-200.png │ ├── Square150x150Logo.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── StoreLogo.png │ └── Wide310x150Logo.scale-200.png ├── Common │ ├── DeviceResources.cpp │ ├── DeviceResources.h │ └── DirectXHelper.h ├── CommonUWP │ ├── CommonUWP.cpp │ ├── CommonUWP.h │ ├── CommonUWP.vcxproj │ ├── CommonUWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── Content │ └── .empty ├── CoreUWP │ ├── CoreUWP.vcxproj │ ├── CoreUWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── GPU_UWP │ ├── GPU_UWP.vcxproj │ ├── GPU_UWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── NKCodeFromWindowsSystem.cpp ├── NKCodeFromWindowsSystem.h ├── NativeUWP │ ├── NativeUWP.vcxproj │ ├── NativeUWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── PPSSPP_UWP.sln ├── PPSSPP_UWPMain.cpp ├── PPSSPP_UWPMain.h ├── PPSSPP_UWP_TemporaryKey.pfx ├── PackageGold.appxmanifest ├── PackageNormal.appxmanifest ├── SPIRVCross_UWP │ ├── SPIRVCross_UWP.vcxproj │ ├── SPIRVCross_UWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── StorageFileLoader.cpp ├── StorageFileLoader.h ├── StorageFolderBrowser.cpp ├── StorageFolderBrowser.h ├── UI_UWP │ ├── UI_UWP.vcxproj │ ├── UI_UWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── UWP.vcxproj ├── UWP.vcxproj.filters ├── UWPHost.cpp ├── UWPHost.h ├── UWPUtil.h ├── UWP_TemporaryKey.pfx ├── XAudioSoundStream.cpp ├── XAudioSoundStream.h ├── build_uwp.proj ├── glslang_UWP │ ├── glslang_UWP.vcxproj │ ├── glslang_UWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── imgconv.sh ├── libkirk_UWP │ ├── libkirk_UWP.vcxproj │ ├── libkirk_UWP.vcxproj.filters │ ├── pch.cpp │ ├── pch.h │ └── targetver.h ├── miniupnpc_UWP │ ├── miniupnpc_UWP.vcxproj │ ├── miniupnpc_UWP.vcxproj.filters │ ├── pch.c │ ├── pch.h │ └── targetver.h ├── pch.cpp ├── pch.h └── zlib_UWP │ ├── targetver.h │ ├── zlib_UWP.vcxproj │ └── zlib_UWP.vcxproj.filters ├── Windows ├── .gitignore ├── BufferLock.h ├── CaptureDevice.cpp ├── CaptureDevice.h ├── DSoundStream.cpp ├── DSoundStream.h ├── DebugLog.bat ├── Debugger │ ├── BreakpointWindow.cpp │ ├── BreakpointWindow.h │ ├── CPURegsInterface.h │ ├── CtrlDisAsmView.cpp │ ├── CtrlDisAsmView.h │ ├── CtrlMemView.cpp │ ├── CtrlMemView.h │ ├── CtrlRegisterList.cpp │ ├── CtrlRegisterList.h │ ├── Debugger.h │ ├── DebuggerShared.cpp │ ├── DebuggerShared.h │ ├── Debugger_Disasm.cpp │ ├── Debugger_Disasm.h │ ├── Debugger_Lists.cpp │ ├── Debugger_Lists.h │ ├── Debugger_MemoryDlg.cpp │ ├── Debugger_MemoryDlg.h │ ├── Debugger_Misc.cpp │ ├── Debugger_Misc.h │ ├── Debugger_Profiler.cpp │ ├── Debugger_Profiler.h │ ├── Debugger_SymbolMap.h │ ├── Debugger_VFPUDlg.cpp │ ├── Debugger_VFPUDlg.h │ ├── DumpMemoryWindow.cpp │ ├── DumpMemoryWindow.h │ └── SimpleELF.h ├── DinputDevice.cpp ├── DinputDevice.h ├── DlgDynaView.cpp ├── DlgDynaView.h ├── EmuThread.cpp ├── EmuThread.h ├── GEDebugger │ ├── CtrlDisplayListView.cpp │ ├── CtrlDisplayListView.h │ ├── GEDebugger.cpp │ ├── GEDebugger.h │ ├── SimpleGLWindow.cpp │ ├── SimpleGLWindow.h │ ├── TabDisplayLists.cpp │ ├── TabDisplayLists.h │ ├── TabState.cpp │ ├── TabState.h │ ├── TabVertices.cpp │ ├── TabVertices.h │ └── VertexPreview.cpp ├── GPU │ ├── D3D11Context.cpp │ ├── D3D11Context.h │ ├── D3D9Context.cpp │ ├── D3D9Context.h │ ├── WindowsGLContext.cpp │ ├── WindowsGLContext.h │ ├── WindowsGraphicsContext.h │ ├── WindowsVulkanContext.cpp │ └── WindowsVulkanContext.h ├── InfoLog.bat ├── InputBox.cpp ├── InputBox.h ├── InputDevice.cpp ├── InputDevice.h ├── MainThread.h ├── MainWindow.cpp ├── MainWindow.h ├── MainWindowMenu.cpp ├── MainWindowMenu.h ├── PPSSPP.manifest ├── PPSSPP.sln ├── PPSSPP.vcxproj ├── PPSSPP.vcxproj.filters ├── README.TXT ├── RawInput.cpp ├── RawInput.h ├── TouchInputHandler.cpp ├── TouchInputHandler.h ├── W32Util │ ├── DialogManager.cpp │ ├── DialogManager.h │ ├── Misc.cpp │ ├── Misc.h │ ├── PropertySheet.cpp │ ├── PropertySheet.h │ ├── ShellUtil.cpp │ ├── ShellUtil.h │ ├── TabControl.cpp │ └── TabControl.h ├── WASAPIStream.cpp ├── WASAPIStream.h ├── WindowsAudio.cpp ├── WindowsAudio.h ├── WindowsHost.cpp ├── WindowsHost.h ├── XPTheme.h ├── XinputDevice.cpp ├── XinputDevice.h ├── aboutbox.rc ├── bitmap1.bmp ├── build-x64.cmd ├── build-x86.cmd ├── build_windows.proj ├── debugger.txt ├── fix_2017.props ├── git-version-gen.cmd ├── icon1.ico ├── main.cpp ├── main.h ├── mingw_defines.h ├── ppsspp.ico ├── ppsspp.rc ├── ppsspp_gold.ico ├── pspmode.png ├── resource.h ├── stdafx.cpp ├── stdafx.h ├── stop1.ico ├── version.rc └── zipup.cmd ├── android ├── .gitignore ├── AndroidManifest.xml ├── README.TXT ├── ab-ant.sh ├── ab.cmd ├── ab.sh ├── ad.sh ├── android-ndk-profiler │ ├── Android.mk │ ├── COPYING │ ├── README.mkd │ ├── armeabi-v7a │ │ └── libandroid-ndk-profiler.a │ ├── armeabi │ │ └── libandroid-ndk-profiler.a │ └── prof.h ├── ant-build.bat ├── assets │ ├── ppge_atlas.meta │ ├── ppge_atlas.zim │ ├── rargray.png │ ├── ui_atlas.meta │ ├── ui_atlas.zim │ ├── unknown.png │ └── zip.png ├── build.gradle ├── build.sh ├── build.xml ├── buildassets.sh ├── custom_rules.xml ├── d.txt ├── dbg.sh ├── debug.keystore ├── git-version-gen.sh ├── gold │ └── res │ │ ├── drawable-hdpi │ │ └── ic_launcher.png │ │ ├── drawable-ldpi │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ ├── ic_launcher.png │ │ └── tv_banner.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ ├── drawable │ │ └── ic_banner.png │ │ └── values │ │ └── strings.xml ├── gradle.properties ├── jni │ ├── Android.mk │ ├── AndroidAudio.cpp │ ├── AndroidAudio.h │ ├── AndroidEGLContext.cpp │ ├── AndroidEGLContext.h │ ├── AndroidGraphicsContext.h │ ├── AndroidJavaGLContext.cpp │ ├── AndroidJavaGLContext.h │ ├── AndroidVulkanContext.cpp │ ├── AndroidVulkanContext.h │ ├── Application.mk │ ├── Arm64EmitterTest.cpp │ ├── Arm64EmitterTest.h │ ├── ArmEmitterTest.cpp │ ├── ArmEmitterTest.h │ ├── Locals.mk │ ├── OpenSLContext.cpp │ ├── OpenSLContext.h │ ├── TestRunner.cpp │ ├── TestRunner.h │ ├── app-android.cpp │ └── app-android.h ├── libs │ ├── MogaStubs │ │ └── com │ │ │ └── bda │ │ │ └── controller │ │ │ ├── Controller.java │ │ │ ├── ControllerListener.java │ │ │ ├── IControllerService.java │ │ │ ├── KeyEvent.java │ │ │ ├── MotionEvent.java │ │ │ └── StateEvent.java │ └── com.bda.controller.jar ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-ldpi │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ ├── ic_launcher.png │ │ ├── ouya_icon.png │ │ └── tv_banner.png │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ ├── drawable │ │ └── ic_banner.png │ ├── values-v21 │ │ └── styles.xml │ ├── values-v28 │ │ └── styles.xml │ └── values │ │ ├── analytics.xml │ │ ├── strings.xml │ │ └── styles.xml ├── src │ └── org │ │ └── ppsspp │ │ └── ppsspp │ │ ├── AudioFocusChangeListener.java │ │ ├── CameraHelper.java │ │ ├── InputDeviceState.java │ │ ├── LocationHelper.java │ │ ├── MogaHack.java │ │ ├── NativeActivity.java │ │ ├── NativeApp.java │ │ ├── NativeEGLConfigChooser.java │ │ ├── NativeGLView.java │ │ ├── NativeRenderer.java │ │ ├── NativeSurfaceView.java │ │ ├── PowerSaveModeReceiver.java │ │ ├── PpssppActivity.java │ │ ├── ShortcutActivity.java │ │ ├── SimpleFileChooser.java │ │ ├── SizeManager.java │ │ └── TextRenderer.java ├── symarm.cmd ├── symarm64.cmd └── symx86.cmd ├── appveyor.yml ├── assets ├── 7z.png ├── Roboto-Condensed.ttf ├── compat.ini ├── flash0 │ └── font │ │ ├── jpn0.pgf │ │ ├── kr0.pgf │ │ ├── ltn0.pgf │ │ ├── ltn1.pgf │ │ ├── ltn10.pgf │ │ ├── ltn11.pgf │ │ ├── ltn12.pgf │ │ ├── ltn13.pgf │ │ ├── ltn14.pgf │ │ ├── ltn15.pgf │ │ ├── ltn2.pgf │ │ ├── ltn3.pgf │ │ ├── ltn4.pgf │ │ ├── ltn5.pgf │ │ ├── ltn6.pgf │ │ ├── ltn7.pgf │ │ ├── ltn8.pgf │ │ └── ltn9.pgf ├── gamecontrollerdb.txt ├── knownfuncs.ini ├── langregion.ini ├── ppge_atlas.meta ├── ppge_atlas.zim ├── rargray.png ├── sfx_back.wav ├── sfx_confirm.wav ├── sfx_select.wav ├── sfx_toggle_off.wav ├── sfx_toggle_on.wav ├── shaders │ ├── 4xhqglsl.fsh │ ├── 4xhqglsl.vsh │ ├── 5xBR-lv2.fsh │ ├── 5xBR.fsh │ ├── 5xBR.vsh │ ├── GaussianDownscale.fsh │ ├── aacolor.fsh │ ├── aacolor.vsh │ ├── bloom.fsh │ ├── cartoon.fsh │ ├── cartoon.vsh │ ├── colorcorrection.fsh │ ├── crt.fsh │ ├── defaultshaders.ini │ ├── fxaa.fsh │ ├── fxaa.vsh │ ├── grayscale.fsh │ ├── inversecolors.fsh │ ├── natural.fsh │ ├── natural.vsh │ ├── naturalA.fsh │ ├── psp_color.fsh │ ├── psp_color.ini │ ├── psp_color.vsh │ ├── scanlines.fsh │ ├── sharpen.fsh │ ├── tex_4xbrz.csh │ ├── upscale_spline36.fsh │ ├── upscale_spline36.vsh │ ├── videoAA.fsh │ └── vignette.fsh ├── ui_atlas.meta ├── ui_atlas.zim ├── ui_atlas_lowmem.zim ├── unknown.png └── zip.png ├── atlasscript.txt ├── b.sh ├── build.gradle ├── build_ppgeatlas.sh ├── buildatlas.sh ├── chinese.txt ├── cmake ├── Modules │ ├── FindFFmpeg.cmake │ ├── FindLibZip.cmake │ ├── FindSDL2.cmake │ ├── FindSnappy.cmake │ ├── FindWayland.cmake │ └── ccache.cmake └── Toolchains │ ├── beagleboard.cmake │ ├── generic.armv7.cmake │ ├── ios.cmake │ ├── nvidiajetsonsdl.armv8.cmake │ ├── raspberry.armv6.cmake │ ├── raspberry.armv7.cmake │ ├── raspberry.armv8.cmake │ └── vero4k.armv8.cmake ├── copyrelease.sh ├── ext ├── .gitignore ├── CMakeLists.txt ├── SPIRV-Cross-build │ └── CMakeLists.txt ├── SPIRV-Cross.vcxproj ├── SPIRV-Cross.vcxproj.filters ├── cityhash │ ├── COPYING │ ├── README │ ├── city.cpp │ ├── city.h │ └── citycrc.h ├── cmake │ └── armips │ │ └── CMakeLists.txt ├── disarm.cpp ├── disarm.h ├── discord-rpc-build │ ├── CMakeLists.txt │ ├── discord-rpc.vcxproj │ └── discord-rpc.vcxproj.filters ├── gason │ ├── LICENSE │ ├── gason.cpp │ └── gason.h ├── glew │ ├── CMakeLists.txt │ ├── GL │ │ ├── eglew.h │ │ ├── glew.h │ │ ├── glxew.h │ │ └── wglew.h │ ├── glew.c │ ├── glewinfo.c │ └── visualinfo.c ├── glslang-build │ └── Android.mk ├── glslang.vcxproj ├── glslang.vcxproj.filters ├── jpge │ ├── jpgd.cpp │ ├── jpgd.h │ ├── jpge.cpp │ ├── jpge.h │ └── publicdomain.txt ├── libarmips.vcxproj ├── libarmips.vcxproj.filters ├── libkirk │ ├── AES.c │ ├── AES.h │ ├── CMakeLists.txt │ ├── SHA1.c │ ├── SHA1.h │ ├── amctrl.c │ ├── amctrl.h │ ├── bn.c │ ├── ec.c │ ├── kirk_engine.c │ ├── kirk_engine.h │ ├── libkirk.vcxproj │ └── libkirk.vcxproj.filters ├── libpng17 │ ├── CMakeLists.txt │ ├── arm │ │ ├── arm_init.c │ │ ├── filter_neon.S │ │ └── filter_neon_intrinsics.c │ ├── png.c │ ├── png.h │ ├── pngconf.h │ ├── pngdebug.h │ ├── pngerror.c │ ├── pngget.c │ ├── pnginfo.h │ ├── pnglibconf.h │ ├── pngmem.c │ ├── pngpread.c │ ├── pngpriv.h │ ├── pngread.c │ ├── pngrio.c │ ├── pngrtran.c │ ├── pngrutil.c │ ├── pngset.c │ ├── pngstruct.h │ ├── pngtest.c │ ├── pngtrans.c │ ├── pngwio.c │ ├── pngwrite.c │ ├── pngwtran.c │ └── pngwutil.c ├── libzip │ ├── Android.mk │ ├── CMakeLists.txt │ ├── config.h │ ├── libzip.la │ ├── mkstemp.c │ ├── zip.h │ ├── zip_add.c │ ├── zip_add_dir.c │ ├── zip_close.c │ ├── zip_delete.c │ ├── zip_dirent.c │ ├── zip_entry_free.c │ ├── zip_entry_new.c │ ├── zip_err_str.c │ ├── zip_error.c │ ├── zip_error_clear.c │ ├── zip_error_get.c │ ├── zip_error_get_sys_type.c │ ├── zip_error_strerror.c │ ├── zip_error_to_str.c │ ├── zip_fclose.c │ ├── zip_file_error_clear.c │ ├── zip_file_error_get.c │ ├── zip_file_get_offset.c │ ├── zip_file_strerror.c │ ├── zip_filerange_crc.c │ ├── zip_fopen.c │ ├── zip_fopen_index.c │ ├── zip_fread.c │ ├── zip_free.c │ ├── zip_get_archive_comment.c │ ├── zip_get_archive_flag.c │ ├── zip_get_file_comment.c │ ├── zip_get_name.c │ ├── zip_get_num_files.c │ ├── zip_memdup.c │ ├── zip_name_locate.c │ ├── zip_new.c │ ├── zip_open.c │ ├── zip_rename.c │ ├── zip_replace.c │ ├── zip_set_archive_comment.c │ ├── zip_set_archive_flag.c │ ├── zip_set_file_comment.c │ ├── zip_set_name.c │ ├── zip_source_buffer.c │ ├── zip_source_file.c │ ├── zip_source_filep.c │ ├── zip_source_free.c │ ├── zip_source_function.c │ ├── zip_source_zip.c │ ├── zip_stat.c │ ├── zip_stat_index.c │ ├── zip_stat_init.c │ ├── zip_strerror.c │ ├── zip_unchange.c │ ├── zip_unchange_all.c │ ├── zip_unchange_archive.c │ ├── zip_unchange_data.c │ └── zipint.h ├── miniupnp-build │ ├── Android.mk │ └── miniupnpcstrings.h ├── miniupnpc.vcxproj ├── miniupnpc.vcxproj.filters ├── native │ ├── .gitignore │ ├── Android.mk │ ├── LICENSE.TXT │ ├── base │ │ ├── CMakeLists.txt │ │ ├── NativeApp.h │ │ ├── colorutil.cpp │ │ ├── colorutil.h │ │ ├── display.cpp │ │ ├── display.h │ │ └── linked_ptr.h │ ├── data │ │ ├── base64.cpp │ │ ├── base64.h │ │ ├── compression.cpp │ │ └── compression.h │ ├── file │ │ ├── CMakeLists.txt │ │ ├── chunk_file.cpp │ │ ├── chunk_file.h │ │ ├── fd_util.cpp │ │ ├── fd_util.h │ │ ├── file_util.cpp │ │ ├── file_util.h │ │ ├── free.cpp │ │ ├── free.h │ │ ├── ini_file.cpp │ │ ├── ini_file.h │ │ ├── path.cpp │ │ ├── path.h │ │ ├── vfs.h │ │ ├── zip_read.cpp │ │ └── zip_read.h │ ├── gfx │ │ ├── CMakeLists.txt │ │ ├── d3d9_shader.cpp │ │ ├── d3d9_shader.h │ │ ├── d3d9_state.cpp │ │ ├── d3d9_state.h │ │ ├── gl_common.h │ │ ├── gl_debug_log.cpp │ │ ├── gl_debug_log.h │ │ ├── texture_atlas.cpp │ │ └── texture_atlas.h │ ├── gfx_es2 │ │ ├── CMakeLists.txt │ │ ├── draw_buffer.cpp │ │ ├── draw_buffer.h │ │ ├── draw_text.cpp │ │ ├── draw_text.h │ │ ├── draw_text_android.cpp │ │ ├── draw_text_android.h │ │ ├── draw_text_qt.cpp │ │ ├── draw_text_qt.h │ │ ├── draw_text_uwp.cpp │ │ ├── draw_text_uwp.h │ │ ├── draw_text_win.cpp │ │ ├── draw_text_win.h │ │ ├── gl3stub.c │ │ ├── gl3stub.h │ │ ├── glsl_program.cpp │ │ ├── glsl_program.h │ │ ├── gpu_features.cpp │ │ └── gpu_features.h │ ├── i18n │ │ ├── i18n.cpp │ │ └── i18n.h │ ├── image │ │ ├── CMakeLists.txt │ │ ├── png_load.cpp │ │ ├── png_load.h │ │ ├── zim_load.cpp │ │ ├── zim_load.h │ │ ├── zim_save.cpp │ │ └── zim_save.h │ ├── json │ │ ├── CMakeLists.txt │ │ ├── json_reader.cpp │ │ ├── json_reader.h │ │ ├── json_writer.cpp │ │ ├── json_writer.h │ │ └── json_writer_test.cpp │ ├── math │ │ ├── CMakeLists.txt │ │ ├── curves.cpp │ │ ├── curves.h │ │ ├── dataconv.cpp │ │ ├── dataconv.h │ │ ├── expression_parser.cpp │ │ ├── expression_parser.h │ │ ├── fast │ │ │ ├── fast_math.c │ │ │ ├── fast_math.h │ │ │ ├── fast_matrix.c │ │ │ ├── fast_matrix.h │ │ │ ├── fast_matrix_neon.S │ │ │ └── fast_matrix_sse.c │ │ ├── geom2d.h │ │ ├── lin │ │ │ ├── matrix4x4.cpp │ │ │ ├── matrix4x4.h │ │ │ ├── matrix_neon.s │ │ │ ├── vec3.cpp │ │ │ └── vec3.h │ │ ├── math_util.cpp │ │ └── math_util.h │ ├── native.vcxproj │ ├── native.vcxproj.filters │ ├── net │ │ ├── CMakeLists.txt │ │ ├── http_client.cpp │ │ ├── http_client.h │ │ ├── http_headers.cpp │ │ ├── http_headers.h │ │ ├── http_server.cpp │ │ ├── http_server.h │ │ ├── resolve.cpp │ │ ├── resolve.h │ │ ├── sinks.cpp │ │ ├── sinks.h │ │ ├── url.cpp │ │ ├── url.h │ │ ├── websocket_server.cpp │ │ └── websocket_server.h │ ├── profiler │ │ ├── CMakeLists.txt │ │ ├── profiler.cpp │ │ └── profiler.h │ ├── thin3d │ │ ├── DataFormat.h │ │ ├── DataFormatGL.cpp │ │ ├── DataFormatGL.h │ │ ├── GLQueueRunner.cpp │ │ ├── GLQueueRunner.h │ │ ├── GLRenderManager.cpp │ │ ├── GLRenderManager.h │ │ ├── VulkanQueueRunner.cpp │ │ ├── VulkanQueueRunner.h │ │ ├── VulkanRenderManager.cpp │ │ ├── VulkanRenderManager.h │ │ ├── d3d11_loader.cpp │ │ ├── d3d11_loader.h │ │ ├── d3d9_d3dcompiler_loader.cpp │ │ ├── d3d9_d3dcompiler_loader.h │ │ ├── d3dx9_loader.cpp │ │ ├── d3dx9_loader.h │ │ ├── thin3d.cpp │ │ ├── thin3d.h │ │ ├── thin3d_create.h │ │ ├── thin3d_d3d11.cpp │ │ ├── thin3d_d3d9.cpp │ │ ├── thin3d_gl.cpp │ │ ├── thin3d_vulkan.cpp │ │ └── vulkan_utils.cpp │ ├── tools │ │ ├── .gitignore │ │ ├── .project │ │ ├── CMakeLists.txt │ │ ├── README.txt │ │ ├── atlastool.cpp │ │ ├── atlastool │ │ │ └── atlastool.vcxproj │ │ ├── b.sh │ │ ├── kanjifilter.h │ │ ├── zimtool.cpp │ │ └── zimtool │ │ │ ├── zimtool.vcxproj │ │ │ └── zimtool.vcxproj.filters │ ├── ui │ │ ├── CMakeLists.txt │ │ ├── root.cpp │ │ ├── root.h │ │ ├── screen.cpp │ │ ├── screen.h │ │ ├── ui.cpp │ │ ├── ui.h │ │ ├── ui_context.cpp │ │ ├── ui_context.h │ │ ├── ui_screen.cpp │ │ ├── ui_screen.h │ │ ├── ui_tween.cpp │ │ ├── ui_tween.h │ │ ├── view.cpp │ │ ├── view.h │ │ ├── viewgroup.cpp │ │ └── viewgroup.h │ └── util │ │ ├── CMakeLists.txt │ │ ├── const_map.h │ │ ├── hash │ │ ├── hash.cpp │ │ └── hash.h │ │ ├── random │ │ └── rng.h │ │ ├── text │ │ ├── parsers.cpp │ │ ├── parsers.h │ │ ├── shiftjis.h │ │ ├── utf16.h │ │ ├── utf8.cpp │ │ ├── utf8.h │ │ ├── wrap_text.cpp │ │ └── wrap_text.h │ │ └── tiny_set.h ├── sfmt19937 │ ├── SFMT-common.h │ ├── SFMT-params.h │ ├── SFMT-params19937.h │ ├── SFMT.c │ └── SFMT.h ├── sha1 │ ├── CMakeLists.txt │ ├── sha1.cpp │ └── sha1.h ├── snappy │ ├── AUTHORS │ ├── CMakeLists.txt │ ├── COPYING │ ├── readme.ppsspp.txt │ ├── snappy-c.cpp │ ├── snappy-c.h │ ├── snappy-internal.h │ ├── snappy-sinksource.cpp │ ├── snappy-sinksource.h │ ├── snappy-stubs-internal.cpp │ ├── snappy-stubs-internal.h │ ├── snappy-stubs-public.h │ ├── snappy.cpp │ └── snappy.h ├── udis86 │ ├── CMakeLists.txt │ ├── LICENSE │ ├── decode.c │ ├── decode.h │ ├── extern.h │ ├── itab.c │ ├── itab.h │ ├── syn-att.c │ ├── syn-intel.c │ ├── syn.c │ ├── syn.h │ ├── types.h │ ├── udint.h │ ├── udis86.c │ └── udis86.h ├── vulkan │ ├── GLSL.std.450.h │ ├── libvulkan.so │ ├── libvulkan.so.1 │ ├── libvulkan.so.1.0.30 │ ├── spirv.h │ ├── vk_icd.h │ ├── vk_layer.h │ ├── vk_platform.h │ ├── vk_sdk_platform.h │ ├── vulkan.h │ ├── vulkan_android.h │ ├── vulkan_beta.h │ ├── vulkan_core.h │ ├── vulkan_fuchsia.h │ ├── vulkan_ggp.h │ ├── vulkan_ios.h │ ├── vulkan_macos.h │ ├── vulkan_metal.h │ ├── vulkan_vi.h │ ├── vulkan_wayland.h │ ├── vulkan_win32.h │ ├── vulkan_xcb.h │ ├── vulkan_xlib.h │ └── vulkan_xlib_xrandr.h ├── xbrz │ ├── config.h │ ├── xbrz.cpp │ └── xbrz.h ├── xxhash.c ├── xxhash.h └── zlib │ ├── CMakeLists.txt │ ├── ChangeLog │ ├── 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 │ ├── make_vms.com │ ├── trees.c │ ├── trees.h │ ├── uncompr.c │ ├── zconf.h │ ├── zlib.h │ ├── zlib.vcxproj │ ├── zlib.vcxproj.filters │ ├── zutil.c │ └── zutil.h ├── git-version.cmake ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── headless ├── Compare.cpp ├── Compare.h ├── Headless.cpp ├── Headless.vcxproj ├── Headless.vcxproj.filters ├── SDLHeadlessHost.cpp ├── SDLHeadlessHost.h ├── StubHost.cpp ├── StubHost.h ├── WindowsHeadlessHost.cpp ├── WindowsHeadlessHost.h └── headless.txt ├── history.md ├── icons ├── convert-to-png.sh ├── hicolor │ ├── 128x128 │ │ └── apps │ │ │ └── ppsspp.png │ ├── 16x16 │ │ └── apps │ │ │ └── ppsspp.png │ ├── 24x24 │ │ └── apps │ │ │ └── ppsspp.png │ ├── 256x256 │ │ └── apps │ │ │ └── ppsspp.png │ ├── 32x32 │ │ └── apps │ │ │ └── ppsspp.png │ ├── 48x48 │ │ └── apps │ │ │ └── ppsspp.png │ ├── 512x512 │ │ └── apps │ │ │ └── ppsspp.png │ ├── 64x64 │ │ └── apps │ │ │ └── ppsspp.png │ └── 96x96 │ │ └── apps │ │ └── ppsspp.png ├── icon-114.png ├── icon-16.svg ├── icon-512.svg ├── icon.svg ├── notes.txt └── ppsspp.icns ├── ios ├── AppDelegate.h ├── AppDelegate.mm ├── AudioEngine.h ├── AudioEngine.mm ├── CameraHelper.h ├── CameraHelper.mm ├── DisplayManager.h ├── DisplayManager.mm ├── Launch Screen.storyboard ├── LocationHelper.h ├── LocationHelper.mm ├── PPSSPP-Info.plist ├── PPSSPP-Prefix.pch ├── PPSSPPUIApplication.h ├── PPSSPPUIApplication.mm ├── README.md ├── Settings.bundle │ ├── Root.plist │ └── en.lproj │ │ └── Root.strings ├── SmartKeyboardMap.cpp ├── SmartKeyboardMap.hpp ├── SubtleVolume.h ├── SubtleVolume.mm ├── ViewController.h ├── ViewController.mm ├── assets │ ├── Default-568h@2x.png │ ├── Default-568h@3x.png │ ├── Icon-72.png │ ├── Icon-72@2x.png │ ├── Icon-72@3x.png │ ├── Icon.png │ ├── Icon@2x.png │ └── Icon@3x.png ├── iCade │ ├── iCadeReaderView.h │ ├── iCadeReaderView.m │ └── iCadeState.h ├── iOSCoreAudio.h ├── iOSCoreAudio.mm ├── macbundle.sh └── main.mm ├── korean.txt ├── libretro ├── .gitignore ├── CMakeLists.txt ├── LibretroD3D11Context.cpp ├── LibretroD3D11Context.h ├── LibretroGLContext.cpp ├── LibretroGLContext.h ├── LibretroGLCoreContext.cpp ├── LibretroGLCoreContext.h ├── LibretroGraphicsContext.cpp ├── LibretroGraphicsContext.h ├── LibretroVulkanContext.cpp ├── LibretroVulkanContext.h ├── Makefile ├── Makefile.common ├── ext │ └── glew │ │ └── glew.c ├── jni │ ├── Android.mk │ └── Application.mk ├── libretro.cpp ├── libretro.def ├── libretro.h ├── libretro_d3d.h ├── libretro_vulkan.cpp ├── libretro_vulkan.h └── link.T ├── link_readme.py ├── macshaders.sh ├── make-font-textfiles.sh ├── notinstalled.txt ├── ppge_atlasscript.txt ├── ppsspp.iss ├── ppsspp_config.h ├── settings.gradle ├── source_assets ├── image │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── L.png │ ├── R.png │ ├── active_item.png │ ├── arrow.png │ ├── background.png │ ├── background2.png │ ├── background_gold.png │ ├── button.png │ ├── button_selected.png │ ├── buttons.svg │ ├── checkedbox.png │ ├── circle.png │ ├── cross.png │ ├── dir.png │ ├── dir_line.png │ ├── dropshadow.png │ ├── exe.png │ ├── flag_as.png │ ├── flag_eu.png │ ├── flag_hk.png │ ├── flag_jp.png │ ├── flag_ko.png │ ├── flag_us.png │ ├── folder.png │ ├── folder_line.png │ ├── gear.png │ ├── grid.png │ ├── icon_gold.png │ ├── icon_gold_72.png │ ├── icon_regular.png │ ├── icon_regular_72.png │ ├── inactive_item.png │ ├── lines.png │ ├── logo.png │ ├── logo.svg │ ├── psp_display.png │ ├── rect.png │ ├── rect_line.png │ ├── round.png │ ├── round_line.png │ ├── select.png │ ├── shoulder.png │ ├── shoulder_line.png │ ├── square.png │ ├── start.png │ ├── stick.png │ ├── stick_bg.png │ ├── stick_bg_line.png │ ├── stick_line.png │ ├── triangle.png │ ├── umd256.png │ ├── umd48.png │ ├── up_line.png │ ├── updir.png │ └── zip.pdn └── ouya │ ├── OUYA_A.png │ ├── OUYA_DPAD.png │ ├── OUYA_DPAD_DOWN.png │ ├── OUYA_DPAD_LEFT.png │ ├── OUYA_DPAD_RIGHT.png │ ├── OUYA_DPAD_UP.png │ ├── OUYA_L1.png │ ├── OUYA_L2.png │ ├── OUYA_L3.png │ ├── OUYA_LS.png │ ├── OUYA_LS_DOWN.png │ ├── OUYA_LS_LEFT.png │ ├── OUYA_LS_RIGHT.png │ ├── OUYA_LS_UP.png │ ├── OUYA_O.png │ ├── OUYA_R1.png │ ├── OUYA_R2.png │ ├── OUYA_R3.png │ ├── OUYA_RS.png │ ├── OUYA_RS_DOWN.png │ ├── OUYA_RS_LEFT.png │ ├── OUYA_RS_RIGHT.png │ ├── OUYA_RS_UP.png │ ├── OUYA_SYSTEM.png │ ├── OUYA_TOUCHPAD.png │ ├── OUYA_U.png │ └── OUYA_Y.png ├── tesselationhwON-mesa3drun.sh ├── test.py └── unittest ├── JitHarness.cpp ├── JitHarness.h ├── TestArm64Emitter.cpp ├── TestArmEmitter.cpp ├── TestVertexJit.cpp ├── TestVertexJit.h ├── TestX64Emitter.cpp ├── UnitTest.cpp ├── UnitTest.h ├── UnitTests.vcxproj └── UnitTests.vcxproj.filters /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org/ 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = tab 7 | insert_final_newline = true 8 | # Would be nice, but don't want to change files unnecessarily. 9 | #trim_trailing_whitespace = true 10 | 11 | [*.py] 12 | indent_style = space 13 | indent_size = 2 14 | 15 | [*.sh] 16 | end_of_line = lf 17 | 18 | [*.rc] 19 | indent_style = space 20 | indent_size = 4 21 | 22 | [Core/Dialog/PSPOskDialog.cpp] 23 | charset = utf-8-bom 24 | 25 | [ext/native/tools/kanjifilter.h] 26 | # This file may need to force a BOM so compilers treat as utf-8. 27 | charset = utf-8-bom 28 | 29 | [Windows/{aboutbox.rc,version.rc}] 30 | charset = utf-8 31 | 32 | [libretro/**.{cpp,h}] 33 | indent_style = space 34 | indent_size = 3 35 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.cpp text diff=cpp 2 | *.h text diff=cpp 3 | *.mm text diff=objc 4 | *.m text diff=objc 5 | *.java text diff=java 6 | *.sh text eol=lf 7 | *.vcproj text eol=crlf 8 | *.vcproj.filters text eol=crlf 9 | *.sln text eol=crlf 10 | *.properties text 11 | *.xml text 12 | 13 | # To avoid mucking up the utf-8 characters. 14 | Core/Dialog/PSPOskDialog.cpp binary -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | ### What happens? 7 | 8 | 9 | ### What *should* happen? 10 | 11 | 12 | ### What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues. 13 | 14 | 15 | -------------------------------------------------------------------------------- /Common/ArmCommon.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 Dolphin Emulator Project 2 | // Licensed under GPLv2 3 | // Refer to the license.txt file included. 4 | 5 | #pragma once 6 | 7 | #include "CommonTypes.h" 8 | 9 | enum CCFlags 10 | { 11 | CC_EQ = 0, // Equal 12 | CC_NEQ, // Not equal 13 | CC_CS, // Carry Set 14 | CC_CC, // Carry Clear 15 | CC_MI, // Minus (Negative) 16 | CC_PL, // Plus 17 | CC_VS, // Overflow 18 | CC_VC, // No Overflow 19 | CC_HI, // Unsigned higher 20 | CC_LS, // Unsigned lower or same 21 | CC_GE, // Signed greater than or equal 22 | CC_LT, // Signed less than 23 | CC_GT, // Signed greater than 24 | CC_LE, // Signed less than or equal 25 | CC_AL, // Always (unconditional) 14 26 | CC_HS = CC_CS, // Alias of CC_CS Unsigned higher or same 27 | CC_LO = CC_CC, // Alias of CC_CC Unsigned lower 28 | }; 29 | const u32 NO_COND = 0xE0000000; 30 | 31 | inline CCFlags InvertCond(CCFlags fl) { 32 | int x = (int)fl; 33 | x ^= 1; 34 | return (CCFlags)x; 35 | } -------------------------------------------------------------------------------- /Common/BitScan.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ppsspp_config.h" 4 | #include 5 | 6 | #if PPSSPP_PLATFORM(WINDOWS) 7 | #include "Common/CommonWindows.h" 8 | 9 | // Use this if you know the value is non-zero. 10 | inline uint32_t clz32_nonzero(uint32_t value) { 11 | DWORD index; 12 | BitScanReverse(&index, value); 13 | return 31 ^ (uint32_t)index; 14 | } 15 | 16 | inline uint32_t clz32(uint32_t value) { 17 | if (!value) 18 | return 32; 19 | DWORD index; 20 | BitScanReverse(&index, value); 21 | return 31 ^ (uint32_t)index; 22 | } 23 | 24 | #else 25 | 26 | // Use this if you know the value is non-zero. 27 | inline uint32_t clz32_nonzero(uint32_t value) { 28 | return __builtin_clz(value); 29 | } 30 | 31 | inline uint32_t clz32(uint32_t value) { 32 | if (!value) 33 | return 32; 34 | return __builtin_clz(value); 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Common/CommonWindows.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef _WIN32 4 | #pragma warning(disable:4091) 5 | 6 | #ifndef WIN32_LEAN_AND_MEAN 7 | #define WIN32_LEAN_AND_MEAN 8 | #endif 9 | #ifndef NOMINMAX 10 | #define NOMINMAX 11 | #endif 12 | 13 | #include 14 | 15 | #undef min 16 | #undef max 17 | #undef DrawText 18 | #endif 19 | -------------------------------------------------------------------------------- /Common/DbgNew.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Utility file for using the MS CRT's memory tracking. 4 | // crtdbg.h overloads malloc with malloc_dbg etc, but does not catch new. So here we go. 5 | 6 | #include 7 | 8 | #if defined(_DEBUG) 9 | #define USE_CRT_DBG 10 | #ifndef DBG_NEW 11 | #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ ) 12 | #define new DBG_NEW 13 | #endif 14 | 15 | #endif // _DEBUG 16 | -------------------------------------------------------------------------------- /Common/ExceptionHandlerSetup.h: -------------------------------------------------------------------------------- 1 | // Copyright 2008 Dolphin Emulator Project 2 | // Licensed under GPLv2+ 3 | // Refer to the license.txt file included. 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | // On Windows, context is a CONTEXT object. 10 | // On Apple, context is a x86_thread_state64_t. 11 | // On Unix/Linux, context is a mcontext_t. 12 | // On OpenBSD, context is a ucontext_t. 13 | // Ugh, might need to abstract this better. 14 | typedef bool (*BadAccessHandler)(uintptr_t address, void *context); 15 | 16 | void InstallExceptionHandler(BadAccessHandler accessHandler); 17 | void UninstallExceptionHandler(); 18 | -------------------------------------------------------------------------------- /Common/GL/GLInterface/EGLAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Dolphin Emulator Project 2 | // Licensed under GPLv2+ 3 | // Refer to the license.txt file included. 4 | 5 | #pragma once 6 | 7 | #include "Common/GL/GLInterface/EGL.h" 8 | 9 | class cInterfaceEGLAndroid : public cInterfaceEGL { 10 | public: 11 | cInterfaceEGLAndroid() : internalWidth_(0), internalHeight_(0) {} 12 | protected: 13 | EGLDisplay OpenDisplay() override; 14 | EGLNativeWindowType InitializePlatform(EGLNativeWindowType host_window, EGLConfig config) override; 15 | void ShutdownPlatform() override; 16 | void OverrideBackbufferDimensions(int internalWidth, int internalHeight) override { 17 | internalWidth_ = internalWidth; 18 | internalHeight_ = internalHeight; 19 | } 20 | 21 | private: 22 | int internalWidth_; 23 | int internalHeight_; 24 | }; 25 | -------------------------------------------------------------------------------- /Common/GL/GLInterface/EGLSwitch.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Dolphin Emulator Project 2 | // Licensed under GPLv2+ 3 | // Refer to the license.txt file included. 4 | 5 | #include "ppsspp_config.h" 6 | #if PPSSPP_PLATFORM(SWITCH) 7 | #include 8 | #include "Common/Log.h" 9 | #include "Common/GL/GLInterface/EGLSwitch.h" 10 | 11 | EGLDisplay cInterfaceEGLSwitch::OpenDisplay() { 12 | return eglGetDisplay(EGL_DEFAULT_DISPLAY); 13 | } 14 | 15 | EGLNativeWindowType cInterfaceEGLSwitch::InitializePlatform(EGLNativeWindowType host_window, EGLConfig config) { 16 | return nwindowGetDefault(); 17 | } 18 | 19 | void cInterfaceEGLSwitch::ShutdownPlatform() { 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /Common/GL/GLInterface/EGLSwitch.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Dolphin Emulator Project 2 | // Licensed under GPLv2+ 3 | // Refer to the license.txt file included. 4 | 5 | #pragma once 6 | 7 | #include "Common/GL/GLInterface/EGL.h" 8 | 9 | class cInterfaceEGLSwitch : public cInterfaceEGL { 10 | public: 11 | cInterfaceEGLSwitch() {} 12 | protected: 13 | EGLDisplay OpenDisplay() override; 14 | EGLNativeWindowType InitializePlatform(EGLNativeWindowType host_window, EGLConfig config) override; 15 | void ShutdownPlatform() override; 16 | void OverrideBackbufferDimensions(int internalWidth, int internalHeight) override { 17 | internalWidth_ = internalWidth; 18 | internalHeight_ = internalHeight; 19 | } 20 | 21 | private: 22 | int internalWidth_ = 0; 23 | int internalHeight_ = 0; 24 | }; 25 | -------------------------------------------------------------------------------- /Common/MathUtil.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 Dolphin Emulator Project 2 | // Licensed under GPLv2+ 3 | // Refer to the license.txt file included. 4 | 5 | #pragma once 6 | 7 | namespace MathUtil 8 | { 9 | 10 | #define ROUND_UP(x, a) (((x) + (a) - 1) & ~((a) - 1)) 11 | #define ROUND_DOWN(x, a) ((x) & ~((a) - 1)) 12 | 13 | template 14 | inline void Clamp(T* val, const T& min, const T& max) 15 | { 16 | if (*val < min) 17 | *val = min; 18 | else if (*val > max) 19 | *val = max; 20 | } 21 | 22 | template 23 | inline T Clamp(const T val, const T& min, const T& max) 24 | { 25 | T ret = val; 26 | Clamp(&ret, min, max); 27 | return ret; 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /Common/OSVersion.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef _WIN32 6 | 7 | bool IsVistaOrHigher(); 8 | bool IsWin7OrHigher(); 9 | bool DoesVersionMatchWindows(uint32_t major, uint32_t minor, uint32_t spMajor, uint32_t spMinor, bool acceptGreater); 10 | std::string GetWindowsVersion(); 11 | std::string GetWindowsSystemArchitecture(); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /Common/SysError.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | // Generic function to get last error message. 6 | // Call directly after the command or use the error num. 7 | // This function might change the error code. 8 | // Defined in Misc.cpp. 9 | std::string GetLastErrorMsg(); 10 | std::string GetStringErrorMsg(int errCode); 11 | -------------------------------------------------------------------------------- /Common/Thread/Executor.cpp: -------------------------------------------------------------------------------- 1 | #include "Common/Thread/Executor.h" 2 | 3 | #include 4 | #include 5 | 6 | namespace threading { 7 | 8 | void SameThreadExecutor::Run(std::function func) { 9 | func(); 10 | } 11 | 12 | void NewThreadExecutor::Run(std::function func) { 13 | threads_.push_back(std::thread(func)); 14 | } 15 | 16 | NewThreadExecutor::~NewThreadExecutor() { 17 | // If Run was ever called... 18 | for (auto &thread : threads_) 19 | thread.join(); 20 | threads_.clear(); 21 | } 22 | 23 | } // namespace threading 24 | -------------------------------------------------------------------------------- /Common/Thread/Executor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace threading { 8 | 9 | // Stuff that can execute other stuff, like threadpools, should inherit from this. 10 | class Executor { 11 | public: 12 | virtual void Run(std::function func) = 0; 13 | virtual ~Executor() {} 14 | }; 15 | 16 | class SameThreadExecutor : public Executor { 17 | public: 18 | void Run(std::function func) override; 19 | }; 20 | 21 | class NewThreadExecutor : public Executor { 22 | public: 23 | ~NewThreadExecutor() override; 24 | void Run(std::function func) override; 25 | 26 | private: 27 | std::vector threads_; 28 | }; 29 | 30 | } // namespace threading 31 | -------------------------------------------------------------------------------- /Common/Thread/ThreadUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Note that name must be a global string that lives until the end of the process, 4 | // for assertThreadName to work. 5 | void setCurrentThreadName(const char *threadName); 6 | void AssertCurrentThreadName(const char *threadName); -------------------------------------------------------------------------------- /Common/ThreadPools.cpp: -------------------------------------------------------------------------------- 1 | #include "ThreadPools.h" 2 | 3 | #include "../Core/Config.h" 4 | #include "Common/MakeUnique.h" 5 | 6 | std::unique_ptr GlobalThreadPool::pool; 7 | std::once_flag GlobalThreadPool::init_flag; 8 | 9 | void GlobalThreadPool::Loop(const std::function& loop, int lower, int upper) { 10 | std::call_once(init_flag, Inititialize); 11 | pool->ParallelLoop(loop, lower, upper); 12 | } 13 | 14 | void GlobalThreadPool::Inititialize() { 15 | pool = make_unique(g_Config.iNumWorkerThreads); 16 | } 17 | -------------------------------------------------------------------------------- /Common/ThreadPools.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/Thread/ThreadPool.h" 4 | 5 | class GlobalThreadPool { 6 | public: 7 | // will execute slices of "loop" from "lower" to "upper" 8 | // in parallel on the global thread pool 9 | static void Loop(const std::function& loop, int lower, int upper); 10 | 11 | private: 12 | static std::unique_ptr pool; 13 | static std::once_flag init_flag; 14 | static void Inititialize(); 15 | }; 16 | -------------------------------------------------------------------------------- /Common/TimeUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Seconds. 4 | double time_now_d(); 5 | 6 | // Sleep. Does not necessarily have millisecond granularity, especially on Windows. 7 | void sleep_ms(int ms); 8 | -------------------------------------------------------------------------------- /Core/AVIDump.h: -------------------------------------------------------------------------------- 1 | // Copyright 2008 Dolphin Emulator Project 2 | // Licensed under GPLv2+ 3 | // Refer to the license.txt file included. 4 | #ifndef MOBILE_DEVICE 5 | 6 | #pragma once 7 | 8 | #include "Common/CommonTypes.h" 9 | 10 | class AVIDump 11 | { 12 | private: 13 | static bool CreateAVI(); 14 | static void CloseFile(); 15 | static void CheckResolution(int width, int height); 16 | 17 | public: 18 | static bool Start(int w, int h); 19 | static void AddFrame(); 20 | static void Stop(); 21 | }; 22 | #endif 23 | -------------------------------------------------------------------------------- /Core/HLE/KUBridge.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_KUBridge(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceAdler.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceAdler(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceAudioRouting.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceAudioRouting(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceCcc.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | class PointerWrap; 21 | 22 | void Register_sceCcc(); 23 | void __CccInit(); 24 | void __CccDoState(PointerWrap &p); 25 | -------------------------------------------------------------------------------- /Core/HLE/sceDeflt.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceDeflt(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceDmac.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | class PointerWrap; 21 | 22 | void __DmacInit(); 23 | void __DmacDoState(PointerWrap &p); 24 | 25 | void Register_sceDmac(); 26 | -------------------------------------------------------------------------------- /Core/HLE/sceFont.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PointerWrap; 4 | 5 | void Register_sceFont(); 6 | void Register_sceLibFttt(); 7 | 8 | void __FontInit(); 9 | void __FontShutdown(); 10 | void __FontDoState(PointerWrap &p); -------------------------------------------------------------------------------- /Core/HLE/sceG729.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceG729(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceGameUpdate.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceGameUpdate(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceHeap.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceHeap(); 21 | void __HeapInit(); 22 | void __HeapDoState(PointerWrap &p); -------------------------------------------------------------------------------- /Core/HLE/sceHprm.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceHprm(); -------------------------------------------------------------------------------- /Core/HLE/sceHttp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | int sceHttpSetResolveRetry(int connectionID, int retryCount); 21 | 22 | void Register_sceHttp(); -------------------------------------------------------------------------------- /Core/HLE/sceJpeg.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | class PointerWrap; 21 | 22 | void Register_sceJpeg(); 23 | void __JpegInit(); 24 | void __JpegDoState(PointerWrap &p); 25 | -------------------------------------------------------------------------------- /Core/HLE/sceKernelHeap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void Register_SysMemForKernel(); 4 | -------------------------------------------------------------------------------- /Core/HLE/sceMp3.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | class PointerWrap; 21 | 22 | void Register_sceMp3(); 23 | 24 | void __Mp3Shutdown(); 25 | void __Mp3DoState(PointerWrap &p); -------------------------------------------------------------------------------- /Core/HLE/sceMt19937.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceMt19937(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceOpenPSID.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void __sceOpenPSIDInit(); 21 | 22 | void Register_sceOpenPSID(); 23 | void Register_sceOpenPSID_driver(); -------------------------------------------------------------------------------- /Core/HLE/sceP3da.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceP3da(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceParseHttp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceParseHttp(); -------------------------------------------------------------------------------- /Core/HLE/sceParseUri.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceParseUri(); -------------------------------------------------------------------------------- /Core/HLE/scePauth.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_scePauth(); -------------------------------------------------------------------------------- /Core/HLE/scePspNpDrm_user.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PointerWrap; 4 | 5 | void Register_sceNpDrm(); 6 | -------------------------------------------------------------------------------- /Core/HLE/sceSfmt19937.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceSfmt19937(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceSha256.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceSha256(); 21 | -------------------------------------------------------------------------------- /Core/HLE/sceSsl.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | class PointerWrap; 21 | 22 | void Register_sceSsl(); 23 | 24 | void __SslInit(); 25 | void __SslDoState(PointerWrap &p); 26 | -------------------------------------------------------------------------------- /Core/HLE/sceUsb.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceUsb(); 21 | 22 | void __UsbInit(); 23 | void __UsbDoState(PointerWrap &p); 24 | 25 | -------------------------------------------------------------------------------- /Core/HLE/sceUsbAcc.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void Register_sceUsbAcc(); 21 | 22 | -------------------------------------------------------------------------------- /Core/MIPS/ARM/ArmCompVFPUNEONUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Core/MIPS/ARM/ArmJit.h" 4 | #include "Core/MIPS/ARM/ArmRegCache.h" 5 | 6 | namespace MIPSComp { 7 | 8 | using namespace ArmGen; 9 | 10 | inline ARMReg MatchSize(ARMReg x, ARMReg target) { 11 | if (IsQ(target) && IsQ(x)) 12 | return x; 13 | if (IsD(target) && IsD(x)) 14 | return x; 15 | if (IsD(target) && IsQ(x)) 16 | return D_0(x); 17 | // if (IsQ(target) && IsD(x)) 18 | return (ARMReg)(D0 + (x - Q0) * 2); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /Core/MIPS/IR/IRInterpreter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonTypes.h" 4 | 5 | class MIPSState; 6 | struct IRInst; 7 | 8 | inline static u32 ReverseBits32(u32 v) { 9 | // http://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel 10 | // swap odd and even bits 11 | v = ((v >> 1) & 0x55555555) | ((v & 0x55555555) << 1); 12 | // swap consecutive pairs 13 | v = ((v >> 2) & 0x33333333) | ((v & 0x33333333) << 2); 14 | // swap nibbles ... 15 | v = ((v >> 4) & 0x0F0F0F0F) | ((v & 0x0F0F0F0F) << 4); 16 | // swap bytes 17 | v = ((v >> 8) & 0x00FF00FF) | ((v & 0x00FF00FF) << 8); 18 | // swap 2-byte long pairs 19 | v = ( v >> 16 ) | ( v << 16); 20 | return v; 21 | } 22 | 23 | u32 IRInterpret(MIPSState *mips, const IRInst *inst, int count); 24 | -------------------------------------------------------------------------------- /Core/MIPS/MIPSAsm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Core/Debugger/DebugInterface.h" 4 | 5 | namespace MIPSAsm { 6 | bool MipsAssembleOpcode(const char* line, DebugInterface* cpu, u32 address); 7 | std::wstring GetAssembleError(); 8 | } 9 | -------------------------------------------------------------------------------- /Core/MIPS/x86/IRToX86.h: -------------------------------------------------------------------------------- 1 | #include "Core/MIPS/IR/IRInst.h" 2 | #include "Common/x64Emitter.h" 3 | 4 | namespace MIPSComp { 5 | 6 | class IRToNativeInterface { 7 | public: 8 | virtual ~IRToNativeInterface() {} 9 | 10 | virtual void ConvertIRToNative(const IRInst *instructions, int count, const u32 *constants) = 0; 11 | }; 12 | 13 | 14 | class IRToX86 : public IRToNativeInterface { 15 | public: 16 | void SetCodeBlock(Gen::XCodeBlock *code) { code_ = code; } 17 | virtual void ConvertIRToNative(const IRInst *instructions, int count, const u32 *constants) override; 18 | 19 | private: 20 | Gen::XCodeBlock *code_; 21 | }; 22 | 23 | } // namespace 24 | -------------------------------------------------------------------------------- /Core/MemFault.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Memory { 6 | 7 | void MemFault_Init(); 8 | 9 | // Called by exception handlers. We simply filter out accesses to PSP RAM and otherwise 10 | // just leave it as-is. 11 | bool HandleFault(uintptr_t hostAddress, void *context); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Core/x360_compat.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #undef min 4 | #undef max 5 | 6 | extern "C" void _ReadWriteBarrier(); 7 | #pragma intrinsic(_ReadWriteBarrier) 8 | 9 | 10 | extern "C" void _WriteBarrier(); 11 | #pragma intrinsic(_WriteBarrier) -------------------------------------------------------------------------------- /GPU/Common/SoftwareLighting.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/GPU/Common/SoftwareLighting.h -------------------------------------------------------------------------------- /GPU/Common/StencilCommon.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonTypes.h" 4 | 5 | u8 StencilBits8888(const u8 *ptr8, u32 numPixels); 6 | u8 StencilBits4444(const u8 *ptr8, u32 numPixels); 7 | u8 StencilBits5551(const u8 *ptr8, u32 numPixels); 8 | -------------------------------------------------------------------------------- /GPU/Directx9/StateMappingDX9.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "helper/global.h" 4 | #include "ext/native/gfx/dx_state.h" 5 | -------------------------------------------------------------------------------- /GPU/GLES/StateMappingGLES.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | #include "gfx/gl_common.h" 21 | -------------------------------------------------------------------------------- /GPU/GeConstants.cpp: -------------------------------------------------------------------------------- 1 | #include "GPU/ge_constants.h" 2 | 3 | const char *GeBufferFormatToString(GEBufferFormat fmt) { 4 | switch (fmt) { 5 | case GE_FORMAT_4444: return "4444"; 6 | case GE_FORMAT_5551: return "5551"; 7 | case GE_FORMAT_565: return "565"; 8 | case GE_FORMAT_8888: return "8888"; 9 | default: return "N/A"; 10 | } 11 | } 12 | 13 | const char *GeTextureFormatToString(GETextureFormat fmt) { 14 | switch (fmt) { 15 | case GE_TFMT_5650: return "565"; 16 | case GE_TFMT_5551: return "5551"; 17 | case GE_TFMT_4444: return "4444"; 18 | case GE_TFMT_8888: return "8888"; 19 | case GE_TFMT_CLUT4: return "CLUT4"; 20 | case GE_TFMT_CLUT8: return "CLUT8"; 21 | case GE_TFMT_CLUT16: return "CLUT16"; 22 | case GE_TFMT_CLUT32: return "CLUT32"; 23 | case GE_TFMT_DXT1: return "DXT1"; 24 | case GE_TFMT_DXT3: return "DXT3"; 25 | case GE_TFMT_DXT5: return "DXT5"; 26 | default: return "N/A"; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /GPU/Software/README.txt: -------------------------------------------------------------------------------- 1 | To get to 100% compatibility, we will need a software renderer as there are games out there that do tricks 2 | that can't really be faked in a sensible way. Useful for homebrew too that mix sw and accel rendering. -------------------------------------------------------------------------------- /GPU/Vulkan/VertexShaderGeneratorVulkan.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "GPU/Common/ShaderId.h" 4 | 5 | bool GenerateVulkanGLSLVertexShader(const VShaderID &id, char *buffer); 6 | -------------------------------------------------------------------------------- /Qt/PPSSPP.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Version=1.0 # The version of the desktop entry specification to which this file complies 4 | Type=Application 5 | Terminal=false 6 | Name=PPSSPP 7 | Exec=/usr/bin/invoker --type=d -s /opt/PPSSPP/bin/PPSSPPQt 8 | Icon=/usr/share/icons/hicolor/114x114/apps/icon-114.png 9 | X-Window-Icon= 10 | X-HildonDesk-ShowInToolbar=true 11 | X-Osso-Type=application/x-executable 12 | -------------------------------------------------------------------------------- /Qt/resources/breakpoint.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Qt/resources/breakpoint.ico -------------------------------------------------------------------------------- /Qt/resources/breakpointDisable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Qt/resources/breakpointDisable.ico -------------------------------------------------------------------------------- /SDL/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | assets 3 | -------------------------------------------------------------------------------- /SDL/SDLCocoaMetalLayer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | extern "C" { 4 | void *makeWindowMetalCompatible(void *window); 5 | } 6 | -------------------------------------------------------------------------------- /SDL/SDLJoystick.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifdef _MSC_VER 3 | #include "SDL/SDL.h" 4 | #include "SDL/SDL_thread.h" 5 | #else 6 | #include "SDL.h" 7 | #include "SDL_thread.h" 8 | #endif 9 | 10 | #include "Common/Input/InputState.h" 11 | #include "Common/Input/KeyCodes.h" 12 | #include "net/resolve.h" 13 | #include "base/NativeApp.h" 14 | 15 | class SDLJoystick{ 16 | public: 17 | SDLJoystick(bool init_SDL = false); 18 | ~SDLJoystick(); 19 | 20 | void registerEventHandler(); 21 | void ProcessInput(SDL_Event &event); 22 | 23 | private: 24 | void setUpController(int deviceIndex); 25 | void setUpControllers(); 26 | keycode_t getKeycodeForButton(SDL_GameControllerButton button); 27 | int getDeviceIndex(int instanceId); 28 | bool registeredAsEventHandler; 29 | std::vector controllers; 30 | std::map controllerDeviceMap; 31 | }; 32 | -------------------------------------------------------------------------------- /SDL/SDLMain.h: -------------------------------------------------------------------------------- 1 | /* SDLMain.m - main entry point for our Cocoa-ized SDL app 2 | Initial Version: Darrell Walisser 3 | Non-NIB-Code & other changes: Max Horn 4 | 5 | Feel free to customize this file to suit your needs 6 | */ 7 | 8 | #ifndef _SDLMain_h_ 9 | #define _SDLMain_h_ 10 | 11 | #import 12 | 13 | @interface SDLMain : NSObject 14 | @end 15 | 16 | #endif /* _SDLMain_h_ */ 17 | -------------------------------------------------------------------------------- /SDL/buildassets.sh: -------------------------------------------------------------------------------- 1 | cp -r ../android/assets . 2 | cp ../assets/ppge_atlas.zim assets 3 | -------------------------------------------------------------------------------- /Tools/SaveTool/kernelcall.prx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Tools/SaveTool/kernelcall.prx -------------------------------------------------------------------------------- /Tools/SaveTool/kernelcall/Makefile: -------------------------------------------------------------------------------- 1 | release: all 2 | psp-build-exports -k exports.exp 3 | psp-build-exports -s -k -v exports.exp 4 | 5 | TARGET = kernelcall 6 | OBJS = kernelcall.o 7 | 8 | BUILD_PRX=1 9 | PRX_EXPORTS=exports.exp 10 | USE_KERNEL_LIBS = 1 11 | USE_KERNEL_LIBC = 1 12 | 13 | INCDIR = 14 | CFLAGS = -O0 -G0 -Wall -g 15 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 16 | ASFLAGS = $(CFLAGS) 17 | 18 | LIBDIR = 19 | LDFLAGS = -mno-crt0 -nostartfiles 20 | 21 | LIBS = -lpspchnnlsv 22 | 23 | PSPSDK=$(shell psp-config --pspsdk-path) 24 | include $(PSPSDK)/lib/build.mak 25 | -------------------------------------------------------------------------------- /Tools/SaveTool/kernelcall/kernelcall.h: -------------------------------------------------------------------------------- 1 | u64 GetFuseId(); 2 | int sceChnnlsv_E7833020_(pspChnnlsvContext1 *ctx, int mode); 3 | int sceChnnlsv_F21A1FCA_(pspChnnlsvContext1 *ctx, unsigned char *data, int len); 4 | int sceChnnlsv_C4C494F8_(pspChnnlsvContext1 *ctx, 5 | unsigned char *hash, unsigned char *cryptkey); 6 | int sceChnnlsv_ABFDFC8B_(pspChnnlsvContext2 *ctx, int mode1, int mode2, 7 | unsigned char *hashkey, unsigned char *cipherkey); 8 | int sceChnnlsv_850A7FA1_(pspChnnlsvContext2 *ctx, unsigned char *data, int len); 9 | int sceChnnlsv_21BE78B4_(pspChnnlsvContext2 *ctx); 10 | -------------------------------------------------------------------------------- /Tools/pauth_tool/Makefile: -------------------------------------------------------------------------------- 1 | 2 | TARGET = pauth 3 | OBJS = main.o pauth.o 4 | 5 | CFLAGS = -O2 -G0 -Wall -I. 6 | LDFLAGS = -mno-crt0 -nostartfiles -L. 7 | LIBS += 8 | 9 | BUILD_PRX = 1 10 | 11 | EXTRA_TARGETS = EBOOT.PBP 12 | PSP_EBOOT_TITLE = pauth file decrypter 13 | 14 | PSPSDK = $(shell psp-config --pspsdk-path) 15 | include $(PSPSDK)/lib/build.mak 16 | 17 | -------------------------------------------------------------------------------- /Tools/pauth_tool/PSP/GAME/pauth_tool/EBOOT.PBP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Tools/pauth_tool/PSP/GAME/pauth_tool/EBOOT.PBP -------------------------------------------------------------------------------- /Tools/pauth_tool/pauth.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspimport.s" 4 | 5 | IMPORT_START "scePauth", 0x40010011 6 | IMPORT_FUNC "scePauth", 0x98B83B5D, scePauth_98B83B5D 7 | 8 | -------------------------------------------------------------------------------- /Tools/pauth_tool/readme.txt: -------------------------------------------------------------------------------- 1 | Made by tpunix 2 | Only decrypt MH3P 3 | Don't work with scePauth_F7AA47F6 -------------------------------------------------------------------------------- /UI/DiscordIntegration.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | // Simple wrapper around the Discord api. 6 | 7 | // All platforms should call it, but we only actually take action on 8 | // platforms where we want it enabled (only PC initially). 9 | 10 | // All you need to call is FrameCallback, Shutdown, and UpdatePresence. 11 | 12 | class Discord { 13 | public: 14 | ~Discord(); 15 | void Update(); // Call every frame or at least regularly. Will initialize if necessary. 16 | void Shutdown(); 17 | 18 | void SetPresenceGame(const char *gameTitle); 19 | void SetPresenceMenu(); 20 | void ClearPresence(); 21 | 22 | private: 23 | void Init(); 24 | bool IsEnabled() const; 25 | 26 | bool initialized_ = false; 27 | }; 28 | 29 | extern Discord g_Discord; 30 | -------------------------------------------------------------------------------- /UI/ProfilerDraw.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class UIContext; 4 | 5 | #ifdef USE_PROFILER 6 | 7 | void DrawProfile(UIContext &ui); 8 | 9 | #endif -------------------------------------------------------------------------------- /UWP/.gitignore: -------------------------------------------------------------------------------- 1 | # We copy other files on top of these at build time, depending on configuration (Normal/Gold) 2 | 3 | Package.appxmanifest 4 | Assets 5 | AppPackages 6 | x64 7 | ARM 8 | ARM64 9 | *.VC.db 10 | *.VC.VC.opendb 11 | ipch 12 | -------------------------------------------------------------------------------- /UWP/Armips_UWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/Armips_UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/Armips_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/AssetsGold/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /UWP/AssetsGold/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/StoreLogo.png -------------------------------------------------------------------------------- /UWP/AssetsGold/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsGold/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsNormal/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsNormal/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsNormal/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsNormal/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsNormal/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsNormal/StoreLogo.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/AssetsNormal/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/CommonUWP/CommonUWP.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "CommonUWP.h" 3 | -------------------------------------------------------------------------------- /UWP/CommonUWP/CommonUWP.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | -------------------------------------------------------------------------------- /UWP/CommonUWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/CommonUWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/CommonUWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/Content/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/Content/.empty -------------------------------------------------------------------------------- /UWP/CoreUWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/CoreUWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/CoreUWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/GPU_UWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/GPU_UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/GPU_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/NKCodeFromWindowsSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "Common/Input/KeyCodes.h" 6 | 7 | extern std::map virtualKeyCodeToNKCode; -------------------------------------------------------------------------------- /UWP/NativeUWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/NativeUWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/NativeUWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/PPSSPP_UWP_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/PPSSPP_UWP_TemporaryKey.pfx -------------------------------------------------------------------------------- /UWP/SPIRVCross_UWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/SPIRVCross_UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/SPIRVCross_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/UI_UWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/UI_UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/UI_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/UWPUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "util/text/utf8.h" 4 | 5 | inline Platform::String ^ToPlatformString(std::string str) { 6 | return ref new Platform::String(ConvertUTF8ToWString(str).c_str()); 7 | } 8 | 9 | inline std::string FromPlatformString(Platform::String ^str) { 10 | std::wstring wstr(str->Data()); 11 | return ConvertWStringToUTF8(wstr); 12 | } -------------------------------------------------------------------------------- /UWP/UWP_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/UWP/UWP_TemporaryKey.pfx -------------------------------------------------------------------------------- /UWP/XAudioSoundStream.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonWindows.h" 4 | #include "Core/Config.h" 5 | 6 | #include "Windows/WindowsAudio.h" 7 | 8 | // Factory 9 | WindowsAudioBackend *CreateAudioBackend(AudioBackendType type); 10 | -------------------------------------------------------------------------------- /UWP/build_uwp.proj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /UWP/glslang_UWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/glslang_UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | -------------------------------------------------------------------------------- /UWP/glslang_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/libkirk_UWP/libkirk_UWP.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /UWP/libkirk_UWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/libkirk_UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | #ifndef WIN32_LEAN_AND_MEAN 6 | #define WIN32_LEAN_AND_MEAN 7 | #endif 8 | 9 | #include 10 | -------------------------------------------------------------------------------- /UWP/libkirk_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/miniupnpc_UWP/pch.c: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/miniupnpc_UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "targetver.h" 4 | 5 | -------------------------------------------------------------------------------- /UWP/miniupnpc_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UWP/pch.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | -------------------------------------------------------------------------------- /UWP/pch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define NOMINMAX 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include -------------------------------------------------------------------------------- /UWP/zlib_UWP/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /Windows/.gitignore: -------------------------------------------------------------------------------- 1 | *.VC.VC.opendb 2 | *.VC.db 3 | -------------------------------------------------------------------------------- /Windows/DebugLog.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set LOGFILE=ppsspplog.txt 3 | 4 | del "%LOGFILE%" 2> NUL 5 | if exist PPSSPPWindows64.exe ( 6 | start PPSSPPWindows64.exe --log="%LOGFILE%" -d 7 | goto exit 8 | ) 9 | if exist PPSSPPWindows.exe ( 10 | start PPSSPPWindows.exe --log="%LOGFILE%" -d 11 | goto exit 12 | ) 13 | 14 | echo Unable to find PPSSPPWindows.exe. 15 | pause 16 | 17 | :exit 18 | -------------------------------------------------------------------------------- /Windows/Debugger/CPURegsInterface.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | #include "Core/Core.h" 5 | -------------------------------------------------------------------------------- /Windows/Debugger/Debugger.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // M O D U L E B E G I N /////////////////////////////////////////////////////////////////////////// 3 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 4 | 5 | #ifndef DEBUGGER_H 6 | #define DEBUGGER_H 7 | 8 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 9 | // I N C L U D E S ////////////////////////////////////////////////////////////////////////////////// 10 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 11 | 12 | #include "Debugger_Disam.h" 13 | #include "Debugger_BreakPoints.h" 14 | #include "Debugger_LogManager.h" 15 | 16 | #endif -------------------------------------------------------------------------------- /Windows/Debugger/DebuggerShared.cpp: -------------------------------------------------------------------------------- 1 | #include "util/text/utf8.h" 2 | 3 | #include "DebuggerShared.h" 4 | #include "../InputBox.h" 5 | 6 | bool parseExpression(const char* exp, DebugInterface* cpu, u32& dest) 7 | { 8 | PostfixExpression postfix; 9 | if (cpu->initExpression(exp,postfix) == false) return false; 10 | return cpu->parseExpression(postfix,dest); 11 | } 12 | 13 | void displayExpressionError(HWND hwnd) 14 | { 15 | MessageBox(hwnd,ConvertUTF8ToWString(getExpressionError()).c_str(),L"Invalid expression",MB_OK); 16 | } 17 | 18 | bool executeExpressionWindow(HWND hwnd, DebugInterface* cpu, u32& dest) 19 | { 20 | std::string expression; 21 | if (InputBox_GetString(GetModuleHandle(NULL), hwnd, L"Expression", "",expression) == false) 22 | { 23 | return false; 24 | } 25 | 26 | if (parseExpression(expression.c_str(), cpu, dest) == false) 27 | { 28 | displayExpressionError(hwnd); 29 | return false; 30 | } 31 | 32 | return true; 33 | } -------------------------------------------------------------------------------- /Windows/Debugger/DebuggerShared.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Common/CommonWindows.h" 3 | #include "Core/Debugger/DebugInterface.h" 4 | 5 | extern HMENU g_hPopupMenus; 6 | 7 | enum { WM_DEB_GOTOWPARAM = WM_USER+2, 8 | WM_DEB_GOTOADDRESSEDIT, 9 | WM_DEB_MAPLOADED, 10 | WM_DEB_TABPRESSED, 11 | WM_DEB_SETDEBUGLPARAM, 12 | WM_DEB_UPDATE, 13 | WM_DEB_SETSTATUSBARTEXT, 14 | WM_DEB_GOTOHEXEDIT 15 | }; 16 | 17 | bool executeExpressionWindow(HWND hwnd, DebugInterface* cpu, u32& dest); 18 | void displayExpressionError(HWND hwnd); 19 | bool parseExpression(const char* exp, DebugInterface* cpu, u32& dest); -------------------------------------------------------------------------------- /Windows/Debugger/Debugger_Misc.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // M O D U L E B E G I N /////////////////////////////////////////////////////////////////////////// 3 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 4 | 5 | #include "stdafx.h" 6 | 7 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 8 | // I M P L E M E N T A T I O N ////////////////////////////////////////////////////////////////////// 9 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 10 | 11 | -------------------------------------------------------------------------------- /Windows/Debugger/Debugger_Misc.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // M O D U L E B E G I N /////////////////////////////////////////////////////////////////////////// 3 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 4 | 5 | #ifndef _DEBUGMISC_H 6 | #define _DEBUGMISC_H 7 | 8 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 9 | // E X T E R N A L ////////////////////////////////////////////////////////////////////////////////// 10 | ///////////////////////////////////////////////////////////////////////////////////////////////////// 11 | 12 | #endif -------------------------------------------------------------------------------- /Windows/Debugger/Debugger_VFPUDlg.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Windows/W32Util/DialogManager.h" 4 | #include "Core/MemMap.h" 5 | #include "Core/Debugger/DebugInterface.h" 6 | 7 | class CVFPUDlg : public Dialog { 8 | public: 9 | CVFPUDlg(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu_); 10 | ~CVFPUDlg(); 11 | 12 | void Goto(u32 addr); 13 | void Update(); 14 | void Size(); 15 | 16 | private: 17 | int index; 18 | DebugInterface *cpu; 19 | HFONT font; 20 | int mode; 21 | BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam); 22 | }; 23 | 24 | 25 | extern CVFPUDlg *vfpudlg; 26 | -------------------------------------------------------------------------------- /Windows/Debugger/DumpMemoryWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Common/CommonWindows.h" 3 | #include "Common/CommonTypes.h" 4 | #include "Core/Debugger/DebugInterface.h" 5 | 6 | class DumpMemoryWindow 7 | { 8 | enum Mode { MODE_RAM, MODE_VRAM, MODE_SCRATCHPAD, MODE_CUSTOM }; 9 | 10 | HWND parentHwnd; 11 | DebugInterface* cpu; 12 | bool filenameChosen_; 13 | Mode selectedMode; 14 | 15 | u32 start; 16 | u32 size; 17 | std::wstring fileName_; 18 | 19 | static DumpMemoryWindow* bp; 20 | void changeMode(HWND hwnd, Mode newMode); 21 | bool fetchDialogData(HWND hwnd); 22 | void HandleBrowseClick(HWND hwnd); 23 | 24 | public: 25 | DumpMemoryWindow(HWND parent, DebugInterface* cpu): cpu(cpu) 26 | { 27 | parentHwnd = parent; 28 | filenameChosen_ = false; 29 | selectedMode = MODE_RAM; 30 | }; 31 | 32 | static INT_PTR CALLBACK dlgFunc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam); 33 | bool exec(); 34 | }; 35 | -------------------------------------------------------------------------------- /Windows/DlgDynaView.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | class CDynaViewDlg 5 | { 6 | private: 7 | static HINSTANCE m_hInstance; 8 | static HWND m_hParent; 9 | static int m_iBlock; 10 | static HWND m_hDlg; 11 | 12 | static BOOL CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); 13 | 14 | public: 15 | // constructor 16 | static void Init(HINSTANCE _hInstance, HWND _hParent); 17 | 18 | // destructor 19 | static void DeInit(void); 20 | // 21 | // --- tools --- 22 | // 23 | static HWND GetDlgHandle() 24 | { 25 | return m_hDlg; 26 | } 27 | 28 | // show 29 | static void Show(bool _bShow); 30 | static void Size(); 31 | 32 | static void View(int num); 33 | static void ViewAddr(u32 addr); 34 | }; 35 | -------------------------------------------------------------------------------- /Windows/EmuThread.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | void MainThread_Start(bool separateRenderThread); 21 | void MainThread_Stop(); 22 | bool MainThread_Ready(); 23 | -------------------------------------------------------------------------------- /Windows/GPU/WindowsGraphicsContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/GraphicsContext.h" 4 | #include "Common/CommonWindows.h" 5 | 6 | class WindowsGraphicsContext : public GraphicsContext { 7 | public: 8 | virtual bool Init(HINSTANCE hInst, HWND window, std::string *error_message) = 0; 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /Windows/InfoLog.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set LOGFILE=ppsspplog.txt 3 | 4 | del "%LOGFILE%" 2> NUL 5 | if exist PPSSPPWindows64.exe ( 6 | PPSSPPWindows64.exe --log="%LOGFILE%" 7 | goto exit 8 | ) 9 | if exist PPSSPPWindows.exe ( 10 | PPSSPPWindows.exe --log="%LOGFILE%" 11 | goto exit 12 | ) 13 | 14 | echo Unable to find PPSSPPWindows.exe. 15 | pause 16 | 17 | :exit -------------------------------------------------------------------------------- /Windows/InputBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "Common/CommonWindows.h" 5 | 6 | 7 | // All I/O is in UTF-8 8 | bool InputBox_GetString(HINSTANCE hInst, HWND hParent, const wchar_t *title, const std::string &defaultvalue, std::string &outvalue, bool selected); 9 | bool InputBox_GetString(HINSTANCE hInst, HWND hParent, const wchar_t *title, const std::string &defaultvalue, std::string &outvalue); 10 | bool InputBox_GetWString(HINSTANCE hInst, HWND hParent, const wchar_t *title, const std::wstring &defaultvalue, std::wstring &outvalue); 11 | bool InputBox_GetHex(HINSTANCE hInst, HWND hParent, const wchar_t *title, u32 defaultvalue, u32 &outvalue); 12 | -------------------------------------------------------------------------------- /Windows/MainThread.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | -------------------------------------------------------------------------------- /Windows/MainWindowMenu.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonWindows.h" 4 | #include "Common/KeyMap.h" 5 | #include 6 | 7 | namespace MainWindow { 8 | void MainWindowMenu_Process(HWND hWnd, WPARAM wParam); 9 | void TranslateMenus(HWND hWnd, HMENU menu); 10 | void BrowseAndBoot(std::string defaultPath, bool browseDirectory = false); 11 | void BrowseAndBootDone(); 12 | void BrowseBackground(); 13 | void BrowseBackgroundDone(); 14 | void setTexScalingMultiplier(int level); 15 | void SetIngameMenuItemStates(HMENU menu, const GlobalUIState state); 16 | } 17 | -------------------------------------------------------------------------------- /Windows/README.TXT: -------------------------------------------------------------------------------- 1 | Just open the MSVC project file and build. 2 | -------------------------------------------------------------------------------- /Windows/WASAPIStream.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "WindowsAudio.h" 5 | 6 | // This should only be included from WindowsAudio.cpp and WASAPIStream.cpp. 7 | 8 | class WASAPIAudioBackend : public WindowsAudioBackend { 9 | public: 10 | WASAPIAudioBackend(); 11 | ~WASAPIAudioBackend() override; 12 | 13 | bool Init(HWND window, StreamCallback callback, int sampleRate) override; // If fails, can safely delete the object 14 | void Update() override {} 15 | int GetSampleRate() override { return sampleRate_; } 16 | 17 | private: 18 | int RunThread(); 19 | static unsigned int WINAPI soundThread(void *param); 20 | 21 | HANDLE hThread_ = nullptr; 22 | StreamCallback callback_ = nullptr; 23 | int sampleRate_ = 0; 24 | std::atomic threadData_; 25 | }; 26 | -------------------------------------------------------------------------------- /Windows/WindowsAudio.cpp: -------------------------------------------------------------------------------- 1 | #include "Common/OSVersion.h" 2 | #include "WindowsAudio.h" 3 | #include "DSoundStream.h" 4 | #include "WASAPIStream.h" 5 | 6 | WindowsAudioBackend *CreateAudioBackend(AudioBackendType type) { 7 | if (IsVistaOrHigher()) { 8 | switch (type) { 9 | case AUDIO_BACKEND_WASAPI: 10 | case AUDIO_BACKEND_AUTO: 11 | return new WASAPIAudioBackend(); 12 | case AUDIO_BACKEND_DSOUND: 13 | default: 14 | return new DSoundAudioBackend(); 15 | } 16 | } else { 17 | return new DSoundAudioBackend(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Windows/WindowsAudio.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonWindows.h" 4 | #include "Core/Config.h" 5 | #include "Core/ConfigValues.h" 6 | 7 | typedef int(*StreamCallback)(short *buffer, int numSamples, int bits, int rate, int channels); 8 | 9 | // Note that the backend may override the passed in sample rate. The actual sample rate 10 | // should be returned by GetSampleRate though. 11 | class WindowsAudioBackend { 12 | public: 13 | WindowsAudioBackend() {} 14 | virtual ~WindowsAudioBackend() {} 15 | virtual bool Init(HWND window, StreamCallback _callback, int sampleRate) = 0; 16 | virtual void Update() {} // Doesn't have to do anything 17 | virtual int GetSampleRate() = 0; 18 | }; 19 | 20 | // Factory 21 | WindowsAudioBackend *CreateAudioBackend(AudioBackendType type); 22 | -------------------------------------------------------------------------------- /Windows/XinputDevice.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "InputDevice.h" 4 | #include "Xinput.h" 5 | #include "Core/HLE/sceCtrl.h" 6 | 7 | class XinputDevice final : public InputDevice { 8 | public: 9 | XinputDevice(); 10 | ~XinputDevice(); 11 | virtual int UpdateState() override; 12 | 13 | private: 14 | void UpdatePad(int pad, const XINPUT_STATE &state, XINPUT_VIBRATION &vibration); 15 | void ApplyButtons(int pad, const XINPUT_STATE &state); 16 | void ApplyVibration(int pad, XINPUT_VIBRATION &vibration); 17 | int check_delay[4]{}; 18 | XINPUT_STATE prevState[4]{}; 19 | XINPUT_VIBRATION prevVibration[4]{}; 20 | int prevVibrationTime = 0; 21 | u32 prevButtons[4]{}; 22 | }; 23 | -------------------------------------------------------------------------------- /Windows/bitmap1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Windows/bitmap1.bmp -------------------------------------------------------------------------------- /Windows/build_windows.proj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Windows/fix_2017.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0')) 6 | $(LatestTargetPlatformVersion) 7 | $(WindowsTargetPlatformVersion) 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Windows/icon1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Windows/icon1.ico -------------------------------------------------------------------------------- /Windows/ppsspp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Windows/ppsspp.ico -------------------------------------------------------------------------------- /Windows/ppsspp_gold.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Windows/ppsspp_gold.ico -------------------------------------------------------------------------------- /Windows/pspmode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Windows/pspmode.png -------------------------------------------------------------------------------- /Windows/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" -------------------------------------------------------------------------------- /Windows/stop1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/Windows/stop1.ico -------------------------------------------------------------------------------- /Windows/zipup.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | if "%1"=="" GOTO BADINPUT 4 | 5 | 6 | REM Make sure to call this with a .zip file extension for the first parameter. 7 | REM If zip.exe is not installed, get it from info-zip.org. 8 | 9 | set name=%1 10 | 11 | echo Deleting old file %name% 12 | del %name% 13 | 14 | echo Adding files to %name% 15 | REM Not distributing the 10 version because it's not compatible with older Windows. 16 | copy dx9sdk\8.1\Redist\D3D\x64\d3dcompiler_47.dll . 17 | copy dx9sdk\8.1\Redist\D3D\x86\d3dcompiler_47.dll .\d3dcompiler_47.x86.dll 18 | @echo on 19 | zip --recurse-paths %name% assets PPSSPPWindows.exe PPSSPPWindows64.exe d3dcompiler_47.dll d3dcompiler_47.x86.dll README.md 20 | @echo off 21 | del d3dcompiler_47.dll d3dcompiler_v47.x86.dll 22 | 23 | echo Done: %name% 24 | goto DONE 25 | 26 | :BADINPUT 27 | echo Usage: Windows\zipup.cmd myfile.zip 28 | 29 | :DONE 30 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | gen 3 | libs 4 | obj 5 | build*/ 6 | gen 7 | obj 8 | .externalNativeBuild 9 | android.iml 10 | -------------------------------------------------------------------------------- /android/README.TXT: -------------------------------------------------------------------------------- 1 | First, build the C++ static library: 2 | > cd android 3 | > ./ab.sh 4 | 5 | Start Eclipse, import the android directory as an existing project 6 | You need to also load the "native" project into your eclipse workspace 7 | Build and run. 8 | 9 | If you modify the C++ code, you need to rebuild the static library, of 10 | course. To get Eclipse to understand that you have in fact changed something 11 | if you haven't also changed any Java code, just add a space character to 12 | PPSSPPActivity.java, or right click the project and choose Refresh, and then 13 | relaunch the app on the device. 14 | 15 | A real Android device is strongly recommended for testing. Don't trust 16 | the emulator. 17 | -------------------------------------------------------------------------------- /android/ab-ant.sh: -------------------------------------------------------------------------------- 1 | ant debug 2 | adb install -r bin/PPSSPP-debug.apk 3 | adb shell am start -n org.ppsspp.ppsspp/org.ppsspp.ppsspp.PpssppActivity -------------------------------------------------------------------------------- /android/ab.cmd: -------------------------------------------------------------------------------- 1 | xcopy ..\assets\flash0 assets\flash0\ /s /y 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /android/d.txt: -------------------------------------------------------------------------------- 1 | d 2 | -------------------------------------------------------------------------------- /android/dbg.sh: -------------------------------------------------------------------------------- 1 | export NDK=/c/AndroidNDK 2 | $NDK/ndk-gdb --nowait 3 | -------------------------------------------------------------------------------- /android/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/debug.keystore -------------------------------------------------------------------------------- /android/gold/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/gold/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/gold/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/gold/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/gold/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-xhdpi/tv_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/gold/res/drawable-xhdpi/tv_banner.png -------------------------------------------------------------------------------- /android/gold/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/gold/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/gold/res/drawable/ic_banner.png -------------------------------------------------------------------------------- /android/gold/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | PPSSPP Gold 4 | 5 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | -------------------------------------------------------------------------------- /android/jni/AndroidAudio.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | typedef int (*AndroidAudioCallback)(short *buffer, int num_samples); 6 | 7 | class AudioContext { 8 | public: 9 | AudioContext(AndroidAudioCallback cb, int _FramesPerBuffer, int _SampleRate); 10 | virtual bool Init() { return false; } 11 | virtual ~AudioContext() {} 12 | 13 | protected: 14 | AndroidAudioCallback audioCallback; 15 | 16 | int framesPerBuffer; 17 | int sampleRate; 18 | }; 19 | 20 | struct AndroidAudioState; 21 | 22 | // It's okay for optimalFramesPerBuffer and optimalSampleRate to be 0. Defaults will be used. 23 | AndroidAudioState *AndroidAudio_Init(AndroidAudioCallback cb, int optimalFramesPerBuffer, int optimalSampleRate); 24 | bool AndroidAudio_Pause(AndroidAudioState *state); 25 | bool AndroidAudio_Resume(AndroidAudioState *state); 26 | bool AndroidAudio_Shutdown(AndroidAudioState *state); 27 | -------------------------------------------------------------------------------- /android/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_STL := c++_static 2 | APP_PLATFORM := android-9 3 | APP_ABI := arm64-v8a armeabi-v7a x86 x86_64 4 | APP_GNUSTL_CPP_FEATURES := exceptions 5 | NDK_TOOLCHAIN_VERSION := clang 6 | -------------------------------------------------------------------------------- /android/jni/Arm64EmitterTest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Just a test of the ARM64 emitter, playing around with running some code without having the whole emu around. 4 | 5 | void Arm64EmitterTest(); -------------------------------------------------------------------------------- /android/jni/ArmEmitterTest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Just a test of the ARM emitter, playing around with running some code without having the whole emu around. 4 | 5 | void ArmEmitterTest(); -------------------------------------------------------------------------------- /android/jni/TestRunner.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | bool RunTests(); 21 | bool TestsAvailable(); 22 | -------------------------------------------------------------------------------- /android/jni/app-android.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ppsspp_config.h" 4 | 5 | #include "Common/LogManager.h" 6 | 7 | #if PPSSPP_PLATFORM(ANDROID) 8 | 9 | #include 10 | 11 | jclass findClass(const char* name); 12 | JNIEnv* getEnv(); 13 | 14 | #endif 15 | 16 | class AndroidLogger : public LogListener { 17 | public: 18 | void Log(const LogMessage &message) override; 19 | }; 20 | -------------------------------------------------------------------------------- /android/libs/MogaStubs/com/bda/controller/Controller.java: -------------------------------------------------------------------------------- 1 | package com.bda.controller; 2 | 3 | import android.app.Activity; 4 | import android.os.Handler; 5 | import android.view.SurfaceView; 6 | 7 | public class Controller { 8 | public static final int ACTION_VERSION_MOGA = 0; 9 | public static final int STATE_CURRENT_PRODUCT_VERSION = 1; 10 | 11 | static Controller sInstance; 12 | 13 | private Controller() {} 14 | 15 | public static Controller getInstance(Activity activity) { 16 | if (sInstance == null) { 17 | sInstance = new Controller(); 18 | } 19 | return sInstance; 20 | } 21 | public int getState(int val) { 22 | return 0; 23 | } 24 | public int setListener(SurfaceView view, Handler handler) { 25 | return 0; 26 | } 27 | public int init() { 28 | return 0; 29 | } 30 | public int onPause() { 31 | return 0; 32 | } 33 | public int onResume() { 34 | return 0; 35 | } 36 | public int exit() { 37 | return 0; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /android/libs/MogaStubs/com/bda/controller/ControllerListener.java: -------------------------------------------------------------------------------- 1 | package com.bda.controller; 2 | 3 | public interface ControllerListener { 4 | public abstract void onKeyEvent(KeyEvent event); 5 | 6 | public abstract void onMotionEvent(MotionEvent event); 7 | 8 | public abstract void onStateEvent(StateEvent state); 9 | } 10 | -------------------------------------------------------------------------------- /android/libs/MogaStubs/com/bda/controller/IControllerService.java: -------------------------------------------------------------------------------- 1 | package com.bda.controller; 2 | 3 | public class IControllerService { 4 | } 5 | -------------------------------------------------------------------------------- /android/libs/MogaStubs/com/bda/controller/KeyEvent.java: -------------------------------------------------------------------------------- 1 | package com.bda.controller; 2 | 3 | public class KeyEvent { 4 | public static final int ACTION_DOWN = 0; 5 | public static final int ACTION_UP = 1; 6 | public static final int KEYCODE_DPAD_UP = 2; 7 | public static final int KEYCODE_DPAD_DOWN = 3; 8 | public static final int KEYCODE_DPAD_LEFT = 4; 9 | public static final int KEYCODE_DPAD_RIGHT = 5; 10 | 11 | public int getAction() { 12 | return 0; 13 | } 14 | public int getState(int val) { 15 | return 0; 16 | } 17 | public int getKeyCode() { 18 | return 0; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /android/libs/MogaStubs/com/bda/controller/MotionEvent.java: -------------------------------------------------------------------------------- 1 | package com.bda.controller; 2 | 3 | public class MotionEvent { 4 | public static final int AXIS_X = 0; 5 | public static final int AXIS_Y = 1; 6 | public static final int AXIS_Z = 2; 7 | public static final int AXIS_RZ = 3; 8 | public static final int AXIS_LTRIGGER = 4; 9 | public static final int AXIS_RTRIGGER = 5; 10 | 11 | public int getAxisValue(int val) { 12 | return 0; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /android/libs/MogaStubs/com/bda/controller/StateEvent.java: -------------------------------------------------------------------------------- 1 | package com.bda.controller; 2 | 3 | public class StateEvent { 4 | public static final int STATE_POWER_LOW = 0; 5 | public static final int STATE_CONNECTION = 1; 6 | 7 | public static final int ACTION_FALSE = 0; 8 | public static final int ACTION_TRUE = 1; 9 | public static final int ACTION_DISCONNECTED = 2; 10 | public static final int ACTION_CONNECTING = 3; 11 | public static final int ACTION_CONNECTED = 4; 12 | 13 | public int getAction() { 14 | return 0; 15 | } 16 | public int getState() { 17 | return 0; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /android/libs/com.bda.controller.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/libs/com.bda.controller.jar -------------------------------------------------------------------------------- /android/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /android/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | 11 | # Project target. 12 | target=android-26 13 | -------------------------------------------------------------------------------- /android/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-xhdpi/ouya_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable-xhdpi/ouya_icon.png -------------------------------------------------------------------------------- /android/res/drawable-xhdpi/tv_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable-xhdpi/tv_banner.png -------------------------------------------------------------------------------- /android/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/android/res/drawable/ic_banner.png -------------------------------------------------------------------------------- /android/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | 9 | 10 | -------------------------------------------------------------------------------- /android/res/values-v28/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | 14 | 15 | -------------------------------------------------------------------------------- /android/res/values/analytics.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | UA-36039055-2 4 | 5 | true 6 | 7 | true 8 | 9 | -------------------------------------------------------------------------------- /android/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hello World, PpssppActivity! 5 | PPSSPP 6 | PPSSPP game 7 | 8 | Unsupported disc 9 | The file you selected wasn\'t recognized as a game. 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | 8 | 9 | -------------------------------------------------------------------------------- /android/src/org/ppsspp/ppsspp/AudioFocusChangeListener.java: -------------------------------------------------------------------------------- 1 | package org.ppsspp.ppsspp; 2 | 3 | import android.media.AudioManager; 4 | import android.media.AudioManager.OnAudioFocusChangeListener; 5 | 6 | public class AudioFocusChangeListener implements OnAudioFocusChangeListener { 7 | // not used right now, but we may need to use it sometime. So just store it 8 | // for now. 9 | private boolean hasAudioFocus = false; 10 | 11 | @Override 12 | public void onAudioFocusChange(int focusChange) { 13 | switch (focusChange) { 14 | case AudioManager.AUDIOFOCUS_GAIN: 15 | hasAudioFocus = true; 16 | break; 17 | 18 | case AudioManager.AUDIOFOCUS_LOSS: 19 | hasAudioFocus = false; 20 | break; 21 | } 22 | } 23 | 24 | public boolean hasAudioFocus() { 25 | return hasAudioFocus; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /android/symarm.cmd: -------------------------------------------------------------------------------- 1 | adb logcat | %NDK%\ndk-stack -sym obj/local/armeabi-v7a 2 | -------------------------------------------------------------------------------- /android/symarm64.cmd: -------------------------------------------------------------------------------- 1 | adb logcat | %NDK%\ndk-stack -sym obj/local/arm64-v8a 2 | -------------------------------------------------------------------------------- /android/symx86.cmd: -------------------------------------------------------------------------------- 1 | adb logcat | %NDK%\ndk-stack -sym obj/local/x86 -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: '{branch}-1.0.{build}' 2 | pull_requests: 3 | do_not_increment_build_number: true 4 | configuration: 5 | - Release 6 | - Debug 7 | install: 8 | - cmd: git submodule update --init --recursive 9 | build: 10 | project: Windows/PPSSPP.sln 11 | parallel: true 12 | verbosity: normal 13 | test: off 14 | -------------------------------------------------------------------------------- /assets/7z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/7z.png -------------------------------------------------------------------------------- /assets/Roboto-Condensed.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/Roboto-Condensed.ttf -------------------------------------------------------------------------------- /assets/flash0/font/jpn0.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/jpn0.pgf -------------------------------------------------------------------------------- /assets/flash0/font/kr0.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/kr0.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn0.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn0.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn1.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn1.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn10.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn10.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn11.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn11.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn12.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn12.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn13.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn13.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn14.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn14.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn15.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn15.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn2.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn2.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn3.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn3.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn4.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn4.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn5.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn5.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn6.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn6.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn7.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn7.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn8.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn8.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn9.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/flash0/font/ltn9.pgf -------------------------------------------------------------------------------- /assets/ppge_atlas.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/ppge_atlas.meta -------------------------------------------------------------------------------- /assets/ppge_atlas.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/ppge_atlas.zim -------------------------------------------------------------------------------- /assets/rargray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/rargray.png -------------------------------------------------------------------------------- /assets/sfx_back.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/sfx_back.wav -------------------------------------------------------------------------------- /assets/sfx_confirm.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/sfx_confirm.wav -------------------------------------------------------------------------------- /assets/sfx_select.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/sfx_select.wav -------------------------------------------------------------------------------- /assets/sfx_toggle_off.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/sfx_toggle_off.wav -------------------------------------------------------------------------------- /assets/sfx_toggle_on.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/sfx_toggle_on.wav -------------------------------------------------------------------------------- /assets/shaders/aacolor.vsh: -------------------------------------------------------------------------------- 1 | // by guest(r) - guest.r@gmail.com 2 | // license: GNU-GPL 3 | 4 | attribute vec4 a_position; 5 | attribute vec2 a_texcoord0; 6 | uniform vec2 u_texelDelta; 7 | 8 | varying vec4 v_texcoord0; 9 | varying vec4 v_texcoord1; 10 | varying vec4 v_texcoord2; 11 | varying vec4 v_texcoord3; 12 | varying vec4 v_texcoord4; 13 | varying vec4 v_texcoord5; 14 | varying vec4 v_texcoord6; 15 | 16 | float scaleoffset = 0.8; 17 | 18 | void main() 19 | 20 | { 21 | float x = u_texelDelta.x*scaleoffset; 22 | float y = u_texelDelta.y*scaleoffset; 23 | gl_Position = a_position; 24 | v_texcoord0 = a_texcoord0.xyxy; 25 | v_texcoord1 = v_texcoord0; 26 | v_texcoord2 = v_texcoord0; 27 | v_texcoord4 = v_texcoord0; 28 | v_texcoord5 = v_texcoord0; 29 | v_texcoord1.y-=y; 30 | v_texcoord2.y+=y; 31 | v_texcoord4.x-=x; 32 | v_texcoord5.x+=x; 33 | } 34 | -------------------------------------------------------------------------------- /assets/shaders/colorcorrection.fsh: -------------------------------------------------------------------------------- 1 | // Color correction 2 | 3 | #ifdef GL_ES 4 | precision mediump float; 5 | precision mediump int; 6 | #endif 7 | 8 | uniform sampler2D sampler0; 9 | varying vec2 v_texcoord0; 10 | 11 | uniform vec4 u_setting; 12 | 13 | void main() 14 | { 15 | vec3 rgb = texture2D( sampler0, v_texcoord0 ).xyz; 16 | rgb = vec3(mix(vec3(dot(rgb, vec3(0.299, 0.587, 0.114))), rgb, u_setting.y)); 17 | rgb = (rgb-0.5)*u_setting.z+0.5+u_setting.x-1.0; 18 | gl_FragColor.rgb = pow(rgb, vec3(1.0/u_setting.w)); 19 | gl_FragColor.a = 1.0; 20 | } 21 | -------------------------------------------------------------------------------- /assets/shaders/fxaa.vsh: -------------------------------------------------------------------------------- 1 | attribute vec4 a_position; 2 | attribute vec2 a_texcoord0; 3 | varying vec2 v_texcoord0; 4 | void main() { 5 | v_texcoord0 = a_texcoord0; 6 | gl_Position = a_position; 7 | } 8 | -------------------------------------------------------------------------------- /assets/shaders/grayscale.fsh: -------------------------------------------------------------------------------- 1 | // Simple grayscale shader 2 | 3 | #ifdef GL_ES 4 | precision mediump float; 5 | precision mediump int; 6 | #endif 7 | 8 | uniform sampler2D sampler0; 9 | varying vec2 v_texcoord0; 10 | 11 | void main() { 12 | vec3 rgb = texture2D(sampler0, v_texcoord0.xy).xyz; 13 | float luma = dot(rgb, vec3(0.299, 0.587, 0.114)); 14 | gl_FragColor.rgb = vec3(luma, luma, luma); 15 | gl_FragColor.a = 1.0; 16 | } 17 | -------------------------------------------------------------------------------- /assets/shaders/inversecolors.fsh: -------------------------------------------------------------------------------- 1 | // Simple false color shader 2 | 3 | #ifdef GL_ES 4 | precision mediump float; 5 | precision mediump int; 6 | #endif 7 | 8 | uniform sampler2D sampler0; 9 | varying vec2 v_texcoord0; 10 | 11 | void main() { 12 | vec3 rgb = texture2D(sampler0, v_texcoord0.xy).xyz; 13 | float luma = dot(rgb, vec3(0.299, 0.587, 0.114)); 14 | vec3 gray = vec3(luma, luma, luma) - 0.5; 15 | rgb -= vec3(0.5, 0.5, 0.5); 16 | 17 | gl_FragColor.rgb = mix(rgb, gray, 2.0) + 0.5; 18 | gl_FragColor.a = 1.0; 19 | } 20 | -------------------------------------------------------------------------------- /assets/shaders/natural.vsh: -------------------------------------------------------------------------------- 1 | uniform vec2 u_texelDelta; 2 | 3 | attribute vec4 a_position; 4 | attribute vec2 a_texcoord0; 5 | 6 | varying vec4 v_texcoord0; 7 | varying vec4 v_texcoord1; 8 | varying vec4 v_texcoord2; 9 | varying vec4 v_texcoord3; 10 | 11 | void main() 12 | { 13 | gl_Position=a_position; 14 | 15 | v_texcoord0=a_texcoord0.xyxy+vec4(-0.5,-0.5,-1.5,-1.5)*u_texelDelta.xyxy; 16 | v_texcoord1=a_texcoord0.xyxy+vec4( 0.5,-0.5, 1.5,-1.5)*u_texelDelta.xyxy; 17 | v_texcoord2=a_texcoord0.xyxy+vec4(-0.5, 0.5,-1.5, 1.5)*u_texelDelta.xyxy; 18 | v_texcoord3=a_texcoord0.xyxy+vec4( 0.5, 0.5, 1.5, 1.5)*u_texelDelta.xyxy; 19 | } 20 | -------------------------------------------------------------------------------- /assets/shaders/psp_color.ini: -------------------------------------------------------------------------------- 1 | [PSP Color] 2 | Name=PSP Color 3 | Author=hunterk, Pokefan531 (ported by jdgleaver) 4 | Fragment=psp_color.fsh 5 | Vertex=psp_color.vsh 6 | OutputResolution=True 7 | -------------------------------------------------------------------------------- /assets/shaders/psp_color.vsh: -------------------------------------------------------------------------------- 1 | /* 2 | psp_color vertex shader 3 | 4 | Original code written by hunterk, modified by Pokefan531 and 5 | released into the public domain 6 | 7 | 'Ported' (i.e. copy/paste) to PPSSPP format by jdgleaver 8 | 9 | This program is free software; you can redistribute it and/or modify it 10 | under the terms of the GNU General Public License as published by the Free 11 | Software Foundation; either version 2 of the License, or (at your option) 12 | any later version. 13 | */ 14 | 15 | attribute vec4 a_position; 16 | attribute vec2 a_texcoord0; 17 | varying vec2 v_texcoord0; 18 | 19 | void main() 20 | { 21 | v_texcoord0 = a_texcoord0; // + 0.000001; // HLSL precision workaround (is this needed???) 22 | gl_Position = a_position; 23 | } 24 | -------------------------------------------------------------------------------- /assets/shaders/scanlines.fsh: -------------------------------------------------------------------------------- 1 | // Advanced Scanlines (CRT) shader, created to use in PPSSPP. 2 | 3 | #ifdef GL_ES 4 | precision mediump float; 5 | precision mediump int; 6 | #endif 7 | 8 | uniform sampler2D sampler0; 9 | varying vec2 v_texcoord0; 10 | 11 | uniform vec4 u_setting; 12 | 13 | void main() 14 | { 15 | float pos0 = ((v_texcoord0.y + 1.0) * 170.0*u_setting.x); 16 | float pos1 = cos((fract( pos0 ) - 0.5)*3.1415926*u_setting.y)*1.5; 17 | vec4 rgb = texture2D( sampler0, v_texcoord0 ); 18 | 19 | // slight contrast curve 20 | vec4 color = rgb*0.5+0.5*rgb*rgb*1.2; 21 | 22 | // color tint 23 | color *= vec4(0.9,1.0,0.7, 0.0); 24 | 25 | // vignette 26 | color *= 1.1 - 0.6 * (dot(v_texcoord0 - 0.5, v_texcoord0 - 0.5) * 2.0); 27 | 28 | gl_FragColor.rgba = mix(vec4(0,0,0,0), color, pos1); 29 | } 30 | -------------------------------------------------------------------------------- /assets/shaders/sharpen.fsh: -------------------------------------------------------------------------------- 1 | // Simple sharpen shader; created to use in PPSSPP 2 | 3 | #ifdef GL_ES 4 | precision mediump float; 5 | precision mediump int; 6 | #endif 7 | 8 | uniform sampler2D sampler0; 9 | varying vec2 v_texcoord0; 10 | 11 | uniform vec4 u_setting; 12 | 13 | void main() 14 | { 15 | vec3 color = texture2D(sampler0, v_texcoord0.xy).xyz; 16 | color -= texture2D(sampler0, v_texcoord0.xy+0.0001).xyz*7.0*u_setting.x; 17 | color += texture2D(sampler0, v_texcoord0.xy-0.0001).xyz*7.0*u_setting.x; 18 | gl_FragColor.rgb = color; 19 | } 20 | -------------------------------------------------------------------------------- /assets/shaders/upscale_spline36.vsh: -------------------------------------------------------------------------------- 1 | attribute vec4 a_position; 2 | attribute vec2 a_texcoord0; 3 | 4 | varying vec2 v_position; 5 | 6 | void main() 7 | { 8 | gl_Position = a_position; 9 | 10 | v_position = a_texcoord0; 11 | } 12 | -------------------------------------------------------------------------------- /assets/shaders/vignette.fsh: -------------------------------------------------------------------------------- 1 | // Simple vignette shader - darker towards the corners like in the unprocessed output of a real camera. 2 | 3 | #ifdef GL_ES 4 | precision mediump float; 5 | precision mediump int; 6 | #endif 7 | 8 | uniform sampler2D sampler0; 9 | varying vec2 v_texcoord0; 10 | 11 | void main() { 12 | float vignette = 1.1 - 0.6 * (dot(v_texcoord0 - 0.5, v_texcoord0 - 0.5) * 2.0); 13 | vec3 rgb = texture2D(sampler0, v_texcoord0.xy).xyz; 14 | gl_FragColor.rgb = vignette * rgb; 15 | gl_FragColor.a = 1.0; 16 | } 17 | -------------------------------------------------------------------------------- /assets/ui_atlas.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/ui_atlas.meta -------------------------------------------------------------------------------- /assets/ui_atlas.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/ui_atlas.zim -------------------------------------------------------------------------------- /assets/ui_atlas_lowmem.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/ui_atlas_lowmem.zim -------------------------------------------------------------------------------- /assets/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/unknown.png -------------------------------------------------------------------------------- /assets/zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/assets/zip.png -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:4.0.1' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | google() 15 | jcenter() 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /build_ppgeatlas.sh: -------------------------------------------------------------------------------- 1 | ./ext/native/tools/build/atlastool ppge_atlasscript.txt ppge && rm ppge_atlas.cpp ppge_atlas.h && cp ppge_atlas.zim assets && cp ppge_atlas.meta assets && mv ppge_atlas.zim ppge_atlas.meta android/assets 2 | -------------------------------------------------------------------------------- /buildatlas.sh: -------------------------------------------------------------------------------- 1 | ./ext/native/tools/build/atlastool atlasscript.txt ui 8888 && cp ui_atlas.zim ui_atlas.meta assets && cp ui_atlas.zim ui_atlas.meta android/assets && rm ui_atlas.cpp ui_atlas.h 2 | 3 | rm ui_atlas.zim ui_atlas.meta 4 | -------------------------------------------------------------------------------- /cmake/Modules/ccache.cmake: -------------------------------------------------------------------------------- 1 | # Using ccache greatly improves the speed of our CI builds, let's enable for all. 2 | # Without this, our CI can't use ccache for clang, for some reason. 3 | find_program(CCACHE_FOUND ccache) 4 | if(CCACHE_FOUND) 5 | set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_FOUND}) 6 | set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_FOUND}) 7 | 8 | # ccache uses -I when compiling without preprocessor, which makes clang complain. 9 | if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") 10 | set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics") 11 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -fcolor-diagnostics") 12 | endif() 13 | endif(CCACHE_FOUND) 14 | -------------------------------------------------------------------------------- /cmake/Toolchains/beagleboard.cmake: -------------------------------------------------------------------------------- 1 | set(USING_FBDEV ON) 2 | 3 | set(ARCH_FLAGS "-march=armv7-a -mfpu=neon -mcpu=cortex-a8") 4 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAGS}") 5 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${ARCH_FLAGS}") 6 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAGS}") 7 | -------------------------------------------------------------------------------- /cmake/Toolchains/generic.armv7.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv7-a -mfpu=neon -mcpu=cortex-a9") 2 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mfpu=neon -mcpu=cortex-a9") 3 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -march=armv7-a -mfpu=neon -mcpu=cortex-a9") 4 | -------------------------------------------------------------------------------- /cmake/Toolchains/nvidiajetsonsdl.armv8.cmake: -------------------------------------------------------------------------------- 1 | if(NOT EXISTS "/usr/lib/aarch64-linux-gnu/tegra") 2 | message(FATAL_ERROR "Nvidia Jetson platform not recognized") 3 | endif() 4 | 5 | include_directories(SYSTEM 6 | /usr/include/GL 7 | ) 8 | 9 | set(ARCH_FLAGS "-march=armv8-a+crc -mtune=cortex-a57 -funsafe-math-optimizations") 10 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 11 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 12 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 13 | 14 | set (CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath,/usr/lib/aarch64-linux-gnu/tegra" CACHE STRING "" FORCE) 15 | 16 | set(OPENGL_LIBRARIES /usr/lib/aarch64-linux-gnu/tegra/libGLX_nvidia.so.0) 17 | set(USING_X11_VULKAN ON CACHE BOOL "" FORCE) 18 | -------------------------------------------------------------------------------- /cmake/Toolchains/raspberry.armv6.cmake: -------------------------------------------------------------------------------- 1 | if(NOT EXISTS "/opt/vc/include/bcm_host.h") 2 | message(FATAL_ERROR "RaspberryPI platform not recognized") 3 | endif() 4 | 5 | include_directories(SYSTEM 6 | /opt/vc/include 7 | /opt/vc/include/interface/vcos/pthreads 8 | /opt/vc/include/interface/vmcx_host/linux 9 | ) 10 | 11 | add_definitions( 12 | -DPPSSPP_PLATFORM_RPI=1 13 | ) 14 | 15 | set(ARCH_FLAGS "-mfpu=vfp -march=armv6j -mfloat-abi=hard") 16 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 17 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 18 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 19 | 20 | set(CMAKE_EXE_LINKER_FLAGS "-L/opt/vc/lib" CACHE STRING "" FORCE) 21 | 22 | set(OPENGL_LIBRARIES brcmGLESv2 bcm_host) 23 | set(EGL_LIBRARIES brcmEGL) 24 | set(USING_GLES2 ON) 25 | set(USING_FBDEV ON) 26 | set(USE_WAYLAND_WSI OFF) 27 | -------------------------------------------------------------------------------- /cmake/Toolchains/vero4k.armv8.cmake: -------------------------------------------------------------------------------- 1 | include_directories(SYSTEM 2 | /opt/vero3/include 3 | /opt/vero3/include/EGL 4 | /opt/vero3/include/GLES2 5 | ) 6 | 7 | set(ARCH_FLAGS "-march=armv8-a+crc -mtune=cortex-a53 -mfloat-abi=hard -funsafe-math-optimizations") 8 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 9 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 10 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 11 | 12 | set(CMAKE_EXE_LINKER_FLAGS "-L/opt/vero3/lib" CACHE STRING "" FORCE) 13 | 14 | set(OPENGL_LIBRARIES /opt/vero3/lib/libGLESv2.so) 15 | set(EGL_LIBRARIES /opt/vero3/lib/libEGL.so) 16 | 17 | set(USING_GLES2 ON) 18 | set(USING_EGL ON) 19 | set(USING_FBDEV ON) 20 | set(FORCED_CPU armv7) 21 | set(USING_X11_VULKAN OFF CACHE BOOL "" FORCE) 22 | -------------------------------------------------------------------------------- /copyrelease.sh: -------------------------------------------------------------------------------- 1 | TARGETDIR=$1 2 | VERSION=$2 3 | 4 | TARGETPATH=$1/$2 5 | 6 | echo "Copying to $TARGETPATH" 7 | 8 | mkdir -p $TARGETPATH 9 | cp PPSSPPWindows.exe $TARGETPATH/ 10 | cp PPSSPPWindows64.exe $TARGETPATH/ 11 | cp -r assets $TARGETPATH/ 12 | cp README.md $TARGETPATH/ 13 | rm $TARGETPATH/assets/lang/.git 14 | -------------------------------------------------------------------------------- /ext/.gitignore: -------------------------------------------------------------------------------- 1 | Win32 2 | x64 3 | ARM64 4 | ARM 5 | -------------------------------------------------------------------------------- /ext/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(ARMIPS_REGEXP OFF CACHE BOOL "" FORCE) 2 | 3 | add_subdirectory(armips) 4 | if(NOT USING_GLES2) 5 | add_subdirectory(glew) 6 | endif() 7 | 8 | set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "let's not build binaries we don't need" FORCE) 9 | set(SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS ON CACHE BOOL "let's not use exceptions" FORCE) 10 | 11 | # This is really a workaround for an NDK 20 compiler issue (PPSSPP issue #12105), but shouldn't hurt. 12 | if(ANDROID) 13 | set(ENABLE_HLSL OFF CACHE BOOL "let's not build HLSL support we don't need" FORCE) 14 | endif() 15 | 16 | add_subdirectory(glslang EXCLUDE_FROM_ALL) 17 | add_subdirectory(snappy) 18 | add_subdirectory(udis86) 19 | add_subdirectory(SPIRV-Cross-build) 20 | if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO) 21 | add_subdirectory(discord-rpc-build) 22 | endif() 23 | -------------------------------------------------------------------------------- /ext/glew/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(GLEW) 2 | if(NOT APPLE AND GLEW_FOUND) 3 | add_library(system_glew INTERFACE) 4 | add_library(Ext::GLEW ALIAS system_glew) 5 | target_link_libraries(system_glew INTERFACE GLEW::GLEW) 6 | else() 7 | find_package(OpenGL REQUIRED) 8 | add_library(glew STATIC 9 | GL/glew.h 10 | GL/glxew.h 11 | GL/wglew.h 12 | glew.c 13 | ) 14 | add_library(Ext::GLEW ALIAS glew) 15 | target_link_libraries(glew PUBLIC ${OPENGL_LIBRARIES}) 16 | target_compile_definitions(glew PUBLIC GLEW_STATIC) 17 | target_include_directories(glew PUBLIC . ${OPENGL_INCLUDE_DIR}) 18 | set_target_properties(glew PROPERTIES 19 | EXCLUDE_FROM_ALL ON 20 | ) 21 | endif() 22 | -------------------------------------------------------------------------------- /ext/jpge/publicdomain.txt: -------------------------------------------------------------------------------- 1 | This is https://code.google.com/p/jpeg-compressor/ , public domain code. -------------------------------------------------------------------------------- /ext/libkirk/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | AES.c 3 | bn.c 4 | ec.c 5 | kirk_engine.c 6 | SHA1.c 7 | ) 8 | 9 | set(SRCS ${SRCS}) 10 | 11 | add_library(kirk STATIC ${SRCS}) 12 | 13 | if(UNIX) 14 | add_definitions(-fPIC) 15 | endif(UNIX) 16 | 17 | -------------------------------------------------------------------------------- /ext/libpng17/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | add_library(png17 4 | pngconf.h 5 | pngdebug.h 6 | png.c 7 | png.h 8 | pngerror.c 9 | pngget.c 10 | pnginfo.h 11 | pnglibconf.h 12 | pngmem.c 13 | pngpread.c 14 | pngpriv.h 15 | pngread.c 16 | pngrio.c 17 | pngrtran.c 18 | pngrutil.c 19 | pngset.c 20 | pngstruct.h 21 | pngtest.c 22 | pngtrans.c 23 | pngwio.c 24 | pngwrite.c 25 | pngwtran.c 26 | pngwutil.c) 27 | -------------------------------------------------------------------------------- /ext/miniupnp-build/miniupnpcstrings.h: -------------------------------------------------------------------------------- 1 | /* $Id: miniupnpcstrings.h.in,v 1.6 2014/11/04 22:31:55 nanard Exp $ */ 2 | /* Project: miniupnp 3 | * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ 4 | * Author: Thomas Bernard 5 | * Copyright (c) 2005-2014 Thomas Bernard 6 | * This software is subjects to the conditions detailed 7 | * in the LICENCE file provided within this distribution */ 8 | #ifndef MINIUPNPCSTRINGS_H_INCLUDED 9 | #define MINIUPNPCSTRINGS_H_INCLUDED 10 | 11 | #define OS_STRING "Android" 12 | #define MINIUPNPC_VERSION_STRING "2.1" 13 | 14 | #if 0 15 | /* according to "UPnP Device Architecture 1.0" */ 16 | #define UPNP_VERSION_STRING "UPnP/1.0" 17 | #else 18 | /* according to "UPnP Device Architecture 1.1" */ 19 | #define UPNP_VERSION_STRING "UPnP/1.1" 20 | #endif 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /ext/native/.gitignore: -------------------------------------------------------------------------------- 1 | Release 2 | Debug 3 | *.vcxproj.user 4 | android/.settings 5 | local.properties 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /ext/native/base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | colorutil.cpp 3 | ../thread/threadutil.cpp 4 | display.cpp 5 | buffer.cpp 6 | ) 7 | 8 | add_library(base STATIC ${SRCS}) 9 | 10 | if(UNIX) 11 | add_definitions(-fPIC) 12 | endif(UNIX) 13 | -------------------------------------------------------------------------------- /ext/native/base/colorutil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | uint32_t whiteAlpha(float alpha); 6 | uint32_t blackAlpha(float alpha); 7 | uint32_t colorAlpha(uint32_t color, float alpha); 8 | uint32_t colorBlend(uint32_t color, uint32_t color2, float alpha); 9 | uint32_t alphaMul(uint32_t color, float alphaMul); 10 | uint32_t rgba(float r, float g, float b, float alpha); 11 | uint32_t rgba_clamp(float r, float g, float b, float alpha); 12 | 13 | typedef unsigned int Color; 14 | 15 | #define COLOR(i) (((i&0xFF) << 16) | (i & 0xFF00) | ((i & 0xFF0000) >> 16) | 0xFF000000) 16 | inline Color darkenColor(Color color) { 17 | return (color & 0xFF000000) | ((color >> 1) & 0x7F7F7F); 18 | } 19 | -------------------------------------------------------------------------------- /ext/native/data/base64.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | std::string Base64Encode(const uint8_t *p, size_t sz); 6 | -------------------------------------------------------------------------------- /ext/native/data/compression.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | // inflate/deflate convenience wrapper. Uses zlib. 6 | bool compress_string(const std::string& str, std::string *dest, int compressionlevel = 9); 7 | bool decompress_string(const std::string& str, std::string *dest); 8 | -------------------------------------------------------------------------------- /ext/native/file/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | chunk_file.cpp 3 | zip_read.cpp 4 | file_util.cpp 5 | free.cpp) 6 | 7 | set(SRCS ${SRCS}) 8 | 9 | add_library(file STATIC ${SRCS}) 10 | target_link_libraries(file general zip) 11 | 12 | if(UNIX) 13 | add_definitions(-fPIC) 14 | endif(UNIX) 15 | -------------------------------------------------------------------------------- /ext/native/file/fd_util.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace fd_util { 7 | 8 | // Slow as hell and should only be used for prototyping. 9 | size_t ReadLine(int fd, char *buffer, size_t buf_size); 10 | 11 | // Decently fast. 12 | size_t WriteLine(int fd, const char *buffer, size_t buf_size); 13 | size_t WriteLine(int fd, const char *buffer); 14 | size_t Write(int fd, const std::string &str); 15 | 16 | // Returns true if the fd became ready, false if it didn't or 17 | // if there was another error. 18 | bool WaitUntilReady(int fd, double timeout, bool for_write = false); 19 | 20 | void SetNonBlocking(int fd, bool non_blocking); 21 | 22 | std::string GetLocalIP(int sock); 23 | 24 | } // fd_util 25 | -------------------------------------------------------------------------------- /ext/native/file/free.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | bool free_disk_space(const std::string &dir, uint64_t &space); 7 | -------------------------------------------------------------------------------- /ext/native/file/vfs.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "file/file_util.h" 5 | 6 | // Basic virtual file system. Used to manage assets on Android, where we have to 7 | // read them manually out of the APK zipfile, while being able to run on other 8 | // platforms as well with the appropriate directory set-up. 9 | 10 | class AssetReader; 11 | 12 | void VFSRegister(const char *prefix, AssetReader *reader); 13 | void VFSShutdown(); 14 | 15 | // Use delete [] to release the returned memory. 16 | // Always allocates an extra zero byte at the end, so that it 17 | // can be used for text like shader sources. 18 | uint8_t *VFSReadFile(const char *filename, size_t *size); 19 | bool VFSGetFileListing(const char *path, std::vector *listing, const char *filter = 0); 20 | bool VFSGetFileInfo(const char *filename, FileInfo *fileInfo); 21 | -------------------------------------------------------------------------------- /ext/native/gfx/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | gl_debug_log.cpp 3 | #gl_lost_manager.cpp 4 | texture_atlas.cpp) 5 | 6 | set(SRCS ${SRCS}) 7 | 8 | add_library(gfx STATIC ${SRCS}) 9 | 10 | if(UNIX) 11 | add_definitions(-fPIC) 12 | endif(UNIX) 13 | -------------------------------------------------------------------------------- /ext/native/gfx/d3d9_shader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonWindows.h" 4 | #include 5 | #include 6 | #include 7 | 8 | struct ID3DXConstantTable; 9 | 10 | namespace DX9 { 11 | 12 | bool CompilePixelShader(LPDIRECT3DDEVICE9 device, const char *code, LPDIRECT3DPIXELSHADER9 *pShader, ID3DXConstantTable **pShaderTable, std::string &errorMessage); 13 | bool CompileVertexShader(LPDIRECT3DDEVICE9 device, const char *code, LPDIRECT3DVERTEXSHADER9 *pShader, ID3DXConstantTable **pShaderTable, std::string &errorMessage); 14 | 15 | } // namespace 16 | -------------------------------------------------------------------------------- /ext/native/gfx/gl_debug_log.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | // Utility to be able to liberally sprinkle GL error checks around your code 7 | // and easily disable them all in release builds - just undefine DEBUG_OPENGL. 8 | 9 | // #define DEBUG_OPENGL 10 | 11 | #if defined(DEBUG_OPENGL) 12 | 13 | bool CheckGLError(const char *file, int line); 14 | #define CHECK_GL_ERROR_IF_DEBUG() if (!CheckGLError(__FILE__, __LINE__)) __debugbreak(); 15 | 16 | #else 17 | 18 | #define CHECK_GL_ERROR_IF_DEBUG() 19 | 20 | #endif 21 | 22 | std::string GLEnumToString(uint16_t value); 23 | -------------------------------------------------------------------------------- /ext/native/gfx_es2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | draw_buffer.cpp 3 | draw_text.cpp 4 | glsl_program.cpp 5 | gpu_features.cpp 6 | gl_state.cpp) 7 | 8 | set(SRCS ${SRCS}) 9 | 10 | add_library(gfx_es2 STATIC ${SRCS}) 11 | target_link_libraries(gfx_es2 general gfx) 12 | target_link_libraries(gfx_es2 general file) 13 | 14 | if(UNIX) 15 | add_definitions(-fPIC) 16 | endif(UNIX) 17 | -------------------------------------------------------------------------------- /ext/native/image/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | png_load.cpp 3 | zim_load.cpp 4 | zim_save.cpp 5 | ) 6 | 7 | set(SRCS ${SRCS}) 8 | 9 | add_library(image STATIC ${SRCS}) 10 | 11 | if(UNIX) 12 | add_definitions(-fPIC) 13 | endif(UNIX) 14 | 15 | -------------------------------------------------------------------------------- /ext/native/image/png_load.h: -------------------------------------------------------------------------------- 1 | #ifndef _PNG_LOAD_H 2 | #define _PNG_LOAD_H 3 | 4 | // *image_data_ptr should be deleted with free() 5 | // return value of 1 == success. 6 | int pngLoad(const char *file, int *pwidth, 7 | int *pheight, unsigned char **image_data_ptr, bool flip); 8 | 9 | int pngLoadPtr(const unsigned char *input_ptr, size_t input_len, int *pwidth, 10 | int *pheight, unsigned char **image_data_ptr, bool flip); 11 | 12 | #endif // _PNG_LOAD_H 13 | -------------------------------------------------------------------------------- /ext/native/image/zim_save.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | // For the type enums etc. 7 | #include "zim_load.h" 8 | 9 | // SaveZIM's responsibility: 10 | // * Write the ZIM format 11 | // * Generate mipmaps if requested 12 | // * Convert images to the requested format 13 | // Input image is always 8888 RGBA. SaveZIM takes care of downsampling and mipmap generation. 14 | void SaveZIM(FILE *f, int width, int height, int pitch, int format, const uint8_t *image); 15 | -------------------------------------------------------------------------------- /ext/native/json/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | json_writer.cpp) 3 | 4 | set(SRCS ${SRCS}) 5 | 6 | add_library(jsonwriter STATIC ${SRCS}) 7 | 8 | 9 | 10 | add_executable(json_writer_test json_writer_test.cpp) 11 | target_link_libraries(json_writer_test jsonwriter) 12 | 13 | if(UNIX) 14 | add_definitions(-fPIC) 15 | endif(UNIX) 16 | -------------------------------------------------------------------------------- /ext/native/json/json_writer_test.cpp: -------------------------------------------------------------------------------- 1 | #include "json/json_writer.h" 2 | #include 3 | 4 | int main() { 5 | JsonWriter j; 6 | j.begin(); 7 | j.pushDict("settings"); 8 | j.writeInt("volume", 50); 9 | j.writeInt("sound", 60); 10 | j.pop(); 11 | j.pushDict("user"); 12 | j.writeFloat("level", 1.5); 13 | j.writeString("name", "hello"); 14 | j.pop(); 15 | j.writeInt("outer", 3); 16 | j.pushArray("ints"); 17 | j.writeInt(3); 18 | j.writeInt(4); 19 | j.writeInt(6); 20 | j.pop(); 21 | j.writeString("yo!", "yo"); 22 | j.end(); 23 | std::cout << j.str(); 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /ext/native/math/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | lin/matrix4x4.cpp 3 | lin/vec3.cpp 4 | curves.cpp 5 | math_util.cpp 6 | ) 7 | 8 | set(SRCS ${SRCS}) 9 | 10 | add_library(lin STATIC ${SRCS}) 11 | 12 | if(UNIX) 13 | add_definitions(-fPIC) 14 | endif(UNIX) 15 | -------------------------------------------------------------------------------- /ext/native/math/curves.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Easy curve computation for fades etc. 4 | 5 | // output range: [0.0, 1.0] 6 | float linearInOut(int t, int fadeInLength, int solidLength, int fadeOutLength); 7 | float linearIn(int t, int fadeInLength); 8 | float linearOut(int t, int fadeInLength); 9 | 10 | // smooth operator [0, 1] -> [0, 1] 11 | float ease(float val); 12 | float ease(int t, int fadeLength); 13 | 14 | float bezierEase(float val); 15 | float bezierEaseInOut(float val); 16 | float bezierEaseIn(float val); 17 | float bezierEaseOut(float val); 18 | 19 | // need a bouncy ease 20 | 21 | // waveforms [0, 1] 22 | float sawtooth(int t, int period); 23 | 24 | // output range: -1.0 to 1.0 25 | float passWithPause(int t, int fadeInLength, int pauseLength, int fadeOutLength); 26 | -------------------------------------------------------------------------------- /ext/native/math/dataconv.cpp: -------------------------------------------------------------------------------- 1 | #include "dataconv.h" 2 | 3 | alignas(16) const float one_over_255_x4[4] = { 1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f, }; 4 | -------------------------------------------------------------------------------- /ext/native/math/fast/fast_math.c: -------------------------------------------------------------------------------- 1 | #include "fast_math.h" 2 | #include "fast_matrix.h" 3 | 4 | void InitFastMath(int enableNEON) { 5 | // Every architecture has its own define. This needs to be added to. 6 | if (enableNEON) { 7 | #ifndef _MSC_VER 8 | #if PPSSPP_ARCH(ARM_NEON) && !PPSSPP_ARCH(ARM64) 9 | fast_matrix_mul_4x4 = &fast_matrix_mul_4x4_neon; 10 | #endif 11 | #endif 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ext/native/math/fast/fast_math.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | // Fast Math 8 | // A mini library of math kernels. These should be large enough to be worth calling 9 | // as functions, and generic enough to fit in the "native" library (not PSP specific stuff). 10 | 11 | // NEON versions are dynamically selected at runtime, when you call InitFastMath. 12 | 13 | // SSE versions are hard linked at compile time. 14 | 15 | // See fast_matrix.h for the first set of functions. 16 | 17 | void InitFastMath(int enableNEON); 18 | 19 | #ifdef __cplusplus 20 | } 21 | #endif -------------------------------------------------------------------------------- /ext/native/math/fast/fast_matrix_sse.c: -------------------------------------------------------------------------------- 1 | #include "ppsspp_config.h" 2 | 3 | #if PPSSPP_ARCH(X86) || PPSSPP_ARCH(AMD64) 4 | 5 | #include 6 | 7 | #include "fast_matrix.h" 8 | 9 | void fast_matrix_mul_4x4_sse(float *dest, const float *a, const float *b) { 10 | int i; 11 | __m128 a_col_1 = _mm_loadu_ps(a); 12 | __m128 a_col_2 = _mm_loadu_ps(&a[4]); 13 | __m128 a_col_3 = _mm_loadu_ps(&a[8]); 14 | __m128 a_col_4 = _mm_loadu_ps(&a[12]); 15 | 16 | for (i = 0; i < 16; i += 4) { 17 | __m128 r_col = _mm_mul_ps(a_col_1, _mm_set1_ps(b[i])); 18 | r_col = _mm_add_ps(r_col, _mm_mul_ps(a_col_2, _mm_set1_ps(b[i + 1]))); 19 | r_col = _mm_add_ps(r_col, _mm_mul_ps(a_col_3, _mm_set1_ps(b[i + 2]))); 20 | r_col = _mm_add_ps(r_col, _mm_mul_ps(a_col_4, _mm_set1_ps(b[i + 3]))); 21 | _mm_storeu_ps(&dest[i], r_col); 22 | } 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ext/native/math/lin/vec3.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "math/lin/vec3.h" 4 | #include "math/lin/matrix4x4.h" 5 | 6 | namespace Lin { 7 | 8 | Vec3 Vec3::operator *(const Matrix4x4 &m) const { 9 | return Vec3(x*m.xx + y*m.yx + z*m.zx + m.wx, 10 | x*m.xy + y*m.yy + z*m.zy + m.wy, 11 | x*m.xz + y*m.yz + z*m.zz + m.wz); 12 | } 13 | 14 | Vec3 Vec3::rotatedBy(const Matrix4x4 &m) const { 15 | return Vec3(x*m.xx + y*m.yx + z*m.zx, 16 | x*m.xy + y*m.yy + z*m.zy, 17 | x*m.xz + y*m.yz + z*m.zz); 18 | } 19 | 20 | } // namespace Lin 21 | -------------------------------------------------------------------------------- /ext/native/net/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | http_client.cpp 3 | resolve.cpp) 4 | 5 | set(SRCS ${SRCS}) 6 | 7 | add_library(net STATIC ${SRCS}) 8 | 9 | if(UNIX) 10 | add_definitions(-fPIC) 11 | endif(UNIX) 12 | -------------------------------------------------------------------------------- /ext/native/net/resolve.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | struct addrinfo; 7 | 8 | namespace net { 9 | 10 | // Strictly only required on Win32, but all platforms should call it. 11 | void Init(); 12 | void Shutdown(); 13 | 14 | enum class DNSType { 15 | ANY = 0, 16 | IPV4 = 1, 17 | IPV6 = 2, 18 | }; 19 | 20 | bool DNSResolve(const std::string &host, const std::string &service, addrinfo **res, std::string &error, DNSType type = DNSType::ANY); 21 | void DNSResolveFree(addrinfo *res); 22 | bool GetIPList(std::vector& IP4s); 23 | 24 | int inet_pton(int af, const char* src, void* dst); 25 | } // namespace net 26 | -------------------------------------------------------------------------------- /ext/native/profiler/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | profiler.cpp 3 | ) 4 | 5 | # LGUIFileList.cpp 6 | 7 | add_library(profiler STATIC ${SRCS}) 8 | 9 | if(UNIX) 10 | add_definitions(-fPIC) 11 | endif(UNIX) 12 | -------------------------------------------------------------------------------- /ext/native/thin3d/DataFormatGL.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "gfx/gl_common.h" 4 | #include "thin3d/DataFormat.h" 5 | 6 | namespace Draw { 7 | 8 | bool Thin3DFormatToFormatAndType(DataFormat fmt, GLuint &internalFormat, GLuint &format, GLuint &type, int &alignment); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /ext/native/thin3d/d3d9_d3dcompiler_loader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "ppsspp_config.h" 3 | 4 | #include 5 | #include 6 | 7 | bool LoadD3DCompilerDynamic(); 8 | 9 | HRESULT dyn_D3DCompile(LPCSTR pSrcData, UINT SrcDataSize, LPCSTR pFileName, CONST D3D_SHADER_MACRO* pDefines, 10 | LPD3DINCLUDE pInclude, LPCSTR pEntrypoint, LPCSTR pTarget, 11 | UINT Flags1, UINT Flags2, LPD3DBLOB* ppShader, LPD3DBLOB* ppErrorMsgs); 12 | 13 | bool UnloadD3DCompiler(); 14 | 15 | int GetD3DCompilerVersion(); 16 | -------------------------------------------------------------------------------- /ext/native/tools/.gitignore: -------------------------------------------------------------------------------- 1 | Release 2 | Debug 3 | build 4 | *.VC* 5 | -------------------------------------------------------------------------------- /ext/native/tools/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | tools 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ext/native/tools/b.sh: -------------------------------------------------------------------------------- 1 | mkdir -p build 2 | (cd build; cmake .. && make -j5; cd ..) 3 | #cp build/atlastool /home/henrik/bin 4 | -------------------------------------------------------------------------------- /ext/native/tools/zimtool/zimtool.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ext/native/ui/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | ui.cpp 3 | ui_context.cpp 4 | view.cpp 5 | viewgroup.cpp 6 | screen.cpp 7 | root.cpp 8 | ) 9 | 10 | set(SRCS ${SRCS}) 11 | 12 | add_library(ui STATIC ${SRCS}) 13 | 14 | if(UNIX) 15 | add_definitions(-fPIC) 16 | endif(UNIX) 17 | 18 | -------------------------------------------------------------------------------- /ext/native/ui/ui.cpp: -------------------------------------------------------------------------------- 1 | // See header for documentation. 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include "base/colorutil.h" 9 | #include "ui/ui.h" 10 | #include "ui/ui_context.h" 11 | #include "gfx/texture_atlas.h" 12 | #include "gfx_es2/draw_buffer.h" 13 | 14 | // TODO: UI should probably not own these. 15 | DrawBuffer ui_draw2d; 16 | DrawBuffer ui_draw2d_front; 17 | 18 | void UIBegin(Draw::Pipeline *pipeline) { 19 | ui_draw2d.Begin(pipeline); 20 | ui_draw2d_front.Begin(pipeline); 21 | } 22 | 23 | void UIFlush() { 24 | ui_draw2d.Flush(); 25 | ui_draw2d_front.Flush(); 26 | } 27 | -------------------------------------------------------------------------------- /ext/native/util/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | hash/hash.cpp 3 | text/utf8.cpp 4 | text/wrap_text.cpp 5 | ) 6 | 7 | set(SRCS ${SRCS}) 8 | 9 | add_library(util STATIC ${SRCS}) 10 | 11 | if(UNIX) 12 | add_definitions(-fPIC) 13 | endif(UNIX) 14 | 15 | -------------------------------------------------------------------------------- /ext/native/util/const_map.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | template 4 | class InitConstMap 5 | { 6 | private: 7 | std::map m_map; 8 | public: 9 | InitConstMap(const T& key, const U& val) 10 | { 11 | m_map[key] = val; 12 | } 13 | 14 | InitConstMap& operator()(const T& key, const U& val) 15 | { 16 | m_map[key] = val; 17 | return *this; 18 | } 19 | 20 | operator std::map() 21 | { 22 | return m_map; 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /ext/native/util/hash/hash.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace hash { 6 | 7 | // Fairly decent function for hashing strings. 8 | uint32_t Adler32(const uint8_t *data, size_t len); 9 | 10 | } // namespace hash 11 | 12 | -------------------------------------------------------------------------------- /ext/sha1/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | #if(UNIX) 4 | add_definitions(-fPIC) 5 | add_definitions(-g) 6 | add_definitions(-O2) 7 | add_definitions(-Wall) 8 | #endif(UNIX) 9 | 10 | add_library(sha1 sha1.cpp) 11 | -------------------------------------------------------------------------------- /ext/snappy/AUTHORS: -------------------------------------------------------------------------------- 1 | opensource@google.com 2 | -------------------------------------------------------------------------------- /ext/snappy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(Snappy) 2 | 3 | if(SNAPPY_FOUND AND USE_SYSTEM_SNAPPY) 4 | add_library(system_snappy INTERFACE) 5 | add_library(Ext::Snappy ALIAS system_snappy) 6 | target_link_libraries(system_snappy INTERFACE Snappy::Snappy) 7 | else() 8 | add_library(snappy STATIC 9 | snappy-c.cpp 10 | snappy-c.h 11 | snappy-internal.h 12 | snappy-sinksource.cpp 13 | snappy-sinksource.h 14 | snappy-stubs-internal.cpp 15 | snappy-stubs-internal.h 16 | snappy-stubs-public.h 17 | snappy.cpp 18 | snappy.h 19 | ) 20 | target_include_directories(snappy PUBLIC .) 21 | 22 | if(NOT MSVC) 23 | target_compile_options(snappy PRIVATE "-O3") 24 | endif() 25 | 26 | add_library(Ext::Snappy ALIAS snappy) 27 | endif() 28 | -------------------------------------------------------------------------------- /ext/snappy/readme.ppsspp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ext/snappy/readme.ppsspp.txt -------------------------------------------------------------------------------- /ext/udis86/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(udis86 STATIC 2 | decode.c 3 | decode.h 4 | extern.h 5 | itab.c 6 | itab.h 7 | syn-att.c 8 | syn-intel.c 9 | syn.c 10 | syn.h 11 | types.h 12 | udint.h 13 | udis86.c 14 | udis86.h 15 | ) 16 | -------------------------------------------------------------------------------- /ext/vulkan/libvulkan.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ext/vulkan/libvulkan.so -------------------------------------------------------------------------------- /ext/vulkan/libvulkan.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ext/vulkan/libvulkan.so.1 -------------------------------------------------------------------------------- /ext/vulkan/libvulkan.so.1.0.30: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ext/vulkan/libvulkan.so.1.0.30 -------------------------------------------------------------------------------- /ext/xbrz/xbrz.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ext/xbrz/xbrz.cpp -------------------------------------------------------------------------------- /ext/zlib/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ext/zlib/ChangeLog -------------------------------------------------------------------------------- /ext/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 | -------------------------------------------------------------------------------- /ext/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 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu May 28 22:53:27 CEST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 7 | -------------------------------------------------------------------------------- /headless/headless.txt: -------------------------------------------------------------------------------- 1 | Plan: 2 | 3 | 4 | This is intended to be a port that does not have graphics, it just starts up the system without a display, prints all debug output (as configured) to the console using printf(), and exits when the emulated binary exits. 5 | 6 | Usage: 7 | 8 | ppsspp-headless test.elf [-m testdata.cso] [-j] [-l] 9 | -j : Use the JIT 10 | -m : Mount ISO on umd: 11 | -l : Print full log output, instead of just the "emulator printfs" 12 | 13 | This is primarily intended to run non-graphical unit tests of the emulation engine, such as 14 | those in https://github.com/hrydgard/pspautotests/ . -------------------------------------------------------------------------------- /icons/hicolor/128x128/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/128x128/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/16x16/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/16x16/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/24x24/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/24x24/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/256x256/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/256x256/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/32x32/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/32x32/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/48x48/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/48x48/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/512x512/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/512x512/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/64x64/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/64x64/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/96x96/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/hicolor/96x96/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/icon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/icon-114.png -------------------------------------------------------------------------------- /icons/notes.txt: -------------------------------------------------------------------------------- 1 | Needs to improve make install of ppsspp, does not delete hicolor folder until it. Debian package use it. -------------------------------------------------------------------------------- /icons/ppsspp.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/icons/ppsspp.icns -------------------------------------------------------------------------------- /ios/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // AppDelegate.h boilerplate 2 | 3 | #import 4 | 5 | @class ViewController; 6 | 7 | @interface AppDelegate : UIResponder 8 | 9 | @property (strong, nonatomic) UIWindow *window; 10 | @property (strong, nonatomic) UIScreen *screen; 11 | 12 | @property (strong, nonatomic) ViewController *viewController; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /ios/AudioEngine.h: -------------------------------------------------------------------------------- 1 | // 2 | // AudioEngine.h 3 | // PPSSPP 4 | // 5 | // Created by rock88 on 15/03/2013. 6 | // Copyright (c) 2013 Homebrew. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AudioEngine : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ios/CameraHelper.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @protocol CameraFrameDelegate 5 | @required 6 | - (void) PushCameraImageIOS:(long long)len buffer:(unsigned char*)data; 7 | @end 8 | 9 | @interface CameraHelper : NSObject 10 | 11 | @property (nonatomic, strong) id delegate; 12 | 13 | - (void) setCameraSize:(int)width h:(int)height; 14 | - (void) startVideo; 15 | - (void) stopVideo; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /ios/DisplayManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // DisplayManager.h 3 | // native 4 | // 5 | // Created by xieyi on 2019/6/9. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DisplayManager : NSObject 14 | 15 | - (void)setupDisplayListener; 16 | - (void)updateResolution:(UIScreen *)screen; 17 | 18 | @property (nonatomic, strong) UIScreen *mainScreen; 19 | 20 | @property (class, readonly, strong) DisplayManager *shared; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /ios/LocationHelper.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @protocol LocationHandlerDelegate 5 | @required 6 | - (void) SetGpsDataIOS:(CLLocation*)newLocation; 7 | @end 8 | 9 | @interface LocationHelper : NSObject { 10 | CLLocationManager *locationManager; 11 | } 12 | 13 | @property(nonatomic,strong) id delegate; 14 | 15 | - (void) startLocationUpdates; 16 | - (void) stopLocationUpdates; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /ios/PPSSPP-Prefix.pch: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #ifndef __IPHONE_4_0 4 | #warning "This project uses features only available in iOS SDK 4.0 and later." 5 | #endif 6 | 7 | #ifdef __OBJC__ 8 | #import 9 | #endif 10 | -------------------------------------------------------------------------------- /ios/PPSSPPUIApplication.h: -------------------------------------------------------------------------------- 1 | // 2 | // PPSSPPUIApplication.h 3 | // PPSSPP 4 | // 5 | // Created by xieyi on 2017/9/4. 6 | // 7 | // 8 | 9 | #ifndef PPSSPPUIApplication_h 10 | #define PPSSPPUIApplication_h 11 | 12 | #import 13 | 14 | @interface PPSSPPUIApplication : UIApplication 15 | { 16 | } 17 | 18 | @property (nonatomic, strong) UISelectionFeedbackGenerator *feedbackGenerator; 19 | 20 | @end 21 | 22 | 23 | #endif /* PPSSPPUIApplication_h */ 24 | -------------------------------------------------------------------------------- /ios/Settings.bundle/Root.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | StringsTable 6 | Root 7 | PreferenceSpecifiers 8 | 9 | 10 | Type 11 | PSToggleSwitchSpecifier 12 | Title 13 | enable_external_display 14 | Key 15 | enable_external_display 16 | DefaultValue 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /ios/Settings.bundle/en.lproj/Root.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/Settings.bundle/en.lproj/Root.strings -------------------------------------------------------------------------------- /ios/SmartKeyboardMap.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // SmartKeyboardMap.hpp 3 | // PPSSPP 4 | // 5 | // Created by xieyi on 2017/9/4. 6 | // 7 | // 8 | 9 | #ifndef SmartKeyboardMap_hpp 10 | #define SmartKeyboardMap_hpp 11 | 12 | int getSmartKeyboardMap(int keycode); 13 | 14 | #endif /* SmartKeyboardMap_hpp */ 15 | -------------------------------------------------------------------------------- /ios/ViewController.h: -------------------------------------------------------------------------------- 1 | // ViewController.h boilerplate 2 | 3 | #import 4 | #import 5 | #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 6 | #import 7 | #endif 8 | #import "iCade/iCadeReaderView.h" 9 | #import "CameraHelper.h" 10 | #import "LocationHelper.h" 11 | 12 | @interface ViewController : GLKViewController 14 | 15 | - (void)shareText:(NSString *)text; 16 | - (void)shutdown; 17 | 18 | @end 19 | 20 | extern __unsafe_unretained ViewController* sharedViewController; 21 | void setCameraSize(int width, int height); 22 | void startVideo(); 23 | void stopVideo(); 24 | void startLocation(); 25 | void stopLocation(); 26 | -------------------------------------------------------------------------------- /ios/assets/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Default-568h@2x.png -------------------------------------------------------------------------------- /ios/assets/Default-568h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Default-568h@3x.png -------------------------------------------------------------------------------- /ios/assets/Icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Icon-72.png -------------------------------------------------------------------------------- /ios/assets/Icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Icon-72@2x.png -------------------------------------------------------------------------------- /ios/assets/Icon-72@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Icon-72@3x.png -------------------------------------------------------------------------------- /ios/assets/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Icon.png -------------------------------------------------------------------------------- /ios/assets/Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Icon@2x.png -------------------------------------------------------------------------------- /ios/assets/Icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/ios/assets/Icon@3x.png -------------------------------------------------------------------------------- /ios/macbundle.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PPSSPP="${1}" 4 | PPSSPPiOS="${PPSSPP}/PPSSPP" 5 | 6 | if [ ! -f "${PPSSPPiOS}" ]; then 7 | echo "No such file: ${PPSSPPiOS}!" 8 | exit 0 9 | fi 10 | 11 | GIT_VERSION_LINE=$(grep "PPSSPP_GIT_VERSION = " "$(dirname "${0}")/../git-version.cpp") 12 | SHORT_VERSION_MATCH='.*"v([0-9\.]+(-[0-9]+)?).*";' 13 | LONG_VERSION_MATCH='.*"v(.*)";' 14 | if [[ "${GIT_VERSION_LINE}" =~ ^${SHORT_VERSION_MATCH}$ ]]; then 15 | plutil -replace CFBundleShortVersionString -string $(echo ${GIT_VERSION_LINE} | perl -pe "s/${SHORT_VERSION_MATCH}/\$1/g") ${PPSSPP}/Info.plist 16 | plutil -replace CFBundleVersion -string $(echo ${GIT_VERSION_LINE} | perl -pe "s/${LONG_VERSION_MATCH}/\$1/g") ${PPSSPP}/Info.plist 17 | else 18 | plutil -replace CFBundleShortVersionString -string "" ${PPSSPP}/Info.plist 19 | plutil -replace CFBundleVersion -string "" ${PPSSPP}/Info.plist 20 | fi 21 | -------------------------------------------------------------------------------- /libretro/.gitignore: -------------------------------------------------------------------------------- 1 | *.bc 2 | *.so 3 | *.dll 4 | *.dylib 5 | *.manifest 6 | -------------------------------------------------------------------------------- /libretro/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | set(LIBRETRO_SRCS 3 | libretro.cpp 4 | LibretroGraphicsContext.cpp 5 | LibretroGLContext.cpp 6 | LibretroGLCoreContext.cpp 7 | LibretroVulkanContext.cpp 8 | libretro_vulkan.cpp) 9 | 10 | if(WIN32) 11 | set(LIBRETRO_SRCS ${LIBRETRO_SRCS} 12 | LibretroD3D11Context.cpp) 13 | endif() 14 | 15 | include_directories(libretro) 16 | 17 | add_library(ppsspp_libretro SHARED ${LIBRETRO_SRCS}) 18 | set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}") 19 | set_target_properties(ppsspp_libretro PROPERTIES PREFIX "") 20 | if(ANDROID) 21 | set_target_properties(ppsspp_libretro PROPERTIES SUFFIX "_android.so") 22 | endif() 23 | 24 | if(NOT MSVC) 25 | target_link_libraries(ppsspp_libretro "-Wl,-Bsymbolic") 26 | endif() 27 | target_link_libraries(ppsspp_libretro ${LinkCommon}) 28 | -------------------------------------------------------------------------------- /libretro/LibretroD3D11Context.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define HAVE_D3D11 4 | #include "libretro/libretro_d3d.h" 5 | #include "libretro/LibretroGraphicsContext.h" 6 | 7 | class LibretroD3D11Context : public LibretroHWRenderContext { 8 | public: 9 | LibretroD3D11Context() : LibretroHWRenderContext(RETRO_HW_CONTEXT_DIRECT3D, 11) {} 10 | bool Init() override; 11 | 12 | void SwapBuffers() override; 13 | void GotBackbuffer() override; 14 | void LostBackbuffer() override; 15 | void CreateDrawContext() override; 16 | void DestroyDrawContext() override; 17 | 18 | GPUCore GetGPUCore() override { return GPUCORE_DIRECTX11; } 19 | const char *Ident() override { return "DirectX 11"; } 20 | 21 | private: 22 | retro_hw_render_interface_d3d11 *d3d11_ = nullptr; 23 | ID3D11Texture2D *texture_ = nullptr; 24 | ID3D11RenderTargetView *RTView_ = nullptr; 25 | ID3D11ShaderResourceView *SRView_ = nullptr; 26 | DXGI_FORMAT format_ = DXGI_FORMAT_R8G8B8A8_UNORM; 27 | }; 28 | -------------------------------------------------------------------------------- /libretro/LibretroVulkanContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "libretro/LibretroGraphicsContext.h" 4 | 5 | class LibretroVulkanContext : public LibretroHWRenderContext { 6 | public: 7 | LibretroVulkanContext(); 8 | ~LibretroVulkanContext() override {} 9 | bool Init() override; 10 | void Shutdown() override; 11 | void SwapBuffers() override; 12 | 13 | void *GetAPIContext() override; 14 | void CreateDrawContext() override; 15 | GPUCore GetGPUCore() override { return GPUCORE_VULKAN; } 16 | const char *Ident() override { return "Vulkan"; } 17 | }; 18 | -------------------------------------------------------------------------------- /libretro/jni/Application.mk: -------------------------------------------------------------------------------- 1 | NDK_TOOLCHAIN_VERSION ?= 4.8 2 | APP_ABI := armeabi-v7a,arm64-v8a,x86 3 | APP_STL := c++_static 4 | APP_GNUSTL_CPP_FEATURES := exceptions 5 | APP_PLATFORM := android-9 6 | -------------------------------------------------------------------------------- /libretro/libretro.def: -------------------------------------------------------------------------------- 1 | LIBRARY "libretro" 2 | EXPORTS 3 | retro_set_environment 4 | retro_set_video_refresh 5 | retro_set_audio_sample 6 | retro_set_audio_sample_batch 7 | retro_set_input_poll 8 | retro_set_input_state 9 | retro_init 10 | retro_deinit 11 | retro_api_version 12 | retro_get_system_info 13 | retro_get_system_av_info 14 | retro_set_controller_port_device 15 | retro_reset 16 | retro_run 17 | retro_serialize_size 18 | retro_serialize 19 | retro_unserialize 20 | retro_cheat_reset 21 | retro_cheat_set 22 | retro_load_game 23 | retro_load_game_special 24 | retro_unload_game 25 | retro_get_region 26 | retro_get_memory_data 27 | retro_get_memory_size 28 | -------------------------------------------------------------------------------- /libretro/link.T: -------------------------------------------------------------------------------- 1 | { 2 | global: retro_*; 3 | local: *; 4 | }; 5 | 6 | -------------------------------------------------------------------------------- /macshaders.sh: -------------------------------------------------------------------------------- 1 | # AWFUL way to make the shaders macosx compatible! 2 | 3 | cd assets/shaders 4 | for i in *.vs *.fs 5 | do 6 | sed -i '' s/lowp\ //g $i 7 | sed -i '' s/highp\ //g $i 8 | sed -i '' s/mediump\ //g $i 9 | sed -i '' s/#version\ 140//g $i 10 | done 11 | cd ../.. 12 | -------------------------------------------------------------------------------- /make-font-textfiles.sh: -------------------------------------------------------------------------------- 1 | cat assets/lang/zh_CN.ini assets/lang/zh_TW.ini assets/langregion.ini > chinese.txt 2 | cat assets/lang/ko_KR.ini assets/langregion.ini > korean.txt 3 | 4 | -------------------------------------------------------------------------------- /notinstalled.txt: -------------------------------------------------------------------------------- 1 | This gets renamed to "installed.txt" in the installer. 2 | Tells PPSSPP to consider itself installed and to not write data files into its own directory. -------------------------------------------------------------------------------- /ppge_atlasscript.txt: -------------------------------------------------------------------------------- 1 | 2048 2 | font UBUNTU24 C:/Windows/Fonts/KozGoPro-Medium.otf UWkhcsGR 24 3 | font UBUNTU24 C:/Windows/Fonts/ARIALUNI.ttf UWEhkcRGHKVTe 24 0 4 | image I_CROSS source_assets/image/cross.png copy 5 | image I_CIRCLE source_assets/image/circle.png copy 6 | image I_SQUARE source_assets/image/square.png copy 7 | image I_TRIANGLE source_assets/image/triangle.png copy 8 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':android' 2 | -------------------------------------------------------------------------------- /source_assets/image/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/1.png -------------------------------------------------------------------------------- /source_assets/image/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/2.png -------------------------------------------------------------------------------- /source_assets/image/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/3.png -------------------------------------------------------------------------------- /source_assets/image/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/4.png -------------------------------------------------------------------------------- /source_assets/image/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/5.png -------------------------------------------------------------------------------- /source_assets/image/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/6.png -------------------------------------------------------------------------------- /source_assets/image/L.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/L.png -------------------------------------------------------------------------------- /source_assets/image/R.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/R.png -------------------------------------------------------------------------------- /source_assets/image/active_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/active_item.png -------------------------------------------------------------------------------- /source_assets/image/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/arrow.png -------------------------------------------------------------------------------- /source_assets/image/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/background.png -------------------------------------------------------------------------------- /source_assets/image/background2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/background2.png -------------------------------------------------------------------------------- /source_assets/image/background_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/background_gold.png -------------------------------------------------------------------------------- /source_assets/image/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/button.png -------------------------------------------------------------------------------- /source_assets/image/button_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/button_selected.png -------------------------------------------------------------------------------- /source_assets/image/checkedbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/checkedbox.png -------------------------------------------------------------------------------- /source_assets/image/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/circle.png -------------------------------------------------------------------------------- /source_assets/image/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/cross.png -------------------------------------------------------------------------------- /source_assets/image/dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/dir.png -------------------------------------------------------------------------------- /source_assets/image/dir_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/dir_line.png -------------------------------------------------------------------------------- /source_assets/image/dropshadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/dropshadow.png -------------------------------------------------------------------------------- /source_assets/image/exe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/exe.png -------------------------------------------------------------------------------- /source_assets/image/flag_as.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/flag_as.png -------------------------------------------------------------------------------- /source_assets/image/flag_eu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/flag_eu.png -------------------------------------------------------------------------------- /source_assets/image/flag_hk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/flag_hk.png -------------------------------------------------------------------------------- /source_assets/image/flag_jp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/flag_jp.png -------------------------------------------------------------------------------- /source_assets/image/flag_ko.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/flag_ko.png -------------------------------------------------------------------------------- /source_assets/image/flag_us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/flag_us.png -------------------------------------------------------------------------------- /source_assets/image/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/folder.png -------------------------------------------------------------------------------- /source_assets/image/folder_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/folder_line.png -------------------------------------------------------------------------------- /source_assets/image/gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/gear.png -------------------------------------------------------------------------------- /source_assets/image/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/grid.png -------------------------------------------------------------------------------- /source_assets/image/icon_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/icon_gold.png -------------------------------------------------------------------------------- /source_assets/image/icon_gold_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/icon_gold_72.png -------------------------------------------------------------------------------- /source_assets/image/icon_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/icon_regular.png -------------------------------------------------------------------------------- /source_assets/image/icon_regular_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/icon_regular_72.png -------------------------------------------------------------------------------- /source_assets/image/inactive_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/inactive_item.png -------------------------------------------------------------------------------- /source_assets/image/lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/lines.png -------------------------------------------------------------------------------- /source_assets/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/logo.png -------------------------------------------------------------------------------- /source_assets/image/psp_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/psp_display.png -------------------------------------------------------------------------------- /source_assets/image/rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/rect.png -------------------------------------------------------------------------------- /source_assets/image/rect_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/rect_line.png -------------------------------------------------------------------------------- /source_assets/image/round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/round.png -------------------------------------------------------------------------------- /source_assets/image/round_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/round_line.png -------------------------------------------------------------------------------- /source_assets/image/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/select.png -------------------------------------------------------------------------------- /source_assets/image/shoulder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/shoulder.png -------------------------------------------------------------------------------- /source_assets/image/shoulder_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/shoulder_line.png -------------------------------------------------------------------------------- /source_assets/image/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/square.png -------------------------------------------------------------------------------- /source_assets/image/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/start.png -------------------------------------------------------------------------------- /source_assets/image/stick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/stick.png -------------------------------------------------------------------------------- /source_assets/image/stick_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/stick_bg.png -------------------------------------------------------------------------------- /source_assets/image/stick_bg_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/stick_bg_line.png -------------------------------------------------------------------------------- /source_assets/image/stick_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/stick_line.png -------------------------------------------------------------------------------- /source_assets/image/triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/triangle.png -------------------------------------------------------------------------------- /source_assets/image/umd256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/umd256.png -------------------------------------------------------------------------------- /source_assets/image/umd48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/umd48.png -------------------------------------------------------------------------------- /source_assets/image/up_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/up_line.png -------------------------------------------------------------------------------- /source_assets/image/updir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/updir.png -------------------------------------------------------------------------------- /source_assets/image/zip.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/image/zip.pdn -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_A.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_DPAD.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_DOWN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_DPAD_DOWN.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_LEFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_DPAD_LEFT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_RIGHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_DPAD_RIGHT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_UP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_DPAD_UP.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_L1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_L1.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_L2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_L2.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_L3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_L3.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_LS.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_DOWN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_LS_DOWN.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_LEFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_LS_LEFT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_RIGHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_LS_RIGHT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_UP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_LS_UP.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_O.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_O.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_R1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_R1.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_R2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_R2.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_R3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_R3.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_RS.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_DOWN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_RS_DOWN.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_LEFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_RS_LEFT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_RIGHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_RS_RIGHT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_UP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_RS_UP.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_SYSTEM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_SYSTEM.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_TOUCHPAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_TOUCHPAD.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_U.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_U.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_Y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aliaspider/ppsspp/44ac4a8ecaefe021ce90b3afc6e47e7b4f0c6378/source_assets/ouya/OUYA_Y.png -------------------------------------------------------------------------------- /tesselationhwON-mesa3drun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "We need force Opengl 3.3 Compatibility context for run HW tesselation in mesa3d open source" 3 | MESA_GL_VERSION_OVERRIDE=3.3COMPAT 4 | export MESA_GL_VERSION_OVERRIDE 5 | ./PPSSPPSDL 6 | -------------------------------------------------------------------------------- /unittest/JitHarness.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | bool TestJit(); 21 | -------------------------------------------------------------------------------- /unittest/TestVertexJit.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015- PPSSPP Project. 2 | 3 | // This program is free software: you can redistribute it and/or modify 4 | // it under the terms of the GNU General Public License as published by 5 | // the Free Software Foundation, version 2.0 or later versions. 6 | 7 | // This program is distributed in the hope that it will be useful, 8 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 | // GNU General Public License 2.0 for more details. 11 | 12 | // A copy of the GPL 2.0 should have been included with the program. 13 | // If not, see http://www.gnu.org/licenses/ 14 | 15 | // Official git repository and contact information can be found at 16 | // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. 17 | 18 | #pragma once 19 | 20 | bool TestVertexJit(); 21 | --------------------------------------------------------------------------------