├── .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 ├── Atomic_GCC.h ├── Atomic_Win32.h ├── Atomics.h ├── BitSet.h ├── CPUDetect.cpp ├── CPUDetect.h ├── ChunkFile.cpp ├── ChunkFile.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 ├── FakeCPUDetect.cpp ├── FakeEmitter.h ├── FileUtil.cpp ├── FileUtil.h ├── FixedSizeQueue.h ├── GL │ ├── GLInterface │ │ ├── EGL.cpp │ │ ├── EGL.h │ │ ├── EGLAndroid.cpp │ │ ├── EGLAndroid.h │ │ └── GLInterface.cpp │ └── GLInterfaceBase.h ├── GraphicsContext.h ├── Hashmaps.h ├── KeyMap.cpp ├── KeyMap.h ├── Log.h ├── LogManager.cpp ├── LogManager.h ├── MathUtil.h ├── MemArena.h ├── MemArenaAndroid.cpp ├── MemArenaDarwin.cpp ├── MemArenaPosix.cpp ├── MemArenaWin32.cpp ├── MemoryUtil.cpp ├── MemoryUtil.h ├── MipsCPUDetect.cpp ├── MipsEmitter.cpp ├── MipsEmitter.h ├── Misc.cpp ├── MsgHandler.cpp ├── MsgHandler.h ├── OSVersion.cpp ├── OSVersion.h ├── StringUtils.cpp ├── StringUtils.h ├── Swap.h ├── ThreadPools.cpp ├── ThreadPools.h ├── ThreadSafeList.h ├── Thunk.cpp ├── Thunk.h ├── Timer.cpp ├── Timer.h ├── Vulkan │ ├── SPIRVDisasm.cpp │ ├── SPIRVDisasm.h │ ├── VulkanContext.cpp │ ├── VulkanContext.h │ ├── VulkanDebug.cpp │ ├── VulkanDebug.h │ ├── VulkanImage.cpp │ ├── VulkanImage.h │ ├── VulkanLoader.cpp │ ├── VulkanLoader.h │ ├── VulkanMemory.cpp │ └── VulkanMemory.h ├── XboxCPUDetect.cpp ├── stdafx.cpp ├── stdafx.h ├── x64Analyzer.cpp ├── x64Analyzer.h ├── x64Emitter.cpp └── x64Emitter.h ├── Core ├── AVIDump.cpp ├── AVIDump.h ├── Compatibility.cpp ├── Compatibility.h ├── Config.cpp ├── Config.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 ├── 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 │ ├── KernelWaitHelpers.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 │ ├── 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 │ ├── sceUsbCam.cpp │ ├── sceUsbCam.h │ ├── sceUsbGps.cpp │ ├── sceUsbGps.h │ ├── sceUtility.cpp │ ├── sceUtility.h │ ├── sceVaudio.cpp │ └── sceVaudio.h ├── HW │ ├── AsyncIOManager.cpp │ ├── AsyncIOManager.h │ ├── BufferQueue.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 ├── 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 ├── MemMap.cpp ├── MemMap.h ├── MemMapFunctions.cpp ├── MemMapHelpers.h ├── Opcode.h ├── PSPLoaders.cpp ├── PSPLoaders.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 │ ├── ppge_atlas.cpp │ └── ppge_atlas.h ├── WaveFile.cpp ├── WaveFile.h └── x360_compat.h ├── GPU ├── Common │ ├── DepalettizeShaderCommon.cpp │ ├── DepalettizeShaderCommon.h │ ├── DrawEngineCommon.cpp │ ├── DrawEngineCommon.h │ ├── FramebufferCommon.cpp │ ├── FramebufferCommon.h │ ├── GPUDebugInterface.cpp │ ├── GPUDebugInterface.h │ ├── GPUStateUtils.cpp │ ├── GPUStateUtils.h │ ├── IndexGenerator.cpp │ ├── IndexGenerator.h │ ├── PostShader.cpp │ ├── PostShader.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 │ ├── Record.cpp │ ├── Record.h │ ├── Stepping.cpp │ └── Stepping.h ├── Directx9 │ ├── DepalettizeShaderDX9.cpp │ ├── DepalettizeShaderDX9.h │ ├── DrawEngineDX9.cpp │ ├── DrawEngineDX9.h │ ├── FramebufferDX9.cpp │ ├── FramebufferDX9.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 │ ├── 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 ├── 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 │ ├── 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 │ ├── FramebufferVulkan.cpp │ ├── FramebufferVulkan.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 ├── Debugger │ ├── ctrldisasmview.cpp │ ├── ctrldisasmview.h │ ├── ctrlmemview.cpp │ ├── ctrlmemview.h │ ├── ctrlregisterlist.cpp │ ├── ctrlregisterlist.h │ ├── ctrlvfpuview.cpp │ ├── ctrlvfpuview.h │ ├── debugger_disasm.cpp │ ├── debugger_disasm.h │ ├── debugger_disasm.ui │ ├── debugger_displaylist.cpp │ ├── debugger_displaylist.h │ ├── debugger_displaylist.ui │ ├── debugger_memory.cpp │ ├── debugger_memory.h │ ├── debugger_memory.ui │ ├── debugger_memorytex.cpp │ ├── debugger_memorytex.h │ ├── debugger_memorytex.ui │ ├── debugger_vfpu.cpp │ ├── debugger_vfpu.h │ └── debugger_vfpu.ui ├── PPSSPP.desktop ├── QtHost.cpp ├── QtHost.h ├── QtMain.cpp ├── QtMain.h ├── desktop_assets.qrc ├── 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 ├── mainwindow.cpp ├── mainwindow.h └── resources │ ├── breakpoint.ico │ └── breakpointDisable.ico ├── README.md ├── SDL ├── .gitignore ├── README.TXT ├── SDLGLGraphicsContext.cpp ├── SDLGLGraphicsContext.h ├── SDLJoystick.cpp ├── SDLJoystick.h ├── SDLMain.cpp ├── SDLMain.h ├── SDLMain.mm ├── SDLVulkanGraphicsContext.cpp ├── SDLVulkanGraphicsContext.h └── buildassets.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 ├── ComboKeyMappingScreen.cpp ├── ComboKeyMappingScreen.h ├── ControlMappingScreen.cpp ├── ControlMappingScreen.h ├── CwCheatScreen.cpp ├── CwCheatScreen.h ├── DevScreens.cpp ├── DevScreens.h ├── DisplayLayoutEditor.cpp ├── DisplayLayoutEditor.h ├── DisplayLayoutScreen.cpp ├── DisplayLayoutScreen.h ├── EmuScreen.cpp ├── EmuScreen.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 ├── ui_atlas.cpp └── ui_atlas.h ├── UWP ├── .gitignore ├── App.cpp ├── App.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 │ └── 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 │ ├── 7z.png │ ├── compat.ini │ ├── gamecontrollerdb.txt │ ├── knownfuncs.ini │ ├── langregion.ini │ ├── ppge_atlas.zim │ ├── rargray.png │ ├── ui_atlas.zim │ ├── ui_atlas_lowmem.zim │ ├── unknown.png │ └── zip.png ├── 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 ├── 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 ├── pch.cpp ├── pch.h └── zlib_UWP │ ├── targetver.h │ ├── zlib_UWP.vcxproj │ └── zlib_UWP.vcxproj.filters ├── Windows ├── .gitignore ├── 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 ├── KeyboardDevice.cpp ├── KeyboardDevice.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 ├── 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 ├── 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 ├── .classpath ├── .cproject ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.cdt.core.prefs │ └── org.eclipse.jdt.core.prefs ├── 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.zim │ ├── rargray.png │ ├── 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 │ ├── 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 │ ├── TestRunner.cpp │ ├── TestRunner.h │ ├── app-android.cpp │ ├── app-android.h │ ├── native-audio-so.cpp │ ├── native-audio-so.h │ ├── native_audio.cpp │ └── native_audio.h ├── libs │ └── 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 │ │ └── tv_banner.png │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ ├── drawable │ │ └── ic_banner.png │ └── values │ │ ├── analytics.xml │ │ └── strings.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 │ │ └── 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.zim ├── rargray.png ├── shaders │ ├── 4xhqglsl.fsh │ ├── 4xhqglsl.vsh │ ├── 5xBR-lv2.fsh │ ├── 5xBR.fsh │ ├── 5xBR.vsh │ ├── aacolor.fsh │ ├── aacolor.vsh │ ├── bloom.fsh │ ├── cartoon.fsh │ ├── cartoon.vsh │ ├── crt.fsh │ ├── defaultshaders.ini │ ├── fxaa.fsh │ ├── fxaa.vsh │ ├── grayscale.fsh │ ├── inversecolors.fsh │ ├── natural.fsh │ ├── natural.vsh │ ├── scanlines.fsh │ ├── sharpen.fsh │ ├── upscale_spline36.fsh │ ├── upscale_spline36.vsh │ ├── videoAA.fsh │ └── vignette.fsh ├── ui_atlas.zim ├── ui_atlas_lowmem.zim ├── unknown.png └── zip.png ├── atlasscript.txt ├── atlasscript_lowmem.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 │ ├── raspberry.armv6.cmake │ └── raspberry.armv7.cmake ├── com.bda.controller ├── build.gradle └── com.bda.controller.jar ├── copyrelease.sh ├── ext ├── .gitignore ├── CMakeLists.txt ├── SPIRV-Cross-build │ └── CMakeLists.txt ├── SPIRV-Cross.vcxproj ├── SPIRV-Cross.vcxproj.filters ├── cmake │ └── armips │ │ └── CMakeLists.txt ├── disarm.cpp ├── disarm.h ├── glew │ ├── CMakeLists.txt │ ├── GL │ │ ├── glew.h │ │ ├── glxew.h │ │ └── wglew.h │ ├── glew.c │ ├── glew_libretro.c │ ├── glewinfo.c │ └── visualinfo.c ├── glslang-build │ └── Android.mk ├── glslang.vcxproj ├── glslang.vcxproj.filters ├── 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 ├── native │ ├── .gitignore │ ├── Android.mk │ ├── LICENSE.TXT │ ├── base │ │ ├── CMakeLists.txt │ │ ├── NKCodeFromQt.h │ │ ├── NKCodeFromSDL.h │ │ ├── NativeApp.h │ │ ├── arch.h │ │ ├── backtrace.cpp │ │ ├── backtrace.h │ │ ├── basictypes.h │ │ ├── buffer.cpp │ │ ├── buffer.h │ │ ├── colorutil.cpp │ │ ├── colorutil.h │ │ ├── display.cpp │ │ ├── display.h │ │ ├── linked_ptr.h │ │ ├── logging.cpp │ │ ├── logging.h │ │ ├── stringutil.cpp │ │ ├── stringutil.h │ │ ├── timeutil.cpp │ │ └── timeutil.h │ ├── data │ │ ├── compression.cpp │ │ ├── compression.h │ │ └── listable.h │ ├── ext │ │ ├── cityhash │ │ │ ├── COPYING │ │ │ ├── README │ │ │ ├── city.cpp │ │ │ ├── city.h │ │ │ └── citycrc.h │ │ ├── jpge │ │ │ ├── jpgd.cpp │ │ │ ├── jpgd.h │ │ │ ├── jpge.cpp │ │ │ ├── jpge.h │ │ │ └── publicdomain.txt │ │ ├── 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 │ │ ├── rg_etc1 │ │ │ ├── CMakeLists.txt │ │ │ ├── rg_etc1.cpp │ │ │ └── rg_etc1.h │ │ ├── sha1 │ │ │ ├── CMakeLists.txt │ │ │ ├── sha1.cpp │ │ │ └── sha1.h │ │ └── vjson │ │ │ ├── CMakeLists.txt │ │ │ ├── block_allocator.cpp │ │ │ ├── block_allocator.h │ │ │ ├── json.cpp │ │ │ ├── json.h │ │ │ └── main.cpp │ ├── 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_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 │ ├── input │ │ ├── CMakeLists.txt │ │ ├── gesture_detector.cpp │ │ ├── gesture_detector.h │ │ ├── input_state.cpp │ │ ├── input_state.h │ │ └── keycodes.h │ ├── json │ │ ├── CMakeLists.txt │ │ ├── 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 │ │ │ ├── plane.cpp │ │ │ ├── plane.h │ │ │ ├── quat.cpp │ │ │ ├── quat.h │ │ │ ├── ray.h │ │ │ ├── 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 │ ├── 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 │ │ ├── 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 │ ├── thread │ │ ├── executor.cpp │ │ ├── executor.h │ │ ├── prioritizedworkqueue.cpp │ │ ├── prioritizedworkqueue.h │ │ ├── threadpool.cpp │ │ ├── threadpool.h │ │ ├── threadutil.cpp │ │ └── threadutil.h │ ├── tools │ │ ├── .gitignore │ │ ├── .project │ │ ├── CMakeLists.txt │ │ ├── README.txt │ │ ├── atlastool.cpp │ │ ├── atlastool │ │ │ └── atlastool.vcxproj │ │ ├── audiotool.cpp │ │ ├── b.sh │ │ ├── kanjifilter.h │ │ ├── tools.sln │ │ ├── zimtool.cpp │ │ └── zimtool │ │ │ ├── zimtool.vcxproj │ │ │ └── zimtool.vcxproj.filters │ ├── ui │ │ ├── CMakeLists.txt │ │ ├── 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 ├── sfmt19937 │ ├── SFMT-common.h │ ├── SFMT-params.h │ ├── SFMT-params19937.h │ ├── SFMT.c │ └── SFMT.h ├── snappy │ ├── AUTHORS │ ├── CMakeLists.txt │ ├── COPYING │ ├── readme.ppsspp.txt │ ├── snappy-c.cpp │ ├── snappy-c.h │ ├── snappy-internal.h │ ├── snappy-sinksource.h │ ├── 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 │ ├── spirv.hpp │ ├── spirv.hpp11 │ ├── spirv.json │ ├── spirv.lua │ ├── spirv.py │ ├── vk_icd.h │ ├── vk_layer.h │ ├── vk_layer_dispatch_table.h │ ├── vk_platform.h │ ├── vk_sdk_platform.h │ ├── vulkan.h │ ├── vulkan_android.h │ ├── vulkan_core.h │ ├── vulkan_ios.h │ ├── vulkan_macos.h │ ├── vulkan_mir.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 ├── Launch Screen.storyboard ├── PPSSPP-Info.plist ├── PPSSPP-Prefix.pch ├── PPSSPPUIApplication.h ├── PPSSPPUIApplication.mm ├── README.md ├── SmartKeyboardMap.cpp ├── SmartKeyboardMap.hpp ├── 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 └── main.mm ├── korean.txt ├── libretro ├── .gitignore ├── CMakeLists.txt ├── LibretroGLContext.cpp ├── LibretroGLContext.h ├── LibretroGraphicsContext.cpp ├── LibretroGraphicsContext.h ├── LibretroVulkanContext.cpp ├── LibretroVulkanContext.h ├── Makefile ├── Makefile.common ├── jni │ ├── Android.mk │ └── Application.mk ├── libretro.cpp ├── libretro.def ├── libretro.h ├── libretro_vulkan.cpp ├── libretro_vulkan.h └── link.T ├── 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 │ ├── 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-16le 31 | -------------------------------------------------------------------------------- /.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 | What happens? 2 | 3 | 4 | 5 | What *should* happen? 6 | 7 | 8 | 9 | 10 | What hardware and operating system are you running PPSSPP on? GPU might matter if it's a graphical issue. 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "pspautotests"] 2 | path = pspautotests 3 | url = https://github.com/hrydgard/pspautotests.git 4 | [submodule "lang"] 5 | path = assets/lang 6 | url = https://github.com/hrydgard/ppsspp-lang.git 7 | [submodule "ffmpeg"] 8 | path = ffmpeg 9 | url = https://github.com/hrydgard/ppsspp-ffmpeg.git 10 | [submodule "dx9sdk"] 11 | path = dx9sdk 12 | url = https://github.com/hrydgard/minidx9.git 13 | [submodule "ext/armips"] 14 | path = ext/armips 15 | url = https://github.com/Kingcom/armips 16 | [submodule "ext/glslang"] 17 | path = ext/glslang 18 | url = https://github.com/hrydgard/glslang.git 19 | [submodule "ext/SPIRV-Cross"] 20 | path = ext/SPIRV-Cross 21 | url = https://github.com/KhronosGroup/SPIRV-Cross.git 22 | -------------------------------------------------------------------------------- /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/Atomics.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Dolphin 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 SVN repository and contact information can be found at 16 | // http://code.google.com/p/dolphin-emu/ 17 | 18 | #pragma once 19 | 20 | #ifdef _WIN32 21 | 22 | #include "Atomic_Win32.h" 23 | 24 | #else 25 | 26 | // GCC-compatible compiler assumed! 27 | #include "Atomic_GCC.h" 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /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 -------------------------------------------------------------------------------- /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/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 DoesVersionMatchWindows(uint32_t major, uint32_t minor, uint32_t spMajor, uint32_t spMinor, bool acceptGreater); 9 | std::string GetWindowsVersion(); 10 | std::string GetWindowsSystemArchitecture(); 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /Common/ThreadPools.cpp: -------------------------------------------------------------------------------- 1 | #include "ThreadPools.h" 2 | 3 | #include "../Core/Config.h" 4 | 5 | std::shared_ptr GlobalThreadPool::pool; 6 | bool GlobalThreadPool::initialized = false; 7 | 8 | void GlobalThreadPool::Loop(const std::function& loop, int lower, int upper) { 9 | Inititialize(); 10 | pool->ParallelLoop(loop, lower, upper); 11 | } 12 | 13 | void GlobalThreadPool::Inititialize() { 14 | if(!initialized) { 15 | pool = std::make_shared(g_Config.iNumWorkerThreads); 16 | initialized = true; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Common/ThreadPools.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "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::shared_ptr pool; 13 | static bool initialized; 14 | static void Inititialize(); 15 | }; 16 | -------------------------------------------------------------------------------- /Common/Vulkan/SPIRVDisasm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | // Mostly just a toy to understand SPIR-V better. Not an accurate SPIR-V disassembler, 8 | // and the result will not reassemble. 9 | 10 | bool DisassembleSPIRV(std::vector spirv, std::string *output); -------------------------------------------------------------------------------- /Common/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // Common.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #ifdef _WIN32 6 | 7 | #include "stdafx.h" 8 | 9 | #endif 10 | // TODO: reference any additional headers you need in STDAFX.H 11 | // and not in this file 12 | -------------------------------------------------------------------------------- /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/sceImpose.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_sceImpose(); 23 | void __ImposeInit(); 24 | void __ImposeDoState(PointerWrap &p); 25 | -------------------------------------------------------------------------------- /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/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/sceNp.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_sceNp(); 21 | void Register_sceNpCommerce2(); 22 | void Register_sceNpService(); 23 | void Register_sceNpAuth(); -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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/Util/ppge_atlas.h: -------------------------------------------------------------------------------- 1 | // Header generated by atlastool from ppge_atlasscript.txt (hrydgard@gmail.com) 2 | 3 | #pragma once 4 | #include "gfx/texture_atlas.h" 5 | 6 | // FONTS_ppge 7 | #define UBUNTU24 0 8 | 9 | 10 | // IMAGES_ppge 11 | #define I_CROSS 0 12 | #define I_CIRCLE 1 13 | #define I_SQUARE 2 14 | #define I_TRIANGLE 3 15 | 16 | 17 | extern const Atlas ppge_atlas; 18 | extern const AtlasImage ppge_images[4]; 19 | -------------------------------------------------------------------------------- /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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/FragmentShaderGeneratorGLES.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 | struct FShaderID; 21 | 22 | bool GenerateFragmentShader(const FShaderID &id, char *buffer, uint64_t *uniformMask); 23 | -------------------------------------------------------------------------------- /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/Software/Lighting.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 "TransformUnit.h" 21 | 22 | namespace Lighting { 23 | 24 | void Process(VertexData& vertex, bool hasColor); 25 | 26 | } -------------------------------------------------------------------------------- /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/Debugger/ctrlvfpuview.h: -------------------------------------------------------------------------------- 1 | #ifndef CTRLVFPUVIEW_H 2 | #define CTRLVFPUVIEW_H 3 | 4 | #include 5 | #include "Core/Debugger/DebugInterface.h" 6 | 7 | class Debugger_Vfpu; 8 | class CtrlVfpuView : public QWidget 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit CtrlVfpuView(QWidget *parent = 0); 13 | 14 | void setParentWindow(Debugger_Vfpu* win) 15 | { 16 | parentWindow = win; 17 | } 18 | 19 | void setCPU(DebugInterface *deb) 20 | { 21 | cpu = deb; 22 | } 23 | DebugInterface *getCPU() 24 | { 25 | return cpu; 26 | } 27 | void setMode(int newMode); 28 | void redraw(); 29 | protected: 30 | void paintEvent(QPaintEvent *); 31 | 32 | private: 33 | DebugInterface *cpu; 34 | Debugger_Vfpu* parentWindow; 35 | int mode; 36 | }; 37 | 38 | #endif // CTRLVFPUVIEW_H 39 | -------------------------------------------------------------------------------- /Qt/Debugger/debugger_memorytex.h: -------------------------------------------------------------------------------- 1 | #ifndef DEBUGGER_MEMORYTEX_H 2 | #define DEBUGGER_MEMORYTEX_H 3 | 4 | #include 5 | #include "GPU/GPUState.h" 6 | 7 | namespace Ui { 8 | class Debugger_MemoryTex; 9 | } 10 | 11 | class Debugger_MemoryTex : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit Debugger_MemoryTex(QWidget *parent = 0); 17 | ~Debugger_MemoryTex(); 18 | 19 | void ShowTex(const GPUgstate& state); 20 | private slots: 21 | void on_readBtn_clicked(); 22 | 23 | private: 24 | Ui::Debugger_MemoryTex *ui; 25 | }; 26 | 27 | #endif // DEBUGGER_MEMORYTEX_H 28 | -------------------------------------------------------------------------------- /Qt/Debugger/debugger_vfpu.cpp: -------------------------------------------------------------------------------- 1 | #include "debugger_vfpu.h" 2 | #include "ui_debugger_vfpu.h" 3 | #include "mainwindow.h" 4 | #include 5 | 6 | Debugger_VFPU::Debugger_VFPU(DebugInterface *_cpu, MainWindow* mainWindow_, QWidget *parent) : 7 | QDialog(parent), 8 | ui(new Ui::Debugger_VFPU), 9 | cpu(_cpu), 10 | mainWindow(mainWindow_) 11 | { 12 | ui->setupUi(this); 13 | 14 | setWindowTitle(QString("VFPU - %1").arg(cpu->GetName())); 15 | 16 | ui->vfpu->setCPU(_cpu); 17 | } 18 | 19 | Debugger_VFPU::~Debugger_VFPU() 20 | { 21 | delete ui; 22 | } 23 | 24 | void Debugger_VFPU::Update() 25 | { 26 | ui->vfpu->redraw(); 27 | } 28 | 29 | void Debugger_VFPU::Goto(u32 addr) 30 | { 31 | show(); 32 | mainWindow->GetDialogMemory()->Goto(addr & ~3); 33 | } 34 | 35 | void Debugger_VFPU::on_comboBox_currentIndexChanged(int index) 36 | { 37 | ui->vfpu->setMode(index); 38 | } 39 | -------------------------------------------------------------------------------- /Qt/Debugger/debugger_vfpu.h: -------------------------------------------------------------------------------- 1 | #ifndef DEBUGGER_VFPU_H 2 | #define DEBUGGER_VFPU_H 3 | 4 | #include "Core/Debugger/DebugInterface.h" 5 | #include 6 | 7 | class MainWindow; 8 | namespace Ui { 9 | class Debugger_VFPU; 10 | } 11 | 12 | class Debugger_VFPU : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit Debugger_VFPU(DebugInterface *_cpu, MainWindow *mainWindow_, QWidget *parent = 0); 18 | ~Debugger_VFPU(); 19 | 20 | void Update(); 21 | void Goto(u32 addr); 22 | private slots: 23 | void on_comboBox_currentIndexChanged(int index); 24 | 25 | private: 26 | Ui::Debugger_VFPU *ui; 27 | DebugInterface* cpu; 28 | MainWindow* mainWindow; 29 | }; 30 | 31 | #endif // DEBUGGER_VFPU_H 32 | -------------------------------------------------------------------------------- /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/desktop_assets.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | ../assets/ui_atlas.zim 4 | ../assets/ppge_atlas.zim 5 | ../assets/lang 6 | ../assets/compat.ini 7 | ../assets/langregion.ini 8 | ../assets/unknown.png 9 | ../assets/rargray.png 10 | ../assets/zip.png 11 | ../assets/shaders 12 | ../flash0/font 13 | resources/breakpointDisable.ico 14 | resources/breakpoint.ico 15 | 16 | 17 | -------------------------------------------------------------------------------- /Qt/resources/breakpoint.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Qt/resources/breakpoint.ico -------------------------------------------------------------------------------- /Qt/resources/breakpointDisable.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Qt/resources/breakpointDisable.ico -------------------------------------------------------------------------------- /SDL/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | assets 3 | -------------------------------------------------------------------------------- /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 "input/input_state.h" 11 | #include "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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/BackgroundAudio.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | void SetBackgroundAudioGame(const std::string &path); 6 | int PlayBackgroundAudio(); 7 | -------------------------------------------------------------------------------- /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 | x64 6 | *.VC.db 7 | *.VC.VC.opendb 8 | ipch 9 | -------------------------------------------------------------------------------- /UWP/AssetsGold/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsGold/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsGold/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsGold/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsGold/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsGold/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /UWP/AssetsGold/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsGold/StoreLogo.png -------------------------------------------------------------------------------- /UWP/AssetsGold/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsGold/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsNormal/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsNormal/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsNormal/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsNormal/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsNormal/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/AssetsNormal/StoreLogo.png -------------------------------------------------------------------------------- /UWP/AssetsNormal/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/7z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/Content/7z.png -------------------------------------------------------------------------------- /UWP/Content/ppge_atlas.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/Content/ppge_atlas.zim -------------------------------------------------------------------------------- /UWP/Content/rargray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/Content/rargray.png -------------------------------------------------------------------------------- /UWP/Content/ui_atlas.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/Content/ui_atlas.zim -------------------------------------------------------------------------------- /UWP/Content/ui_atlas_lowmem.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/Content/ui_atlas_lowmem.zim -------------------------------------------------------------------------------- /UWP/Content/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/Content/unknown.png -------------------------------------------------------------------------------- /UWP/Content/zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/Content/zip.png -------------------------------------------------------------------------------- /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 "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/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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/UWP/UWP_TemporaryKey.pfx -------------------------------------------------------------------------------- /UWP/XAudioSoundStream.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonWindows.h" 4 | #include "Core/Config.h" 5 | #include "Windows/DSoundStream.h" 6 | 7 | // Factory 8 | WindowsAudioBackend *CreateAudioBackend(AudioBackendType type); 9 | -------------------------------------------------------------------------------- /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/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/DSoundStream.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/CommonWindows.h" 4 | #include "Core/Config.h" 5 | 6 | typedef int (*StreamCallback)(short *buffer, int numSamples, int bits, int rate, int channels); 7 | 8 | // Note that the backend may override the passed in sample rate. The actual sample rate 9 | // should be returned by GetSampleRate though. 10 | class WindowsAudioBackend { 11 | public: 12 | WindowsAudioBackend() {} 13 | virtual ~WindowsAudioBackend() {} 14 | virtual bool Init(HWND window, StreamCallback _callback, int sampleRate) = 0; 15 | virtual void Update() {} // Doesn't have to do anything 16 | virtual int GetSampleRate() = 0; 17 | }; 18 | 19 | // Factory 20 | WindowsAudioBackend *CreateAudioBackend(AudioBackendType type); 21 | -------------------------------------------------------------------------------- /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_MemoryDlg.h: -------------------------------------------------------------------------------- 1 | // NOTE: Apologies for the quality of this code, this is really from pre-opensource Dolphin - that is, 2003. 2 | 3 | #pragma once 4 | #include "Windows/W32Util/DialogManager.h" 5 | 6 | #include "Core/MemMap.h" 7 | 8 | #include "Core/Debugger/DebugInterface.h" 9 | 10 | #include "Common/CommonWindows.h" 11 | 12 | class CMemoryDlg : public Dialog 13 | { 14 | private: 15 | DebugInterface *cpu; 16 | static RECT slRect; 17 | 18 | BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam); 19 | public: 20 | int index; //helper 21 | 22 | // constructor 23 | CMemoryDlg(HINSTANCE _hInstance, HWND _hParent, DebugInterface *_cpu); 24 | 25 | // destructor 26 | ~CMemoryDlg(void); 27 | 28 | void Goto(u32 addr); 29 | void Update(void); 30 | void NotifyMapLoaded(); 31 | 32 | void Size(void); 33 | }; 34 | 35 | 36 | -------------------------------------------------------------------------------- /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 | char fileName[MAX_PATH]; 18 | 19 | static DumpMemoryWindow* bp; 20 | void changeMode(HWND hwnd, Mode newMode); 21 | bool fetchDialogData(HWND hwnd); 22 | public: 23 | DumpMemoryWindow(HWND parent, DebugInterface* cpu): cpu(cpu) 24 | { 25 | parentHwnd = parent; 26 | filenameChosen = false; 27 | selectedMode = MODE_RAM; 28 | }; 29 | 30 | static INT_PTR CALLBACK dlgFunc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam); 31 | bool exec(); 32 | }; 33 | -------------------------------------------------------------------------------- /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/KeyboardDevice.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "InputDevice.h" 5 | 6 | extern std::map windowsTransTable; 7 | 8 | class KeyboardDevice : public InputDevice { 9 | public: 10 | virtual int UpdateState(); 11 | virtual bool IsPad() { return false; } 12 | 13 | private: 14 | }; 15 | -------------------------------------------------------------------------------- /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/XinputDevice.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "InputDevice.h" 4 | #include "Xinput.h" 5 | 6 | 7 | class XinputDevice : public InputDevice { 8 | public: 9 | XinputDevice(); 10 | ~XinputDevice(); 11 | virtual int UpdateState(); 12 | virtual bool IsPad() { return true; } 13 | 14 | private: 15 | void UpdatePad(int pad, const XINPUT_STATE &state); 16 | void ApplyButtons(int pad, const XINPUT_STATE &state); 17 | int check_delay[4]{}; 18 | XINPUT_STATE prevState[4]{}; 19 | u32 prevButtons[4]{}; 20 | }; 21 | -------------------------------------------------------------------------------- /Windows/aboutbox.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/aboutbox.rc -------------------------------------------------------------------------------- /Windows/bitmap1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/bitmap1.bmp -------------------------------------------------------------------------------- /Windows/build_windows.proj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Windows/icon1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/icon1.ico -------------------------------------------------------------------------------- /Windows/ppsspp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/ppsspp.ico -------------------------------------------------------------------------------- /Windows/ppsspp_gold.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/ppsspp_gold.ico -------------------------------------------------------------------------------- /Windows/pspmode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/pspmode.png -------------------------------------------------------------------------------- /Windows/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" -------------------------------------------------------------------------------- /Windows/stop1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/stop1.ico -------------------------------------------------------------------------------- /Windows/version.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/Windows/version.rc -------------------------------------------------------------------------------- /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/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | gen 3 | libs 4 | obj 5 | build*/ 6 | gen 7 | obj 8 | .externalNativeBuild 9 | android.iml 10 | #ui_atlas.zim 11 | ui_atlas.zim.png 12 | #assets/ui_atlas.zim 13 | #jni/ui_atlas.cpp 14 | #jni/ui_atlas.h 15 | -------------------------------------------------------------------------------- /android/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=1.6 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.source=1.6 13 | -------------------------------------------------------------------------------- /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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/debug.keystore -------------------------------------------------------------------------------- /android/gold/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/gold/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/gold/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/gold/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/gold/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable-xhdpi/tv_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/gold/res/drawable-xhdpi/tv_banner.png -------------------------------------------------------------------------------- /android/gold/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/gold/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/gold/res/drawable/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/AndroidEGLContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "AndroidGraphicsContext.h" 4 | #include "Common/GL/GLInterfaceBase.h" 5 | 6 | class AndroidEGLGraphicsContext : public AndroidGraphicsContext { 7 | public: 8 | AndroidEGLGraphicsContext() : draw_(nullptr), wnd_(nullptr), gl(nullptr) {} 9 | bool InitFromRenderThread(ANativeWindow *wnd, int desiredBackbufferSizeX, int desiredBackbufferSizeY, int backbufferFormat, int androidVersion) override; 10 | void Shutdown() override; 11 | void SwapBuffers() override; 12 | void SwapInterval(int interval) override {} 13 | void Resize() override {} 14 | Draw::DrawContext *GetDrawContext() override { 15 | return draw_; 16 | } 17 | bool Initialized() override { 18 | return draw_ != nullptr; 19 | } 20 | 21 | private: 22 | Draw::DrawContext *draw_; 23 | ANativeWindow *wnd_; 24 | cInterfaceBase *gl; 25 | }; 26 | -------------------------------------------------------------------------------- /android/jni/AndroidGraphicsContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "thin3d/thin3d.h" 6 | 7 | #include "Common/GraphicsContext.h" 8 | 9 | enum { 10 | ANDROID_VERSION_GINGERBREAD = 9, 11 | ANDROID_VERSION_ICS = 14, 12 | ANDROID_VERSION_JELLYBEAN = 16, 13 | ANDROID_VERSION_KITKAT = 19, 14 | ANDROID_VERSION_LOLLIPOP = 21, 15 | ANDROID_VERSION_MARSHMALLOW = 23, 16 | ANDROID_VERSION_NOUGAT = 24, 17 | ANDROID_VERSION_NOUGAT_1 = 25, 18 | }; 19 | 20 | class AndroidGraphicsContext : public GraphicsContext { 21 | public: 22 | // This is different than the base class function since on 23 | // Android (EGL, Vulkan) we do have all this info on the render thread. 24 | virtual bool InitFromRenderThread(ANativeWindow *wnd, int desiredBackbufferSizeX, int desiredBackbufferSizeY, int backbufferFormat, int androidVersion) = 0; 25 | virtual bool Initialized() = 0; 26 | }; 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 | #if PPSSPP_PLATFORM(ANDROID) 6 | 7 | #include 8 | 9 | jclass findClass(const char* name); 10 | JNIEnv* getEnv(); 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /android/jni/native_audio.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "native-audio-so.h" 4 | #include 5 | 6 | struct AndroidAudioState; 7 | 8 | // This is the file you should include from your program. It dynamically loads 9 | // the native_audio.so shared object and sets up the function pointers. 10 | 11 | // Do not call this if you have detected that the android version is below 12 | // 2.2, as it will fail miserably. 13 | 14 | // It's okay for optimalFramesPerBuffer and optimalSampleRate to be 0. Defaults will be used. 15 | AndroidAudioState *AndroidAudio_Init(AndroidAudioCallback cb, std::string libraryDir, int optimalFramesPerBuffer, int optimalSampleRate); 16 | bool AndroidAudio_Pause(AndroidAudioState *state); 17 | bool AndroidAudio_Resume(AndroidAudioState *state); 18 | bool AndroidAudio_Shutdown(AndroidAudioState *state); 19 | -------------------------------------------------------------------------------- /android/libs/com.bda.controller.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable-xhdpi/tv_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/res/drawable-xhdpi/tv_banner.png -------------------------------------------------------------------------------- /android/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/res/drawable/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/android/res/drawable/ic_banner.png -------------------------------------------------------------------------------- /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/src/org/ppsspp/ppsspp/AudioFocusChangeListener.java: -------------------------------------------------------------------------------- 1 | package org.ppsspp.ppsspp; 2 | import android.media.AudioManager; 3 | import android.media.AudioManager.OnAudioFocusChangeListener; 4 | 5 | public class AudioFocusChangeListener implements OnAudioFocusChangeListener{ 6 | // not used right now, but we may need to use it sometime. So just store it 7 | // for now. 8 | private boolean hasAudioFocus = false; 9 | 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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/7z.png -------------------------------------------------------------------------------- /assets/Roboto-Condensed.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/Roboto-Condensed.ttf -------------------------------------------------------------------------------- /assets/flash0/font/jpn0.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/jpn0.pgf -------------------------------------------------------------------------------- /assets/flash0/font/kr0.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/kr0.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn0.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn0.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn1.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn1.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn10.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn10.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn11.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn11.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn12.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn12.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn13.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn13.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn14.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn14.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn15.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn15.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn2.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn2.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn3.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn3.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn4.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn4.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn5.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn5.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn6.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn6.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn7.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn7.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn8.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn8.pgf -------------------------------------------------------------------------------- /assets/flash0/font/ltn9.pgf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/flash0/font/ltn9.pgf -------------------------------------------------------------------------------- /assets/ppge_atlas.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/ppge_atlas.zim -------------------------------------------------------------------------------- /assets/rargray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/rargray.png -------------------------------------------------------------------------------- /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/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 vec4 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/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 | float amount = 1.0; // suitable range = 0.0 - 1.0 12 | float intensity = 0.5; // suitable range = 0.0 - 1.0 13 | 14 | void main() 15 | { 16 | float pos0 = ((v_texcoord0.y + 1.0) * 170.0*amount); 17 | float pos1 = cos((fract( pos0 ) - 0.5)*3.1415926*intensity)*1.5; 18 | vec4 rgb = texture2D( sampler0, v_texcoord0 ); 19 | 20 | // slight contrast curve 21 | vec4 color = rgb*0.5+0.5*rgb*rgb*1.2; 22 | 23 | // color tint 24 | color *= vec4(0.9,1.0,0.7, 0.0); 25 | 26 | // vignette 27 | color *= 1.1 - 0.6 * (dot(v_texcoord0 - 0.5, v_texcoord0 - 0.5) * 2.0); 28 | 29 | gl_FragColor.rgba = mix(vec4(0,0,0,0), color, pos1); 30 | } 31 | -------------------------------------------------------------------------------- /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 | float amount = 1.5; 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*amount; 17 | color += texture2D(sampler0, v_texcoord0.xy-0.0001).xyz*7.0*amount; 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.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/ui_atlas.zim -------------------------------------------------------------------------------- /assets/ui_atlas_lowmem.zim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/ui_atlas_lowmem.zim -------------------------------------------------------------------------------- /assets/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/assets/unknown.png -------------------------------------------------------------------------------- /assets/zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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:3.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 && mv ppge_atlas.cpp ppge_atlas.h Core/Util && cp ppge_atlas.zim assets && mv ppge_atlas.zim android/assets 2 | -------------------------------------------------------------------------------- /buildatlas.sh: -------------------------------------------------------------------------------- 1 | # build the lowmem first so we see the output of the big one last. 2 | 3 | ./ext/native/tools/build/atlastool atlasscript_lowmem.txt ui 8888 && mv ui_atlas.zim assets/ui_atlas_lowmem.zim && mv ui_atlas.cpp ui_atlas_lowmem.cpp 4 | ./ext/native/tools/build/atlastool atlasscript.txt ui 8888 && cp ui_atlas.zim assets && cp ui_atlas.zim android/assets && cp ui_atlas.zim.png ui_atlas_high.zim.png && mv ui_atlas.cpp ui_atlas_highmem.cpp && mv ui_atlas.h UI 5 | diff -I'^//.*' -D USING_QT_UI ui_atlas_highmem.cpp ui_atlas_lowmem.cpp > UI/ui_atlas.cpp 6 | rm ui_atlas_highmem.cpp ui_atlas_lowmem.cpp ui_atlas.h 7 | -------------------------------------------------------------------------------- /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(ARMV7 ON) 2 | set(USING_FBDEV ON) 3 | 4 | set(ARCH_FLAGS "-march=armv7-a -mfpu=neon -mcpu=cortex-a8") 5 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAGS}") 6 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${ARCH_FLAGS}") 7 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAGS}") 8 | -------------------------------------------------------------------------------- /cmake/Toolchains/generic.armv7.cmake: -------------------------------------------------------------------------------- 1 | set(ARMV7 ON) 2 | 3 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv7-a -mfpu=neon -mcpu=cortex-a9") 4 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mfpu=neon -mcpu=cortex-a9") 5 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -march=armv7-a -mfpu=neon -mcpu=cortex-a9") 6 | -------------------------------------------------------------------------------- /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 | 27 | -------------------------------------------------------------------------------- /cmake/Toolchains/raspberry.armv7.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 | -U__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14 | ) 15 | 16 | set(ARCH_FLAGS "-mcpu=cortex-a7 -mfpu=neon -mfloat-abi=hard") 17 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 18 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 19 | set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE) 20 | 21 | set(CMAKE_EXE_LINKER_FLAGS "-L/opt/vc/lib" CACHE STRING "" FORCE) 22 | 23 | set(OPENGL_LIBRARIES brcmGLESv2 bcm_host) 24 | set(EGL_LIBRARIES brcmEGL) 25 | set(USING_GLES2 ON) 26 | set(USING_FBDEV ON) 27 | set(ARMV7 ON) 28 | -------------------------------------------------------------------------------- /com.bda.controller/build.gradle: -------------------------------------------------------------------------------- 1 | configurations.maybeCreate("default") 2 | artifacts.add("default", file('com.bda.controller.jar')) -------------------------------------------------------------------------------- /com.bda.controller/com.bda.controller.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/com.bda.controller/com.bda.controller.jar -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | add_subdirectory(glslang) 12 | add_subdirectory(snappy) 13 | add_subdirectory(udis86) 14 | add_subdirectory(SPIRV-Cross-build) 15 | -------------------------------------------------------------------------------- /ext/glew/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(GLEW) 2 | if(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/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/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 | timeutil.cpp 4 | ../thread/threadutil.cpp 5 | display.cpp 6 | buffer.cpp 7 | backtrace.cpp) 8 | 9 | add_library(base STATIC ${SRCS}) 10 | 11 | if(UNIX) 12 | add_definitions(-fPIC) 13 | endif(UNIX) 14 | 15 | add_library(timeutil STATIC timeutil.cpp) 16 | 17 | if(UNIX) 18 | add_definitions(-fPIC) 19 | endif(UNIX) 20 | -------------------------------------------------------------------------------- /ext/native/base/arch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // This provides MSVC's arch-detection defines on other platforms as well. 4 | 5 | #ifndef _WIN32 6 | 7 | #if defined(__x86_64__) && !defined(_M_X64) 8 | #define _M_X64 1 9 | #endif 10 | 11 | #if defined(__x86__) && !defined(_M_IX86) 12 | #define _M_IX86 1 13 | #endif 14 | 15 | // TODO: ARM, ARM64 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /ext/native/base/backtrace.cpp: -------------------------------------------------------------------------------- 1 | #include "base/backtrace.h" 2 | 3 | #if defined(__GLIBC__) && !defined(__UCLIBC__) 4 | #include 5 | #include 6 | 7 | static void *backtrace_buffer[128]; 8 | 9 | void PrintBacktraceToStderr() { 10 | int num_addrs = backtrace(backtrace_buffer, 128); 11 | backtrace_symbols_fd(backtrace_buffer, num_addrs, STDERR_FILENO); 12 | } 13 | 14 | #else 15 | 16 | #include 17 | 18 | void PrintBacktraceToStderr() { 19 | fprintf(stderr, "No backtrace available to print on this platform\n"); 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /ext/native/base/backtrace.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void PrintBacktraceToStderr(); 4 | -------------------------------------------------------------------------------- /ext/native/base/display.cpp: -------------------------------------------------------------------------------- 1 | #include "base/display.h" 2 | 3 | int dp_xres; 4 | int dp_yres; 5 | 6 | int pixel_xres; 7 | int pixel_yres; 8 | 9 | float g_dpi = 1.0f; // will be overwritten with a value that makes sense. 10 | float g_dpi_scale_x = 1.0f; 11 | float g_dpi_scale_y = 1.0f; 12 | float g_dpi_scale_real_x = 1.0f; 13 | float g_dpi_scale_real_y = 1.0f; 14 | float pixel_in_dps_x = 1.0f; 15 | float pixel_in_dps_y = 1.0f; 16 | float display_hz = 60.0f; 17 | 18 | DisplayRotation g_display_rotation; 19 | Matrix4x4 g_display_rot_matrix; 20 | -------------------------------------------------------------------------------- /ext/native/base/display.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "math/lin/matrix4x4.h" 4 | 5 | // This is meant to be a framework for handling DPI scaling etc. 6 | // For now, it just consists of these ugly globals. 7 | 8 | extern int dp_xres; 9 | extern int dp_yres; 10 | extern int pixel_xres; 11 | extern int pixel_yres; 12 | 13 | extern float g_dpi; 14 | extern float g_dpi_scale_x; 15 | extern float g_dpi_scale_y; 16 | extern float g_dpi_scale_real_x; 17 | extern float g_dpi_scale_real_y; 18 | extern float pixel_in_dps_x; 19 | extern float pixel_in_dps_y; 20 | extern float display_hz; 21 | 22 | // On some platforms (currently only Windows UWP) we need to manually rotate 23 | // our rendered output to match the display. Use these to do so. 24 | enum class DisplayRotation { 25 | ROTATE_0 = 0, 26 | ROTATE_90, 27 | ROTATE_180, 28 | ROTATE_270, 29 | }; 30 | 31 | extern DisplayRotation g_display_rotation; 32 | extern Matrix4x4 g_display_rot_matrix; 33 | -------------------------------------------------------------------------------- /ext/native/base/logging.cpp: -------------------------------------------------------------------------------- 1 | #include "base/logging.h" 2 | 3 | const char *GetFn(const char *fn) { 4 | const char *p = strrchr(fn, '\\'); 5 | if (p) 6 | return p + 1; 7 | else 8 | return fn; 9 | } 10 | -------------------------------------------------------------------------------- /ext/native/data/compression.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | bool compress_string(const std::string& str, std::string *dest, int compressionlevel = 9); 6 | bool decompress_string(const std::string& str, std::string *dest); 7 | 8 | 9 | // Delta encoding/decoding - many formats benefit from a pass of this before zlibbing. 10 | // WARNING : Do not use these with floating point data, especially not float16... 11 | 12 | template 13 | inline void delta(T *data, int length) { 14 | T prev = data[0]; 15 | for (int i = 1; i < length; i++) { 16 | T temp = data[i] - prev; 17 | prev = data[i]; 18 | data[i] = temp; 19 | } 20 | } 21 | 22 | template 23 | inline void dedelta(T *data, int length) { 24 | for (int i = 1; i < length; i++) { 25 | data[i] += data[i - 1]; 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /ext/native/ext/jpge/publicdomain.txt: -------------------------------------------------------------------------------- 1 | This is https://code.google.com/p/jpeg-compressor/ , public domain code. -------------------------------------------------------------------------------- /ext/native/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/native/ext/rg_etc1/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | add_library(rg_etc1 rg_etc1.cpp) 4 | -------------------------------------------------------------------------------- /ext/native/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/native/ext/vjson/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(vjson json.cpp block_allocator.cpp) 11 | -------------------------------------------------------------------------------- /ext/native/ext/vjson/block_allocator.h: -------------------------------------------------------------------------------- 1 | #ifndef BLOCK_ALLOCATOR_H 2 | #define BLOCK_ALLOCATOR_H 3 | 4 | class block_allocator 5 | { 6 | public: 7 | block_allocator(size_t blocksize); 8 | ~block_allocator(); 9 | 10 | // exchange contents with rhs 11 | void swap(block_allocator &rhs); 12 | 13 | // allocate memory 14 | void *Malloc(size_t size); 15 | 16 | // free all allocated blocks 17 | void Free(); 18 | 19 | private: 20 | struct block 21 | { 22 | size_t size; 23 | size_t used; 24 | char *buffer; 25 | block *next; 26 | }; 27 | 28 | block *m_head; 29 | size_t m_blocksize; 30 | 31 | block_allocator(const block_allocator &); 32 | block_allocator &operator=(block_allocator &); 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /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 | #ifndef _FD_UTIL 2 | #define _FD_UTIL 3 | 4 | #include 5 | #include 6 | 7 | #include "base/basictypes.h" 8 | 9 | namespace fd_util { 10 | 11 | // Slow as hell and should only be used for prototyping. 12 | ssize_t ReadLine(int fd, char *buffer, size_t buf_size); 13 | 14 | // Decently fast. 15 | ssize_t WriteLine(int fd, const char *buffer, size_t buf_size); 16 | ssize_t WriteLine(int fd, const char *buffer); 17 | ssize_t Write(int fd, const std::string &str); 18 | 19 | // Returns true if the fd became ready, false if it didn't or 20 | // if there was another error. 21 | bool WaitUntilReady(int fd, double timeout, bool for_write = false); 22 | 23 | void SetNonBlocking(int fd, bool non_blocking); 24 | 25 | std::string GetLocalIP(int sock); 26 | 27 | } // fd_util 28 | 29 | #endif // _FD_UTIL 30 | -------------------------------------------------------------------------------- /ext/native/file/free.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "base/basictypes.h" 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 "base/basictypes.h" 4 | #include "file/file_util.h" 5 | // Basic virtual file system. Used to manage assets on Android, where we have to 6 | // read them manually out of the APK zipfile, while being able to run on other 7 | // platforms as well with the appropriate directory set-up. 8 | 9 | class AssetReader; 10 | 11 | void VFSRegister(const char *prefix, AssetReader *reader); 12 | void VFSShutdown(); 13 | 14 | // Use delete [] to release the returned memory. 15 | // Always allocates an extra zero byte at the end, so that it 16 | // can be used for text like shader sources. 17 | uint8_t *VFSReadFile(const char *filename, size_t *size); 18 | bool VFSGetFileListing(const char *path, std::vector *listing, const char *filter = 0); 19 | bool VFSGetFileInfo(const char *filename, FileInfo *fileInfo); 20 | -------------------------------------------------------------------------------- /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 | 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 | void CheckGLError(const char *file, int line); 14 | #define CHECK_GL_ERROR_IF_DEBUG() CheckGLError(__FILE__, __LINE__) 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/texture_atlas.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "gfx/texture_atlas.h" 3 | 4 | const AtlasFont *Atlas::getFontByName(const char *name) const 5 | { 6 | for (int i = 0; i < num_fonts; i++) { 7 | if (!strcmp(name, fonts[i]->name)) 8 | return fonts[i]; 9 | } 10 | return 0; 11 | } 12 | 13 | const AtlasImage *Atlas::getImageByName(const char *name) const 14 | { 15 | for (int i = 0; i < num_images; i++) { 16 | if (!strcmp(name, images[i].name)) 17 | return &images[i]; 18 | } 19 | return 0; 20 | } 21 | 22 | const AtlasChar *AtlasFont::getChar(int utf32) const { 23 | for (int i = 0; i < numRanges; i++) { 24 | if (utf32 >= ranges[i].start && utf32 < ranges[i].end) { 25 | const AtlasChar *c = &charData[ranges[i].start_index + utf32 - ranges[i].start]; 26 | if (c->ex == 0 && c->ey == 0) 27 | return 0; 28 | else 29 | return c; 30 | } 31 | } 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /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 "base/basictypes.h" 4 | #include "image/zim_load.h" 5 | 6 | // SaveZIM's responsibility: 7 | // * Write the ZIM format 8 | // * Generate mipmaps if requested 9 | // * Convert images to the requested format 10 | // Input image is always 8888 RGBA. SaveZIM takes care of downsampling and mipmap generation. 11 | void SaveZIM(const char *filename, int width, int height, int pitch, int format, const uint8_t *image); 12 | -------------------------------------------------------------------------------- /ext/native/input/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | input_state.cpp 3 | gesture_detector.cpp) 4 | 5 | set(SRCS ${SRCS}) 6 | 7 | add_library(input STATIC ${SRCS}) 8 | target_link_libraries(input general gfx) 9 | target_link_libraries(input general file) 10 | 11 | if(UNIX) 12 | add_definitions(-fPIC) 13 | endif(UNIX) 14 | -------------------------------------------------------------------------------- /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 | lin/quat.cpp 5 | curves.cpp 6 | math_util.cpp 7 | ) 8 | 9 | set(SRCS ${SRCS}) 10 | 11 | add_library(lin STATIC ${SRCS}) 12 | 13 | if(UNIX) 14 | add_definitions(-fPIC) 15 | endif(UNIX) 16 | -------------------------------------------------------------------------------- /ext/native/math/curves.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "base/basictypes.h" 4 | 5 | // Easy curve computation for fades etc. 6 | 7 | 8 | // output range: [0.0, 1.0] 9 | float linearInOut(int t, int fadeInLength, int solidLength, int fadeOutLength); 10 | float linearIn(int t, int fadeInLength); 11 | float linearOut(int t, int fadeInLength); 12 | 13 | // smooth operator [0, 1] -> [0, 1] 14 | float ease(float val); 15 | float ease(int t, int fadeLength); 16 | 17 | float bezierEase(float val); 18 | float bezierEaseInOut(float val); 19 | float bezierEaseIn(float val); 20 | float bezierEaseOut(float val); 21 | 22 | // need a bouncy ease 23 | 24 | // waveforms [0, 1] 25 | float sawtooth(int t, int period); 26 | 27 | // output range: -1.0 to 1.0 28 | float passWithPause(int t, int fadeInLength, int pauseLength, int fadeOutLength); 29 | -------------------------------------------------------------------------------- /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/expression_parser.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ext/native/math/expression_parser.cpp -------------------------------------------------------------------------------- /ext/native/math/fast/fast_math.c: -------------------------------------------------------------------------------- 1 | #include "base/arch.h" 2 | #include "fast_math.h" 3 | #include "fast_matrix.h" 4 | 5 | void InitFastMath(int enableNEON) { 6 | // Every architecture has its own define. This needs to be added to. 7 | if (enableNEON) { 8 | #if defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7S__) 9 | fast_matrix_mul_4x4 = &fast_matrix_mul_4x4_neon; 10 | #endif 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /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.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ppsspp_config.h" 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | // A mini library of matrix math kernels. 10 | 11 | // TODO: Really need to wrap this block in a macro or something, will get repetitive. 12 | 13 | typedef void(*fptr_fast_matrix_mul_4x4)(float *dest, const float *a, const float *b); 14 | extern void fast_matrix_mul_4x4_c(float *dest, const float *a, const float *b); 15 | extern void fast_matrix_mul_4x4_neon(float *dest, const float *a, const float *b); 16 | extern void fast_matrix_mul_4x4_sse(float *dest, const float *a, const float *b); 17 | 18 | #if PPSSPP_ARCH(X86) || PPSSPP_ARCH(AMD64) 19 | // Hard link to SSE implementations on x86/amd64 20 | #define fast_matrix_mul_4x4 fast_matrix_mul_4x4_sse 21 | #else 22 | extern fptr_fast_matrix_mul_4x4 fast_matrix_mul_4x4; 23 | #endif 24 | 25 | 26 | #ifdef __cplusplus 27 | } // extern "C" 28 | #endif 29 | -------------------------------------------------------------------------------- /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/plane.cpp: -------------------------------------------------------------------------------- 1 | #include "math/lin/matrix4x4.h" 2 | #include "math/lin/plane.h" 3 | 4 | 5 | void Plane::TransformByIT(const Matrix4x4 &m, Plane *out) { 6 | out->x = x * m.xx + y * m.yx + z * m.zx + d * m.wx; 7 | out->y = x * m.xy + y * m.yy + z * m.zy + d * m.wy; 8 | out->z = x * m.xz + y * m.yz + z * m.zz + d * m.wz; 9 | out->d = x * m.xw + y * m.yw + z * m.zw + d * m.ww; 10 | } 11 | -------------------------------------------------------------------------------- /ext/native/math/lin/plane.h: -------------------------------------------------------------------------------- 1 | #ifndef _PLANE_H 2 | #define _PLANE_H 3 | 4 | #include "math/lin/vec3.h" 5 | 6 | class Matrix4x4; 7 | 8 | class Plane { 9 | public: 10 | float x, y, z, d; 11 | Plane() {} 12 | Plane(float x_, float y_, float z_, float d_) 13 | : x(x_), y(y_), z(z_), d(d_) { } 14 | ~Plane() {} 15 | 16 | float Distance(const Vec3 &v) const { 17 | return x * v.x + y * v.y + z * v.z + d; 18 | } 19 | 20 | float Distance(float px, float py, float pz) const { 21 | return x * px + y * py + z * pz + d; 22 | } 23 | 24 | void Normalize() { 25 | float inv_length = sqrtf(x * x + y * y + z * z); 26 | x *= inv_length; 27 | y *= inv_length; 28 | z *= inv_length; 29 | d *= inv_length; 30 | } 31 | 32 | // Matrix is the inverse transpose of the wanted transform. 33 | // out cannot be equal to this. 34 | void TransformByIT(const Matrix4x4 &matrix, Plane *out); 35 | }; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /ext/native/math/lin/ray.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "vec3.h" 4 | 5 | /* __declspec(align(16)) */ struct Ray 6 | { 7 | Vec3 origin; 8 | int pad; 9 | Vec3 dir; 10 | int pad2; 11 | Vec3 invdir; 12 | int pad3; 13 | }; 14 | 15 | -------------------------------------------------------------------------------- /ext/native/math/lin/vec3.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "math/lin/vec3.h" 4 | #include "math/lin/matrix4x4.h" 5 | 6 | Vec3 Vec3::operator *(const Matrix4x4 &m) const { 7 | return Vec3(x*m.xx + y*m.yx + z*m.zx + m.wx, 8 | x*m.xy + y*m.yy + z*m.zy + m.wy, 9 | x*m.xz + y*m.yz + z*m.zz + m.wz); 10 | } 11 | Vec4 Vec3::multiply4D(const Matrix4x4 &m) const { 12 | return Vec4(x*m.xx + y*m.yx + z*m.zx + m.wx, 13 | x*m.xy + y*m.yy + z*m.zy + m.wy, 14 | x*m.xz + y*m.yz + z*m.zz + m.wz, 15 | x*m.xw + y*m.yw + z*m.zw + m.ww); 16 | } 17 | Vec4 Vec4::multiply4D(Matrix4x4 &m) const { 18 | return Vec4(x*m.xx + y*m.yx + z*m.zx + w*m.wx, 19 | x*m.xy + y*m.yy + z*m.zy + w*m.wy, 20 | x*m.xz + y*m.yz + z*m.zz + w*m.wz, 21 | x*m.xw + y*m.yw + z*m.zw + w*m.ww); 22 | } 23 | 24 | Vec3 Vec3::rotatedBy(const Matrix4x4 &m) const { 25 | return Vec3(x*m.xx + y*m.yx + z*m.zx, 26 | x*m.xy + y*m.yy + z*m.zy, 27 | x*m.xz + y*m.yz + z*m.zz); 28 | } 29 | -------------------------------------------------------------------------------- /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 | 5 | struct addrinfo; 6 | 7 | namespace net { 8 | 9 | // Strictly only required on Win32, but all platforms should call it. 10 | void Init(); 11 | void Shutdown(); 12 | 13 | // use free() to free the returned string. 14 | char *DNSResolveTry(const char *host, const char **err); 15 | char *DNSResolve(const char *host); 16 | 17 | bool DNSResolve(const std::string &host, const std::string &service, addrinfo **res, std::string &error); 18 | void DNSResolveFree(addrinfo *res); 19 | 20 | int inet_pton(int af, const char* src, void* dst); 21 | } // namespace net 22 | -------------------------------------------------------------------------------- /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/thin3d.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ext/native/thin3d/thin3d.h -------------------------------------------------------------------------------- /ext/native/thread/executor.cpp: -------------------------------------------------------------------------------- 1 | #include "thread/executor.h" 2 | 3 | #include 4 | 5 | namespace threading { 6 | 7 | void SameThreadExecutor::Run(std::function func) { 8 | func(); 9 | } 10 | 11 | } // namespace threading 12 | -------------------------------------------------------------------------------- /ext/native/thread/executor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace threading { 6 | 7 | // Stuff that can execute other stuff, like threadpools, should inherit from this. 8 | class Executor { 9 | public: 10 | virtual void Run(std::function func) = 0; 11 | }; 12 | 13 | class SameThreadExecutor : public Executor { 14 | public: 15 | virtual void Run(std::function func); 16 | }; 17 | 18 | } // namespace threading 19 | -------------------------------------------------------------------------------- /ext/native/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); -------------------------------------------------------------------------------- /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/audiotool.cpp: -------------------------------------------------------------------------------- 1 | // TODO 2 | 3 | #include 4 | 5 | #include "audio/wav_load.h" 6 | #include "base/logging.h" 7 | 8 | 9 | struct AudioClip { 10 | int length; 11 | 12 | }; 13 | 14 | 15 | int main(int argc, char **argv) { 16 | CHECK(argc == 3); 17 | } 18 | -------------------------------------------------------------------------------- /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 | ) 8 | 9 | set(SRCS ${SRCS}) 10 | 11 | add_library(ui STATIC ${SRCS}) 12 | 13 | if(UNIX) 14 | add_definitions(-fPIC) 15 | endif(UNIX) 16 | 17 | -------------------------------------------------------------------------------- /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 *shaderSet) { 19 | ui_draw2d.Begin(shaderSet); 20 | ui_draw2d_front.Begin(shaderSet); 21 | } 22 | 23 | void UIFlush() { 24 | ui_draw2d.Flush(); 25 | ui_draw2d_front.Flush(); 26 | } 27 | 28 | void UIEnd() { 29 | ui_draw2d.End(); 30 | ui_draw2d_front.End(); 31 | 32 | ui_draw2d.Flush(); 33 | ui_draw2d_front.Flush(); 34 | } 35 | 36 | -------------------------------------------------------------------------------- /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 | #ifndef _UTIL_HASH_HASH_H 2 | #define _UTIL_HASH_HASH_H 3 | 4 | #include 5 | 6 | #include "base/basictypes.h" 7 | 8 | namespace hash { 9 | 10 | // Fairly decent function for hashing strings. 11 | uint32_t Adler32(const uint8_t *data, size_t len); 12 | 13 | } // namespace hash 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /ext/snappy/AUTHORS: -------------------------------------------------------------------------------- 1 | opensource@google.com 2 | -------------------------------------------------------------------------------- /ext/snappy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(Snappy) 2 | 3 | if(SNAPPY_FOUND) 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.h 13 | snappy-stubs-internal.h 14 | snappy-stubs-public.h 15 | snappy.cpp 16 | snappy.h 17 | ) 18 | target_include_directories(snappy PUBLIC .) 19 | 20 | if(NOT MSVC) 21 | target_compile_options(snappy PRIVATE "-O3") 22 | endif() 23 | 24 | add_library(Ext::Snappy ALIAS snappy) 25 | endif() 26 | -------------------------------------------------------------------------------- /ext/snappy/readme.ppsspp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ext/vulkan/libvulkan.so -------------------------------------------------------------------------------- /ext/vulkan/libvulkan.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ext/vulkan/libvulkan.so.1 -------------------------------------------------------------------------------- /ext/vulkan/libvulkan.so.1.0.30: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ext/vulkan/libvulkan.so.1.0.30 -------------------------------------------------------------------------------- /ext/xbrz/xbrz.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ext/xbrz/xbrz.cpp -------------------------------------------------------------------------------- /ext/zlib/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Oct 26 10:42:05 CEST 2017 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-4.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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/128x128/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/16x16/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/16x16/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/24x24/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/24x24/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/256x256/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/256x256/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/32x32/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/32x32/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/48x48/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/48x48/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/512x512/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/512x512/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/64x64/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/64x64/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/hicolor/96x96/apps/ppsspp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/icons/hicolor/96x96/apps/ppsspp.png -------------------------------------------------------------------------------- /icons/icon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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 | 11 | @property (strong, nonatomic) ViewController *viewController; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /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/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/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 | 10 | @interface ViewController : GLKViewController 11 | 12 | - (void)shutdown; 13 | 14 | @end 15 | 16 | extern __unsafe_unretained ViewController* sharedViewController; 17 | -------------------------------------------------------------------------------- /ios/assets/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Default-568h@2x.png -------------------------------------------------------------------------------- /ios/assets/Default-568h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Default-568h@3x.png -------------------------------------------------------------------------------- /ios/assets/Icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Icon-72.png -------------------------------------------------------------------------------- /ios/assets/Icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Icon-72@2x.png -------------------------------------------------------------------------------- /ios/assets/Icon-72@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Icon-72@3x.png -------------------------------------------------------------------------------- /ios/assets/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Icon.png -------------------------------------------------------------------------------- /ios/assets/Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Icon@2x.png -------------------------------------------------------------------------------- /ios/assets/Icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/ios/assets/Icon@3x.png -------------------------------------------------------------------------------- /libretro/.gitignore: -------------------------------------------------------------------------------- 1 | *.bc 2 | *.so 3 | *.dll 4 | *.dylib 5 | -------------------------------------------------------------------------------- /libretro/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(LIBRETRO_SRCS 2 | libretro.cpp 3 | LibretroGraphicsContext.cpp 4 | LibretroGLContext.cpp 5 | LibretroVulkanContext.cpp 6 | libretro_vulkan.cpp 7 | ) 8 | 9 | include_directories(libretro) 10 | 11 | add_library(ppsspp_libretro SHARED ${LIBRETRO_SRCS}) 12 | set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}") 13 | set_target_properties(ppsspp_libretro PROPERTIES PREFIX "") 14 | if(ANDROID) 15 | set_target_properties(ppsspp_libretro PROPERTIES SUFFIX "_android.so") 16 | endif() 17 | 18 | if(NOT MSVC) 19 | target_link_libraries(ppsspp_libretro "-Wl,-Bsymbolic") 20 | endif() 21 | target_link_libraries(ppsspp_libretro ${LinkCommon}) 22 | -------------------------------------------------------------------------------- /libretro/LibretroVulkanContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common/Vulkan/VulkanLoader.h" 4 | #include "libretro/LibretroGraphicsContext.h" 5 | 6 | class LibretroVulkanContext : public LibretroHWRenderContext { 7 | public: 8 | LibretroVulkanContext() : LibretroHWRenderContext(RETRO_HW_CONTEXT_VULKAN, VK_MAKE_VERSION(1, 0, 18)) 9 | { 10 | #if 0 11 | hw_render_.cache_context = true; 12 | #endif 13 | } 14 | ~LibretroVulkanContext() override {} 15 | bool Init() override; 16 | void Shutdown() override; 17 | void SwapBuffers() override; 18 | void ContextDestroy() override; 19 | 20 | void *GetAPIContext() override; 21 | void CreateDrawContext() override; 22 | GPUCore GetGPUCore() override { return GPUCORE_VULKAN; } 23 | const char *Ident() override { return "Vulkan"; } 24 | }; 25 | -------------------------------------------------------------------------------- /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', ':com.bda.controller' 2 | -------------------------------------------------------------------------------- /source_assets/image/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/1.png -------------------------------------------------------------------------------- /source_assets/image/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/2.png -------------------------------------------------------------------------------- /source_assets/image/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/3.png -------------------------------------------------------------------------------- /source_assets/image/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/4.png -------------------------------------------------------------------------------- /source_assets/image/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/5.png -------------------------------------------------------------------------------- /source_assets/image/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/6.png -------------------------------------------------------------------------------- /source_assets/image/L.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/L.png -------------------------------------------------------------------------------- /source_assets/image/R.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/R.png -------------------------------------------------------------------------------- /source_assets/image/active_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/active_item.png -------------------------------------------------------------------------------- /source_assets/image/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/arrow.png -------------------------------------------------------------------------------- /source_assets/image/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/background.png -------------------------------------------------------------------------------- /source_assets/image/background2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/background2.png -------------------------------------------------------------------------------- /source_assets/image/background_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/background_gold.png -------------------------------------------------------------------------------- /source_assets/image/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/button.png -------------------------------------------------------------------------------- /source_assets/image/button_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/button_selected.png -------------------------------------------------------------------------------- /source_assets/image/checkedbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/checkedbox.png -------------------------------------------------------------------------------- /source_assets/image/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/circle.png -------------------------------------------------------------------------------- /source_assets/image/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/cross.png -------------------------------------------------------------------------------- /source_assets/image/dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/dir.png -------------------------------------------------------------------------------- /source_assets/image/dir_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/dir_line.png -------------------------------------------------------------------------------- /source_assets/image/dropshadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/dropshadow.png -------------------------------------------------------------------------------- /source_assets/image/exe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/exe.png -------------------------------------------------------------------------------- /source_assets/image/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/folder.png -------------------------------------------------------------------------------- /source_assets/image/folder_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/folder_line.png -------------------------------------------------------------------------------- /source_assets/image/gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/gear.png -------------------------------------------------------------------------------- /source_assets/image/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/grid.png -------------------------------------------------------------------------------- /source_assets/image/icon_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/icon_gold.png -------------------------------------------------------------------------------- /source_assets/image/icon_gold_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/icon_gold_72.png -------------------------------------------------------------------------------- /source_assets/image/icon_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/icon_regular.png -------------------------------------------------------------------------------- /source_assets/image/icon_regular_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/icon_regular_72.png -------------------------------------------------------------------------------- /source_assets/image/inactive_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/inactive_item.png -------------------------------------------------------------------------------- /source_assets/image/lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/lines.png -------------------------------------------------------------------------------- /source_assets/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/logo.png -------------------------------------------------------------------------------- /source_assets/image/psp_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/psp_display.png -------------------------------------------------------------------------------- /source_assets/image/rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/rect.png -------------------------------------------------------------------------------- /source_assets/image/rect_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/rect_line.png -------------------------------------------------------------------------------- /source_assets/image/round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/round.png -------------------------------------------------------------------------------- /source_assets/image/round_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/round_line.png -------------------------------------------------------------------------------- /source_assets/image/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/select.png -------------------------------------------------------------------------------- /source_assets/image/shoulder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/shoulder.png -------------------------------------------------------------------------------- /source_assets/image/shoulder_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/shoulder_line.png -------------------------------------------------------------------------------- /source_assets/image/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/square.png -------------------------------------------------------------------------------- /source_assets/image/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/start.png -------------------------------------------------------------------------------- /source_assets/image/stick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/stick.png -------------------------------------------------------------------------------- /source_assets/image/stick_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/stick_bg.png -------------------------------------------------------------------------------- /source_assets/image/stick_bg_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/stick_bg_line.png -------------------------------------------------------------------------------- /source_assets/image/stick_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/stick_line.png -------------------------------------------------------------------------------- /source_assets/image/triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/triangle.png -------------------------------------------------------------------------------- /source_assets/image/umd256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/umd256.png -------------------------------------------------------------------------------- /source_assets/image/umd48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/umd48.png -------------------------------------------------------------------------------- /source_assets/image/up_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/up_line.png -------------------------------------------------------------------------------- /source_assets/image/updir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/updir.png -------------------------------------------------------------------------------- /source_assets/image/zip.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/image/zip.pdn -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_A.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_DPAD.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_DOWN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_DPAD_DOWN.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_LEFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_DPAD_LEFT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_RIGHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_DPAD_RIGHT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_DPAD_UP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_DPAD_UP.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_L1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_L1.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_L2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_L2.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_L3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_L3.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_LS.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_DOWN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_LS_DOWN.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_LEFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_LS_LEFT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_RIGHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_LS_RIGHT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_LS_UP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_LS_UP.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_O.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_O.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_R1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_R1.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_R2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_R2.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_R3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_R3.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_RS.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_DOWN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_RS_DOWN.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_LEFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_RS_LEFT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_RIGHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_RS_RIGHT.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_RS_UP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_RS_UP.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_SYSTEM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_SYSTEM.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_TOUCHPAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_TOUCHPAD.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_U.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/source_assets/ouya/OUYA_U.png -------------------------------------------------------------------------------- /source_assets/ouya/OUYA_Y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libretro-mirrors/ppsspp/41de8d035e2f51a43da5d10ada9322d880910c1b/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 | -------------------------------------------------------------------------------- /unittest/UnitTest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define EXPECT_TRUE(a) if (!(a)) { printf("%s:%i: Test Fail\n", __FUNCTION__, __LINE__); return false; } 4 | #define EXPECT_FALSE(a) if ((a)) { printf("%s:%i: Test Fail\n", __FUNCTION__, __LINE__); return false; } 5 | #define EXPECT_EQ_INT(a, b) if ((a) != (b)) { printf("%s:%i: Test Fail\n%d\nvs\n%d\n", __FUNCTION__, __LINE__, a, b); return false; } 6 | #define EXPECT_EQ_FLOAT(a, b) if ((a) != (b)) { printf("%s:%i: Test Fail\n%f\nvs\n%f\n", __FUNCTION__, __LINE__, a, b); return false; } 7 | #define EXPECT_APPROX_EQ_FLOAT(a, b) if (fabsf((a)-(b))>0.00001f) { printf("%s:%i: Test Fail\n%f\nvs\n%f\n", __FUNCTION__, __LINE__, a, b); /*return false;*/ } 8 | #define EXPECT_EQ_STR(a, b) if (a != b) { printf("%s: Test Fail\n%s\nvs\n%s\n", __FUNCTION__, a.c_str(), b.c_str()); return false; } 9 | 10 | #define RET(a) if (!(a)) { return false; } 11 | -------------------------------------------------------------------------------- /unittest/UnitTests.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | --------------------------------------------------------------------------------